From cb3a22025446e42ade1bd0171402c6aa7fa650f6 Mon Sep 17 00:00:00 2001 From: Maarten van Heusden <50550545+mmvanheusden@users.noreply.github.com> Date: Mon, 19 Feb 2024 14:49:39 +0100 Subject: [PATCH 1/8] chore: empty out repository --- .github/workflows/build.yml | 45 - .github/workflows/github-repo-stats.yml | 19 - Hubot-Sans.woff2 | Bin 170164 -> 0 bytes downloader.js | 358 --- electron-builder.yml | 33 - index.html | 270 -- main.js | 82 - package-lock.json | 3809 ----------------------- package.json | 41 - package.sh | 25 - style.css | 68 - utils.js | 391 --- 12 files changed, 5141 deletions(-) delete mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/github-repo-stats.yml delete mode 100644 Hubot-Sans.woff2 delete mode 100644 downloader.js delete mode 100644 electron-builder.yml delete mode 100644 index.html delete mode 100644 main.js delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100755 package.sh delete mode 100644 style.css delete mode 100644 utils.js diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index e22ee56c..00000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,45 +0,0 @@ -on: - push: - branches: - - master - pull_request: - workflow_dispatch: - -jobs: - build: - runs-on: macos-latest - steps: - - name: Check out repositoty - uses: actions/checkout@v3 - - - name: Set up nodejs - uses: actions/setup-node@v3 - with: - node-version: 18 - - - name: Set up npm project - run: npm install - - - name: Build project - run: npm run buildall - - - name: Move x64 exe - run: cp ./dist/SteamDepotDownloaderGUI*.exe ./SteamDepotDownloaderGUI-${{ github.run_number }}.exe - - - name: Move x64 AppImage - run: cp `ls -d1 dist/* | grep -E "SteamDepotDownloaderGUI-[0-9]+\.[0-9]+\.[0-9]+\.AppImage"` ./SteamDepotDownloaderGUI-${{ github.run_number }}.AppImage - - - name: Move x64 zip - run: cp `ls -d1 dist/* | grep -E "steamdepotdownloadergui-[0-9]+\.[0-9]+\.[0-9]+\.zip"` ./SteamDepotDownloaderGUI-${{ github.run_number }}.zip - - - name: Move arm64 AppImage - run: cp `ls -d1 dist/* | grep -E "SteamDepotDownloaderGUI-[0-9]+\.[0-9]+\.[0-9]+\-arm64.AppImage"` ./SteamDepotDownloaderGUI-${{ github.run_number }}.AppImage - - - name: Move arm64 zip - run: cp `ls -d1 dist/* | grep -E "steamdepotdownloadergui-[0-9]+\.[0-9]+\.[0-9]+\-arm64.zip"` ./SteamDepotDownloaderGUI-${{ github.run_number }}-arm64.zip - - - name: Upload artifacts - uses: actions/upload-artifact@v3 - with: - name: SteamDepotDownloaderGUI-${{ github.run_number }} - path: SteamDepotDownloaderGUI-${{ github.run_number }}*.* diff --git a/.github/workflows/github-repo-stats.yml b/.github/workflows/github-repo-stats.yml deleted file mode 100644 index 8946b8c7..00000000 --- a/.github/workflows/github-repo-stats.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: github-repo-stats - -on: - schedule: - # Run this once per day, towards the end of the day for keeping the most - # recent data point most meaningful (hours are interpreted in UTC). - - cron: "0 23 * * *" - workflow_dispatch: # Allow for running this manually. - -jobs: - j1: - name: github-repo-stats - runs-on: ubuntu-latest - steps: - - name: run-ghrs - # Use latest release. - uses: jgehrcke/github-repo-stats@v1.4.1 # Don't use latest release for security reasons (what if the workflow gets taken over by a malicious party) - with: - ghtoken: ${{ secrets.ghrs_github_api_token }} diff --git a/Hubot-Sans.woff2 b/Hubot-Sans.woff2 deleted file mode 100644 index c8281213136fda52ff9d74167f5be12558cb74b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170164 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 ZG(Giu+waHE=KLP3?{_}_7ii^D008U2F!ule diff --git a/downloader.js b/downloader.js deleted file mode 100644 index 1921df73..00000000 --- a/downloader.js +++ /dev/null @@ -1,358 +0,0 @@ -// Uses a prebuild binary of https://github.com/SteamRE/DepotDownloader -// License can be found at https://github.com/SteamRE/DepotDownloader/blob/master/LICENSE -const {ipcRenderer, shell} = require("electron") -const { - preDownloadCheck, - download, - runCommand, - removeDir, - removeFile, - unzip, - forceTerminals, - generateRunScript, - createCommandWithTerminal, - platformpath -} = require("./utils") -const electron = require("electron") -const {sep} = require("path") - -// Initializes the variable that holds the path to the specified download location -let exportedFile = "" -let ready = true -let app_version - -const DOTNET_DOWNLOAD_URL = "https://github.com/SteamRE/DepotDownloader/releases/download/DepotDownloader_2.5.0/depotdownloader-2.5.0.zip" // the url to the depotdownloader zip -const DOTNET_DIR = "depotdownloader" // folder where zip is extracted -const DOTNET_ZIP_FILE = DOTNET_DOWNLOAD_URL.split("/").pop() // the file that is being downloaded. - -function submitForm() { - // Check if the form is filled in and if dotnet is installed - preDownloadCheck().then(async function () { - //console.log(terminal[1][0]) - document.getElementById("dotnetwarning").hidden = true - document.getElementById("dotnetwarning2").hidden = true - document.getElementById("emptywarning").hidden = true - console.info("dotnet found in PATH") - // create variables for the form values - const username = document.getElementById("username").value - const password = document.getElementById("password").value - const appid = document.getElementById("appid").value - const depotid = document.getElementById("depotid").value - const manifestid = document.getElementById("manifestid").value - const terminal_dropdown = document.getElementById("terminal-dropdown").selectedIndex - const os_dropdown = document.getElementById("os-dropdown").selectedIndex - const foldername_element = document.getElementById("folder-name-custom-input") - - - // Remove the old depotdownloader directory if there are any - await removeDir("depotdownloader") - - // Download a prebuild DepotDownloader binary, so it doesn't have to be included in the source code - await download(DOTNET_DOWNLOAD_URL) - - // Unzip the DepotDownloader binary - await unzip(DOTNET_ZIP_FILE, DOTNET_DIR) - - // Clean up the old files - await removeFile(DOTNET_ZIP_FILE) - - // Generate the run script (run.sh for linux, or run.bat for windows). - await generateRunScript(username, password, appid, depotid, manifestid, foldername_element, exportedFile) - - let terminal - let os - if (terminal_dropdown === 11) { - terminal = "auto" - } else { - terminal = terminal_dropdown - } - if (os_dropdown === 4) { - os = "auto" - } else { - os = os_dropdown - } - let command - if (process.platform.includes("linux")) { - // if the OS is linux, run the sh file with the chosen terminal - command = await createCommandWithTerminal(`sh ${platformpath().replaceAll(" ", "\\ ")}${sep}run.sh`, terminal, os) - } else if (process.platform.includes("win")) { - // if the OS is windows, just run the batch file - command = await createCommandWithTerminal(`"${platformpath()}${sep}run.bat"`, terminal, os) - } else if (process.platform.includes("darwin")) { - //macOS - } - - // Run the final command - if (document.getElementById("os-dropdown").selectedIndex !== 3) await console.debug("Command issued:\n--------\n" + command) - await runCommand(command) - }).catch(function (error) { - if (error === "noDotnet") { - // if dotnet is not found, show the dotnet warning - document.getElementById("dotnetwarning2").hidden = true - document.getElementById("emptywarning").hidden = true - document.getElementById("dotnetwarning").hidden = false - } else if (error === "emptyField") { - // if a required field is empty, show the empty field warning - document.getElementById("dotnetwarning2").hidden = true - document.getElementById("dotnetwarning").hidden = true - document.getElementById("emptywarning").hidden = false - } - }) -} - -// Combines all buttons that are supposed to open an external URL into one big function. -function openRelevantPage(target) { - const electron = require("electron") - const os = process.platform.toString() - /* eslint-disable indent */ - // why are you not indenting nicely eslint? - switch (target) { - case "dotnet": - document.getElementById("dotnetwarning").hidden = true - document.getElementById("dotnetwarning2").hidden = false - if (os.includes("win")) { - console.debug("Opened .NET download page for " + os.charAt(0).toUpperCase() + os.slice(1)) - void electron.shell.openExternal("https://aka.ms/dotnet/6.0/dotnet-sdk-win-x64.exe") - } - if (os.includes("linux")) { - const electron = require("electron") - console.debug("Opened .NET download page for " + os.charAt(0).toUpperCase() + os.slice(1)) - void electron.shell.openExternal("https://docs.microsoft.com/en-us/dotnet/core/install/linux") - } - if (os.includes("darwin")) { - console.debug("Opened .NET download page for" + os) - //TODO: Apple Silicon(ARM64) URL - void electron.shell.openExternal("https://aka.ms/dotnet/6.0/dotnet-sdk-osx-x64.pkg") - } - break - case "issues": - console.debug("Opened GitHub issues page") - void electron.shell.openExternal("https://github.com/mmvanheusden/SteamDepotDownloaderGUI/issues/new") - break - case "steamdb": - console.debug("Opened SteamDB instant search page") - void electron.shell.openExternal("https://steamdb.info/instantsearch/") - break - case "donate": - console.debug("Opened donation page") - void electron.shell.openExternal("https://liberapay.com/barbapapa/") - break - case "instructions": - console.debug("Opened instructions page") - void electron.shell.openExternal("https://github.com/mmvanheusden/SteamDepotDownloaderGUI/#how-to-use") - break - default: - return - } - /* eslint-enable indent */ -} - -// Opens the chosen location where the game will be downloaded to -function checkPath() { - toggleFormAccessibility(false) - shell.openPath(exportedFile).then(() => { - console.log("Opened " + exportedFile + " in file explorer.") - }) -} - -/** - * Fills the values for default os - * Runs when the app is fully loaded. - */ -function fillDefaultValues() { - // [0]: Windows, [1]: macOS [2]: Linux [3]: manual - if (process.platform.toString().includes("linux")) { - document.getElementById("default-os").innerText = "Linux" - } else if (process.platform.toString().includes("win")) { - document.getElementById("default-os").innerText = "Windows" - } else if (process.platform.toString().includes("darwin")) { - document.getElementById("default-os").innerText = "macOS" - } -} - - -/** - * Validates the choice of the OS dropdown. - * If the choice is 2 (Linux), enable the terminal selection dropdown. - * If the choice is not 2 (Linux), disable the terminal selection dropdown. - * If the choice is 4 (manual), enable the terminal selection dropdown. - * If the choice is not 4 (manual), disable the terminal selection dropdown. - */ -function validateChoice() { - // [0]: Windows, [1]: macOS [2]: Linux [3]: manual - const os_dropdown = document.getElementById("os-dropdown") - const terminal_dropdown = document.getElementById("terminal-dropdown") - // if the choice = 2, enable the terminal selection dropdown. - if (os_dropdown.selectedIndex === (2 || 3)) { - terminal_dropdown.disabled = false - } else { - terminal_dropdown.disabled = true - terminal_dropdown.selectedIndex = 11 - } - if (os_dropdown.selectedIndex === 4) if (process.platform.includes("linux")) terminal_dropdown.disabled = false -} - -/** - * Enable or disable the form. - * @param disable Enable or disable the form. - * - * * true => disable everything - * - * * false => enable everything - */ -function toggleFormAccessibility(disable) { - document.getElementById("username").disabled = disable - document.getElementById("theform").disabled = disable - document.getElementById("password").disabled = disable - document.getElementById("appid").disabled = disable - document.getElementById("depotid").disabled = disable - document.getElementById("manifestid").disabled = disable - document.getElementById("os-dropdown").disabled = disable - - // if the OS dropdown value was 2 (Linux), don't disable the Terminal dropdown. - document.getElementById("terminal-dropdown").disabled = (((document.getElementById("os-dropdown").selectedIndex !== 2))) - - document.getElementById("pickpath").ariaDisabled = disable - document.getElementById("pickpath").disabled = disable - document.getElementById("downloadbtn").ariaDisabled = disable - document.getElementById("downloadbtn").disabled = disable - document.getElementById("settings-button").disabled = disable - document.getElementById("downloadbtn").classList.replace(((disable) ? "btn-primary" : "btn-disabled"), ((!disable) ? "btn-primary" : "btn-disabled")) -} - - -function setTheme(theme) { - document.getElementById("theme-auto").ariaSelected = (theme === "auto").toString() - document.getElementById("theme-light").ariaSelected = (theme === "light").toString() - document.getElementById("theme-dark").ariaSelected = (theme === "dark").toString() -} - -// main.js sends a ready message if the page is loaded in. This will be received here. -ipcRenderer.on("ready", async () => { - if (!ready) return - - - await toggleFormAccessibility(true) // disables the form, while loading - document.getElementById("loader").hidden = false - - - console.debug("🐰🐰🐰🐰") - - - await fillDefaultValues() // Set the default values based on OS - - const terminals = await forceTerminals() - /* forceTerminals() returns two values: - [bol, list, list] - 1: true/false. if true, there are terminals found. if false none are, or not on linux - 2: a list of available terminals with their associated number in the terminal dropdown index. - 3: a list of available terminals with their associated name in the terminal dropdown. - */ - if (terminals[0]) { - console.log(`${terminals[1].length} terminals found in PATH.`) - document.getElementById("terminals-found").innerText = `${terminals[1].length.toString()} / ${document.getElementById("terminal-dropdown").length - 1}` - document.getElementById("default-terminal").innerText = terminals[2][0] - - } else { - console.log("No terminals found in PATH. Continuing with default values") // when no terminals are found on the system, or when linux is not used. - } - - await toggleFormAccessibility(false) //enable the form again - - await validateChoice() // updates the 'enabled/disabled' html value of the terminal dropdown. - - console.debug(`DEBUGGING INFORMATION: --- -OS: ${process.platform} -Version: ${app_version} --- -Working directory locating methods: -process.cwd(): ${process.cwd()} -__dirname: ${__dirname} -PORTABLE_EXECUTABLE_DIR: ${process.env.PORTABLE_EXECUTABLE_DIR} --- -platformpath(): ${platformpath()} - -`) - document.getElementById("loader").hidden = true - ready = false -}) - -// Add event listeners to the buttons -window.addEventListener("DOMContentLoaded", () => { - document.getElementById("dotnetalertbtn").addEventListener("click", () => openRelevantPage("dotnet")) - document.getElementById("smbtn1").addEventListener("click", () => openRelevantPage("issues")) - document.getElementById("smbtn2").addEventListener("click", () => openRelevantPage("steamdb")) - document.getElementById("smbtn3").addEventListener("click", () => openRelevantPage("donate")) - document.getElementById("smbtn4").addEventListener("click", () => openRelevantPage("instructions")) - document.getElementById("pickpath").addEventListener("click", () => { - if (document.getElementById("pickpath").disabled === false) ipcRenderer.send("selectpath") - }) - document.getElementById("checkpath").addEventListener("click", () => { - if (document.getElementById("checkpath").disabled === false) checkPath() - }) - document.getElementById("os-dropdown").addEventListener("input", validateChoice) - document.getElementById("downloadbtn").addEventListener("click", () => { - if (document.getElementById("downloadbtn").disabled === false) submitForm() - }) - document.getElementById("settings-button").addEventListener("click", () => { - if (document.getElementById("settings-button").disabled === false) { - // show the modal. This is done by setting the display to block. - document.getElementById("settings-surrounding").style.display = "block" - } - }) - document.getElementById("settings-surrounding").addEventListener("click", (event) => { - if (event.target === document.getElementById("settings-surrounding")) { - document.getElementById("settings-surrounding").style.display = "none" - } - }) - document.getElementById("theme-auto").addEventListener("click", () => { - setTheme("auto") - document.getElementById("theme").setAttribute("data-color-mode", "auto") - }) - document.getElementById("theme-light").addEventListener("click", () => { - setTheme("light") - document.getElementById("theme").setAttribute("data-color-mode", "light") - }) - document.getElementById("theme-dark").addEventListener("click", () => { - setTheme("dark") - document.getElementById("theme").setAttribute("data-color-mode", "dark") - }) - document.getElementById("folder-name-appid").addEventListener("click", () => { - document.getElementById("folder-name-custom").ariaSelected = false - document.getElementById("folder-name-appid").ariaSelected = true - document.getElementById("folder-name-custom-input").hidden = true - document.getElementById("folder-name-custom-input").value = "" - }) - document.getElementById("folder-name-custom").addEventListener("click", () => { - document.getElementById("folder-name-appid").ariaSelected = false - document.getElementById("folder-name-custom").ariaSelected = true - document.getElementById("folder-name-custom-input").hidden = false - }) - document.getElementById("version-info").addEventListener("click", () => { - //todo: update checker - electron.shell.openExternal(`https://github.com/mmvanheusden/SteamDepotDownloaderGUI/releases/v${app_version}`) - }) -}) - -// make sure devtools open in external window. -window.addEventListener("keydown", (e) => { - if (e.key === "F12" || (e.ctrlKey && e.shiftKey && e.key === "I")) { - e.preventDefault() - ipcRenderer.send("open-devtools") - } -}) - -ipcRenderer.on("file", (event, file) => { - console.log("path selected by user: " + file) - document.getElementById("checkpath").ariaDisabled = false // Makes the check button active - document.getElementById("checkpath").disabled = false // Makes the check button active - exportedFile = file.toString() -}) - -// receive the version from main.js -ipcRenderer.on("version", (event, version) => { - console.log("version: " + version) - document.getElementById("version-info").innerText = `v${version}` - app_version = version.toString() -}) diff --git a/electron-builder.yml b/electron-builder.yml deleted file mode 100644 index 2a713cf3..00000000 --- a/electron-builder.yml +++ /dev/null @@ -1,33 +0,0 @@ -appId: rocks.maarten.depotdownloader -productName: SteamDepotDownloaderGUI -copyright: Copyright © mmvanheusden | This work is free. Licensed under the GNU GPLv3 Public License - -linux: - executableName: SteamDepotDownloaderGUI - category: Utility;FileTools; - maintainer: mmvanheusden - target: - - target: AppImage - arch: - - x64 - - arm64 - - target: zip - arch: - - x64 - - arm64 - -# lmao mac building only works on mac -mac: - category: public.app-category.utilities - target: - - target: dmg - arch: - - x64 - -win: - legalTrademarks: Copyright © mmvanheusden | This work is free. Licensed under the GNU GPLv3 Public License - target: - - target: portable - arch: - - x64 - - arm64 \ No newline at end of file diff --git a/index.html b/index.html deleted file mode 100644 index 366ec39b..00000000 --- a/index.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - - - SteamDepotDownloaderGUI - - - - -
- - - - - -
Steam Depot Downloader
- -
-
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- -
-
- Set location -
- -
- Open location -
- - Loading - - -
-
- - -
-
- - -
-
- -
- - - - Help -
- -
- - SteamDB -
- -
- - - - Donate -
- -
- - - - Instructions -
-
-
-
- -

Settings

-
-
-
-
- -
-
-
- - - -
-
-
-
-
-
- -
-
-
- - found: none -
default: none -
-
-
-
-
-
- -
-
-
- - default: none -
-
-
-
-
-
- -
-
-
- - -
-
- -
-
-
-
-
- - diff --git a/main.js b/main.js deleted file mode 100644 index 4d8bdcc9..00000000 --- a/main.js +++ /dev/null @@ -1,82 +0,0 @@ -const {app, BrowserWindow, dialog, ipcMain} = require("electron") -const {platformpath} = require("./utils") -require("v8-compile-cache") - -let mainWindow -const createWindow = () => { - // Create the browser window. - mainWindow = new BrowserWindow({ - autoHideMenuBar: true, - resizable: false, - width: 445, - height: 650, - useContentSize: true, - maximizable: false, - webPreferences: { - nodeIntegration: true, contextIsolation: false - } - }) - - // and load the index.html of the app. - mainWindow.loadFile("index.html") - - // @formatter:off - // Open the DevTools for debugging, only if not in production. This is removed for release by the build script (package.sh) because it's unreliable. - // disable formatting so the line always stays the same so sed can find it - // eslint-disable-next-line no-undef - if (!app.isPackaged) mainWindow.webContents.openDevTools({mode: "detach"}) - // @formatter:on -} - -// This method will be called when Electron has finished -// initialization and is ready to create browser windows. -// Some APIs can only be used after this event occurs. -app.whenReady().then(() => { - createWindow() - - app.on("activate", () => { - // On macOS it's common to re-create a window in the app when the - // dock icon is clicked and there are no other windows open. - if (BrowserWindow.getAllWindows().length === 0) createWindow() - }) - -}) - -// If the page is fully loaded in, send a sign. -app.on("web-contents-created", (event, contents) => { - contents.on("dom-ready", () => { - contents.send("ready") - contents.send("version", app.getVersion()) // send the version to the renderer - }) -}) - -// Quit when all windows are closed, except on macOS. There, it's common -// for applications and their menu bar to stay active until the user quits -// explicitly with Cmd + Q. -app.on("window-all-closed", () => { - if (process.platform !== "darwin") app.quit() -}) - - -ipcMain.on("selectpath", (event) => { - dialog.showOpenDialog(mainWindow, { - // Specifying the Directory Selector Property - properties: ["openDirectory"], - title: "Select the path where the game will be downloaded", - defaultPath: platformpath(), - buttonLabel: "Select" - }).then(file => { - //console.debug("Has path selection succeeded: " + ((file.canceled) ? "NO" : "YES; see below")) --- doesn't log to the dev console TODO - if (!file.canceled) { - const filepath = file.filePaths[0].toString() - // console.debug("Path selected is " + filepath) --- same thing - event.reply("file", filepath) - } - }).catch(err => { - console.log(err) - }) -}) - -ipcMain.on("open-devtools", () => { - mainWindow.webContents.openDevTools({mode: "detach"}) -}) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 8dc0921f..00000000 --- a/package-lock.json +++ /dev/null @@ -1,3809 +0,0 @@ -{ - "name": "steamdepotdownloadergui", - "version": "2.4.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "steamdepotdownloadergui", - "version": "2.4.1", - "license": "GPL-3.0", - "dependencies": { - "follow-redirects": "^1.15.5", - "v8-compile-cache": "^2.4.0" - }, - "devDependencies": { - "electron": "^28.2.2", - "electron-builder": "^24.9.1", - "eslint": "^8.56.0" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@develar/schema-utils": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", - "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", - "dev": true, - "dependencies": { - "ajv": "^6.12.0", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/@electron/asar": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.8.tgz", - "integrity": "sha512-cmskk5M06ewHMZAplSiF4AlME3IrnnZhKnWbtwKVLRkdJkKyUVjMLhDIiPIx/+6zQWVlKX/LtmK9xDme7540Sg==", - "dev": true, - "dependencies": { - "commander": "^5.0.0", - "glob": "^7.1.6", - "minimatch": "^3.0.4" - }, - "bin": { - "asar": "bin/asar.js" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/@electron/asar/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@electron/asar/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@electron/get": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.2.tgz", - "integrity": "sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "env-paths": "^2.2.0", - "fs-extra": "^8.1.0", - "got": "^11.8.5", - "progress": "^2.0.3", - "semver": "^6.2.0", - "sumchecker": "^3.0.1" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "global-agent": "^3.0.0" - } - }, - "node_modules/@electron/notarize": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.1.0.tgz", - "integrity": "sha512-Q02xem1D0sg4v437xHgmBLxI2iz/fc0D4K7fiVWHa/AnW8o7D751xyKNXgziA6HrTOme9ul1JfWN5ark8WH1xA==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^9.0.1", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@electron/notarize/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@electron/notarize/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@electron/notarize/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@electron/osx-sign": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz", - "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", - "dev": true, - "dependencies": { - "compare-version": "^0.1.2", - "debug": "^4.3.4", - "fs-extra": "^10.0.0", - "isbinaryfile": "^4.0.8", - "minimist": "^1.2.6", - "plist": "^3.0.5" - }, - "bin": { - "electron-osx-flat": "bin/electron-osx-flat.js", - "electron-osx-sign": "bin/electron-osx-sign.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@electron/osx-sign/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@electron/osx-sign/node_modules/isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/@electron/osx-sign/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@electron/osx-sign/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@electron/universal": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.4.1.tgz", - "integrity": "sha512-lE/U3UNw1YHuowNbTmKNs9UlS3En3cPgwM5MI+agIgr/B1hSze9NdOP0qn7boZaI9Lph8IDv3/24g9IxnJP7aQ==", - "dev": true, - "dependencies": { - "@electron/asar": "^3.2.1", - "@malept/cross-spawn-promise": "^1.1.0", - "debug": "^4.3.1", - "dir-compare": "^3.0.0", - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4", - "plist": "^3.0.4" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/@electron/universal/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@electron/universal/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@electron/universal/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@electron/universal/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@electron/universal/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", - "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "node_modules/@malept/cross-spawn-promise": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", - "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/malept" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" - } - ], - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@malept/flatpak-bundler": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", - "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^9.0.0", - "lodash": "^4.17.15", - "tmp-promise": "^3.0.2" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@malept/flatpak-bundler/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@malept/flatpak-bundler/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "dev": true, - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.17.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.12.tgz", - "integrity": "sha512-d6xjC9fJ/nSnfDeU0AMDsaJyb1iHsqCSOdi84w4u+SlN/UgQdY5tRhpMzaFYsI4mnpvgTivEaQd0yOUhAtOnEQ==", - "dev": true - }, - "node_modules/@types/plist": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.5.tgz", - "integrity": "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*", - "xmlbuilder": ">=11.0.1" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/verror": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.9.tgz", - "integrity": "sha512-MLx9Z+9lGzwEuW16ubGeNkpBDE84RpB/NyGgg6z2BTpWzKkGU451cAY3UkUzZEp72RHF585oJ3V8JVNqIplcAQ==", - "dev": true, - "optional": true - }, - "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/7zip-bin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz", - "integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/app-builder-bin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz", - "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", - "dev": true - }, - "node_modules/app-builder-lib": { - "version": "24.9.1", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.9.1.tgz", - "integrity": "sha512-Q1nYxZcio4r+W72cnIRVYofEAyjBd3mG47o+zms8HlD51zWtA/YxJb01Jei5F+jkWhge/PTQK+uldsPh6d0/4g==", - "dev": true, - "dependencies": { - "@develar/schema-utils": "~2.6.5", - "@electron/notarize": "2.1.0", - "@electron/osx-sign": "1.0.5", - "@electron/universal": "1.4.1", - "@malept/flatpak-bundler": "^0.4.0", - "@types/fs-extra": "9.0.13", - "7zip-bin": "~5.2.0", - "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.9", - "builder-util": "24.8.1", - "builder-util-runtime": "9.2.3", - "chromium-pickle-js": "^0.2.0", - "debug": "^4.3.4", - "ejs": "^3.1.8", - "electron-publish": "24.8.1", - "form-data": "^4.0.0", - "fs-extra": "^10.1.0", - "hosted-git-info": "^4.1.0", - "is-ci": "^3.0.0", - "isbinaryfile": "^5.0.0", - "js-yaml": "^4.1.0", - "lazy-val": "^1.0.5", - "minimatch": "^5.1.1", - "read-config-file": "6.3.2", - "sanitize-filename": "^1.6.3", - "semver": "^7.3.8", - "tar": "^6.1.12", - "temp-file": "^3.4.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/app-builder-lib/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/app-builder-lib/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/app-builder-lib/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/app-builder-lib/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true - }, - "node_modules/async-exit-hook": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", - "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/bluebird-lst": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", - "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5" - } - }, - "node_modules/boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "dev": true, - "optional": true - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", - "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", - "dev": true, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/builder-util": { - "version": "24.8.1", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.8.1.tgz", - "integrity": "sha512-ibmQ4BnnqCnJTNrdmdNlnhF48kfqhNzSeqFMXHLIl+o9/yhn6QfOaVrloZ9YUu3m0k3rexvlT5wcki6LWpjTZw==", - "dev": true, - "dependencies": { - "@types/debug": "^4.1.6", - "7zip-bin": "~5.2.0", - "app-builder-bin": "4.0.0", - "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.2.3", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "debug": "^4.3.4", - "fs-extra": "^10.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-ci": "^3.0.0", - "js-yaml": "^4.1.0", - "source-map-support": "^0.5.19", - "stat-mode": "^1.0.0", - "temp-file": "^3.4.0" - } - }, - "node_modules/builder-util-runtime": { - "version": "9.2.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.3.tgz", - "integrity": "sha512-FGhkqXdFFZ5dNC4C+yuQB9ak311rpGAw+/ASz8ZdxwODCv1GGMWgLDeofRkdi0F3VCHQEWy/aXcJQozx2nOPiw==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "sax": "^1.2.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/builder-util/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/builder-util/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/builder-util/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chromium-pickle-js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", - "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", - "dev": true - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "optional": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/compare-version": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", - "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/config-file-ts": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.4.tgz", - "integrity": "sha512-cKSW0BfrSaAUnxpgvpXPLaaW/umg4bqg4k3GO1JqlRfpx+d5W0GDXznCMkWotJQek5Mmz1MJVChQnz3IVaeMZQ==", - "dev": true, - "dependencies": { - "glob": "^7.1.6", - "typescript": "^4.0.2" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true, - "optional": true - }, - "node_modules/crc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.1.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, - "optional": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, - "optional": true - }, - "node_modules/dir-compare": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz", - "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", - "dev": true, - "dependencies": { - "buffer-equal": "^1.0.0", - "minimatch": "^3.0.4" - } - }, - "node_modules/dir-compare/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/dir-compare/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/dmg-builder": { - "version": "24.9.1", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.9.1.tgz", - "integrity": "sha512-huC+O6hvHd24Ubj3cy2GMiGLe2xGFKN3klqVMLAdcbB6SWMd1yPSdZvV8W1O01ICzCCRlZDHiv4VrNUgnPUfbQ==", - "dev": true, - "dependencies": { - "app-builder-lib": "24.9.1", - "builder-util": "24.8.1", - "builder-util-runtime": "9.2.3", - "fs-extra": "^10.1.0", - "iconv-lite": "^0.6.2", - "js-yaml": "^4.1.0" - }, - "optionalDependencies": { - "dmg-license": "^1.0.11" - } - }, - "node_modules/dmg-builder/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/dmg-builder/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/dmg-builder/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/dmg-license": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", - "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "@types/plist": "^3.0.1", - "@types/verror": "^1.10.3", - "ajv": "^6.10.0", - "crc": "^3.8.0", - "iconv-corefoundation": "^1.1.7", - "plist": "^3.0.4", - "smart-buffer": "^4.0.2", - "verror": "^1.10.0" - }, - "bin": { - "dmg-license": "bin/dmg-license.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dotenv": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", - "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, - "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", - "dev": true, - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron": { - "version": "28.2.2", - "resolved": "https://registry.npmjs.org/electron/-/electron-28.2.2.tgz", - "integrity": "sha512-8UcvIGFcjplHdjPFNAHVFg5bS0atDyT3Zx21WwuE4iLfxcAMsyMEOgrQX3im5LibA8srwsUZs7Cx0JAUfcQRpw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@electron/get": "^2.0.0", - "@types/node": "^18.11.18", - "extract-zip": "^2.0.1" - }, - "bin": { - "electron": "cli.js" - }, - "engines": { - "node": ">= 12.20.55" - } - }, - "node_modules/electron-builder": { - "version": "24.9.1", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.9.1.tgz", - "integrity": "sha512-v7BuakDuY6sKMUYM8mfQGrwyjBpZ/ObaqnenU0H+igEL10nc6ht049rsCw2HghRBdEwJxGIBuzs3jbEhNaMDmg==", - "dev": true, - "dependencies": { - "app-builder-lib": "24.9.1", - "builder-util": "24.8.1", - "builder-util-runtime": "9.2.3", - "chalk": "^4.1.2", - "dmg-builder": "24.9.1", - "fs-extra": "^10.1.0", - "is-ci": "^3.0.0", - "lazy-val": "^1.0.5", - "read-config-file": "6.3.2", - "simple-update-notifier": "2.0.0", - "yargs": "^17.6.2" - }, - "bin": { - "electron-builder": "cli.js", - "install-app-deps": "install-app-deps.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/electron-builder/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/electron-builder/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/electron-builder/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/electron-publish": { - "version": "24.8.1", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.8.1.tgz", - "integrity": "sha512-IFNXkdxMVzUdweoLJNXSupXkqnvgbrn3J4vognuOY06LaS/m0xvfFYIf+o1CM8if6DuWYWoQFKPcWZt/FUjZPw==", - "dev": true, - "dependencies": { - "@types/fs-extra": "^9.0.11", - "builder-util": "24.8.1", - "builder-util-runtime": "9.2.3", - "chalk": "^4.1.2", - "fs-extra": "^10.1.0", - "lazy-val": "^1.0.5", - "mime": "^2.5.2" - } - }, - "node_modules/electron-publish/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/electron-publish/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/electron-publish/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, - "optional": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extsprintf": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "optional": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", - "dev": true, - "dependencies": { - "flatted": "^3.2.7", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true, - "optional": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dev": true, - "optional": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/global-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", - "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", - "dev": true, - "optional": true, - "dependencies": { - "boolean": "^3.0.1", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/global-agent/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "optional": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "optional": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "optional": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/iconv-corefoundation": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", - "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "cli-truncate": "^2.1.0", - "node-addon-api": "^1.6.3" - }, - "engines": { - "node": "^8.11.2 || >=10" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true - }, - "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/isbinaryfile": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.0.tgz", - "integrity": "sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==", - "dev": true, - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", - "dev": true, - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jake/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/jake/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "optional": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/lazy-val": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", - "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", - "dev": true - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/node-addon-api": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", - "dev": true, - "optional": true - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/plist": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", - "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", - "dev": true, - "dependencies": { - "@xmldom/xmldom": "^0.8.8", - "base64-js": "^1.5.1", - "xmlbuilder": "^15.1.1" - }, - "engines": { - "node": ">=10.4.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-config-file": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.3.2.tgz", - "integrity": "sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==", - "dev": true, - "dependencies": { - "config-file-ts": "^0.2.4", - "dotenv": "^9.0.2", - "dotenv-expand": "^5.1.0", - "js-yaml": "^4.1.0", - "json5": "^2.2.0", - "lazy-val": "^1.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/roarr": { - "version": "2.15.4", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", - "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "dev": true, - "optional": true, - "dependencies": { - "boolean": "^3.0.1", - "detect-node": "^2.0.4", - "globalthis": "^1.0.1", - "json-stringify-safe": "^5.0.1", - "semver-compare": "^1.0.0", - "sprintf-js": "^1.1.2" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dev": true, - "dependencies": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true, - "optional": true - }, - "node_modules/serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dev": true, - "optional": true, - "dependencies": { - "type-fest": "^0.13.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/serialize-error/node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true, - "optional": true - }, - "node_modules/stat-mode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", - "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sumchecker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", - "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dev": true, - "dependencies": { - "debug": "^4.1.0" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/temp-file": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", - "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", - "dev": true, - "dependencies": { - "async-exit-hook": "^2.0.1", - "fs-extra": "^10.0.0" - } - }, - "node_modules/temp-file/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/temp-file/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/temp-file/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/tmp-promise": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", - "dev": true, - "dependencies": { - "tmp": "^0.2.0" - } - }, - "node_modules/truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", - "dev": true, - "dependencies": { - "utf8-byte-length": "^1.0.1" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==", - "dev": true - }, - "node_modules/v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==" - }, - "node_modules/verror": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", - "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", - "dev": true, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index e8ebb582..00000000 --- a/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "steamdepotdownloadergui", - "version": "2.4.1", - "description": "DepotDownloader Electron frontend", - "main": "main.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "electron .", - "build": "electron-builder -c electron-builder.yml -wl -p never", - "buildall": "electron-builder -c electron-builder.yml -mwl -p never", - "buildlinux": "electron-builder -c electron-builder.yml -l -p never", - "buildwin": "electron-builder -c electron-builder.yml -w -p never", - "buildmacos": "electron-builder -c electron-builder.yml -m -p never" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/mmvanheusden/SteamDepotDownloaderGUI.git" - }, - "keywords": [ - "electron", - "steam", - "depotdownloader", - "electron", - "gui" - ], - "author": "mmvanheusden", - "license": "GPL-3.0", - "bugs": { - "url": "https://github.com/mmvanheusden/SteamDepotDownloaderGUI/issues" - }, - "homepage": "https://github.com/mmvanheusden/SteamDepotDownloaderGUI#readme", - "devDependencies": { - "electron": "^28.2.2", - "electron-builder": "^24.9.1", - "eslint": "^8.56.0" - }, - "dependencies": { - "follow-redirects": "^1.15.5", - "v8-compile-cache": "^2.4.0" - } -} diff --git a/package.sh b/package.sh deleted file mode 100755 index 9db26f31..00000000 --- a/package.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -set -e -version=`jq '.version' package.json` -version="${version//\"}" -echo "version that will be build is ${version}" -rm -rf ./dist/ - -# Disable DevTools for release, because it's unreliable -original_line=$(sed -n '/if (!app.isPackaged) mainWindow.webContents.openDevTools({mode: "detach"})/p' main.js) -# original_line has 1 tab too much, so we remove it -original_line="${original_line// /}" -sed -i 's/if (!app.isPackaged) mainWindow.webContents.openDevTools({mode: "detach"})/\/\/REMOVED FOR RELEASE./g' main.js - - -npm run build -mkdir -p ./dist/release-ready - -cp ./dist/SteamDepotDownloaderGUI*.exe ./dist/release-ready/SteamDepotDownloaderGUI-windows-"${version}".exe -cp `ls -d1 dist/* | grep -E "SteamDepotDownloaderGUI-[0-9]+\.[0-9]+\.[0-9]+\.AppImage"` ./dist/release-ready/SteamDepotDownloaderGUI-linux-"${version}"-x64.AppImage -cp `ls -d1 dist/* | grep -E "steamdepotdownloadergui-[0-9]+\.[0-9]+\.[0-9]+\.zip"` ./dist/release-ready/SteamDepotDownloaderGUI-linux-"${version}"-x64.zip -cp `ls -d1 dist/* | grep -E "SteamDepotDownloaderGUI-[0-9]+\.[0-9]+\.[0-9]+\-arm64.AppImage"` ./dist/release-ready/SteamDepotDownloaderGUI-linux-"${version}"-arm64.AppImage -cp `ls -d1 dist/* | grep -E "steamdepotdownloadergui-[0-9]+\.[0-9]+\.[0-9]+\-arm64.zip"` ./dist/release-ready/SteamDepotDownloaderGUI-linux-"${version}"-arm64.zip -echo "done building!" -echo "reverting changes to main.js" -sed -i "s|\/\/REMOVED FOR RELEASE.|$original_line|g" main.js \ No newline at end of file diff --git a/style.css b/style.css deleted file mode 100644 index ea899d82..00000000 --- a/style.css +++ /dev/null @@ -1,68 +0,0 @@ -@font-face { - font-family: 'Hubot Sans'; - src: url('Hubot-Sans.woff2') format('woff2 supports variations'), - url('Hubot-Sans.woff2') format('woff2-variations'); - font-weight: 700; - font-stretch: expanded; -} - -.f1-light { - font-family: 'Hubot Sans', sans-serif; - overflow: hidden; - white-space: nowrap; -} - -/* The grey part */ -.settings-surrounding { - display: none; - position: fixed; - z-index: 1; - left: 0; - top: 0; - width: 100%; - height: 100%; - overflow: hidden; - background-color: rgba(0, 0, 0, 0.33); -} - -.settings-content { - position: relative; - border-radius: 10px; - overflow: auto; - /*noinspection CssUnresolvedCustomProperty*/ - background-color: var(--bgColor-default, var(--color-canvas-default)); - margin: 5%; - padding: 25px; - border: 1px solid #b4dede; - width: 90vw; /* 90vw -> 90% */ - height: 90vh; /* 90vh -> 90% */ - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1), 0 6px 20px rgba(0, 0, 0, 0.1); -} - -.hide { - display: none; -} - -hr { - border: 0; - height: 1px; - background: #0d1117 linear-gradient(to right, #0d1117, #ccc, #0d1117); -} -[data-color-mode="light"] hr { - filter: invert(1); -} -@media (prefers-color-scheme: light) { - [data-color-mode="auto"] hr { - filter: invert(1); - } -} - - -.version-info { - position: absolute; - bottom: 0; - right: 0; - font-size: 0.8em; - padding: 5px 10px; /* space around text */ - font-family: monospace; -} diff --git a/utils.js b/utils.js deleted file mode 100644 index b93163e0..00000000 --- a/utils.js +++ /dev/null @@ -1,391 +0,0 @@ -var defaultTerminal = "" - -/** - * Checks if all required fields are filled and if dotnet is installed in the system path. - * It returns a promise that resolves to true if dotnet is installed and all required fields are filled, false otherwise. - * - * @returns {Promise} A promise that resolves to true if dotnet is installed and all required fields are filled, false otherwise. - * - * **rejects**: - * `emptyField` -> One or more required field(s) are not filled in. - * `noDotnet` -> `dotnet` has not been found in the path. - */ -function preDownloadCheck() { - return new Promise((resolve, reject) => { - // Check if all fields are filled - const formInputs = document.forms["theform"] - - let unfilledFields = 0 - for (const input of formInputs) { - const isInvalid = input.value === "" && input.parentElement.classList.contains("required") - input.parentElement.classList.toggle("errored", isInvalid) // toggle the 'errored' class depending on if isInvalid is true or false. - if (isInvalid) unfilledFields++ - } - if (unfilledFields > 0) { - reject("emptyField") - return - } - - // Check if dotnet is found, depending on the platform - if (process.platform.toString().includes("win")) { - // Windows - const {exec} = require("child_process") - const command = "dotnet.exe --version" - exec(command, function (error) { - if (error) { - reject("noDotnet") - } else { - resolve(true) - } - }) - } else { - // Others - // macOS seems to be broken. - const {exec} = require("child_process") - const command = "dotnet --version" - exec(command, function (error) { - if (error) { - reject("noDotnet") - } else { - resolve(true) - } - }) - } - }) -} - - -/** - * Downloads a file from a given URL and saves it to the current directory. - * - * @param {string} url - The URL of the file to download. - * @returns {Promise} A promise that resolves when the download is finished, or rejects if an error occurs. - * - * @throws {Error} If an error occurs during the download or file writing process, the promise is rejected with the error. - */ -function download(url) { - return new Promise((resolve, reject) => { - const {https} = require("follow-redirects") /* Using follow-redirects to follow redirects */ - const fs = require("fs") - const path = require("path") - const file = fs.createWriteStream(platformpath() + path.sep + url.split("/").pop()) - https.get(url, (response) => { - response.pipe(file) - file.on("finish", () => { - file.close() - resolve() - }) - file.on("error", (error) => { - console.error(error) - reject(error) - }) - }) - }) -} - -/** - * Removes a file from the current directory. - * - * @param {string} file - The name of the file to be removed. - * @returns {Promise} A promise that resolves when the file is successfully removed, or rejects if an error occurs. - * - * @throws {Error} If an error occurs during the file removal process, the promise is rejected with the error. - */ -function removeFile(file) { - return new Promise((resolve, reject) => { - const fs = require("fs") - const path = require("path") - fs.unlink(platformpath() + path.sep + file, function (error) { - if (error) { - reject(error) - console.error(error) - } else resolve() - }) - }) -} - -/** - * Removes a directory from the current directory. - * - * @param {string} dir - The name of the directory to be removed. - * @returns {Promise} A promise that resolves when the directory is successfully removed, or rejects if an error occurs. - * - * @throws {Error} If an error occurs during the directory removal process, the promise is rejected with the error. - */ -function removeDir(dir,) { - return new Promise((resolve, reject) => { - const fs = require("fs") - const path = require("path") - fs.rm(platformpath() + path.sep + dir, {recursive: true, force: true}, function (error) { - if (error) { - reject(error) - console.error(error) - } else resolve() - }) - }) -} - -/** - * Unzips a file to a specified target directory. - * - * @param {string} file - The name of the zip file to be unzipped. - * @param {string} target - The target directory where the file will be unzipped to. - * @returns {Promise} A promise that resolves when the unzip operation is complete, or rejects if an error occurs. - * - * @throws {Error} If an error occurs during the unzip operation, the promise is rejected with the error. - */ -function unzip(file, target) { - const {exec} = require("child_process") - const path = require("path") - let finalPath = platformpath() + path.sep - - return new Promise((resolve, reject) => { - if (process.platform.toString().includes("win")) { - const command = `powershell.exe -Command Expand-Archive -Path '${finalPath + file}' -Destination '${finalPath + target}'` - exec(command, function (error) { - if (error) { - reject(error) - console.error(error) - } else resolve() - }) - } else { - const command = `unzip -o ${platformpath().replaceAll(" ", "\\ ") + path.sep + file} -d ${platformpath().replaceAll(" ", "\\ ") + path.sep + target}${path.sep}` - exec(command, function (error) { - if (error) { - reject(error) - console.error(error) - } else resolve() - }) - } - }) -} - -async function createCommandWithTerminal(command, terminal, os) { - let cmd = "" - - if (terminal === "auto") { - terminal = defaultTerminal[0] - } - // if os is auto, choose the os for us. - if (os === "auto") { - if (process.platform.toString().includes("win")) { - os = 0 - } else if (process.platform.toString().includes("linux")) { - os = 2 - } - } else console.log("OS is manually chosen") - /* eslint-disable */ - if (os === 0) { - cmd = `start cmd.exe /k ${command}` - } else if (os === 1) { - cmd = `osascript -c 'tell application "Terminal" to do script '${command}'` - } else if (os === 2) { - switch (terminal) { - case 0: - cmd = `gnome-terminal -e 'bash -c "${command};$SHELL"'` - break - case 1: - cmd = `konsole --hold -e "${command}"` - break - case 2: - cmd = `xfce4-terminal -H -e "${command}"` - break - case 3: - cmd = `terminator -e 'bash -c "${command};$SHELL"'` - break - case 4: - cmd = `terminology -H -e "${command}"` - break - case 5: - cmd = `xterm -hold -T "Downloading Depot..." -e "${command}"` - break - case 6: - cmd = `kitty --hold sh -c "${command}"` - break - case 7: - cmd = `lxterminal -e "${command};$SHELL"` - break - case 8: - cmd = `tilix -e sh -c "${command};$SHELL"` - break - case 9: - cmd = `deepin-terminal -e 'sh -c "${command};$SHELL"'` - break - case 10: - cmd = `cool-retro-term -e sh -c "${command}"` - break - default: - console.log("NO TERMINAL. PANIC.") - } - } else if (os === 3) { - if (process.platform.toString().includes("win")) { - console.log(`COPY-PASTE THE FOLLOWING INTO THE TERMINAL:\n\n${command}`) - } else console.log(`COPY-PASTE THE FOLLOWING INTO YOUR TERMINAL:\n\n${command}`) - cmd = "" - } - - return cmd - /* eslint-enable */ -} - -async function generateRunScript(username, password, appid, depotid, manifestid, folderinput, chosenPath) { - const path = require("path") - const fs = require("fs") - const sep = path.sep - let foldername = "" - - // allow enormous strings like &$§"&$="§$/"(§NJUIDW>;!%?aQ52V?*['YsDnRy|(+Q 1h6BmnDQp,(Xr& being used as password. - // NOT TESTED - password = password.replace(/"/g, "\"\"") - - // if either the username or password fields is empty, anonymous login is used - let anonymous = username === "" || password === "" - - - /* put the username and password flags into one string, allowing for anonymous login. - if anonymous: false true - | | - */ - let userpass = anonymous ? "" : `-username ${username} -password "${password}"` - - /* if nothing is inputted by the user in the folder input, it will be defaulted to the appid. else to the value */ - foldername = folderinput.value === "" ? appid : folderinput.value - - /* if the path isn't selected by the user, go for the path the app is located in. else use the path the user chose. */ - chosenPath = chosenPath === "" ? platformpath() : chosenPath - - let finalPath = (chosenPath + path.sep + foldername) - if (process.platform.includes("win")) { - if (finalPath.includes(" ")) { - console.log("path contains spaces. adding quotes") - finalPath = `"${finalPath}"` - console.log("Result: " + finalPath) - } - } else { - finalPath = finalPath.replaceAll(" ", "\\ ") - } - - /* / or \ if nothing is inputted its appid replaces " " with "\ ", so whitespaces can be in path names. - finalpath: ((the path the user chose) + (seperator) + (the folder name the user chose)).replaceAll() - */ - - - /* The structure of a DepotDownloader command: - .NET CLI Path to the DepotDownloader dll. Username/pass combination app id depot id manifest id the dir chosen by user or app path controls how much download servers and threads are used. Needs benchmark TODO - | | | | | | | | | - dotnet (path)(sep)depotdownloader(sep)DepotDownloader.dll (userpass) -app (appid) -depot (depotid) -manifest (manifestid) -dir (path)(sep) -max-servers 50 -max-downloads 16 - */ - - if (process.platform.includes("linux")) { - // if linux, write a bash script. - let content = `#!/usr/bin/env bash -dotnet ${platformpath().replaceAll(" ", "\\ ")}${sep}depotdownloader${sep}DepotDownloader.dll ${userpass} -app ${appid} -depot ${depotid} -manifest ${manifestid} -dir ${finalPath}${sep} -max-servers 50 -max-downloads 16 - ` - await fs.writeFileSync(`${platformpath()}${sep}run.sh`, content) - await fs.chmodSync(`${platformpath()}${sep}run.sh`, "755") // make it executable - console.log(`Writing: --------- -dotnet ${platformpath().replaceAll(" ", "\\ ")}${sep}depotdownloader${sep}DepotDownloader.dll ${userpass} -app ${appid} -depot ${depotid} -manifest ${manifestid} -dir ${finalPath}${sep} -max-servers 50 -max-downloads 16 - -to ${platformpath()}${sep}run.sh. -`) - } else if (process.platform.includes("win")) { - // if windows, write a batch script - let content = `dotnet "${platformpath()}${sep}depotdownloader${sep}DepotDownloader.dll" ${userpass} -app ${appid} -depot ${depotid} -manifest ${manifestid} -dir ${finalPath} -max-servers 50 -max-downloads 16` - await fs.writeFileSync(`${platformpath()}${sep}run.bat`, content) - console.log(`Writing: --------- -dotnet "${platformpath()}${sep}depotdownloader${sep}DepotDownloader.dll" ${userpass} -app ${appid} -depot ${depotid} -manifest ${manifestid} -dir ${finalPath} -max-servers 50 -max-downloads 16 - -to ${platformpath()}${sep}run.bat. -`) - } else { /* macos */ - } -} - -/** - * Executes a given command in a separate process. - * - * @param {string} command - The command to be executed. - * @returns {Promise} A promise that resolves when the command execution is successful, or rejects if an error occurs. - * - * @throws {Error} If an error occurs during the command execution, the promise is rejected with an error message. - */ -function runCommand(command) { - return new Promise((resolve, reject) => { - const {exec} = require("child_process") - exec(command, function (error) { - if (error) { - const msg = "Running command failed with error:\n" + error - reject(msg) - } else resolve() - }) - }) -} - -/** - * Returns the path where the actual program is being run from, depending on the operating system. - * Because __dirname is inconsistent across operating systems, this function is used to get the correct path. - * - * Windows -> Dev env: __dirname, Portable: process.env.PORTABLE_EXECUTABLE_DIR - * Linux -> process.cwd() - * @returns {string} The absolute path - */ -const platformpath = () => { - // On linux, it must return process.cwd(). On windows, it must return process.env.PORTABLE_EXECUTABLE_DIR, but only if the program is running from a portable exe. - // On linux, __dirname returns the correct path, but on windows, it returns the path to the app.asar file, which is not what we want. Only in dev environment it returns the correct path. - - if (process.platform.includes("win")) { - if (process.env.PORTABLE_EXECUTABLE_DIR !== undefined) { - return process.env.PORTABLE_EXECUTABLE_DIR - } else { - return __dirname - } - } else { - return process.cwd() - } -} - -/** - * Checks for the availability of terminal emulators on Linux. - * It runs the '--version' command on each terminal emulator and checks if the command is successful. - * If the command is successful, it means the terminal emulator is installed and available. - * The function returns an array of the indices of the available terminal emulators. - * If no terminal emulator is available, it returns false. - * If the operating system is not Linux, it also returns false. - * - * @returns {string[]|boolean} An array of the indices of the available terminal emulators, or false if none are available or the OS is not Linux. - */ -const forceTerminals = async () => { - const commands = [["gnome-terminal", "--version", 0], ["konsole", "--version", 1], ["xfce4-terminal", "--version", 2], ["terminator", "--version", 3], ["terminology", "--version", 4], ["xterm", "-v", 5], ["kitty", "--version", 6], ["lxterminal", "--version", 7], ["tilix", "--version", 8], ["deepin-terminal", "--version", 9], ["cool-retro-term", "--version", 10]] - let availableTerminals = [] // list of IDs of terminals, corrospending to their index in the dropdown menu - let availableNames = [] // list of names of found terminals - if (process.platform === "linux") { - for (let i = 0; i < commands.length; i++) { - await runCommand(`${commands[i][0]} ${commands[i][1]}`).then(() => { - console.log(`Found ${commands[i][0]}`) - availableTerminals.push(commands[i][2]) - availableNames.push(commands[i][0]) - }).catch(() => { - console.log(`${commands[i][0]} not found on system.`) - }) - } - if (availableTerminals.length > 0) { - defaultTerminal = availableTerminals - return [true, availableTerminals, availableNames] // [true, "2,4,7", "twox,fourterm,sevenemulator"] (example) - } else return false - } else return false -} - -module.exports = { - preDownloadCheck, - download, - runCommand, - removeDir, - removeFile, - unzip, - platformpath, - forceTerminals, - generateRunScript, - createCommandWithTerminal -} From c5bde3cde6c1685b5c00b2596d861f226b8303f6 Mon Sep 17 00:00:00 2001 From: Maarten van Heusden <50550545+mmvanheusden@users.noreply.github.com> Date: Mon, 19 Feb 2024 14:59:07 +0100 Subject: [PATCH 2/8] chore: empty out READMEs --- README.md | 111 ++---------------------------------------------- contributing.md | 62 +-------------------------- 2 files changed, 5 insertions(+), 168 deletions(-) diff --git a/README.md b/README.md index c78f82d4..7bded5c5 100644 --- a/README.md +++ b/README.md @@ -1,109 +1,4 @@ +# SteamDepotDownloaderGUI -

SteamDepotDownloaderGUI - -

A graphical wrapper for DepotDownloader, designed to make downloading older versions of Steam games easy. built using Electron. -

-→Tutorial ~ -Steam Deck ~ -Subnautica← -

- - - -

Download count badgeLast contribution badgeDownload latest release badgeVisitor count badgeDonation badgeCodeFactor badge

- - -

- Screenshot of the downloader interface -

- -## Features - -* **Cross platform** - - Windows - - macOS (in development™) - - Linux - - [Steam Deck](https://github.com/mmvanheusden/SteamDepotDownloaderGUI/tree/steamdeck-dotnet#steamdepotdownloadergui-for-steam-deck) -* **Cross terminal** - - Gnome Terminal - - Konsole - - xfce4-terminal - - Terminator - - Terminology - - xterm - - Kitty - - LXTerminal - - Tilix - - Deepin Terminal - - cool-retro-term - - Manual: produce a script that can be copy pasted into a terminal of choice -* **Support for anonymous downloads** - -## Download - -### Windows: -* If you haven't already, install [.NET SDK 6.0](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) on your computer. - Then, download the [latest Windows build](https://github.com/mmvanheusden/SteamDepotDownloaderGUI/releases/latest) -### **Linux:** -#### Arch Linux: -* An official [AUR package](https://aur.archlinux.org/packages/steamdepotdownloadergui-appimage) has been made. this can be installed using `yay -S steamdepotdownloadergui-appimage`. -#### Other Linux distros: -* **You'll need `unzip`, .NET SDK 6.0.** -* **Ubuntu:** - - `sudo apt install unzip dotnet-sdk-6.0` -* **Fedora:** - - `sudo dnf install unzip dotnet-sdk-6.0` - - -* There are several options, AppImage, and a `.zip`, for both x64 and arm64. - - [Download latest release](https://github.com/mmvanheusden/SteamDepotDownloaderGUI/releases/latest) - - -## How to use - -#### Tutorials: -* https://www.youtube.com/watch?v=H2COwT5OUOo How to download older versions of Steam games. rollback steam games tutorial -* https://www.youtube.com/watch?v=ogiDAuH3VdY How to download older versions of Subnautica tutorial ---- - -**Enter everything you normally would in the DepotDownloader console and select your OS/terminal and click download** - - -## Credits - -This software makes use of the following projects: -- [**DepotDownloader**](https://github.com/SteamRE/DepotDownloader/) -- [Electron](https://www.electronjs.org/) -- [Node.js](https://nodejs.org/) -- [Primer CSS](https://primer.style/css/) -- [follow-redirects](https://github.com/follow-redirects/follow-redirects) -- [Hubut Sans](https://github.com/github/hubot-sans) under [license](https://github.com/github/hubot-sans/blob/05d5ea150c20e6434485db8ffd2277ed18a9e911/LICENSE) - - -## Donate - -Donations can be made through Liberapay :) - - - Donation badge - - -## On Electron -Computer resources are not an all-you-can-eat buffet. The executables weigh on average 103 MB. -That's why in the future, this project is fully switching to a [different](https://tauri.app/) (multi-platform) toolset. Nothing will change for the user. - -## Contribute - -If you would like to contribute to SteamDepotDownloaderGUI, please make sure to follow -the [contributing instructions and guidelines](contributing.md). - -Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. - -Please make sure to keep code clean and cross-platform compatible. - -![forthebadge](https://forthebadge.com/images/featured/featured-built-with-love.svg) +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 index 0699acb1..73780c4a 100644 --- a/contributing.md +++ b/contributing.md @@ -1,61 +1,3 @@ -# SteamDepotDownloaderGUI development information +# Contributing to SteamDepotDownloaderGUI -SteamDepotDownloaderGUI is a graphical user interface for DepotDownloader. - -It is written in Node.js and uses the [Electron](https://electronjs.org/) framework. -The CSS framework being used is [Primer](https://primer.style), by GitHub. - -## Setup development environment - -**Note that these instructions may differ from operating system to operating system.** - -* Install node.js, npm, and git on your computer. - -* Clone the repository. - -```bash -git clone https://github.com/mmvanheusden/SteamDepotDownloaderGUI -``` - -* Move into the directory and install npm dependencies. - -```bash -cd SteamDepotDownloaderGUI -npm install -``` - -* **You are now ready to contribute** - -## Testing the application - -```bash -npm start -``` - -## Building the application - -```bash -npm run build -``` - -* If you are using macOS, you can build using the following command: - -```bash -npm run buildall -``` - -This will build the application for all supported operating systems. - -## Contributing Guidelines - -Please make sure to keep code consistent and cross-platform compatible. - -After you made a change, clean-up the code using your favorite code editor and run the following command: - -```bash -npx eslint *.js --fix -``` - -Please make sure your git commit message is descriptive and contains the changes you made. - -**Happy coding!** \ No newline at end of file +TODO ! \ No newline at end of file From ec409a5c93c0837d2ed5c2a8443847e2f655da7a Mon Sep 17 00:00:00 2001 From: Maarten van Heusden <50550545+mmvanheusden@users.noreply.github.com> Date: Mon, 19 Feb 2024 15:31:46 +0100 Subject: [PATCH 3/8] chore: init tauri project --- .gitignore | 152 +- .vscode/extensions.json | 3 + package-lock.json | 203 + package.json | 13 + src-tauri/.gitignore | 4 + src-tauri/Cargo.lock | 5017 +++++++++++++++++++ src-tauri/Cargo.toml | 21 + src-tauri/build.rs | 3 + 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/icons/128x128.png | Bin 0 -> 3512 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 7012 bytes src-tauri/icons/32x32.png | Bin 0 -> 974 bytes src-tauri/icons/Square107x107Logo.png | Bin 0 -> 2863 bytes src-tauri/icons/Square142x142Logo.png | Bin 0 -> 3858 bytes src-tauri/icons/Square150x150Logo.png | Bin 0 -> 3966 bytes src-tauri/icons/Square284x284Logo.png | Bin 0 -> 7737 bytes src-tauri/icons/Square30x30Logo.png | Bin 0 -> 903 bytes src-tauri/icons/Square310x310Logo.png | Bin 0 -> 8591 bytes src-tauri/icons/Square44x44Logo.png | Bin 0 -> 1299 bytes src-tauri/icons/Square71x71Logo.png | Bin 0 -> 2011 bytes src-tauri/icons/Square89x89Logo.png | Bin 0 -> 2468 bytes src-tauri/icons/StoreLogo.png | Bin 0 -> 1523 bytes src-tauri/icons/icon.icns | Bin 0 -> 98451 bytes src-tauri/icons/icon.ico | Bin 0 -> 86642 bytes src-tauri/icons/icon.png | Bin 0 -> 14183 bytes src-tauri/src/main.rs | 16 + src-tauri/tauri.conf.json | 32 + src/assets/javascript.svg | 1 + src/assets/tauri.svg | 6 + src/index.html | 46 + src/main.js | 18 + src/styles.css | 109 + 36 files changed, 5532 insertions(+), 134 deletions(-) create mode 100644 .vscode/extensions.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src-tauri/.gitignore create mode 100644 src-tauri/Cargo.lock create mode 100644 src-tauri/Cargo.toml create mode 100644 src-tauri/build.rs create mode 100644 src-tauri/capabilities/main.json create mode 100644 src-tauri/gen/schemas/capabilities.json create mode 100644 src-tauri/gen/schemas/desktop-schema.json create mode 100644 src-tauri/gen/schemas/linux-schema.json create mode 100644 src-tauri/gen/schemas/plugin-manifests.json create mode 100644 src-tauri/icons/128x128.png create mode 100644 src-tauri/icons/128x128@2x.png create mode 100644 src-tauri/icons/32x32.png create mode 100644 src-tauri/icons/Square107x107Logo.png create mode 100644 src-tauri/icons/Square142x142Logo.png create mode 100644 src-tauri/icons/Square150x150Logo.png create mode 100644 src-tauri/icons/Square284x284Logo.png create mode 100644 src-tauri/icons/Square30x30Logo.png create mode 100644 src-tauri/icons/Square310x310Logo.png create mode 100644 src-tauri/icons/Square44x44Logo.png create mode 100644 src-tauri/icons/Square71x71Logo.png create mode 100644 src-tauri/icons/Square89x89Logo.png create mode 100644 src-tauri/icons/StoreLogo.png create mode 100644 src-tauri/icons/icon.icns create mode 100644 src-tauri/icons/icon.ico create mode 100644 src-tauri/icons/icon.png create mode 100644 src-tauri/src/main.rs create mode 100644 src-tauri/tauri.conf.json create mode 100644 src/assets/javascript.svg create mode 100644 src/assets/tauri.svg create mode 100644 src/index.html create mode 100644 src/main.js create mode 100644 src/styles.css diff --git a/.gitignore b/.gitignore index 542f34f2..22badf4d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,140 +4,24 @@ logs npm-debug.log* yarn-debug.log* yarn-error.log* +pnpm-debug.log* lerna-debug.log* -.pnpm-debug.log* -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt +node_modules dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp and cache directory -.temp -.cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# VSCode directory for storing user settings -.vscode - -# yarn v2 -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* - -# IntelliJ -.idea/ - -# SteamDepotDownloaderGUI specific -depotdownloader -games -*.zip -run.bat -run.sh \ No newline at end of file +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# SteamDepotDownloaderGUI files +# TODO \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..24d7cc6d --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"] +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..91713209 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,203 @@ +{ + "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 new file mode 100644 index 00000000..c5b7d766 --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "name": "steamdepotdownloadergui", + "private": true, + "version": "3.0.0", + "type": "module", + "scripts": { + "tauri": "tauri", + "dev": "WEBKIT_DISABLE_COMPOSITING_MODE=1 tauri dev" + }, + "devDependencies": { + "@tauri-apps/cli": "^2.0.0-beta.0" + } +} diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore new file mode 100644 index 00000000..f4dfb82b --- /dev/null +++ b/src-tauri/.gitignore @@ -0,0 +1,4 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ + diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock new file mode 100644 index 00000000..ae3728f8 --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,5017 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" + +[[package]] +name = "as-raw-xcb-connection" +version = "1.0.1" +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" +dependencies = [ + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" +dependencies = [ + "concurrent-queue", + "event-listener 5.1.0", + "event-listener-strategy 0.5.0", + "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" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65" +dependencies = [ + "async-lock 3.3.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.2.0", + "parking", + "polling 3.5.0", + "rustix 0.38.31", + "slab", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +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", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +dependencies = [ + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.31", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-recursion" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "async-signal" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +dependencies = [ + "async-io 2.3.1", + "async-lock 2.8.0", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.31", + "signal-hook-registry", + "slab", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-task" +version = "4.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" + +[[package]] +name = "async-trait" +version = "0.1.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "atk" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +dependencies = [ + "serde", +] + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +dependencies = [ + "async-channel", + "async-lock 3.3.0", + "async-task", + "fastrand 2.0.1", + "futures-io", + "futures-lite 2.2.0", + "piper", + "tracing", +] + +[[package]] +name = "brotli" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bumpalo" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f" + +[[package]] +name = "bytemuck" +version = "1.14.3" +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", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +dependencies = [ + "serde", +] + +[[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", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cargo_toml" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" +dependencies = [ + "serde", + "toml 0.8.2", +] + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.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" + +[[package]] +name = "chrono" +version = "0.4.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets 0.52.0", +] + +[[package]] +name = "cocoa" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" +dependencies = [ + "bitflags 1.3.2", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-foundation", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core-graphics" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa 0.4.8", + "matches", + "phf 0.8.0", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.49", +] + +[[package]] +name = "ctor" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" +dependencies = [ + "quote", + "syn 2.0.49", +] + +[[package]] +name = "darling" +version = "0.20.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c376d08ea6aa96aafe61237c7200d1241cb177b7d3a542d791f2d118e9cbb955" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33043dcd19068b8192064c704b3f83eb464f91f1ff527b44a4e2b08d9cdb8855" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.49", +] + +[[package]] +name = "darling_macro" +version = "0.20.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5a91391accf613803c2a9bf9abccdbaa07c54b4244a5b64883f9c3c137c86be" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi 0.3.9", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dlib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +dependencies = [ + "libloading 0.8.1", +] + +[[package]] +name = "downcast-rs" +version = "1.2.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" +dependencies = [ + "libc", + "linux-raw-sys 0.6.4", +] + +[[package]] +name = "dtoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" + +[[package]] +name = "dtoa-short" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "dyn-clone" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" + +[[package]] +name = "embed-resource" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bde55e389bea6a966bd467ad1ad7da0ae14546a5bc794d16d1e55e7fca44881" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 0.8.2", + "vswhom", + "winreg 0.51.0", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enumflags2" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +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" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +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", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fdeflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset 0.9.0", + "rustc_version", +] + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-lite" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" +dependencies = [ + "fastrand 2.0.1", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a90fbf5c033c65d93792192a49a8efb5bb1e640c419682a58bb96f5ae77f3d4a" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2ea8a4909d530f79921290389cbd7c34cb9d623bfe970eaae65ca5f9cd9cce" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee8f00f4ee46cad2939b8990f5c70c94ff882c3028f3cc5abf950fa4ab53043" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generator" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" +dependencies = [ + "cc", + "libc", + "log", + "rustversion", + "windows 0.48.0", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi 0.3.9", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.4.2", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "h2" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.2.3", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.10", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa 1.0.10", + "pin-project-lite", + "socket2 0.5.5", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", + "serde", +] + +[[package]] +name = "infer" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199" +dependencies = [ + "cfb", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir 2.4.0", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6" +dependencies = [ + "serde", + "serde_json", + "thiserror", + "treediff", +] + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.4.2", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "kuchikiki" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" +dependencies = [ + "cssparser", + "html5ever", + "indexmap 1.9.3", + "matches", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading 0.7.4", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.153" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "libloading" +version = "0.7.4" +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", +] + +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.2", + "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" +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" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "loom" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "serde", + "serde_json", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "markup5ever" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" +dependencies = [ + "log", + "phf 0.10.1", + "phf_codegen 0.10.0", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.7.1" +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", +] + +[[package]] +name = "memoffset" +version = "0.7.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" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "muda" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e406691fa7749604bbc7964bde28a300572d52621bb84540f6907c0f8fe08737" +dependencies = [ + "cocoa", + "crossbeam-channel", + "gtk", + "keyboard-types", + "objc", + "once_cell", + "png", + "serde", + "thiserror", + "windows-sys 0.52.0", +] + +[[package]] +name = "ndk" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" +dependencies = [ + "bitflags 1.3.2", + "jni-sys", + "ndk-sys", + "num_enum", + "raw-window-handle 0.5.2", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.4.1+23.1.7779620" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.7.1", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi 0.3.9", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-traits" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "open" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a083c0c7e5e4a8ec4176346cf61f67ac674e8bfb059d9226e1c54a96b377c12" +dependencies = [ + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "os_pipe" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_shared 0.10.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros 0.11.2", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator 0.11.2", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +dependencies = [ + "atomic-waker", + "fastrand 2.0.1", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "plist" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef" +dependencies = [ + "base64", + "indexmap 2.2.3", + "line-wrap", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "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" +dependencies = [ + "cfg-if", + "concurrent-queue", + "pin-project-lite", + "rustix 0.38.31", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.12", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.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" + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +dependencies = [ + "getrandom 0.2.12", + "libredox", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.5", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "reqwest" +version = "0.11.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "winreg 0.50.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +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", + "errno", + "libc", + "linux-raw-sys 0.4.13", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.17" +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", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", +] + +[[package]] +name = "schemars_derive" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 1.0.109", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", +] + +[[package]] +name = "semver" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.196" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.196" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "serde_derive_internals" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "serde_json" +version = "1.0.113" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +dependencies = [ + "itoa 1.0.10", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "serde_spanned" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.10", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270" +dependencies = [ + "base64", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.2.3", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "865f9743393e638991566a8b7a479043c2c8da94a33e0a31f18214c9cae0a64d" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared_child" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +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", +] + +[[package]] +name = "softbuffer" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071916a85d1db274b4ed57af3a14afb66bd836ae7f82ebb6f1fd3455107830d9" +dependencies = [ + "as-raw-xcb-connection", + "bytemuck", + "cfg_aliases 0.2.0", + "cocoa", + "core-graphics", + "drm", + "fastrand 2.0.1", + "foreign-types", + "js-sys", + "log", + "memmap2", + "objc", + "raw-window-handle 0.6.0", + "redox_syscall", + "rustix 0.38.31", + "tiny-xlib", + "wasm-bindgen", + "wayland-backend", + "wayland-client", + "wayland-sys", + "web-sys", + "windows-sys 0.52.0", + "x11rb", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "state" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8" +dependencies = [ + "loom", +] + +[[package]] +name = "static_assertions" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "swift-rs" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bbdb58577b6301f8d17ae2561f32002a5bae056d444e0f69e611e504a276204" +dependencies = [ + "base64", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "system-deps" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331" +dependencies = [ + "cfg-expr", + "heck", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa7ba6ee5b8908ba3a62e6a4f3683490ed732fca614cdd3f4c989bba548f9a9" +dependencies = [ + "bitflags 1.3.2", + "cc", + "cocoa", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dispatch", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "image", + "instant", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot", + "png", + "raw-window-handle 0.5.2", + "raw-window-handle 0.6.0", + "scopeguard", + "tao-macros", + "unicode-segmentation", + "url", + "windows 0.52.0", + "windows-implement", + "windows-version", + "x11-dl", + "zbus", +] + +[[package]] +name = "tao-macros" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec114582505d158b669b136e6851f85840c109819d77c42bb7c0709f727d18c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "target-lexicon" +version = "0.12.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" + +[[package]] +name = "tauri" +version = "2.0.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a584d146c38bf174398dee0ec2cdd8f8fce142daee0306c370cf78f050304c60" +dependencies = [ + "anyhow", + "bytes", + "cocoa", + "dirs-next", + "embed_plist", + "futures-util", + "getrandom 0.2.12", + "glob", + "gtk", + "heck", + "http", + "jni", + "libc", + "log", + "mime", + "muda", + "nix", + "objc", + "percent-encoding", + "raw-window-handle 0.5.2", + "reqwest", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "state", + "static_assertions", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows 0.52.0", +] + +[[package]] +name = "tauri-build" +version = "2.0.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "314089a25d92a62f33f60d2a19c277f465e9088ee3ea251032ae914d6f2b1ce0" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs-next", + "glob", + "heck", + "json-patch", + "schemars", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "toml 0.8.2", + "walkdir 2.4.0", +] + +[[package]] +name = "tauri-codegen" +version = "2.0.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6ff13874390499976f01decf75103f28e7609abc5c155c6bfb56cf574a5628" +dependencies = [ + "base64", + "brotli", + "ico", + "json-patch", + "plist", + "png", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "tauri-utils", + "thiserror", + "time", + "url", + "uuid", + "walkdir 2.4.0", +] + +[[package]] +name = "tauri-macros" +version = "2.0.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18707774f70a8ec20dbf653f07d12af1e0d7c1e3a625b7bd5a2cfe72c2b2549b" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.49", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin" +version = "2.0.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb732726fec855b56e4a238464f1b0c10006f618180ef402ce5f394d840e61b" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars", + "serde", + "serde_json", + "tauri-utils", + "toml 0.8.2", + "walkdir 1.0.7", +] + +[[package]] +name = "tauri-plugin-shell" +version = "2.0.0-beta.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfaeb1d7afaff06304737abddd29cdada33419241d14eec85689d82675fc529e" +dependencies = [ + "encoding_rs", + "log", + "open", + "os_pipe", + "regex", + "schemars", + "serde", + "serde_json", + "shared_child", + "tauri", + "tauri-plugin", + "thiserror", +] + +[[package]] +name = "tauri-runtime" +version = "2.0.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d72194de56e885dbd9fd8c493ccf95012e584c928900188da248f9ea4223b23" +dependencies = [ + "gtk", + "http", + "jni", + "raw-window-handle 0.5.2", + "serde", + "serde_json", + "tauri-utils", + "thiserror", + "url", + "windows 0.52.0", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.0.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a71bd248a7ce857835b1f65845a9de22171e30d8129e018b42961502565efb" +dependencies = [ + "cocoa", + "gtk", + "http", + "jni", + "nix", + "percent-encoding", + "raw-window-handle 0.5.2", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "webkit2gtk", + "webview2-com", + "windows 0.52.0", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.0.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7104f0639a1f3a7ebd7aac793be47d7924f569e7c10c6853083529bf9bb3fe6" +dependencies = [ + "brotli", + "cargo_metadata", + "ctor", + "dunce", + "glob", + "heck", + "html5ever", + "infer", + "json-patch", + "kuchikiki", + "log", + "memchr", + "phf 0.11.2", + "proc-macro2", + "quote", + "schemars", + "semver", + "serde", + "serde_json", + "serde_with", + "swift-rs", + "thiserror", + "toml 0.8.2", + "url", + "walkdir 2.4.0", +] + +[[package]] +name = "tauri-winres" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb" +dependencies = [ + "embed-resource", + "toml 0.7.8", +] + +[[package]] +name = "tempfile" +version = "3.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +dependencies = [ + "cfg-if", + "fastrand 2.0.1", + "rustix 0.38.31", + "windows-sys 0.52.0", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" + +[[package]] +name = "thiserror" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +dependencies = [ + "deranged", + "itoa 1.0.10", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "socket2 0.5.5", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.2.3", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.2.3", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tray-icon" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a4d9ddd4a7c0f3b6862af1c4911b529a49db4ee89310d3a258859c2f5053fdd" +dependencies = [ + "cocoa", + "core-graphics", + "crossbeam-channel", + "dirs-next", + "libappindicator", + "muda", + "objc", + "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", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset 0.9.0", + "tempfile", + "winapi 0.3.9", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "uuid" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" +dependencies = [ + "getrandom 0.2.12", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version-compare" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +dependencies = [ + "cc", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff" +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", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.49", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" + +[[package]] +name = "wasm-streams" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webview2-com" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ae9c7e420783826cf769d2c06ac9ba462f450eca5893bb8c6c6529a4e5dd33" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows 0.52.0", + "windows-core", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1345798ecd8122468840bcdf1b95e5dc6d2206c5e4b0eafa078d061f59c9bc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "webview2-com-sys" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6ad85fceee6c42fa3d61239eba5a11401bf38407a849ed5ea1b407df08cca72" +dependencies = [ + "thiserror", + "windows 0.52.0", + "windows-core", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af6abc2b9c56bd95887825a1ce56cde49a2a97c07e28db465d541f5098a2656c" +dependencies = [ + "cocoa", + "objc", + "raw-window-handle 0.5.2", + "windows-sys 0.52.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-implement", + "windows-interface", + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-implement" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12168c33176773b86799be25e2a2ba07c7aab9968b37541f1094dbd7a60c8946" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "windows-interface" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d8dc32e0095a7eeccebd0e3f09e9509365ecb3fc6ac4d6f5f14a3f6392942d1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +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", +] + +[[package]] +name = "windows-version" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "winreg" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wry" +version = "0.35.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3016c47c9b6f7029a9da7cd48af8352327226bba0e955f3c92e2966651365a9" +dependencies = [ + "base64", + "block", + "cfg_aliases 0.1.1", + "cocoa", + "core-graphics", + "crossbeam-channel", + "dunce", + "gdkx11", + "gtk", + "html5ever", + "http", + "javascriptcore-rs", + "jni", + "kuchikiki", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "objc_id", + "once_cell", + "raw-window-handle 0.5.2", + "serde", + "serde_json", + "sha2", + "soup3", + "tao-macros", + "thiserror", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows 0.52.0", + "windows-implement", + "windows-version", + "x11-dl", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "zbus" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c45d06ae3b0f9ba1fb2671268b975557d8f5a84bb5ec6e43964f87e763d8bca8" +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", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix", + "once_cell", + "ordered-stream", + "rand 0.8.5", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tracing", + "uds_windows", + "winapi 0.3.9", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a1ba45ed0ad344b85a2bb5a1fe9830aed23d67812ea39a586e7d0136439c7d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zvariant" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 00000000..7087f316 --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "steamdepotdownloadergui" +version = "3.0.0" +description = "A Tauri App" +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 = [] } + +[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"] diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 00000000..d860e1e6 --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/src-tauri/capabilities/main.json b/src-tauri/capabilities/main.json new file mode 100644 index 00000000..8f65df64 --- /dev/null +++ b/src-tauri/capabilities/main.json @@ -0,0 +1,18 @@ +{ + "$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 new file mode 100644 index 00000000..0e44dbab --- /dev/null +++ b/src-tauri/gen/schemas/capabilities.json @@ -0,0 +1 @@ +{"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 new file mode 100644 index 00000000..e42d396a --- /dev/null +++ b/src-tauri/gen/schemas/desktop-schema.json @@ -0,0 +1 @@ +{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 new file mode 100644 index 00000000..e42d396a --- /dev/null +++ b/src-tauri/gen/schemas/linux-schema.json @@ -0,0 +1 @@ +{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 new file mode 100644 index 00000000..8cef28f2 --- /dev/null +++ b/src-tauri/gen/schemas/plugin-manifests.json @@ -0,0 +1 @@ +{"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/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..6be5e50e9b9ae84d9e2ee433f32ef446495eaf3b GIT binary patch literal 3512 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e81becee571e96f76aa5667f9324c05e5e7a4479 GIT binary patch literal 7012 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 Sh@|Ye~|0>}wMPLT8jm@Y!H33Sz}5aFI6 zM9Lzqz|;A*0sGs=2A1uU!1nk2dGF7knQwr99SAFen)x(eCO;F8y2C~0FD1YxRTPcy zPWVxkUYmeuz}Tv?7&Fe-!UE{)ZW)Mb;H)^#eHDv$`dkZGguJz@^MA!ZNGAUqt{|0H zpZ7Ch9S`q5!>R%}>}62!+(T^evyO+ImSo2wpu)su4^3nw5(%)KD%gbSev^*HZZ&3( z#&c@Z0gH|}Ck)w6fh0&NBJ62ib%R}(3@$VFl*_#l2W$wQ-~4RmZZAt5O*^2Q5}Xr8Hy@c`#pM?kc?hFWxRXr*mUfUCXf4ka5DD~ zat6d85COB05l#(P9*cQZ3EC8fVdS~?&vN#rce(aF9@xp80O2{{FBvU+{X>Hoh;xI` z{$e^Nw1y*VbO8wv`8|-m?NwNaKGTGaF{P^JLB^DbOYWIbn%eT`*!^C1H36=O8Z-M> zkD~88ry`eSo`tEBN4>w7OWZwUzlh{WM1m8R6zepqGcGMaV7vWY9b?K4b6~|HVG)ec wi>I@ws#sZo7or4_*4M>7;p5{nr2pZ?Uu4>Krr0kU)&Kwi07*qoM6N<$f)&@lf&c&j literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca4f27198838968bd60ed7d371bfa23496b7fe5 GIT binary patch literal 2863 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 Y2S8W#vM)6=T>t<807*qoM6N<$f*y@n<^TWy literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c021d2ba76619c08969ab688db3b27f29257aa6f GIT binary patch literal 7737 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..621970023096ed9f494ba18ace15421a45cd65fa GIT binary patch literal 903 zcmV;219<$2P)2 z+CUKPMqaqGiH;zb!R4$B-WXS^YzQr=@UH>k4?*L)&R=zYjBrZenKdc9|JlS$SO*RJ zKt8FSTDAdk1g_WPAO!p^V!AuL;Lm;uQyV;zKq)J3i(;q*;k+pD%f3eltU`PYdy9(k0&%` zuWAPcV6|-y?|?7O1W!KSK}pbk8#~!|FA@(VJkt^V@0lio{afoAeo*f&$W2s6${5!1eKvAGD2$GZwSB98L2ZVS- zKn8ENRkZ*sb!@QugOrQNK3(sy1v%J#m|rpB+h|Nkqa3FRT>74xSs{#&saU2Lf!_Iq zKmuKAESh`gs!fneGWn+nf}l?7jE$HW!Af&vE5=G!QU)U2v&HLIBGXKk4nQx{hsHjL zLPMAo5=*uInFbq7(aa`Y2VX5wCmaeqvECOFv)a>0t>ZaEb*cJccER=BB?KFZhV$c^ znL*l8x*UYZv4WK|j?~Jt6~~F%{pk~z5A*>^M`?r5m9@RJ_x|uEtX(6Vk@Y()MVto* z93wr)%3m%|#OZ~srm>zF(JvDuTq*@;d&^>_BJm5hOU`3FjG70L#Vzv9I?`<7$T@

jU?lMi@tgxr7CqX_r3uw^y4tVU3Pm0sw;|1WSUO%?=bG`*Kmz6u4{#ti;T7AWIBAEh!(Y zz>O01&#X?Ds@L)Sb{CkG#Yz4$3o d@96)?#cz^xWoA}>B$xmI002ovPDHLkV1l3&k#zt7 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f9bc04839491e66c07b16ab03743c0c53b4109cc GIT binary patch literal 8591 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 JPDHLkV1lm|RXG3v literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..63440d7984936a9caa89275928d8dce97e4d033b GIT binary patch literal 2011 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∓t$dRJGIadE?vc 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 Kx8Vjl{{H|h@<;Lj literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b3636e4b22ba65db9061cd60a77b02c92022dfd6 GIT binary patch literal 86642 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 AKmY&$ literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e1cd2619e0b5ec089cbba5ec7b03ddf2b1dfceb6 GIT binary patch literal 14183 zcmc&*hgTC%wBCeJLXln+C6oXPQk9~VfFMXm0g;ZP*k}rfNJ&5hL6qJ^iXdG;rPl-j zsR|1I=p-T?fe4|6B>UEP-v97&PEK|+vvX&6XYSnlec!}dTN-n*A7cjqfXn2P;S~UY zLx*sHjRpFlJRYS&KS;kz4*meZ!T;|I175!of&PT~UopM_RDCs#mpz{dm* z+I40CP^Xy~>f1hst(sm!stqil+5R3%vrLgnC*MQ4d&;9 z;#YCkVE=nijZ2oA&dg$~*dLv_6klcUz7sXWtz@@nzE~+QLAmPNQ10W&z^aJ+*{z+z zt-jG-nm6Hv%>O@s2=9)k5=H0YTwx6IkHBFr70X+2Kfcr`H(y{fR z8Q<7Y37J#y=Kn5k;}svC@8y;k%s8IeiS9W5+_UWF*7kR-CtmhCKsAN~BK3Ojr_5q*Urhq{djxt3B<3W0RE@xz&;xiz;*JqY4s_gI4FUqmME@*3Wu>7lh_8& zB$3)u5php6pcfT~!%No9%OBoWCk_1S(^XeLrK~Vz*_#5FV}6cA0z453@b=X>+lDBN zch$4uT8yz18o_n~DmW=h5lu#OsWf|8?Q?Y~UvZMSV=8<2jnQZ_07yu{0QluMTf*z7 zz()`I6F$DfxX!E+iYt$JP2Ch1BzT|!T#s(*?$`C_hx;S?s=!bZ0EqPu9KNAcJiQ5s zNx}f_>rWX4>nl^Z>Y!)&ZZ2QEOl3oE@JAE_f<|z__L}RQ)qFjdoIK}NuxuUbqZN8U zy^K9S?h=4wUu9w3d^r*>Udo;y`R{yXclT?Ul5HeAEEud&gVtyZgeUN7YR$1K7RwH7b3(fRy}50|?$WJ%>i1m1@UG!Wgl zM~Jw{8I29T{4WTe8ifE(@^XYKU*%*kFofQO$?~?x!$GD+CS^IO1;dL?ph{S{`8Bz$ z+3Rh}(HG%Byj}zT(L#7oWx_*D@zZ)B+7J$KM%ZBFWEScH7N`Q}bLiy7J%B|I4p3rk zFxnkn05zEnmrFUUo?$1Rh{R}HH{k8_CQN@e1H$=mz&XEh4DUL<#v1y&9Hwy>Njhx{ z;QYr)_{=;il0nX>VEHpn9JmjEqsI(rGCd7vv)oJ5*ARa!j)NWs>g{|2;X5CJmk-EK zv^tPoETjJ_0De6*A?RcyypRQ7I013v5LzCx1NCcw-^B-sV+RWCDTgR_9#IeV!Iya( z$O1z+t~Ag}|KJ0Pry|`OIekM>To(;IzY;V)JsV@S0(o{=T(K3+-$#E`J&Jp;VQ&Gw9_7mzJ39HdS7WBj2hu>RK@AZc>+DtZ97&R$;ONX zA}>#G6M5ksnvL$nK`XM+YjvREi{N}rnk=i@wq34B>DhNqYVN;At|cO(a0o!(z0YdJ znLzBf+CAf0aj&D@?O^l8>(De=#D*wRKQ`d!>4sdkR%k$M^3u$H==}1XP-Q$SJtS=t z<>&Zd2mi@1alLgs`+8#v<^)$t0tolJE5fV(xCwLi=WMxv;Ug^c%|EOM5r#&1H^+K? zuewVttC9LA1ghD#aEURO0Fv4vjPZVXufT04CA?N2)b2@+5PYku%$CcyD}V%Ai>BOs z$1$^lluni>GavLpUVXfVlf$Q2+_a(`)ACnom>F$$ivy}SI%8hE$1Ln$LhpK?EvhvY z8L@DN$!KFla`|aeF+J>&4T*~ncpRgE)p;zcKIv zf`ROvVnV~01}M37dV@r%Hgw(7weTfLvK1_rz}##QVWD3H-Ki**{=??71MhK3vON$> z$Z9-Ff7Q%D&JJjx^sGAlT(e~p(W;jDA!~PXzOD7CSU@ms zkM41VQ8k^na;s+gi5__`g&sH+(CK$DXw*7==4%3TngKJAW}C{`leYBf^_^j17)QDb z)SOo2`A^#D4{PahKET#;UWry0mwQ)^&5}|Bo4E=ov0gh%W2DHv)R6 zt1Iu;Zj8GvX(ih~kxa=f>2|zj3kU+Xrtj<-(}|-eWQu>QKQR}7hrp=msOBIi87jSB$axtJt0QnD1iN^| zWfb=-EX$qL_lbP@H=En;JbmYoVf|6Uub>og-)g3}H%FC8%LO4so|5EYGfT-T5@;Z^ zltw{qklaj%P``y9^I13K@jhsKp?nc4dGA*ehGb-B-gvgbkK`SL%SIyretz;wo-`&? zv!=C1&geB?u7haS2K$#+2q1-jbtP{pR7K%LU}td|qUZf(W)Tc@mxhfcSeM@_{N`q} z4?q2sMJgfl*_B~X^YP+V;DLX!_R5PgIWZn~@*>g>_dp6p7-tTq1_jZB2aXFS5p#wp zxlzyL2$@NMJMFU;y`+F|GDbmrEbOusQ;1!H96=K*cps@vKl3-CyuZt?=n9h64yPgs zBRpmfq7KC{uE6A$$F1G<4o`Bvi1-4nSRVY-D?}Y~=P*jHN`#&BuI{a?csJTr>+^g- z{7Brs`OjTyT^43-?P_(oGKE!Xej6~VM~m3PzC?@xD(cN`wMsv+lqGR)$_6hg1#4F1 z>9}PH_Bp!kpGM`H4Ze!nA`2-or$Z0K<2okvs{H<^G5zoYje|s6Gf(r8(3ZgJlmITEnnmW5+=gk+X0ts!tNRpE5Jzk4)k@xh<)3BpV${G~HD)O7 zO&@C%0Ga+2g&g7Rr1MV+g>RX0SH`!%0t!`cWp;%4=~l1oo2`gb5A6VAHFN!T#g{(_ z5tssyS~!)W<)lH@*x~~puJLxDG8GTi8Xdg)C?ejt%aB7vm$Zv;ZwXUgJvmIJMwqTV z#&CSNW-F$GhQ`Go!vj#6>{eewXMM99aj!pPW#5%q#FH#ydFci$D))O)QlCi_0EM{r$W{SkJg`Ic3Y(t3i8=o`n#ziabr z5u$TNp+`u$?&8i&2D1My<)2rMJeLL(L;)PN#DEg3yTH-|2y8Hca#L=m8CZ zsdOnOC=^!y|ia&g?BlXg)XP{0d|T8Nwhfat~l z^w##=Fn@B7fBk}p#M?Cd#M$i)jc#V-PJmp_O!6-(KRm~aAdd400*00CHJEHgmtrr? z{MKr>GYPT+$^1cNJaoCrj_2Aj7| zuCpx4(fR~fB0w-hG1D8?qs17kMu&{e4=WwTB{_B?d_e7m%nMp&m9yR6?C{`^HFH@S`Ey0K9Dk^+berIidxcQvOgnin#^-O>I zNF(l_XJgQF-KE^~GGT<#MuM*uZOyoi-gj%mA`)apRZ%Yr&`tzt5oQ7i2k{w|pPsb0 zz;&P%WbPF!qjefP{yR^gkP|#%Z{|FNS5z?_^oZ1l`HLt83$&>Y@PPG0*|sG?iNE!#k<9vt`aps~m8rA=`QXa(YV{8vDwjk5 z8qW}xn20VZ$tMjiu$YDSC-dO znG6L`L2EiX}$a8Onl~{PzxAn%rIn zJNM~=!OI}ZlJWb3r-k1Yx%M)oAWjVOrio4XjjFn$-;cg%bYYx98=-fU>*<0Wviq6Z z@*1!wztr?7-8s~$;&t_6wJ&=Yh?y5%VJFjPMw#2Bw<^guDXdvy&;M?$H#UbL&_N0?VNk)as8Y*!5)|8hr8rI3bUn*@3e z9t$Q4=~u-Fu0q?R~EXBlK$R--by1SCTyQU13HNSDYY|%p60rI zCThl)A+>lEP%q?)TTAXKnnUs7#6;j-N!(AvVd-&dTcSYS&53#d!K7R)p*c?+OHhFt zu!iY}7CWs4izL;NOiZ)^DMJ62`{Xfx3Na zx3MI$BXIsU41N*L!xo8Ayg7aw^UhYhHBLkZGRi|!^1ML|Eq%?-@^enGRSNQvwA{^D zggCHKj_N=O_uq6<7O^XrL5(tZ{1U<~O(&x^4)(rGvHlR?{6hAB6rZ2~lxsjQh@9!P zd4HTdCR`}9D(30hFO$y|UEaqEAzcg!*m4AdU~}MumD*#bt4v?7mtHT&*xI4_qi`EB0 zxH_3fe{#;nF^IY@_9}o0q+WJZG0alF{F*yx6x6NzZO7Eg4o`4gewgfp(D#cj+ zoFo5kbKX#IG3nArL@%DGbb?+&x_}09GlQps&B+-15th20HvHho?~RTbmf`houEWB> z4u>mH{wJyVZR~_p8R^0x@K`)=U)Y8B%{(0Iu{lYD+$^9fLC7&1W0nn`0B^tW@I?cH zLI3^0M+;pI&uspdUEjBuK8 z^itfn`6__A%iE;|guR7ZUq8_~>}KhG&MIJir|#JR0(>~X@ZB86)@<9LNzdyX5Cv=j zsy^KMa`!8+x$E0*u1-&Dqp*4Ku*o=10elGplcNF4NQ-jb# z(*r!T#L5*oQ4==X@hy`X#1+|nE4v5sr1UOT?X;B>kzhAv;)Ve&m7RJ4Zp~XoQA$!N z$j-6C7LK{`c54$XkPIeU`*r+UI_XAisJyP~1?GInw+ZritPp3`h;8+LF~%X~(lj)I z1-o&$*EeD>)dU;Xkjj*^r}}2^wi|vo}_z5DE(j`*u=_yu`62TW68d=daMJF z>8{4-<(XxLf71f!Z{fd`do)_chDWNcwK`^xqG$Mm7=bvt^cfO)I}-I$j)^8sZ~qh(lq zZAr(i7Tdb)jpA?eL*3x<`qUuVUKQ;L_=$7EEcM&hh?zZnnunW>RO;&SurY!F(+#Vl zCuUDYDDn~E;EqSOVP#y*;MNfpZ)kKCOHf=upFFH2S0pxbYXY~BBi&$bT>ij?ES_i6 zOHu8>Bg*CHr0fqm^fF13#NtBlUGG zc4T_|`qP_zUaEVe;U^9qV9Gy8dtL6A0GT_Cp0=J{3SLe^a{sqTHs_$JMf&#LhiTn& zc1;~t=`;6TzJ|7~#ZSzoHT?bi0ebXbqX`N@qOHp^kOEUw6rq-T!@|du1l9 z(A?=_?B5{GiLa6F?$hv0oV?PmvsI-8?BO0QYnPRFRh#Z4>~;&C)+r9l#2GHUjq3H@ zZ>cAI5+nqv`PBIR4oX`T;9JV}!=Be5Qsgs{?!FZx>tXCh#m%pgC%`X1ld`je) zAWlVDB8Ty!9S^V>vz1`?P6`-7Q}5>6w*A{qM=Mep5q|rO<)I{V%x%E$tSw;rpGuCq z4CuXrO(Ah3zU+m7uU2I`umNa5x_t9b%h=ard^lP={?Ryv6@h*p0v;K_ns%rW_*|ZB zhj*tBuJOTB-j|FCU4iku>e3bjix!R6wEpGlsizXVF_1O#_y|}|_qiO}vjP4{1X8

5l#v3A#xI3*z~1~fvo9Q(N^(==!|_FZ z*duZ=+M1~)8E|otX8KNZlr?qels#x_1Xq@9IIw~@9uAREJVH)Xw^}UclF6327}E42 zT)E&?U%TK?(+K7%R!`H5oX0i)4Qn5??Iw3p5J~6_u+aWehY{DSn}3V2p$bgjnAu?o)v@iC254fXeMv50$9YrpU`N?u@QIWs)T?SP|fa}(|9 zqAX+!7`cx=4)cCBg5h~pu(?@9`)aCr#oyz$ld=#RFxYCNZCZls@4v2~*e-t6PEVvV z&bbK3b3wt(Coc!ufAbXXC<**#HQ%J9k`New6iG<5RjtO4XVO?dCvwxD{kJ#tfQr(X zg^NTwF-FwAeS_{V4bfel8l`~NbfrTR2s!G>WduFWxH(t~aK4q=6rEE^$+Uox>gJO2 z{L<;6Q6nHa5#ZEM>H58not!)z(6*_=^~8}jWf*IG$AUKVWOZ4?)GfF z+BM#*wKKmLFD7E~W3U!$IVm$k_k1f&Kz6WV8@55P?r~bcg-Za-!rvW?ns&)KOGT2~ zlkAyqhQj=P$Eg3w#K~}zH@J5bo-BfHjInKSz$@?+Z)NPD4pHj^_Qxmi`UqoTy=`sV zLVxrXGuBr=QRm|}wg75yetQQK4fY3#P_~J}zEfPnb2C4Wo!E(d*(cA;b?7$g2in<( zPn)ghX}nzJPmb6(3Dpeg_GW~Hc}Lt=lgsSZz z!5QXyz7KaR;D`3Ee}d`af{H>WWZ|Io1QI3~4Ll_`g1(cRnhLK73Ro)7zPCd={1W2x zRp%Xlvv4>!<2@}$hz|!V{T}_eHx2xkLl^hQoZTCnsjCl|W_@5Fx2(+j0ogy&Y+;L- z<)G$*CiN7hOm^s!{U>1F7U=iNk{+u~dAC!eDz%=|glFW0jEZU1&o(G_c#wTxUjnG} z#cg3>jEpUi#Mlq@t?Msg_#geK^Lx@DyHWf7=AS5vVyM7YOjvUVCfcpVR<(+5!H?9- zySI6s>o3m&*zr||=wcPGyBkQV`EWJl@bH8qobjOp+sXL*)=&yX)8aAbf~tGv?a2SN zu^Ddo-z?DWk9h9Yz#5p^NU#x~wYSd?H@w@!2Gb4G)6-utEMV~~M85Br5ff(v5O1|T z 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 String { + format!("Hello, {}! You've been greeted from Rust!", name) +} + +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"); +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 00000000..776c3cb7 --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,32 @@ +{ + "productName": "SteamDepotDownloaderGUI", + "version": "3.0.0", + "identifier": "net.00pium.depotdownloader", + "build": { + "frontendDist": "../src" + }, + "app": { + "withGlobalTauri": true, + "windows": [ + { + "title": "steamdepotdownloadergui", + "width": 800, + "height": 600 + } + ], + "security": { + "csp": null + } + }, + "bundle": { + "active": true, + "targets": "all", + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ] + } +} diff --git a/src/assets/javascript.svg b/src/assets/javascript.svg new file mode 100644 index 00000000..f9abb2b7 --- /dev/null +++ b/src/assets/javascript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/tauri.svg b/src/assets/tauri.svg new file mode 100644 index 00000000..31b62c92 --- /dev/null +++ b/src/assets/tauri.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/index.html b/src/index.html new file mode 100644 index 00000000..f06978ee --- /dev/null +++ b/src/index.html @@ -0,0 +1,46 @@ + + + + + + + Tauri App + + + + + +

+

Welcome to Tauri!

+ +
+ +

Click on the Tauri logo to learn more about the framework

+ +
+ + +
+ +

+
+ + diff --git a/src/main.js b/src/main.js new file mode 100644 index 00000000..9a7530b8 --- /dev/null +++ b/src/main.js @@ -0,0 +1,18 @@ +const { invoke } = window.__TAURI__.core; + +let greetInputEl; +let greetMsgEl; + +async function greet() { + // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command + greetMsgEl.textContent = await invoke("greet", { name: greetInputEl.value }); +} + +window.addEventListener("DOMContentLoaded", () => { + greetInputEl = document.querySelector("#greet-input"); + greetMsgEl = document.querySelector("#greet-msg"); + document.querySelector("#greet-form").addEventListener("submit", (e) => { + e.preventDefault(); + greet(); + }); +}); diff --git a/src/styles.css b/src/styles.css new file mode 100644 index 00000000..f7de85bf --- /dev/null +++ b/src/styles.css @@ -0,0 +1,109 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color: #0f0f0f; + background-color: #f6f6f6; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +.container { + margin: 0; + padding-top: 10vh; + display: flex; + flex-direction: column; + justify-content: center; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: 0.75s; +} + +.logo.tauri:hover { + filter: drop-shadow(0 0 2em #24c8db); +} + +.row { + display: flex; + justify-content: center; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} + +a:hover { + color: #535bf2; +} + +h1 { + text-align: center; +} + +input, +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + color: #0f0f0f; + background-color: #ffffff; + transition: border-color 0.25s; + box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); +} + +button { + cursor: pointer; +} + +button:hover { + border-color: #396cd8; +} +button:active { + border-color: #396cd8; + background-color: #e8e8e8; +} + +input, +button { + outline: none; +} + +#greet-input { + margin-right: 5px; +} + +@media (prefers-color-scheme: dark) { + :root { + color: #f6f6f6; + background-color: #2f2f2f; + } + + a:hover { + color: #24c8db; + } + + input, + button { + color: #ffffff; + background-color: #0f0f0f98; + } + button:active { + background-color: #0f0f0f69; + } +} From 3df1b699c5e5b4576cc519bc5fdd2e919b442feb Mon Sep 17 00:00:00 2001 From: Maarten van Heusden <50550545+mmvanheusden@users.noreply.github.com> Date: Tue, 19 Mar 2024 10:48:28 +0100 Subject: [PATCH 4/8] refactor: remove screenshot.png --- screenshot.png | Bin 76442 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 screenshot.png diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index fed499169a8b7140a2b339e487c1db02eb5a3efe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76442 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 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 5/8] 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 | 2837 +++++++++++-------- 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 | 317 ++- 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, 4952 insertions(+), 1603 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 ← + + + +Last contribution badge +Download latest release badge +Download count badge + +Steam downgrader interface +
+ + +## 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 :) + + +

+ + + + + + + + Hacktoberfest 2024 logo + +

-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", ] @@ -17,11 +17,28 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +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.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -58,185 +75,153 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" - -[[package]] -name = "as-raw-xcb-connection" -version = "1.0.1" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] -name = "async-broadcast" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" -dependencies = [ - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "2.2.0" +name = "arbitrary" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" dependencies = [ - "concurrent-queue", - "event-listener 5.1.0", - "event-listener-strategy 0.5.0", - "futures-core", - "pin-project-lite", + "derive_arbitrary", ] [[package]] -name = "async-executor" -version = "1.8.0" +name = "ashpd" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +checksum = "dd884d7c72877a94102c3715f3b1cd09ff4fac28221add3e57cfbe25c236d093" dependencies = [ - "async-lock 3.3.0", - "async-task", - "concurrent-queue", - "fastrand 2.0.1", - "futures-lite 2.2.0", - "slab", + "enumflags2", + "futures-channel", + "futures-util", + "rand 0.8.5", + "serde", + "serde_repr", + "tokio", + "url", + "zbus", ] [[package]] -name = "async-fs" -version = "1.6.0" +name = "async-broadcast" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" dependencies = [ - "async-lock 2.8.0", - "autocfg", - "blocking", - "futures-lite 1.13.0", + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", ] [[package]] -name = "async-io" -version = "1.13.0" +name = "async-channel" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" 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", + "event-listener-strategy", + "futures-core", + "pin-project-lite", ] [[package]] name = "async-io" -version = "2.3.1" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65" +checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" dependencies = [ - "async-lock 3.3.0", + "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", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", + "windows-sys 0.59.0", ] [[package]] name = "async-lock" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" 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", ] @@ -325,27 +316,33 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2", +] + [[package]] name = "blocking" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +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,43 +361,50 @@ 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", -] +checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" [[package]] -name = "bytemuck_derive" +name = "byteorder" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.49", + "serde", ] [[package]] -name = "byteorder" -version = "1.5.0" +name = "bzip2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] [[package]] -name = "bytes" -version = "1.5.0" +name = "bzip2-sys" +version = "0.1.11+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" dependencies = [ - "serde", + "cc", + "libc", + "pkg-config", ] [[package]] @@ -409,7 +413,7 @@ 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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - -[[package]] -name = "cfg_aliases" -version = "0.2.0" +version = "0.2.1" 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" @@ -608,68 +618,93 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +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 = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +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.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +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" @@ -774,17 +815,39 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-getters" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +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.17" +version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" - -[[package]] -name = "drm" -version = "0.11.1" +name = "dlopen2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" +checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6" dependencies = [ - "bitflags 2.4.2", - "bytemuck", - "drm-ffi", - "drm-fourcc", - "rustix 0.38.31", + "dlopen2_derive", + "libc", + "once_cell", + "winapi", ] [[package]] -name = "drm-ffi" -version = "0.7.1" +name = "dlopen2_derive" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6" +checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ - "drm-sys", - "rustix 0.38.31", + "proc-macro2", + "quote", + "syn 2.0.77", ] [[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" +name = "dpi" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176" +checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" dependencies = [ - "libc", - "linux-raw-sys 0.6.4", + "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 = "endi" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" + [[package]] name = "enumflags2" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" +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,37 +1021,30 @@ 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 = [ - "libc", - "windows-sys 0.52.0", + "serde", + "typeid", ] [[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "3.1.0" +name = "errno" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", + "libc", + "windows-sys 0.52.0", ] [[package]] name = "event-listener" -version = "4.0.3" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ "concurrent-queue", "parking", @@ -1000,50 +1052,20 @@ dependencies = [ ] [[package]] -name = "event-listener" -version = "5.1.0" +name = "event-listener-strategy" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ad6fd685ce13acd6d9541a30f6db6567a7a24c9ffd4ba2955d29e3f22c8b27" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "concurrent-queue", - "parking", + "event-listener", "pin-project-lite", ] -[[package]] -name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -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", - "pin-project-lite", -] - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-lite" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" 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" @@ -1580,11 +1601,23 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" -version = "0.3.6" +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 = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +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", - "pin-project-lite", ] [[package]] -name = "httparse" -version = "1.8.0" +name = "http-body-util" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", +] [[package]] -name = "httpdate" -version = "1.0.3" +name = "httparse" +version = "1.9.4" 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", + "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 0.5.5", + "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 = [ - "cfg-if", + "generic-array", ] [[package]] -name = "io-lifetimes" -version = "1.0.11" +name = "instant" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.48.0", + "cfg-if", ] [[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", ] @@ -1858,35 +1941,45 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +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" -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" +version = "0.4.14" 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 = "lockfree-object-pool" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" + [[package]] name = "log" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +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", -] - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memoffset" -version = "0.9.0" +version = "0.9.1" 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 = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + [[package]] name = "mio" -version = "0.8.10" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +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" +name = "num_enum" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.5.11" -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]] @@ -2549,11 +2797,31 @@ dependencies = [ "siphasher", ] +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +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", -] - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", + "miniz_oxide 0.7.4", ] [[package]] name = "polling" -version = "3.5.0" +version = "3.7.3" 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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" - -[[package]] -name = "raw-window-handle" -version = "0.6.0" +version = "0.6.2" 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,79 +3178,128 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "winreg 0.50.0", + "windows-registry", ] [[package]] -name = "rustc-demangle" -version = "0.1.23" +name = "rfd" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +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 = "rustc_version" -version = "0.4.0" +name = "ring" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ - "semver", + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", ] [[package]] -name = "rustix" -version = "0.37.27" +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc_version" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", + "semver", ] [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" 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 = "ryu" -version = "1.0.17" +name = "rustls-pemfile" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] [[package]] -name = "safemem" -version = "0.3.3" +name = "rustls-pki-types" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" [[package]] -name = "same-file" -version = "0.1.3" +name = "rustls-webpki" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "kernel32-sys", - "winapi 0.2.8", + "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.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "same-file" version = "1.0.6" @@ -3004,11 +3309,20 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "schemars" -version = "0.8.16" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" +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-untagged" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6" +dependencies = [ + "erased-serde", + "serde", + "typeid", +] + [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +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]] @@ -3230,29 +3579,48 @@ dependencies = [ ] [[package]] -name = "sharded-slab" -version = "0.1.7" +name = "sha256" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +checksum = "18278f6a914fa3070aa316493f7d2ddfb9ac86ebc06fa3b83bffda487e9065b0" dependencies = [ - "lazy_static", -] - -[[package]] + "async-trait", + "bytes", + "hex", + "sha2", + "tokio", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] name = "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 = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +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" - -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi 0.3.9", -] +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" 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,18 +4397,39 @@ 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", "winnow", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", +] + +[[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.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +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 = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "untrusted" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +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]] @@ -4173,17 +4661,40 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "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.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" +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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff" -dependencies = [ - "kernel32-sys", - "same-file 0.1.3", - "winapi 0.2.8", -] - -[[package]] -name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 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" -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" +version = "0.52.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] +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] -fn greet(name: &str) -> String { - format!("Hello, {}! You've been greeted from Rust!", name) +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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 ZG(Giu+waHE=KLP3?{_}_7ii^D008U2F!ule literal 0 HcmV?d00001 diff --git a/src/assets/Windows.woff b/src/assets/Windows.woff new file mode 100644 index 0000000000000000000000000000000000000000..577965973b5b625a8caeb02bcd37b0c637cc3fc7 GIT binary patch literal 15664 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 E54UjOdjJ3c literal 0 HcmV?d00001 diff --git a/src/assets/javascript.svg b/src/assets/javascript.svg deleted file mode 100644 index f9abb2b7..00000000 --- a/src/assets/javascript.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/tauri.svg b/src/assets/tauri.svg deleted file mode 100644 index 31b62c92..00000000 --- a/src/assets/tauri.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/css/style.css b/src/css/style.css new file mode 100644 index 00000000..860ceb7d --- /dev/null +++ b/src/css/style.css @@ -0,0 +1,145 @@ +@font-face { + font-family: 'Hubot Sans'; + src: url('../assets/Hubot-Sans.woff2') format('woff2 supports variations'), + url('../assets/Hubot-Sans.woff2') format('woff2-variations'); + font-weight: 700; + font-stretch: expanded; +} + +@font-face { + font-family: 'Windows'; + src: url('../assets/Windows.woff') format('woff2 supports variations'), + url('../assets/Windows.woff') format('woff2-variations'); + font-weight: 700; + font-stretch: expanded; +} + +.f1-light { + font-family: 'Hubot Sans', sans-serif; + overflow: hidden; + white-space: nowrap; +} + +/* The grey part */ +.settings-surrounding { + display: none; + position: fixed; + z-index: 1; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: hidden; + background-color: rgba(0, 0, 0, 0.33); +} + +.settings-content { + position: relative; + border-radius: 10px; + overflow: auto; + /*noinspection CssUnresolvedCustomProperty*/ + background-color: var(--bgColor-default, var(--color-canvas-default)); + margin: 5%; + padding: 25px; + border: 1.5px solid white; + width: 90vw; /* 90vw -> 90% */ + height: 90vh; /* 90vh -> 90% */ + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1), 0 6px 20px rgba(0, 0, 0, 0.1); +} + +[data-color-mode="light"] .settings-content { + border: 1.5px solid black; +} + +@media (prefers-color-scheme: light) { + [data-color-mode="auto"] .settings-content { + border: 1.5px solid black; + } +} + +.hide { + display: none; +} + +hr { + border: 0; + height: 1px; + background: black linear-gradient(to right, #0c1016, #ccc, #0c1016); +} + +[data-color-mode="light"] hr { + filter: invert(1); +} + +@media (prefers-color-scheme: light) { + [data-color-mode="auto"] hr { + filter: invert(1); + } +} + +.version-info { + position: absolute; + bottom: 0; + right: 0; + font-size: 0.9em; + padding: 5px 10px; + font-family: monospace; + cursor: pointer; +} + +.opium-button { + position: absolute; + bottom: 0; + left: 0; + font-size: 0.9em; + padding: 5px 10px; + font-family: monospace; + cursor: pointer; +} + +.AnimatedEllipsis { + display: inline-block; + overflow: hidden; + vertical-align: bottom +} + +.AnimatedEllipsis::after { + display: inline-block; + content: "..."; + animation: AnimatedEllipsis-keyframes 1s steps(4, jump-none) infinite +} + +@keyframes AnimatedEllipsis-keyframes { + 0% { + transform: translateX(-100%) + } +} + +.knopje { + position: absolute; + bottom: 0; + left: 0; + cursor: pointer; + margin-left: 5px; + margin-bottom: 4px; + + border: 1px solid #000; + background: linear-gradient(180deg, #8C8C8C 25%, #434343 75%); + display: inline-block; + font: 16px "Windows", monospace; + padding: 2px 5px; + color: darkred; + text-decoration: none; + +} + +.knopje:hover { + cursor: zoom-in; + background: linear-gradient(180deg, #b0b0b0 25%, #504f4f 75%); +} + +.knopje:active { + cursor: crosshair; + border: 1px inset black; + background: linear-gradient(180deg, #333232 25%, #504f4f 75%); +} \ No newline at end of file diff --git a/src/index.html b/src/index.html index f06978ee..b837d6b4 100644 --- a/src/index.html +++ b/src/index.html @@ -1,46 +1,275 @@ - - - - - - - Tauri App - - - - - -
-

Welcome to Tauri!

- - - -

Click on the Tauri logo to learn more about the framework

- -
- - -
- -

+ + + + + + + SteamDepotDownloaderGUI + + + + + + + + +
+
+
Steam Depot Downloader
+
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ Set location +
+ +
+ Open location +
+ + + Busy + + +
+
+ +
+
+
+ + +
+
+ +
+ + + + + Discord +
+ +
+ + SteamDB +
+ +
+ + + + Donate +
+ +
+ + + + + Tutorial +
+
+ +
+ + + + + +
- + +
+
+
+ + +

Settings

+
+

Appearance

+
+
+ +
+
+
+ + + +
+
+
+
+

Output

+
+
+
+ +
+
+
+ + +
+
+ +
+
+
+

Debugging

+
+
+ +
+
+
+ +
+ found: none +
default: none +
+
+
+
+
+
+
+ + diff --git a/src/main.js b/src/main.js deleted file mode 100644 index 9a7530b8..00000000 --- a/src/main.js +++ /dev/null @@ -1,18 +0,0 @@ -const { invoke } = window.__TAURI__.core; - -let greetInputEl; -let greetMsgEl; - -async function greet() { - // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command - greetMsgEl.textContent = await invoke("greet", { name: greetInputEl.value }); -} - -window.addEventListener("DOMContentLoaded", () => { - greetInputEl = document.querySelector("#greet-input"); - greetMsgEl = document.querySelector("#greet-msg"); - document.querySelector("#greet-form").addEventListener("submit", (e) => { - e.preventDefault(); - greet(); - }); -}); diff --git a/src/styles.css b/src/styles.css deleted file mode 100644 index f7de85bf..00000000 --- a/src/styles.css +++ /dev/null @@ -1,109 +0,0 @@ -:root { - font-family: Inter, Avenir, Helvetica, Arial, sans-serif; - font-size: 16px; - line-height: 24px; - font-weight: 400; - - color: #0f0f0f; - background-color: #f6f6f6; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; -} - -.container { - margin: 0; - padding-top: 10vh; - display: flex; - flex-direction: column; - justify-content: center; - text-align: center; -} - -.logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: 0.75s; -} - -.logo.tauri:hover { - filter: drop-shadow(0 0 2em #24c8db); -} - -.row { - display: flex; - justify-content: center; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} - -a:hover { - color: #535bf2; -} - -h1 { - text-align: center; -} - -input, -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - color: #0f0f0f; - background-color: #ffffff; - transition: border-color 0.25s; - box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); -} - -button { - cursor: pointer; -} - -button:hover { - border-color: #396cd8; -} -button:active { - border-color: #396cd8; - background-color: #e8e8e8; -} - -input, -button { - outline: none; -} - -#greet-input { - margin-right: 5px; -} - -@media (prefers-color-scheme: dark) { - :root { - color: #f6f6f6; - background-color: #2f2f2f; - } - - a:hover { - color: #24c8db; - } - - input, - button { - color: #ffffff; - background-color: #0f0f0f98; - } - button:active { - background-color: #0f0f0f69; - } -} diff --git a/src/ts/main.ts b/src/ts/main.ts new file mode 100644 index 00000000..1cf53e72 --- /dev/null +++ b/src/ts/main.ts @@ -0,0 +1,215 @@ +import $ from "jquery"; +import {invoke} from "@tauri-apps/api/core"; +import {open as openDialog} from "@tauri-apps/plugin-dialog"; +import {open as openShell} from "@tauri-apps/plugin-shell"; +import {listen} from "@tauri-apps/api/event"; + +function setLoader(state: boolean) { + $("#busy").prop("hidden", !state); +} + + +function setLoadingState(state: boolean) { + $("#busy").prop("hidden", !state); + + // loop through all buttons and input fields and disable them + for (const element of document.querySelectorAll("button, input")) { + if (element.closest("#settings-content")) continue; + (element as any).disabled = state; + } + + // These elements need additional properties to be properly disabled + $("#pickpath").prop("ariaDisabled", state); + $("#downloadbtn").prop("ariaDisabled", state); + + // disable internet buttons + for (const element of document.querySelectorAll("#internet-btns div")) { + element.ariaDisabled = String(state); + } +} + + +/// Returns list of IDs of invalid form fields +const invalidFields = () => { + const form = document.forms[0]; + + const invalidFields: string[] = []; + for (const input of form) { + const inputElement = input as HTMLInputElement; + const valid = !(inputElement.value === "" && inputElement?.parentElement?.classList.contains("required")); + if (!valid) { + invalidFields.push(inputElement.id); + } + } + // console.debug(`[${invalidFields.join(", ")}] fields invalid/empty`); + + return invalidFields; +}; + + +$(async () => { + let terminalsCollected = false; + let downloadDirectory: string | null; + + // Startup logic + setLoadingState(true); + + await invoke("preload_vectum"); + + setLoadingState(false); + + + // Collect the rest of the terminals in the background. + if (!terminalsCollected) { + setLoader(true); + // @ts-ignore + const terminals = await invoke("get_all_terminals") as string[]; + for (const terminal in terminals) { + console.log(terminal); + } + + // Allow opening settings now that it is ready to be shown. + $("#settings-button").prop("ariaDisabled", false); + terminalsCollected = true; + setLoader(false); + } + + $("#pickpath").on("click", async () => { + // Open a dialog + downloadDirectory = await openDialog({ + title: "Choose where to download the game. You can specify the directory later.", + multiple: false, + directory: true, + canCreateDirectories: true + }); + + if (downloadDirectory == null) { + // user cancelled + $("#checkpath").prop("ariaDisabled", true); + $("#checkpath").prop("disabled", true); + return; + } + + $("#checkpath").prop("ariaDisabled", false); + $("#checkpath").prop("disabled", false); + + console.log(downloadDirectory); + }); + + $("#checkpath").on("click", async () => { + console.log(`Checking path: ${downloadDirectory}`); + + if (downloadDirectory != null) { + await openShell(downloadDirectory); + } else { + $("#checkpath").prop("ariaDisabled", true); + } + }); + + $("#downloadbtn").on("click", async () => { + console.log("download button clicked"); + + if (invalidFields().length > 0) { + // Loop through invalid fields. If there are any, make those "errored" and block the download button. + for (const id of invalidFields()) { + document.getElementById(id)?.parentElement?.classList.toggle("errored", true); + $("#emptywarning").prop("hidden", false); + $("#downloadbtn").prop("ariaDisabled", true); + } + return; + } + + setLoadingState(true); + $("#downloadingnotice").prop("hidden", false); + $("#busy").prop("hidden", true); // Don't show the loader this time. + + const terminalChoice = (document.getElementById("terminal-dropdown") as HTMLSelectElement).selectedIndex; + const directoryNameChoice = $("#folder-name-custom-input").val(); + + + // Output path w/ directories chosen is: {downloadDirectory}/{directoryNameChoice} + const vectumOptions = { + terminal: terminalChoice == 14 ? null : terminalChoice, + output_directory: downloadDirectory || null, // if not specified let backend choose a path. + directory_name: directoryNameChoice || null, + }; + + const steamDownload = { + // String || null translate to Some(String) || None + username: String($("#username").val()).trim() || null, + password: String($("#password").val()).trim() || null, + app_id: $("#appid").val(), + depot_id: $("#depotid").val(), + manifest_id: $("#manifestid").val(), + options: vectumOptions + }; + + console.log(steamDownload); + await invoke("download_depotdownloader"); + + $("#downloadingnotice").prop("hidden", true); + setLoadingState(false); + + console.debug("DepotDownloader download process completed. Starting game download..."); + + await invoke("start_download", {steamDownload: steamDownload}); + console.log("All done. Ready for next game"); + }); + + $("#settings-button").on("click", async () => { + if (terminalsCollected) $("#settings-surrounding").css("display", "block"); + }); + + $("#settings-surrounding").on("click", (event) => { + if (event.target === document.getElementById("settings-surrounding")) { + $("#settings-surrounding").css("display", "none"); + + } + }); + + $("#opium-btn").on("click", () => { + openShell("https://00pium.net"); + }); + + + document.forms[0].addEventListener("input", (event) => { + // Remove errored class. This is a bad way to do it, but it works for now. + const target = event.target as HTMLElement; + target?.parentElement?.classList.toggle("errored", false); + + // If there are no more invalid fields, hide the warning and enable the download button again + if (invalidFields().length === 0) { + $("#emptywarning").prop("hidden", true); + $("#downloadbtn").prop("ariaDisabled", false); + } + }); +}); + + +let a = 0; +// Each terminal that is installed gets received from rust with this event. +listen<[number, number]>("working-terminal", (event) => { + a++; + console.log( + `Terminal #${event.payload[0]} is installed. a = ${a}` + ); + const terminalSelection = (document.getElementById("terminal-dropdown") as HTMLSelectElement); + + // Enable the
@@ -96,7 +96,7 @@ Hacktoberfest tags are added :) - + Hacktoberfest 2024 logo