diff --git a/babylonia_terminal_launcher/.gitignore b/babylonia_terminal_launcher/.gitignore deleted file mode 100644 index 79e38a4..0000000 --- a/babylonia_terminal_launcher/.gitignore +++ /dev/null @@ -1,57 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ -migrate_working_dir/ - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# The .vscode folder contains launch configuration and tasks you configure in -# VS Code which you may wish to be included in version control, so this line -# is commented out by default. -#.vscode/ - -# Flutter/Dart/Pub related -**/doc/api/ -**/ios/Flutter/.last_build_id -.dart_tool/ -.flutter-plugins -.flutter-plugins-dependencies -.pub-cache/ -.pub/ -/build/ - -# Symbolication related -app.*.symbols - -# Obfuscation related -app.*.map.json - -# Android Studio will place build artifacts here -/android/app/debug -/android/app/profile -/android/app/release - -# Ignore platforms -/linux/* -!/linux/my_application.cc - -# Misc -/test - -# Rust related -.cargo/ -target/ - -# Generated messages -*/**/messages/ diff --git a/babylonia_terminal_launcher/.metadata b/babylonia_terminal_launcher/.metadata deleted file mode 100644 index 961290d..0000000 --- a/babylonia_terminal_launcher/.metadata +++ /dev/null @@ -1,30 +0,0 @@ -# This file tracks properties of this Flutter project. -# Used by Flutter tool to assess capabilities and perform upgrades etc. -# -# This file should be version controlled and should not be manually edited. - -version: - revision: "54e66469a933b60ddf175f858f82eaeb97e48c8d" - channel: "stable" - -project_type: app - -# Tracks metadata for the flutter migrate command -migration: - platforms: - - platform: root - create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d - base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d - - platform: linux - create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d - base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d - - # User provided section - - # List of Local paths (relative to this file) that should be - # ignored by the migrate tool. - # - # Files that are not part of the templates will be ignored by default. - unmanaged_files: - - 'lib/main.dart' - - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/babylonia_terminal_launcher/CHANGELOG.md b/babylonia_terminal_launcher/CHANGELOG.md deleted file mode 100644 index 98ce13f..0000000 --- a/babylonia_terminal_launcher/CHANGELOG.md +++ /dev/null @@ -1,36 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [Unreleased] - -### Added - -- You now see the download speed when downloading the game (in MiB/s) - -### Changed - -- "Gb" (which ordinarily would be Gigabits) to "GiB" in the download progress - -## [0.1.2] - 2024-10-28 - -### Changed - -- Only install Arial font from now on instead of the whole corefonts library - -### Added - -- Added gamescope path library to the flatpak version of the launcher - -## [0.1.1] - 2024-10-23 - -### Added - -- Notice for new release - -[unreleased]: https://github.com/ALEZ-DEV/Babylonia-terminal/compare/0.1.1...HEAD -[0.1.2]: https://github.com/ALEZ-DEV/Babylonia-terminal/compare/0.1.2 -[0.1.1]: https://github.com/ALEZ-DEV/Babylonia-terminal/compare/0.1.1 diff --git a/babylonia_terminal_launcher/Cargo.lock b/babylonia_terminal_launcher/Cargo.lock deleted file mode 100644 index 622300d..0000000 --- a/babylonia_terminal_launcher/Cargo.lock +++ /dev/null @@ -1,2391 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "allo-isolate" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b6d794345b06592d0ebeed8e477e41b71e5a0a49df4fc0e4184d5938b99509" -dependencies = [ - "atomic", -] - -[[package]] -name = "anyhow" -version = "1.0.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" -dependencies = [ - "backtrace", -] - -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" - -[[package]] -name = "async-compression" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa" -dependencies = [ - "flate2", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "atomic" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba" - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "babylonia-terminal-sdk" -version = "0.1.2" -dependencies = [ - "anyhow", - "chksum-md5", - "dirs", - "dotenv", - "downloader", - "flate2", - "fs_extra", - "futures", - "log", - "num_cpus", - "reqwest 0.12.7", - "rust-embed", - "serde", - "serde_json", - "tar", - "tokio", - "wincompatlib", -] - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "blake3" -version = "1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" - -[[package]] -name = "cc" -version = "1.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chksum-core" -version = "0.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6db20071fdeca52ed6a7745519fb2d343fddcb93af81448373b851f072aaec5" -dependencies = [ - "chksum-hash-core", - "thiserror", -] - -[[package]] -name = "chksum-hash-core" -version = "0.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221456234d441c788a2c51a27b91c4380f499de560670a67d3303e621d37b3bd" - -[[package]] -name = "chksum-hash-md5" -version = "0.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c33d01c33c9e193fe33e719a29a7eb900c08583375dd1d3269991aacbe434a" -dependencies = [ - "chksum-hash-core", - "thiserror", -] - -[[package]] -name = "chksum-md5" -version = "0.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95dda0f76fbb6069e042c370a928457086e1b4eabc7e75f5f49fe1b913634351" -dependencies = [ - "chksum-core", - "chksum-hash-md5", - "chksum-reader", -] - -[[package]] -name = "chksum-reader" -version = "0.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bcdf6bcd410820599b7501d9bc3346964c4d472f48905685e08e07359d2fff9" -dependencies = [ - "chksum-core", -] - -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "cpufeatures" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] - -[[package]] -name = "dotenv" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" - -[[package]] -name = "downloader" -version = "0.2.7" -source = "git+https://github.com/ALEZ-DEV/downloader#5572a0875ec4f04b0514342f9acff21252beb579" -dependencies = [ - "futures", - "rand", - "reqwest 0.11.27", - "thiserror", - "tokio", -] - -[[package]] -name = "either" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" - -[[package]] -name = "encoding_rs" -version = "0.8.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "fastrand" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" - -[[package]] -name = "filetime" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" -dependencies = [ - "cfg-if", - "libc", - "libredox", - "windows-sys 0.59.0", -] - -[[package]] -name = "flate2" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "fs_extra" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" - -[[package]] -name = "futures" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-executor" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http 1.1.0", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http 1.1.0", -] - -[[package]] -name = "http-body-util" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" -dependencies = [ - "bytes", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hub" -version = "0.1.0" -dependencies = [ - "babylonia-terminal-sdk", - "downloader", - "once_cell", - "prost", - "rinf", - "tokio_with_wasm", - "wasm-bindgen", - "wincompatlib", -] - -[[package]] -name = "hyper" -version = "0.14.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2 0.4.6", - "http 1.1.0", - "http-body 1.0.1", - "httparse", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" -dependencies = [ - "futures-util", - "http 1.1.0", - "hyper 1.4.1", - "hyper-util", - "rustls 0.23.13", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper 0.14.30", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper 1.4.1", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "hyper 1.4.1", - "pin-project-lite", - "socket2", - "tokio", - "tower", - "tower-service", - "tracing", -] - -[[package]] -name = "idna" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "js-sys" -version = "0.3.70" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.158" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" - -[[package]] -name = "libredox" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.6.0", - "libc", - "redox_syscall", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" -dependencies = [ - "adler2", -] - -[[package]] -name = "minreq" -version = "2.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763d142cdff44aaadd9268bebddb156ef6c65a0e13486bb81673cf2d8739f9b0" -dependencies = [ - "log", - "once_cell", - "rustls 0.21.12", - "rustls-native-certs", - "rustls-webpki 0.101.7", - "webpki-roots 0.25.4", -] - -[[package]] -name = "mio" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" -dependencies = [ - "hermit-abi", - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "object" -version = "0.36.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "openssl" -version = "0.10.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "os-thread-local" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7fc7fa9ea7dc8907f9b10e730106ed0011926e7f5abb382530ac91d1af2b7c" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "ppv-lite86" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "proc-macro2" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prost" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-derive" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "protoc-prebuilt" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d85d4641fe3b8c6e853dfd09fe35379bc6b6e66bd692ac29ed4f7087de69ed5" -dependencies = [ - "ureq", - "zip", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "redox_syscall" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" -dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom", - "libredox", - "thiserror", -] - -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.30", - "hyper-tls 0.5.0", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - -[[package]] -name = "reqwest" -version = "0.12.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" -dependencies = [ - "async-compression", - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.4.6", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.4.1", - "hyper-rustls", - "hyper-tls 0.6.0", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile 2.1.3", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 1.0.1", - "system-configuration 0.6.1", - "tokio", - "tokio-native-tls", - "tokio-util", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows-registry", -] - -[[package]] -name = "rinf" -version = "6.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e58a88b1d366e17e6ab9e09d81bc1bf22017333d94fee58a8c1739baa11ce5" -dependencies = [ - "allo-isolate", - "home", - "js-sys", - "os-thread-local", - "protoc-prebuilt", - "tokio", - "wasm-bindgen", - "wasm-bindgen-futures", - "which", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rust-embed" -version = "8.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa66af4a4fdd5e7ebc276f115e895611a34739a9c1c01028383d612d550953c0" -dependencies = [ - "rust-embed-impl", - "rust-embed-utils", - "walkdir", -] - -[[package]] -name = "rust-embed-impl" -version = "8.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6125dbc8867951125eec87294137f4e9c2c96566e61bf72c45095a7c77761478" -dependencies = [ - "proc-macro2", - "quote", - "rust-embed-utils", - "syn", - "walkdir", -] - -[[package]] -name = "rust-embed-utils" -version = "8.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5347777e9aacb56039b0e1f28785929a8a3b709e87482e7442c72e7c12529d" -dependencies = [ - "sha2", - "walkdir", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" -dependencies = [ - "bitflags 2.6.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.23.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" -dependencies = [ - "log", - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki 0.102.8", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[package]] -name = "rustls-pemfile" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" -dependencies = [ - "base64 0.22.1", - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "rustls-webpki" -version = "0.102.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.6.0", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.210" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.210" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.128" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "2.0.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" -dependencies = [ - "futures-core", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys 0.5.0", -] - -[[package]] -name = "system-configuration" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" -dependencies = [ - "bitflags 2.6.0", - "core-foundation", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "system-configuration-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tar" -version = "0.4.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" -dependencies = [ - "filetime", - "libc", - "xattr", -] - -[[package]] -name = "tempfile" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "thiserror" -version = "1.0.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tinyvec" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.40.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-macros" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" -dependencies = [ - "rustls 0.23.13", - "rustls-pki-types", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio_with_wasm" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa397196e321d38fd486d2ad0dc8f33d8724ce8978cad405e6e0749980504459" -dependencies = [ - "futures-channel", - "js-sys", - "tokio", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[package]] -name = "unicode-ident" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" - -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "ureq" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a" -dependencies = [ - "base64 0.22.1", - "log", - "once_cell", - "rustls 0.23.13", - "rustls-pki-types", - "url", - "webpki-roots 0.26.6", -] - -[[package]] -name = "url" -version = "2.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" - -[[package]] -name = "web-sys" -version = "0.3.70" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "webpki-roots" -version = "0.26.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "which" -version = "6.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" -dependencies = [ - "either", - "home", - "rustix", - "winsafe", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "wincompatlib" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2475ec2859b4310dbf008f8c0cafc55202137aac0062f52a0e7651459f6ad88e" -dependencies = [ - "anyhow", - "blake3", - "minreq", -] - -[[package]] -name = "windows-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" -dependencies = [ - "windows-result", - "windows-strings", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "winsafe" -version = "0.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" - -[[package]] -name = "xattr" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" -dependencies = [ - "libc", - "linux-raw-sys", - "rustix", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "byteorder", - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "byteorder", - "crc32fast", - "crossbeam-utils", - "flate2", -] diff --git a/babylonia_terminal_launcher/Cargo.toml b/babylonia_terminal_launcher/Cargo.toml deleted file mode 100644 index cf8e466..0000000 --- a/babylonia_terminal_launcher/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -# This file is used for telling Rust-related tools -# where various Rust crates are. -# This also unifies `./target` output folder and -# various Rust configurations. - -[workspace] -members = ["./native/*"] -resolver = "2" diff --git a/babylonia_terminal_launcher/README.md b/babylonia_terminal_launcher/README.md deleted file mode 100644 index e4fff0d..0000000 --- a/babylonia_terminal_launcher/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# How to compile the GUI version - -!! **Disclaimer :** this might not work on your steam deck, a Flatpak version is distributed, [see instruction on how to install it!](https://github.com/ALEZ-DEV/Babylonia-terminal/wiki/Installation#installing-via-flatpak) - -## Requirement - -You need the [base](https://github.com/ALEZ-DEV/Babylonia-terminal/wiki/Compilation-requirement) requirement -You will need [Flutter](https://flutter.dev/) in order to compile the GUI version -Install [Rinf](https://github.com/cunarist/rinf) with **Cargo** : - -```bash -cargo install rinf -``` - -And check if all the requirement are installed successfully : - -```bash -rustc --version -flutter doctor -``` - -## Compile - -First generate all the necessary messages : - -```bash -rinf message -``` -Generate all the necessary linux file for compilation : - -```bash -flutter create --platform=linux . -``` - -Then compile the project : - -```bash -flutter run -``` diff --git a/babylonia_terminal_launcher/analysis_options.yaml b/babylonia_terminal_launcher/analysis_options.yaml deleted file mode 100644 index 0d29021..0000000 --- a/babylonia_terminal_launcher/analysis_options.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at https://dart.dev/lints. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options diff --git a/babylonia_terminal_launcher/assets/images/Lee6.png b/babylonia_terminal_launcher/assets/images/Lee6.png deleted file mode 100644 index 7a2bf9c..0000000 Binary files a/babylonia_terminal_launcher/assets/images/Lee6.png and /dev/null differ diff --git a/babylonia_terminal_launcher/lib/app.dart b/babylonia_terminal_launcher/lib/app.dart deleted file mode 100644 index 3348b5c..0000000 --- a/babylonia_terminal_launcher/lib/app.dart +++ /dev/null @@ -1,207 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:package_info_plus/package_info_plus.dart'; -import 'package:provider/provider.dart'; -import 'package:yaru/yaru.dart'; - -import './screens/screens.dart'; -import './screens/setup_screen.dart'; -import './providers/providers.dart'; -import './models/error_reporter.dart'; -import './models/game.dart'; -import './models/release_notice.dart'; -import './widgets/release_notice_widget.dart'; - -class BabyloniaLauncher extends StatelessWidget { - BabyloniaLauncher( - {super.key, - required this.settingsProvider, - required this.gameStateProvider}); - final SettingsProvider settingsProvider; - final GameStateProvider gameStateProvider; - final GlobalKey navigatorKey = GlobalKey(); - - @override - Widget build(BuildContext context) { - ErrorReporter.listenAllRustError(navigatorKey); - gameStateProvider.updateSetup(); - return MultiProvider( - providers: [ - ChangeNotifierProvider( - create: (context) => settingsProvider, - ), - ChangeNotifierProvider( - create: (context) => gameStateProvider, - ), - ], - child: YaruTheme( - builder: (context, yaru, child) => MaterialApp( - navigatorKey: navigatorKey, - title: "Babylonia Terminal", - debugShowCheckedModeBanner: false, - theme: yaru.theme, - darkTheme: yaru.darkTheme, - themeMode: ThemeMode.system, - highContrastTheme: yaruHighContrastLight, - highContrastDarkTheme: yaruHighContrastDark, - home: Provider.of(context).haveToSetup - ? const SetupScreen() - : const Menu(), - ), - ), - ); - } -} - -class Menu extends StatefulWidget { - const Menu({super.key}); - - @override - State createState() => _MenuState(); -} - -class _MenuState extends State { - int _selectedIndex = 0; - - @override - void didChangeDependencies() async { - final provider = Provider.of(context, listen: false); - final pkgsInfo = await PackageInfo.fromPlatform(); - final currentVersion = pkgsInfo.version; - if (provider.lastVersion != currentVersion) { - final releaseInfo = await ReleaseNoticeInfo.getInfo(currentVersion); - - showDialog( - context: context, - builder: (context) => - ReleaseNotice(currentVersion: currentVersion, info: releaseInfo), - ); - - provider.lastVersion = currentVersion; - } - - super.didChangeDependencies(); - } - - @override - Widget build(BuildContext context) { - List items = Screens.drawerItem( - selectedIndex: _selectedIndex, - onSelected: (index) { - setState(() => _selectedIndex = index); - Navigator.of(context).pop(); - }, - ); - items.insert( - 0, - Center( - child: Container( - decoration: BoxDecoration( - color: Theme.of(context).colorScheme.surface, - border: Border( - bottom: BorderSide( - color: Theme.of(context).colorScheme.outline, - ), - ), - ), - child: Center( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - children: [ - Padding( - padding: const EdgeInsets.symmetric( - vertical: 8.0, - horizontal: 50.0, - ), - child: Image.asset( - 'assets/images/Lee6.png', - ), - ), - const Text( - "Babylonia Terminal", - style: TextStyle(fontSize: 24), - ), - ], - ), - ), - ), - ), - ), - ); - - final window = YaruWindow.of(context); - - return ChangeNotifierProvider( - create: (context) => Game(), - child: Stack( - children: [ - Scaffold( - drawer: Drawer( - child: ListView( - children: items, - ), - ), - appBar: AppBar( - title: const Text("Babylonia Terminal"), - centerTitle: true, - actions: [ - Padding( - padding: const EdgeInsets.only(right: 14.0), - child: YaruWindowControl( - type: YaruWindowControlType.minimize, - platform: YaruWindowControlPlatform.yaru, - onTap: () async { - final state = await window.state(); - if (state.isMinimizable ?? false) window.minimize(); - }, - ), - ), - StreamBuilder( - stream: window.states(), - builder: (context, snapshot) { - final state = snapshot.data; - return Padding( - padding: const EdgeInsets.only(right: 14.0), - child: YaruWindowControl( - type: (state?.isMinimizable ?? false) - ? YaruWindowControlType.maximize - : YaruWindowControlType.restore, - platform: YaruWindowControlPlatform.yaru, - onTap: () async { - (state?.isMinimizable ?? false) - ? window.maximize() - : window.restore(); - }, - ), - ); - }, - ), - Padding( - padding: const EdgeInsets.only(right: 10.0), - child: YaruWindowControl( - type: YaruWindowControlType.close, - platform: YaruWindowControlPlatform.yaru, - onTap: () async { - final state = await window.state(); - if (state.isClosable ?? false) window.close(); - }, - ), - ), - ], - ), - body: Screens.getCurrent(_selectedIndex), - ), - Padding( - padding: const EdgeInsets.only(right: 115.0, left: 60.0), - child: GestureDetector( - onPanStart: (_) => window.drag(), - child: const SizedBox( - height: 60, - ), - ), - ), - ], - ), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/main.dart b/babylonia_terminal_launcher/lib/main.dart deleted file mode 100644 index 73f9fea..0000000 --- a/babylonia_terminal_launcher/lib/main.dart +++ /dev/null @@ -1,27 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; -import 'package:media_kit/media_kit.dart'; -import 'package:rinf/rinf.dart'; -import 'package:yaru_window/yaru_window.dart'; - -import './app.dart'; -import './messages/generated.dart'; -import './providers/providers.dart'; - -void main() async { - await initializeRust(assignRustSignal); - await YaruWindow.ensureInitialized(); - WidgetsFlutterBinding.ensureInitialized(); - MediaKit.ensureInitialized(); - - final SettingsProvider settings = SettingsProvider(); - await settings.init(); - - final GameStateProvider gameState = GameStateProvider(); - await gameState.updateGameState(); - - runApp(BabyloniaLauncher( - settingsProvider: settings, - gameStateProvider: gameState, - )); -} diff --git a/babylonia_terminal_launcher/lib/models/background.dart b/babylonia_terminal_launcher/lib/models/background.dart deleted file mode 100644 index 7184af1..0000000 --- a/babylonia_terminal_launcher/lib/models/background.dart +++ /dev/null @@ -1,54 +0,0 @@ -import 'dart:convert'; -import 'dart:io'; - -import 'package:babylonia_terminal_launcher/models/config.dart'; -import 'package:http/http.dart' as http; - -import './../providers/providers.dart'; - -class Background { - String path; - - Background._({required this.path}); - - static Future get(SettingsProvider provider) async { - final json = await _fetchMainMenu(); - final info = json['pcTopPicture']; - final backgroundId = info['topPictureId']; - final videoLink = info['backgroundVideo']; - final path = "${Config.instance.path}/background.mp4"; - - if (provider.backgroundId == null || - provider.backgroundId != backgroundId) { - provider.backgroundId = backgroundId; - - await _updateVideo(videoLink, path); - } - - return Background._(path: path); - } - - static Future> _fetchMainMenu() async { - // ignore: prefer_interpolation_to_compose_strings, prefer_adjacent_string_concatenation - final response = await http.get( - Uri.parse('https://media-cdn-zspms.' + - 'k' + - 'u' + - 'r' + - 'o' + - 'game.net/pnswebsite/website2.0/json/G167/MainMenu.json'), - ); - return jsonDecode(response.body); - } - - static _updateVideo(String link, String path) async { - final response = await http.get(Uri.parse(link)); - final file = File(path); - if (await file.exists()) { - // just to be sure to overwrite the file - await file.delete(); - await file.create(); - } - await file.writeAsBytes(response.bodyBytes); - } -} diff --git a/babylonia_terminal_launcher/lib/models/config.dart b/babylonia_terminal_launcher/lib/models/config.dart deleted file mode 100644 index 2069d98..0000000 --- a/babylonia_terminal_launcher/lib/models/config.dart +++ /dev/null @@ -1,46 +0,0 @@ -import 'package:babylonia_terminal_launcher/messages/config.pb.dart'; - -class Config { - String path; - - static late Config instance; - Config._({required this.path}); - - static bool _isLoadingConfig = false; - - static Future update() async { - if (!_isLoadingConfig) { - _isLoadingConfig = true; - ConfigInput().sendSignalToRust(); - final stream = ConfigOutput.rustSignalStream; - - await for (final rustSignal in stream) { - instance = Config._( - path: rustSignal.message.configPath, - ); - break; - } - _isLoadingConfig = false; - } - } - - static bool _isLoadingGetLaunchOptions = false; - - static Future getLaunchOptions() async { - if (!_isLoadingGetLaunchOptions) { - _isLoadingGetLaunchOptions = true; - GetLaunchOptionsInput().sendSignalToRust(); - final stream = GetLaunchOptionsOutput.rustSignalStream; - - await for (final rustSignal in stream) { - _isLoadingGetLaunchOptions = false; - return rustSignal.message.launchOptions; - } - } - return null; - } - - static void setLaunchOptions(String? newLaunchOptions) { - SetLaunchOptionsInput(launchOptions: newLaunchOptions).sendSignalToRust(); - } -} diff --git a/babylonia_terminal_launcher/lib/models/dependencies.dart b/babylonia_terminal_launcher/lib/models/dependencies.dart deleted file mode 100644 index 088a6d4..0000000 --- a/babylonia_terminal_launcher/lib/models/dependencies.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'package:flutter/material.dart'; - -import './../messages/steps/dependencies.pb.dart'; -import './../providers/providers.dart'; - -enum DependenciesInstallationState { - idle, - installing, -} - -class Dependencies with ChangeNotifier { - DependenciesInstallationState dependeciesState = - DependenciesInstallationState.idle; - - Future startInstallation(GameStateProvider gameState) async { - StartDependenciesInstallation().sendSignalToRust(); - final stream = NotifyDependenciesSuccessfullyInstalled.rustSignalStream; - await for (final _ in stream) { - gameState.updateGameState(); - break; - } - } -} diff --git a/babylonia_terminal_launcher/lib/models/dxvk.dart b/babylonia_terminal_launcher/lib/models/dxvk.dart deleted file mode 100644 index 5f1b07f..0000000 --- a/babylonia_terminal_launcher/lib/models/dxvk.dart +++ /dev/null @@ -1,53 +0,0 @@ -import 'package:fixnum/fixnum.dart'; -import 'package:flutter/material.dart'; - -import './../messages/steps/dxvk.pb.dart'; -import './../providers/providers.dart'; - -enum DXVKInstallationState { - idle, - downloading, - decompressing, -} - -class DXVK with ChangeNotifier { - DXVKInstallationState dxvkState = DXVKInstallationState.idle; - - Int64 currentProgress = Int64(0); - Int64 maxProgress = Int64(0); - - Future startInstallation( - GameStateProvider gameStateProvider, String protonVersion) async { - StartDXVKInstallation(protonVersion: protonVersion).sendSignalToRust(); - final progressStream = DXVKDownloadProgress.rustSignalStream; - await for (final rustSignal in progressStream) { - currentProgress = rustSignal.message.current; - maxProgress = rustSignal.message.max; - - if (dxvkState == DXVKInstallationState.idle) { - dxvkState = DXVKInstallationState.downloading; - } - - notifyListeners(); - - if (currentProgress >= maxProgress) { - break; - } - } - - final notificationDecompressingStream = - NotifyDXVKStartDecompressing.rustSignalStream; - await for (final _ in notificationDecompressingStream) { - dxvkState = DXVKInstallationState.decompressing; - notifyListeners(); - break; - } - - final notificationInstalledStream = - NotifyDXVKSuccessfullyInstalled.rustSignalStream; - await for (final _ in notificationInstalledStream) { - gameStateProvider.updateGameState(); - break; - } - } -} diff --git a/babylonia_terminal_launcher/lib/models/error_reporter.dart b/babylonia_terminal_launcher/lib/models/error_reporter.dart deleted file mode 100644 index ba8a510..0000000 --- a/babylonia_terminal_launcher/lib/models/error_reporter.dart +++ /dev/null @@ -1,56 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter_highlight/flutter_highlight.dart'; -import 'package:flutter_highlight/themes/vs.dart'; -import 'package:flutter_highlight/themes/vs2015.dart'; -import 'package:yaru/icons.dart'; -import 'package:yaru/widgets.dart'; - -import './../messages/error.pb.dart'; - -class ErrorReporter { - static Future listenAllRustError( - GlobalKey navigatorState) async { - final stream = ReportError.rustSignalStream; - await for (final rustSignal in stream) { - final context = navigatorState.currentState!.overlay!.context; - await showDialog( - context: context, - builder: (context) => AlertDialog( - titlePadding: EdgeInsets.zero, - title: YaruDialogTitleBar( - title: const Text('Error'), - isClosable: true, - leading: Center( - child: YaruIconButton( - icon: const Icon(YaruIcons.copy), - tooltip: 'Copy', - onPressed: () async { - Clipboard.setData( - ClipboardData(text: rustSignal.message.errorMessage), - ); - }, - ), - ), - ), - contentPadding: EdgeInsets.zero, - content: SizedBox( - height: 400, - width: 700, - child: HighlightView( - rustSignal.message.errorMessage, - language: '', - theme: Theme.of(context).brightness == Brightness.dark - ? vs2015Theme - : vsTheme, - padding: const EdgeInsets.all(12), - textStyle: const TextStyle( - fontSize: 16, - ), - ), - ), - ), - ); - } - } -} diff --git a/babylonia_terminal_launcher/lib/models/fonts.dart b/babylonia_terminal_launcher/lib/models/fonts.dart deleted file mode 100644 index 8c52d24..0000000 --- a/babylonia_terminal_launcher/lib/models/fonts.dart +++ /dev/null @@ -1,38 +0,0 @@ -import 'package:fixnum/fixnum.dart'; -import 'package:flutter/material.dart'; - -import './../messages/steps/fonts.pb.dart'; -import './../providers/providers.dart'; - -enum FontsInstallationState { - idle, - installing, -} - -class Fonts with ChangeNotifier { - FontsInstallationState fontsState = FontsInstallationState.idle; - - Int64 currentProgress = Int64(0); - Int64 maxProgress = Int64(0); - - Future startInstallation(GameStateProvider gameState) async { - StartFontsInstallation().sendSignalToRust(); - final stream = FontsInstallationProgress.rustSignalStream; - await for (final rustSignal in stream) { - maxProgress = rustSignal.message.max; - currentProgress = rustSignal.message.current; - - if (fontsState == FontsInstallationState.idle) { - fontsState = FontsInstallationState.installing; - } - - notifyListeners(); - - if (currentProgress >= maxProgress) { - break; - } - } - - gameState.updateGameState(); - } -} diff --git a/babylonia_terminal_launcher/lib/models/game.dart b/babylonia_terminal_launcher/lib/models/game.dart deleted file mode 100644 index ab34b61..0000000 --- a/babylonia_terminal_launcher/lib/models/game.dart +++ /dev/null @@ -1,84 +0,0 @@ -import 'package:babylonia_terminal_launcher/messages/steps/game.pb.dart'; -import 'package:fixnum/fixnum.dart'; -import 'package:flutter/material.dart'; - -import './../providers/providers.dart'; - -enum GameInstallationState { - idle, - checkingFile, - downloading, - patching, -} - -enum GameRunState { - idle, - running, -} - -class Game with ChangeNotifier { - GameInstallationState gameInstallationState = GameInstallationState.idle; - GameRunState gameRunState = GameRunState.idle; - - Int64 currentProgress = Int64(0); - Int64 maxProgress = Int64(0); - Int64 currentSpeed = Int64(0); - - Future startInstallation(GameStateProvider gameState, bool isUpdating) async { - StartGameInstallation(isUpdating: isUpdating).sendSignalToRust(); - gameInstallationState = GameInstallationState.checkingFile; - notifyListeners(); - - final downloadProgresStream = GameInstallationProgress.rustSignalStream; - DateTime waitUntil = DateTime.now().add(const Duration(seconds: 1)); - Int64 lastProgress = Int64(0); - await for (final rustSignal in downloadProgresStream) { - if (gameInstallationState == GameInstallationState.checkingFile) { - gameInstallationState = GameInstallationState.downloading; - } - - currentProgress = rustSignal.message.current; - maxProgress = rustSignal.message.max; - - if (waitUntil.isBefore(DateTime.now())) { - if (currentSpeed == 0) { - currentSpeed = currentProgress; - lastProgress = currentProgress; - } else { - currentSpeed = currentProgress - lastProgress; - lastProgress = currentProgress; - } - - waitUntil = DateTime.now().add(const Duration(seconds: 1)); - } - - notifyListeners(); - - if (currentProgress >= maxProgress) { - break; - } - } - - gameInstallationState = GameInstallationState.patching; - notifyListeners(); - - final successStream = NotifyGameSuccessfullyInstalled.rustSignalStream; - await for (final _ in successStream) { - gameState.updateGameState(); - break; - } - } - - Future startGame() async { - RunGame().sendSignalToRust(); - gameRunState = GameRunState.running; - notifyListeners(); - - final stream = GameStopped.rustSignalStream; - await for (final _ in stream) { - gameRunState = GameRunState.idle; - notifyListeners(); - break; - } - } -} diff --git a/babylonia_terminal_launcher/lib/models/github.dart b/babylonia_terminal_launcher/lib/models/github.dart deleted file mode 100644 index bec5114..0000000 --- a/babylonia_terminal_launcher/lib/models/github.dart +++ /dev/null @@ -1,34 +0,0 @@ -import 'package:babylonia_terminal_launcher/messages/github.pb.dart'; - -class Github { - static bool _isFetchingProtonVersions = false; - static bool _isFetchingDXVKVersions = false; - - static Future> getProtonVersions() async { - if (!_isFetchingProtonVersions) { - _isFetchingProtonVersions = true; - AskProtonVersions().sendSignalToRust(); - final stream = ProtonVersions.rustSignalStream; - - await for (final rustSignal in stream) { - _isFetchingProtonVersions = false; - return rustSignal.message.versions; - } - } - return []; - } - - static Future> getDXVKVersions() async { - if (!_isFetchingDXVKVersions) { - _isFetchingDXVKVersions = true; - AskDXVKVersions().sendSignalToRust(); - final stream = DXVKVersions.rustSignalStream; - - await for (final rustSignal in stream) { - _isFetchingDXVKVersions = false; - return rustSignal.message.versions; - } - } - return []; - } -} diff --git a/babylonia_terminal_launcher/lib/models/proton.dart b/babylonia_terminal_launcher/lib/models/proton.dart deleted file mode 100644 index cd9b3ea..0000000 --- a/babylonia_terminal_launcher/lib/models/proton.dart +++ /dev/null @@ -1,53 +0,0 @@ -import 'package:fixnum/fixnum.dart'; -import 'package:flutter/material.dart'; - -import './../messages/steps/proton.pb.dart'; -import './../providers/providers.dart'; - -enum ProtonInstallationState { - idle, - downloading, - decompressing, -} - -class Proton with ChangeNotifier { - ProtonInstallationState protonState = ProtonInstallationState.idle; - - Int64 currentProgress = Int64(0); - Int64 maxProgress = Int64(0); - - Future startInstallation( - GameStateProvider gameStateProvider, String protonVersion) async { - StartProtonInstallation(protonVersion: protonVersion).sendSignalToRust(); - final progressStream = ProtonDownloadProgress.rustSignalStream; - await for (final rustSignal in progressStream) { - currentProgress = rustSignal.message.current; - maxProgress = rustSignal.message.max; - - if (protonState == ProtonInstallationState.idle) { - protonState = ProtonInstallationState.downloading; - } - - notifyListeners(); - - if (currentProgress >= maxProgress) { - break; - } - } - - final notificationDecompressingStream = - NotifyProtonStartDecompressing.rustSignalStream; - await for (final _ in notificationDecompressingStream) { - protonState = ProtonInstallationState.decompressing; - notifyListeners(); - break; - } - - final notificationInstalledStream = - NotifyProtonSuccessfullyInstalled.rustSignalStream; - await for (final _ in notificationInstalledStream) { - gameStateProvider.updateGameState(); - break; - } - } -} diff --git a/babylonia_terminal_launcher/lib/models/release_notice.dart b/babylonia_terminal_launcher/lib/models/release_notice.dart deleted file mode 100644 index 7a74e65..0000000 --- a/babylonia_terminal_launcher/lib/models/release_notice.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'package:flutter/services.dart'; - -class ReleaseNoticeInfo { - static Future getInfo(String currentVersion) async { - final content = await rootBundle.loadString("CHANGELOG.md"); - return parseChangelog(content, currentVersion); - } - - static String parseChangelog(String content, String currentVersion) { - final regex = RegExp(r'(## \[' + - currentVersion + - '].+)(?(.|\n)*)(?=(\[unreleased\]|(## \[\d\.\d\.\d\])))'); - final match = regex.firstMatch(content); - if (match != null) { - final changelogContent = match.namedGroup("content"); - - if (changelogContent != null) { - return changelogContent; - } - } - return "### Failed to parse info"; - } -} diff --git a/babylonia_terminal_launcher/lib/models/settings.dart b/babylonia_terminal_launcher/lib/models/settings.dart deleted file mode 100644 index 1b7c941..0000000 --- a/babylonia_terminal_launcher/lib/models/settings.dart +++ /dev/null @@ -1,162 +0,0 @@ -import 'dart:async'; - -import 'package:flutter/material.dart'; -import 'package:shared_preferences/shared_preferences.dart'; - -import './config.dart'; - -enum BackgroundType { - contain, - fill, - cover, - fitHeight, - fitWidth, - disable, -} - -class Settings { - final SharedPreferences prefs; - String? _launchOptions; - - Settings({required this.prefs, required String? launchOptions}) - : _launchOptions = launchOptions; - - static Future create() async { - final prefs = await SharedPreferences.getInstance(); - final launchOptions = await Config.getLaunchOptions(); - return Settings( - prefs: prefs, - launchOptions: launchOptions, - ); - } - - final String _firstTimeKey = 'first_time'; - bool? get firstTime { - return prefs.getBool(_firstTimeKey); - } - - set firstTime(bool? value) { - prefs.setBool(_firstTimeKey, value!); - } - - final String _lastVersionKey = 'last_version'; - String? get lastVersion { - return prefs.getString(_lastVersionKey); - } - - set lastVersion(String? value) { - prefs.setString(_lastVersionKey, value!); - } - - String? get launchOptions { - return _launchOptions; - } - - set launchOptions(String? value) { - Config.setLaunchOptions(value); - _launchOptions = value; - } - - BackgroundType? _backgroundType; - final String _backgroundTypeKey = 'background_type'; - - BackgroundType get selectedBackgroundType { - final bt = prefs.getString(_backgroundTypeKey); - if (bt == null) { - _backgroundType = BackgroundType.disable; - prefs.setString( - _backgroundTypeKey, - getStringNameOfBackgroundType(_backgroundType!), - ); - } else { - _backgroundType ??= getBackgroundTypeFromString(bt); - } - - return _backgroundType!; - } - - set selectedBackgroundType(BackgroundType selectedBackground) { - _backgroundType = selectedBackground; - prefs.setString( - _backgroundTypeKey, - getStringNameOfBackgroundType(selectedBackground), - ); - } - - int? _backgroundId; - String backgroundIdKey = 'background_id'; - - int? get backgroundId { - _backgroundId ??= prefs.getInt(backgroundIdKey); - - return _backgroundId; - } - - set backgroundId(int? value) { - _backgroundId = value; - prefs.setInt(backgroundIdKey, value!); - } - - static final List backgoundList = [ - BackgroundType.contain, - BackgroundType.fill, - BackgroundType.cover, - BackgroundType.fitHeight, - BackgroundType.fitWidth, - BackgroundType.disable, - ]; - - static String getStringNameOfBackgroundType(BackgroundType backgroundType) { - switch (backgroundType) { - case BackgroundType.contain: - return 'contain'; - case BackgroundType.fill: - return 'fill'; - case BackgroundType.cover: - return 'cover'; - case BackgroundType.fitHeight: - return 'fitHeight'; - case BackgroundType.fitWidth: - return 'fitWidth'; - case BackgroundType.disable: - return 'disable'; - } - } - - static BackgroundType getBackgroundTypeFromString(String background) { - switch (background) { - case 'contain': - return BackgroundType.contain; - case 'fill': - return BackgroundType.fill; - case 'cover': - return BackgroundType.cover; - case 'fitHeight': - return BackgroundType.fitHeight; - case 'fitWidth': - return BackgroundType.fitWidth; - case 'disable': - return BackgroundType.disable; - default: - throw FormatException('Can\'t convert String to Enum BackgroundType!'); - } - } - - static BoxFit getBoxFitFromBackgroundType(BackgroundType backgroundType) { - switch (backgroundType) { - case BackgroundType.contain: - return BoxFit.contain; - case BackgroundType.fill: - return BoxFit.fill; - case BackgroundType.cover: - return BoxFit.cover; - case BackgroundType.fitHeight: - return BoxFit.fitHeight; - case BackgroundType.fitWidth: - return BoxFit.fitWidth; - case BackgroundType.disable: - throw FormatException( - 'Can\'t convert BackgroundType to widget BoxFit!'); - } - } -} diff --git a/babylonia_terminal_launcher/lib/providers/game_state_provider.dart b/babylonia_terminal_launcher/lib/providers/game_state_provider.dart deleted file mode 100644 index bca7eb4..0000000 --- a/babylonia_terminal_launcher/lib/providers/game_state_provider.dart +++ /dev/null @@ -1,43 +0,0 @@ -import 'package:babylonia_terminal_launcher/messages/game_state.pb.dart'; -import 'package:flutter/material.dart'; - -class GameStateProvider with ChangeNotifier { - States? _gameState; - bool isUpdating = false; - bool haveToSetup = false; - - get gameState { - return _gameState; - } - - Future updateGameState() async { - if (!isUpdating) { - isUpdating = true; - AskGameState().sendSignalToRust(); - - final stream = GameState.rustSignalStream; - await for (final rustSignal in stream) { - _gameState = rustSignal.message.state; - break; - } - isUpdating = false; - notifyListeners(); - } - } - - void updateSetup() { - haveToSetup = needToSetup(); - notifyListeners(); - } - - bool needToSetup() { - return _gameState == States.ProtonNotInstalled || - _gameState == States.DXVKNotInstalled || - _gameState == States.FontNotInstalled || - _gameState == States.DependecieNotInstalled; - } - - bool isGameUpdating() { - return _gameState == States.GameNeedUpdate; - } -} diff --git a/babylonia_terminal_launcher/lib/providers/providers.dart b/babylonia_terminal_launcher/lib/providers/providers.dart deleted file mode 100644 index e0dfcdb..0000000 --- a/babylonia_terminal_launcher/lib/providers/providers.dart +++ /dev/null @@ -1,2 +0,0 @@ -export './settings_provider.dart'; -export './game_state_provider.dart'; diff --git a/babylonia_terminal_launcher/lib/providers/settings_provider.dart b/babylonia_terminal_launcher/lib/providers/settings_provider.dart deleted file mode 100644 index 5595319..0000000 --- a/babylonia_terminal_launcher/lib/providers/settings_provider.dart +++ /dev/null @@ -1,67 +0,0 @@ -import 'package:flutter/foundation.dart'; - -import './../models/settings.dart'; -import './../models/config.dart'; - -class SettingsProvider with ChangeNotifier { - late final Settings _settings; - - Future init() async { - _settings = await Settings.create(); - if (kDebugMode) { - _settings.firstTime = true; - _settings.prefs.clear(); - } - await Config.update(); - } - - bool get firstTime { - final result = _settings.firstTime; - if (result == null) { - _settings.firstTime = true; - } - return _settings.firstTime!; - } - - set firstTime(bool value) { - _settings.firstTime = value; - notifyListeners(); - } - - String get lastVersion { - final result = _settings.lastVersion; - if (result == null) { - return ''; - } - return result; - } - - set lastVersion(String value) { - _settings.lastVersion = value; - } - - set setSelectedBackgroundType(BackgroundType selectedBackground) { - _settings.selectedBackgroundType = selectedBackground; - notifyListeners(); - } - - get getSelectedBackgroundType { - return _settings.selectedBackgroundType; - } - - int? get backgroundId { - return _settings.backgroundId; - } - - set backgroundId(int? value) { - _settings.backgroundId = value; - } - - String? get launchOptions { - return _settings.launchOptions; - } - - set launchOptions(String? value) { - _settings.launchOptions = value; - } -} diff --git a/babylonia_terminal_launcher/lib/screens/home_screen.dart b/babylonia_terminal_launcher/lib/screens/home_screen.dart deleted file mode 100644 index ffeb632..0000000 --- a/babylonia_terminal_launcher/lib/screens/home_screen.dart +++ /dev/null @@ -1,79 +0,0 @@ -import 'package:babylonia_terminal_launcher/messages/game_state.pb.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; - -import '../widgets/background_widget.dart'; -import '../widgets/serious_lee_widget.dart'; -import '../widgets/play_button.dart'; -import '../widgets/steps/game_steps_widget.dart'; -import './../providers/providers.dart'; -import './../models/settings.dart'; -import './../models/background.dart'; - -class HomeScreen extends StatelessWidget { - const HomeScreen({super.key}); - - @override - Widget build(BuildContext context) { - final gameStateProvider = Provider.of(context); - - return Stack( - children: [ - const ShowBackground(), - gameStateProvider.gameState != States.GameInstalled - ? const GameSteps() - : const PlayButton(), - ], - ); - } -} - -class ShowBackground extends StatefulWidget { - const ShowBackground({super.key}); - - @override - State createState() => _ShowBackgroundState(); -} - -class _ShowBackgroundState extends State { - bool isLoading = false; - bool hadLoaded = false; - late final Background _background; - - @override - void didChangeDependencies() async { - if (!hadLoaded) { - isLoading = true; - - _background = - await Background.get(Provider.of(context)); - - setState(() { - isLoading = false; - hadLoaded = true; - }); - } - - super.didChangeDependencies(); - } - - @override - Widget build(BuildContext context) { - if (Provider.of(context).getSelectedBackgroundType != - BackgroundType.disable) { - if (isLoading) { - return const SeriousLeeWidget( - title: 'Babylonia Terminal', - ); - } else { - return BackgroundWidget( - background: _background, - ); - } - } else { - return const SeriousLeeWidget( - title: 'Babylonia Terminal', - ); - } - } -} diff --git a/babylonia_terminal_launcher/lib/screens/screens.dart b/babylonia_terminal_launcher/lib/screens/screens.dart deleted file mode 100644 index 4ff2b93..0000000 --- a/babylonia_terminal_launcher/lib/screens/screens.dart +++ /dev/null @@ -1,36 +0,0 @@ -import 'package:babylonia_terminal_launcher/screens/settings_screen.dart'; -import 'package:flutter/material.dart'; -import 'package:yaru/icons.dart'; - -import 'package:babylonia_terminal_launcher/screens/home_screen.dart'; - -class Screens { - static final _screens = { - const HomeScreen(): ( - const Icon(YaruIcons.home_filled), - const Icon(YaruIcons.home), - 'Home', - ), - const SettingsScreen(): ( - const Icon(YaruIcons.settings_filled), - const Icon(YaruIcons.settings), - 'Settings', - ), - }; - - static List drawerItem( - {required Function(int) onSelected, required int selectedIndex}) => - [ - for (int i = 0; i < Screens._screens.values.length; i++) - ListTile( - selected: i == selectedIndex, - leading: i == selectedIndex - ? Screens._screens.values.elementAt(i).$1 - : Screens._screens.values.elementAt(i).$2, - title: Text(Screens._screens.values.elementAt(i).$3), - onTap: () => onSelected(i), - ), - ]; - - static Widget getCurrent(int index) => Screens._screens.keys.toList()[index]; -} diff --git a/babylonia_terminal_launcher/lib/screens/settings/game_settings_page.dart b/babylonia_terminal_launcher/lib/screens/settings/game_settings_page.dart deleted file mode 100644 index 6d64543..0000000 --- a/babylonia_terminal_launcher/lib/screens/settings/game_settings_page.dart +++ /dev/null @@ -1,12 +0,0 @@ -import 'package:flutter/material.dart'; - -class GameSettingsPage extends StatelessWidget { - const GameSettingsPage({super.key}); - - @override - Widget build(BuildContext context) { - return const Center( - child: Text('Game settings'), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/screens/settings/general_settings_page.dart b/babylonia_terminal_launcher/lib/screens/settings/general_settings_page.dart deleted file mode 100644 index f2dea99..0000000 --- a/babylonia_terminal_launcher/lib/screens/settings/general_settings_page.dart +++ /dev/null @@ -1,69 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:yaru/yaru.dart'; - -import './../../providers/settings_provider.dart'; - -class GeneralSettingsPage extends StatefulWidget { - const GeneralSettingsPage({super.key}); - - @override - State createState() => _GeneralSettingsPageState(); -} - -class _GeneralSettingsPageState extends State { - final textFieldController = TextEditingController(); - String? _launchOptionsError; - - bool isLaunchOptionsValid(String launchOptions) { - return RegExp(r'^.*%command%.*$').hasMatch(launchOptions); - } - - @override - Widget build(BuildContext context) { - final provider = Provider.of(context, listen: false); - final launchOptions = provider.launchOptions; - - return Center( - child: Column( - children: [ - Padding( - padding: const EdgeInsets.all(15.0), - child: SizedBox( - child: YaruSection( - headline: const Text('Launch options'), - child: TextFormField( - initialValue: launchOptions, - decoration: InputDecoration( - labelText: - 'Your custom launch options, E.G. : mangohud %command%', - errorText: _launchOptionsError, - ), - validator: (value) => _launchOptionsError, - onChanged: (String text) { - if (text.isEmpty) { - setState(() { - _launchOptionsError = null; - }); - provider.launchOptions = null; - } else if (!isLaunchOptionsValid(text)) { - setState(() { - _launchOptionsError = - 'You need to put \'%command%\' in your command'; - }); - } else { - setState(() { - _launchOptionsError = null; - }); - provider.launchOptions = text; - } - }, - ), - ), - ), - ), - ], - ), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/screens/settings/settings_pages.dart b/babylonia_terminal_launcher/lib/screens/settings/settings_pages.dart deleted file mode 100644 index 89b618e..0000000 --- a/babylonia_terminal_launcher/lib/screens/settings/settings_pages.dart +++ /dev/null @@ -1,33 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:yaru/yaru.dart'; - -import './general_settings_page.dart'; -import './game_settings_page.dart'; -import './style_settings_page.dart'; - -class SettingsPage { - static final _pages = { - const GeneralSettingsPage(): ( - const Icon(YaruIcons.gears), - 'General', - ), - const GameSettingsPage(): ( - const Icon(YaruIcons.game_controller_filled), - 'Game', - ), - const StyleSettingsPage(): ( - const Icon(YaruIcons.desktop_appearance_filled), - 'Style', - ), - }; - - static List tabItems() => [ - for (int i = 0; i < SettingsPage._pages.values.length; i++) - YaruTab( - icon: SettingsPage._pages.values.elementAt(i).$1, - label: SettingsPage._pages.values.elementAt(i).$2, - ), - ]; - - static List getPages() => SettingsPage._pages.keys.toList(); -} diff --git a/babylonia_terminal_launcher/lib/screens/settings/style_settings_page.dart b/babylonia_terminal_launcher/lib/screens/settings/style_settings_page.dart deleted file mode 100644 index 60fd75b..0000000 --- a/babylonia_terminal_launcher/lib/screens/settings/style_settings_page.dart +++ /dev/null @@ -1,69 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:yaru/yaru.dart'; - -import './../../providers/settings_provider.dart'; -import './../../models/settings.dart'; - -class StyleSettingsPage extends StatefulWidget { - const StyleSettingsPage({super.key}); - - @override - State createState() => _StyleSettingsPageState(); -} - -class _StyleSettingsPageState extends State { - late BackgroundType _radioValue; - - void setBackgroundValue( - BuildContext context, - SettingsProvider provider, - BackgroundType? value, - ) { - if (value != null) { - provider.setSelectedBackgroundType = value; - setState(() { - _radioValue = value; - }); - } - } - - @override - Widget build(BuildContext context) { - final provider = Provider.of(context, listen: false); - _radioValue = provider.getSelectedBackgroundType; - - return Center( - child: Column( - children: [ - Padding( - padding: const EdgeInsets.all(15.0), - child: SizedBox( - child: YaruSection( - headline: const Text('Background video'), - child: Column( - children: Settings.backgoundList - .map( - (b) => YaruRadioListTile( - value: b, - groupValue: _radioValue, - onChanged: (v) => - setBackgroundValue(context, provider, v), - toggleable: true, - title: Text( - Settings.getStringNameOfBackgroundType( - b, - ), - ), - ), - ) - .toList(), - ), - ), - ), - ), - ], - ), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/screens/settings_screen.dart b/babylonia_terminal_launcher/lib/screens/settings_screen.dart deleted file mode 100644 index 0eac636..0000000 --- a/babylonia_terminal_launcher/lib/screens/settings_screen.dart +++ /dev/null @@ -1,52 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:yaru/yaru.dart'; - -import './settings/settings_pages.dart'; - -class SettingsScreen extends StatefulWidget { - const SettingsScreen({super.key}); - - @override - State createState() => _SettingsScreenState(); -} - -class _SettingsScreenState extends State - with TickerProviderStateMixin { - late TabController tabController; - - @override - void initState() { - super.initState(); - tabController = - TabController(length: SettingsPage.getPages().length, vsync: this); - } - - @override - void dispose() { - super.dispose(); - tabController.dispose(); - } - - @override - Widget build(BuildContext context) { - return Center( - child: Column( - children: [ - Padding( - padding: const EdgeInsets.symmetric(horizontal: 15.0), - child: YaruTabBar( - tabController: tabController, - tabs: SettingsPage.tabItems(), - ), - ), - Expanded( - child: TabBarView( - controller: tabController, - children: SettingsPage.getPages(), - ), - ), - ], - ), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/screens/setup_screen.dart b/babylonia_terminal_launcher/lib/screens/setup_screen.dart deleted file mode 100644 index f6e63f9..0000000 --- a/babylonia_terminal_launcher/lib/screens/setup_screen.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; - -import './../providers/settings_provider.dart'; -import './setups/welcome_screen.dart'; -import 'setups/steps_screen.dart'; - -class SetupScreen extends StatelessWidget { - const SetupScreen({super.key}); - - @override - Widget build(BuildContext context) { - final settingsProvider = Provider.of(context); - - return Scaffold( - appBar: AppBar( - title: const Text("Babylonia Terminal"), - centerTitle: true, - ), - body: settingsProvider.firstTime ? const WelcomeScreen() : StepsScreen(), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/screens/setups/steps_screen.dart b/babylonia_terminal_launcher/lib/screens/setups/steps_screen.dart deleted file mode 100644 index 6ba09ab..0000000 --- a/babylonia_terminal_launcher/lib/screens/setups/steps_screen.dart +++ /dev/null @@ -1,81 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; -import 'package:provider/provider.dart'; -import 'package:yaru/yaru.dart'; - -import './../../messages/game_state.pb.dart'; -import './../../providers/providers.dart'; -import './../../widgets/selectable_yaru_expansion_panel.dart'; -import './../../widgets/simple_button.dart'; -import './../../widgets/steps/proton_steps_widget.dart'; -import './../../widgets/steps/dxvk_steps_widget.dart'; -import './../../widgets/steps/fonts_steps_widget.dart'; -import './../../widgets/steps/dependencies_steps_widget.dart'; - -class StepsScreen extends StatelessWidget { - StepsScreen({super.key}); - final SectionController controller = SectionController(selectedItem: 0); - - @override - Widget build(BuildContext context) { - final gameStateProvider = Provider.of(context); - switch (gameStateProvider.gameState) { - case States.ProtonNotInstalled: - controller.updateSection(0); - break; - case States.DXVKNotInstalled: - controller.updateSection(1); - break; - case States.FontNotInstalled: - controller.updateSection(2); - break; - case States.DependecieNotInstalled: - controller.updateSection(3); - break; - default: - controller.updateSection(null); - break; - } - - return Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - ConstrainedBox( - constraints: const BoxConstraints( - maxHeight: 600, - maxWidth: 750, - ), - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 25.0), - child: SelectableYaruExpansionPanel( - controller: controller, - headers: const [ - Text("Proton"), - Text("DXVK"), - Text("Fonts"), - Text("Dependencies"), - ], - children: const [ - ProtonSteps(), - DXVKSteps(), - FontsSteps(), - DependenciesSteps(), - ], - ), - ), - ), - Padding( - padding: const EdgeInsets.only(top: 12.0), - child: SimpleButton( - onPressed: !gameStateProvider.needToSetup() - ? () => gameStateProvider.updateSetup() - : null, - child: const Text('next'), - ), - ), - ], - ), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/screens/setups/welcome_screen.dart b/babylonia_terminal_launcher/lib/screens/setups/welcome_screen.dart deleted file mode 100644 index 9eabc9d..0000000 --- a/babylonia_terminal_launcher/lib/screens/setups/welcome_screen.dart +++ /dev/null @@ -1,40 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; - -import './../../providers/settings_provider.dart'; -import './../../widgets/serious_lee_widget.dart'; -import './../../widgets/simple_button.dart'; - -class WelcomeScreen extends StatelessWidget { - const WelcomeScreen({super.key}); - - @override - Widget build(BuildContext context) { - return Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const SeriousLeeWidget(title: 'Welcome to Babylonia Terminal!'), - const Text( - 'We have to setup some things first', - style: TextStyle( - fontSize: 20, - ), - ), - Padding( - padding: const EdgeInsets.only(top: 15.0), - child: SizedBox( - width: 200, - child: SimpleButton( - onPressed: () => - Provider.of(context, listen: false) - .firstTime = false, - child: const Text('Start'), - ), - ), - ) - ], - ), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/widgets/background_widget.dart b/babylonia_terminal_launcher/lib/widgets/background_widget.dart deleted file mode 100644 index 9ab8850..0000000 --- a/babylonia_terminal_launcher/lib/widgets/background_widget.dart +++ /dev/null @@ -1,56 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:media_kit/media_kit.dart'; -import 'package:media_kit_video/media_kit_video.dart'; -import 'package:provider/provider.dart'; - -import './../providers/settings_provider.dart'; -import './../models/settings.dart'; -import './../models/background.dart'; - -class BackgroundWidget extends StatefulWidget { - const BackgroundWidget({super.key, required this.background}); - - final Background background; - - @override - State createState() => _BackgroundWidgetState(); -} - -class _BackgroundWidgetState extends State { - late final player = Player( - configuration: const PlayerConfiguration(), - ); - late final controller = VideoController(player); - - @override - void initState() { - super.initState(); - player.open( - Media( - widget.background.path, - ), - ); - player.setPlaylistMode(PlaylistMode.loop); - } - - @override - void dispose() { - player.dispose(); - super.dispose(); - } - - @override - Widget build(BuildContext context) { - final provider = Provider.of(context); - - player.play(); - return Video( - controller: controller, - controls: NoVideoControls, - wakelock: false, - fit: Settings.getBoxFitFromBackgroundType( - provider.getSelectedBackgroundType, - ), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/widgets/gtk_spinner_widget.dart b/babylonia_terminal_launcher/lib/widgets/gtk_spinner_widget.dart deleted file mode 100644 index 3a8ab5c..0000000 --- a/babylonia_terminal_launcher/lib/widgets/gtk_spinner_widget.dart +++ /dev/null @@ -1,112 +0,0 @@ -import 'dart:math'; - -import 'package:flutter/material.dart'; - -class GtkSpinner extends StatefulWidget { - const GtkSpinner({ - super.key, - this.size = 15.0, - this.strokeSize = 5.0, - this.color = Colors.grey, - }); - final double size; - final double strokeSize; - final Color color; - - @override - State createState() => _GtkSpinnerState(); -} - -class _GtkSpinnerState extends State - with SingleTickerProviderStateMixin { - late AnimationController _controller; - - @override - void initState() { - super.initState(); - _controller = AnimationController( - vsync: this, - duration: const Duration(seconds: 1, milliseconds: 500), - )..repeat(); - } - - @override - void dispose() { - _controller.dispose(); - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.all(8.0), - child: AnimatedBuilder( - animation: _controller, - builder: (context, child) { - return CustomPaint( - painter: _GtkSpinnerPainter( - _controller.value * 2 * pi, - widget.strokeSize, - widget.color, - ), - size: Size(widget.size, widget.size), - ); - }, - ), - ); - } -} - -class _GtkSpinnerPainter extends CustomPainter { - _GtkSpinnerPainter(this.angle, this.strokeSize, this.color); - - final double angle; - final double strokeSize; - final Color color; - - @override - void paint(Canvas canvas, Size size) { - final double radius = size.width / 2; - final Rect rect = - Rect.fromCircle(center: Offset(radius, radius), radius: radius); - - // Define the gradient for the arc - final Paint gradientPaint = Paint() - ..shader = SweepGradient( - startAngle: 0.0, - endAngle: 2 * pi, - colors: [ - color, - color.withOpacity(0.0), - ], - stops: const [0.0, 0.90], - transform: GradientRotation(angle), - ).createShader(rect) - ..style = PaintingStyle.stroke - ..strokeCap = StrokeCap.round - ..strokeWidth = strokeSize; - - // Draw the gradient arc - canvas.drawArc( - rect, - angle, - 7 * pi / 4, // Draw an arc of 300 degrees - false, - gradientPaint, - ); - - // Add two circles at the start and end to create the rounded caps effect - final Paint capPaint = Paint() - ..color = color - ..style = PaintingStyle.fill; - - canvas.drawCircle( - Offset(radius + radius * cos(angle), radius + radius * sin(angle)), - strokeSize / 2, - capPaint, - ); - } - - @override - bool shouldRepaint(CustomPainter oldDelegate) => true; -} diff --git a/babylonia_terminal_launcher/lib/widgets/play_button.dart b/babylonia_terminal_launcher/lib/widgets/play_button.dart deleted file mode 100644 index 0198df4..0000000 --- a/babylonia_terminal_launcher/lib/widgets/play_button.dart +++ /dev/null @@ -1,54 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; - -import './simple_button.dart'; -import './../models/game.dart'; - -class PlayButton extends StatelessWidget { - const PlayButton({super.key}); - - @override - Widget build(BuildContext context) { - final game = Provider.of(context); - - return Padding( - padding: const EdgeInsets.all(50.0), - child: Row( - children: [ - const Expanded( - child: SizedBox(), - ), - const Expanded( - child: SizedBox(), - ), - Expanded( - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - ConstrainedBox( - constraints: const BoxConstraints( - maxWidth: 600, - maxHeight: 50, - ), - child: SimpleButton( - onPressed: game.gameRunState == GameRunState.idle - ? () { - Provider.of(context, listen: false) - .startGame(); - } - : null, - child: Center( - child: game.gameRunState == GameRunState.idle - ? const Text("Play") - : const Text("Running..."), - ), - ), - ), - ], - ), - ), - ], - ), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/widgets/release_notice_widget.dart b/babylonia_terminal_launcher/lib/widgets/release_notice_widget.dart deleted file mode 100644 index 4c16eef..0000000 --- a/babylonia_terminal_launcher/lib/widgets/release_notice_widget.dart +++ /dev/null @@ -1,59 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_markdown/flutter_markdown.dart'; -import 'package:yaru/yaru.dart'; - -class ReleaseNotice extends StatelessWidget { - const ReleaseNotice( - {super.key, required this.currentVersion, required this.info}); - - final String currentVersion; - final String info; - - @override - Widget build(BuildContext context) { - return AlertDialog( - titlePadding: EdgeInsets.zero, - title: const YaruDialogTitleBar( - title: Text('Release notice'), - isClosable: true, - ), - contentPadding: EdgeInsets.zero, - content: SizedBox( - height: 400, - width: 700, - child: Column( - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Text( - "Version $currentVersion just dropped!", - style: const TextStyle( - fontSize: 32, - ), - ), - ), - const Align( - alignment: Alignment.centerLeft, - child: Padding( - padding: EdgeInsets.only(left: 25.0), - child: Text( - "What's new :", - style: TextStyle( - fontSize: 16, - ), - ), - ), - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 30.0), - child: SizedBox( - height: 300, - child: Markdown(data: info), - ), - ), - ], - ), - ), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/widgets/selectable_yaru_expansion_panel.dart b/babylonia_terminal_launcher/lib/widgets/selectable_yaru_expansion_panel.dart deleted file mode 100644 index 2759e09..0000000 --- a/babylonia_terminal_launcher/lib/widgets/selectable_yaru_expansion_panel.dart +++ /dev/null @@ -1,237 +0,0 @@ -// This file has been literally copied from https://github.com/ubuntu/yaru.dart/blob/main/lib/src/widgets/yaru_expansion_panel.dart -// and https://github.com/ubuntu/yaru.dart/blob/main/lib/src/widgets/yaru_expandable.dart -// Just want to make some change to it for specific needs instead of contributing to it, because I'm too lazy for that and I think they don't want these change - -import 'package:flutter/material.dart'; - -import 'package:yaru/constants.dart'; -import 'package:yaru/widgets.dart'; - -class SectionController extends ChangeNotifier { - int? selectedItem; - Function()? onChange; - - SectionController({required this.selectedItem}); - - void updateSection(int? newSelectedItem) { - selectedItem = newSelectedItem; - notifyListeners(); - if (onChange != null) { - onChange!(); - } - } -} - -class SelectableYaruExpansionPanel extends StatefulWidget { - const SelectableYaruExpansionPanel({ - super.key, - required this.controller, - required this.children, - this.borderRadius = - const BorderRadius.all(Radius.circular(kYaruContainerRadius)), - this.border, - required this.headers, - this.width, - this.height, - this.padding, - this.margin, - this.expandIconPadding = const EdgeInsets.all(10), - this.headerPadding = const EdgeInsets.only(left: 20), - this.color, - this.placeDividers = true, - this.expandIcon, - this.shrinkWrap = true, - this.scrollPhysics = const ClampingScrollPhysics(), - this.collapseOnExpand = true, - }) : assert(headers.length == children.length); - - final SectionController controller; - final List children; - final List headers; - final BorderRadius borderRadius; - final BoxBorder? border; - final double? width; - final double? height; - final EdgeInsetsGeometry? padding; - final EdgeInsetsGeometry? margin; - final EdgeInsetsGeometry expandIconPadding; - final EdgeInsetsGeometry headerPadding; - final Color? color; - final bool placeDividers; - final Widget? expandIcon; - final bool shrinkWrap; - final ScrollPhysics scrollPhysics; - final bool collapseOnExpand; - - @override - State createState() => - _SelectableYaruExpansionPanelState(); -} - -class _SelectableYaruExpansionPanelState - extends State { - late List _expandedStore; - - @override - void initState() { - super.initState(); - widget.controller.onChange = widget.collapseOnExpand - ? () { - if (widget.controller.selectedItem != null) { - _expandedStore[widget.controller.selectedItem!]; - for (var n = 0; n < _expandedStore.length; n++) { - if (_expandedStore[n]) { - setState(() => _expandedStore[n] = false); - } - } - } else { - for (var n = 0; n < _expandedStore.length; n++) { - setState(() => _expandedStore[n] = false); - } - } - } - : null; - _expandedStore = - List.generate(widget.children.length, (index) => false); - } - - @override - Widget build(BuildContext context) { - assert(widget.children.length == widget.headers.length); - - if (widget.controller.selectedItem != null) { - _expandedStore[widget.controller.selectedItem!] = true; - } - - return YaruBorderContainer( - border: widget.border, - borderRadius: widget.borderRadius, - color: widget.color, - width: widget.width, - height: widget.height, - padding: widget.padding, - margin: widget.margin, - child: widget.placeDividers - ? ListView.separated( - shrinkWrap: widget.shrinkWrap, - physics: widget.scrollPhysics, - itemCount: widget.children.length, - itemBuilder: _itemBuilder, - separatorBuilder: (context, index) { - if (index != widget.children.length - 1) { - return const Padding( - padding: EdgeInsets.symmetric(vertical: 1), - child: Divider(), - ); - } else { - return const SizedBox.shrink(); - } - }, - ) - : ListView.builder( - shrinkWrap: widget.shrinkWrap, - physics: widget.scrollPhysics, - itemCount: widget.children.length, - itemBuilder: _itemBuilder, - ), - ); - } - - Widget? _itemBuilder(context, index) { - return YaruExpandable( - expandIconPadding: widget.expandIconPadding, - isExpanded: _expandedStore[index], - header: Padding( - padding: widget.headerPadding, - child: widget.headers[index], - ), - child: widget.children[index], - ); - } -} - -const _kAnimationDuration = Duration(milliseconds: 250); -const _kAnimationCurve = Curves.easeInOutCubic; - -class YaruExpandable extends StatefulWidget { - const YaruExpandable({ - super.key, - required this.header, - this.expandIconPadding = EdgeInsets.zero, - required this.child, - this.collapsedChild, - this.gapHeight = 4.0, - this.isExpanded = false, - this.onChange, - }); - - final Widget header; - final EdgeInsetsGeometry expandIconPadding; - final Widget child; - final Widget? collapsedChild; - final double gapHeight; - final bool isExpanded; - final ValueChanged? onChange; - - @override - State createState() => _YaruExpandableState(); -} - -class _YaruExpandableState extends State { - late bool _isExpanded; - - @override - void initState() { - _isExpanded = widget.isExpanded; - super.initState(); - } - - @override - void didUpdateWidget(YaruExpandable oldWidget) { - super.didUpdateWidget(oldWidget); - if (oldWidget.isExpanded != widget.isExpanded) { - _isExpanded = widget.isExpanded; - } - } - - @override - Widget build(BuildContext context) { - return Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - widget.header, - Padding( - padding: widget.expandIconPadding, - child: const SizedBox( - height: 36, - width: 36, - ), - ), - ], - ), - AnimatedCrossFade( - firstChild: _buildChild(widget.child), - secondChild: widget.collapsedChild != null - ? _buildChild(widget.collapsedChild!) - : Container(), - crossFadeState: _isExpanded - ? CrossFadeState.showFirst - : CrossFadeState.showSecond, - sizeCurve: _kAnimationCurve, - duration: _kAnimationDuration, - ), - ], - ); - } - - Widget _buildChild(Widget child) { - return Column( - children: [ - SizedBox(height: widget.gapHeight), - child, - ], - ); - } -} diff --git a/babylonia_terminal_launcher/lib/widgets/serious_lee_widget.dart b/babylonia_terminal_launcher/lib/widgets/serious_lee_widget.dart deleted file mode 100644 index e011935..0000000 --- a/babylonia_terminal_launcher/lib/widgets/serious_lee_widget.dart +++ /dev/null @@ -1,32 +0,0 @@ -import 'package:flutter/material.dart'; - -class SeriousLeeWidget extends StatelessWidget { - const SeriousLeeWidget({super.key, required this.title}); - final String title; - - @override - Widget build(BuildContext context) { - return Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SizedBox( - height: 300, - child: Image.asset('assets/images/Lee6.png'), - ), - Center( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - title, - style: const TextStyle( - fontSize: 34, - ), - ), - ), - ) - ], - ), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/widgets/simple_button.dart b/babylonia_terminal_launcher/lib/widgets/simple_button.dart deleted file mode 100644 index c4cbf4f..0000000 --- a/babylonia_terminal_launcher/lib/widgets/simple_button.dart +++ /dev/null @@ -1,30 +0,0 @@ -import 'package:flutter/material.dart'; - -class SimpleButton extends StatelessWidget { - const SimpleButton({super.key, required this.child, required this.onPressed}); - final Function()? onPressed; - final Widget? child; - - @override - Widget build(BuildContext context) { - return ElevatedButton( - style: ButtonStyle( - backgroundColor: MaterialStateProperty.resolveWith((states) { - if (states.contains(MaterialState.disabled)) { - return Colors.grey; - } - return Colors.blue[500]; - }), - side: MaterialStateProperty.all(BorderSide.none), - shape: MaterialStateProperty.all( - RoundedRectangleBorder( - borderRadius: BorderRadius.circular(100.0), - side: const BorderSide(color: Colors.red), - ), - ), - ), - onPressed: onPressed, - child: child, - ); - } -} diff --git a/babylonia_terminal_launcher/lib/widgets/steps/dependencies_steps_widget.dart b/babylonia_terminal_launcher/lib/widgets/steps/dependencies_steps_widget.dart deleted file mode 100644 index 18718e6..0000000 --- a/babylonia_terminal_launcher/lib/widgets/steps/dependencies_steps_widget.dart +++ /dev/null @@ -1,85 +0,0 @@ -import 'package:babylonia_terminal_launcher/widgets/gtk_spinner_widget.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; - -import './../../models/dependencies.dart'; -import './../../providers/providers.dart'; -import './../../widgets/simple_button.dart'; - -class DependenciesSteps extends StatelessWidget { - const DependenciesSteps({super.key}); - - @override - Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.all(20.0), - child: ChangeNotifierProvider( - create: (context) => Dependencies(), - child: Builder( - builder: (context) { - switch (Provider.of(context).dependeciesState) { - case DependenciesInstallationState.idle: - return const InstallDependecies(); - case DependenciesInstallationState.installing: - return const DependeciesInstallationProgress(); - } - }, - ), - ), - ); - } -} - -class InstallDependecies extends StatefulWidget { - const InstallDependecies({super.key}); - - @override - State createState() => _InstallDependeciesState(); -} - -class _InstallDependeciesState extends State { - bool canInstall = true; - - @override - Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SimpleButton( - onPressed: canInstall - ? () { - Provider.of(context, listen: false) - .startInstallation( - Provider.of(context, listen: false), - ); - setState(() { - canInstall = false; - }); - } - : null, - child: const Text("Install"), - ), - if (!canInstall) const GtkSpinner(), - ], - ), - ); - } -} - -class DependeciesInstallationProgress extends StatelessWidget { - const DependeciesInstallationProgress({super.key}); - - @override - Widget build(BuildContext context) { - return const Row( - children: [ - GtkSpinner(), - Text( - 'Installing dependecies (this can take a while, so go grab a coffee)', - ), - ], - ); - } -} diff --git a/babylonia_terminal_launcher/lib/widgets/steps/dxvk_steps_widget.dart b/babylonia_terminal_launcher/lib/widgets/steps/dxvk_steps_widget.dart deleted file mode 100644 index 1293806..0000000 --- a/babylonia_terminal_launcher/lib/widgets/steps/dxvk_steps_widget.dart +++ /dev/null @@ -1,159 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:yaru/widgets.dart'; - -import './../../models/github.dart'; -import './../../models/dxvk.dart'; -import './../../widgets/simple_button.dart'; -import './../../widgets/gtk_spinner_widget.dart'; -import './../../providers/providers.dart'; - -class DXVKSteps extends StatefulWidget { - const DXVKSteps({super.key}); - - @override - State createState() => _DXVKStepsState(); -} - -class _DXVKStepsState extends State { - final DXVK proton = DXVK(); - - @override - Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.all(20.0), - child: ChangeNotifierProvider( - create: (_) => proton, - child: Builder( - builder: (context) { - switch (Provider.of(context).dxvkState) { - case DXVKInstallationState.idle: - return const InstallDXVK(); - case DXVKInstallationState.downloading: - return const DXVKDownloadProgress(); - case DXVKInstallationState.decompressing: - return const Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: EdgeInsets.all(8.0), - child: GtkSpinner(), - ), - Text('Installing...'), - ], - ); - } - }, - ), - ), - ); - } -} - -class InstallDXVK extends StatefulWidget { - const InstallDXVK({super.key}); - - @override - State createState() => _InstallDXVKState(); -} - -class _InstallDXVKState extends State { - bool hasLoaded = false; - bool isLoading = false; - late List protonVersions; - String? selectedValue; - bool canInstall = true; - - @override - void didChangeDependencies() async { - if (!hasLoaded) { - isLoading = true; - protonVersions = await Github.getDXVKVersions(); - setState(() { - isLoading = false; - hasLoaded = true; - }); - } - - super.didChangeDependencies(); - } - - @override - Widget build(BuildContext context) { - if (hasLoaded && selectedValue == null) { - selectedValue = protonVersions.first; - } - - return isLoading - ? const Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: EdgeInsets.all(8.0), - child: GtkSpinner(), - ), - Text('Fetching versions...'), - ], - ) - : Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - YaruPopupMenuButton( - enabled: canInstall, - initialValue: selectedValue, - itemBuilder: (_) => protonVersions - .map( - (e) => PopupMenuItem( - value: e, - child: Text(e), - ), - ) - .toList(), - onSelected: (v) => setState(() { - selectedValue = v; - }), - child: Text(selectedValue!), - ), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: SimpleButton( - onPressed: canInstall - ? () { - Provider.of(context, listen: false) - .startInstallation( - Provider.of(context, - listen: false), - selectedValue!); - setState(() { - canInstall = false; - }); - } - : null, - child: const Text("Install"), - ), - ), - if (!canInstall) const GtkSpinner(), - ], - ); - } -} - -class DXVKDownloadProgress extends StatelessWidget { - const DXVKDownloadProgress({super.key}); - - @override - Widget build(BuildContext context) { - final provider = Provider.of(context); - final pourcent = - (provider.currentProgress.toInt() / provider.maxProgress.toInt()) * 100; - - return Column( - children: [ - Text("Downloaded: ${pourcent.toStringAsFixed(2)}%"), - YaruLinearProgressIndicator( - value: pourcent / 100, - ), - ], - ); - } -} diff --git a/babylonia_terminal_launcher/lib/widgets/steps/fonts_steps_widget.dart b/babylonia_terminal_launcher/lib/widgets/steps/fonts_steps_widget.dart deleted file mode 100644 index 605ed8a..0000000 --- a/babylonia_terminal_launcher/lib/widgets/steps/fonts_steps_widget.dart +++ /dev/null @@ -1,100 +0,0 @@ -import 'package:babylonia_terminal_launcher/widgets/gtk_spinner_widget.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:yaru/yaru.dart'; - -import './../../models/fonts.dart'; -import './../../providers/providers.dart'; -import './../../widgets/simple_button.dart'; - -class FontsSteps extends StatelessWidget { - const FontsSteps({super.key}); - - @override - Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.all(20.0), - child: ChangeNotifierProvider( - create: (context) => Fonts(), - child: Builder( - builder: (context) { - switch (Provider.of(context).fontsState) { - case FontsInstallationState.idle: - return const InstallFonts(); - case FontsInstallationState.installing: - return const FontsInstallationProgress(); - } - }, - ), - ), - ); - } -} - -class InstallFonts extends StatefulWidget { - const InstallFonts({super.key}); - - @override - State createState() => _InstallFontsState(); -} - -class _InstallFontsState extends State { - bool canInstall = true; - - @override - Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SimpleButton( - onPressed: canInstall - ? () { - Provider.of(context, listen: false) - .startInstallation( - Provider.of(context, listen: false), - ); - setState(() { - canInstall = false; - }); - } - : null, - child: const Text("Install"), - ), - if (!canInstall) const GtkSpinner(), - ], - ), - ); - } -} - -class FontsInstallationProgress extends StatelessWidget { - const FontsInstallationProgress({super.key}); - - @override - Widget build(BuildContext context) { - final provider = Provider.of(context); - final pourcent = - (provider.currentProgress.toInt() / provider.maxProgress.toInt()) * 100; - - return Column( - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const GtkSpinner(), - Text( - "${provider.currentProgress} / ${provider.maxProgress} fonts installed"), - ], - ), - ), - YaruLinearProgressIndicator( - value: pourcent / 100, - ), - ], - ); - } -} diff --git a/babylonia_terminal_launcher/lib/widgets/steps/game_steps_widget.dart b/babylonia_terminal_launcher/lib/widgets/steps/game_steps_widget.dart deleted file mode 100644 index 5894bfb..0000000 --- a/babylonia_terminal_launcher/lib/widgets/steps/game_steps_widget.dart +++ /dev/null @@ -1,154 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:yaru/yaru.dart'; - -import './../../models/game.dart'; -import './../simple_button.dart'; -import './../gtk_spinner_widget.dart'; -import './../../providers/providers.dart'; - -class GameSteps extends StatelessWidget { - const GameSteps({super.key}); - - @override - Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.all(50.0), - child: Builder(builder: (context) { - switch (Provider.of(context).gameInstallationState) { - case GameInstallationState.idle: - return const _InstallGame(); - case GameInstallationState.checkingFile: - return const _CheckingFileGame(); - case GameInstallationState.downloading: - return const _DownloadingGame(); - case GameInstallationState.patching: - return const _PatchingGame(); - } - }), - ); - } -} - -class _InstallGame extends StatelessWidget { - const _InstallGame({super.key}); - - @override - Widget build(BuildContext context) { - final gameStateProvider = Provider.of(context); - - return Row( - children: [ - const Expanded( - child: SizedBox(), - ), - const Expanded( - child: SizedBox(), - ), - Expanded( - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - ConstrainedBox( - constraints: const BoxConstraints( - maxWidth: 600, - maxHeight: 50, - ), - child: SimpleButton( - onPressed: () async { - Provider.of(context, listen: false).startInstallation( - Provider.of(context, listen: false), - gameStateProvider.isGameUpdating(), - ); - }, - child: gameStateProvider.isGameUpdating() - ? const Center( - child: Text("Update"), - ) - : const Center( - child: Text("Download"), - ), - ), - ), - ], - ), - ), - ], - ); - } -} - -class _CheckingFileGame extends StatelessWidget { - const _CheckingFileGame({super.key}); - - @override - Widget build(BuildContext context) { - return const Padding( - padding: EdgeInsets.only(bottom: 40.0), - child: Align( - alignment: Alignment.bottomCenter, - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - GtkSpinner(), - Text("Checking files... (This can take a while)"), - ], - ), - ), - ); - } -} - -class _DownloadingGame extends StatelessWidget { - const _DownloadingGame({super.key}); - - @override - Widget build(BuildContext context) { - final provider = Provider.of(context); - final pourcent = - (provider.currentProgress.toInt() / provider.maxProgress.toInt()) * 100; - //1024^3 = 1073741824 - final currentGb = provider.currentProgress.toInt() / 1073741824; - final maxGb = provider.maxProgress.toInt() / 1073741824; - final currentSpeed = provider.currentSpeed.toInt() / 1048576; - - return Padding( - padding: const EdgeInsets.only(bottom: 40.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Text( - "${currentGb.toStringAsFixed(2)} / ${maxGb.toStringAsFixed(2)} GiB (${pourcent.toStringAsFixed(2)}%) - ${currentSpeed.toStringAsFixed(2)} MiB/s", - ), - ), - YaruLinearProgressIndicator( - value: pourcent / 100, - ), - ], - ), - ); - } -} - -class _PatchingGame extends StatelessWidget { - const _PatchingGame({super.key}); - - @override - Widget build(BuildContext context) { - return const Padding( - padding: EdgeInsets.only(bottom: 40.0), - child: Align( - alignment: Alignment.bottomCenter, - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - GtkSpinner(), - Text("Patching game"), - ], - ), - ), - ); - } -} diff --git a/babylonia_terminal_launcher/lib/widgets/steps/proton_steps_widget.dart b/babylonia_terminal_launcher/lib/widgets/steps/proton_steps_widget.dart deleted file mode 100644 index 9283b99..0000000 --- a/babylonia_terminal_launcher/lib/widgets/steps/proton_steps_widget.dart +++ /dev/null @@ -1,157 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:yaru/widgets.dart'; - -import './../../models/github.dart'; -import './../../models/proton.dart'; -import './../../widgets/simple_button.dart'; -import './../../widgets/gtk_spinner_widget.dart'; -import './../../providers/providers.dart'; - -class ProtonSteps extends StatefulWidget { - const ProtonSteps({super.key}); - - @override - State createState() => _ProtonStepsState(); -} - -class _ProtonStepsState extends State { - final Proton proton = Proton(); - - @override - Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.all(20.0), - child: ChangeNotifierProvider( - create: (_) => proton, - child: Builder( - builder: (context) { - switch (Provider.of(context).protonState) { - case ProtonInstallationState.idle: - return const InstallProton(); - case ProtonInstallationState.downloading: - return const ProtonDownloadProgress(); - case ProtonInstallationState.decompressing: - return const Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: EdgeInsets.all(8.0), - child: GtkSpinner(), - ), - Text('decompressing...'), - ], - ); - } - }, - ), - ), - ); - } -} - -class InstallProton extends StatefulWidget { - const InstallProton({super.key}); - - @override - State createState() => _InstallProtonState(); -} - -class _InstallProtonState extends State { - bool hasLoaded = false; - bool isLoading = false; - late List protonVersions; - String? selectedValue; - bool canInstall = true; - - @override - void didChangeDependencies() async { - if (!hasLoaded) { - isLoading = true; - protonVersions = await Github.getProtonVersions(); - setState(() { - isLoading = false; - hasLoaded = true; - }); - } - - super.didChangeDependencies(); - } - - @override - Widget build(BuildContext context) { - if (hasLoaded && selectedValue == null) { - selectedValue = protonVersions.first; - } - - return isLoading - ? const Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: EdgeInsets.all(8.0), - child: GtkSpinner(), - ), - Text('Fetching versions...'), - ], - ) - : Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - YaruPopupMenuButton( - initialValue: selectedValue, - itemBuilder: (_) => protonVersions - .map( - (e) => PopupMenuItem( - value: e, - child: Text(e), - ), - ) - .toList(), - onSelected: (v) => setState(() { - selectedValue = v; - }), - child: Text(selectedValue!), - ), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: SimpleButton( - onPressed: canInstall - ? () { - Provider.of(context, listen: false) - .startInstallation( - Provider.of(context, - listen: false), - selectedValue!); - setState(() { - canInstall = false; - }); - } - : null, - child: const Text("Install"), - ), - ), - ], - ); - } -} - -class ProtonDownloadProgress extends StatelessWidget { - const ProtonDownloadProgress({super.key}); - - @override - Widget build(BuildContext context) { - final provider = Provider.of(context); - final pourcent = - (provider.currentProgress.toInt() / provider.maxProgress.toInt()) * 100; - - return Column( - children: [ - Text("Downloaded: ${pourcent.toStringAsFixed(2)}%"), - YaruLinearProgressIndicator( - value: pourcent / 100, - ), - ], - ); - } -} diff --git a/babylonia_terminal_launcher/linux/my_application.cc b/babylonia_terminal_launcher/linux/my_application.cc deleted file mode 100644 index f840d12..0000000 --- a/babylonia_terminal_launcher/linux/my_application.cc +++ /dev/null @@ -1,124 +0,0 @@ -#include "my_application.h" - -#include -#ifdef GDK_WINDOWING_X11 -#include -#endif - -#include "flutter/generated_plugin_registrant.h" - -struct _MyApplication { - GtkApplication parent_instance; - char** dart_entrypoint_arguments; -}; - -G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) - -// Implements GApplication::activate. -static void my_application_activate(GApplication* application) { - MyApplication* self = MY_APPLICATION(application); - GtkWindow* window = - GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); - - // Use a header bar when running in GNOME as this is the common style used - // by applications and is the setup most users will be using (e.g. Ubuntu - // desktop). - // If running on X and not using GNOME then just use a traditional title bar - // in case the window manager does more exotic layout, e.g. tiling. - // If running on Wayland assume the header bar will work (may need changing - // if future cases occur). - gboolean use_header_bar = FALSE; -#ifdef GDK_WINDOWING_X11 - GdkScreen* screen = gtk_window_get_screen(window); - if (GDK_IS_X11_SCREEN(screen)) { - const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); - if (g_strcmp0(wm_name, "GNOME Shell") != 0) { - use_header_bar = FALSE; - } - } -#endif - if (use_header_bar) { - GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); - gtk_widget_show(GTK_WIDGET(header_bar)); - gtk_header_bar_set_title(header_bar, "babylonia_terminal_launcher"); - gtk_header_bar_set_show_close_button(header_bar, TRUE); - gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); - } else { - gtk_window_set_title(window, "babylonia_terminal_launcher"); - } - - gtk_window_set_default_size(window, 1280, 720); - gtk_widget_show(GTK_WIDGET(window)); - - g_autoptr(FlDartProject) project = fl_dart_project_new(); - fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); - - FlView* view = fl_view_new(project); - gtk_widget_show(GTK_WIDGET(view)); - gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); - - fl_register_plugins(FL_PLUGIN_REGISTRY(view)); - - gtk_widget_grab_focus(GTK_WIDGET(view)); -} - -// Implements GApplication::local_command_line. -static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { - MyApplication* self = MY_APPLICATION(application); - // Strip out the first argument as it is the binary name. - self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); - - g_autoptr(GError) error = nullptr; - if (!g_application_register(application, nullptr, &error)) { - g_warning("Failed to register: %s", error->message); - *exit_status = 1; - return TRUE; - } - - g_application_activate(application); - *exit_status = 0; - - return TRUE; -} - -// Implements GApplication::startup. -static void my_application_startup(GApplication* application) { - //MyApplication* self = MY_APPLICATION(object); - - // Perform any actions required at application startup. - - G_APPLICATION_CLASS(my_application_parent_class)->startup(application); -} - -// Implements GApplication::shutdown. -static void my_application_shutdown(GApplication* application) { - //MyApplication* self = MY_APPLICATION(object); - - // Perform any actions required at application shutdown. - - G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application); -} - -// Implements GObject::dispose. -static void my_application_dispose(GObject* object) { - MyApplication* self = MY_APPLICATION(object); - g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); - G_OBJECT_CLASS(my_application_parent_class)->dispose(object); -} - -static void my_application_class_init(MyApplicationClass* klass) { - G_APPLICATION_CLASS(klass)->activate = my_application_activate; - G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; - G_APPLICATION_CLASS(klass)->startup = my_application_startup; - G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; - G_OBJECT_CLASS(klass)->dispose = my_application_dispose; -} - -static void my_application_init(MyApplication* self) {} - -MyApplication* my_application_new() { - return MY_APPLICATION(g_object_new(my_application_get_type(), - "application-id", APPLICATION_ID, - "flags", G_APPLICATION_NON_UNIQUE, - nullptr)); -} diff --git a/babylonia_terminal_launcher/messages/config.proto b/babylonia_terminal_launcher/messages/config.proto deleted file mode 100644 index f4c710a..0000000 --- a/babylonia_terminal_launcher/messages/config.proto +++ /dev/null @@ -1,23 +0,0 @@ -syntax = "proto3"; -package config; - -// [RINF:DART-SIGNAL] -message ConfigInput {} - -// [RINF:RUST-SIGNAL] -message ConfigOutput { - string configPath = 1; -} - -// [RINF:DART-SIGNAL] -message GetLaunchOptionsInput {} - -// [RINF:RUST-SIGNAL] -message GetLaunchOptionsOutput { - optional string launchOptions = 1; -} - -// [RINF:DART-SIGNAL] -message SetLaunchOptionsInput { - optional string launchOptions = 1; -} diff --git a/babylonia_terminal_launcher/messages/error.proto b/babylonia_terminal_launcher/messages/error.proto deleted file mode 100644 index fcbb74e..0000000 --- a/babylonia_terminal_launcher/messages/error.proto +++ /dev/null @@ -1,7 +0,0 @@ -syntax = "proto3"; -package error; - -// [RINF:RUST-SIGNAL] -message ReportError { - string errorMessage = 1; -} diff --git a/babylonia_terminal_launcher/messages/game_state.proto b/babylonia_terminal_launcher/messages/game_state.proto deleted file mode 100644 index cabba18..0000000 --- a/babylonia_terminal_launcher/messages/game_state.proto +++ /dev/null @@ -1,21 +0,0 @@ -syntax = "proto3"; -package game_state; - -enum States { - ProtonNotInstalled = 0; - DXVKNotInstalled = 1; - FontNotInstalled = 2; - DependecieNotInstalled = 3; - GameNotInstalled = 4; - GameNeedUpdate = 5; - GameNotPatched = 6; - GameInstalled = 7; -} - -// [RINF:RUST-SIGNAL] -message GameState { - States state = 1; -} - -// [RINF:DART-SIGNAL] -message AskGameState {} diff --git a/babylonia_terminal_launcher/messages/github.proto b/babylonia_terminal_launcher/messages/github.proto deleted file mode 100644 index 68d3c7f..0000000 --- a/babylonia_terminal_launcher/messages/github.proto +++ /dev/null @@ -1,18 +0,0 @@ -syntax = "proto3"; -package github; - -// [RINF:DART-SIGNAL] -message AskProtonVersions {} - -// [RINF:RUST-SIGNAL] -message ProtonVersions { - repeated string versions = 1; -} - -// [RINF:DART-SIGNAL] -message AskDXVKVersions {} - -// [RINF:RUST-SIGNAL] -message DXVKVersions { - repeated string versions = 1; -} diff --git a/babylonia_terminal_launcher/messages/steps/dependencies.proto b/babylonia_terminal_launcher/messages/steps/dependencies.proto deleted file mode 100644 index 85b421e..0000000 --- a/babylonia_terminal_launcher/messages/steps/dependencies.proto +++ /dev/null @@ -1,8 +0,0 @@ -syntax = "proto3"; -package dependencies; - -// [RINF:DART-SIGNAL] -message StartDependenciesInstallation {} - -// [RINF:RUST-SIGNAL] -message NotifyDependenciesSuccessfullyInstalled {} diff --git a/babylonia_terminal_launcher/messages/steps/dxvk.proto b/babylonia_terminal_launcher/messages/steps/dxvk.proto deleted file mode 100644 index 7bff671..0000000 --- a/babylonia_terminal_launcher/messages/steps/dxvk.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; -package dxvk; - -// [RINF:RUST-SIGNAL] -message DXVKDownloadProgress { - uint64 current = 1; - uint64 max = 2; -} - -// [RINF:DART-SIGNAL] -message StartDXVKInstallation { - string protonVersion = 1; -}; - -// [RINF:RUST-SIGNAL] -message NotifyDXVKStartDecompressing {} - -// [RINF:RUST-SIGNAL] -message NotifyDXVKSuccessfullyInstalled {} diff --git a/babylonia_terminal_launcher/messages/steps/fonts.proto b/babylonia_terminal_launcher/messages/steps/fonts.proto deleted file mode 100644 index 5bba01b..0000000 --- a/babylonia_terminal_launcher/messages/steps/fonts.proto +++ /dev/null @@ -1,14 +0,0 @@ -syntax = "proto3"; -package fonts; - -// [RINF:RUST-SIGNAL] -message FontsInstallationProgress { - uint64 current = 1; - uint64 max = 2; -} - -// [RINF:DART-SIGNAL] -message StartFontsInstallation {}; - -// [RINF:RUST-SIGNAL] -message NotifyFontsSuccessfullyInstalled {} diff --git a/babylonia_terminal_launcher/messages/steps/game.proto b/babylonia_terminal_launcher/messages/steps/game.proto deleted file mode 100644 index dab89b8..0000000 --- a/babylonia_terminal_launcher/messages/steps/game.proto +++ /dev/null @@ -1,28 +0,0 @@ -syntax = "proto3"; -package game; - -// [RINF:RUST-SIGNAL] -message GameInstallationProgress { - uint64 current = 1; - uint64 max = 2; -} - -// [RINF:DART-SIGNAL] -message StartGameInstallation { - bool isUpdating = 1; -} - -// [RINF:RUST-SIGNAL] -message NotifyGameStartDownloading {} - -// [RINF:RUST-SIGNAL] -message NotifyGameStartPatching {} - -// [RINF:RUST-SIGNAL] -message NotifyGameSuccessfullyInstalled {} - -// [RINF:DART-SIGNAL] -message RunGame {} - -// [RINF:RUST-SIGNAL] -message GameStopped {} diff --git a/babylonia_terminal_launcher/messages/steps/proton.proto b/babylonia_terminal_launcher/messages/steps/proton.proto deleted file mode 100644 index 1c7affd..0000000 --- a/babylonia_terminal_launcher/messages/steps/proton.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; -package proton; - -// [RINF:RUST-SIGNAL] -message ProtonDownloadProgress { - uint64 current = 1; - uint64 max = 2; -} - -// [RINF:DART-SIGNAL] -message StartProtonInstallation { - string protonVersion = 1; -}; - -// [RINF:RUST-SIGNAL] -message NotifyProtonStartDecompressing {} - -// [RINF:RUST-SIGNAL] -message NotifyProtonSuccessfullyInstalled {} diff --git a/babylonia_terminal_launcher/native/hub/Cargo.toml b/babylonia_terminal_launcher/native/hub/Cargo.toml deleted file mode 100644 index a46fb71..0000000 --- a/babylonia_terminal_launcher/native/hub/Cargo.toml +++ /dev/null @@ -1,28 +0,0 @@ -[package] -# Do not change the name of this crate. -name = "hub" -version = "0.1.0" -edition = "2021" - -[lib] -# `lib` is required for non-library targets, -# such as tests and benchmarks. -# `cdylib` is for Linux, Android, Windows, and web. -# `staticlib` is for iOS and macOS. -crate-type = ["lib", "cdylib", "staticlib"] - -[dependencies] -rinf = "6.9.0" -prost = "0.12.3" -wasm-bindgen = "0.2.91" -tokio_with_wasm = "0.4.3" -babylonia-terminal-sdk = { path = "./../../../babylonia-terminal-sdk" } -downloader = { git = "https://github.com/ALEZ-DEV/downloader" } # version = "0.2.7", -once_cell = "1.19.0" -wincompatlib = { version = "0.7.4", features = [ - "dxvk", - "wine-bundles", - "wine-proton", - "wine-fonts", - "winetricks", -] } diff --git a/babylonia_terminal_launcher/native/hub/src/config.rs b/babylonia_terminal_launcher/native/hub/src/config.rs deleted file mode 100644 index 457b584..0000000 --- a/babylonia_terminal_launcher/native/hub/src/config.rs +++ /dev/null @@ -1,52 +0,0 @@ -use babylonia_terminal_sdk::game_config::GameConfig; - -use crate::messages::{ - config::{ - ConfigInput, ConfigOutput, GetLaunchOptionsInput, GetLaunchOptionsOutput, - SetLaunchOptionsInput, - }, - error::ReportError, -}; - -pub async fn listen_config() { - let mut receiver = ConfigInput::get_dart_signal_receiver().unwrap(); - while let Some(_) = receiver.recv().await { - let config = GameConfig::get_config().await; - ConfigOutput { - config_path: config.config_dir.to_str().unwrap().to_string(), - } - .send_signal_to_dart(); - } -} - -pub async fn listen_get_launch_options() { - let mut receiver = GetLaunchOptionsInput::get_dart_signal_receiver().unwrap(); - while let Some(_) = receiver.recv().await { - let launch_options_result = GameConfig::get_launch_options().await; - if let Err(err) = launch_options_result { - ReportError { - error_message: format!("Failed to get launch options :\n{:?}", err), - } - .send_signal_to_dart(); - continue; - } - - GetLaunchOptionsOutput { - launch_options: launch_options_result.unwrap(), - } - .send_signal_to_dart(); - } -} - -pub async fn listen_set_launch_options() { - let mut receiver = SetLaunchOptionsInput::get_dart_signal_receiver().unwrap(); - while let Some(dart_signal) = receiver.recv().await { - let result = GameConfig::set_launch_options(dart_signal.message.launch_options).await; - if let Err(err) = result { - ReportError { - error_message: format!("Failed to set launch options :\n{:?}", err), - } - .send_signal_to_dart(); - } - } -} diff --git a/babylonia_terminal_launcher/native/hub/src/dependencies.rs b/babylonia_terminal_launcher/native/hub/src/dependencies.rs deleted file mode 100644 index ce51de8..0000000 --- a/babylonia_terminal_launcher/native/hub/src/dependencies.rs +++ /dev/null @@ -1,37 +0,0 @@ -use std::thread; - -use babylonia_terminal_sdk::game_manager::GameManager; -use tokio_with_wasm::tokio; - -use crate::{ - messages::{ - error::ReportError, - steps::dependencies::{ - NotifyDependenciesSuccessfullyInstalled, StartDependenciesInstallation, - }, - }, - proton::get_proton, -}; - -pub async fn listen_dependecies_installation() { - let mut receiver = StartDependenciesInstallation::get_dart_signal_receiver().unwrap(); - while let Some(_) = receiver.recv().await { - let proton = get_proton().await; - - thread::spawn(move || { - tokio::runtime::Builder::new_current_thread() - .enable_all() - .build() - .unwrap() - .block_on(async { - match GameManager::install_dependencies(&proton).await { - Err(e) => ReportError { - error_message: format!("Failed to install dependencies : {}", e), - } - .send_signal_to_dart(), - Ok(_) => NotifyDependenciesSuccessfullyInstalled {}.send_signal_to_dart(), - } - }); - }); - } -} diff --git a/babylonia_terminal_launcher/native/hub/src/dxvk.rs b/babylonia_terminal_launcher/native/hub/src/dxvk.rs deleted file mode 100644 index 9773cd4..0000000 --- a/babylonia_terminal_launcher/native/hub/src/dxvk.rs +++ /dev/null @@ -1,117 +0,0 @@ -use std::thread; - -use babylonia_terminal_sdk::{ - components::dxvk_component::{DXVK_DEV, DXVK_REPO}, - game_config::GameConfig, - game_manager::GameManager, - utils::github_requester::{GithubRelease, GithubRequester}, -}; -use tokio_with_wasm::tokio; - -use crate::{ - github::GithubInfo, - messages::{ - error::ReportError, - steps::dxvk::{ - DxvkDownloadProgress, NotifyDxvkStartDecompressing, NotifyDxvkSuccessfullyInstalled, - StartDxvkInstallation, - }, - }, - proton::get_proton, -}; - -pub async fn listen_dxvk_installation() { - let mut receiver = StartDxvkInstallation::get_dart_signal_receiver().unwrap(); - while let Some(info) = receiver.recv().await { - let releases: Result, _> = - GithubInfo::get_github_releases(DXVK_DEV, DXVK_REPO).await; - if releases.is_err() { - ReportError { - error_message: format!("When fetching DXVK versions : {}", releases.unwrap_err()), - } - .send_signal_to_dart(); - continue; - } - - let checked_releases = releases.unwrap(); - let release_index = checked_releases - .iter() - .position(|v| v.tag_name == info.message.proton_version); - - if release_index.is_none() { - ReportError { - error_message: "Failed to find DXVK version".to_string(), - } - .send_signal_to_dart(); - continue; - } - - let proton = get_proton().await; - - thread::spawn(move || { - tokio::runtime::Builder::new_current_thread() - .enable_all() - .build() - .unwrap() - .block_on(async { - match GameManager::install_dxvk( - &proton, - GameConfig::get_config().await.config_dir, - release_index.unwrap(), - Some(DownloadReporter::create()), - ) - .await - { - Err(e) => ReportError { - error_message: format!("Failed to install DXVK : {}", e), - } - .send_signal_to_dart(), - Ok(_) => NotifyDxvkSuccessfullyInstalled {}.send_signal_to_dart(), - } - }); - }); - } -} - -struct DownloadReporterPrivate { - max_progress: Option, -} - -struct DownloadReporter { - private: std::sync::Mutex>, -} - -impl DownloadReporter { - pub fn create() -> std::sync::Arc { - std::sync::Arc::new(Self { - private: std::sync::Mutex::new(None), - }) - } -} - -impl downloader::progress::Reporter for DownloadReporter { - fn setup(&self, max_progress: Option, _: &str) { - let private = DownloadReporterPrivate { max_progress }; - - let mut guard = self.private.lock().unwrap(); - *guard = Some(private); - } - - fn progress(&self, current: u64) { - if let Some(p) = self.private.lock().unwrap().as_mut() { - DxvkDownloadProgress { - current, - max: p.max_progress.unwrap(), - } - .send_signal_to_dart(); - } - } - - fn set_message(&self, _: &str) {} - - fn done(&self) { - NotifyDxvkStartDecompressing {}.send_signal_to_dart(); - let mut guard = self.private.lock().unwrap(); - *guard = None; - } -} diff --git a/babylonia_terminal_launcher/native/hub/src/fonts.rs b/babylonia_terminal_launcher/native/hub/src/fonts.rs deleted file mode 100644 index f83f5f9..0000000 --- a/babylonia_terminal_launcher/native/hub/src/fonts.rs +++ /dev/null @@ -1,81 +0,0 @@ -use std::thread; - -use babylonia_terminal_sdk::game_manager::GameManager; -use tokio_with_wasm::tokio; - -use crate::{ - messages::{ - error::ReportError, - steps::fonts::{ - FontsInstallationProgress, NotifyFontsSuccessfullyInstalled, StartFontsInstallation, - }, - }, - proton::get_proton, -}; - -pub async fn listen_fonts_installation() { - let mut receiver = StartFontsInstallation::get_dart_signal_receiver().unwrap(); - while let Some(_) = receiver.recv().await { - let proton = get_proton().await; - - thread::spawn(move || { - tokio::runtime::Builder::new_current_thread() - .enable_all() - .build() - .unwrap() - .block_on(async { - match GameManager::install_font(&proton, Some(InstallationReporter::create())) - .await - { - Err(e) => ReportError { - error_message: format!("Failed to install fonts : {}", e), - } - .send_signal_to_dart(), - Ok(_) => NotifyFontsSuccessfullyInstalled {}.send_signal_to_dart(), - } - }); - }); - } -} - -struct DownloadReporterPrivate { - max_progress: Option, -} - -struct InstallationReporter { - private: std::sync::Mutex>, -} - -impl InstallationReporter { - pub fn create() -> std::sync::Arc { - std::sync::Arc::new(Self { - private: std::sync::Mutex::new(None), - }) - } -} - -impl downloader::progress::Reporter for InstallationReporter { - fn setup(&self, max_progress: Option, _: &str) { - let private = DownloadReporterPrivate { max_progress }; - - let mut guard = self.private.lock().unwrap(); - *guard = Some(private); - } - - fn progress(&self, current: u64) { - if let Some(p) = self.private.lock().unwrap().as_mut() { - FontsInstallationProgress { - current, - max: p.max_progress.unwrap(), - } - .send_signal_to_dart(); - } - } - - fn set_message(&self, _: &str) {} - - fn done(&self) { - let mut guard = self.private.lock().unwrap(); - *guard = None; - } -} diff --git a/babylonia_terminal_launcher/native/hub/src/game.rs b/babylonia_terminal_launcher/native/hub/src/game.rs deleted file mode 100644 index bbce106..0000000 --- a/babylonia_terminal_launcher/native/hub/src/game.rs +++ /dev/null @@ -1,160 +0,0 @@ -use std::thread; - -use babylonia_terminal_sdk::{game_config::GameConfig, game_manager::GameManager}; -use rinf::debug_print; -use tokio_with_wasm::tokio; - -use crate::{ - messages::{ - error::ReportError, - steps::game::{ - GameInstallationProgress, GameStopped, NotifyGameStartPatching, - NotifyGameSuccessfullyInstalled, RunGame, StartGameInstallation, - }, - }, - proton::get_proton, -}; - -pub async fn listen_game_running() { - let mut receiver = RunGame::get_dart_signal_receiver().unwrap(); - thread::spawn(move || { - tokio::runtime::Builder::new_current_thread() - .enable_all() - .build() - .unwrap() - .block_on(async { - while let Some(_) = receiver.recv().await { - let proton = get_proton().await; - let game_dir = GameConfig::get_game_dir().await; - if game_dir.is_none() { - ReportError { - error_message: "Failed to start game, the game directory was not found" - .to_string(), - } - .send_signal_to_dart(); - GameStopped {}.send_signal_to_dart(); - continue; - } - - GameManager::start_game(&proton, game_dir.unwrap(), None, false).await; - - GameStopped {}.send_signal_to_dart(); - } - }) - }); -} - -pub async fn listen_game_installation() { - let mut receiver = StartGameInstallation::get_dart_signal_receiver().unwrap(); - while let Some(info) = receiver.recv().await { - thread::spawn(move || { - debug_print!("start downloading game..."); - tokio::runtime::Builder::new_current_thread() - .enable_all() - .build() - .unwrap() - .block_on(async { - if GameConfig::get_game_dir().await.is_none() { - if let Err(e) = - GameConfig::set_game_dir(Some(GameConfig::get_config_directory().await)) - .await - { - ReportError { - error_message: format!("Failed to set new path : {}", e), - } - .send_signal_to_dart(); - } - } - - if info.message.is_updating { - if let Err(e) = GameManager::update_game().await { - ReportError { - error_message: format!("Failed to start updating the game : {}", e), - } - .send_signal_to_dart(); - } - } - - let game_dir = GameConfig::get_game_dir().await; - if game_dir.is_none() { - ReportError { - error_message: "Failed to get the game directory".to_string(), - } - .send_signal_to_dart(); - } - - match GameManager::install_game( - game_dir.clone().unwrap(), - InstallationReporter::create(), - ) - .await - { - Err(e) => ReportError { - error_message: format!("Failed to install game : {}", e), - } - .send_signal_to_dart(), - Ok(_) => { - NotifyGameStartPatching {}.send_signal_to_dart(); - debug_print!("start patching game..."); - match GameManager::patch_game(game_dir.unwrap()).await { - Err(e) => ReportError { - error_message: format!("Failed to install game : {}", e), - } - .send_signal_to_dart(), - Ok(_) => NotifyGameSuccessfullyInstalled {}.send_signal_to_dart(), - } - } - } - }) - }); - } -} - -struct DownloadReporterPrivate { - max_progress: Option, -} - -struct InstallationReporter { - private: std::sync::Mutex>, -} - -impl InstallationReporter { - pub fn create() -> std::sync::Arc { - std::sync::Arc::new(Self { - private: std::sync::Mutex::new(None), - }) - } -} - -impl downloader::progress::Reporter for InstallationReporter { - fn setup(&self, max_progress: Option, _: &str) { - let private = DownloadReporterPrivate { max_progress }; - - let mut guard = self.private.lock().unwrap(); - *guard = Some(private); - } - - fn progress(&self, current: u64) { - if let Some(p) = self.private.lock().unwrap().as_mut() { - GameInstallationProgress { - current, - max: p.max_progress.unwrap(), - } - .send_signal_to_dart(); - } - } - - fn set_message(&self, _: &str) {} - - fn done(&self) { - if let Some(p) = self.private.lock().unwrap().as_mut() { - GameInstallationProgress { - current: p.max_progress.unwrap(), - max: p.max_progress.unwrap(), - } - .send_signal_to_dart(); - } - let mut guard = self.private.lock().unwrap(); - *guard = None; - } -} diff --git a/babylonia_terminal_launcher/native/hub/src/game_state.rs b/babylonia_terminal_launcher/native/hub/src/game_state.rs deleted file mode 100644 index 94a6852..0000000 --- a/babylonia_terminal_launcher/native/hub/src/game_state.rs +++ /dev/null @@ -1,38 +0,0 @@ -use babylonia_terminal_sdk::game_state::GameState; - -use crate::messages::{ - error::ReportError, - game_state::{AskGameState, GameState as GameStateMessage, States}, -}; - -impl GameStateMessage { - fn from_sdk_state_to_msg_state(state: GameState) -> Self { - let game_state = match state { - GameState::ProtonNotInstalled => States::ProtonNotInstalled, - GameState::DXVKNotInstalled => States::DxvkNotInstalled, - GameState::FontNotInstalled => States::FontNotInstalled, - GameState::DependecieNotInstalled => States::DependecieNotInstalled, - GameState::GameNotInstalled => States::GameNotInstalled, - GameState::GameNeedUpdate => States::GameNeedUpdate, - GameState::GameNotPatched => States::GameNotPatched, - GameState::GameInstalled => States::GameInstalled, - }; - GameStateMessage { - state: game_state.into(), - } - } -} - -pub async fn listen_game_state() { - let mut receiver = AskGameState::get_dart_signal_receiver().unwrap(); - while let Some(_) = receiver.recv().await { - let result_state = GameState::get_current_state().await; - match result_state { - Ok(state) => GameStateMessage::from_sdk_state_to_msg_state(state).send_signal_to_dart(), - Err(e) => ReportError { - error_message: format!("When updating the game state : {}", e), - } - .send_signal_to_dart(), - } - } -} diff --git a/babylonia_terminal_launcher/native/hub/src/github.rs b/babylonia_terminal_launcher/native/hub/src/github.rs deleted file mode 100644 index d4fad5e..0000000 --- a/babylonia_terminal_launcher/native/hub/src/github.rs +++ /dev/null @@ -1,57 +0,0 @@ -use babylonia_terminal_sdk::{ - components::{ - dxvk_component::{DXVK_DEV, DXVK_REPO}, - proton_component::{PROTON_DEV, PROTON_REPO}, - }, - utils::github_requester::{GithubRelease, GithubRequester}, -}; - -use crate::messages::{ - error::ReportError, - github::{AskDxvkVersions, AskProtonVersions, DxvkVersions, ProtonVersions}, -}; - -#[warn(dead_code)] -pub struct GithubInfo; - -impl GithubRequester for GithubInfo { - fn set_github_release_index(&mut self, _: usize) { - todo!() - } -} - -pub async fn listen_proton_version() { - let mut receiver = AskProtonVersions::get_dart_signal_receiver().unwrap(); - while let Some(_) = receiver.recv().await { - let releases: Result, _> = - GithubInfo::get_github_releases(PROTON_DEV, PROTON_REPO).await; - match releases { - Ok(r) => ProtonVersions { - versions: r.iter().map(|v| v.tag_name.to_owned()).collect(), - } - .send_signal_to_dart(), - Err(e) => ReportError { - error_message: format!("When fetching proton versions : {}", e), - } - .send_signal_to_dart(), - } - } -} - -pub async fn listen_dxvk_version() { - let mut receiver = AskDxvkVersions::get_dart_signal_receiver().unwrap(); - while let Some(_) = receiver.recv().await { - let releases: Result, _> = - GithubInfo::get_github_releases(DXVK_DEV, DXVK_REPO).await; - match releases { - Ok(r) => DxvkVersions { - versions: r.iter().map(|v| v.tag_name.to_owned()).collect(), - } - .send_signal_to_dart(), - Err(e) => ReportError { - error_message: format!("When fetching dxvk versions : {}", e), - } - .send_signal_to_dart(), - } - } -} diff --git a/babylonia_terminal_launcher/native/hub/src/lib.rs b/babylonia_terminal_launcher/native/hub/src/lib.rs deleted file mode 100755 index e56a207..0000000 --- a/babylonia_terminal_launcher/native/hub/src/lib.rs +++ /dev/null @@ -1,35 +0,0 @@ -use tokio_with_wasm::tokio; - -mod config; -mod dependencies; -mod dxvk; -mod fonts; -mod game; -mod game_state; -mod github; -mod messages; -mod proton; - -rinf::write_interface!(); - -async fn main() { - //config - tokio::spawn(game_state::listen_game_state()); - tokio::spawn(config::listen_config()); - tokio::spawn(config::listen_get_launch_options()); - tokio::spawn(config::listen_set_launch_options()); - - //github - tokio::spawn(github::listen_proton_version()); - tokio::spawn(github::listen_dxvk_version()); - - //installation - tokio::spawn(proton::listen_proton_installation()); - tokio::spawn(dxvk::listen_dxvk_installation()); - tokio::spawn(fonts::listen_fonts_installation()); - tokio::spawn(dependencies::listen_dependecies_installation()); - tokio::spawn(game::listen_game_installation()); - - //game - tokio::spawn(game::listen_game_running()); -} diff --git a/babylonia_terminal_launcher/native/hub/src/proton.rs b/babylonia_terminal_launcher/native/hub/src/proton.rs deleted file mode 100644 index debedfa..0000000 --- a/babylonia_terminal_launcher/native/hub/src/proton.rs +++ /dev/null @@ -1,133 +0,0 @@ -use std::thread; - -use babylonia_terminal_sdk::{ - components::proton_component::{ProtonComponent, PROTON_DEV, PROTON_REPO}, - game_config::GameConfig, - game_manager::GameManager, - utils::github_requester::{GithubRelease, GithubRequester}, -}; -use tokio_with_wasm::tokio::{self, sync::OnceCell}; -use wincompatlib::wine::bundle::proton::Proton; - -use crate::{ - github::GithubInfo, - messages::{ - error::ReportError, - steps::proton::{ - NotifyProtonStartDecompressing, NotifyProtonSuccessfullyInstalled, - ProtonDownloadProgress, StartProtonInstallation, - }, - }, -}; - -static PROTON: OnceCell = OnceCell::const_new(); - -pub async fn get_proton() -> Proton { - PROTON - .get_or_init(|| async { - let proton_component = ProtonComponent::new(GameConfig::get_config().await.config_dir); - let proton = proton_component.init_proton(); - if let Err(ref e) = proton { - ReportError { - error_message: format!("Failed to initialize proton : {}", e), - } - .send_signal_to_dart(); - } - proton.unwrap() - }) - .await - .clone() -} - -pub async fn listen_proton_installation() { - let mut receiver = StartProtonInstallation::get_dart_signal_receiver().unwrap(); - while let Some(info) = receiver.recv().await { - let releases: Result, _> = - GithubInfo::get_github_releases(PROTON_DEV, PROTON_REPO).await; - if releases.is_err() { - ReportError { - error_message: format!("When fetching proton versions : {}", releases.unwrap_err()), - } - .send_signal_to_dart(); - continue; - } - - let checked_releases = releases.unwrap(); - let release_index = checked_releases - .iter() - .position(|v| v.tag_name == info.message.proton_version); - - if release_index.is_none() { - ReportError { - error_message: "Failed to find Proton version".to_string(), - } - .send_signal_to_dart(); - continue; - } - - thread::spawn(move || { - tokio::runtime::Builder::new_current_thread() - .enable_all() - .build() - .unwrap() - .block_on(async { - match GameManager::install_wine( - GameConfig::get_config().await.config_dir, - release_index.unwrap(), - Some(DownloadReporter::create()), - ) - .await - { - Err(e) => ReportError { - error_message: format!("Failed to install Proton : {}", e), - } - .send_signal_to_dart(), - Ok(_) => NotifyProtonSuccessfullyInstalled {}.send_signal_to_dart(), - } - }); - }); - } -} - -struct DownloadReporterPrivate { - max_progress: Option, -} - -struct DownloadReporter { - private: std::sync::Mutex>, -} - -impl DownloadReporter { - pub fn create() -> std::sync::Arc { - std::sync::Arc::new(Self { - private: std::sync::Mutex::new(None), - }) - } -} - -impl downloader::progress::Reporter for DownloadReporter { - fn setup(&self, max_progress: Option, _: &str) { - let private = DownloadReporterPrivate { max_progress }; - - let mut guard = self.private.lock().unwrap(); - *guard = Some(private); - } - - fn progress(&self, current: u64) { - if let Some(p) = self.private.lock().unwrap().as_mut() { - ProtonDownloadProgress { - current, - max: p.max_progress.unwrap(), - } - .send_signal_to_dart(); - } - } - - fn set_message(&self, _: &str) {} - - fn done(&self) { - NotifyProtonStartDecompressing {}.send_signal_to_dart(); - let mut guard = self.private.lock().unwrap(); - *guard = None; - } -} diff --git a/babylonia_terminal_launcher/pubspec.lock b/babylonia_terminal_launcher/pubspec.lock deleted file mode 100644 index e17e4d5..0000000 --- a/babylonia_terminal_launcher/pubspec.lock +++ /dev/null @@ -1,850 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - animated_vector: - dependency: transitive - description: - name: animated_vector - sha256: e15c6596549ca6e2e7491c11fbe168a1dead87475a828a4bc81cf104feca0432 - url: "https://pub.dev" - source: hosted - version: "0.2.0" - animated_vector_annotations: - dependency: transitive - description: - name: animated_vector_annotations - sha256: baa6b4ed98407220f2c9634f7da3cfa5eedb46798e090466f441e666e2f7c8c0 - url: "https://pub.dev" - source: hosted - version: "0.2.0" - archive: - dependency: transitive - description: - name: archive - sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d - url: "https://pub.dev" - source: hosted - version: "3.6.1" - args: - dependency: transitive - description: - name: args - sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" - url: "https://pub.dev" - source: hosted - version: "2.5.0" - async: - dependency: transitive - description: - name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" - url: "https://pub.dev" - source: hosted - version: "2.11.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - characters: - dependency: transitive - description: - name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" - url: "https://pub.dev" - source: hosted - version: "1.3.0" - clock: - dependency: transitive - description: - name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" - source: hosted - version: "1.1.1" - collection: - dependency: transitive - description: - name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a - url: "https://pub.dev" - source: hosted - version: "1.18.0" - crypto: - dependency: transitive - description: - name: crypto - sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 - url: "https://pub.dev" - source: hosted - version: "3.0.5" - cupertino_icons: - dependency: "direct main" - description: - name: cupertino_icons - sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 - url: "https://pub.dev" - source: hosted - version: "1.0.8" - dbus: - dependency: transitive - description: - name: dbus - sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" - url: "https://pub.dev" - source: hosted - version: "0.7.10" - fake_async: - dependency: transitive - description: - name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - ffi: - dependency: transitive - description: - name: ffi - sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - file: - dependency: transitive - description: - name: file - sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" - url: "https://pub.dev" - source: hosted - version: "7.0.0" - fixnum: - dependency: "direct main" - description: - name: fixnum - sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" - url: "https://pub.dev" - source: hosted - version: "1.1.0" - flutter: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_highlight: - dependency: "direct main" - description: - name: flutter_highlight - sha256: "7b96333867aa07e122e245c033b8ad622e4e3a42a1a2372cbb098a2541d8782c" - url: "https://pub.dev" - source: hosted - version: "0.7.0" - flutter_lints: - dependency: "direct dev" - description: - name: flutter_lints - sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" - url: "https://pub.dev" - source: hosted - version: "3.0.2" - flutter_markdown: - dependency: "direct main" - description: - name: flutter_markdown - sha256: f0e599ba89c9946c8e051780f0ec99aba4ba15895e0380a7ab68f420046fc44e - url: "https://pub.dev" - source: hosted - version: "0.7.4+1" - flutter_test: - dependency: "direct dev" - description: flutter - source: sdk - version: "0.0.0" - flutter_web_plugins: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - gtk: - dependency: transitive - description: - name: gtk - sha256: e8ce9ca4b1df106e4d72dad201d345ea1a036cc12c360f1a7d5a758f78ffa42c - url: "https://pub.dev" - source: hosted - version: "2.1.0" - highlight: - dependency: transitive - description: - name: highlight - sha256: "5353a83ffe3e3eca7df0abfb72dcf3fa66cc56b953728e7113ad4ad88497cf21" - url: "https://pub.dev" - source: hosted - version: "0.7.0" - http: - dependency: "direct main" - description: - name: http - sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 - url: "https://pub.dev" - source: hosted - version: "1.2.2" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - image: - dependency: transitive - description: - name: image - sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" - url: "https://pub.dev" - source: hosted - version: "4.2.0" - internet_connection_checker: - dependency: transitive - description: - name: internet_connection_checker - sha256: "1c683e63e89c9ac66a40748b1b20889fd9804980da732bf2b58d6d5456c8e876" - url: "https://pub.dev" - source: hosted - version: "1.0.0+1" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - leak_tracker: - dependency: transitive - description: - name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" - url: "https://pub.dev" - source: hosted - version: "10.0.5" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" - url: "https://pub.dev" - source: hosted - version: "3.0.1" - lints: - dependency: transitive - description: - name: lints - sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 - url: "https://pub.dev" - source: hosted - version: "3.0.0" - markdown: - dependency: transitive - description: - name: markdown - sha256: ef2a1298144e3f985cc736b22e0ccdaf188b5b3970648f2d9dc13efd1d9df051 - url: "https://pub.dev" - source: hosted - version: "7.2.2" - matcher: - dependency: transitive - description: - name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb - url: "https://pub.dev" - source: hosted - version: "0.12.16+1" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec - url: "https://pub.dev" - source: hosted - version: "0.11.1" - media_kit: - dependency: "direct main" - description: - name: media_kit - sha256: "1f1deee148533d75129a6f38251ff8388e33ee05fc2d20a6a80e57d6051b7b62" - url: "https://pub.dev" - source: hosted - version: "1.1.11" - media_kit_libs_android_video: - dependency: transitive - description: - name: media_kit_libs_android_video - sha256: "9dd8012572e4aff47516e55f2597998f0a378e3d588d0fad0ca1f11a53ae090c" - url: "https://pub.dev" - source: hosted - version: "1.3.6" - media_kit_libs_ios_video: - dependency: transitive - description: - name: media_kit_libs_ios_video - sha256: b5382994eb37a4564c368386c154ad70ba0cc78dacdd3fb0cd9f30db6d837991 - url: "https://pub.dev" - source: hosted - version: "1.1.4" - media_kit_libs_linux: - dependency: transitive - description: - name: media_kit_libs_linux - sha256: e186891c31daa6bedab4d74dcdb4e8adfccc7d786bfed6ad81fe24a3b3010310 - url: "https://pub.dev" - source: hosted - version: "1.1.3" - media_kit_libs_macos_video: - dependency: transitive - description: - name: media_kit_libs_macos_video - sha256: f26aa1452b665df288e360393758f84b911f70ffb3878032e1aabba23aa1032d - url: "https://pub.dev" - source: hosted - version: "1.1.4" - media_kit_libs_video: - dependency: "direct main" - description: - name: media_kit_libs_video - sha256: "20bb4aefa8fece282b59580e1cd8528117297083a6640c98c2e98cfc96b93288" - url: "https://pub.dev" - source: hosted - version: "1.0.5" - media_kit_libs_windows_video: - dependency: transitive - description: - name: media_kit_libs_windows_video - sha256: "32654572167825c42c55466f5d08eee23ea11061c84aa91b09d0e0f69bdd0887" - url: "https://pub.dev" - source: hosted - version: "1.0.10" - media_kit_native_event_loop: - dependency: transitive - description: - name: media_kit_native_event_loop - sha256: "7d82e3b3e9ded5c35c3146c5ba1da3118d1dd8ac3435bac7f29f458181471b40" - url: "https://pub.dev" - source: hosted - version: "1.0.9" - media_kit_video: - dependency: "direct main" - description: - name: media_kit_video - sha256: "2cc3b966679963ba25a4ce5b771e532a521ebde7c6aa20e9802bec95d9916c8f" - url: "https://pub.dev" - source: hosted - version: "1.2.5" - meta: - dependency: transitive - description: - name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 - url: "https://pub.dev" - source: hosted - version: "1.15.0" - nested: - dependency: transitive - description: - name: nested - sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" - url: "https://pub.dev" - source: hosted - version: "1.0.0" - package_config: - dependency: transitive - description: - name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - package_info_plus: - dependency: "direct main" - description: - name: package_info_plus - sha256: df3eb3e0aed5c1107bb0fdb80a8e82e778114958b1c5ac5644fb1ac9cae8a998 - url: "https://pub.dev" - source: hosted - version: "8.1.0" - package_info_plus_platform_interface: - dependency: transitive - description: - name: package_info_plus_platform_interface - sha256: ac1f4a4847f1ade8e6a87d1f39f5d7c67490738642e2542f559ec38c37489a66 - url: "https://pub.dev" - source: hosted - version: "3.0.1" - path: - dependency: transitive - description: - name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - path_parsing: - dependency: transitive - description: - name: path_parsing - sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf - url: "https://pub.dev" - source: hosted - version: "1.0.1" - path_provider_linux: - dependency: transitive - description: - name: path_provider_linux - sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 - url: "https://pub.dev" - source: hosted - version: "2.2.1" - path_provider_platform_interface: - dependency: transitive - description: - name: path_provider_platform_interface - sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" - url: "https://pub.dev" - source: hosted - version: "2.1.2" - path_provider_windows: - dependency: transitive - description: - name: path_provider_windows - sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 - url: "https://pub.dev" - source: hosted - version: "2.3.0" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 - url: "https://pub.dev" - source: hosted - version: "6.0.2" - platform: - dependency: transitive - description: - name: platform - sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" - url: "https://pub.dev" - source: hosted - version: "3.1.5" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" - url: "https://pub.dev" - source: hosted - version: "2.1.8" - protobuf: - dependency: "direct main" - description: - name: protobuf - sha256: "68645b24e0716782e58948f8467fd42a880f255096a821f9e7d0ec625b00c84d" - url: "https://pub.dev" - source: hosted - version: "3.1.0" - provider: - dependency: "direct main" - description: - name: provider - sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c - url: "https://pub.dev" - source: hosted - version: "6.1.2" - rinf: - dependency: "direct main" - description: - name: rinf - sha256: "824599d8c4cfc3c5be1cdbd5c53f849eca93ed332bbb30bff60c3778454a26af" - url: "https://pub.dev" - source: hosted - version: "6.15.0" - safe_local_storage: - dependency: transitive - description: - name: safe_local_storage - sha256: ede4eb6cb7d88a116b3d3bf1df70790b9e2038bc37cb19112e381217c74d9440 - url: "https://pub.dev" - source: hosted - version: "1.0.2" - screen_brightness: - dependency: transitive - description: - name: screen_brightness - sha256: ed8da4a4511e79422fc1aa88138e920e4008cd312b72cdaa15ccb426c0faaedd - url: "https://pub.dev" - source: hosted - version: "0.2.2+1" - screen_brightness_android: - dependency: transitive - description: - name: screen_brightness_android - sha256: "3df10961e3a9e968a5e076fe27e7f4741fa8a1d3950bdeb48cf121ed529d0caf" - url: "https://pub.dev" - source: hosted - version: "0.1.0+2" - screen_brightness_ios: - dependency: transitive - description: - name: screen_brightness_ios - sha256: "99adc3ca5490b8294284aad5fcc87f061ad685050e03cf45d3d018fe398fd9a2" - url: "https://pub.dev" - source: hosted - version: "0.1.0" - screen_brightness_macos: - dependency: transitive - description: - name: screen_brightness_macos - sha256: "64b34e7e3f4900d7687c8e8fb514246845a73ecec05ab53483ed025bd4a899fd" - url: "https://pub.dev" - source: hosted - version: "0.1.0+1" - screen_brightness_platform_interface: - dependency: transitive - description: - name: screen_brightness_platform_interface - sha256: b211d07f0c96637a15fb06f6168617e18030d5d74ad03795dd8547a52717c171 - url: "https://pub.dev" - source: hosted - version: "0.1.0" - screen_brightness_windows: - dependency: transitive - description: - name: screen_brightness_windows - sha256: "9261bf33d0fc2707d8cf16339ce25768100a65e70af0fcabaf032fc12408ba86" - url: "https://pub.dev" - source: hosted - version: "0.1.3" - screen_retriever: - dependency: transitive - description: - name: screen_retriever - sha256: "6ee02c8a1158e6dae7ca430da79436e3b1c9563c8cf02f524af997c201ac2b90" - url: "https://pub.dev" - source: hosted - version: "0.1.9" - shared_preferences: - dependency: "direct main" - description: - name: shared_preferences - sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - shared_preferences_android: - dependency: transitive - description: - name: shared_preferences_android - sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - shared_preferences_foundation: - dependency: transitive - description: - name: shared_preferences_foundation - sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f - url: "https://pub.dev" - source: hosted - version: "2.5.2" - shared_preferences_linux: - dependency: transitive - description: - name: shared_preferences_linux - sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" - url: "https://pub.dev" - source: hosted - version: "2.4.1" - shared_preferences_platform_interface: - dependency: transitive - description: - name: shared_preferences_platform_interface - sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" - url: "https://pub.dev" - source: hosted - version: "2.4.1" - shared_preferences_web: - dependency: transitive - description: - name: shared_preferences_web - sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e - url: "https://pub.dev" - source: hosted - version: "2.4.2" - shared_preferences_windows: - dependency: transitive - description: - name: shared_preferences_windows - sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" - url: "https://pub.dev" - source: hosted - version: "2.4.1" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.99" - source_span: - dependency: transitive - description: - name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" - url: "https://pub.dev" - source: hosted - version: "1.10.0" - sprintf: - dependency: transitive - description: - name: sprintf - sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" - url: "https://pub.dev" - source: hosted - version: "7.0.0" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" - url: "https://pub.dev" - source: hosted - version: "1.11.1" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 - url: "https://pub.dev" - source: hosted - version: "2.1.2" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - synchronized: - dependency: transitive - description: - name: synchronized - sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" - url: "https://pub.dev" - source: hosted - version: "3.3.0+3" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - test_api: - dependency: transitive - description: - name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" - url: "https://pub.dev" - source: hosted - version: "0.7.2" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c - url: "https://pub.dev" - source: hosted - version: "1.3.2" - universal_platform: - dependency: transitive - description: - name: universal_platform - sha256: "64e16458a0ea9b99260ceb5467a214c1f298d647c659af1bff6d3bf82536b1ec" - url: "https://pub.dev" - source: hosted - version: "1.1.0" - uri_parser: - dependency: transitive - description: - name: uri_parser - sha256: "6543c9fd86d2862fac55d800a43e67c0dcd1a41677cb69c2f8edfe73bbcf1835" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - uuid: - dependency: transitive - description: - name: uuid - sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff - url: "https://pub.dev" - source: hosted - version: "4.5.1" - vector_math: - dependency: transitive - description: - name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" - url: "https://pub.dev" - source: hosted - version: "14.2.5" - volume_controller: - dependency: transitive - description: - name: volume_controller - sha256: c71d4c62631305df63b72da79089e078af2659649301807fa746088f365cb48e - url: "https://pub.dev" - source: hosted - version: "2.0.8" - wakelock_plus: - dependency: transitive - description: - name: wakelock_plus - sha256: bf4ee6f17a2fa373ed3753ad0e602b7603f8c75af006d5b9bdade263928c0484 - url: "https://pub.dev" - source: hosted - version: "1.2.8" - wakelock_plus_platform_interface: - dependency: transitive - description: - name: wakelock_plus_platform_interface - sha256: "422d1cdbb448079a8a62a5a770b69baa489f8f7ca21aef47800c726d404f9d16" - url: "https://pub.dev" - source: hosted - version: "1.2.1" - watcher: - dependency: transitive - description: - name: watcher - sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" - url: "https://pub.dev" - source: hosted - version: "1.1.0" - web: - dependency: transitive - description: - name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 - url: "https://pub.dev" - source: hosted - version: "1.0.0" - win32: - dependency: transitive - description: - name: win32 - sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a" - url: "https://pub.dev" - source: hosted - version: "5.5.4" - window_manager: - dependency: transitive - description: - name: window_manager - sha256: "8699323b30da4cdbe2aa2e7c9de567a6abd8a97d9a5c850a3c86dcd0b34bbfbf" - url: "https://pub.dev" - source: hosted - version: "0.3.9" - xdg_directories: - dependency: transitive - description: - name: xdg_directories - sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d - url: "https://pub.dev" - source: hosted - version: "1.0.4" - xml: - dependency: transitive - description: - name: xml - sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 - url: "https://pub.dev" - source: hosted - version: "6.5.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" - url: "https://pub.dev" - source: hosted - version: "3.1.2" - yaru: - dependency: "direct main" - description: - name: yaru - sha256: e868965bcfbca568f54916e3f59a636a8a6ee39f2e102df8844061cd78a8d20e - url: "https://pub.dev" - source: hosted - version: "4.1.0" - yaru_window: - dependency: "direct main" - description: - name: yaru_window - sha256: c9d16f78962652ad71aa160ab0a1e2e5924359439303394f980fd00eefc905eb - url: "https://pub.dev" - source: hosted - version: "0.2.1" - yaru_window_linux: - dependency: transitive - description: - name: yaru_window_linux - sha256: "3676355492eba0461f03acf1b7420f7885982d1bffe113fccdca9415fbe39f5d" - url: "https://pub.dev" - source: hosted - version: "0.2.0" - yaru_window_manager: - dependency: transitive - description: - name: yaru_window_manager - sha256: "2d358263d19ae6598df21d6d8c0d25e75c79a82f459b63b0013a13e395c48b23" - url: "https://pub.dev" - source: hosted - version: "0.1.2" - yaru_window_platform_interface: - dependency: transitive - description: - name: yaru_window_platform_interface - sha256: e9f8cd34e207d7f7b771ae70dee347ed974cee06b981819c4181b3e474e52254 - url: "https://pub.dev" - source: hosted - version: "0.1.2" - yaru_window_web: - dependency: transitive - description: - name: yaru_window_web - sha256: "3ff30758a330d7626d54643df0cca6c179782f401aba7752da9cc0d60c9a6f74" - url: "https://pub.dev" - source: hosted - version: "0.0.3" -sdks: - dart: ">=3.5.0 <4.0.0" - flutter: ">=3.22.0" diff --git a/babylonia_terminal_launcher/pubspec.yaml b/babylonia_terminal_launcher/pubspec.yaml deleted file mode 100644 index 871e3b5..0000000 --- a/babylonia_terminal_launcher/pubspec.yaml +++ /dev/null @@ -1,42 +0,0 @@ -name: babylonia_terminal_launcher -description: "A launcher to play a certain anime game on linux" -publish_to: 'none' - -version: 0.1.2 - -environment: - sdk: '>=3.3.4 <4.0.0' - -dependencies: - flutter: - sdk: flutter - - cupertino_icons: ^1.0.6 - yaru: ^4.1.0 - provider: ^6.1.2 - rinf: ^6.9.0 - protobuf: ^3.1.0 - shared_preferences: ^2.2.3 - http: ^1.2.1 - flutter_highlight: ^0.7.0 - fixnum: ^1.1.0 - media_kit: ^1.1.11 - media_kit_video: ^1.2.5 - media_kit_libs_video: ^1.0.5 - yaru_window: ^0.2.1 - package_info_plus: ^8.1.0 - flutter_markdown: ^0.7.4+1 - -dev_dependencies: - flutter_test: - sdk: flutter - - flutter_lints: ^3.0.0 - -flutter: - - uses-material-design: true - - assets: - - assets/images/Lee6.png - - CHANGELOG.md