diff --git a/README.md b/README.md index eb4c551..da10500 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ Consider Cultivation to be the bleeding-edge version of GrassClipper. During this open-beta testing period, **helpful issues are appreciated**, while unhelpful ones will be closed. ## Fair Warning -Cultivation is **VERY MUCH IN BETA** and a majority of features do not work.\ -There are **no official releases of Cultivation**. You are **required** to build the application from **scratch**.\ -Please do **NOT install, download, or use pre-compiled versions of Cultivation**. Only use releases from this GitHub repository. +Cultivation is **VERY MUCH IN BETA**. +There are **no official releases of Cultivation**. You are **required** to build the application from **scratch** unless you want to deal with the alpha state of the current builds. +Please do **NOT install, download, or use pre-compiled versions of Cultivation found elsewhere**. Only use releases from this GitHub repository. # Cultivation A game launcher designed to easily proxy traffic from anime game to private servers. @@ -21,6 +21,7 @@ A game launcher designed to easily proxy traffic from anime game to private serv * [Setup](#setup) * [Building](#building) * [Troubleshooting](#troubleshooting) +* [Theming](#theming) # Download [Find release builds here!](https://github.com/Grasscutters/Cultivation/releases) @@ -30,6 +31,7 @@ Once downloaded, extract somewhere and open as administrator. # Developer Quickstart ### Setup +* Install [NodeJS >12](https://nodejs.org/en/) * Install [Cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) & [Rust compiler](https://www.rust-lang.org/tools/install) * `npm install` or `yarn install` * `npm run start:dev` or `yarn start:dev` @@ -48,6 +50,10 @@ Add `--release` or `--debug` depending on what release you are creating. This de # Troubleshooting TODO. Collect common issues before updating. +# Theming + +A full theming reference can be found [here!](/THEMES.md) + # Screenshots ![image](https://user-images.githubusercontent.com/25207995/173211603-e5e85df7-7fd3-430b-9246-749ebbc1e483.png) ![image](https://user-images.githubusercontent.com/25207995/173211543-b7e88943-cfd2-418b-ac48-7f856868129b.png) @@ -58,4 +64,4 @@ TODO. Collect common issues before updating. ## Credits * [SpikeHD](https://github.com/SpikeHD): For originally creating **GrassClipper** and creating the amazing UI of Cultivation. * [KingRainbow44](https://github.com/KingRainbow44): For building a proxy daemon from scratch and integrating it with Cultivation. -* [Tauri](https://tauri.app): For providing an amazing, efficient, and simple desktop application framework/library. \ No newline at end of file +* [Tauri](https://tauri.app): For providing an amazing, efficient, and simple desktop application framework/library. diff --git a/THEMES.md b/THEMES.md new file mode 100644 index 0000000..4350cd3 --- /dev/null +++ b/THEMES.md @@ -0,0 +1,106 @@ +# Downloading/Installing Themes + +1. Download your favorite theme! (You can find some in the `#themes` channel on Discord) +2. Place the unzipped theme folder inside of `%appdata%/cultivation/themes` (The path should look something like this: `cultivation/themes/theme_name/index.json`) +4. Enable within Cultivation! + +# Creating your own theme + +Themes support entirely custom JS and CSS, enabling you to potentially change every single thing about Cultivation with relative ease. + +You can refer to the example theme [found here.](https://cdn.discordapp.com/attachments/992943872479084614/992993575652565002/Example.zip) + +You will need CSS and JS experience if you want to do anything cool. + +## Creating index.json + +`index.json` is where you tell Cultivation which files and images to include. It supports the following properties: + +| Property | Description | +| :--- | :--- | +| `name` | The name of the theme. | +| `version` | Not shown anywhere, the version of the theme. | +| `description` | Not shown anywhere, the description of the theme. | +| `includes` | The files and folders to include. | +| `includes.css` | Array of CSS files to include. Example: `css: ["index.css"]` | +| `includes.js` | Array of JS files to includes. Example `js: ["index.js"]` | +| `customBackgroundURL` | A custom image URL to set as the background. Backgrounds that users set in their config supercede this. Example: `"https://website.com/image.png"` | +| `customBackgroundFile` | Path to a custom background image file. Backgrounds that users set in their config supercede this. Example: `"/image.png"` | + +A full, complete `index.json` will look something like this: + +```json +{ + "name": "Example", + "version": "1.0.0", + "description": "This is an example theme. Made by SpikeHD.", + "includes": { + "css": ["/index.css"], + "js": ["/index.js"] + }, + "customBackgroundURL": "https://website.com/image.png", + "customBackgroundFile": "/image.png" +} +``` + +**Important Note:** +All paths are relative to the theme folder. This means you only need to do `"/index.css"` to include `index.css` from the same folder `index.json` is located. + +## Writing your CSS + +You are welcome to use the DevTools to debug your theme, or view what properties an element has already, etc. + +Below are some small examples of what you can do: + +```css +/* Change the font */ +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important; +} +``` +```css +/* Remove the news section */ +.NewsSection { + display: none; +} +``` +```css +/* Change the right bar width */ +.RightBar { + width: 300px; +} +``` + +## How can I change XYZ element? +Every element is documented and describe [here](/docs/elementIds.md). Every\* single DOM element is assigned an ID to allow for easy and hyper-specific editing. + +## Writing your JS + +There are no limitations to what you can do with JS. It is safe, as it is sandboxed within the webpage, so there is no possibility of it being able to do anything more than what any regular webpage can do. + +Below are some examples of what you can do: + +```js +/* Change the version number every 500ms */ +setInterval(() => { + document.getElementById("version").innerHTML = "v" + Math.floor(Math.random() * 100); +}, 500); +``` +```js +/* Load a custom font */ +const head = document.head +const link = document.createElement("link") + +link.href = "https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" +link.rel = "stylesheet" +link.type = "text/css" + +head.appendChild(link) +``` +```js +/* Create a new button that does nothing */ +const newButton = document.createElement("button"); +newButton.innerHTML = "New Button"; + +document.body.appendChild(newButton); +``` diff --git a/docs/elementIds.md b/docs/elementIds.md new file mode 100644 index 0000000..8f87a00 --- /dev/null +++ b/docs/elementIds.md @@ -0,0 +1,133 @@ +# Documentation of Element ID's and Classes for custom theming + +## IDs +This does not include commonly used components (buttons, divider lines, commit author and message, etc...) for accessing and modifying those elements, please check `Classes` section bellow. + +| #ID | Description | +|----------------------------------------|-----------------------------------------------------------------| +| `#miniDialogContainer` | Main container of MiniDialog | +| `#miniDialogContainerTop` | Affects only top section of MiniDialog | +| `#miniDialogButtonClose` | Close button (SVG) of MiniDialog | +| `#miniDialogContent` | MiniDialog content | +| `#rightBarContainer` | Main container of RightBar | +| `#rightBarContent` | RightBar content | +| `#rightBarButtonDiscord` | Discord button on the RightBar | +| `#rightBarButtonGithub` | Github button on the RightBar | +| `#playButton` | Main container for whole launch buttons section | +| `#serverControls` | Container of "play on grasscutter" checkbox | +| `#enableGC` | "play on grasscutter" checkbox | +| `#ip` | Server ip input if play on grasscutter is enabled | +| `#port` | Server port input if play on grasscutter is enabled | +| `#httpsEnable` | "Enable https" checkbox if play on grasscutter is enabled | +| `#officialPlay` | Launch button | +| `#serverLaunch` | Launch server button | +| `#serverlaunchIcon` | Icon (SVG) of server launch button | +| `#serverConfigContainer` | Main container of server configuration section | +| `#serverLaunchContainer` | Main container of launch buttons (includes launch server) | +| `#topBarContainer` | Main container of launcher TopBar (minimize, exit, settings...) | +| `#title` | Title of the TopBar | +| `#version` | Version of the launcher in TopBar | +| `#topBarButtonContainer` | Container of launcher TopBar buttons only | +| `#closeBtn` | Exit launcher button | +| `#minBtn` | Minimize launcher button | +| `#settingsBtn` | Settings button | +| `#downloadsBtn` | Downloads button (grasscutter resources, grasscutter...) | +| `#newsContainer` | Main container of the news section | +| `#newsTabsContainer` | Container for news tabs | +| `#commits` | News tabs container commits button | +| `#latest_version` | News tabs for latest version button | +| `#newsContent` | Content section of news container | +| `#newsCommitsTable` | Commits table of news section | +| `#downloadMenuContainerGCStable` | Grasscutter stable update container | +| `#downloadMenuLabelGCStable` | Label for stable update button | +| `#downloadMenuButtonGCStable` | Button container for stable update button | +| `#grasscutterStableBtn` | "Update grasscutter stable" button | +| `#downloadMenuContainerGCDev` | Grasscutter development update container | +| `#downloadMenuLabelGCDev` | Label for latest update button | +| `#downloadMenuButtonGCDev` | Button container for latest update button | +| `grasscutterLatestBtn` | "Update grasscutter latest" button | +| `#downloadMenuContainerGCStableData` | Grasscutter stable data update container | +| `#downloadMenuLabelGCStableData` | Label for stable data update | +| `#downloadMenuButtonGCStableData` | Button container for stable data update button | +| `#grasscutterStableRepo` | "Update grasscutter stable data" button | +| `#downloadMenuContainerGCDevData` | Grasscutter latest data update container | +| `#downloadMenuLabelGCDevData` | Label for latest data update | +| `#downloadMenuButtonGCDevData` | Button container for latest data update button | +| `#grasscutterDevRepo` | "Update grasscutter latest data" button | +| `#downloadMenuContainerResources` | Container for grasscutter resources download | +| `#downloadMenuLabelResources` | label for resources download | +| `#downloadMenuButtonResources` | Button container for resources download button | +| `#resourcesBtn` | "Download grasscutter resources" button | +| `#menuContainer` | Generic Popup modal like menu container | +| `#menuContainerTop` | Top section of menu container | +| `#menuHeading` | Menu title | +| `#menuButtonCloseContainer` | Container for menu close button | +| `#menuButtonCloseIcon` | Menu close icon (SVG) | +| `#menuContent` | Content section of the menu | +| `#menuOptionsContainerGameExec` | Container for game executable option section | +| `#menuOptionsLabelGameExec` | Label for game executable option | +| `#menuOptionsDirGameExec` | Set game executable file browser | +| `#menuOptionsContainerGCJar` | Container for grasscutter jar option | +| `#menuOptionsLabelGCJar` | Label for grasscutter jar option | +| `#menuOptionsDirGCJar` | Set grasscutter jar file browser | +| `#menuOptionsContainerToggleEnc` | Container for toggle encryption option | +| `#menuOptionsLabelToggleEnc` | Label for toggle encryption option | +| `#menuOptionsButtonToggleEnc` | Toggle encryption button container | +| `#toggleEnc` | Toggle encryption button | +| `#menuOptionsContainerGCWGame` | Container for "grasscutter with game" option | +| `#menuOptionsLabelGCWDame` | Label for "grasscutter with game" option | +| `#menuOptionsCheckboxGCWGame` | Container for "grasscutter with game" option checkbox | +| `#gcWithGame` | Grasscutter with game checkbox | +| `#menuOptionsContainerThemes` | Container for themes section | +| `#menuOptionsLabelThemes` | Label for set themes option | +| `#menuOptionsSelectThemes` | Container for themes select menu | +| `#menuOptionsSelectMenuThemes` | Set theme select menu | +| `#menuOptionsContainerJavaPath` | Container for Java Path option | +| `#menuOptionsLabelJavaPath` | Label for Java path option | +| `#menuOptionsDirJavaPath` | Container for java path file browser | +| `#menuOptionsContainerBG` | Container for Background option | +| `#menuOptionsLabelBG` | Label for background option | +| `#menuOptionsDirBG` | Container for background url/local path option | +| `#menuOptionsContainerLang` | Container for language change option | +| `#menuOptionsLabelLang` | Label for language change option | +| `#menuOptionsSelectLang` | Container for language change select menu | +| `#menuOptionsSelectMenuLang` | Language select menu | +| `#DownloadProgress` | Download progress container | +| `#bottomSectionContainer` | Bottom section container | +| `#miniDownloadContainer` | Container for mini download | + +## Classes +This is not full list of all classes, rather its list of classes for commonly used components that can not be accessed using element id system. + +| .Class | Description | +|-----------------------------|---------------------------------------------------------| +| `.BigButton` | Class for all buttons | +| `.BigButtonText` | Text inside a button | | +| `.Checkbox` | Checkbox container | +| `.CheckboxDisplay` | Content of checkbox | +| `.DirInput` | Container for DirInput | +| `.FileSelectIcon` | Icon of DirInput | +| `.DownloadList` | List of all downloads | +| `.DownloadSection` | Container for each download | +| `.DownloadTitle` | Contains file download path and current status | +| `.DownloadPath` | Path of a download | +| `.DownloadStatus` | Status of a download | +| `.DownloadSectionInner` | Contains progressbar of the download section | +| `.HelpSection` | Container for help "?" circle button | +| `.HelpButton` | HelpButton itself | +| `.HelpContents` | Content of help button once expanded | +| `.MainProgressBarWrapper` | Container for MainProgressBar | +| `.ProgressBar` | ProgressBar (creativity left the brain) | +| `.InnerProgress` | ProgressBar percentage | +| `.MainProgressText` | Text for MainProgressBar | +| `.ProgressBarWrapper` | Container for ProgressBar | +| `.DownloadControls` | DownloadControls of ProgressBar | +| `.downloadStop` | Container for download stop icon (SVG) | +| `.ProgressText` | Text of the ProgressBar display current download status | +| `.TextInputWrapper` | Container for TextInput | +| `.TextClear` | Container for clear input content button | +| `.TextInputClear` | TextInput clear button icon (SVG) | +| `.Divider` | Container for line dividers | +| `.DividerLine` | Divider line itself | +| `.CommitAuthor` | Author of a commit | +| `.CommitMessage` | Message of a commit | \ No newline at end of file diff --git a/package.json b/package.json index f2c54d4..323e822 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cultivation", - "version": "1.0.0", + "version": "1.0.1", "private": true, "dependencies": { "@tauri-apps/api": "^1.0.0-rc.5", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 44b300b..5cced14 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -2,15 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "addr2line" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" -dependencies = [ - "gimli", -] - [[package]] name = "adler" version = "1.0.2" @@ -70,9 +61,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" +checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" [[package]] name = "asn1-rs" @@ -87,7 +78,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.9", + "time 0.3.11", ] [[package]] @@ -131,9 +122,9 @@ dependencies = [ [[package]] name = "async-io" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" +checksum = "e5e18f61464ae81cde0a23e713ae8fd299580c54d697a35820cfd0625b8b0e07" dependencies = [ "concurrent-queue", "futures-lite", @@ -159,9 +150,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.53" +version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600" +checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" dependencies = [ "proc-macro2", "quote", @@ -186,8 +177,8 @@ version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" dependencies = [ - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "glib-sys", + "gobject-sys", "libc", "system-deps 6.0.2", ] @@ -216,21 +207,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -[[package]] -name = "backtrace" -version = "0.3.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61" -dependencies = [ - "addr2line", - "cc", - "cfg-if 1.0.0", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - [[package]] name = "base64" version = "0.13.0" @@ -243,15 +219,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a32fd6af2b5827bce66c29053ba0e7c42b9dcab01835835058558c10851a46b" -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - [[package]] name = "bitflags" version = "1.3.2" @@ -305,15 +272,21 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.9.1" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" +checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" [[package]] name = "bytecount" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72feb31ffc86498dacdbd0fcebb56138e7177a8cc5cea4516031d15ae85a742e" +checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c" + +[[package]] +name = "bytemuck" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c53dfa917ec274df8ed3c572698f381a24eef2efba9492d797301b72b6db408a" [[package]] name = "byteorder" @@ -356,9 +329,9 @@ checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" [[package]] name = "cairo-rs" -version = "0.15.11" +version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62be3562254e90c1c6050a72aa638f6315593e98c5cdaba9017cedbabf0a5dee" +checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" dependencies = [ "bitflags", "cairo-sys-rs", @@ -373,16 +346,16 @@ version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" dependencies = [ - "glib-sys 0.15.10", + "glib-sys", "libc", "system-deps 6.0.2", ] [[package]] name = "camino" -version = "1.0.7" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f3132262930b0522068049f5870a856ab8affc80c70d08b6ecb785771a6fc23" +checksum = "869119e97797867fd90f5e22af7d0bd274bd4635ebb9eb68c04f3f513ae6c412" dependencies = [ "serde", ] @@ -404,7 +377,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.9", + "semver 1.0.12", "serde", "serde_json", ] @@ -445,15 +418,6 @@ dependencies = [ "uuid 0.8.2", ] -[[package]] -name = "cfg-expr" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e" -dependencies = [ - "smallvec", -] - [[package]] name = "cfg-expr" version = "0.9.1" @@ -465,9 +429,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e068cb2806bbc15b439846dc16c5f89f8599f2c3e4d73d4449d38f9b2f0b6c5" +checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" dependencies = [ "smallvec", ] @@ -524,6 +488,12 @@ dependencies = [ "objc", ] +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + [[package]] name = "combine" version = "4.6.4" @@ -616,12 +586,12 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" +checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.8", + "crossbeam-utils 0.8.10", ] [[package]] @@ -631,8 +601,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ "cfg-if 1.0.0", - "crossbeam-epoch 0.9.8", - "crossbeam-utils 0.8.8", + "crossbeam-epoch 0.9.9", + "crossbeam-utils 0.8.10", ] [[package]] @@ -652,15 +622,15 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" +checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d" dependencies = [ "autocfg", "cfg-if 1.0.0", - "crossbeam-utils 0.8.8", - "lazy_static", + "crossbeam-utils 0.8.10", "memoffset 0.6.5", + "once_cell", "scopeguard", ] @@ -677,19 +647,19 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" +checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" dependencies = [ "cfg-if 1.0.0", - "lazy_static", + "once_cell", ] [[package]] name = "crypto-common" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +checksum = "5999502d32b9c48d492abe66392408144895020ec4709e549e840799f3bb74c0" dependencies = [ "generic-array", "typenum", @@ -742,21 +712,20 @@ checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" name = "cultivation" version = "0.1.0" dependencies = [ - "base64", "duct", "futures-util", "http", "hudsucker", "is_elevated", - "lazy_static", - "open", + "once_cell", + "open 2.1.3", "rcgen", "registry", "reqwest", - "runas", "rustls-pemfile", "serde", "serde_json", + "sudo", "sysinfo", "tauri", "tauri-build", @@ -768,38 +737,14 @@ dependencies = [ "zip-extract", ] -[[package]] -name = "darling" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" -dependencies = [ - "darling_core 0.10.2", - "darling_macro 0.10.2", -] - [[package]] name = "darling" version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.4", -] - -[[package]] -name = "darling_core" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.9.3", - "syn", + "darling_core", + "darling_macro", ] [[package]] @@ -812,18 +757,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim 0.10.0", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" -dependencies = [ - "darling_core 0.10.2", - "quote", + "strsim", "syn", ] @@ -833,7 +767,7 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ - "darling_core 0.13.4", + "darling_core", "quote", "syn", ] @@ -979,9 +913,22 @@ dependencies = [ [[package]] name = "either" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" + +[[package]] +name = "embed-resource" +version = "1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc24ff8d764818e9ab17963b0593c535f077a513f565e75e4352d758bc4d8c0" +dependencies = [ + "cc", + "rustc_version 0.4.0", + "toml", + "vswhom", + "winreg", +] [[package]] name = "embed_plist" @@ -1013,15 +960,6 @@ version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" -[[package]] -name = "failure" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -dependencies = [ - "backtrace", -] - [[package]] name = "fastrand" version = "1.7.0" @@ -1043,25 +981,23 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0408e2626025178a6a7f7ffc05a25bc47103229f19c113755de7bf63816290c" +checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", - "winapi", + "windows-sys", ] [[package]] name = "flate2" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39522e96686d38f4bc984b9198e3a0613264abaebaff2c5c918bfa6b6da09af" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ - "cfg-if 1.0.0", "crc32fast", - "libc", "miniz_oxide", ] @@ -1254,9 +1190,9 @@ version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" dependencies = [ - "gio-sys 0.15.10", - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "system-deps 6.0.2", ] @@ -1269,9 +1205,9 @@ checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", - "gio-sys 0.15.10", - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "pango-sys", "pkg-config", @@ -1285,7 +1221,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" dependencies = [ "gdk-sys", - "glib-sys 0.15.10", + "glib-sys", "libc", "system-deps 6.0.2", "x11", @@ -1327,59 +1263,40 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ "cfg-if 1.0.0", "libc", - "wasi 0.10.2+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", ] -[[package]] -name = "gimli" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" - [[package]] name = "gio" -version = "0.15.11" +version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f132be35e05d9662b9fa0fee3f349c6621f7782e0105917f4cc73c1bf47eceb" +checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" dependencies = [ "bitflags", "futures-channel", "futures-core", "futures-io", - "gio-sys 0.15.10", + "gio-sys", "glib", "libc", "once_cell", "thiserror", ] -[[package]] -name = "gio-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0a41df66e57fcc287c4bcf74fc26b884f31901ea9792ec75607289b456f48fa" -dependencies = [ - "glib-sys 0.14.0", - "gobject-sys 0.14.0", - "libc", - "system-deps 3.2.0", - "winapi", -] - [[package]] name = "gio-sys" version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" dependencies = [ - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "glib-sys", + "gobject-sys", "libc", "system-deps 6.0.2", "winapi", @@ -1387,9 +1304,9 @@ dependencies = [ [[package]] name = "glib" -version = "0.15.11" +version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124026a2fa8c33a3d17a3fe59c103f2d9fa5bd92c19e029e037736729abeab" +checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" dependencies = [ "bitflags", "futures-channel", @@ -1397,8 +1314,8 @@ dependencies = [ "futures-executor", "futures-task", "glib-macros", - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "glib-sys", + "gobject-sys", "libc", "once_cell", "smallvec", @@ -1413,23 +1330,13 @@ checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" dependencies = [ "anyhow", "heck 0.4.0", - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro-error", "proc-macro2", "quote", "syn", ] -[[package]] -name = "glib-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c1d60554a212445e2a858e42a0e48cece1bd57b311a19a9468f70376cf554ae" -dependencies = [ - "libc", - "system-deps 3.2.0", -] - [[package]] name = "glib-sys" version = "0.15.10" @@ -1448,9 +1355,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] name = "globset" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" +checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" dependencies = [ "aho-corasick", "bstr", @@ -1459,24 +1366,13 @@ dependencies = [ "regex", ] -[[package]] -name = "gobject-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa92cae29759dae34ab5921d73fff5ad54b3d794ab842c117e36cafc7994c3f5" -dependencies = [ - "glib-sys 0.14.0", - "libc", - "system-deps 3.2.0", -] - [[package]] name = "gobject-sys" version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" dependencies = [ - "glib-sys 0.15.10", + "glib-sys", "libc", "system-deps 6.0.2", ] @@ -1514,9 +1410,9 @@ dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gdk-sys", - "gio-sys 0.15.10", - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "pango-sys", "system-deps 6.0.2", @@ -1529,7 +1425,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" dependencies = [ "anyhow", - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro-error", "proc-macro2", "quote", @@ -1551,15 +1447,15 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.1", + "tokio-util", "tracing", ] [[package]] name = "hashbrown" -version = "0.11.2" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "607c8a29735385251a339424dd462993c0fed8fa09d378f259377df08c126022" [[package]] name = "heck" @@ -1610,20 +1506,20 @@ dependencies = [ [[package]] name = "http" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", - "itoa 1.0.1", + "itoa 1.0.2", ] [[package]] name = "http-body" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http", @@ -1666,19 +1562,19 @@ dependencies = [ "rand 0.8.5", "rcgen", "thiserror", - "time 0.3.9", + "time 0.3.11", "tokio", "tokio-rustls", "tokio-tungstenite", - "tokio-util 0.7.1", + "tokio-util", "tracing", ] [[package]] name = "hyper" -version = "0.14.18" +version = "0.14.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2" +checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" dependencies = [ "bytes", "futures-channel", @@ -1689,7 +1585,7 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.1", + "itoa 1.0.2", "pin-project-lite", "socket2", "tokio", @@ -1772,7 +1668,7 @@ version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" dependencies = [ - "crossbeam-utils 0.8.8", + "crossbeam-utils 0.8.10", "globset", "lazy_static", "log", @@ -1785,10 +1681,24 @@ dependencies = [ ] [[package]] -name = "indexmap" -version = "1.8.1" +name = "image" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" +checksum = "28edd9d7bc256be2502e325ac0628bde30b7001b9b52e0abe31a1a9dc2701212" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "indexmap" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", "hashbrown", @@ -1836,15 +1746,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "itertools" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "0.4.8" @@ -1853,9 +1754,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" +checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" [[package]] name = "javascriptcore-rs" @@ -1874,8 +1775,8 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" dependencies = [ - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "glib-sys", + "gobject-sys", "libc", "system-deps 5.0.0", ] @@ -1894,6 +1795,20 @@ dependencies = [ "walkdir", ] +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + [[package]] name = "jni-sys" version = "0.3.0" @@ -1911,9 +1826,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.57" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" +checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" dependencies = [ "wasm-bindgen", ] @@ -1949,9 +1864,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.125" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" [[package]] name = "libdbus-sys" @@ -1962,6 +1877,15 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "line-wrap" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +dependencies = [ + "safemem", +] + [[package]] name = "lock_api" version = "0.4.7" @@ -1983,9 +1907,9 @@ dependencies = [ [[package]] name = "loom" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc5c7d328e32cc4954e8e01193d7f0ef5ab257b5090b70a964e099a36034309" +checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" dependencies = [ "cfg-if 1.0.0", "generator", @@ -2004,15 +1928,15 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" [[package]] name = "mac-notification-sys" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297c13fc8ff9fa8b2d0e53850f80e0aa962628e865d447031ce58cdb062e5b29" +checksum = "042f74a606175d72ca483e14e0873fe0f6c003f7af45865b17b16fdaface7203" dependencies = [ "cc", "dirs-next", "objc-foundation", "objc_id", - "time 0.3.9", + "time 0.3.11", ] [[package]] @@ -2106,18 +2030,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082" +checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799" +checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" dependencies = [ "libc", "log", @@ -2127,19 +2051,19 @@ dependencies = [ [[package]] name = "moka" -version = "0.8.2" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef9d038ced38770a867f2300ef21e1193b5e26d8e8e060fa5c034d1dddc57452" +checksum = "975fa04238144061e7f8df9746b2e9cd93ef85881da5548d842a7c6a4b614415" dependencies = [ "async-io", "async-lock", "crossbeam-channel", "crossbeam-epoch 0.8.2", - "crossbeam-utils 0.8.8", + "crossbeam-utils 0.8.10", "futures-util", "num_cpus", "once_cell", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "quanta", "scheduled-thread-pool", "skeptic", @@ -2147,7 +2071,7 @@ dependencies = [ "tagptr", "thiserror", "triomphe", - "uuid 0.8.2", + "uuid 1.1.2", ] [[package]] @@ -2170,9 +2094,9 @@ dependencies = [ [[package]] name = "ndk" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d64d6af06fde0e527b1ba5c7b79a6cc89cfc46325b0b2887dffe8f70197e0c3c" +checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" dependencies = [ "bitflags", "jni-sys", @@ -2187,39 +2111,14 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" -[[package]] -name = "ndk-glue" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3648f3609716eb7dbf5f5b5d4b84fcd67dd4c34efcdb12e4a6c0929c2ac48349" -dependencies = [ - "lazy_static", - "libc", - "log", - "ndk", - "ndk-context", - "ndk-macro", - "ndk-sys", -] - -[[package]] -name = "ndk-macro" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d1c6307dc424d0f65b9b06e94f88248e6305726b14729fd67a5e47b2dc481d" -dependencies = [ - "darling 0.10.2", - "proc-macro-crate 0.1.5", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "ndk-sys" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121" +checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +dependencies = [ + "jni-sys", +] [[package]] name = "new_debug_unreachable" @@ -2295,6 +2194,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -2329,7 +2239,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -2383,15 +2293,6 @@ dependencies = [ "objc", ] -[[package]] -name = "object" -version = "0.28.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" -dependencies = [ - "memchr", -] - [[package]] name = "oid-registry" version = "0.4.0" @@ -2403,9 +2304,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.10.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" +checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" [[package]] name = "opaque-debug" @@ -2415,12 +2316,22 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "open" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0524af9508f9b5c4eb41dce095860456727748f63b478d625f119a70e0d764a" +checksum = "f2423ffbf445b82e58c3b1543655968923dd06f85432f10be2bb4f1b7122f98c" dependencies = [ "pathdiff", - "winapi", + "windows-sys", +] + +[[package]] +name = "open" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "360bcc8316bf6363aa3954c3ccc4de8add167b087e0259190a043c9514f910fe" +dependencies = [ + "pathdiff", + "windows-sys", ] [[package]] @@ -2457,9 +2368,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.73" +version = "0.9.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5fd19fb3e0a8191c1e34935718976a3e70c112ab9a24af6d7cadccd9d90bc0" +checksum = "835363342df5fba8354c5b453325b110ffd54044e588c539cf2f20a8014e4cb1" dependencies = [ "autocfg", "cc", @@ -2470,9 +2381,9 @@ dependencies = [ [[package]] name = "os_info" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04304d855bb5385d4b595edf0147b8e281871766b75dd4c87b2bdf3c9e5c2d19" +checksum = "0eca3ecae1481e12c3d9379ec541b238a16f0b75c9a409942daa8ec20dbfdb62" dependencies = [ "log", "serde", @@ -2518,8 +2429,8 @@ version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" dependencies = [ - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "glib-sys", + "gobject-sys", "libc", "system-deps 6.0.2", ] @@ -2543,9 +2454,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core 0.9.3", @@ -2589,6 +2500,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "paste" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" + [[package]] name = "pathdiff" version = "0.2.1" @@ -2731,18 +2648,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" +checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" dependencies = [ "proc-macro2", "quote", @@ -2767,6 +2684,20 @@ version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +[[package]] +name = "plist" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" +dependencies = [ + "base64", + "indexmap", + "line-wrap", + "serde", + "time 0.3.11", + "xml-rs", +] + [[package]] name = "png" version = "0.11.0" @@ -2816,15 +2747,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" -[[package]] -name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml", -] - [[package]] name = "proc-macro-crate" version = "1.1.3" @@ -2867,11 +2789,11 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro2" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9027b48e9d4c9175fa2218adf3557f91c1137021739951d4932f5f8268ac48aa" +checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" dependencies = [ - "unicode-xid", + "unicode-ident", ] [[package]] @@ -2887,11 +2809,11 @@ dependencies = [ [[package]] name = "quanta" -version = "0.9.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20afe714292d5e879d8b12740aa223c6a88f118af41870e8b6196e39a02238a8" +checksum = "bafd74c340a0a7e79415981ede3460df16b530fd071541901a57416eea950b17" dependencies = [ - "crossbeam-utils 0.8.8", + "crossbeam-utils 0.8.10", "libc", "mach", "once_cell", @@ -2903,9 +2825,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" +checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" dependencies = [ "proc-macro2", ] @@ -2970,7 +2892,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", ] [[package]] @@ -3029,7 +2951,7 @@ checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" dependencies = [ "crossbeam-channel", "crossbeam-deque", - "crossbeam-utils 0.8.8", + "crossbeam-utils 0.8.10", "num_cpus", ] @@ -3041,7 +2963,7 @@ checksum = "d7fa2d386df8533b02184941c76ae2e0d0c1d053f5d43339169d80f21275fc5e" dependencies = [ "pem", "ring", - "time 0.3.9", + "time 0.3.11", "x509-parser", "yasna", ] @@ -3061,16 +2983,16 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", "redox_syscall", "thiserror", ] [[package]] name = "regex" -version = "1.5.5" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" dependencies = [ "aho-corasick", "memchr", @@ -3088,15 +3010,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.25" +version = "0.6.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "registry" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d593176a37a58e828d0503cfbb257983786c88b75c786994432324be775afaa9" +checksum = "83e4b158bf49b0d000013487636c92268de4cfd26cdbb629f020a612749f12c4" dependencies = [ "bitflags", "log", @@ -3116,9 +3038,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.10" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb" +checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92" dependencies = [ "base64", "bytes", @@ -3143,7 +3065,8 @@ dependencies = [ "serde_urlencoded", "tokio", "tokio-native-tls", - "tokio-util 0.6.9", + "tokio-util", + "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", @@ -3153,14 +3076,15 @@ dependencies = [ [[package]] name = "rfd" -version = "0.8.2" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e3107b2e81967df7c0617e978dc656795583a73ad0ddbf645ce60109caf8c2" +checksum = "f121348fd3b9035ed11be1f028e8944263c30641f8c5deacf57a4320782fb402" dependencies = [ "block", "dispatch", - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "embed-resource", + "glib-sys", + "gobject-sys", "gtk-sys", "js-sys", "lazy_static", @@ -3172,7 +3096,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows 0.35.0", + "windows 0.37.0", ] [[package]] @@ -3190,22 +3114,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "runas" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a620b0994a180cdfa25c0439e6d58c0628272571501880d626ffff58e96a0799" -dependencies = [ - "cc", - "which", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" - [[package]] name = "rustc_version" version = "0.3.3" @@ -3221,7 +3129,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.9", + "semver 1.0.12", ] [[package]] @@ -3235,9 +3143,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.4" +version = "0.20.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" +checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" dependencies = [ "log", "ring", @@ -3256,15 +3164,21 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" +checksum = "a0a5f7c728f5d284929a1cccb5bc19884422bfe6ef4d6c409da2c41838983fcf" [[package]] name = "ryu" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" +checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" [[package]] name = "same-file" @@ -3277,21 +3191,21 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" dependencies = [ "lazy_static", - "winapi", + "windows-sys", ] [[package]] name = "scheduled-thread-pool" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6f74fd1204073fa02d5d5d68bec8021be4c38690b61264b2fdb48083d0e7d7" +checksum = "977a7519bff143a44f842fd07e80ad1329295bd71686457f18e496736f4bf9bf" dependencies = [ - "parking_lot 0.11.2", + "parking_lot 0.12.1", ] [[package]] @@ -3370,9 +3284,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cb243bdfdb5936c8dc3c45762a19d12ab4550cdc753bc247637d4ec35a040fd" +checksum = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1" dependencies = [ "serde", ] @@ -3388,18 +3302,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.137" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.137" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c" dependencies = [ "proc-macro2", "quote", @@ -3408,11 +3322,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.81" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" +checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" dependencies = [ - "itoa 1.0.1", + "itoa 1.0.2", "ryu", "serde", ] @@ -3435,18 +3349,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.1", + "itoa 1.0.2", "ryu", "serde", ] [[package]] name = "serde_with" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b827f2113224f3f19a665136f006709194bdfdcb1fdc1e4b2b5cbac8e0cced54" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" dependencies = [ - "rustversion", "serde", "serde_with_macros", ] @@ -3457,7 +3370,7 @@ version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ - "darling 0.13.4", + "darling", "proc-macro2", "quote", "syn", @@ -3595,30 +3508,44 @@ checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" [[package]] name = "smallvec" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" [[package]] name = "socket2" -version = "0.4.5" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca642ba17f8b2995138b1d7711829c92e98c0a25ea019de790f4f09279c4e296" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" dependencies = [ "libc", - "windows-sys", + "winapi", +] + +[[package]] +name = "soup2" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +dependencies = [ + "bitflags", + "gio", + "glib", + "libc", + "once_cell", + "soup2-sys", ] [[package]] name = "soup2-sys" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f056675eda9a7417163e5f742bb119e8e1d385edd2ada8f7031a7230a3ec10a" +checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" dependencies = [ "bitflags", - "gio-sys 0.14.0", - "glib-sys 0.14.0", - "gobject-sys 0.14.0", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "system-deps 5.0.0", ] @@ -3652,7 +3579,7 @@ checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" dependencies = [ "new_debug_unreachable", "once_cell", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "phf_shared 0.10.0", "precomputed-hash", "serde", @@ -3670,43 +3597,19 @@ dependencies = [ "quote", ] -[[package]] -name = "strsim" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" - [[package]] name = "strsim" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" -[[package]] -name = "strum" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" - [[package]] name = "strum" version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" dependencies = [ - "strum_macros 0.22.0", -] - -[[package]] -name = "strum_macros" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" -dependencies = [ - "heck 0.3.3", - "proc-macro2", - "quote", - "syn", + "strum_macros", ] [[package]] @@ -3728,14 +3631,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] -name = "syn" -version = "1.0.92" +name = "sudo" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52" +checksum = "88bd84d4c082e18e37fef52c0088e4407dabcef19d23a607fb4b5ee03b7d5b83" +dependencies = [ + "libc", + "log", +] + +[[package]] +name = "syn" +version = "1.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" dependencies = [ "proc-macro2", "quote", - "unicode-xid", + "unicode-ident", ] [[package]] @@ -3752,9 +3665,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.23.13" +version = "0.24.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3977ec2e0520829be45c8a2df70db2bf364714d8a748316a10c3c35d4d2b01c9" +checksum = "0b6e19da72a8d75be4d40e4dd4686afca31507f26c3ffdf6bd3073278d9de0a0" dependencies = [ "cfg-if 1.0.0", "core-foundation-sys", @@ -3765,24 +3678,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "system-deps" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6" -dependencies = [ - "anyhow", - "cfg-expr 0.8.1", - "heck 0.3.3", - "itertools", - "pkg-config", - "strum 0.21.0", - "strum_macros 0.21.1", - "thiserror", - "toml", - "version-compare 0.0.11", -] - [[package]] name = "system-deps" version = "5.0.0" @@ -3802,7 +3697,7 @@ version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709" dependencies = [ - "cfg-expr 0.10.2", + "cfg-expr 0.10.3", "heck 0.4.0", "pkg-config", "toml", @@ -3817,9 +3712,9 @@ checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" [[package]] name = "tao" -version = "0.8.4" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd55783f88aafed0c5510ae540716455297f4f6df08f8114dc9fddc37d76ee3" +checksum = "a71c32c2fa7bba46b01becf9cf470f6a781573af7e376c5e317a313ecce27545" dependencies = [ "bitflags", "cairo-rs", @@ -3835,39 +3730,32 @@ dependencies = [ "gdkx11-sys", "gio", "glib", - "glib-sys 0.15.10", + "glib-sys", "gtk", + "image", "instant", + "jni 0.19.0", "lazy_static", "libc", "log", "ndk", - "ndk-glue", + "ndk-context", "ndk-sys", "objc", + "once_cell", "parking_lot 0.11.2", + "paste", + "png 0.17.5", "raw-window-handle", "scopeguard", "serde", - "tao-core-video-sys", "unicode-segmentation", - "windows 0.30.0", - "windows_macros", + "uuid 0.8.2", + "windows 0.37.0", + "windows-implement", "x11-dl", ] -[[package]] -name = "tao-core-video-sys" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271450eb289cb4d8d0720c6ce70c72c8c858c93dd61fc625881616752e6b98f6" -dependencies = [ - "cfg-if 1.0.0", - "core-foundation-sys", - "libc", - "objc", -] - [[package]] name = "tar" version = "0.4.38" @@ -3881,13 +3769,12 @@ dependencies = [ [[package]] name = "tauri" -version = "1.0.0-rc.9" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34cef4a0ebee0230baaa319b1709c4336f4add550149d2b005a9a5dc5d33617" +checksum = "d61fc211e0bd2c04c0aecd202d2cd72dd797a89da02989a39e1b9691462386d6" dependencies = [ "anyhow", "attohttpc", - "bincode", "cocoa", "dirs-next", "embed_plist", @@ -3903,7 +3790,7 @@ dependencies = [ "notify-rust", "objc", "once_cell", - "open", + "open 3.0.1", "os_info", "os_pipe 1.0.1", "percent-encoding", @@ -3911,7 +3798,7 @@ dependencies = [ "raw-window-handle", "regex", "rfd", - "semver 1.0.9", + "semver 1.0.12", "serde", "serde_json", "serde_repr", @@ -3927,21 +3814,23 @@ dependencies = [ "thiserror", "tokio", "url", - "uuid 1.0.0", + "uuid 1.1.2", "webkit2gtk", "webview2-com", - "windows 0.30.0", + "windows 0.37.0", ] [[package]] name = "tauri-build" -version = "1.0.0-rc.8" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f85528e1a51b1d79761f56a0af8fb639ffa282e6bb01b012cdd552673e45be6" +checksum = "2f2b32e551ec810ba4ab2ad735de5e3576e54bf0322ab0f4b7ce41244bc65ecf" dependencies = [ "anyhow", "cargo_toml", - "semver 1.0.9", + "heck 0.4.0", + "json-patch", + "semver 1.0.12", "serde_json", "tauri-utils", "winres", @@ -3949,31 +3838,35 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "1.0.0-rc.6" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b6273cb4ba4210d48cba182415dd8ed2f23b29f9f89801f77a09fcbb6a6d92b" +checksum = "f6f1f7928dd040fc03c94207adfad506c0cf5b152982fd1dc0a621f7fd777e22" dependencies = [ "base64", "brotli", "ico", + "json-patch", + "plist", "png 0.17.5", "proc-macro2", "quote", "regex", + "semver 1.0.12", "serde", "serde_json", "sha2", "tauri-utils", "thiserror", - "uuid 1.0.0", + "time 0.3.11", + "uuid 1.1.2", "walkdir", ] [[package]] name = "tauri-macros" -version = "1.0.0-rc.6" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07d91657771bb36eca42d86afc80aa05e10f6b7328f8f40630e52c10ae84ddf3" +checksum = "e50b9f52871c088857360319a37472d59f4644f1ed004489599d62831a1b6996" dependencies = [ "heck 0.4.0", "proc-macro2", @@ -3985,47 +3878,49 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "0.5.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b266b563439a4c300a524edc695541d72cb5ba55cd41f27adc6944c9c88d6e" +checksum = "4e4cff3b4d9469727fa2107c4b3d2eda110df1ba45103fb420178e536362fae4" dependencies = [ "gtk", "http", "http-range", "infer", + "raw-window-handle", "serde", "serde_json", "tauri-utils", "thiserror", - "uuid 1.0.0", + "uuid 1.1.2", "webview2-com", - "windows 0.30.0", + "windows 0.37.0", ] [[package]] name = "tauri-runtime-wry" -version = "0.5.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2a2f7f90f83eb4098f62dac52f982a88c5e2e2870638c9bef70c56a38cd20d6" +checksum = "3fa8c4edaf01d8b556e7172c844b1b4dd3399adcd1a606bd520fc3e65f698546" dependencies = [ "cocoa", "gtk", "percent-encoding", "rand 0.8.5", + "raw-window-handle", "tauri-runtime", "tauri-utils", - "uuid 1.0.0", + "uuid 1.1.2", "webkit2gtk", "webview2-com", - "windows 0.30.0", + "windows 0.37.0", "wry", ] [[package]] name = "tauri-utils" -version = "1.0.0-rc.6" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2d8266063ac4d696560d4ff4e695c3c238d8d96ef1120d1eab9ba7482f59a3" +checksum = "12ff4b68d9faeb57c9c727bf58c9c9768d2b67d8e84e62ce6146e7859a2e9c6b" dependencies = [ "brotli", "ctor", @@ -4038,12 +3933,14 @@ dependencies = [ "phf 0.10.1", "proc-macro2", "quote", + "semver 1.0.12", "serde", "serde_json", "serde_with", "thiserror", "url", "walkdir", + "windows 0.37.0", ] [[package]] @@ -4118,11 +4015,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd" +checksum = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217" dependencies = [ - "itoa 1.0.1", + "itoa 1.0.2", "libc", "num_threads", "time-macros", @@ -4151,9 +4048,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.18.2" +version = "1.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4903bf0427cf68dddd5aa6a93220756f8be0c34fcfa9f5e6191e103e15a31395" +checksum = "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439" dependencies = [ "bytes", "libc", @@ -4206,23 +4103,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.6.9" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45" dependencies = [ "bytes", "futures-core", @@ -4243,15 +4126,15 @@ dependencies = [ [[package]] name = "tower-service" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09" +checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" dependencies = [ "cfg-if 1.0.0", "log", @@ -4262,9 +4145,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" dependencies = [ "proc-macro2", "quote", @@ -4273,11 +4156,11 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.26" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f" +checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" dependencies = [ - "lazy_static", + "once_cell", "valuable", ] @@ -4294,13 +4177,13 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.11" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bc28f93baff38037f64e6f43d34cfa1605f27a49c34e8a04c5e78b0babf2596" +checksum = "3a713421342a5a666b7577783721d3117f1b69a393df803ee17bb73b1e122a59" dependencies = [ "ansi_term", - "lazy_static", "matchers", + "once_cell", "regex", "sharded-slab", "smallvec", @@ -4321,12 +4204,9 @@ dependencies = [ [[package]] name = "triomphe" -version = "0.1.5" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c45e322b26410d7260e00f64234810c2f17d7ece356182af4df8f7ff07890f09" -dependencies = [ - "memoffset 0.6.5", -] +checksum = "7fe1b3800b35f9b936c28dc59dbda91b195371269396784d931fe2a5a2be3d2f" [[package]] name = "try-lock" @@ -4363,9 +4243,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" +checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" [[package]] name = "unicase" @@ -4383,10 +4263,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] -name = "unicode-normalization" -version = "0.1.19" +name = "unicode-ident" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" + +[[package]] +name = "unicode-normalization" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" dependencies = [ "tinyvec", ] @@ -4440,16 +4326,16 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", ] [[package]] name = "uuid" -version = "1.0.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cfcd319456c4d6ea10087ed423473267e1a071f3bc0aa89f80d60997843c6f0" +checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", ] [[package]] @@ -4482,6 +4368,26 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22025f6d8eb903ebf920ea6933b70b1e495be37e2cb4099e62c80454aaf57c39" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "waker-fn" version = "1.1.0" @@ -4529,9 +4435,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -4539,9 +4445,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" dependencies = [ "bumpalo", "lazy_static", @@ -4554,9 +4460,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.30" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" +checksum = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -4566,9 +4472,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4576,9 +4482,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" dependencies = [ "proc-macro2", "quote", @@ -4589,15 +4495,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" +checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" [[package]] name = "web-sys" -version = "0.3.57" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90" dependencies = [ "js-sys", "wasm-bindgen", @@ -4605,48 +4511,49 @@ dependencies = [ [[package]] name = "webkit2gtk" -version = "0.17.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cbd39499e917de9dad36eb11c09f665eb984d432638ae7971feed98eb96df88" +checksum = "29952969fb5e10fe834a52eb29ad0814ccdfd8387159b0933edf1344a1c9cdcc" dependencies = [ "bitflags", "cairo-rs", "gdk", "gdk-sys", "gio", - "gio-sys 0.15.10", + "gio-sys", "glib", - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "glib-sys", + "gobject-sys", "gtk", "gtk-sys", "javascriptcore-rs", "libc", "once_cell", + "soup2", "webkit2gtk-sys", ] [[package]] name = "webkit2gtk-sys" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddcce6f1e0fc7715d651dba29875741509f5fc12f4e2976907272a74405f2b01" +checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" dependencies = [ "atk-sys", "bitflags", "cairo-sys-rs", "gdk-pixbuf-sys", "gdk-sys", - "gio-sys 0.15.10", - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "gio-sys", + "glib-sys", + "gobject-sys", "gtk-sys", "javascriptcore-rs-sys", "libc", "pango-sys", "pkg-config", "soup2-sys", - "system-deps 5.0.0", + "system-deps 6.0.2", ] [[package]] @@ -4661,30 +4568,30 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.3" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" +checksum = "f1c760f0d366a6c24a02ed7816e23e691f5d92291f94d15e836006fd11b04daf" dependencies = [ "webpki", ] [[package]] name = "webview2-com" -version = "0.13.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb8e90ac2d9ce39cdb70017aaec641be09fbdd702b7b332b9896d053eb469524" +checksum = "a489a9420acabb3c2ed0434b6f71f6b56b9485ec32665a28dec1ee186d716e0f" dependencies = [ "webview2-com-macros", "webview2-com-sys", - "windows 0.30.0", - "windows_macros", + "windows 0.37.0", + "windows-implement", ] [[package]] name = "webview2-com-macros" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515c6c82fcee93f6edaacc72c8e233dbe4ff3ca569dce1901dfc36c404a3e99" +checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" dependencies = [ "proc-macro2", "quote", @@ -4693,15 +4600,15 @@ dependencies = [ [[package]] name = "webview2-com-sys" -version = "0.13.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92160310b3322397e4ff8a8285a7429d73a07a68fda44ee80879605b93e53f76" +checksum = "0258c53ee9adc0a4f8ba1c8c317588f7a58c7048a55b621d469ba75ab3709ca1" dependencies = [ "regex", "serde", "serde_json", "thiserror", - "windows 0.30.0", + "windows 0.37.0", "windows-bindgen", ] @@ -4714,21 +4621,11 @@ dependencies = [ "cc", ] -[[package]] -name = "which" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724" -dependencies = [ - "failure", - "libc", -] - [[package]] name = "wildmatch" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c48bd20df7e4ced539c12f570f937c6b4884928a87fee70a479d72f031d4e0" +checksum = "ee583bdc5ff1cf9db20e9db5bb3ff4c3089a8f6b8b31aff265c9aba85812db86" [[package]] name = "winapi" @@ -4775,40 +4672,44 @@ dependencies = [ [[package]] name = "windows" -version = "0.30.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b749ebd2304aa012c5992d11a25d07b406bdbe5f79d371cb7a918ce501a19eb0" +checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" dependencies = [ - "windows_aarch64_msvc 0.30.0", - "windows_i686_gnu 0.30.0", - "windows_i686_msvc 0.30.0", - "windows_x86_64_gnu 0.30.0", - "windows_x86_64_msvc 0.30.0", -] - -[[package]] -name = "windows" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08746b4b7ac95f708b3cccceb97b7f9a21a8916dd47fc99b0e6aaf7208f26fd7" -dependencies = [ - "windows_aarch64_msvc 0.35.0", - "windows_i686_gnu 0.35.0", - "windows_i686_msvc 0.35.0", - "windows_x86_64_gnu 0.35.0", - "windows_x86_64_msvc 0.35.0", + "windows-implement", + "windows_aarch64_msvc 0.37.0", + "windows_i686_gnu 0.37.0", + "windows_i686_msvc 0.37.0", + "windows_x86_64_gnu 0.37.0", + "windows_x86_64_msvc 0.37.0", ] [[package]] name = "windows-bindgen" -version = "0.30.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "944c545fcae9dd66488308f8b69aa3ba34f53714416ecfcdcbbfa4b6821e27c6" +checksum = "0bed7be31ade0af08fec9b5343e9edcc005d22b1f11859b8a59b24797f5858e8" dependencies = [ - "windows_quote", - "windows_reader", + "windows-metadata", + "windows-tokens", ] +[[package]] +name = "windows-implement" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a1062e555f7d9d66fd1130ed4f7c6ec41a47529ee0850cd0e926d95b26bb14" +dependencies = [ + "syn", + "windows-tokens", +] + +[[package]] +name = "windows-metadata" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f33f2b90a6664e369c41ab5ff262d06f048fc9685d9bf8a0e99a47750bb0463" + [[package]] name = "windows-sys" version = "0.36.1" @@ -4823,16 +4724,10 @@ dependencies = [ ] [[package]] -name = "windows_aarch64_msvc" -version = "0.30.0" +name = "windows-tokens" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29277a4435d642f775f63c7d1faeb927adba532886ce0287bd985bffb16b6bca" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3bc5134e8ce0da5d64dcec3529793f1d33aee5a51fc2b4662e0f881dd463e6" +checksum = "3263d25f1170419995b78ff10c06b949e8a986c35c208dc24333c64753a87169" [[package]] name = "windows_aarch64_msvc" @@ -4841,14 +4736,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" [[package]] -name = "windows_gen" -version = "0.30.0" +name = "windows_aarch64_msvc" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30dff4d91d22520628bb94b66f2bb313cb16a09a515a32320a84a1b449bc94c0" -dependencies = [ - "windows_quote", - "windows_reader", -] +checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" [[package]] name = "windows_i686_gnu" @@ -4856,42 +4747,24 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0866510a3eca9aed73a077490bbbf03e5eaac4e1fd70849d89539e5830501fd" -[[package]] -name = "windows_i686_gnu" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1145e1989da93956c68d1864f32fb97c8f561a8f89a5125f6a2b7ea75524e4b8" - -[[package]] -name = "windows_i686_gnu" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0343a6f35bf43a07b009b8591b78b10ea03de86b06f48e28c96206cd0f453b50" - [[package]] name = "windows_i686_gnu" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +[[package]] +name = "windows_i686_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" + [[package]] name = "windows_i686_msvc" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf0ffed56b7e9369a29078d2ab3aaeceea48eb58999d2cff3aa2494a275b95c6" -[[package]] -name = "windows_i686_msvc" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a09e3a0d4753b73019db171c1339cd4362c8c44baf1bcea336235e955954a6" - -[[package]] -name = "windows_i686_msvc" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1acdcbf4ca63d8e7a501be86fee744347186275ec2754d129ddeab7a1e3a02e4" - [[package]] name = "windows_i686_msvc" version = "0.36.1" @@ -4899,28 +4772,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" [[package]] -name = "windows_macros" -version = "0.30.0" +name = "windows_i686_msvc" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ae44ab917e9005fe710d99d52d227ca0164b10a09be90649142cc3fab825d3" -dependencies = [ - "syn", - "windows_gen", - "windows_quote", - "windows_reader", -] - -[[package]] -name = "windows_quote" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71f02c51a77e6248c1206aaa920802c32d50a05205e229b118d7f3afd3036667" - -[[package]] -name = "windows_reader" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e44e6df0da993cda589c5ac852272fbb2a0ead67a031a017dd3eac11528a2d72" +checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" [[package]] name = "windows_x86_64_gnu" @@ -4928,48 +4783,36 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384a173630588044205a2993b6864a2f56e5a8c1e7668c07b93ec18cf4888dc4" -[[package]] -name = "windows_x86_64_gnu" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca64fcb0220d58db4c119e050e7af03c69e6f4f415ef69ec1773d9aab422d5a" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "893c0924c5a990ec73cd2264d1c0cba1773a929e1a3f5dbccffd769f8c4edebb" - [[package]] name = "windows_x86_64_gnu" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" + [[package]] name = "windows_x86_64_msvc" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bd8f062d8ca5446358159d79a90be12c543b3a965c847c8f3eedf14b321d399" -[[package]] -name = "windows_x86_64_msvc" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08cabc9f0066848fef4bc6a1c1668e6efce38b661d2aeec75d18d8617eebb5f1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a29bd61f32889c822c99a8fdf2e93378bd2fae4d7efd2693fab09fcaaf7eff4b" - [[package]] name = "windows_x86_64_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +[[package]] +name = "windows_x86_64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" + [[package]] name = "winreg" version = "0.10.1" @@ -4994,16 +4837,16 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "007a0353840b23e0c6dc73e5b962ff58ed7f6bc9ceff3ce7fe6fbad8d496edf4" dependencies = [ - "strum 0.22.0", + "strum", "windows 0.24.0", "xml-rs", ] [[package]] name = "wry" -version = "0.16.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ca96d1cadf815f81c060c516a6a1f95937e6104672a6f2117826c2b9941628a" +checksum = "ce19dddbd3ce01dc8f14eb6d4c8f914123bf8379aaa838f6da4f981ff7104a3f" dependencies = [ "block", "cocoa", @@ -5013,7 +4856,7 @@ dependencies = [ "glib", "gtk", "http", - "jni", + "jni 0.18.0", "libc", "log", "objc", @@ -5027,8 +4870,8 @@ dependencies = [ "webkit2gtk", "webkit2gtk-sys", "webview2-com", - "windows 0.30.0", - "windows_macros", + "windows 0.37.0", + "windows-implement", ] [[package]] @@ -5068,7 +4911,7 @@ dependencies = [ "ring", "rusticata-macros", "thiserror", - "time 0.3.9", + "time 0.3.11", ] [[package]] @@ -5092,7 +4935,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "346d34a236c9d3e5f3b9b74563f238f955bbd05fa0b8b4efa53c130c43982f4c" dependencies = [ - "time 0.3.9", + "time 0.3.11", ] [[package]] @@ -5120,12 +4963,12 @@ dependencies = [ "bzip2", "constant_time_eq", "crc32fast", - "crossbeam-utils 0.8.8", + "crossbeam-utils 0.8.10", "flate2", "hmac", "pbkdf2", "sha1", - "time 0.3.9", + "time 0.3.11", "zstd", ] @@ -5142,18 +4985,18 @@ dependencies = [ [[package]] name = "zstd" -version = "0.10.0+zstd.1.5.2" +version = "0.10.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b1365becbe415f3f0fcd024e2f7b45bacfb5bdd055f0dc113571394114e7bdd" +checksum = "5f4a6bd64f22b5e3e94b4e238669ff9f10815c27a5180108b849d24174a83847" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "4.1.4+zstd.1.5.2" +version = "4.1.6+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f7cd17c9af1a4d6c24beb1cc54b17e2ef7b593dc92f19e9d9acad8b182bbaee" +checksum = "94b61c51bb270702d6167b8ce67340d2754b088d0c091b06e593aa772c3ee9bb" dependencies = [ "libc", "zstd-sys", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 1fbe502..442e938 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -14,22 +14,26 @@ rust-version = "1.57" [build-dependencies] tauri-build = { version = "1.0.0-rc.8", features = [] } +[target.'cfg(windows)'.dependencies] +is_elevated = "0.1.2" +registry = "1.2.1" + +[target.'cfg(unix)'.dependencies] +sudo = "0.6.0" + [dependencies] serde = { version = "1.0", features = ["derive"] } tauri = { version = "1.0.0-rc.9", features = ["api-all"] } # Access system process info. -sysinfo = "0.23.12" +sysinfo = "0.24.6" # ZIP-archive library. zip-extract = "0.1.1" zip = "0.6.2" # For creating a "global" downloads list. -lazy_static = "1.4.0" - -# Access to the Windows Registry. -registry = "1.2.1" +once_cell = "1.13.0" # Program opener. open = "2.1.2" @@ -37,11 +41,6 @@ duct = "0.13.5" # Serialization. serde_json = "1" -base64 = "0.13.0" - -# System process elevation. -is_elevated = "0.1.2" -runas = "0.2.1" # Dependencies for the HTTP(S) proxy. http = "0.2" diff --git a/src-tauri/lang/cht.json b/src-tauri/lang/cht.json index 2624e02..6ab2303 100644 --- a/src-tauri/lang/cht.json +++ b/src-tauri/lang/cht.json @@ -11,13 +11,16 @@ "files_extracting": "檔案解壓縮中:" }, "options": { + "enabled": "已啟用", + "disabled": "未啟用", "game_exec": "選擇遊戲執行檔", "grasscutter_jar": "選擇伺服器JAR檔案", - "java_path": "設置自定義Java路徑", + "toggle_encryption": "設定加密", + "java_path": "設定自定義Java路徑", "grasscutter_with_game": "伴隨遊戲一起啟動Grasscutter", "language": "語言", - "background": "設置自定義背景(網址或檔案)", - "theme": "設置主題" + "background": "設定自定義背景(網址或檔案)", + "theme": "設定主題" }, "downloads": { "grasscutter_stable_data": "下載Grasscutter穩定版數據(Data)", diff --git a/src-tauri/lang/de.json b/src-tauri/lang/de.json new file mode 100644 index 0000000..4a288e7 --- /dev/null +++ b/src-tauri/lang/de.json @@ -0,0 +1,61 @@ +{ + "lang_name": "Deutsch", + "main": { + "title": "Cultivation", + "launch_button": "Starten", + "gc_enable": "Über Grasscutter verbinden", + "https_enable": "HTTPS nutzen", + "ip_placeholder": "Server Adresse...", + "port_placeholder": "Port...", + "files_downloading": "Herunterladen von Dateien: ", + "files_extracting": "Extrahieren von Dateien: " + }, + "options": { + "enabled": "Aktiviert", + "disabled": "Deaktiviert", + "game_exec": "Spiel Datei auswählen", + "grasscutter_jar": "Grasscuter JAR auswählen", + "toggle_encryption": "Verschlüsselung umschalten", + "java_path": "Benutzerdefinierten Java Pfad setzen", + "grasscutter_with_game": "Grasscutter automatisch mit dem Spiel starten", + "language": "Sprache auswählen", + "background": "Benutzerdefinierten Hintergrund festlegen (link oder bild)", + "theme": "Theme auswählen" + }, + "downloads": { + "grasscutter_stable_data": "Stabile Grasscutter Daten herunterladen", + "grasscutter_latest_data": "Aktuellste Grasscutter Daten herunterladen", + "grasscutter_stable_data_update": "Stabile Grasscutter Daten aktualisieren", + "grasscutter_latest_data_update": "Aktuellste Grasscutter Daten aktualisieren", + "grasscutter_stable": "Stabile Grasscutter Version herunterladen", + "grasscutter_latest": "Aktuellste Grasscutter Version herunterladen", + "grasscutter_stable_update": "Stabile Grasscutter Version aktualisieren", + "grasscutter_latest_update": "Aktuellste Grasscutter Version aktualisieren", + "resources": "Grasscutter Ressourcen herunterladen" + }, + "download_status": { + "downloading": "Lädt herunter", + "extracting": "Extrahiert", + "error": "Fehler", + "finished": "Fertig", + "stopped": "Gestoppt" + }, + "components": { + "select_file": "Datei oder Ordner auswählen...", + "select_folder": "Ordner auswählen...", + "download": "Herunterladen" + }, + "news": { + "latest_commits": "Letzte Commits", + "latest_version": "Letzte Version" + }, + "help": { + "port_help_text": "Vergewissern Sie sich, dass es sich um den Port des Dispatch-Servers handelt, nicht um den Port des Spiel-Servers. Dieser ist fast immer '443'.", + "game_help_text": "Sie müssen keine separate Kopie verwenden, um mit Grasscutter zu spielen. Dies ist entweder für ein Downgrade auf die Version 2.6 oder wenn Sie das Spiel nicht installiert haben.", + "gc_stable_jar": "Laden Sie den aktuellen stabilen Grasscutter-Build herunter, der eine Jar-Datei und Datendateien enthält.", + "gc_dev_jar": "Laden Sie die neueste Grasscutter-Entwicklungsversion herunter, welche eine Jar-Datei und Datendateien enthält.", + "gc_stable_data": "Laden Sie die stabilen Grasscutter Daten herunter, welche keine Jar-Datei enthalten. Dies ist nützlich zum Aktualisieren.", + "gc_dev_data": "Laden Sie die neuesten Grasscutter-Entwicklungsdateien herunter, welche keine Jar-Datei enthält. Dies ist nützlich zum Aktualisieren.", + "resources": "Diese werden auch benötigt, um einen Grasscutter-Server auszuführen. Diese Schaltfläche ist grau, wenn Sie einen bestehenden Ressourcenordner mit Inhalten haben" + } + } \ No newline at end of file diff --git a/src-tauri/lang/fr.json b/src-tauri/lang/fr.json new file mode 100644 index 0000000..2833cee --- /dev/null +++ b/src-tauri/lang/fr.json @@ -0,0 +1,61 @@ +{ + "lang_name": "Francais", + "main": { + "title": "Cultivation", + "launch_button": "Lancer", + "gc_enable": "Se connecter avec Grasscutter", + "https_enable": "Utiliser HTTPS", + "ip_placeholder": "Adresse du serveur...", + "port_placeholder": "Port...", + "files_downloading": "Fichiers en cours de telechargement: ", + "files_extracting": "Fichiers en cours d'extraction: " + }, + "options": { + "enabled": "active", + "disabled": "desactiver", + "game_exec": "definir l'executable du jeu", + "grasscutter_jar": "definir le Jar Grasscutter", + "toggle_encryption": "activer l'encryption", + "java_path": "definir un chemin java personnalise", + "grasscutter_with_game": "Lancer Grasscutter automatiquement avec le jeu", + "language": "Choisir la langue", + "background": "definir un arriere plan personnalise (lien ou fichier image)", + "theme": "definir un theme" + }, + "downloads": { + "grasscutter_stable_data": "Telecharger les donnees de Grasscutter (version stable)", + "grasscutter_latest_data": "Telecharger les donnees de Grasscutter (derniere version)", + "grasscutter_stable_data_update": "Mettre a jour les donnees de Grasscutter (version stable)", + "grasscutter_latest_data_update": "Mettre a jour les donnees de Grasscutter (derniere version)", + "grasscutter_stable": "Telecharger Grasscutter (version stable)", + "grasscutter_latest": "Telecharger Grasscutter (derniere version)", + "grasscutter_stable_update": "Mettre a jour Grasscutter (version stable)", + "grasscutter_latest_update": "Mettre a jour Grasscutter (derniere version)", + "resources": "Telecharger les ressources logicielles de Grasscutter" + }, + "download_status": { + "downloading": "Telechargement", + "extracting": "Extraction", + "error": "Erreur", + "finished": "Termine", + "stopped": "Arrete" + }, + "components": { + "select_file": "choisir fichier ou dossier...", + "select_folder": "choisir dossier...", + "download": "Telecharger" + }, + "news": { + "latest_commits": "Recents Commits", + "latest_version": "Derniere version" + }, + "help": { + "port_help_text": "Assurez-vous que c'est le port serveur Dispatch, et non le port du serveur de jeu. C'est presque toujours '433'.", + "game_help_text": "Vous n'avez pas besoin d'une copie differente du jeu pour jouer avec Grasscutter. Cela est ou pour retrograder en 2.6 ou si vous n'avez pas le jeu d'installe", + "gc_stable_jar": "Telecharger le dernier build stable de Grasscutter, ce qui inclut le fichier jar et les fichiers de donnees", + "gc_dev_jar": "Telecharger le dernier build en development de Grasscutter, ce qui inclut le fichier jar et les fichiers de donnees", + "gc_stable_data": "Telecharger le dernier build stable de Grasscutter, ce qui n'inclut pasle fichier jar. Cela est utile pour mettre a jour", + "gc_dev_data": "Telecharger le dernier build en development de Grasscutter, ce qui n'inclut pasle fichier jar. Cela est utile pour mettre a jour", + "resources": "Les ressources sont aussi necessaires pour lancer un serveur Grasscutter. Ce bouton deviendra gris si vous avez deja un fichier ressources avec les donnees dedans." + } +} diff --git a/src-tauri/lang/lv.json b/src-tauri/lang/lv.json new file mode 100644 index 0000000..dad02f7 --- /dev/null +++ b/src-tauri/lang/lv.json @@ -0,0 +1,61 @@ +{ + "lang_name": "Latviešu", + "main": { + "title": "Cultivation", + "launch_button": "Palaist", + "gc_enable": "Savienot ar Grasscutter", + "https_enable": "Izm. HTTPS", + "ip_placeholder": "Servera Adrese...", + "port_placeholder": "Ports...", + "files_downloading": "Failu Lejupielāde: ", + "files_extracting": "Failu Izvilkšana: " + }, + "options": { + "enabled": "Iespējots", + "disabled": "Atspējots", + "game_exec": "Iestatīt spēles izpildāmu", + "grasscutter_jar": "Iestatiet Grasscutter JAR", + "toggle_encryption": "Pārslēgt Šifrēšanu", + "java_path": "Iestatiet pielāgotu Java ceļu", + "grasscutter_with_game": "Automātiski palaidiet Grasscutter ar spēli", + "language": "Izvēlēties valodu", + "background": "Iestatīt pielāgotu fonu (saite vai attēla fails)", + "theme": "Iestatīt tēmu" + }, + "downloads": { + "grasscutter_stable_data": "Lejupielādējiet Grasscutter stabilos datus", + "grasscutter_latest_data": "Lejupielādējiet Grasscutter jaunākos datus", + "grasscutter_stable_data_update": "Atjauniniet Grasscutter stabilos datus", + "grasscutter_latest_data_update": "Atjauniniet Grasscutter jaunākos datus", + "grasscutter_stable": "Lejupielādēt Grasscutter stabilo", + "grasscutter_latest": "Lejupielādēt Grasscutter jaunāko", + "grasscutter_stable_update": "Atjauniet Grasscutter stabilo", + "grasscutter_latest_update": "Atjauniet Grasscutter jaunāko", + "resources": "Lejupielādējiet Grasscutter resursi" + }, + "download_status": { + "downloading": "Notiek lejupielāde", + "extracting": "Notiek izvilkšana", + "error": "Kļūda", + "finished": "Pabeigts", + "stopped": "Partraukta" + }, + "components": { + "select_file": "Izvēlēties failu vai mapu...", + "select_folder": "Izvēlēties mapu...", + "download": "Lejupielādēt" + }, + "news": { + "latest_commits": "Nesen kommitus", + "latest_version": "Jaunākā versija" + }, + "help": { + "port_help_text": "Pārliecinieties, vai tas ir Dispatch-servera ports, nevis spēļu servera ports. Tas gandrīz vienmēr ir '443'.", + "game_help_text": "Lai spēlētu ar Grasscutter, jums nav jāizmanto atsevišķa kopija. Tas ir izveidots, lai pazeminātu versiju uz 2.6 vai ja jums nav instalēta spēle.", + "gc_stable_jar": "Lejupielādējiet pašreizējo stabilo Grasscutter versiju, kuram ir jar failu un datu failus.", + "gc_dev_jar": "Lejupielādējiet jaunāko izstrāde Grasscutter versiju, kuram ir jar failu un datu failus.", + "gc_stable_data": "Lejupielādējiet pašreizējos stabilos Grasscutter datu failus, kuriem nav jar fails. Tas ir noderīgi atjaunināšanai.", + "gc_dev_data": "Lejupielādējiet jaunāko izstrāde Grasscutter datu failus, kuriem nav pievienots jar fails. Tas ir noderīgi atjaunināšanai.", + "resources": "Tie ir nepieciešami arī Grasscutter servera darbināšanai. Šī poga būs pelēka, ja jums ir resursu mape ar saturu." + } +} diff --git a/src-tauri/lang/ru.json b/src-tauri/lang/ru.json new file mode 100644 index 0000000..8b63c6e --- /dev/null +++ b/src-tauri/lang/ru.json @@ -0,0 +1,61 @@ +{ + "lang_name": "Русский", + "main": { + "title": "Cultivation", + "launch_button": "Запустить", + "gc_enable": "Подключиться с Grasscutter", + "https_enable": "Исп. HTTPS", + "ip_placeholder": "Айпи адрес...", + "port_placeholder": "Порт...", + "files_downloading": "Файлов скачано: ", + "files_extracting": "Извлечено файлов: " + }, + "options": { + "enabled": "Включено", + "disabled": "Выключено", + "game_exec": "Установить исполняемый файл игры", + "grasscutter_jar": "Установить Grasscutter JAR", + "toggle_encryption": "Переключить шифрование", + "java_path": "Установить пользовательский путь Java", + "grasscutter_with_game": "Автоматически запускать Grasscutter вместе с игрой", + "language": "Установить язык", + "background": "Установить свой фон (ссылка или файл)", + "theme": "Установить тему" + }, + "downloads": { + "grasscutter_stable_data": "Скачать стабильные данные Grasscutter", + "grasscutter_latest_data": "Скачать последние данные Grasscutter", + "grasscutter_stable_data_update": "Обновить стабильные данные Grasscutter", + "grasscutter_latest_data_update": "Обновить последние данные Grasscutter", + "grasscutter_stable": "Скачать стабильную версию Grasscutter", + "grasscutter_latest": "Скачать последнюю версию Grasscutter", + "grasscutter_stable_update": "Обновить стабильную версию Grasscutter", + "grasscutter_latest_update": "Обновить последнюю версию Grasscutter", + "resources": "Скачать ресурсы Grasscutter" + }, + "download_status": { + "downloading": "Скачивание", + "extracting": "Извлечение", + "error": "Ошибка", + "finished": "Закончено", + "stopped": "Остановлено" + }, + "components": { + "select_file": "Выберите файл или папку...", + "select_folder": "Выберите папку...", + "download": "Скачать" + }, + "news": { + "latest_commits": "Последние коммиты", + "latest_version": "Последняя версия" + }, + "help": { + "port_help_text": "Убедитесь, что это порт Dispatch-сервера, не порт игрового сервера. Обычно это '443'.", + "game_help_text": "Вам не нужно устанавливать еще одну копию, что бы играть с Grascutter. Это нужно или для версии 2.6, или если у Вас не установлена игра.", + "gc_stable_jar": "Скачать последнюю стабильную версию Grasscutter, которая содержит jar файл и данные.", + "gc_dev_jar": "Скачать последнюю версию для разработки Grasscutter, которая содержит jar файл и данные.", + "gc_stable_data": "Скачать стабильные данные Grasscutter, в которой нету jar файла. Это полезно для обновления.", + "gc_dev_data": "Скачать последнюю версию для разработки Grasscutter, в которой нету jar файла. Это полезно для обновления.", + "resources": "Это необходимо для запуска сервера Grasscutter. Эта кнопка будет серой, если у Вас уже есть не пустая папка с ресурсами." + } +} \ No newline at end of file diff --git a/src-tauri/lang/vi.json b/src-tauri/lang/vi.json new file mode 100644 index 0000000..6b1d3cd --- /dev/null +++ b/src-tauri/lang/vi.json @@ -0,0 +1,61 @@ +{ + "lang_name": "Tiếng Việt", + "main": { + "title": "Cultivation", + "launch_button": "Khởi Chạy", + "gc_enable": "Kết nối đến Grasscutter", + "https_enable": "Sử dụng HTTPS", + "ip_placeholder": "Địa chỉ máy chủ...", + "port_placeholder": "Cổng...", + "files_downloading": "Đang tải file: ", + "files_extracting": "Đang giải nén tệp tin: " + }, + "options": { + "enabled": "Bật", + "disabled": "Tắt", + "game_exec": "Đường dẫn đến GenshinImpact.exe", + "grasscutter_jar": "Đường dẫn đến Grasscutter.jar", + "toggle_encryption": "Bật/Tắt mã hoá", + "java_path": "Đường dẫn Java tuỳ chỉnh", + "grasscutter_with_game": "Tự động khởi chạy Grasscutter cùng game", + "language": "Chọn ngôn ngữ", + "background": "Ảnh nền tuỳ chỉnh (đường dẫn hoặc tệp tin ảnh)", + "theme": "Chọn giao diện" + }, + "downloads": { + "grasscutter_stable_data": "Tải xuống dữ liệu Grasscutter bản ổn định", + "grasscutter_latest_data": "Tải xuống dữ liệu Grasscutter bản mới nhất", + "grasscutter_stable_data_update": "Cập nhật dữ liệu Grasscutter bản ổn định", + "grasscutter_latest_data_update": "Cập nhật dữ liệu Grasscutter bản mới nhất", + "grasscutter_stable": "Tải xuống Grasscutter phiên bản ổn định", + "grasscutter_latest": "Tải xuống Grasscutter phiển bản mới nhất", + "grasscutter_stable_update": "Cập nhật Grasscutter ổn định", + "grasscutter_latest_update": "Cập nhật Grasscutter mới nhất", + "resources": "Tải xuống tài nguyên cho Grasscutter" + }, + "download_status": { + "downloading": "Đang tải", + "extracting": "Đang giải nén", + "error": "Lỗi", + "finished": "Đã xong", + "stopped": "Đã dừng" + }, + "components": { + "select_file": "Chọn tệp tin hoặc thư mục...", + "select_folder": "Chọn thư mục...", + "download": "Tải xuống" + }, + "news": { + "latest_commits": "Cập nhật gần đây", + "latest_version": "Phiên bản mới nhất" + }, + "help": { + "port_help_text": "Đảm bảo đây là cổng của server Dispatch, không phải cổng của server Game. Thường là '443'.", + "game_help_text": "Bạn không cần phải sử dụng một bản sao riêng để chơi với Grasscutter. Việc này chỉ xảy ra nếu bạn hạ phiên bản xuống 2.6 hoặc chưa cài đặt trò chơi.", + "gc_stable_jar": "Tải xuống phiên bản ổn định của Grasscutter, bảo gồm file jar và các file dữ liệu.", + "gc_dev_jar": "Tải xuống phiên bản phát triển mới nhất của Grasscutter, bảo gồm file jar và các file dữ liệu.", + "gc_stable_data": "Tải xuống bản ổn định các tệp dữ liệu của Grasscutter, không bao gồm file jar. Phù hợp khi cập nhật.", + "gc_dev_data": "Tải xuống bản phát triển mới nhất các tệp dữ liệu của Grasscutter, không bao gồm file jar. Phù hợp khi cập nhật.", + "resources": "Chúng được yêu cầu để chạy máy chủ Grasscutter. Nút này sẽ có màu xám nếu bạn có một thư mục tài nguyên có nội dung bên trong" + } +} \ No newline at end of file diff --git a/src-tauri/src/downloader.rs b/src-tauri/src/downloader.rs index be6708a..1b567ce 100644 --- a/src-tauri/src/downloader.rs +++ b/src-tauri/src/downloader.rs @@ -1,4 +1,4 @@ -use lazy_static::lazy_static; +use once_cell::sync::Lazy; use std::sync::Mutex; use std::cmp::min; @@ -8,12 +8,7 @@ use std::io::Write; use futures_util::StreamExt; // This will create a downloads list that will be used to check if we should continue downloading the file -lazy_static! { - static ref DOWNLOADS: Mutex> = { - let m = Vec::new(); - Mutex::new(m) - }; -} +static DOWNLOADS: Lazy>> = Lazy::new(|| Mutex::new(Vec::new())); // Lots of help from: https://gist.github.com/giuliano-oliveira/4d11d6b3bb003dba3a1b53f43d81b30d // and docs ofc @@ -59,17 +54,17 @@ pub async fn download_file(window: tauri::Window, url: &str, path: &str) -> Resu let chunk = match item { Ok(itm) => itm, Err(e) => { - emit_download_err(window, format!("Error while downloading file"), path); + emit_download_err(window, "Error while downloading file".to_string(), path); return Err(format!("Error while downloading file: {}", e)); } }; let vect = &chunk.to_vec()[..]; // Write bytes - match file.write_all(&vect) { + match file.write_all(vect) { Ok(x) => x, Err(e) => { - emit_download_err(window, format!("Error while writing file"), path); + emit_download_err(window, "Error while writing file".to_string(), path); return Err(format!("Error while writing file: {}", e)); } } @@ -78,7 +73,7 @@ pub async fn download_file(window: tauri::Window, url: &str, path: &str) -> Resu let new = min(downloaded + (chunk.len() as u64), total_size); downloaded = new; - total_downloaded = total_downloaded + chunk.len() as u64; + total_downloaded += chunk.len() as u64; let mut res_hash = std::collections::HashMap::new(); @@ -110,15 +105,15 @@ pub async fn download_file(window: tauri::Window, url: &str, path: &str) -> Resu window.emit("download_finished", &path).unwrap(); // We are done - return Ok(()); + Ok(()) } -pub fn emit_download_err(window: tauri::Window, msg: std::string::String, path: &str) { +pub fn emit_download_err(window: tauri::Window, msg: String, path: &str) { let mut res_hash = std::collections::HashMap::new(); res_hash.insert( "error".to_string(), - msg.to_string(), + msg, ); res_hash.insert( diff --git a/src-tauri/src/file_helpers.rs b/src-tauri/src/file_helpers.rs index 9e99a72..db7ba19 100644 --- a/src-tauri/src/file_helpers.rs +++ b/src-tauri/src/file_helpers.rs @@ -5,28 +5,28 @@ pub fn rename(path: String, new_name: String) { let mut new_path = path.clone(); // Check if file/folder to replace exists - if !fs::metadata(&path).is_ok() { + if fs::metadata(&path).is_err() { return; } // Check if path uses forward or back slashes - if new_path.contains("\\") { - new_path = path.replace("\\", "/"); + if new_path.contains('\\') { + new_path = path.replace('\\', "/"); } - let path_replaced = &path.replace(&new_path.split("/").last().unwrap(), &new_name); + let path_replaced = &path.replace(&new_path.split('/').last().unwrap(), &new_name); fs::rename(path, &path_replaced).unwrap(); } #[tauri::command] pub fn dir_exists(path: &str) -> bool { - return fs::metadata(&path).is_ok(); + fs::metadata(&path).is_ok() } #[tauri::command] pub fn dir_is_empty(path: &str) -> bool { - return fs::read_dir(&path).unwrap().count() == 0; + fs::read_dir(&path).unwrap().count() == 0 } #[tauri::command] diff --git a/src-tauri/src/lang.rs b/src-tauri/src/lang.rs index cff655f..e797996 100644 --- a/src-tauri/src/lang.rs +++ b/src-tauri/src/lang.rs @@ -7,15 +7,13 @@ pub async fn get_lang(window: tauri::Window, lang: String) -> String { // Send contents of language file back let lang_path: PathBuf = [&install_location(), "lang", &format!("{}.json", lang)].iter().collect(); - let contents = match std::fs::read_to_string(&lang_path) { + match std::fs::read_to_string(&lang_path) { Ok(x) => x, Err(e) => { emit_lang_err(window, format!("Failed to read language file: {}", e)); - return "".to_string(); + "".to_string() } - }; - - return contents; + } } #[tauri::command] @@ -23,9 +21,9 @@ pub async fn get_languages() -> std::collections::HashMap { // for each lang file, set the key as the filename and the value as the lang_name contained in the file let mut languages = std::collections::HashMap::new(); - let mut lang_files = std::fs::read_dir(Path::new(&install_location()).join("lang")).unwrap(); + let lang_files = std::fs::read_dir(Path::new(&install_location()).join("lang")).unwrap(); - while let Some(entry) = lang_files.next() { + for entry in lang_files { let entry = entry.unwrap(); let path = entry.path(); let filename = path.file_name().unwrap().to_str().unwrap(); @@ -41,15 +39,15 @@ pub async fn get_languages() -> std::collections::HashMap { languages.insert(filename.to_string(), content); } - return languages; + languages } -pub fn emit_lang_err(window: tauri::Window, msg: std::string::String) { +pub fn emit_lang_err(window: tauri::Window, msg: String) { let mut res_hash = std::collections::HashMap::new(); res_hash.insert( "error".to_string(), - msg.to_string(), + msg, ); window.emit("lang_error", &res_hash).unwrap(); diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index d236ef9..b08bfe6 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -3,7 +3,7 @@ all(not(debug_assertions), target_os = "windows"), windows_subsystem = "windows" )] -use lazy_static::lazy_static; +use once_cell::sync::Lazy; use std::{sync::Mutex, collections::HashMap}; use std::path::PathBuf; @@ -20,12 +20,7 @@ mod lang; mod proxy; mod web; -lazy_static! { - static ref WATCH_GAME_PROCESS: Mutex = { - let m = "".to_string(); - Mutex::new(m) - }; -} +static WATCH_GAME_PROCESS: Lazy> = Lazy::new(|| Mutex::new(String::new())); fn main() { // Start the game process watcher. @@ -38,7 +33,6 @@ fn main() { disconnect, req_get, get_bg_file, - base64_decode, is_game_running, get_theme_list, system_helpers::run_command, @@ -81,14 +75,9 @@ fn process_watcher() { // Grab the game process name let proc = WATCH_GAME_PROCESS.lock().unwrap().to_string(); - if !&proc.is_empty() { - let proc_with_name = system.processes_by_exact_name(&proc); - let mut exists = false; - - for _p in proc_with_name { - exists = true; - break; - } + if !proc.is_empty() { + let mut proc_with_name = system.processes_by_exact_name(&proc); + let exists = proc_with_name.next().is_some(); // If the game process closes, disable the proxy. if !exists { @@ -106,7 +95,7 @@ fn is_game_running() -> bool { // Grab the game process name let proc = WATCH_GAME_PROCESS.lock().unwrap().to_string(); - return !proc.is_empty(); + !proc.is_empty() } #[tauri::command] @@ -137,11 +126,8 @@ fn disconnect() { #[tauri::command] async fn req_get(url: String) -> String { - // Send a GET request to the specified URL. - let response = web::query(&url.to_string()).await; - - // Send the response body back to the client. - return response; + // Send a GET request to the specified URL and send the response body back to the client. + web::query(&url.to_string()).await } #[tauri::command] @@ -177,7 +163,7 @@ async fn get_theme_list(data_dir: String) -> Vec> { } } - return themes; + themes } #[tauri::command] @@ -201,7 +187,7 @@ async fn get_bg_file(bg_path: String, appdata: String) -> String { } // Now we check if the bg folder, which is one directory above the game_path, exists. - let bg_img_path = format!("{}\\{}", bg_path.clone().to_string(), file_name.as_str()); + let bg_img_path = format!("{}\\{}", &bg_path, &file_name); // If it doesn't, then we do not have backgrounds to grab. if !file_helpers::dir_exists(&bg_path) { @@ -217,21 +203,15 @@ async fn get_bg_file(bg_path: String, appdata: String) -> String { // The image exists, lets copy it to our local '\bg' folder. let bg_img_path_local = format!("{}\\bg\\{}", copy_loc, file_name.as_str()); - return match std::fs::copy(bg_img_path, bg_img_path_local) { + match std::fs::copy(bg_img_path, bg_img_path_local) { Ok(_) => { // Copy was successful, lets return true. - format!("{}\\{}", copy_loc, response_data.bg_file.as_str()) + format!("{}\\{}", copy_loc, response_data.bg_file) } Err(e) => { // Copy failed, lets return false println!("Failed to copy background image: {}", e); "".to_string() } - }; + } } - -#[tauri::command] -fn base64_decode(encoded: String) -> String { - let decoded = base64::decode(&encoded).unwrap(); - return String::from_utf8(decoded).unwrap(); -} \ No newline at end of file diff --git a/src-tauri/src/proxy.rs b/src-tauri/src/proxy.rs index dc00879..415bc43 100644 --- a/src-tauri/src/proxy.rs +++ b/src-tauri/src/proxy.rs @@ -3,7 +3,7 @@ * https://github.com/omjadas/hudsucker/blob/main/examples/log.rs */ -use lazy_static::lazy_static; +use once_cell::sync::Lazy; use std::{sync::Mutex, str::FromStr}; use rcgen::*; @@ -17,11 +17,12 @@ use hudsucker::{ use std::fs; use std::net::SocketAddr; use std::path::Path; -use registry::{Hive, Data, Security}; use rustls_pemfile as pemfile; use tauri::http::Uri; -use crate::system_helpers::run_command; + +#[cfg(windows)] +use registry::{Hive, Data, Security}; async fn shutdown_signal() { tokio::signal::ctrl_c().await @@ -29,12 +30,7 @@ async fn shutdown_signal() { } // Global ver for getting server address. -lazy_static! { - static ref SERVER: Mutex = { - let m = "http://localhost:443".to_string(); - Mutex::new(m) - }; -} +static SERVER: Lazy> = Lazy::new(|| Mutex::new("http://localhost:443".to_string())); #[derive(Clone)] struct ProxyHandler; @@ -109,37 +105,43 @@ pub async fn create_proxy(proxy_port: u16, certificate_path: String) { /** * Connects to the local HTTP(S) proxy server. */ +#[cfg(windows)] pub fn connect_to_proxy(proxy_port: u16) { - if cfg!(target_os = "windows") { - // Create 'ProxyServer' string. - let server_string: String = format!("http=127.0.0.1:{};https=127.0.0.1:{}", proxy_port, proxy_port); + // Create 'ProxyServer' string. + let server_string: String = format!("http=127.0.0.1:{};https=127.0.0.1:{}", proxy_port, proxy_port); - // Fetch the 'Internet Settings' registry key. - let settings = Hive::CurrentUser.open(r"Software\Microsoft\Windows\CurrentVersion\Internet Settings", Security::Write).unwrap(); + // Fetch the 'Internet Settings' registry key. + let settings = Hive::CurrentUser.open(r"Software\Microsoft\Windows\CurrentVersion\Internet Settings", Security::Write).unwrap(); - // Set registry values. - settings.set_value("ProxyServer", &Data::String(server_string.parse().unwrap())).unwrap(); - settings.set_value("ProxyEnable", &Data::U32(1)).unwrap(); - } + // Set registry values. + settings.set_value("ProxyServer", &Data::String(server_string.parse().unwrap())).unwrap(); + settings.set_value("ProxyEnable", &Data::U32(1)).unwrap(); println!("Connected to the proxy."); } +#[cfg(not(windows))] +pub fn connect_to_proxy(_proxy_port: u16) { + println!("Connecting to the proxy is not implemented on this platform."); +} + /** * Disconnects from the local HTTP(S) proxy server. */ +#[cfg(windows)] pub fn disconnect_from_proxy() { - if cfg!(target_os = "windows") { - // Fetch the 'Internet Settings' registry key. - let settings = Hive::CurrentUser.open(r"Software\Microsoft\Windows\CurrentVersion\Internet Settings", Security::Write).unwrap(); + // Fetch the 'Internet Settings' registry key. + let settings = Hive::CurrentUser.open(r"Software\Microsoft\Windows\CurrentVersion\Internet Settings", Security::Write).unwrap(); - // Set registry values. - settings.set_value("ProxyEnable", &Data::U32(0)).unwrap(); - } + // Set registry values. + settings.set_value("ProxyEnable", &Data::U32(0)).unwrap(); println!("Disconnected from proxy."); } +#[cfg(not(windows))] +pub fn disconnect_from_proxy() {} + /* * Generates a private key and certificate used by the certificate authority. * Additionally installs the certificate and private key in the Root CA store. @@ -201,12 +203,19 @@ pub fn generate_ca_files(path: &Path) { /* * Attempts to install the certificate authority's certificate into the Root CA store. */ +#[cfg(windows)] pub fn install_ca_files(cert_path: &Path) { - if cfg!(target_os = "windows") { - run_command("certutil", vec!["-user", "-addstore", "Root", cert_path.to_str().unwrap()]); - } else { - run_command("security", vec!["add-trusted-cert", "-d", "-r", "trustRoot", "-k", "/Library/Keychains/System.keychain", cert_path.to_str().unwrap()]); - } - + crate::system_helpers::run_command("certutil", vec!["-user", "-addstore", "Root", cert_path.to_str().unwrap()]); println!("Installed certificate."); -} \ No newline at end of file +} + +#[cfg(target_os = "macos")] +pub fn install_ca_files(cert_path: &Path) { + crate::system_helpers::run_command("security", vec!["add-trusted-cert", "-d", "-r", "trustRoot", "-k", "/Library/Keychains/System.keychain", cert_path.to_str().unwrap()]); + println!("Installed certificate."); +} + +#[cfg(not(any(windows, target_os = "macos")))] +pub fn install_ca_files(_cert_path: &Path) { + println!("Certificate installation is not supported on this platform."); +} diff --git a/src-tauri/src/system_helpers.rs b/src-tauri/src/system_helpers.rs index 932042d..d3ed2e8 100644 --- a/src-tauri/src/system_helpers.rs +++ b/src-tauri/src/system_helpers.rs @@ -1,7 +1,3 @@ - -use std::thread; -use tauri; -use open; use duct::cmd; use crate::file_helpers; @@ -9,11 +5,7 @@ use crate::file_helpers; #[tauri::command] pub fn run_program(path: String) { // Open the program from the specified path. - - // Open in new thread to prevent blocking. - thread::spawn(move || { - open::that(&path).unwrap(); - }); + open::that(&path).unwrap(); } #[tauri::command] @@ -31,7 +23,7 @@ pub fn run_jar(path: String, execute_in: String, java_path: String) { }; // Open the program from the specified path. - match open::with(format!("/k cd /D \"{}\" & {}", &execute_in, &command).to_string(), "C:\\Windows\\System32\\cmd.exe") { + match open::with(format!("/k cd /D \"{}\" & {}", &execute_in, &command), "C:\\Windows\\System32\\cmd.exe") { Ok(_) => (), Err(e) => println!("Failed to open jar ({} from {}): {}", &path, &execute_in, e), }; @@ -46,6 +38,7 @@ pub fn open_in_browser(url: String) { }; } + #[tauri::command] pub fn install_location() -> String { let mut exe_path = std::env::current_exe().unwrap(); @@ -56,7 +49,14 @@ pub fn install_location() -> String { return exe_path.to_str().unwrap().to_string(); } +#[cfg(windows)] #[tauri::command] pub fn is_elevated() -> bool { - return is_elevated::is_elevated(); -} \ No newline at end of file + is_elevated::is_elevated() +} + +#[cfg(unix)] +#[tauri::command] +pub fn is_elevated() -> bool { + sudo::check() == sudo::RunningAs::Root +} diff --git a/src-tauri/src/unzip.rs b/src-tauri/src/unzip.rs index 16735d9..dcfe084 100644 --- a/src-tauri/src/unzip.rs +++ b/src-tauri/src/unzip.rs @@ -1,5 +1,3 @@ -use zip_extract; -use zip; use std::fs::File; use std::path; use std::thread; diff --git a/src-tauri/src/web.rs b/src-tauri/src/web.rs index c155f86..af5864d 100644 --- a/src-tauri/src/web.rs +++ b/src-tauri/src/web.rs @@ -4,7 +4,7 @@ pub(crate) async fn query(site: &str) -> String { let client = reqwest::Client::new(); let response = client.get(site).header(USER_AGENT, "cultivation").send().await.unwrap(); - return response.text().await.unwrap(); + response.text().await.unwrap() } #[tauri::command] @@ -14,5 +14,5 @@ pub(crate) async fn valid_url(url: String) -> bool { let response = client.get(url).header(USER_AGENT, "cultivation").send().await.unwrap(); - return response.status().as_str() == "200"; + response.status().as_str() == "200" } \ No newline at end of file diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 0fc9a1b..58af5c8 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -7,7 +7,7 @@ }, "package": { "productName": "Cultivation", - "version": "1.0.0" + "version": "1.0.1" }, "tauri": { "allowlist": { diff --git a/src/ui/App.tsx b/src/ui/App.tsx index 02d143e..92277a4 100644 --- a/src/ui/App.tsx +++ b/src/ui/App.tsx @@ -79,7 +79,6 @@ class App extends React.Component { async componentDidMount() { const cert_generated = await getConfigOption('cert_generated') const game_exe = await getConfigOption('game_install_path') - const custom_bg = await getConfigOption('customBackground') const game_path = game_exe?.substring(0, game_exe.replace(/\\/g, '/').lastIndexOf('/')) || '' const root_path = game_path?.substring(0, game_path.replace(/\\/g, '/').lastIndexOf('/')) || '' @@ -90,6 +89,9 @@ class App extends React.Component { await loadTheme(themeObj, document) } + // Get custom bg AFTER theme is loaded !! important !! + const custom_bg = await getConfigOption('customBackground') + if(!custom_bg || !/png|jpg|jpeg$/.test(custom_bg)) { if(game_path) { // Get the bg by invoking, then set the background to that bg. @@ -164,7 +166,7 @@ class App extends React.Component { { // Mini downloads section this.state.miniDownloadsOpen ? ( -
+
{ @@ -207,7 +209,7 @@ class App extends React.Component { ) : null } -
+
{ render() { return ( -
+
{ this.props.closeable !== undefined && this.props.closeable ? -
+
{this.props?.title} - +
: null } -
+
{this.props.children}
diff --git a/src/ui/components/RightBar.tsx b/src/ui/components/RightBar.tsx index 1c95b03..f3f1ff7 100644 --- a/src/ui/components/RightBar.tsx +++ b/src/ui/components/RightBar.tsx @@ -16,12 +16,12 @@ export default class RightBar extends React.Component { render() { return ( -
-
-
this.openInBrowser(DISCORD)}> +
+
+
this.openInBrowser(DISCORD)}>
-
this.openInBrowser(GITHUB)}> +
this.openInBrowser(GITHUB)}>
diff --git a/src/ui/components/ServerLaunchSection.tsx b/src/ui/components/ServerLaunchSection.tsx index 97df6f1..3644310 100644 --- a/src/ui/components/ServerLaunchSection.tsx +++ b/src/ui/components/ServerLaunchSection.tsx @@ -196,7 +196,7 @@ export default class ServerLaunchSection extends React.Component { this.state.grasscutterEnabled && (
-
+
} -
+
{this.state.buttonLabel} - +
diff --git a/src/ui/components/TopBar.tsx b/src/ui/components/TopBar.tsx index 2815510..f1fac63 100644 --- a/src/ui/components/TopBar.tsx +++ b/src/ui/components/TopBar.tsx @@ -43,14 +43,14 @@ export default class TopBar extends React.Component { render() { return ( -
+
{this.state?.version}
-
+
close
diff --git a/src/ui/components/menu/Downloads.tsx b/src/ui/components/menu/Downloads.tsx index 6b2c184..0368a46 100644 --- a/src/ui/components/menu/Downloads.tsx +++ b/src/ui/components/menu/Downloads.tsx @@ -190,8 +190,8 @@ export default class Downloads extends React.Component { render() { return ( -
-
+
+
@@ -199,14 +199,14 @@ export default class Downloads extends React.Component {
-
+
-
-
+
+
@@ -214,7 +214,7 @@ export default class Downloads extends React.Component {
-
+
@@ -223,8 +223,8 @@ export default class Downloads extends React.Component { -
-
+
+
@@ -232,14 +232,14 @@ export default class Downloads extends React.Component {
-
+
-
-
+
+
@@ -247,7 +247,7 @@ export default class Downloads extends React.Component {
-
+
@@ -256,14 +256,14 @@ export default class Downloads extends React.Component { -
-
+
+
-
+
diff --git a/src/ui/components/menu/Menu.tsx b/src/ui/components/menu/Menu.tsx index 208e97f..eb723ab 100644 --- a/src/ui/components/menu/Menu.tsx +++ b/src/ui/components/menu/Menu.tsx @@ -17,14 +17,14 @@ export default class Menu extends React.Component { render() { return ( -
-
-
{this.props.heading}
-
- +