From e7f4d6c0b3cf82ee21a7e587dbd251683ae8153e Mon Sep 17 00:00:00 2001
From: Maarten van Heusden <50550545+mmvanheusden@users.noreply.github.com>
Date: Mon, 16 Sep 2024 18:53:40 +0200
Subject: [PATCH] chore: add vectum base
---
.eslintrc.yml | 21 -
.gitignore | 8 +-
.vscode/extensions.json | 5 +-
README.md | 105 +-
contributing.md | 3 -
eslint.config.js | 18 +
package-lock.json | 203 --
package.json | 28 +-
pnpm-lock.yaml | 1647 +++++++++++
src-tauri/.gitignore | 11 +
src-tauri/Cargo.lock | 2923 +++++++++++--------
src-tauri/Cargo.toml | 26 +-
src-tauri/capabilities/default.json | 12 +
src-tauri/capabilities/main.json | 18 -
src-tauri/gen/schemas/capabilities.json | 1 -
src-tauri/gen/schemas/desktop-schema.json | 1 -
src-tauri/gen/schemas/linux-schema.json | 1 -
src-tauri/gen/schemas/plugin-manifests.json | 1 -
src-tauri/src/depotdownloader.rs | 77 +
src-tauri/src/main.rs | 125 +-
src-tauri/src/steam.rs | 41 +
src-tauri/src/terminal.rs | 394 +++
src-tauri/tauri.conf.json | 16 +-
src/assets/Hubot-Sans.woff2 | Bin 0 -> 170164 bytes
src/assets/Windows.woff | Bin 0 -> 15664 bytes
src/assets/javascript.svg | 1 -
src/assets/tauri.svg | 6 -
src/css/style.css | 145 +
src/index.html | 307 +-
src/main.js | 18 -
src/styles.css | 109 -
src/ts/main.ts | 215 ++
src/ts/preload.ts | 34 +
src/ts/settings.ts | 49 +
tsconfig.json | 27 +
vite.config.ts | 35 +
36 files changed, 4990 insertions(+), 1641 deletions(-)
delete mode 100644 .eslintrc.yml
delete mode 100644 contributing.md
create mode 100644 eslint.config.js
delete mode 100644 package-lock.json
create mode 100644 pnpm-lock.yaml
create mode 100644 src-tauri/capabilities/default.json
delete mode 100644 src-tauri/capabilities/main.json
delete mode 100644 src-tauri/gen/schemas/capabilities.json
delete mode 100644 src-tauri/gen/schemas/desktop-schema.json
delete mode 100644 src-tauri/gen/schemas/linux-schema.json
delete mode 100644 src-tauri/gen/schemas/plugin-manifests.json
create mode 100644 src-tauri/src/depotdownloader.rs
create mode 100644 src-tauri/src/steam.rs
create mode 100644 src-tauri/src/terminal.rs
create mode 100644 src/assets/Hubot-Sans.woff2
create mode 100644 src/assets/Windows.woff
delete mode 100644 src/assets/javascript.svg
delete mode 100644 src/assets/tauri.svg
create mode 100644 src/css/style.css
delete mode 100644 src/main.js
delete mode 100644 src/styles.css
create mode 100644 src/ts/main.ts
create mode 100644 src/ts/preload.ts
create mode 100644 src/ts/settings.ts
create mode 100644 tsconfig.json
create mode 100644 vite.config.ts
diff --git a/.eslintrc.yml b/.eslintrc.yml
deleted file mode 100644
index 00136bfd..00000000
--- a/.eslintrc.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-env:
- browser: true
- es2021: true
- node: true
-extends: eslint:recommended
-parserOptions:
- ecmaVersion: latest
- sourceType: module
-rules:
- indent:
- - error
- - tab
- linebreak-style:
- - error
- - unix
- quotes:
- - error
- - double
- semi:
- - error
- - never
diff --git a/.gitignore b/.gitignore
index 22badf4d..537be3ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,5 +23,9 @@ dist-ssr
*.sln
*.sw?
-# SteamDepotDownloaderGUI files
-# TODO
\ No newline at end of file
+# Vectum files
+src-tauri/depotdownloader
+src-tauri/*.zip
+src-tauri/*.exe
+**/DepotDownloader
+**/DepotDownloader.xml
\ No newline at end of file
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index 24d7cc6d..927d3e77 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,3 +1,6 @@
{
- "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"]
+ "recommendations": [
+ "tauri-apps.tauri-vscode",
+ "rust-lang.rust-analyzer"
+ ]
}
diff --git a/README.md b/README.md
index 7bded5c5..c3528158 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,103 @@
-# SteamDepotDownloaderGUI
+
+
SteamDepotDownloaderGUI
+
A graphical wrapper for DepotDownloader, designed to make downloading older versions of Steam games easy.
+
+→
Tutorial ~
+
Website ~
+
Example usage ←
+
+
+
+

+

+

+
+

+
+
+
+## Features
+- **Cross-platform support**
+ | OS | Supported |
+ |---------|-----------|
+ | Windows | ✔️ |
+ | Linux | ✔️ |
+ | macOS | ❌ |
+
+- **Support for every major Linux terminal emulator**
+ List of supported terminals
+
+ * GNOME Terminal
+ * GNOME Console
+ * Konsole
+ * Xfce-terminal
+ * Alacritty
+ * XTerm
+ * Terminator
+ * cool-retro-term
+ * Kitty
+ * LXTerminal
+ * Deepin Terminal
+ * Terminology
+ * Tilix
+
+
+- **Automatic download and extraction of DepotDownloader**
+
+
+## How to download
+> [!CAUTION]
+> This GitHub repository is the only official place to download this software.
+> If you have paid for this software, or downloaded this from an untrusted place, **you are at risk!**
+
+
+### Windows:
+Download the [latest Windows release](https://github.com/mmvanheusden/SteamDepotDownloaderGUI/releases/latest). There are multiple variants to choose from, but you are probably looking for the file that ends with **`.exe`**.
+
+
+### Linux:
+You'll need at least one of the supported terminal emulators. You most likely already have one of these.
+
+Download the [latest Linux release](https://github.com/mmvanheusden/SteamDepotDownloaderGUI/releases/latest). There are multiple options to choose from.
+
+
+## Tutorials
+* https://www.youtube.com/watch?v=H2COwT5OUOo How to download older versions of Steam games tutorial
+
+* https://www.youtube.com/watch?v=ogiDAuH3VdY How to download older versions of Subnautica tutorial
+
+
+## Credits
+This software makes use of the following projects:
+- [**DepotDownloader**](https://github.com/SteamRE/DepotDownloader/)
+- [Tauri](https://tauri.app)
+- [Primer CSS](https://primer.style/css/)
+- [async-process](https://github.com/smol-rs/async-process)
+- [Hubut Sans](https://github.com/github/hubot-sans) under [license](https://github.com/github/hubot-sans/blob/05d5ea150c20e6434485db8ffd2277ed18a9e911/LICENSE)
+
+
+## Donate
+You can donate [here](paypal.me/onderkin) or through the **donate** button in the interface
+
+
+## Contribute
+Every pull request is welcome! ;)
+Please cleanup the code using:
+```console
+$ pnpm eslint --fix src/
+```
+Hacktoberfest tags are added :)
+
+
+
+
+
+
+
+
+
+
+
+
+
-This branch will house the complete rewrite of SteamDepotDownloaderGUI, which will be written in Rust.
-Tauri will be used as our desktop framework of choice.
\ No newline at end of file
diff --git a/contributing.md b/contributing.md
deleted file mode 100644
index 73780c4a..00000000
--- a/contributing.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Contributing to SteamDepotDownloaderGUI
-
-TODO !
\ No newline at end of file
diff --git a/eslint.config.js b/eslint.config.js
new file mode 100644
index 00000000..607f01a7
--- /dev/null
+++ b/eslint.config.js
@@ -0,0 +1,18 @@
+// @ts-check
+
+import eslint from '@eslint/js';
+import tseslint from 'typescript-eslint';
+
+export default tseslint.config(
+ {
+ files: ["src/**"],
+ rules: {
+ "semi": ["error", "always"], // semicolons
+ "indent": ["error", "tab"], // tabs indents
+ "linebreak-style": ["error", "unix"],
+ "quotes": ["error", "double"]
+ }
+ },
+ eslint.configs.recommended,
+ ...tseslint.configs.stylistic,
+);
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 91713209..00000000
--- a/package-lock.json
+++ /dev/null
@@ -1,203 +0,0 @@
-{
- "name": "steamdepotdownloadergui",
- "version": "3.0.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "steamdepotdownloadergui",
- "version": "3.0.0",
- "devDependencies": {
- "@tauri-apps/cli": "^2.0.0-beta.0"
- }
- },
- "node_modules/@tauri-apps/cli": {
- "version": "2.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.0.0-beta.1.tgz",
- "integrity": "sha512-u3AcZPdHsg9qT3e9PSD0H2IVZetQvWuBOyF81CN7/sY+AJGOli7i2d38Bj4wJs50tuMotoseiMcxuyxTlAdBnw==",
- "dev": true,
- "bin": {
- "tauri": "tauri.js"
- },
- "engines": {
- "node": ">= 10"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/tauri"
- },
- "optionalDependencies": {
- "@tauri-apps/cli-darwin-arm64": "2.0.0-beta.1",
- "@tauri-apps/cli-darwin-x64": "2.0.0-beta.1",
- "@tauri-apps/cli-linux-arm-gnueabihf": "2.0.0-beta.1",
- "@tauri-apps/cli-linux-arm64-gnu": "2.0.0-beta.1",
- "@tauri-apps/cli-linux-arm64-musl": "2.0.0-beta.1",
- "@tauri-apps/cli-linux-x64-gnu": "2.0.0-beta.1",
- "@tauri-apps/cli-linux-x64-musl": "2.0.0-beta.1",
- "@tauri-apps/cli-win32-arm64-msvc": "2.0.0-beta.1",
- "@tauri-apps/cli-win32-ia32-msvc": "2.0.0-beta.1",
- "@tauri-apps/cli-win32-x64-msvc": "2.0.0-beta.1"
- }
- },
- "node_modules/@tauri-apps/cli-darwin-arm64": {
- "version": "2.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.0.0-beta.1.tgz",
- "integrity": "sha512-d71utEr9H3fXAI6nKPaPuINpnvMQn+UIscOTzTMcrmIDqptOO0ix8z6C3HSvNxV0OjtlxzNJGWwOb24U0OYrgw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tauri-apps/cli-darwin-x64": {
- "version": "2.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.0.0-beta.1.tgz",
- "integrity": "sha512-bzsWZjQt5NG1uhbDTGw8Hmvm+J1d+9J7HXMMMwQc4E3kBns95sr4bIoXvgIq3cZYS4uyZOvdhEdjkSGg1c65Lg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": {
- "version": "2.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.0.0-beta.1.tgz",
- "integrity": "sha512-FMnZpk4a5D9QgZKkT00P3f4CHEZFpn/b+pWfZJ7vxCdir+Cc1eKOHiqhvmMBEeLlYlQFBaYeAK0EaZWnN82ZJA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tauri-apps/cli-linux-arm64-gnu": {
- "version": "2.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.0.0-beta.1.tgz",
- "integrity": "sha512-0kE65P+6ppeAOFsJV6av5VhkjDv1dcHkObErpjJHpwYowuC3aqaCCnH3biR9gNvcoVUXsCwmMA/BkxUpq9W9/g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tauri-apps/cli-linux-arm64-musl": {
- "version": "2.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.0.0-beta.1.tgz",
- "integrity": "sha512-Wsj1eSrrAVeuFQWJq1gVIA78I8JM50fEsxbrMAOf89ZXpCYxJTNCJkyRQyLB+yHhv9nmhA3a1Mmr5ubhRETy1Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tauri-apps/cli-linux-x64-gnu": {
- "version": "2.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.0.0-beta.1.tgz",
- "integrity": "sha512-LkzLJWg+ud2gWuq8yAWJ3Sahrp79Vbd2Cotbm/RbfMi7RbRV8TQYj4zfUhyFJVnk4nF89kTnwfNxLdTw67CAOw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tauri-apps/cli-linux-x64-musl": {
- "version": "2.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.0.0-beta.1.tgz",
- "integrity": "sha512-Ro3PuLSNEZAw9/Rc2CP3k9P7LaUQ2TOFXJeW6G4aCXrd0MlJwlGhhjdZuLbmgzD1rda4dSpZGJPhbYvu8YD7eQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tauri-apps/cli-win32-arm64-msvc": {
- "version": "2.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.0.0-beta.1.tgz",
- "integrity": "sha512-SWNF+5B+lBbW/Kq1wTMVG9x97PqJUOo8eWAr/nlMm3J0lYbTWAa8/ScibaPjq82HiPhv8WCJXlcO6FEqWCoJ2A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tauri-apps/cli-win32-ia32-msvc": {
- "version": "2.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.0.0-beta.1.tgz",
- "integrity": "sha512-NvfP16fSlfq6GLHJH+gAxEsJn+Jvz3HoxMTLxAg7Ra0ycMODFu4xbNn6Hp7Djn297qTHHLYDva4Np6Whw5DUlQ==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tauri-apps/cli-win32-x64-msvc": {
- "version": "2.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.0.0-beta.1.tgz",
- "integrity": "sha512-9TKbDQyVHW0p1a7aXQEKg+MhCyFMpzD26puLKOxbTPiTcRUR4lUFq5Bhf1VR5ihoqnZNhJEtuR1mA16ZrIkuKQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- }
- }
-}
diff --git a/package.json b/package.json
index c5b7d766..f56cbe52 100644
--- a/package.json
+++ b/package.json
@@ -1,13 +1,29 @@
{
- "name": "steamdepotdownloadergui",
+ "name": "vectum",
"private": true,
- "version": "3.0.0",
+ "version": "3.0.0-alpha.1",
"type": "module",
"scripts": {
- "tauri": "tauri",
- "dev": "WEBKIT_DISABLE_COMPOSITING_MODE=1 tauri dev"
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "preview": "vite preview",
+ "tauri": "tauri"
+ },
+ "dependencies": {
+ "@tauri-apps/api": "2.0.0-rc.4",
+ "@tauri-apps/plugin-dialog": "2.0.0-rc.1",
+ "@tauri-apps/plugin-shell": "2.0.0-rc.1",
+ "jquery": "^3.7.1"
},
"devDependencies": {
- "@tauri-apps/cli": "^2.0.0-beta.0"
- }
+ "@eslint/js": "^9.10.0",
+ "@tauri-apps/cli": "2.0.0-rc.15",
+ "@types/eslint__js": "^8.42.3",
+ "@types/jquery": "^3.5.30",
+ "eslint": "^9.10.0",
+ "typescript": "^5.6.2",
+ "typescript-eslint": "^8.5.0",
+ "vite": "^5.4.5"
+ },
+ "packageManager": "pnpm@9.6.0+sha512.38dc6fba8dba35b39340b9700112c2fe1e12f10b17134715a4aa98ccf7bb035e76fd981cf0bb384dfa98f8d6af5481c2bef2f4266a24bfa20c34eb7147ce0b5e"
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 00000000..b0b9556e
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,1647 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@tauri-apps/api':
+ specifier: 2.0.0-rc.4
+ version: 2.0.0-rc.4
+ '@tauri-apps/plugin-dialog':
+ specifier: 2.0.0-rc.1
+ version: 2.0.0-rc.1
+ '@tauri-apps/plugin-shell':
+ specifier: 2.0.0-rc.1
+ version: 2.0.0-rc.1
+ jquery:
+ specifier: ^3.7.1
+ version: 3.7.1
+ devDependencies:
+ '@eslint/js':
+ specifier: ^9.10.0
+ version: 9.10.0
+ '@tauri-apps/cli':
+ specifier: 2.0.0-rc.15
+ version: 2.0.0-rc.15
+ '@types/eslint__js':
+ specifier: ^8.42.3
+ version: 8.42.3
+ '@types/jquery':
+ specifier: ^3.5.30
+ version: 3.5.30
+ eslint:
+ specifier: ^9.10.0
+ version: 9.10.0
+ typescript:
+ specifier: ^5.6.2
+ version: 5.6.2
+ typescript-eslint:
+ specifier: ^8.5.0
+ version: 8.5.0(eslint@9.10.0)(typescript@5.6.2)
+ vite:
+ specifier: ^5.4.5
+ version: 5.4.5
+
+packages:
+
+ '@esbuild/aix-ppc64@0.21.5':
+ resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.21.5':
+ resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.21.5':
+ resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.21.5':
+ resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.21.5':
+ resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.21.5':
+ resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.21.5':
+ resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.21.5':
+ resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.21.5':
+ resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.21.5':
+ resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.21.5':
+ resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.21.5':
+ resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.21.5':
+ resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.21.5':
+ resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.21.5':
+ resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.21.5':
+ resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-x64@0.21.5':
+ resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-x64@0.21.5':
+ resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.21.5':
+ resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.21.5':
+ resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.21.5':
+ resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.21.5':
+ resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-utils@4.4.0':
+ resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.11.1':
+ resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/config-array@0.18.0':
+ resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/eslintrc@3.1.0':
+ resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.10.0':
+ resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.4':
+ resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.1.0':
+ resolution: {integrity: sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/retry@0.3.0':
+ resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==}
+ engines: {node: '>=18.18'}
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+
+ '@rollup/rollup-android-arm-eabi@4.21.3':
+ resolution: {integrity: sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==}
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.21.3':
+ resolution: {integrity: sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==}
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.21.3':
+ resolution: {integrity: sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.21.3':
+ resolution: {integrity: sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.21.3':
+ resolution: {integrity: sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==}
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.21.3':
+ resolution: {integrity: sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==}
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-gnu@4.21.3':
+ resolution: {integrity: sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-musl@4.21.3':
+ resolution: {integrity: sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.21.3':
+ resolution: {integrity: sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.21.3':
+ resolution: {integrity: sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@rollup/rollup-linux-s390x-gnu@4.21.3':
+ resolution: {integrity: sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==}
+ cpu: [s390x]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-gnu@4.21.3':
+ resolution: {integrity: sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==}
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-musl@4.21.3':
+ resolution: {integrity: sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==}
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-win32-arm64-msvc@4.21.3':
+ resolution: {integrity: sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.21.3':
+ resolution: {integrity: sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.21.3':
+ resolution: {integrity: sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==}
+ cpu: [x64]
+ os: [win32]
+
+ '@tauri-apps/api@2.0.0-rc.4':
+ resolution: {integrity: sha512-UNiIhhKG08j4ooss2oEEVexffmWkgkYlC2M3GcX3VPtNsqFgVNL8Mcw/4Y7rO9M9S+ffAMnLOF5ypzyuyb8tyg==}
+
+ '@tauri-apps/cli-darwin-arm64@2.0.0-rc.15':
+ resolution: {integrity: sha512-WuzQRELJTeSHe/uLu6IClCCEkwQy4qtZdHUmcAW3baKD217WCytn4jQ5+NFs2GxhK1a2GLHMQtQZSFTLkKiXkw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@tauri-apps/cli-darwin-x64@2.0.0-rc.15':
+ resolution: {integrity: sha512-71H1dNWlEr+Hyi096Ir3SnlClw4CSR4MhJ8UG8IUBqYwydJPYFzA+GFWRAgnPgcV6sBzdt8trcV9BLV4teDzEw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.15':
+ resolution: {integrity: sha512-hO7AS09l6XZRCu/vqvB/iv6CvIlD//h9njhyw++0tJPCNH3X4rl13ji6SnoO0V6ZUCEeCeQBTAALsanYAlZelQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.15':
+ resolution: {integrity: sha512-r9FrwY83TD4w3vX7J9zS3GPSeis0YWq52p/MVLYR1i8sSJppbvYY72EXi5pR2CZ3vb+6z9/w7LpYTv+hOd2RbA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.15':
+ resolution: {integrity: sha512-PqMn3/GiqLAhs7p0jr5XqwWN1t7SAgvo6+bFuYNL/SWx1Ui6mOck3ncfDkf+dQAnXnrhX2Qfwkl3agiOZxUZtA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.15':
+ resolution: {integrity: sha512-o8lvgVBGXwthMV8+8EzEwXQY5jk2q+c700xeC/LY+J0lBL5ai3i0revlhO+3RwKnjnRLZMCXatr5K3gGtXIsoQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.15':
+ resolution: {integrity: sha512-cmANCyhcdInZSfIM3CPjA0eDu1toYABapSttA1rHbNrcJrHIq2KPKRCNuXIjWiBggxfIhJKWX7mTgQCQIyHd/w==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.15':
+ resolution: {integrity: sha512-FyWwCQb+uCCBtEDTDKtILH3wv0TWCQ2mXwMyZlibpbZ4RbaV5yDY82h8h7usfEuPHtBtAJHknHvX5WV1ETl5kw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.15':
+ resolution: {integrity: sha512-+bOBX7EdpmkCSBxgd9HcC/p9LoG/q1a5dJebWFuL9GhmdPeb5hv4plB/OTUAtg1OnEVGPXhTiSkcdRatZVryfA==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.15':
+ resolution: {integrity: sha512-Phpk18bs1YxC+OFYaZNWiddYRmiZvMjB9Rzjl6M128gIkgnqDGnZyfWtM5GZ85/BmX1HVGgILK/46RU6Q88z1g==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@tauri-apps/cli@2.0.0-rc.15':
+ resolution: {integrity: sha512-w5cq2WBKYRJDCE5wi5gyjM79Cq3AchTFImbcGBB+uyB/m3PDBXEidaTBTHqwiup2hKbMivuBAzGUCHt+OfgBhA==}
+ engines: {node: '>= 10'}
+ hasBin: true
+
+ '@tauri-apps/plugin-dialog@2.0.0-rc.1':
+ resolution: {integrity: sha512-H28gh6BfZtjflHQ+HrmWwunDriBI3AQLAKnMs50GA6zeNUULqbQr7VXbAAKeJL/0CmWcecID4PKXVoSlaWRhEg==}
+
+ '@tauri-apps/plugin-shell@2.0.0-rc.1':
+ resolution: {integrity: sha512-JtNROc0rqEwN/g93ig5pK4cl1vUo2yn+osCpY9de64cy/d9hRzof7AuYOgvt/Xcd5VPQmlgo2AGvUh5sQRSR1A==}
+
+ '@types/eslint@9.6.1':
+ resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
+
+ '@types/eslint__js@8.42.3':
+ resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==}
+
+ '@types/estree@1.0.5':
+ resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
+
+ '@types/jquery@3.5.30':
+ resolution: {integrity: sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@types/sizzle@2.3.8':
+ resolution: {integrity: sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==}
+
+ '@typescript-eslint/eslint-plugin@8.5.0':
+ resolution: {integrity: sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/parser@8.5.0':
+ resolution: {integrity: sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/scope-manager@8.5.0':
+ resolution: {integrity: sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/type-utils@8.5.0':
+ resolution: {integrity: sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/types@8.5.0':
+ resolution: {integrity: sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/typescript-estree@8.5.0':
+ resolution: {integrity: sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/utils@8.5.0':
+ resolution: {integrity: sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+
+ '@typescript-eslint/visitor-keys@8.5.0':
+ resolution: {integrity: sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn@8.12.1:
+ resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+
+ brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ cross-spawn@7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+
+ debug@4.3.7:
+ resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ esbuild@0.21.5:
+ resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
+ engines: {node: '>=12'}
+ hasBin: true
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ eslint-scope@8.0.2:
+ resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-visitor-keys@4.0.0:
+ resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint@9.10.0:
+ resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ espree@10.1.0:
+ resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ esquery@1.6.0:
+ resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
+ engines: {node: '>=0.10'}
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
+ estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ fast-glob@3.3.2:
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
+ engines: {node: '>=8.6.0'}
+
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ fastq@1.17.1:
+ resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
+
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
+ flatted@3.3.1:
+ resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
+
+ graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ engines: {node: '>= 4'}
+
+ import-fresh@3.3.0:
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ engines: {node: '>=6'}
+
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ jquery@3.7.1:
+ resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==}
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ micromatch@4.0.8:
+ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+ engines: {node: '>=8.6'}
+
+ minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+ minimatch@9.0.5:
+ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ nanoid@3.3.7:
+ resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ picocolors@1.1.0:
+ resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==}
+
+ picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ postcss@8.4.47:
+ resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ rollup@4.21.3:
+ resolution: {integrity: sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
+ run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+ semver@7.6.3:
+ resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ text-table@0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ ts-api-utils@1.3.0:
+ resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ typescript: '>=4.2.0'
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
+ typescript-eslint@8.5.0:
+ resolution: {integrity: sha512-uD+XxEoSIvqtm4KE97etm32Tn5MfaZWgWfMMREStLxR6JzvHkc2Tkj7zhTEK5XmtpTmKHNnG8Sot6qDfhHtR1Q==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ typescript@5.6.2:
+ resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+ vite@5.4.5:
+ resolution: {integrity: sha512-pXqR0qtb2bTwLkev4SE3r4abCNioP3GkjvIDLlzziPpXtHgiJIjuKl+1GN6ESOT3wMjG3JTeARopj2SwYaHTOA==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ sass-embedded: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+snapshots:
+
+ '@esbuild/aix-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm@0.21.5':
+ optional: true
+
+ '@esbuild/android-x64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-x64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/linux-loong64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-s390x@0.21.5':
+ optional: true
+
+ '@esbuild/linux-x64@0.21.5':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/sunos-x64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/win32-x64@0.21.5':
+ optional: true
+
+ '@eslint-community/eslint-utils@4.4.0(eslint@9.10.0)':
+ dependencies:
+ eslint: 9.10.0
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.11.1': {}
+
+ '@eslint/config-array@0.18.0':
+ dependencies:
+ '@eslint/object-schema': 2.1.4
+ debug: 4.3.7
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/eslintrc@3.1.0':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.7
+ espree: 10.1.0
+ globals: 14.0.0
+ ignore: 5.3.2
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@9.10.0': {}
+
+ '@eslint/object-schema@2.1.4': {}
+
+ '@eslint/plugin-kit@0.1.0':
+ dependencies:
+ levn: 0.4.1
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/retry@0.3.0': {}
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.17.1
+
+ '@rollup/rollup-android-arm-eabi@4.21.3':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.21.3':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.21.3':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.21.3':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.21.3':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.21.3':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.21.3':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.21.3':
+ optional: true
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.21.3':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.21.3':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.21.3':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.21.3':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.21.3':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.21.3':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.21.3':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.21.3':
+ optional: true
+
+ '@tauri-apps/api@2.0.0-rc.4': {}
+
+ '@tauri-apps/cli-darwin-arm64@2.0.0-rc.15':
+ optional: true
+
+ '@tauri-apps/cli-darwin-x64@2.0.0-rc.15':
+ optional: true
+
+ '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.15':
+ optional: true
+
+ '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.15':
+ optional: true
+
+ '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.15':
+ optional: true
+
+ '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.15':
+ optional: true
+
+ '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.15':
+ optional: true
+
+ '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.15':
+ optional: true
+
+ '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.15':
+ optional: true
+
+ '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.15':
+ optional: true
+
+ '@tauri-apps/cli@2.0.0-rc.15':
+ optionalDependencies:
+ '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.15
+ '@tauri-apps/cli-darwin-x64': 2.0.0-rc.15
+ '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.15
+ '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.15
+ '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.15
+ '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.15
+ '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.15
+ '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.15
+ '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.15
+ '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.15
+
+ '@tauri-apps/plugin-dialog@2.0.0-rc.1':
+ dependencies:
+ '@tauri-apps/api': 2.0.0-rc.4
+
+ '@tauri-apps/plugin-shell@2.0.0-rc.1':
+ dependencies:
+ '@tauri-apps/api': 2.0.0-rc.4
+
+ '@types/eslint@9.6.1':
+ dependencies:
+ '@types/estree': 1.0.5
+ '@types/json-schema': 7.0.15
+
+ '@types/eslint__js@8.42.3':
+ dependencies:
+ '@types/eslint': 9.6.1
+
+ '@types/estree@1.0.5': {}
+
+ '@types/jquery@3.5.30':
+ dependencies:
+ '@types/sizzle': 2.3.8
+
+ '@types/json-schema@7.0.15': {}
+
+ '@types/sizzle@2.3.8': {}
+
+ '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0)(typescript@5.6.2)':
+ dependencies:
+ '@eslint-community/regexpp': 4.11.1
+ '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.6.2)
+ '@typescript-eslint/scope-manager': 8.5.0
+ '@typescript-eslint/type-utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2)
+ '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2)
+ '@typescript-eslint/visitor-keys': 8.5.0
+ eslint: 9.10.0
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ natural-compare: 1.4.0
+ ts-api-utils: 1.3.0(typescript@5.6.2)
+ optionalDependencies:
+ typescript: 5.6.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.5.0
+ '@typescript-eslint/types': 8.5.0
+ '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2)
+ '@typescript-eslint/visitor-keys': 8.5.0
+ debug: 4.3.7
+ eslint: 9.10.0
+ optionalDependencies:
+ typescript: 5.6.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@8.5.0':
+ dependencies:
+ '@typescript-eslint/types': 8.5.0
+ '@typescript-eslint/visitor-keys': 8.5.0
+
+ '@typescript-eslint/type-utils@8.5.0(eslint@9.10.0)(typescript@5.6.2)':
+ dependencies:
+ '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2)
+ '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2)
+ debug: 4.3.7
+ ts-api-utils: 1.3.0(typescript@5.6.2)
+ optionalDependencies:
+ typescript: 5.6.2
+ transitivePeerDependencies:
+ - eslint
+ - supports-color
+
+ '@typescript-eslint/types@8.5.0': {}
+
+ '@typescript-eslint/typescript-estree@8.5.0(typescript@5.6.2)':
+ dependencies:
+ '@typescript-eslint/types': 8.5.0
+ '@typescript-eslint/visitor-keys': 8.5.0
+ debug: 4.3.7
+ fast-glob: 3.3.2
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.6.3
+ ts-api-utils: 1.3.0(typescript@5.6.2)
+ optionalDependencies:
+ typescript: 5.6.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@8.5.0(eslint@9.10.0)(typescript@5.6.2)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0)
+ '@typescript-eslint/scope-manager': 8.5.0
+ '@typescript-eslint/types': 8.5.0
+ '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2)
+ eslint: 9.10.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@typescript-eslint/visitor-keys@8.5.0':
+ dependencies:
+ '@typescript-eslint/types': 8.5.0
+ eslint-visitor-keys: 3.4.3
+
+ acorn-jsx@5.3.2(acorn@8.12.1):
+ dependencies:
+ acorn: 8.12.1
+
+ acorn@8.12.1: {}
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ ansi-regex@5.0.1: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ argparse@2.0.1: {}
+
+ balanced-match@1.0.2: {}
+
+ brace-expansion@1.1.11:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ callsites@3.1.0: {}
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ concat-map@0.0.1: {}
+
+ cross-spawn@7.0.3:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ debug@4.3.7:
+ dependencies:
+ ms: 2.1.3
+
+ deep-is@0.1.4: {}
+
+ esbuild@0.21.5:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.21.5
+ '@esbuild/android-arm': 0.21.5
+ '@esbuild/android-arm64': 0.21.5
+ '@esbuild/android-x64': 0.21.5
+ '@esbuild/darwin-arm64': 0.21.5
+ '@esbuild/darwin-x64': 0.21.5
+ '@esbuild/freebsd-arm64': 0.21.5
+ '@esbuild/freebsd-x64': 0.21.5
+ '@esbuild/linux-arm': 0.21.5
+ '@esbuild/linux-arm64': 0.21.5
+ '@esbuild/linux-ia32': 0.21.5
+ '@esbuild/linux-loong64': 0.21.5
+ '@esbuild/linux-mips64el': 0.21.5
+ '@esbuild/linux-ppc64': 0.21.5
+ '@esbuild/linux-riscv64': 0.21.5
+ '@esbuild/linux-s390x': 0.21.5
+ '@esbuild/linux-x64': 0.21.5
+ '@esbuild/netbsd-x64': 0.21.5
+ '@esbuild/openbsd-x64': 0.21.5
+ '@esbuild/sunos-x64': 0.21.5
+ '@esbuild/win32-arm64': 0.21.5
+ '@esbuild/win32-ia32': 0.21.5
+ '@esbuild/win32-x64': 0.21.5
+
+ escape-string-regexp@4.0.0: {}
+
+ eslint-scope@8.0.2:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@4.0.0: {}
+
+ eslint@9.10.0:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0)
+ '@eslint-community/regexpp': 4.11.1
+ '@eslint/config-array': 0.18.0
+ '@eslint/eslintrc': 3.1.0
+ '@eslint/js': 9.10.0
+ '@eslint/plugin-kit': 0.1.0
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.3.0
+ '@nodelib/fs.walk': 1.2.8
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.7
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.0.2
+ eslint-visitor-keys: 4.0.0
+ espree: 10.1.0
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@10.1.0:
+ dependencies:
+ acorn: 8.12.1
+ acorn-jsx: 5.3.2(acorn@8.12.1)
+ eslint-visitor-keys: 4.0.0
+
+ esquery@1.6.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@5.3.0: {}
+
+ esutils@2.0.3: {}
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-glob@3.3.2:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fastq@1.17.1:
+ dependencies:
+ reusify: 1.0.4
+
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.1
+ keyv: 4.5.4
+
+ flatted@3.3.1: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ globals@14.0.0: {}
+
+ graphemer@1.4.0: {}
+
+ has-flag@4.0.0: {}
+
+ ignore@5.3.2: {}
+
+ import-fresh@3.3.0:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ imurmurhash@0.1.4: {}
+
+ is-extglob@2.1.1: {}
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-number@7.0.0: {}
+
+ is-path-inside@3.0.3: {}
+
+ isexe@2.0.0: {}
+
+ jquery@3.7.1: {}
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ json-buffer@3.0.1: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash.merge@4.6.2: {}
+
+ merge2@1.4.1: {}
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.1
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ ms@2.1.3: {}
+
+ nanoid@3.3.7: {}
+
+ natural-compare@1.4.0: {}
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ path-exists@4.0.0: {}
+
+ path-key@3.1.1: {}
+
+ picocolors@1.1.0: {}
+
+ picomatch@2.3.1: {}
+
+ postcss@8.4.47:
+ dependencies:
+ nanoid: 3.3.7
+ picocolors: 1.1.0
+ source-map-js: 1.2.1
+
+ prelude-ls@1.2.1: {}
+
+ punycode@2.3.1: {}
+
+ queue-microtask@1.2.3: {}
+
+ resolve-from@4.0.0: {}
+
+ reusify@1.0.4: {}
+
+ rollup@4.21.3:
+ dependencies:
+ '@types/estree': 1.0.5
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.21.3
+ '@rollup/rollup-android-arm64': 4.21.3
+ '@rollup/rollup-darwin-arm64': 4.21.3
+ '@rollup/rollup-darwin-x64': 4.21.3
+ '@rollup/rollup-linux-arm-gnueabihf': 4.21.3
+ '@rollup/rollup-linux-arm-musleabihf': 4.21.3
+ '@rollup/rollup-linux-arm64-gnu': 4.21.3
+ '@rollup/rollup-linux-arm64-musl': 4.21.3
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.21.3
+ '@rollup/rollup-linux-riscv64-gnu': 4.21.3
+ '@rollup/rollup-linux-s390x-gnu': 4.21.3
+ '@rollup/rollup-linux-x64-gnu': 4.21.3
+ '@rollup/rollup-linux-x64-musl': 4.21.3
+ '@rollup/rollup-win32-arm64-msvc': 4.21.3
+ '@rollup/rollup-win32-ia32-msvc': 4.21.3
+ '@rollup/rollup-win32-x64-msvc': 4.21.3
+ fsevents: 2.3.3
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ semver@7.6.3: {}
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ source-map-js@1.2.1: {}
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-json-comments@3.1.1: {}
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ text-table@0.2.0: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ ts-api-utils@1.3.0(typescript@5.6.2):
+ dependencies:
+ typescript: 5.6.2
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ typescript-eslint@8.5.0(eslint@9.10.0)(typescript@5.6.2):
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0)(typescript@5.6.2)
+ '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.6.2)
+ '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2)
+ optionalDependencies:
+ typescript: 5.6.2
+ transitivePeerDependencies:
+ - eslint
+ - supports-color
+
+ typescript@5.6.2: {}
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ vite@5.4.5:
+ dependencies:
+ esbuild: 0.21.5
+ postcss: 8.4.47
+ rollup: 4.21.3
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ word-wrap@1.2.5: {}
+
+ yocto-queue@0.1.0: {}
diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore
index f4dfb82b..4cb710f8 100644
--- a/src-tauri/.gitignore
+++ b/src-tauri/.gitignore
@@ -2,3 +2,14 @@
# will have compiled files and executables
/target/
+# Generated by Tauri
+# will have schema files for capabilities auto-completion
+/gen/schemas
+
+
+# DepotDownloader
+depot/
+downloads/
+.DepotDownloader/
+Games/
+Depots/
\ No newline at end of file
diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
index ae3728f8..cf689a9c 100644
--- a/src-tauri/Cargo.lock
+++ b/src-tauri/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
[[package]]
name = "addr2line"
-version = "0.21.0"
+version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375"
dependencies = [
"gimli",
]
@@ -18,10 +18,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
-name = "aho-corasick"
-version = "1.1.2"
+name = "adler2"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
+
+[[package]]
+name = "aes"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
dependencies = [
"memchr",
]
@@ -58,185 +75,153 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.80"
+version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
[[package]]
-name = "as-raw-xcb-connection"
-version = "1.0.1"
+name = "arbitrary"
+version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b"
-
-[[package]]
-name = "async-broadcast"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
+checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
dependencies = [
- "event-listener 2.5.3",
- "futures-core",
+ "derive_arbitrary",
]
[[package]]
-name = "async-channel"
-version = "2.2.0"
+name = "ashpd"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
+checksum = "dd884d7c72877a94102c3715f3b1cd09ff4fac28221add3e57cfbe25c236d093"
dependencies = [
- "concurrent-queue",
- "event-listener 5.1.0",
- "event-listener-strategy 0.5.0",
+ "enumflags2",
+ "futures-channel",
+ "futures-util",
+ "rand 0.8.5",
+ "serde",
+ "serde_repr",
+ "tokio",
+ "url",
+ "zbus",
+]
+
+[[package]]
+name = "async-broadcast"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e"
+dependencies = [
+ "event-listener",
+ "event-listener-strategy",
"futures-core",
"pin-project-lite",
]
[[package]]
-name = "async-executor"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
-dependencies = [
- "async-lock 3.3.0",
- "async-task",
- "concurrent-queue",
- "fastrand 2.0.1",
- "futures-lite 2.2.0",
- "slab",
-]
-
-[[package]]
-name = "async-fs"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
-dependencies = [
- "async-lock 2.8.0",
- "autocfg",
- "blocking",
- "futures-lite 1.13.0",
-]
-
-[[package]]
-name = "async-io"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
-dependencies = [
- "async-lock 2.8.0",
- "autocfg",
- "cfg-if",
- "concurrent-queue",
- "futures-lite 1.13.0",
- "log",
- "parking",
- "polling 2.8.0",
- "rustix 0.37.27",
- "slab",
- "socket2 0.4.10",
- "waker-fn",
-]
-
-[[package]]
-name = "async-io"
+name = "async-channel"
version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
dependencies = [
- "async-lock 3.3.0",
+ "concurrent-queue",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-io"
+version = "2.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8"
+dependencies = [
+ "async-lock",
"cfg-if",
"concurrent-queue",
"futures-io",
- "futures-lite 2.2.0",
+ "futures-lite",
"parking",
- "polling 3.5.0",
- "rustix 0.38.31",
+ "polling",
+ "rustix",
"slab",
"tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
name = "async-lock"
-version = "2.8.0"
+version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
dependencies = [
- "event-listener 2.5.3",
-]
-
-[[package]]
-name = "async-lock"
-version = "3.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
-dependencies = [
- "event-listener 4.0.3",
- "event-listener-strategy 0.4.0",
+ "event-listener",
+ "event-listener-strategy",
"pin-project-lite",
]
[[package]]
name = "async-process"
-version = "1.8.1"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
+checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb"
dependencies = [
- "async-io 1.13.0",
- "async-lock 2.8.0",
+ "async-channel",
+ "async-io",
+ "async-lock",
"async-signal",
+ "async-task",
"blocking",
"cfg-if",
- "event-listener 3.1.0",
- "futures-lite 1.13.0",
- "rustix 0.38.31",
- "windows-sys 0.48.0",
+ "event-listener",
+ "futures-lite",
+ "rustix",
+ "tracing",
]
[[package]]
name = "async-recursion"
-version = "1.0.5"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
name = "async-signal"
-version = "0.2.5"
+version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3"
dependencies = [
- "async-io 2.3.1",
- "async-lock 2.8.0",
+ "async-io",
+ "async-lock",
"atomic-waker",
"cfg-if",
"futures-core",
"futures-io",
- "rustix 0.38.31",
+ "rustix",
"signal-hook-registry",
"slab",
- "windows-sys 0.48.0",
+ "windows-sys 0.59.0",
]
[[package]]
name = "async-task"
-version = "4.7.0"
+version = "4.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
[[package]]
name = "async-trait"
-version = "0.1.77"
+version = "0.1.82"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
@@ -270,23 +255,23 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
[[package]]
name = "autocfg"
-version = "1.1.0"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
[[package]]
name = "backtrace"
-version = "0.3.69"
+version = "0.3.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
dependencies = [
"addr2line",
- "cc",
"cfg-if",
"libc",
- "miniz_oxide",
+ "miniz_oxide 0.8.0",
"object",
"rustc-demangle",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -295,6 +280,12 @@ version = "0.21.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+[[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
[[package]]
name = "bitflags"
version = "1.3.2"
@@ -303,9 +294,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
-version = "2.4.2"
+version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
dependencies = [
"serde",
]
@@ -326,26 +317,32 @@ dependencies = [
]
[[package]]
-name = "blocking"
-version = "1.5.1"
+name = "block2"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
+checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
+dependencies = [
+ "objc2",
+]
+
+[[package]]
+name = "blocking"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
dependencies = [
"async-channel",
- "async-lock 3.3.0",
"async-task",
- "fastrand 2.0.1",
"futures-io",
- "futures-lite 2.2.0",
+ "futures-lite",
"piper",
- "tracing",
]
[[package]]
name = "brotli"
-version = "3.4.0"
+version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f"
+checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b"
dependencies = [
"alloc-no-stdlib",
"alloc-stdlib",
@@ -354,9 +351,9 @@ dependencies = [
[[package]]
name = "brotli-decompressor"
-version = "2.5.1"
+version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
+checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362"
dependencies = [
"alloc-no-stdlib",
"alloc-stdlib",
@@ -364,29 +361,15 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.15.0"
+version = "3.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
[[package]]
name = "bytemuck"
-version = "1.14.3"
+version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
-dependencies = [
- "bytemuck_derive",
-]
-
-[[package]]
-name = "bytemuck_derive"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.49",
-]
+checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae"
[[package]]
name = "byteorder"
@@ -396,20 +379,41 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
-version = "1.5.0"
+version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
dependencies = [
"serde",
]
+[[package]]
+name = "bzip2"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
+dependencies = [
+ "bzip2-sys",
+ "libc",
+]
+
+[[package]]
+name = "bzip2-sys"
+version = "0.1.11+1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+]
+
[[package]]
name = "cairo-rs"
version = "0.18.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.6.0",
"cairo-sys-rs",
"glib",
"libc",
@@ -430,18 +434,18 @@ dependencies = [
[[package]]
name = "camino"
-version = "1.1.6"
+version = "1.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
+checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3"
dependencies = [
"serde",
]
[[package]]
name = "cargo-platform"
-version = "0.1.7"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f"
+checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc"
dependencies = [
"serde",
]
@@ -472,11 +476,13 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.0.83"
+version = "1.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476"
dependencies = [
+ "jobserver",
"libc",
+ "shlex",
]
[[package]]
@@ -498,9 +504,9 @@ dependencies = [
[[package]]
name = "cfg-expr"
-version = "0.15.7"
+version = "0.15.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
dependencies = [
"smallvec",
"target-lexicon",
@@ -514,70 +520,68 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "cfg_aliases"
-version = "0.1.1"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
-
-[[package]]
-name = "cfg_aliases"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77e53693616d3075149f4ead59bdeecd204ac6b8192d8969757601b74bddf00f"
+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]]
name = "chrono"
-version = "0.4.34"
+version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
dependencies = [
"android-tzdata",
"iana-time-zone",
"num-traits",
"serde",
- "windows-targets 0.52.0",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "cipher"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
+dependencies = [
+ "crypto-common",
+ "inout",
]
[[package]]
name = "cocoa"
-version = "0.25.0"
+version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c"
+checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.6.0",
"block",
"cocoa-foundation",
- "core-foundation",
+ "core-foundation 0.10.0",
"core-graphics",
- "foreign-types",
+ "foreign-types 0.5.0",
"libc",
"objc",
]
[[package]]
name = "cocoa-foundation"
-version = "0.1.2"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
+checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.6.0",
"block",
- "core-foundation",
+ "core-foundation 0.10.0",
"core-graphics-types",
"libc",
"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.6"
+version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
dependencies = [
"bytes",
"memchr",
@@ -585,13 +589,19 @@ dependencies = [
[[package]]
name = "concurrent-queue"
-version = "2.4.0"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
dependencies = [
"crossbeam-utils",
]
+[[package]]
+name = "constant_time_eq"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
+
[[package]]
name = "convert_case"
version = "0.4.0"
@@ -609,67 +619,92 @@ dependencies = [
]
[[package]]
-name = "core-foundation-sys"
-version = "0.8.6"
+name = "core-foundation"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
[[package]]
name = "core-graphics"
-version = "0.23.1"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212"
+checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1"
dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
+ "bitflags 2.6.0",
+ "core-foundation 0.10.0",
"core-graphics-types",
- "foreign-types",
+ "foreign-types 0.5.0",
"libc",
]
[[package]]
name = "core-graphics-types"
-version = "0.1.3"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
+checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb"
dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
+ "bitflags 2.6.0",
+ "core-foundation 0.10.0",
"libc",
]
[[package]]
name = "cpufeatures"
-version = "0.2.12"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
dependencies = [
"libc",
]
[[package]]
-name = "crc32fast"
-version = "1.4.0"
+name = "crc"
+version = "3.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
+
+[[package]]
+name = "crc32fast"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
dependencies = [
"cfg-if",
]
[[package]]
name = "crossbeam-channel"
-version = "0.5.11"
+version = "0.5.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
+checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
dependencies = [
"crossbeam-utils",
]
[[package]]
name = "crossbeam-utils"
-version = "0.8.19"
+version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
[[package]]
name = "crypto-common"
@@ -705,24 +740,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
name = "ctor"
-version = "0.2.6"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
+checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f"
dependencies = [
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
name = "darling"
-version = "0.20.6"
+version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c376d08ea6aa96aafe61237c7200d1241cb177b7d3a542d791f2d118e9cbb955"
+checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
dependencies = [
"darling_core",
"darling_macro",
@@ -730,29 +765,35 @@ dependencies = [
[[package]]
name = "darling_core"
-version = "0.20.6"
+version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33043dcd19068b8192064c704b3f83eb464f91f1ff527b44a4e2b08d9cdb8855"
+checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
dependencies = [
"fnv",
"ident_case",
"proc-macro2",
"quote",
"strsim",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
name = "darling_macro"
-version = "0.20.6"
+version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5a91391accf613803c2a9bf9abccdbaa07c54b4244a5b64883f9c3c137c86be"
+checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
dependencies = [
"darling_core",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
+[[package]]
+name = "deflate64"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da692b8d1080ea3045efaab14434d40468c3d8657e42abddfffca87b428f4c1b"
+
[[package]]
name = "deranged"
version = "0.3.11"
@@ -775,16 +816,38 @@ dependencies = [
]
[[package]]
-name = "derive_more"
-version = "0.99.17"
+name = "derive-getters"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+checksum = "74ef43543e701c01ad77d3a5922755c6a1d71b22d942cb8042be4994b380caff"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "derive_arbitrary"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "derive_more"
+version = "0.99.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce"
dependencies = [
"convert_case",
"proc-macro2",
"quote",
"rustc_version",
- "syn 1.0.109",
+ "syn 2.0.77",
]
[[package]]
@@ -795,27 +858,28 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
"block-buffer",
"crypto-common",
+ "subtle",
]
[[package]]
-name = "dirs-next"
-version = "2.0.0"
+name = "dirs"
+version = "5.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
dependencies = [
- "cfg-if",
- "dirs-sys-next",
+ "dirs-sys",
]
[[package]]
-name = "dirs-sys-next"
-version = "0.1.2"
+name = "dirs-sys"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
dependencies = [
"libc",
+ "option-ext",
"redox_users",
- "winapi 0.3.9",
+ "windows-sys 0.48.0",
]
[[package]]
@@ -825,57 +889,46 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
[[package]]
-name = "dlib"
-version = "0.5.2"
+name = "displaydoc"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
+checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
- "libloading 0.8.1",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
]
[[package]]
-name = "downcast-rs"
-version = "1.2.0"
+name = "dlopen2"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
-
-[[package]]
-name = "drm"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde"
-dependencies = [
- "bitflags 2.4.2",
- "bytemuck",
- "drm-ffi",
- "drm-fourcc",
- "rustix 0.38.31",
-]
-
-[[package]]
-name = "drm-ffi"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
-dependencies = [
- "drm-sys",
- "rustix 0.38.31",
-]
-
-[[package]]
-name = "drm-fourcc"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
-
-[[package]]
-name = "drm-sys"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176"
+checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6"
dependencies = [
+ "dlopen2_derive",
"libc",
- "linux-raw-sys 0.6.4",
+ "once_cell",
+ "winapi",
+]
+
+[[package]]
+name = "dlopen2_derive"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "dpi"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53"
+dependencies = [
+ "serde",
]
[[package]]
@@ -886,37 +939,37 @@ checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
[[package]]
name = "dtoa-short"
-version = "0.3.4"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74"
+checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87"
dependencies = [
"dtoa",
]
[[package]]
name = "dunce"
-version = "1.0.4"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
+checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
[[package]]
name = "dyn-clone"
-version = "1.0.16"
+version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
+checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
[[package]]
name = "embed-resource"
-version = "2.4.1"
+version = "2.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bde55e389bea6a966bd467ad1ad7da0ae14546a5bc794d16d1e55e7fca44881"
+checksum = "4edcacde9351c33139a41e3c97eb2334351a81a2791bebb0b243df837128f602"
dependencies = [
"cc",
"memchr",
"rustc_version",
"toml 0.8.2",
"vswhom",
- "winreg 0.51.0",
+ "winreg",
]
[[package]]
@@ -927,18 +980,24 @@ checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
[[package]]
name = "encoding_rs"
-version = "0.8.33"
+version = "0.8.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
dependencies = [
"cfg-if",
]
[[package]]
-name = "enumflags2"
-version = "0.7.9"
+name = "endi"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
+checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
+
+[[package]]
+name = "enumflags2"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d"
dependencies = [
"enumflags2_derive",
"serde",
@@ -946,13 +1005,13 @@ dependencies = [
[[package]]
name = "enumflags2_derive"
-version = "0.7.9"
+version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
+checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
@@ -962,10 +1021,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
-name = "errno"
-version = "0.3.8"
+name = "erased-serde"
+version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d"
+dependencies = [
+ "serde",
+ "typeid",
+]
+
+[[package]]
+name = "errno"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
dependencies = [
"libc",
"windows-sys 0.52.0",
@@ -973,37 +1042,9 @@ dependencies = [
[[package]]
name = "event-listener"
-version = "2.5.3"
+version = "5.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
-
-[[package]]
-name = "event-listener"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
-dependencies = [
- "concurrent-queue",
- "parking",
- "pin-project-lite",
-]
-
-[[package]]
-name = "event-listener"
-version = "4.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
-dependencies = [
- "concurrent-queue",
- "parking",
- "pin-project-lite",
-]
-
-[[package]]
-name = "event-listener"
-version = "5.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7ad6fd685ce13acd6d9541a30f6db6567a7a24c9ffd4ba2955d29e3f22c8b27"
+checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
dependencies = [
"concurrent-queue",
"parking",
@@ -1012,38 +1053,19 @@ dependencies = [
[[package]]
name = "event-listener-strategy"
-version = "0.4.0"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
dependencies = [
- "event-listener 4.0.3",
- "pin-project-lite",
-]
-
-[[package]]
-name = "event-listener-strategy"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
-dependencies = [
- "event-listener 5.1.0",
+ "event-listener",
"pin-project-lite",
]
[[package]]
name = "fastrand"
-version = "1.9.0"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "fastrand"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
[[package]]
name = "fdeflate"
@@ -1060,18 +1082,27 @@ version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
dependencies = [
- "memoffset 0.9.0",
+ "memoffset",
"rustc_version",
]
[[package]]
name = "flate2"
-version = "1.0.28"
+version = "1.0.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253"
dependencies = [
"crc32fast",
- "miniz_oxide",
+ "miniz_oxide 0.8.0",
+]
+
+[[package]]
+name = "fluent-uri"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17c704e9dbe1ddd863da1e6ff3567795087b1eb201ce80d8fa81162e1516500d"
+dependencies = [
+ "bitflags 1.3.2",
]
[[package]]
@@ -1080,6 +1111,15 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared 0.1.1",
+]
+
[[package]]
name = "foreign-types"
version = "0.5.0"
@@ -1087,7 +1127,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
dependencies = [
"foreign-types-macros",
- "foreign-types-shared",
+ "foreign-types-shared 0.3.1",
]
[[package]]
@@ -1098,9 +1138,15 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
[[package]]
name = "foreign-types-shared"
version = "0.3.1"
@@ -1160,26 +1206,11 @@ checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
[[package]]
name = "futures-lite"
-version = "1.13.0"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
dependencies = [
- "fastrand 1.9.0",
- "futures-core",
- "futures-io",
- "memchr",
- "parking",
- "pin-project-lite",
- "waker-fn",
-]
-
-[[package]]
-name = "futures-lite"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
-dependencies = [
- "fastrand 2.0.1",
+ "fastrand",
"futures-core",
"futures-io",
"parking",
@@ -1194,7 +1225,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
@@ -1357,16 +1388,6 @@ dependencies = [
"version_check",
]
-[[package]]
-name = "gethostname"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
-dependencies = [
- "libc",
- "windows-targets 0.48.5",
-]
-
[[package]]
name = "getrandom"
version = "0.1.16"
@@ -1380,9 +1401,9 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.2.12"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [
"cfg-if",
"libc",
@@ -1391,9 +1412,9 @@ dependencies = [
[[package]]
name = "gimli"
-version = "0.28.1"
+version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64"
[[package]]
name = "gio"
@@ -1424,7 +1445,7 @@ dependencies = [
"gobject-sys",
"libc",
"system-deps",
- "winapi 0.3.9",
+ "winapi",
]
[[package]]
@@ -1433,7 +1454,7 @@ version = "0.18.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.6.0",
"futures-channel",
"futures-core",
"futures-executor",
@@ -1456,12 +1477,12 @@ version = "0.18.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
dependencies = [
- "heck",
+ "heck 0.4.1",
"proc-macro-crate 2.0.2",
"proc-macro-error",
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
@@ -1540,22 +1561,22 @@ dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
name = "h2"
-version = "0.3.24"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205"
dependencies = [
+ "atomic-waker",
"bytes",
"fnv",
"futures-core",
"futures-sink",
- "futures-util",
"http",
- "indexmap 2.2.3",
+ "indexmap 2.5.0",
"slab",
"tokio",
"tokio-util",
@@ -1570,9 +1591,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "hashbrown"
-version = "0.14.3"
+version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
[[package]]
name = "heck"
@@ -1581,10 +1602,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
-name = "hermit-abi"
-version = "0.3.6"
+name = "heck"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "hermit-abi"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
[[package]]
name = "hex"
@@ -1592,6 +1625,15 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
[[package]]
name = "html5ever"
version = "0.26.0"
@@ -1608,60 +1650,115 @@ dependencies = [
[[package]]
name = "http"
-version = "0.2.11"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
dependencies = [
"bytes",
"fnv",
- "itoa 1.0.10",
+ "itoa 1.0.11",
]
[[package]]
name = "http-body"
-version = "0.4.6"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
dependencies = [
"bytes",
"http",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
"pin-project-lite",
]
[[package]]
name = "httparse"
-version = "1.8.0"
+version = "1.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
-
-[[package]]
-name = "httpdate"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"
[[package]]
name = "hyper"
-version = "0.14.28"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05"
dependencies = [
"bytes",
"futures-channel",
- "futures-core",
"futures-util",
"h2",
"http",
"http-body",
"httparse",
- "httpdate",
- "itoa 1.0.10",
+ "itoa 1.0.11",
"pin-project-lite",
- "socket2 0.5.5",
+ "smallvec",
"tokio",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.27.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333"
+dependencies = [
+ "futures-util",
+ "http",
+ "hyper",
+ "hyper-util",
+ "rustls",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls",
+ "tower-service",
+]
+
+[[package]]
+name = "hyper-tls"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
+dependencies = [
+ "bytes",
+ "http-body-util",
+ "hyper",
+ "hyper-util",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+ "tower-service",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http",
+ "http-body",
+ "hyper",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower",
"tower-service",
"tracing",
- "want",
]
[[package]]
@@ -1675,7 +1772,7 @@ dependencies = [
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
- "windows-core",
+ "windows-core 0.52.0",
]
[[package]]
@@ -1713,18 +1810,6 @@ dependencies = [
"unicode-normalization",
]
-[[package]]
-name = "image"
-version = "0.24.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
-dependencies = [
- "bytemuck",
- "byteorder",
- "color_quant",
- "num-traits",
-]
-
[[package]]
name = "indexmap"
version = "1.9.3"
@@ -1738,49 +1823,47 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "2.2.3"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
dependencies = [
"equivalent",
- "hashbrown 0.14.3",
+ "hashbrown 0.14.5",
"serde",
]
[[package]]
name = "infer"
-version = "0.15.0"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199"
+checksum = "bc150e5ce2330295b8616ce0e3f53250e53af31759a9dbedad1621ba29151847"
dependencies = [
"cfb",
]
[[package]]
-name = "instant"
-version = "0.1.12"
+name = "inout"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
dependencies = [
"cfg-if",
]
-[[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys 0.48.0",
-]
-
[[package]]
name = "ipnet"
-version = "2.9.0"
+version = "2.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4"
[[package]]
name = "is-docker"
@@ -1809,9 +1892,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]]
name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]]
name = "javascriptcore-rs"
@@ -1848,7 +1931,7 @@ dependencies = [
"jni-sys",
"log",
"thiserror",
- "walkdir 2.4.0",
+ "walkdir",
"windows-sys 0.45.0",
]
@@ -1859,34 +1942,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
[[package]]
-name = "js-sys"
-version = "0.3.68"
+name = "jobserver"
+version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
+checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
dependencies = [
"wasm-bindgen",
]
[[package]]
name = "json-patch"
-version = "1.2.0"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6"
+checksum = "5b1fb8864823fad91877e6caea0baca82e49e8db50f8e5c9f9a453e27d3330fc"
dependencies = [
+ "jsonptr",
"serde",
"serde_json",
"thiserror",
- "treediff",
]
[[package]]
-name = "kernel32-sys"
-version = "0.2.2"
+name = "jsonptr"
+version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+checksum = "1c6e529149475ca0b2820835d3dce8fcc41c6b943ca608d32f35b449255e4627"
dependencies = [
- "winapi 0.2.8",
- "winapi-build",
+ "fluent-uri",
+ "serde",
+ "serde_json",
]
[[package]]
@@ -1895,7 +1988,7 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a"
dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.6.0",
"serde",
"unicode-segmentation",
]
@@ -1915,9 +2008,9 @@ dependencies = [
[[package]]
name = "lazy_static"
-version = "1.4.0"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libappindicator"
@@ -1939,15 +2032,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf"
dependencies = [
"gtk-sys",
- "libloading 0.7.4",
+ "libloading",
"once_cell",
]
[[package]]
name = "libc"
-version = "0.2.153"
+version = "0.2.158"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
[[package]]
name = "libloading"
@@ -1956,72 +2049,46 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
dependencies = [
"cfg-if",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "libloading"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
-dependencies = [
- "cfg-if",
- "windows-sys 0.48.0",
+ "winapi",
]
[[package]]
name = "libredox"
-version = "0.0.1"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.6.0",
"libc",
- "redox_syscall",
-]
-
-[[package]]
-name = "line-wrap"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
-dependencies = [
- "safemem",
]
[[package]]
name = "linux-raw-sys"
-version = "0.3.8"
+version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0b5399f6804fbab912acbd8878ed3532d506b7c951b8f9f164ef90fef39e3f4"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
[[package]]
name = "lock_api"
-version = "0.4.11"
+version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
dependencies = [
"autocfg",
"scopeguard",
]
[[package]]
-name = "log"
-version = "0.4.20"
+name = "lockfree-object-pool"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e"
+
+[[package]]
+name = "log"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
[[package]]
name = "loom"
@@ -2038,6 +2105,16 @@ dependencies = [
"tracing-subscriber",
]
+[[package]]
+name = "lzma-rs"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "297e814c836ae64db86b36cf2a557ba54368d03f6afcd7d947c266692f71115e"
+dependencies = [
+ "byteorder",
+ "crc",
+]
+
[[package]]
name = "mac"
version = "0.1.1"
@@ -2084,33 +2161,15 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
[[package]]
name = "memchr"
-version = "2.7.1"
+version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
-
-[[package]]
-name = "memmap2"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
-dependencies = [
- "libc",
-]
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "memoffset"
-version = "0.7.1"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "memoffset"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
dependencies = [
"autocfg",
]
@@ -2123,33 +2182,44 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
[[package]]
name = "miniz_oxide"
-version = "0.7.2"
+version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
dependencies = [
"adler",
"simd-adler32",
]
[[package]]
-name = "mio"
-version = "0.8.10"
+name = "miniz_oxide"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
dependencies = [
+ "adler2",
+]
+
+[[package]]
+name = "mio"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
+dependencies = [
+ "hermit-abi 0.3.9",
"libc",
"wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
]
[[package]]
name = "muda"
-version = "0.11.4"
+version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e406691fa7749604bbc7964bde28a300572d52621bb84540f6907c0f8fe08737"
+checksum = "ba8ac4080fb1e097c2c22acae467e46e4da72d941f02e82b67a87a2a89fa38b1"
dependencies = [
"cocoa",
"crossbeam-channel",
+ "dpi",
"gtk",
"keyboard-types",
"objc",
@@ -2157,20 +2227,38 @@ dependencies = [
"png",
"serde",
"thiserror",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466"
+dependencies = [
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
]
[[package]]
name = "ndk"
-version = "0.7.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
+checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.6.0",
"jni-sys",
+ "log",
"ndk-sys",
"num_enum",
- "raw-window-handle 0.5.2",
+ "raw-window-handle",
"thiserror",
]
@@ -2182,29 +2270,29 @@ checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
[[package]]
name = "ndk-sys"
-version = "0.4.1+23.1.7779620"
+version = "0.6.0+11769913"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3"
+checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873"
dependencies = [
"jni-sys",
]
[[package]]
name = "new_debug_unreachable"
-version = "1.0.4"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
[[package]]
name = "nix"
-version = "0.26.4"
+version = "0.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.6.0",
"cfg-if",
"libc",
- "memoffset 0.7.1",
+ "memoffset",
]
[[package]]
@@ -2220,7 +2308,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
dependencies = [
"overload",
- "winapi 0.3.9",
+ "winapi",
]
[[package]]
@@ -2231,42 +2319,32 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
[[package]]
name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
dependencies = [
"autocfg",
]
-[[package]]
-name = "num_cpus"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
[[package]]
name = "num_enum"
-version = "0.5.11"
+version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
+checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179"
dependencies = [
"num_enum_derive",
]
[[package]]
name = "num_enum_derive"
-version = "0.5.11"
+version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
+checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56"
dependencies = [
- "proc-macro-crate 1.3.1",
+ "proc-macro-crate 2.0.2",
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.77",
]
[[package]]
@@ -2279,6 +2357,116 @@ dependencies = [
"objc_exception",
]
+[[package]]
+name = "objc-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+dependencies = [
+ "block",
+ "objc",
+ "objc_id",
+]
+
+[[package]]
+name = "objc-sys"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310"
+
+[[package]]
+name = "objc2"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804"
+dependencies = [
+ "objc-sys",
+ "objc2-encode",
+]
+
+[[package]]
+name = "objc2-app-kit"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff"
+dependencies = [
+ "bitflags 2.6.0",
+ "block2",
+ "libc",
+ "objc2",
+ "objc2-core-data",
+ "objc2-core-image",
+ "objc2-foundation",
+ "objc2-quartz-core",
+]
+
+[[package]]
+name = "objc2-core-data"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef"
+dependencies = [
+ "bitflags 2.6.0",
+ "block2",
+ "objc2",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-core-image"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80"
+dependencies = [
+ "block2",
+ "objc2",
+ "objc2-foundation",
+ "objc2-metal",
+]
+
+[[package]]
+name = "objc2-encode"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8"
+
+[[package]]
+name = "objc2-foundation"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
+dependencies = [
+ "bitflags 2.6.0",
+ "block2",
+ "libc",
+ "objc2",
+]
+
+[[package]]
+name = "objc2-metal"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
+dependencies = [
+ "bitflags 2.6.0",
+ "block2",
+ "objc2",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-quartz-core"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
+dependencies = [
+ "bitflags 2.6.0",
+ "block2",
+ "objc2",
+ "objc2-foundation",
+ "objc2-metal",
+]
+
[[package]]
name = "objc_exception"
version = "0.1.2"
@@ -2299,30 +2487,80 @@ dependencies = [
[[package]]
name = "object"
-version = "0.32.2"
+version = "0.36.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a"
dependencies = [
"memchr",
]
[[package]]
name = "once_cell"
-version = "1.19.0"
+version = "1.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+checksum = "33ea5043e58958ee56f3e15a90aee535795cd7dfd319846288d93c5b57d85cbe"
[[package]]
name = "open"
-version = "4.2.0"
+version = "5.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a083c0c7e5e4a8ec4176346cf61f67ac674e8bfb059d9226e1c54a96b377c12"
+checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3"
dependencies = [
"is-wsl",
"libc",
"pathdiff",
]
+[[package]]
+name = "openssl"
+version = "0.10.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1"
+dependencies = [
+ "bitflags 2.6.0",
+ "cfg-if",
+ "foreign-types 0.3.2",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.103"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
[[package]]
name = "ordered-stream"
version = "0.2.0"
@@ -2335,12 +2573,12 @@ dependencies = [
[[package]]
name = "os_pipe"
-version = "1.1.5"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9"
+checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982"
dependencies = [
"libc",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -2376,15 +2614,15 @@ dependencies = [
[[package]]
name = "parking"
-version = "2.2.0"
+version = "2.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
[[package]]
name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
dependencies = [
"lock_api",
"parking_lot_core",
@@ -2392,15 +2630,15 @@ dependencies = [
[[package]]
name = "parking_lot_core"
-version = "0.9.9"
+version = "0.9.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
dependencies = [
"cfg-if",
"libc",
"redox_syscall",
"smallvec",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -2409,6 +2647,16 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+[[package]]
+name = "pbkdf2"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
+dependencies = [
+ "digest",
+ "hmac",
+]
+
[[package]]
name = "percent-encoding"
version = "2.3.1"
@@ -2519,7 +2767,7 @@ dependencies = [
"phf_shared 0.11.2",
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
@@ -2550,10 +2798,30 @@ dependencies = [
]
[[package]]
-name = "pin-project-lite"
-version = "0.2.13"
+name = "pin-project"
+version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
[[package]]
name = "pin-utils"
@@ -2563,12 +2831,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "piper"
-version = "0.2.1"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
dependencies = [
"atomic-waker",
- "fastrand 2.0.1",
+ "fastrand",
"futures-io",
]
@@ -2580,13 +2848,12 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
[[package]]
name = "plist"
-version = "1.6.0"
+version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
+checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016"
dependencies = [
- "base64",
- "indexmap 2.2.3",
- "line-wrap",
+ "base64 0.22.1",
+ "indexmap 2.5.0",
"quick-xml",
"serde",
"time",
@@ -2602,37 +2869,22 @@ dependencies = [
"crc32fast",
"fdeflate",
"flate2",
- "miniz_oxide",
+ "miniz_oxide 0.7.4",
]
[[package]]
name = "polling"
-version = "2.8.0"
+version = "3.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
-dependencies = [
- "autocfg",
- "bitflags 1.3.2",
- "cfg-if",
- "concurrent-queue",
- "libc",
- "log",
- "pin-project-lite",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "polling"
-version = "3.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
+checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511"
dependencies = [
"cfg-if",
"concurrent-queue",
+ "hermit-abi 0.4.0",
"pin-project-lite",
- "rustix 0.38.31",
+ "rustix",
"tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -2643,9 +2895,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
[[package]]
name = "ppv-lite86"
-version = "0.2.17"
+version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
+dependencies = [
+ "zerocopy",
+]
[[package]]
name = "precomputed-hash"
@@ -2705,27 +2960,27 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
[[package]]
name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quick-xml"
-version = "0.31.0"
+version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2"
dependencies = [
"memchr",
]
[[package]]
name = "quote"
-version = "1.0.35"
+version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
dependencies = [
"proc-macro2",
]
@@ -2790,7 +3045,7 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
- "getrandom 0.2.12",
+ "getrandom 0.2.15",
]
[[package]]
@@ -2813,46 +3068,40 @@ dependencies = [
[[package]]
name = "raw-window-handle"
-version = "0.5.2"
+version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
-
-[[package]]
-name = "raw-window-handle"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
+checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
[[package]]
name = "redox_syscall"
-version = "0.4.1"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.6.0",
]
[[package]]
name = "redox_users"
-version = "0.4.4"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
dependencies = [
- "getrandom 0.2.12",
+ "getrandom 0.2.15",
"libredox",
"thiserror",
]
[[package]]
name = "regex"
-version = "1.10.3"
+version = "1.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
dependencies = [
"aho-corasick",
"memchr",
- "regex-automata 0.4.5",
- "regex-syntax 0.8.2",
+ "regex-automata 0.4.7",
+ "regex-syntax 0.8.4",
]
[[package]]
@@ -2866,13 +3115,13 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.4.5"
+version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
dependencies = [
"aho-corasick",
"memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.4",
]
[[package]]
@@ -2883,17 +3132,17 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
[[package]]
name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
[[package]]
name = "reqwest"
-version = "0.11.24"
+version = "0.12.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
+checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63"
dependencies = [
- "base64",
+ "base64 0.22.1",
"bytes",
"encoding_rs",
"futures-core",
@@ -2901,20 +3150,27 @@ dependencies = [
"h2",
"http",
"http-body",
+ "http-body-util",
"hyper",
+ "hyper-rustls",
+ "hyper-tls",
+ "hyper-util",
"ipnet",
"js-sys",
"log",
"mime",
+ "native-tls",
"once_cell",
"percent-encoding",
"pin-project-lite",
+ "rustls-pemfile",
"serde",
"serde_json",
"serde_urlencoded",
"sync_wrapper",
"system-configuration",
"tokio",
+ "tokio-native-tls",
"tokio-util",
"tower-service",
"url",
@@ -2922,78 +3178,127 @@ dependencies = [
"wasm-bindgen-futures",
"wasm-streams",
"web-sys",
- "winreg 0.50.0",
+ "windows-registry",
+]
+
+[[package]]
+name = "rfd"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25a73a7337fc24366edfca76ec521f51877b114e42dab584008209cca6719251"
+dependencies = [
+ "ashpd",
+ "block",
+ "dispatch",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "js-sys",
+ "log",
+ "objc",
+ "objc-foundation",
+ "objc_id",
+ "raw-window-handle",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "ring"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "getrandom 0.2.15",
+ "libc",
+ "spin",
+ "untrusted",
+ "windows-sys 0.52.0",
]
[[package]]
name = "rustc-demangle"
-version = "0.1.23"
+version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
[[package]]
name = "rustc_version"
-version = "0.4.0"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
dependencies = [
"semver",
]
[[package]]
name = "rustix"
-version = "0.37.27"
+version = "0.38.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
+checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.3.8",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
-dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.6.0",
"errno",
"libc",
- "linux-raw-sys 0.4.13",
+ "linux-raw-sys",
"windows-sys 0.52.0",
]
[[package]]
-name = "rustversion"
-version = "1.0.14"
+name = "rustls"
+version = "0.23.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8"
+dependencies = [
+ "once_cell",
+ "rustls-pki-types",
+ "rustls-webpki",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425"
+dependencies = [
+ "base64 0.22.1",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0"
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9"
+dependencies = [
+ "ring",
+ "rustls-pki-types",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
[[package]]
name = "ryu"
-version = "1.0.17"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
-
-[[package]]
-name = "safemem"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-
-[[package]]
-name = "same-file"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7"
-dependencies = [
- "kernel32-sys",
- "winapi 0.2.8",
-]
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "same-file"
@@ -3005,10 +3310,19 @@ dependencies = [
]
[[package]]
-name = "schemars"
-version = "0.8.16"
+name = "schannel"
+version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29"
+checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b"
+dependencies = [
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "schemars"
+version = "0.8.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92"
dependencies = [
"dyn-clone",
"indexmap 1.9.3",
@@ -3020,14 +3334,14 @@ dependencies = [
[[package]]
name = "schemars_derive"
-version = "0.8.16"
+version = "0.8.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967"
+checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e"
dependencies = [
"proc-macro2",
"quote",
"serde_derive_internals",
- "syn 1.0.109",
+ "syn 2.0.77",
]
[[package]]
@@ -3042,6 +3356,29 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+[[package]]
+name = "security-framework"
+version = "2.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
+dependencies = [
+ "bitflags 2.6.0",
+ "core-foundation 0.9.4",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
[[package]]
name = "selectors"
version = "0.22.0"
@@ -3064,71 +3401,83 @@ dependencies = [
[[package]]
name = "semver"
-version = "1.0.22"
+version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
dependencies = [
"serde",
]
[[package]]
name = "serde"
-version = "1.0.196"
+version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
dependencies = [
"serde_derive",
]
[[package]]
-name = "serde_derive"
-version = "1.0.196"
+name = "serde-untagged"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6"
+dependencies = [
+ "erased-serde",
+ "serde",
+ "typeid",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.210"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
name = "serde_derive_internals"
-version = "0.26.0"
+version = "0.29.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
+checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
dependencies = [
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.77",
]
[[package]]
name = "serde_json"
-version = "1.0.113"
+version = "1.0.128"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
dependencies = [
- "itoa 1.0.10",
+ "itoa 1.0.11",
+ "memchr",
"ryu",
"serde",
]
[[package]]
name = "serde_repr"
-version = "0.1.18"
+version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
name = "serde_spanned"
-version = "0.6.5"
+version = "0.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
dependencies = [
"serde",
]
@@ -3140,22 +3489,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
dependencies = [
"form_urlencoded",
- "itoa 1.0.10",
+ "itoa 1.0.11",
"ryu",
"serde",
]
[[package]]
name = "serde_with"
-version = "3.6.1"
+version = "3.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270"
+checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857"
dependencies = [
- "base64",
+ "base64 0.22.1",
"chrono",
"hex",
"indexmap 1.9.3",
- "indexmap 2.2.3",
+ "indexmap 2.5.0",
"serde",
"serde_derive",
"serde_json",
@@ -3165,14 +3514,14 @@ dependencies = [
[[package]]
name = "serde_with_macros"
-version = "3.6.1"
+version = "3.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "865f9743393e638991566a8b7a479043c2c8da94a33e0a31f18214c9cae0a64d"
+checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350"
dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
@@ -3229,6 +3578,19 @@ dependencies = [
"digest",
]
+[[package]]
+name = "sha256"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18278f6a914fa3070aa316493f7d2ddfb9ac86ebc06fa3b83bffda487e9065b0"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "hex",
+ "sha2",
+ "tokio",
+]
+
[[package]]
name = "sharded-slab"
version = "0.1.7"
@@ -3240,19 +3602,25 @@ dependencies = [
[[package]]
name = "shared_child"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef"
+checksum = "09fa9338aed9a1df411814a5b2252f7cd206c55ae9bf2fa763f8de84603aa60c"
dependencies = [
"libc",
- "winapi 0.3.9",
+ "windows-sys 0.59.0",
]
[[package]]
-name = "signal-hook-registry"
-version = "1.4.1"
+name = "shlex"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
dependencies = [
"libc",
]
@@ -3280,59 +3648,40 @@ dependencies = [
[[package]]
name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "socket2"
-version = "0.4.10"
+version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
dependencies = [
"libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "socket2"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
-dependencies = [
- "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
]
[[package]]
name = "softbuffer"
-version = "0.4.1"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071916a85d1db274b4ed57af3a14afb66bd836ae7f82ebb6f1fd3455107830d9"
+checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08"
dependencies = [
- "as-raw-xcb-connection",
"bytemuck",
- "cfg_aliases 0.2.0",
- "cocoa",
+ "cfg_aliases",
"core-graphics",
- "drm",
- "fastrand 2.0.1",
- "foreign-types",
+ "foreign-types 0.5.0",
"js-sys",
"log",
- "memmap2",
- "objc",
- "raw-window-handle 0.6.0",
+ "objc2",
+ "objc2-foundation",
+ "objc2-quartz-core",
+ "raw-window-handle",
"redox_syscall",
- "rustix 0.38.31",
- "tiny-xlib",
"wasm-bindgen",
- "wayland-backend",
- "wayland-client",
- "wayland-sys",
"web-sys",
- "windows-sys 0.52.0",
- "x11rb",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -3361,6 +3710,12 @@ dependencies = [
"system-deps",
]
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
[[package]]
name = "stable_deref_trait"
version = "1.2.0"
@@ -3382,16 +3737,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-[[package]]
-name = "steamdepotdownloadergui"
-version = "3.0.0"
-dependencies = [
- "serde_json",
- "tauri",
- "tauri-build",
- "tauri-plugin-shell",
-]
-
[[package]]
name = "string_cache"
version = "0.8.7"
@@ -3420,17 +3765,23 @@ dependencies = [
[[package]]
name = "strsim"
-version = "0.10.0"
+version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "subtle"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "swift-rs"
-version = "1.0.6"
+version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bbdb58577b6301f8d17ae2561f32002a5bae056d444e0f69e611e504a276204"
+checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7"
dependencies = [
- "base64",
+ "base64 0.21.7",
"serde",
"serde_json",
]
@@ -3448,9 +3799,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.49"
+version = "2.0.77"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496"
+checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
dependencies = [
"proc-macro2",
"quote",
@@ -3459,26 +3810,29 @@ dependencies = [
[[package]]
name = "sync_wrapper"
-version = "0.1.2"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
+dependencies = [
+ "futures-core",
+]
[[package]]
name = "system-configuration"
-version = "0.5.1"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b"
dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
+ "bitflags 2.6.0",
+ "core-foundation 0.9.4",
"system-configuration-sys",
]
[[package]]
name = "system-configuration-sys"
-version = "0.5.0"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
dependencies = [
"core-foundation-sys",
"libc",
@@ -3486,12 +3840,12 @@ dependencies = [
[[package]]
name = "system-deps"
-version = "6.2.0"
+version = "6.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
dependencies = [
"cfg-expr",
- "heck",
+ "heck 0.5.0",
"pkg-config",
"toml 0.8.2",
"version-compare",
@@ -3499,21 +3853,21 @@ dependencies = [
[[package]]
name = "tao"
-version = "0.25.0"
+version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fa7ba6ee5b8908ba3a62e6a4f3683490ed732fca614cdd3f4c989bba548f9a9"
+checksum = "2a93f2c6b8fdaeb7f417bda89b5bc767999745c3052969664ae1fa65892deb7e"
dependencies = [
- "bitflags 1.3.2",
- "cc",
+ "bitflags 2.6.0",
"cocoa",
- "core-foundation",
+ "core-foundation 0.10.0",
"core-graphics",
"crossbeam-channel",
"dispatch",
+ "dlopen2",
+ "dpi",
"gdkwayland-sys",
"gdkx11-sys",
"gtk",
- "image",
"instant",
"jni",
"lazy_static",
@@ -3525,70 +3879,68 @@ dependencies = [
"objc",
"once_cell",
"parking_lot",
- "png",
- "raw-window-handle 0.5.2",
- "raw-window-handle 0.6.0",
+ "raw-window-handle",
"scopeguard",
"tao-macros",
"unicode-segmentation",
"url",
- "windows 0.52.0",
- "windows-implement",
+ "windows 0.58.0",
+ "windows-core 0.58.0",
"windows-version",
"x11-dl",
- "zbus",
]
[[package]]
name = "tao-macros"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec114582505d158b669b136e6851f85840c109819d77c42bb7c0709f727d18c2"
+checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd"
dependencies = [
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.77",
]
[[package]]
name = "target-lexicon"
-version = "0.12.13"
+version = "0.12.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
[[package]]
name = "tauri"
-version = "2.0.0-beta.2"
+version = "2.0.0-rc.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a584d146c38bf174398dee0ec2cdd8f8fce142daee0306c370cf78f050304c60"
+checksum = "2fa32e2741bda64c1da02d93252a466893180052fc6de61c8803b0356504b70d"
dependencies = [
"anyhow",
"bytes",
- "cocoa",
- "dirs-next",
+ "dirs",
+ "dunce",
"embed_plist",
"futures-util",
- "getrandom 0.2.12",
+ "getrandom 0.2.15",
"glob",
"gtk",
- "heck",
+ "heck 0.5.0",
"http",
"jni",
"libc",
"log",
"mime",
"muda",
- "nix",
- "objc",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-foundation",
"percent-encoding",
- "raw-window-handle 0.5.2",
+ "plist",
+ "raw-window-handle",
"reqwest",
"serde",
"serde_json",
"serde_repr",
"serialize-to-javascript",
"state",
- "static_assertions",
"swift-rs",
"tauri-build",
"tauri-macros",
@@ -3599,23 +3951,24 @@ dependencies = [
"tokio",
"tray-icon",
"url",
+ "urlpattern",
"webkit2gtk",
"webview2-com",
"window-vibrancy",
- "windows 0.52.0",
+ "windows 0.58.0",
]
[[package]]
name = "tauri-build"
-version = "2.0.0-beta.1"
+version = "2.0.0-rc.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "314089a25d92a62f33f60d2a19c277f465e9088ee3ea251032ae914d6f2b1ce0"
+checksum = "148441d64674b2885c1ba5baf3ae61662bb8753859ffcfb541962cbc6b847f39"
dependencies = [
"anyhow",
"cargo_toml",
- "dirs-next",
+ "dirs",
"glob",
- "heck",
+ "heck 0.5.0",
"json-patch",
"schemars",
"semver",
@@ -3624,16 +3977,16 @@ dependencies = [
"tauri-utils",
"tauri-winres",
"toml 0.8.2",
- "walkdir 2.4.0",
+ "walkdir",
]
[[package]]
name = "tauri-codegen"
-version = "2.0.0-beta.1"
+version = "2.0.0-rc.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e6ff13874390499976f01decf75103f28e7609abc5c155c6bfb56cf574a5628"
+checksum = "72a15c3f9282c82871c69ddb65d02ae552738bbac848c8adcab521bf14d8b9e6"
dependencies = [
- "base64",
+ "base64 0.22.1",
"brotli",
"ico",
"json-patch",
@@ -3645,33 +3998,34 @@ dependencies = [
"serde",
"serde_json",
"sha2",
+ "syn 2.0.77",
"tauri-utils",
"thiserror",
"time",
"url",
"uuid",
- "walkdir 2.4.0",
+ "walkdir",
]
[[package]]
name = "tauri-macros"
-version = "2.0.0-beta.1"
+version = "2.0.0-rc.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18707774f70a8ec20dbf653f07d12af1e0d7c1e3a625b7bd5a2cfe72c2b2549b"
+checksum = "f12d1aa317bec56f78388cf6012d788876d838595a48f95cbd7835642db356a0"
dependencies = [
- "heck",
+ "heck 0.5.0",
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
"tauri-codegen",
"tauri-utils",
]
[[package]]
name = "tauri-plugin"
-version = "2.0.0-beta.1"
+version = "2.0.0-rc.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb732726fec855b56e4a238464f1b0c10006f618180ef402ce5f394d840e61b"
+checksum = "d82a2adea16b8a71b7a5ad23f720bb13f8d2830b820cc1c266512314ba99bf67"
dependencies = [
"anyhow",
"glob",
@@ -3681,14 +4035,53 @@ dependencies = [
"serde_json",
"tauri-utils",
"toml 0.8.2",
- "walkdir 1.0.7",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-plugin-dialog"
+version = "2.0.0-rc.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "785722c81beb4a6b729ae55d06aeb68d47166c933e64b727e33254dcb5d4d82d"
+dependencies = [
+ "log",
+ "raw-window-handle",
+ "rfd",
+ "serde",
+ "serde_json",
+ "tauri",
+ "tauri-plugin",
+ "tauri-plugin-fs",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "tauri-plugin-fs"
+version = "2.0.0-rc.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cb1dfbbea322afbc9dec49351bc29edf4e85e74d37d9a3fcc72d67ed55ffdbd"
+dependencies = [
+ "anyhow",
+ "dunce",
+ "glob",
+ "percent-encoding",
+ "schemars",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "tauri",
+ "tauri-plugin",
+ "thiserror",
+ "url",
+ "uuid",
]
[[package]]
name = "tauri-plugin-shell"
-version = "2.0.0-beta.0"
+version = "2.0.0-rc.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfaeb1d7afaff06304737abddd29cdada33419241d14eec85689d82675fc529e"
+checksum = "e83800ddf78b820172efb5ed7310344e8e4f97fd30cd8237a3f20c12a79eb136"
dependencies = [
"encoding_rs",
"log",
@@ -3702,61 +4095,65 @@ dependencies = [
"tauri",
"tauri-plugin",
"thiserror",
+ "tokio",
]
[[package]]
name = "tauri-runtime"
-version = "2.0.0-beta.1"
+version = "2.0.0-rc.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d72194de56e885dbd9fd8c493ccf95012e584c928900188da248f9ea4223b23"
+checksum = "389f78c8e8e6eff3897d8d9581087943b5976ea96a0ab5036be691f28c2b0df0"
dependencies = [
+ "dpi",
"gtk",
"http",
"jni",
- "raw-window-handle 0.5.2",
+ "raw-window-handle",
"serde",
"serde_json",
"tauri-utils",
"thiserror",
"url",
- "windows 0.52.0",
+ "windows 0.58.0",
]
[[package]]
name = "tauri-runtime-wry"
-version = "2.0.0-beta.1"
+version = "2.0.0-rc.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74a71bd248a7ce857835b1f65845a9de22171e30d8129e018b42961502565efb"
+checksum = "e17625b7cf63958d53945e199391d11c9f195fb3d1cb8aeb64dc3084d0091b92"
dependencies = [
- "cocoa",
"gtk",
"http",
"jni",
- "nix",
+ "log",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-foundation",
"percent-encoding",
- "raw-window-handle 0.5.2",
+ "raw-window-handle",
"softbuffer",
"tao",
"tauri-runtime",
"tauri-utils",
+ "url",
"webkit2gtk",
"webview2-com",
- "windows 0.52.0",
+ "windows 0.58.0",
"wry",
]
[[package]]
name = "tauri-utils"
-version = "2.0.0-beta.1"
+version = "2.0.0-rc.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7104f0639a1f3a7ebd7aac793be47d7924f569e7c10c6853083529bf9bb3fe6"
+checksum = "3019641087c9039b57ebfca95fa42a93c07056845b7d8d57c8966061bcee83b4"
dependencies = [
"brotli",
"cargo_metadata",
"ctor",
"dunce",
"glob",
- "heck",
"html5ever",
"infer",
"json-patch",
@@ -3766,16 +4163,19 @@ dependencies = [
"phf 0.11.2",
"proc-macro2",
"quote",
+ "regex",
"schemars",
"semver",
"serde",
+ "serde-untagged",
"serde_json",
"serde_with",
"swift-rs",
"thiserror",
"toml 0.8.2",
"url",
- "walkdir 2.4.0",
+ "urlpattern",
+ "walkdir",
]
[[package]]
@@ -3790,14 +4190,15 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "3.10.0"
+version = "3.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
+checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
dependencies = [
"cfg-if",
- "fastrand 2.0.1",
- "rustix 0.38.31",
- "windows-sys 0.52.0",
+ "fastrand",
+ "once_cell",
+ "rustix",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -3819,29 +4220,29 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
[[package]]
name = "thiserror"
-version = "1.0.57"
+version = "1.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.57"
+version = "1.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
dependencies = [
"cfg-if",
"once_cell",
@@ -3849,12 +4250,12 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.34"
+version = "0.3.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
dependencies = [
"deranged",
- "itoa 1.0.10",
+ "itoa 1.0.11",
"num-conv",
"powerfmt",
"serde",
@@ -3870,31 +4271,19 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
-version = "0.2.17"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
dependencies = [
"num-conv",
"time-core",
]
-[[package]]
-name = "tiny-xlib"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4098d49269baa034a8d1eae9bd63e9fa532148d772121dace3bcd6a6c98eb6d"
-dependencies = [
- "as-raw-xcb-connection",
- "ctor",
- "libloading 0.8.1",
- "tracing",
-]
-
[[package]]
name = "tinyvec"
-version = "1.6.0"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"
dependencies = [
"tinyvec_macros",
]
@@ -3907,32 +4296,53 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
-version = "1.36.0"
+version = "1.40.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
dependencies = [
"backtrace",
"bytes",
"libc",
"mio",
- "num_cpus",
"pin-project-lite",
- "socket2 0.5.5",
- "windows-sys 0.48.0",
+ "signal-hook-registry",
+ "socket2",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
+dependencies = [
+ "rustls",
+ "rustls-pki-types",
+ "tokio",
]
[[package]]
name = "tokio-util"
-version = "0.7.10"
+version = "0.7.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
dependencies = [
"bytes",
"futures-core",
"futures-sink",
"pin-project-lite",
"tokio",
- "tracing",
]
[[package]]
@@ -3974,7 +4384,7 @@ version = "0.19.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.5.0",
"serde",
"serde_spanned",
"toml_datetime",
@@ -3987,7 +4397,7 @@ version = "0.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.5.0",
"serde",
"serde_spanned",
"toml_datetime",
@@ -3995,10 +4405,31 @@ dependencies = [
]
[[package]]
-name = "tower-service"
-version = "0.3.2"
+name = "tower"
+version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project",
+ "pin-project-lite",
+ "tokio",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
+
+[[package]]
+name = "tower-service"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
[[package]]
name = "tracing"
@@ -4019,7 +4450,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
@@ -4063,31 +4494,23 @@ dependencies = [
[[package]]
name = "tray-icon"
-version = "0.11.3"
+version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a4d9ddd4a7c0f3b6862af1c4911b529a49db4ee89310d3a258859c2f5053fdd"
+checksum = "044d7738b3d50f288ddef035b793228740ad4d927f5466b0af55dc15e7e03cfe"
dependencies = [
- "cocoa",
"core-graphics",
"crossbeam-channel",
- "dirs-next",
+ "dirs",
"libappindicator",
"muda",
- "objc",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-foundation",
"once_cell",
"png",
"serde",
"thiserror",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "treediff"
-version = "4.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5"
-dependencies = [
- "serde_json",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -4096,6 +4519,12 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+[[package]]
+name = "typeid"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e"
+
[[package]]
name = "typenum"
version = "1.17.0"
@@ -4108,9 +4537,50 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
dependencies = [
- "memoffset 0.9.0",
+ "memoffset",
"tempfile",
- "winapi 0.3.9",
+ "winapi",
+]
+
+[[package]]
+name = "unic-char-property"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221"
+dependencies = [
+ "unic-char-range",
+]
+
+[[package]]
+name = "unic-char-range"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc"
+
+[[package]]
+name = "unic-common"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc"
+
+[[package]]
+name = "unic-ucd-ident"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987"
+dependencies = [
+ "unic-char-property",
+ "unic-char-range",
+ "unic-ucd-version",
+]
+
+[[package]]
+name = "unic-ucd-version"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4"
+dependencies = [
+ "unic-common",
]
[[package]]
@@ -4121,30 +4591,36 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
[[package]]
name = "unicode-ident"
-version = "1.0.12"
+version = "1.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
[[package]]
name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
dependencies = [
"tinyvec",
]
[[package]]
name = "unicode-segmentation"
-version = "1.11.0"
+version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "url"
-version = "2.5.0"
+version = "2.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
dependencies = [
"form_urlencoded",
"idna",
@@ -4152,6 +4628,18 @@ dependencies = [
"serde",
]
+[[package]]
+name = "urlpattern"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d"
+dependencies = [
+ "regex",
+ "serde",
+ "unic-ucd-ident",
+ "url",
+]
+
[[package]]
name = "utf-8"
version = "0.7.6"
@@ -4160,11 +4648,11 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
[[package]]
name = "uuid"
-version = "1.7.0"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314"
dependencies = [
- "getrandom 0.2.12",
+ "getrandom 0.2.15",
]
[[package]]
@@ -4174,16 +4662,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
[[package]]
-name = "version-compare"
-version = "0.1.1"
+name = "vcpkg"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "vectum"
+version = "3.0.0-alpha.1"
+dependencies = [
+ "async-process",
+ "derive-getters",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "sha256",
+ "tauri",
+ "tauri-build",
+ "tauri-plugin-dialog",
+ "tauri-plugin-shell",
+ "zip",
+]
+
+[[package]]
+name = "version-compare"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
[[package]]
name = "version_check"
-version = "0.9.4"
+version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
[[package]]
name = "vswhom"
@@ -4205,30 +4716,13 @@ dependencies = [
"libc",
]
-[[package]]
-name = "waker-fn"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
-
[[package]]
name = "walkdir"
-version = "1.0.7"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
dependencies = [
- "kernel32-sys",
- "same-file 0.1.3",
- "winapi 0.2.8",
-]
-
-[[package]]
-name = "walkdir"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
-dependencies = [
- "same-file 1.0.6",
+ "same-file",
"winapi-util",
]
@@ -4255,34 +4749,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.91"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
+checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
dependencies = [
"cfg-if",
+ "once_cell",
"wasm-bindgen-macro",
]
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.91"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.41"
+version = "0.4.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
+checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed"
dependencies = [
"cfg-if",
"js-sys",
@@ -4292,9 +4787,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.91"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
+checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -4302,22 +4797,22 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.91"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
+checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.91"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
+checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
[[package]]
name = "wasm-streams"
@@ -4332,60 +4827,11 @@ dependencies = [
"web-sys",
]
-[[package]]
-name = "wayland-backend"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
-dependencies = [
- "cc",
- "downcast-rs",
- "rustix 0.38.31",
- "scoped-tls",
- "smallvec",
- "wayland-sys",
-]
-
-[[package]]
-name = "wayland-client"
-version = "0.31.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
-dependencies = [
- "bitflags 2.4.2",
- "rustix 0.38.31",
- "wayland-backend",
- "wayland-scanner",
-]
-
-[[package]]
-name = "wayland-scanner"
-version = "0.31.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
-dependencies = [
- "proc-macro2",
- "quick-xml",
- "quote",
-]
-
-[[package]]
-name = "wayland-sys"
-version = "0.31.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
-dependencies = [
- "dlib",
- "log",
- "once_cell",
- "pkg-config",
-]
-
[[package]]
name = "web-sys"
-version = "0.3.68"
+version = "0.3.70"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
+checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -4437,46 +4883,40 @@ dependencies = [
[[package]]
name = "webview2-com"
-version = "0.28.0"
+version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0ae9c7e420783826cf769d2c06ac9ba462f450eca5893bb8c6c6529a4e5dd33"
+checksum = "6f61ff3d9d0ee4efcb461b14eb3acfda2702d10dc329f339303fc3e57215ae2c"
dependencies = [
"webview2-com-macros",
"webview2-com-sys",
- "windows 0.52.0",
- "windows-core",
+ "windows 0.58.0",
+ "windows-core 0.58.0",
"windows-implement",
"windows-interface",
]
[[package]]
name = "webview2-com-macros"
-version = "0.7.0"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1345798ecd8122468840bcdf1b95e5dc6d2206c5e4b0eafa078d061f59c9bc"
+checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
name = "webview2-com-sys"
-version = "0.28.0"
+version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6ad85fceee6c42fa3d61239eba5a11401bf38407a849ed5ea1b407df08cca72"
+checksum = "a3a3e2eeb58f82361c93f9777014668eb3d07e7d174ee4c819575a9208011886"
dependencies = [
"thiserror",
- "windows 0.52.0",
- "windows-core",
+ "windows 0.58.0",
+ "windows-core 0.58.0",
]
-[[package]]
-name = "winapi"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-
[[package]]
name = "winapi"
version = "0.3.9"
@@ -4487,12 +4927,6 @@ dependencies = [
"winapi-x86_64-pc-windows-gnu",
]
-[[package]]
-name = "winapi-build"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
@@ -4501,11 +4935,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-util"
-version = "0.1.6"
+version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
dependencies = [
- "winapi 0.3.9",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -4516,14 +4950,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "window-vibrancy"
-version = "0.4.3"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af6abc2b9c56bd95887825a1ce56cde49a2a97c07e28db465d541f5098a2656c"
+checksum = "3ea403deff7b51fff19e261330f71608ff2cdef5721d72b64180bb95be7c4150"
dependencies = [
- "cocoa",
- "objc",
- "raw-window-handle 0.5.2",
- "windows-sys 0.52.0",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-foundation",
+ "raw-window-handle",
+ "windows-sys 0.59.0",
"windows-version",
]
@@ -4538,14 +4973,12 @@ dependencies = [
[[package]]
name = "windows"
-version = "0.52.0"
+version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6"
dependencies = [
- "windows-core",
- "windows-implement",
- "windows-interface",
- "windows-targets 0.52.0",
+ "windows-core 0.58.0",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -4554,29 +4987,72 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.58.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99"
+dependencies = [
+ "windows-implement",
+ "windows-interface",
+ "windows-result",
+ "windows-strings",
+ "windows-targets 0.52.6",
]
[[package]]
name = "windows-implement"
-version = "0.52.0"
+version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12168c33176773b86799be25e2a2ba07c7aab9968b37541f1094dbd7a60c8946"
+checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
]
[[package]]
name = "windows-interface"
-version = "0.52.0"
+version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d8dc32e0095a7eeccebd0e3f09e9509365ecb3fc6ac4d6f5f14a3f6392942d1"
+checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.49",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "windows-registry"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0"
+dependencies = [
+ "windows-result",
+ "windows-strings",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-strings"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
+dependencies = [
+ "windows-result",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -4603,7 +5079,16 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets 0.52.6",
]
[[package]]
@@ -4638,26 +5123,27 @@ dependencies = [
[[package]]
name = "windows-targets"
-version = "0.52.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.6",
+ "windows_aarch64_msvc 0.52.6",
+ "windows_i686_gnu 0.52.6",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.6",
+ "windows_x86_64_gnu 0.52.6",
+ "windows_x86_64_gnullvm 0.52.6",
+ "windows_x86_64_msvc 0.52.6",
]
[[package]]
name = "windows-version"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4"
+checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515"
dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -4674,9 +5160,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
@@ -4692,9 +5178,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
@@ -4710,9 +5196,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
@@ -4728,9 +5220,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
@@ -4746,9 +5238,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
@@ -4764,9 +5256,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
@@ -4782,9 +5274,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "winnow"
@@ -4797,19 +5289,9 @@ dependencies = [
[[package]]
name = "winreg"
-version = "0.50.0"
+version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
-dependencies = [
- "cfg-if",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "winreg"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
dependencies = [
"cfg-if",
"windows-sys 0.48.0",
@@ -4817,16 +5299,16 @@ dependencies = [
[[package]]
name = "wry"
-version = "0.35.2"
+version = "0.43.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3016c47c9b6f7029a9da7cd48af8352327226bba0e955f3c92e2966651365a9"
+checksum = "f4d715cf5fe88e9647f3d17b207b6d060d4a88e7171d4ccb2d2c657dd1d44728"
dependencies = [
- "base64",
+ "base64 0.22.1",
"block",
- "cfg_aliases 0.1.1",
"cocoa",
"core-graphics",
"crossbeam-channel",
+ "dpi",
"dunce",
"gdkx11",
"gtk",
@@ -4836,26 +5318,21 @@ dependencies = [
"jni",
"kuchikiki",
"libc",
- "log",
"ndk",
- "ndk-context",
- "ndk-sys",
"objc",
"objc_id",
"once_cell",
- "raw-window-handle 0.5.2",
- "serde",
- "serde_json",
+ "percent-encoding",
+ "raw-window-handle",
"sha2",
"soup3",
"tao-macros",
"thiserror",
- "url",
"webkit2gtk",
"webkit2gtk-sys",
"webview2-com",
- "windows 0.52.0",
- "windows-implement",
+ "windows 0.58.0",
+ "windows-core 0.58.0",
"windows-version",
"x11-dl",
]
@@ -4881,72 +5358,44 @@ dependencies = [
"pkg-config",
]
-[[package]]
-name = "x11rb"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
-dependencies = [
- "as-raw-xcb-connection",
- "gethostname",
- "libc",
- "libloading 0.8.1",
- "once_cell",
- "rustix 0.38.31",
- "x11rb-protocol",
-]
-
-[[package]]
-name = "x11rb-protocol"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
-
[[package]]
name = "xdg-home"
-version = "1.1.0"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
+checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6"
dependencies = [
"libc",
- "winapi 0.3.9",
+ "windows-sys 0.59.0",
]
[[package]]
name = "zbus"
-version = "3.15.0"
+version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c45d06ae3b0f9ba1fb2671268b975557d8f5a84bb5ec6e43964f87e763d8bca8"
+checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030"
dependencies = [
"async-broadcast",
- "async-executor",
- "async-fs",
- "async-io 1.13.0",
- "async-lock 2.8.0",
"async-process",
"async-recursion",
- "async-task",
"async-trait",
- "blocking",
- "byteorder",
"derivative",
"enumflags2",
- "event-listener 2.5.3",
+ "event-listener",
"futures-core",
"futures-sink",
"futures-util",
"hex",
"nix",
- "once_cell",
"ordered-stream",
"rand 0.8.5",
"serde",
"serde_repr",
"sha1",
"static_assertions",
+ "tokio",
"tracing",
"uds_windows",
- "winapi 0.3.9",
+ "windows-sys 0.52.0",
"xdg-home",
"zbus_macros",
"zbus_names",
@@ -4955,9 +5404,9 @@ dependencies = [
[[package]]
name = "zbus_macros"
-version = "3.15.0"
+version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4a1ba45ed0ad344b85a2bb5a1fe9830aed23d67812ea39a586e7d0136439c7d"
+checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro2",
@@ -4969,9 +5418,9 @@ dependencies = [
[[package]]
name = "zbus_names"
-version = "2.6.0"
+version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9"
+checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c"
dependencies = [
"serde",
"static_assertions",
@@ -4979,24 +5428,136 @@ dependencies = [
]
[[package]]
-name = "zvariant"
-version = "3.15.0"
+name = "zerocopy"
+version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
dependencies = [
"byteorder",
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
+dependencies = [
+ "zeroize_derive",
+]
+
+[[package]]
+name = "zeroize_derive"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "zip"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc5e4288ea4057ae23afc69a4472434a87a2495cafce6632fd1c4ec9f5cf3494"
+dependencies = [
+ "aes",
+ "arbitrary",
+ "bzip2",
+ "constant_time_eq",
+ "crc32fast",
+ "crossbeam-utils",
+ "deflate64",
+ "displaydoc",
+ "flate2",
+ "hmac",
+ "indexmap 2.5.0",
+ "lzma-rs",
+ "memchr",
+ "pbkdf2",
+ "rand 0.8.5",
+ "sha1",
+ "thiserror",
+ "time",
+ "zeroize",
+ "zopfli",
+ "zstd",
+]
+
+[[package]]
+name = "zopfli"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946"
+dependencies = [
+ "bumpalo",
+ "crc32fast",
+ "lockfree-object-pool",
+ "log",
+ "once_cell",
+ "simd-adler32",
+]
+
+[[package]]
+name = "zstd"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9"
+dependencies = [
+ "zstd-safe",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "7.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059"
+dependencies = [
+ "zstd-sys",
+]
+
+[[package]]
+name = "zstd-sys"
+version = "2.0.13+zstd.1.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa"
+dependencies = [
+ "cc",
+ "pkg-config",
+]
+
+[[package]]
+name = "zvariant"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e09e8be97d44eeab994d752f341e67b3b0d80512a8b315a0671d47232ef1b65"
+dependencies = [
+ "endi",
"enumflags2",
- "libc",
"serde",
"static_assertions",
+ "url",
"zvariant_derive",
]
[[package]]
name = "zvariant_derive"
-version = "3.15.0"
+version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
+checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro2",
@@ -5007,9 +5568,9 @@ dependencies = [
[[package]]
name = "zvariant_utils"
-version = "1.0.1"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200"
+checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172"
dependencies = [
"proc-macro2",
"quote",
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
index 7087f316..d6c36241 100644
--- a/src-tauri/Cargo.toml
+++ b/src-tauri/Cargo.toml
@@ -1,21 +1,23 @@
[package]
-name = "steamdepotdownloadergui"
-version = "3.0.0"
-description = "A Tauri App"
+name = "vectum"
+version = "3.0.0-alpha.1"
+description = "Download older versions of Steam games with DepotDownloader"
authors = ["mmvanheusden"]
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[build-dependencies]
-tauri-build = { version = "2.0.0-beta", features = [] }
+tauri-build = { version = "2.0.0-rc.11", features = [] }
[dependencies]
-tauri = { version = "2.0.0-beta", features = [] }
-tauri-plugin-shell = "2.0.0-beta"
-serde_json = "1.0"
-
-[features]
-# this feature is used for production builds or when `devPath` points to the filesystem
-# DO NOT REMOVE!!
-custom-protocol = ["tauri/custom-protocol"]
+tauri = { version = "2.0.0-rc.14", features = [] }
+tauri-plugin-shell = "2.0.0-rc.3"
+tauri-plugin-dialog = "2.0.0-rc.7"
+serde = { version = "1", features = ["derive"] }
+serde_json = "1"
+derive-getters = "0.5.0"
+sha256 = "1.5.0"
+reqwest = { version = "0.12.7" }
+zip = "2.2.0"
+async-process = "2.3.0"
diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json
new file mode 100644
index 00000000..15114ef4
--- /dev/null
+++ b/src-tauri/capabilities/default.json
@@ -0,0 +1,12 @@
+{
+ "$schema": "../gen/schemas/desktop-schema.json",
+ "identifier": "default",
+ "description": "Capability for the main window",
+ "windows": ["main"],
+ "permissions": [
+ "core:default",
+ "shell:allow-open",
+ "dialog:default",
+ "shell:default"
+ ]
+}
\ No newline at end of file
diff --git a/src-tauri/capabilities/main.json b/src-tauri/capabilities/main.json
deleted file mode 100644
index 8f65df64..00000000
--- a/src-tauri/capabilities/main.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "$schema": "./schemas/desktop-schema.json",
- "identifier": "default",
- "description": "Capability for the main window",
- "windows": [
- "main"
- ],
- "permissions": [
- "path:default",
- "event:default",
- "window:default",
- "app:default",
- "resources:default",
- "menu:default",
- "tray:default",
- "shell:allow-open"
- ]
-}
diff --git a/src-tauri/gen/schemas/capabilities.json b/src-tauri/gen/schemas/capabilities.json
deleted file mode 100644
index 0e44dbab..00000000
--- a/src-tauri/gen/schemas/capabilities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"default":{"identifier":"default","description":"Capability for the main window","context":"local","windows":["main"],"permissions":["path:default","event:default","window:default","app:default","resources:default","menu:default","tray:default","shell:allow-open"],"platforms":["linux","macOS","windows","android","iOS"]}}
\ No newline at end of file
diff --git a/src-tauri/gen/schemas/desktop-schema.json b/src-tauri/gen/schemas/desktop-schema.json
deleted file mode 100644
index e42d396a..00000000
--- a/src-tauri/gen/schemas/desktop-schema.json
+++ /dev/null
@@ -1 +0,0 @@
-{schema_str}
\ No newline at end of file
diff --git a/src-tauri/gen/schemas/linux-schema.json b/src-tauri/gen/schemas/linux-schema.json
deleted file mode 100644
index e42d396a..00000000
--- a/src-tauri/gen/schemas/linux-schema.json
+++ /dev/null
@@ -1 +0,0 @@
-{schema_str}
\ No newline at end of file
diff --git a/src-tauri/gen/schemas/plugin-manifests.json b/src-tauri/gen/schemas/plugin-manifests.json
deleted file mode 100644
index 8cef28f2..00000000
--- a/src-tauri/gen/schemas/plugin-manifests.json
+++ /dev/null
@@ -1 +0,0 @@
-{"app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version"]},"permissions":{"allow-app-hide":{"version":null,"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]},"scope":{}},"allow-app-show":{"version":null,"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]},"scope":{}},"allow-name":{"version":null,"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]},"scope":{}},"allow-tauri-version":{"version":null,"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]},"scope":{}},"allow-version":{"version":null,"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]},"scope":{}},"deny-app-hide":{"version":null,"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]},"scope":{}},"deny-app-show":{"version":null,"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]},"scope":{}},"deny-name":{"version":null,"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]},"scope":{}},"deny-tauri-version":{"version":null,"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]},"scope":{}},"deny-version":{"version":null,"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"version":null,"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]},"scope":{}},"allow-emit-to":{"version":null,"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]},"scope":{}},"allow-listen":{"version":null,"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]},"scope":{}},"allow-unlisten":{"version":null,"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]},"scope":{}},"deny-emit":{"version":null,"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]},"scope":{}},"deny-emit-to":{"version":null,"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]},"scope":{}},"deny-listen":{"version":null,"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]},"scope":{}},"deny-unlisten":{"version":null,"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":[]},"permissions":{"allow-append":{"version":null,"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]},"scope":{}},"allow-create-default":{"version":null,"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]},"scope":{}},"allow-get":{"version":null,"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]},"scope":{}},"allow-insert":{"version":null,"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]},"scope":{}},"allow-is-checked":{"version":null,"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]},"scope":{}},"allow-is-enabled":{"version":null,"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]},"scope":{}},"allow-items":{"version":null,"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]},"scope":{}},"allow-new":{"version":null,"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]},"scope":{}},"allow-popup":{"version":null,"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]},"scope":{}},"allow-prepend":{"version":null,"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]},"scope":{}},"allow-remove":{"version":null,"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]},"scope":{}},"allow-remove-at":{"version":null,"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]},"scope":{}},"allow-set-accelerator":{"version":null,"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]},"scope":{}},"allow-set-as-app-menu":{"version":null,"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]},"scope":{}},"allow-set-as-help-menu-for-nsapp":{"version":null,"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]},"scope":{}},"allow-set-as-window-menu":{"version":null,"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]},"scope":{}},"allow-set-as-windows-menu-for-nsapp":{"version":null,"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]},"scope":{}},"allow-set-checked":{"version":null,"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]},"scope":{}},"allow-set-enabled":{"version":null,"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]},"scope":{}},"allow-set-icon":{"version":null,"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]},"scope":{}},"allow-set-text":{"version":null,"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]},"scope":{}},"allow-text":{"version":null,"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]},"scope":{}},"deny-append":{"version":null,"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]},"scope":{}},"deny-create-default":{"version":null,"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]},"scope":{}},"deny-get":{"version":null,"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]},"scope":{}},"deny-insert":{"version":null,"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]},"scope":{}},"deny-is-checked":{"version":null,"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]},"scope":{}},"deny-is-enabled":{"version":null,"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]},"scope":{}},"deny-items":{"version":null,"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]},"scope":{}},"deny-new":{"version":null,"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]},"scope":{}},"deny-popup":{"version":null,"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]},"scope":{}},"deny-prepend":{"version":null,"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]},"scope":{}},"deny-remove":{"version":null,"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]},"scope":{}},"deny-remove-at":{"version":null,"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]},"scope":{}},"deny-set-accelerator":{"version":null,"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]},"scope":{}},"deny-set-as-app-menu":{"version":null,"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]},"scope":{}},"deny-set-as-help-menu-for-nsapp":{"version":null,"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]},"scope":{}},"deny-set-as-window-menu":{"version":null,"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]},"scope":{}},"deny-set-as-windows-menu-for-nsapp":{"version":null,"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]},"scope":{}},"deny-set-checked":{"version":null,"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]},"scope":{}},"deny-set-enabled":{"version":null,"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]},"scope":{}},"deny-set-icon":{"version":null,"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]},"scope":{}},"deny-set-text":{"version":null,"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]},"scope":{}},"deny-text":{"version":null,"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"version":null,"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]},"scope":{}},"allow-dirname":{"version":null,"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]},"scope":{}},"allow-extname":{"version":null,"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]},"scope":{}},"allow-is-absolute":{"version":null,"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]},"scope":{}},"allow-join":{"version":null,"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]},"scope":{}},"allow-normalize":{"version":null,"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]},"scope":{}},"allow-resolve":{"version":null,"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]},"scope":{}},"allow-resolve-directory":{"version":null,"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]},"scope":{}},"deny-basename":{"version":null,"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]},"scope":{}},"deny-dirname":{"version":null,"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]},"scope":{}},"deny-extname":{"version":null,"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]},"scope":{}},"deny-is-absolute":{"version":null,"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]},"scope":{}},"deny-join":{"version":null,"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]},"scope":{}},"deny-normalize":{"version":null,"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]},"scope":{}},"deny-resolve":{"version":null,"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]},"scope":{}},"deny-resolve-directory":{"version":null,"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-close"]},"permissions":{"allow-close":{"version":null,"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]},"scope":{}},"deny-close":{"version":null,"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":null,"permissions":{"allow-execute":{"version":null,"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]},"scope":{}},"allow-kill":{"version":null,"identifier":"allow-kill","description":"Enables the kill command without any pre-configured scope.","commands":{"allow":["kill"],"deny":[]},"scope":{}},"allow-open":{"version":null,"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]},"scope":{}},"allow-stdin-write":{"version":null,"identifier":"allow-stdin-write","description":"Enables the stdin_write command without any pre-configured scope.","commands":{"allow":["stdin_write"],"deny":[]},"scope":{}},"deny-execute":{"version":null,"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]},"scope":{}},"deny-kill":{"version":null,"identifier":"deny-kill","description":"Denies the kill command without any pre-configured scope.","commands":{"allow":[],"deny":["kill"]},"scope":{}},"deny-open":{"version":null,"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]},"scope":{}},"deny-stdin-write":{"version":null,"identifier":"deny-stdin-write","description":"Denies the stdin_write command without any pre-configured scope.","commands":{"allow":[],"deny":["stdin_write"]},"scope":{}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","definitions":{"ShellAllowedArg":{"anyOf":[{"description":"A non-configurable argument that is passed to the command in the order it was specified.","type":"string"},{"additionalProperties":false,"description":"A variable that is set while calling the command from the webview API.","properties":{"validator":{"description":"[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\n[regex]: https://docs.rs/regex/latest/regex/#syntax","type":"string"}},"required":["validator"],"type":"object"}],"description":"A command argument allowed to be executed by the webview API."},"ShellAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellAllowedArg"},"type":"array"}],"description":"A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"A command allowed to be executed by the webview API.","properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellAllowedArgs"}],"description":"The allowed arguments for the command execution."},"command":{"description":"The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"},"sidecar":{"description":"If this command is a sidecar command.","type":"boolean"}},"required":["args","command","name","sidecar"],"title":"Entry","type":"object"}},"tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":[]},"permissions":{"allow-new":{"version":null,"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]},"scope":{}},"allow-set-icon":{"version":null,"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]},"scope":{}},"allow-set-icon-as-template":{"version":null,"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]},"scope":{}},"allow-set-menu":{"version":null,"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]},"scope":{}},"allow-set-show-menu-on-left-click":{"version":null,"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]},"scope":{}},"allow-set-temp-dir-path":{"version":null,"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]},"scope":{}},"allow-set-title":{"version":null,"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]},"scope":{}},"allow-set-tooltip":{"version":null,"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]},"scope":{}},"allow-set-visible":{"version":null,"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]},"scope":{}},"deny-new":{"version":null,"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]},"scope":{}},"deny-set-icon":{"version":null,"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]},"scope":{}},"deny-set-icon-as-template":{"version":null,"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]},"scope":{}},"deny-set-menu":{"version":null,"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]},"scope":{}},"deny-set-show-menu-on-left-click":{"version":null,"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]},"scope":{}},"deny-set-temp-dir-path":{"version":null,"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]},"scope":{}},"deny-set-title":{"version":null,"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]},"scope":{}},"deny-set-tooltip":{"version":null,"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]},"scope":{}},"deny-set-visible":{"version":null,"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-create-webview":{"version":null,"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]},"scope":{}},"allow-create-webview-window":{"version":null,"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]},"scope":{}},"allow-internal-toggle-devtools":{"version":null,"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]},"scope":{}},"allow-print":{"version":null,"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]},"scope":{}},"allow-set-webview-focus":{"version":null,"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]},"scope":{}},"allow-set-webview-position":{"version":null,"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]},"scope":{}},"allow-set-webview-size":{"version":null,"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]},"scope":{}},"allow-webview-close":{"version":null,"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]},"scope":{}},"allow-webview-position":{"version":null,"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]},"scope":{}},"allow-webview-size":{"version":null,"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]},"scope":{}},"deny-create-webview":{"version":null,"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]},"scope":{}},"deny-create-webview-window":{"version":null,"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]},"scope":{}},"deny-internal-toggle-devtools":{"version":null,"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]},"scope":{}},"deny-print":{"version":null,"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]},"scope":{}},"deny-set-webview-focus":{"version":null,"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]},"scope":{}},"deny-set-webview-position":{"version":null,"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]},"scope":{}},"deny-set-webview-size":{"version":null,"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]},"scope":{}},"deny-webview-close":{"version":null,"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]},"scope":{}},"deny-webview-position":{"version":null,"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]},"scope":{}},"deny-webview-size":{"version":null,"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-title","allow-current-monitor","allow-primary-monitor","allow-available-monitors","allow-theme","allow-internal-toggle-maximize","allow-internal-on-mousemove","allow-internal-on-mousedown"]},"permissions":{"allow-available-monitors":{"version":null,"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]},"scope":{}},"allow-center":{"version":null,"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]},"scope":{}},"allow-close":{"version":null,"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]},"scope":{}},"allow-create":{"version":null,"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]},"scope":{}},"allow-current-monitor":{"version":null,"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]},"scope":{}},"allow-destroy":{"version":null,"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]},"scope":{}},"allow-hide":{"version":null,"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]},"scope":{}},"allow-inner-position":{"version":null,"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]},"scope":{}},"allow-inner-size":{"version":null,"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]},"scope":{}},"allow-internal-on-mousedown":{"version":null,"identifier":"allow-internal-on-mousedown","description":"Enables the internal_on_mousedown command without any pre-configured scope.","commands":{"allow":["internal_on_mousedown"],"deny":[]},"scope":{}},"allow-internal-on-mousemove":{"version":null,"identifier":"allow-internal-on-mousemove","description":"Enables the internal_on_mousemove command without any pre-configured scope.","commands":{"allow":["internal_on_mousemove"],"deny":[]},"scope":{}},"allow-internal-toggle-maximize":{"version":null,"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]},"scope":{}},"allow-is-closable":{"version":null,"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]},"scope":{}},"allow-is-decorated":{"version":null,"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]},"scope":{}},"allow-is-focused":{"version":null,"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]},"scope":{}},"allow-is-fullscreen":{"version":null,"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]},"scope":{}},"allow-is-maximizable":{"version":null,"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]},"scope":{}},"allow-is-maximized":{"version":null,"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]},"scope":{}},"allow-is-minimizable":{"version":null,"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]},"scope":{}},"allow-is-minimized":{"version":null,"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]},"scope":{}},"allow-is-resizable":{"version":null,"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]},"scope":{}},"allow-is-visible":{"version":null,"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]},"scope":{}},"allow-maximize":{"version":null,"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]},"scope":{}},"allow-minimize":{"version":null,"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]},"scope":{}},"allow-outer-position":{"version":null,"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]},"scope":{}},"allow-outer-size":{"version":null,"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]},"scope":{}},"allow-primary-monitor":{"version":null,"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]},"scope":{}},"allow-request-user-attention":{"version":null,"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]},"scope":{}},"allow-scale-factor":{"version":null,"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]},"scope":{}},"allow-set-always-on-bottom":{"version":null,"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]},"scope":{}},"allow-set-always-on-top":{"version":null,"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]},"scope":{}},"allow-set-closable":{"version":null,"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]},"scope":{}},"allow-set-content-protected":{"version":null,"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]},"scope":{}},"allow-set-cursor-grab":{"version":null,"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]},"scope":{}},"allow-set-cursor-icon":{"version":null,"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]},"scope":{}},"allow-set-cursor-position":{"version":null,"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]},"scope":{}},"allow-set-cursor-visible":{"version":null,"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]},"scope":{}},"allow-set-decorations":{"version":null,"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]},"scope":{}},"allow-set-effects":{"version":null,"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]},"scope":{}},"allow-set-focus":{"version":null,"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]},"scope":{}},"allow-set-fullscreen":{"version":null,"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]},"scope":{}},"allow-set-icon":{"version":null,"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]},"scope":{}},"allow-set-ignore-cursor-events":{"version":null,"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]},"scope":{}},"allow-set-max-size":{"version":null,"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]},"scope":{}},"allow-set-maximizable":{"version":null,"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]},"scope":{}},"allow-set-min-size":{"version":null,"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]},"scope":{}},"allow-set-minimizable":{"version":null,"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]},"scope":{}},"allow-set-position":{"version":null,"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]},"scope":{}},"allow-set-progress-bar":{"version":null,"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]},"scope":{}},"allow-set-resizable":{"version":null,"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]},"scope":{}},"allow-set-shadow":{"version":null,"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]},"scope":{}},"allow-set-size":{"version":null,"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]},"scope":{}},"allow-set-skip-taskbar":{"version":null,"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]},"scope":{}},"allow-set-title":{"version":null,"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]},"scope":{}},"allow-set-visible-on-all-workspaces":{"version":null,"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]},"scope":{}},"allow-show":{"version":null,"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]},"scope":{}},"allow-start-dragging":{"version":null,"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]},"scope":{}},"allow-theme":{"version":null,"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]},"scope":{}},"allow-title":{"version":null,"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]},"scope":{}},"allow-toggle-maximize":{"version":null,"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]},"scope":{}},"allow-unmaximize":{"version":null,"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]},"scope":{}},"allow-unminimize":{"version":null,"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]},"scope":{}},"deny-available-monitors":{"version":null,"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]},"scope":{}},"deny-center":{"version":null,"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]},"scope":{}},"deny-close":{"version":null,"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]},"scope":{}},"deny-create":{"version":null,"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]},"scope":{}},"deny-current-monitor":{"version":null,"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]},"scope":{}},"deny-destroy":{"version":null,"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]},"scope":{}},"deny-hide":{"version":null,"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]},"scope":{}},"deny-inner-position":{"version":null,"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]},"scope":{}},"deny-inner-size":{"version":null,"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]},"scope":{}},"deny-internal-on-mousedown":{"version":null,"identifier":"deny-internal-on-mousedown","description":"Denies the internal_on_mousedown command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_on_mousedown"]},"scope":{}},"deny-internal-on-mousemove":{"version":null,"identifier":"deny-internal-on-mousemove","description":"Denies the internal_on_mousemove command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_on_mousemove"]},"scope":{}},"deny-internal-toggle-maximize":{"version":null,"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]},"scope":{}},"deny-is-closable":{"version":null,"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]},"scope":{}},"deny-is-decorated":{"version":null,"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]},"scope":{}},"deny-is-focused":{"version":null,"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]},"scope":{}},"deny-is-fullscreen":{"version":null,"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]},"scope":{}},"deny-is-maximizable":{"version":null,"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]},"scope":{}},"deny-is-maximized":{"version":null,"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]},"scope":{}},"deny-is-minimizable":{"version":null,"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]},"scope":{}},"deny-is-minimized":{"version":null,"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]},"scope":{}},"deny-is-resizable":{"version":null,"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]},"scope":{}},"deny-is-visible":{"version":null,"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]},"scope":{}},"deny-maximize":{"version":null,"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]},"scope":{}},"deny-minimize":{"version":null,"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]},"scope":{}},"deny-outer-position":{"version":null,"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]},"scope":{}},"deny-outer-size":{"version":null,"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]},"scope":{}},"deny-primary-monitor":{"version":null,"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]},"scope":{}},"deny-request-user-attention":{"version":null,"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]},"scope":{}},"deny-scale-factor":{"version":null,"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]},"scope":{}},"deny-set-always-on-bottom":{"version":null,"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]},"scope":{}},"deny-set-always-on-top":{"version":null,"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]},"scope":{}},"deny-set-closable":{"version":null,"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]},"scope":{}},"deny-set-content-protected":{"version":null,"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]},"scope":{}},"deny-set-cursor-grab":{"version":null,"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]},"scope":{}},"deny-set-cursor-icon":{"version":null,"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]},"scope":{}},"deny-set-cursor-position":{"version":null,"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]},"scope":{}},"deny-set-cursor-visible":{"version":null,"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]},"scope":{}},"deny-set-decorations":{"version":null,"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]},"scope":{}},"deny-set-effects":{"version":null,"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]},"scope":{}},"deny-set-focus":{"version":null,"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]},"scope":{}},"deny-set-fullscreen":{"version":null,"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]},"scope":{}},"deny-set-icon":{"version":null,"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]},"scope":{}},"deny-set-ignore-cursor-events":{"version":null,"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]},"scope":{}},"deny-set-max-size":{"version":null,"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]},"scope":{}},"deny-set-maximizable":{"version":null,"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]},"scope":{}},"deny-set-min-size":{"version":null,"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]},"scope":{}},"deny-set-minimizable":{"version":null,"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]},"scope":{}},"deny-set-position":{"version":null,"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]},"scope":{}},"deny-set-progress-bar":{"version":null,"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]},"scope":{}},"deny-set-resizable":{"version":null,"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]},"scope":{}},"deny-set-shadow":{"version":null,"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]},"scope":{}},"deny-set-size":{"version":null,"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]},"scope":{}},"deny-set-skip-taskbar":{"version":null,"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]},"scope":{}},"deny-set-title":{"version":null,"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]},"scope":{}},"deny-set-visible-on-all-workspaces":{"version":null,"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]},"scope":{}},"deny-show":{"version":null,"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]},"scope":{}},"deny-start-dragging":{"version":null,"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]},"scope":{}},"deny-theme":{"version":null,"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]},"scope":{}},"deny-title":{"version":null,"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]},"scope":{}},"deny-toggle-maximize":{"version":null,"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]},"scope":{}},"deny-unmaximize":{"version":null,"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]},"scope":{}},"deny-unminimize":{"version":null,"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null}}
\ No newline at end of file
diff --git a/src-tauri/src/depotdownloader.rs b/src-tauri/src/depotdownloader.rs
new file mode 100644
index 00000000..2a670814
--- /dev/null
+++ b/src-tauri/src/depotdownloader.rs
@@ -0,0 +1,77 @@
+use std::fs::File;
+use std::io::ErrorKind::AlreadyExists;
+use std::{fs, io};
+use std::{io::Write, path::Path};
+
+use reqwest;
+use sha256;
+
+pub fn calc_checksum(path: &Path) -> io::Result {
+ let bytes = fs::read(path)?;
+ let hash = sha256::digest(&bytes);
+ Ok(hash)
+}
+
+/// Downloads a file. The file will be saved to the [`filename`] provided.
+pub async fn download_file(url: &str, filename: &Path) -> io::Result<()> {
+ if filename.exists() {
+ println!("DEBUG: Not downloading. File already exists.");
+ return Err(io::Error::from(AlreadyExists));
+ }
+
+ let mut file = File::create(filename)?;
+ let response = reqwest::get(url)
+ .await
+ .expect("Failed to contact internet.");
+
+ let content = response
+ .bytes()
+ .await
+ .expect("Failed to get response content.");
+
+ file.write_all(&content)?;
+ Ok(())
+}
+
+/// Unzips DepotDownloader zips
+pub fn unzip(zip_file: &Path) -> io::Result<()> {
+ let file = File::open(zip_file)?;
+ let mut archive = zip::ZipArchive::new(file)?;
+
+ for i in 0..archive.len() {
+ let mut file = archive.by_index(i)?;
+
+ let outpath = match file.enclosed_name() {
+ Some(path) => path,
+ None => continue
+ };
+
+ println!("Extracted {} from archive.", outpath.display());
+
+ if let Some(p) = outpath.parent() {
+ if !p.exists() {
+ fs::create_dir_all(p)?;
+ }
+ }
+ let mut outfile = File::create(&outpath)?;
+ io::copy(&mut file, &mut outfile)?;
+
+
+ // Copy over permissions from enclosed file to extracted file on UNIX systems.
+ #[cfg(unix)]
+ {
+ use std::os::unix::fs::PermissionsExt;
+
+ // If the mode `file.unix_mode()` is something (not None), copy it over to the extracted file.
+ if let Some(mode) = file.unix_mode() {
+ fs::set_permissions(&outpath, fs::Permissions::from_mode(mode))?;
+ }
+
+ // Set DepotDownloader executable.
+ if outpath.display().to_string() == "DepotDownloader" {
+ fs::set_permissions(&outpath, fs::Permissions::from_mode(0o755))?; // WTF is an octal?
+ }
+ }
+ }
+ Ok(())
+}
diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs
index 96361fbc..4487463d 100644
--- a/src-tauri/src/main.rs
+++ b/src-tauri/src/main.rs
@@ -1,16 +1,125 @@
// Prevents additional console window on Windows in release, DO NOT REMOVE!!
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
-// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
+use std::io;
+use std::path::{Path};
+use std::sync::OnceLock;
+use std::time::Duration;
+
+use tauri::{AppHandle, Emitter};
+
+use crate::terminal::Terminal;
+
+mod steam;
+mod depotdownloader;
+mod terminal;
+
+static DEPOTDOWNLOADER_VERSION: &str = "2.7.1";
+//TODO: arm
+static DEPOTDOWNLOADER_LINUX_URL: &str = "https://github.com/SteamRE/DepotDownloader/releases/download/DepotDownloader_2.7.1/DepotDownloader-linux-x64.zip";
+static DEPOTDOWNLOADER_WIN_URL: &str = "https://github.com/SteamRE/DepotDownloader/releases/download/DepotDownloader_2.7.1/DepotDownloader-windows-x64.zip";
+
+
+// We create this variable now, and quickly populate it in preload_vectum(). Then we later access the data in start_download()
+static TERMINAL: OnceLock> = OnceLock::new();
+
+/// This function is called every time the app is reloaded/started. It quickly populates the [`TERMINAL`] variable with a working terminal.
#[tauri::command]
-fn greet(name: &str) -> String {
- format!("Hello, {}! You've been greeted from Rust!", name)
+async fn preload_vectum(app: AppHandle) {
+ // Only fill this variable once.
+ if TERMINAL.get().is_none() { TERMINAL.set(terminal::get_installed_terminals(true).await).expect("Failed to set available terminals") }
+
+ // Send the default terminal name to the frontend.
+ app.emit("default-terminal", Terminal::pretty_name(&TERMINAL.get().unwrap()[0])).unwrap();
+}
+
+#[tauri::command]
+async fn start_download(steam_download: steam::SteamDownload) {
+ let default_terminal = TERMINAL.get().unwrap();
+ let working_dir = std::env::current_dir().unwrap();
+
+ let terminal_to_use = if steam_download.options().terminal().is_none() { default_terminal.first().unwrap() } else { &Terminal::from_index(&steam_download.options().terminal().unwrap()).unwrap() };
+
+ println!("\n\n---------------------HELLO FROM RUST!---------------------");
+ println!("We received these values from frontend:");
+ println!("\t- Username: {}", steam_download.username().as_ref().unwrap_or(&String::from("Not provided")));
+ println!("\t- Password: {}", steam_download.password().as_ref().unwrap_or(&String::from("Not provided")));
+ println!("\t- App ID: {}", steam_download.app_id());
+ println!("\t- Depot ID: {}", steam_download.depot_id());
+ println!("\t- Manifest ID: {}", steam_download.manifest_id());
+ println!("\t- Output Path: {}", steam_download.output_path());
+ println!("------------------------DEBUG INFORMATION-----------------");
+ println!("\t- Default terminal: {}", Terminal::pretty_name(&default_terminal[0]));
+ println!("\t- Terminal command: {:?}", terminal_to_use.create_command(&steam_download));
+ println!("\t- Working directory: {}", working_dir.display());
+ println!("----------------------------------------------------------");
+
+ terminal_to_use.create_command(&steam_download).spawn().ok();
+}
+
+
+/// Downloads the DepotDownloader zip file from the internet based on the OS.
+#[tauri::command]
+async fn download_depotdownloader() {
+ let url = if std::env::consts::OS == "windows" {
+ DEPOTDOWNLOADER_WIN_URL
+ } else {
+ DEPOTDOWNLOADER_LINUX_URL
+ };
+
+ // Where we store the DepotDownloader zip.
+ let zip_filename = format!("DepotDownloader-v{}-{}.zip", DEPOTDOWNLOADER_VERSION, std::env::consts::OS);
+ let depotdownloader_zip = Path::new(&zip_filename);
+
+ println!("Downloading DepotDownloader for {} to .{}{}", std::env::consts::OS, std::path::MAIN_SEPARATOR, depotdownloader_zip.display());
+
+ match depotdownloader::download_file(url, depotdownloader_zip).await {
+ Err(e) => {
+ if e.kind() == io::ErrorKind::AlreadyExists {
+ println!("DepotDownloader already exists. Skipping download.");
+ return;
+ }
+
+ println!("Failed to download DepotDownloader: {}", e);
+ return;
+ },
+ _ => {}
+ }
+
+ println!("Succesfully downloaded DepotDownloader from {}", url);
+
+ depotdownloader::unzip(depotdownloader_zip).unwrap();
+ println!("Succesfully extracted DepotDownloader zip.");
+}
+
+/// Checks internet connectivity using Google
+#[tauri::command]
+async fn internet_connection() -> bool {
+ let client = reqwest::Client::builder().timeout(Duration::from_secs(5)).build().unwrap();
+
+ client.get("https://connectivitycheck.android.com/generate_204").send().await.is_ok()
+}
+
+
+#[tauri::command]
+async fn get_all_terminals(app: AppHandle) {
+ let terminals = terminal::get_installed_terminals(false).await;
+
+ terminals.iter().for_each(|terminal| {
+ println!("Terminal #{} ({}) is installed!", terminal.index().unwrap(), terminal.pretty_name());
+
+ // Sends: (terminal index aligned with dropdown; total terminals)
+ app.emit("working-terminal", (terminal.index(), Terminal::total())).unwrap();
+ });
}
fn main() {
- tauri::Builder::default()
- .plugin(tauri_plugin_shell::init())
- .invoke_handler(tauri::generate_handler![greet])
- .run(tauri::generate_context!())
- .expect("error while running tauri application");
+ println!();
+ tauri::Builder::default().plugin(tauri_plugin_dialog::init()).plugin(tauri_plugin_shell::init()).invoke_handler(tauri::generate_handler![
+ start_download,
+ download_depotdownloader,
+ internet_connection,
+ preload_vectum,
+ get_all_terminals
+ ]).run(tauri::generate_context!()).expect("error while running tauri application");
}
diff --git a/src-tauri/src/steam.rs b/src-tauri/src/steam.rs
new file mode 100644
index 00000000..2db8c5b8
--- /dev/null
+++ b/src-tauri/src/steam.rs
@@ -0,0 +1,41 @@
+use std::path::PathBuf;
+use derive_getters::Getters;
+use serde::Deserialize;
+
+
+/// Represents the data required to download a Steam depot.
+#[derive(Deserialize, Debug, Getters)]
+pub struct SteamDownload {
+ username: Option,
+ password: Option,
+ app_id: String,
+ depot_id: String,
+ manifest_id: String,
+ options: VectumOptions
+}
+
+#[derive(Debug, Deserialize, Getters)]
+pub struct VectumOptions {
+ terminal: Option,
+ output_directory: Option,
+ directory_name: Option
+}
+
+
+impl SteamDownload {
+ /// If a username or password are not provided, the download is considered anonymous
+ pub fn is_anonymous(&self) -> bool {
+ self.username.is_none() || self.password.is_none()
+ }
+
+ /// The directory where the download should happen
+ pub fn output_path(&self) -> String {
+ let sep = std::path::MAIN_SEPARATOR.to_string();
+ match (&self.options.output_directory, &self.options.directory_name) {
+ (Some(output_dir), Some(dir_name)) => format!("{}{}{}", output_dir.display(), sep, dir_name),
+ (Some(output_dir), None) => format!("{}{}{}", output_dir.display(), sep, &self.manifest_id),
+ (None, Some(dir_name)) => format!(".{}{}", sep, dir_name),
+ (None, None) => format!(".{}{}", sep, &self.manifest_id)
+ }
+ }
+}
\ No newline at end of file
diff --git a/src-tauri/src/terminal.rs b/src-tauri/src/terminal.rs
new file mode 100644
index 00000000..9da8126a
--- /dev/null
+++ b/src-tauri/src/terminal.rs
@@ -0,0 +1,394 @@
+use crate::steam::SteamDownload;
+use async_process::Command;
+use serde::Serialize;
+
+/// Represents a terminal that can be used to run commands.
+/// **Should be in sync with the terminal dropdown in the frontend.**
+#[derive(Debug, Serialize, PartialEq)]
+pub enum Terminal {
+ GNOMETerminal,
+ Alacritty,
+ Konsole,
+ GNOMEConsole,
+ Xfce4Terminal,
+ DeepinTerminal,
+ Terminator,
+ Terminology,
+ Kitty,
+ LXTerminal,
+ Tilix,
+ CoolRetroTerm,
+ XTerm,
+ CMD,
+}
+
+
+impl Terminal {
+ /// Iterates through each terminal
+ pub fn iter() -> impl Iterator- {
+ use self::Terminal::*;
+
+ vec![
+ GNOMETerminal, Alacritty, Konsole, GNOMEConsole, Xfce4Terminal, DeepinTerminal, Terminator, Terminology, Kitty, LXTerminal, Tilix, CoolRetroTerm, XTerm, CMD,
+ ].into_iter()
+ }
+
+ /// Get terminal from index in order of the [`Terminal`] enum
+ pub fn from_index(index: &u8) -> Option {
+ Terminal::iter().nth(*index as usize)
+ }
+
+ /// Get the index of a terminal in the order of the [`Terminal`] enum
+ /// Returns `None` if the terminal is not found.
+ pub fn index(&self) -> Option {
+ Terminal::iter().position(|x| x == *self).map(|x| x as u8)
+ }
+
+
+ /// Get total number of terminals **possible** depending on the OS
+ pub fn total() -> u8 {
+ if cfg!(windows) {
+ return 1;
+ }
+
+ Terminal::iter().count() as u8 - 1 // -1 because cmd is not available on linux
+ }
+
+ /// Get the pretty name of a terminal
+ pub fn pretty_name(&self) -> &str {
+ match self {
+ Terminal::GNOMETerminal => "GNOME Terminal",
+ Terminal::GNOMEConsole => "GNOME Console",
+ Terminal::Konsole => "Konsole",
+ Terminal::Xfce4Terminal => "Xfce Terminal",
+ Terminal::Terminator => "Terminator",
+ Terminal::Terminology => "Terminology",
+ Terminal::XTerm => "XTerm",
+ Terminal::Kitty => "Kitty",
+ Terminal::LXTerminal => "LXTerminal",
+ Terminal::Tilix => "Tilix",
+ Terminal::DeepinTerminal => "Deepin Terminal",
+ Terminal::CoolRetroTerm => "cool-retro-term",
+ Terminal::Alacritty => "Alacritty",
+ Terminal::CMD => "CMD",
+ }
+ }
+
+
+ //region Probing a terminal
+ /// Checks if a [`Terminal`] is installed.
+ /// **See:** [`get_installed_terminals`]
+ pub async fn installed(&self) -> bool {
+ match self {
+ Terminal::CMD => {
+ let mut cmd = Command::new("cmd");
+ cmd.arg("/?").output().await.is_ok()
+ }
+ Terminal::GNOMETerminal => {
+ let mut cmd = Command::new("gnome-terminal");
+ cmd.arg("--version").output().await.is_ok()
+ }
+ Terminal::GNOMEConsole => {
+ let mut cmd = Command::new("kgx");
+ cmd.arg("--version").output().await.is_ok()
+ }
+ Terminal::Konsole => {
+ let mut cmd = Command::new("konsole");
+ cmd.arg("--version").output().await.is_ok()
+ }
+ Terminal::Xfce4Terminal => {
+ let mut cmd = Command::new("xfce4-terminal");
+ cmd.arg("--version").output().await.is_ok()
+ }
+ Terminal::Terminator => {
+ let mut cmd = Command::new("terminator");
+ cmd.arg("--version").output().await.is_ok()
+ }
+ Terminal::Terminology => {
+ let mut cmd = Command::new("terminology");
+ cmd.arg("--version").output().await.is_ok()
+ }
+ Terminal::XTerm => {
+ let mut cmd = Command::new("xterm");
+ cmd.arg("-v").output().await.is_ok()
+ }
+ Terminal::Kitty => {
+ let mut cmd = Command::new("kitty");
+ cmd.arg("--version").output().await.is_ok()
+ }
+ Terminal::LXTerminal => {
+ let mut cmd = Command::new("lxterminal");
+ cmd.arg("--version").output().await.is_ok()
+ }
+ Terminal::Tilix => {
+ let mut cmd = Command::new("tilix");
+ cmd.arg("--version").output().await.is_ok()
+ }
+ Terminal::DeepinTerminal => {
+ let mut cmd = Command::new("deepin-terminal");
+ cmd.arg("--version").output().await.is_ok()
+ }
+ Terminal::CoolRetroTerm => {
+ let mut cmd = Command::new("cool-retro-term");
+ cmd.arg("--version").output().await.is_ok()
+ }
+ Terminal::Alacritty => {
+ let mut cmd = Command::new("alacritty");
+ cmd.arg("--version").output().await.is_ok()
+ }
+ }
+ }
+ //endregion
+
+
+ //region Running a command in the terminal
+ /**
+ Returns a [`Command`] that, when executed should open the terminal and run the command.
+
+
+ ## Commands
+ `{command}` = `{command};echo Command finished with code $?;sleep infinity`
+
+ | Terminal | Command to open terminal |
+ |----------------|---------------------------------------------------------------------------|
+ | CMD | `start cmd.exe /k {command}` |
+ | GNOMETerminal | `gnome-terminal -- /usr/bin/env sh -c {command}` |
+ | GNOMEConsole | `kgx -e /usr/bin/env sh -c {command}` |
+ | Konsole | `konsole -e /usr/bin/env sh -c {command}` |
+ | Xfce4Terminal | `xfce4-terminal -x /usr/bin/env sh -c {command}` |
+ | Terminator | `terminator -T "Downloading depot..." -e {command}` |
+ | Terminology | `terminology -e /usr/bin/env sh -c {command}` |
+ | XTerm | `xterm -hold -T "Downloading depot..." -e /usr/bin/env sh -c {command}` |
+ | Kitty | `kitty /usr/bin/env sh -c {command}` |
+ | LXTerminal | `lxterminal -e /usr/bin/env sh -c {command}` |
+ | Tilix | `tilix -e /usr/bin/env sh -c {command}` |
+ | DeepinTerminal | `deepin-terminal -e /usr/bin/env sh -c {command}` |
+ | CoolRetroTerm | `cool-retro-term -e /usr/bin/env sh -c {command}` |
+ | Alacritty | `alacritty -e /usr/bin/env sh -c {command}` |
+
+ */
+ pub fn create_command(&self, steam_download: &SteamDownload) -> Command {
+ let command = create_depotdownloader_command(steam_download);
+
+ match self {
+ Terminal::CMD => {
+ let mut cmd = Command::new("cmd.exe");
+ cmd.args(&["/c", "start", "PowerShell.exe", "-NoExit", "-Command"]).args(command);
+ cmd
+ }
+ Terminal::GNOMETerminal => {
+ let mut cmd = Command::new("gnome-terminal");
+ cmd.args([
+ "--",
+ "/usr/bin/env",
+ "sh",
+ "-c",
+ ]).args(command);
+ cmd
+ }
+ Terminal::GNOMEConsole => {
+ let mut cmd = Command::new("kgx");
+ cmd.args([
+ "-e",
+ "/usr/bin/env",
+ "sh",
+ "-c"
+ ]).args(command);
+ cmd
+ }
+ Terminal::Konsole => {
+ let mut cmd = Command::new("konsole");
+ cmd.args([
+ "-e",
+ "/usr/bin/env",
+ "sh",
+ "-c",
+ ]).args(command);
+ cmd
+ }
+ Terminal::Xfce4Terminal => {
+ let mut cmd = Command::new("xfce4-terminal");
+ cmd.args([
+ "-x",
+ "/usr/bin/env",
+ "sh",
+ "-c",
+ ]).args(command);
+ cmd
+ }
+ Terminal::Terminator => {
+ let mut cmd = Command::new("terminator");
+ cmd.args([
+ "-T",
+ "Downloading depot...",
+ "-e",
+ ]).args(command);
+ cmd
+ }
+ Terminal::Terminology => {
+ let mut cmd = Command::new("terminology");
+ cmd.args([
+ "-e",
+ "/usr/bin/env",
+ "sh",
+ "-c",
+ ]).args(command);
+ cmd
+ }
+ Terminal::XTerm => {
+ let mut cmd = Command::new("xterm");
+ cmd.args([
+ "-hold",
+ "-T",
+ "Downloading depot...",
+ "-e",
+ "/usr/bin/env",
+ "sh",
+ "-c",
+ ]).args(command);
+ cmd
+ }
+ Terminal::Kitty => {
+ let mut cmd = Command::new("kitty");
+ cmd.args([
+ "/usr/bin/env",
+ "sh",
+ "-c",
+ ]).args(command);
+ cmd
+ }
+ Terminal::LXTerminal => {
+ let mut cmd = Command::new("lxterminal");
+ cmd.args([
+ "-e",
+ "/usr/bin/env",
+ "sh",
+ "-c",
+ ]).args(command);
+ cmd
+ }
+ Terminal::Tilix => {
+ let mut cmd = Command::new("tilix");
+ cmd.args([
+ "-e",
+ "/usr/bin/env",
+ "sh",
+ "-c",
+ ]).args(command);
+ cmd
+ }
+ Terminal::DeepinTerminal => {
+ let mut cmd = Command::new("deepin-terminal");
+ cmd.args([
+ "-e",
+ "/usr/bin/env",
+ "sh",
+ "-c",
+ ]).args(command);
+ cmd
+ }
+ Terminal::CoolRetroTerm => {
+ let mut cmd = Command::new("cool-retro-term");
+ cmd.args([
+ "-e",
+ "/usr/bin/env",
+ "sh",
+ "-c",
+ ]).args(command);
+ cmd
+ }
+ Terminal::Alacritty => {
+ let mut cmd = Command::new("alacritty");
+ cmd.args([
+ "-e",
+ "/usr/bin/env",
+ "sh",
+ "-c",
+ ]).args(command);
+ cmd
+ }
+ }
+ }
+ //endregion
+}
+
+/**
+Checks if terminals are installed by checking if they respond to commands.
+
+## How it works
+Probes a list of popular terminals and checks if they return an error when calling their `--version` or similar command line flag.
+
+## Options
+* `return_immediately`: [`bool`]: Return as soon as one terminal is found.
+
+## Returns
+A vector containing a list of terminals that should work.
+
+## Commands
+| Terminal | Command to check if installed |
+|----------------|-------------------------------|
+| CMD | `cmd /?` |
+| GNOMETerminal | `gnome-terminal --version` |
+| GNOMEConsole | `kgx --version` |
+| Konsole | `konsole --version` |
+| Xfce4Terminal | `xfce4-terminal --version` |
+| Terminator | `terminator --version` |
+| Terminology | `terminology --version` |
+| XTerm | `xterm -v` |
+| Kitty | `kitty --version` |
+| LXTerminal | `lxterminal --version` |
+| Tilix | `tilix --version` |
+| DeepinTerminal | `deepin-terminal --version` |
+| CoolRetroTerm | `cool-retro-term --version` |
+| Alacritty | `alacritty --version` |
+
+ */
+pub async fn get_installed_terminals(return_immediately: bool) -> Vec {
+ #[cfg(windows)]
+ // For Windows, only CMD is available.
+ return vec!(Terminal::CMD);
+
+ let mut available_terminals: Vec = Vec::new();
+
+ for terminal in Terminal::iter() {
+ // Probe terminal. If it doesn't raise an error, it is probably installed.
+ if terminal.installed().await {
+ if return_immediately {
+ return vec![terminal];
+ }
+ available_terminals.push(terminal);
+ }
+ }
+
+ if available_terminals.is_empty() {
+ eprintln!("No terminals were detected. Try installing one.");
+ }
+
+ available_terminals
+}
+
+/// Creates the DepotDownloader command necessary to download the requested manifest.
+fn create_depotdownloader_command(steam_download: &SteamDownload) -> Vec {
+ let output_dir = if cfg!(windows) {
+ // In PowerShell, spaces can be escaped with a backtick.
+ steam_download.output_path().replace(" ", "` ")
+ } else {
+ // In bash, spaces can be escaped with a backslash.
+ steam_download.output_path().replace(" ", "\\ ")
+ };
+
+
+ if cfg!(not(windows)) {
+ if steam_download.is_anonymous() {
+ vec![format!(r#"./DepotDownloader -app {} -depot {} -manifest {} -dir {};echo Done!;sleep infinity"#, steam_download.app_id(), steam_download.depot_id(), steam_download.manifest_id(), output_dir)]
+ } else {
+ vec![format!(r#"./DepotDownloader -username {} -password {} -app {} -depot {} -manifest {} -dir {};echo Done!;sleep infinity"#, steam_download.username().clone().unwrap(), steam_download.password().clone().unwrap(), steam_download.app_id(), steam_download.depot_id(), steam_download.manifest_id(), output_dir)]
+ }
+ } else {
+ if steam_download.is_anonymous() {
+ vec![format!(r#".\DepotDownloader.exe -app {} -depot {} -manifest {} -dir {}"#, steam_download.app_id(), steam_download.depot_id(), steam_download.manifest_id(), output_dir)]
+ } else {
+ vec![format!(r#".\DepotDownloader.exe -username {} -password {} -app {} -depot {} -manifest {} -dir {}"#, steam_download.username().clone().unwrap(), steam_download.password().clone().unwrap(), steam_download.app_id(), steam_download.depot_id(), steam_download.manifest_id(), output_dir)]
+ }
+ }
+}
\ No newline at end of file
diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
index 776c3cb7..b3c7b608 100644
--- a/src-tauri/tauri.conf.json
+++ b/src-tauri/tauri.conf.json
@@ -1,17 +1,21 @@
{
"productName": "SteamDepotDownloaderGUI",
- "version": "3.0.0",
- "identifier": "net.00pium.depotdownloader",
+ "version": "3.0.0-alpha.1",
+ "identifier": "net.oopium.depotdownloader",
"build": {
- "frontendDist": "../src"
+ "beforeDevCommand": "pnpm dev",
+ "devUrl": "http://localhost:1420",
+ "beforeBuildCommand": "pnpm build",
+ "frontendDist": "../dist"
},
"app": {
"withGlobalTauri": true,
"windows": [
{
- "title": "steamdepotdownloadergui",
- "width": 800,
- "height": 600
+ "title": "SteamDepotDownloaderGUI",
+ "width": 445,
+ "height": 650,
+ "resizable": false
}
],
"security": {
diff --git a/src/assets/Hubot-Sans.woff2 b/src/assets/Hubot-Sans.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..c8281213136fda52ff9d74167f5be12558cb74b5
GIT binary patch
literal 170164
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