From 4d4341c5325465a25001af66dffc828c8a42b1f2 Mon Sep 17 00:00:00 2001 From: Terren <11605395+terreng@users.noreply.github.com> Date: Fri, 14 Oct 2022 11:25:13 -0400 Subject: [PATCH 01/12] Add Tauri --- package-lock.json | 7958 +------------------------ package.json | 132 +- src-tauri/.gitignore | 3 + src-tauri/Cargo.lock | 3622 +++++++++++ src-tauri/Cargo.toml | 28 + src-tauri/build.rs | 3 + src-tauri/icons/128x128.png | Bin 0 -> 20855 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 50154 bytes src-tauri/icons/32x32.png | Bin 0 -> 2662 bytes src-tauri/icons/Square107x107Logo.png | Bin 0 -> 16962 bytes src-tauri/icons/Square142x142Logo.png | Bin 0 -> 24618 bytes src-tauri/icons/Square150x150Logo.png | Bin 0 -> 26546 bytes src-tauri/icons/Square284x284Logo.png | Bin 0 -> 61958 bytes src-tauri/icons/Square30x30Logo.png | Bin 0 -> 2459 bytes src-tauri/icons/Square310x310Logo.png | Bin 0 -> 69399 bytes src-tauri/icons/Square44x44Logo.png | Bin 0 -> 4447 bytes src-tauri/icons/Square71x71Logo.png | Bin 0 -> 9141 bytes src-tauri/icons/Square89x89Logo.png | Bin 0 -> 12620 bytes src-tauri/icons/StoreLogo.png | Bin 0 -> 5405 bytes src-tauri/icons/icon.icns | Bin 0 -> 321809 bytes src-tauri/icons/icon.ico | Bin 0 -> 69481 bytes src-tauri/icons/icon.png | Bin 0 -> 72827 bytes src-tauri/src/main.rs | 10 + src-tauri/tauri.conf.json | 68 + 24 files changed, 3984 insertions(+), 7840 deletions(-) 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/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 diff --git a/package-lock.json b/package-lock.json index d312efda..1aaf0d2b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7817 +1,349 @@ { "name": "simple-web-server", - "version": "1.2.12", + "version": "2.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "simple-web-server", - "version": "1.2.12", + "version": "2.0.0", "license": "MIT", "dependencies": { "atob": "^2.1.2", - "chokidar": "^4.0.1", + "dotenv": "^16.0.1", "http": "^0.0.1-security", "https": "^1.0.0", - "jszip": "^3.10.1", - "node-blob": "^0.0.2", + "node-blob": "0.0.2", "node-forge": "^1.3.1" }, "devDependencies": { - "@electron/notarize": "^2.5.0", - "dotenv": "^16.4.5", - "electron": "^33.0.2", - "electron-builder": "^25.1.8", - "electron-osx-sign": "^0.6.0" + "@tauri-apps/cli": "^1.1.1" } }, - "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==", + "node_modules/@tauri-apps/cli": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.1.1.tgz", + "integrity": "sha512-80kjMEMPBwLYCp0tTKSquy90PHHGGBvZsneNr3B/mWxNsvjzA1C0vOyGJGFrJuT2OmkvrdvuJZ5mch5hL8O1Xg==", "dev": true, - "dependencies": { - "ajv": "^6.12.0", - "ajv-keywords": "^3.4.1" + "bin": { + "tauri": "tauri.js" }, "engines": { - "node": ">= 8.9.0" + "node": ">= 10" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/@electron/asar": { - "version": "3.2.13", - "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.13.tgz", - "integrity": "sha512-pY5z2qQSwbFzJsBdgfJIzXf5ElHTVMutC2dxh0FD60njknMu3n1NnTABOcQwbb5/v5soqE79m9UjaJryBf3epg==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.0", - "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/get/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" + "url": "https://opencollective.com/tauri" }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@electron/get/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/@electron/get/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/@electron/get/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==", + "@tauri-apps/cli-darwin-arm64": "1.1.1", + "@tauri-apps/cli-darwin-x64": "1.1.1", + "@tauri-apps/cli-linux-arm-gnueabihf": "1.1.1", + "@tauri-apps/cli-linux-arm64-gnu": "1.1.1", + "@tauri-apps/cli-linux-arm64-musl": "1.1.1", + "@tauri-apps/cli-linux-x64-gnu": "1.1.1", + "@tauri-apps/cli-linux-x64-musl": "1.1.1", + "@tauri-apps/cli-win32-ia32-msvc": "1.1.1", + "@tauri-apps/cli-win32-x64-msvc": "1.1.1" + } + }, + "node_modules/@tauri-apps/cli-darwin-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-qBG11ig525/qf0f5OQxn0ON3hT8YdpTfpa4Y4kVqBJhdW50R5fadPv6tv5Dpl2TS2X7nWh/zg5mEXYoCK3HZ9w==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 4.0.0" + "node": ">= 10" } }, - "node_modules/@electron/notarize": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.5.0.tgz", - "integrity": "sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==", + "node_modules/@tauri-apps/cli-darwin-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.1.1.tgz", + "integrity": "sha512-M3dMsp78OdxisbTwAWGvy3jIb3uqThtQcUYVvqOu9LeEOHyldOBFDSht+6PTBpaJLAHFMQK2rmNxiWgigklJaA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^9.0.1", - "promise-retry": "^2.0.1" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 10.0.0" + "node": ">= 10" } }, - "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==", + "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.1.1.tgz", + "integrity": "sha512-LYlvdAd73cq+yTi6rw7j/DWIvDpeApwgQkIn+HYsNNeFhyFmABU7tmw+pekK3W3nHAkYAJ69Rl4ZdoxdNGKmHg==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" + "node": ">= 10" } }, - "node_modules/@electron/osx-sign": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.1.tgz", - "integrity": "sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==", + "node_modules/@tauri-apps/cli-linux-arm64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.1.1.tgz", + "integrity": "sha512-o/hbMQIKuFI7cTNpeQBHD/OCNJOBIci78faKms/t6AstLXx0QJuRHDk477Rg6VVy/I3BBKbyATALbmcTq+ti0A==", + "cpu": [ + "arm64" + ], "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" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12.0.0" + "node": ">= 10" } }, - "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==", + "node_modules/@tauri-apps/cli-linux-arm64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.1.1.tgz", + "integrity": "sha512-8Ci4qlDnXIp93XqUrtzFCBDatUzPHpZq7L3bociUbWpvy/bnlzxp1C/C+vwdc4uS1MiAp9v3BFgrU4i0f0Z3QQ==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" + "node": ">= 10" } }, - "node_modules/@electron/rebuild": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.1.tgz", - "integrity": "sha512-f6596ZHpEq/YskUd8emYvOUne89ij8mQgjYFA5ru25QwbrRO+t1SImofdDv7kKOuWCmVOuU5tvfkbgGxIl3E/w==", + "node_modules/@tauri-apps/cli-linux-x64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.1.1.tgz", + "integrity": "sha512-ES4Bkx2JAI8+dDNDJswhLS3yqt+yT/4C6UfGOPIHFxcXUh6fe36eUllrTt+HLRS9xTZbYnteJy7ebq2TqMkaxw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@malept/cross-spawn-promise": "^2.0.0", - "chalk": "^4.0.0", - "debug": "^4.1.1", - "detect-libc": "^2.0.1", - "fs-extra": "^10.0.0", - "got": "^11.7.0", - "node-abi": "^3.45.0", - "node-api-version": "^0.2.0", - "node-gyp": "^9.0.0", - "ora": "^5.1.0", - "read-binary-file-arch": "^1.0.6", - "semver": "^7.3.5", - "tar": "^6.0.5", - "yargs": "^17.0.1" - }, - "bin": { - "electron-rebuild": "lib/cli.js" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12.13.0" + "node": ">= 10" } }, - "node_modules/@electron/universal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.1.tgz", - "integrity": "sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==", + "node_modules/@tauri-apps/cli-linux-x64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.1.1.tgz", + "integrity": "sha512-qrN1WOMAaDl+LE8P8iO0+DYlrWNTc9jIu/CsnVY/LImTn79ZPxEkcVBo0UGeKRI7f10TfvkVmLCBLxTz8QhEyA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@electron/asar": "^3.2.7", - "@malept/cross-spawn-promise": "^2.0.0", - "debug": "^4.3.1", - "dir-compare": "^4.2.0", - "fs-extra": "^11.1.1", - "minimatch": "^9.0.3", - "plist": "^3.1.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=16.4" + "node": ">= 10" } }, - "node_modules/@electron/universal/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "node_modules/@tauri-apps/cli-win32-ia32-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.1.1.tgz", + "integrity": "sha512-vw7VOmrQlywHhFV3pf54udf2FRNj9dg9WP1gL0My55FnB+w+PWS9Ipm871kX5qepmChdnZHKq9fsqE2uTjX//Q==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=14.14" + "node": ">= 10" } }, - "node_modules/@electron/universal/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/@tauri-apps/cli-win32-x64-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.1.1.tgz", + "integrity": "sha512-OukxlLLi3AoCN4ABnqCDTiiC7xJGWukAjrKCIx7wFISrLjNfsrnH7/UOzuopfGpZChSe2c+AamVmcpBfVsEmJA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 10" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" }, "engines": { - "node": ">=12" + "node": ">= 4.5.0" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, + "node_modules/dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "node_modules/http": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz", + "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==" }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "node_modules/https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", + "integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=" }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/node-blob": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/node-blob/-/node-blob-0.0.2.tgz", + "integrity": "sha512-82wiGzMht96gPQDUYaZBdZEVvYD9aEhU6Bt9KLCr4rADZPRd7dQVY2Yj0ZG/1vp4DhVkL49nJT/M3CiMTAt3ag==" }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">= 6.13.0" } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + } + }, + "dependencies": { + "@tauri-apps/cli": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.1.1.tgz", + "integrity": "sha512-80kjMEMPBwLYCp0tTKSquy90PHHGGBvZsneNr3B/mWxNsvjzA1C0vOyGJGFrJuT2OmkvrdvuJZ5mch5hL8O1Xg==", "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "requires": { + "@tauri-apps/cli-darwin-arm64": "1.1.1", + "@tauri-apps/cli-darwin-x64": "1.1.1", + "@tauri-apps/cli-linux-arm-gnueabihf": "1.1.1", + "@tauri-apps/cli-linux-arm64-gnu": "1.1.1", + "@tauri-apps/cli-linux-arm64-musl": "1.1.1", + "@tauri-apps/cli-linux-x64-gnu": "1.1.1", + "@tauri-apps/cli-linux-x64-musl": "1.1.1", + "@tauri-apps/cli-win32-ia32-msvc": "1.1.1", + "@tauri-apps/cli-win32-x64-msvc": "1.1.1" } }, - "node_modules/@malept/cross-spawn-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", - "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "@tauri-apps/cli-darwin-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-qBG11ig525/qf0f5OQxn0ON3hT8YdpTfpa4Y4kVqBJhdW50R5fadPv6tv5Dpl2TS2X7nWh/zg5mEXYoCK3HZ9w==", "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": ">= 12.13.0" - } + "optional": true }, - "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==", + "@tauri-apps/cli-darwin-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.1.1.tgz", + "integrity": "sha512-M3dMsp78OdxisbTwAWGvy3jIb3uqThtQcUYVvqOu9LeEOHyldOBFDSht+6PTBpaJLAHFMQK2rmNxiWgigklJaA==", "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" - } + "optional": true }, - "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==", + "@tauri-apps/cli-linux-arm-gnueabihf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.1.1.tgz", + "integrity": "sha512-LYlvdAd73cq+yTi6rw7j/DWIvDpeApwgQkIn+HYsNNeFhyFmABU7tmw+pekK3W3nHAkYAJ69Rl4ZdoxdNGKmHg==", "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" - } + "optional": true }, - "node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "@tauri-apps/cli-linux-arm64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.1.1.tgz", + "integrity": "sha512-o/hbMQIKuFI7cTNpeQBHD/OCNJOBIci78faKms/t6AstLXx0QJuRHDk477Rg6VVy/I3BBKbyATALbmcTq+ti0A==", "dev": true, - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "optional": true }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", + "@tauri-apps/cli-linux-arm64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.1.1.tgz", + "integrity": "sha512-8Ci4qlDnXIp93XqUrtzFCBDatUzPHpZq7L3bociUbWpvy/bnlzxp1C/C+vwdc4uS1MiAp9v3BFgrU4i0f0Z3QQ==", "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "optional": true }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "@tauri-apps/cli-linux-x64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.1.1.tgz", + "integrity": "sha512-ES4Bkx2JAI8+dDNDJswhLS3yqt+yT/4C6UfGOPIHFxcXUh6fe36eUllrTt+HLRS9xTZbYnteJy7ebq2TqMkaxw==", "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } + "optional": true }, - "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==", + "@tauri-apps/cli-linux-x64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.1.1.tgz", + "integrity": "sha512-qrN1WOMAaDl+LE8P8iO0+DYlrWNTc9jIu/CsnVY/LImTn79ZPxEkcVBo0UGeKRI7f10TfvkVmLCBLxTz8QhEyA==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } + "optional": true }, - "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==", + "@tauri-apps/cli-win32-ia32-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.1.1.tgz", + "integrity": "sha512-vw7VOmrQlywHhFV3pf54udf2FRNj9dg9WP1gL0My55FnB+w+PWS9Ipm871kX5qepmChdnZHKq9fsqE2uTjX//Q==", "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } + "optional": true }, - "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==", + "@tauri-apps/cli-win32-x64-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.1.1.tgz", + "integrity": "sha512-OukxlLLi3AoCN4ABnqCDTiiC7xJGWukAjrKCIx7wFISrLjNfsrnH7/UOzuopfGpZChSe2c+AamVmcpBfVsEmJA==", "dev": true, - "engines": { - "node": ">= 10" - } + "optional": true }, - "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" - } + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, - "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": "*" - } + "dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" }, - "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/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@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/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "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": "20.17.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.0.tgz", - "integrity": "sha512-a7zRo0f0eLo9K5X9Wp5cAqTUNGzuFLDG2R7C4HY2BhcMAsxgSPuRvAC1ZB6QkuUQXf0YZAgfOX2ZyrBa2n4nHQ==", - "dev": true, - "dependencies": { - "undici-types": "~6.19.2" - } - }, - "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.10", - "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.10.tgz", - "integrity": "sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==", - "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/@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/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", - "dev": true, - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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": "5.0.0-alpha.10", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-5.0.0-alpha.10.tgz", - "integrity": "sha512-Ev4jj3D7Bo+O0GPD2NMvJl+PGiBAfS7pUGawntBNpCbxtpncfUixqFj9z9Jme7V7s3LBGqsWZZP54fxBX3JKJw==", - "dev": true - }, - "node_modules/app-builder-lib": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-25.1.8.tgz", - "integrity": "sha512-pCqe7dfsQFBABC1jeKZXQWhGcCPF3rPCXDdfqVKjIeWBcXzyC1iOWZdfFhGl+S9MyE/k//DFmC6FzuGAUudNDg==", - "dev": true, - "dependencies": { - "@develar/schema-utils": "~2.6.5", - "@electron/notarize": "2.5.0", - "@electron/osx-sign": "1.3.1", - "@electron/rebuild": "3.6.1", - "@electron/universal": "2.0.1", - "@malept/flatpak-bundler": "^0.4.0", - "@types/fs-extra": "9.0.13", - "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.9", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", - "chromium-pickle-js": "^0.2.0", - "config-file-ts": "0.2.8-rc1", - "debug": "^4.3.4", - "dotenv": "^16.4.5", - "dotenv-expand": "^11.0.6", - "ejs": "^3.1.8", - "electron-publish": "25.1.7", - "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", - "json5": "^2.2.3", - "lazy-val": "^1.0.5", - "minimatch": "^10.0.0", - "resedit": "^1.7.0", - "sanitize-filename": "^1.6.3", - "semver": "^7.3.8", - "tar": "^6.1.12", - "temp-file": "^3.4.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "dmg-builder": "25.1.8", - "electron-builder-squirrel-windows": "25.1.8" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "dev": true, - "peer": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "peer": true, - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "deprecated": "This package is no longer supported.", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "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.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "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/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.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/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "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" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "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-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "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": "25.1.7", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-25.1.7.tgz", - "integrity": "sha512-7jPjzBwEGRbwNcep0gGNpLXG9P94VA3CPAZQCzxkFXiV2GMQKlziMbY//rXPI7WKfhsvGgFXjTcXdBEwgXw9ww==", - "dev": true, - "dependencies": { - "@types/debug": "^4.1.6", - "7zip-bin": "~5.2.0", - "app-builder-bin": "5.0.0-alpha.10", - "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.2.10", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "debug": "^4.3.4", - "fs-extra": "^10.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "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.10", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.10.tgz", - "integrity": "sha512-6p/gfG1RJSQeIbz8TK5aPNkoztgY1q5TgmGFMAXcY8itsGW6Y2ld1ALsZ5UJn8rog7hKF3zHx5iQbNQ8uLcRlw==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "sax": "^1.2.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/cacache/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/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.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "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/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/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "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/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "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/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "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": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "dev": true, - "peer": true, - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/compress-commons/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "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.8-rc1", - "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.8-rc1.tgz", - "integrity": "sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==", - "dev": true, - "dependencies": { - "glob": "^10.3.12", - "typescript": "^5.4.3" - } - }, - "node_modules/config-file-ts/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/config-file-ts/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/config-file-ts/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "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/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "peer": true, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "dev": true, - "peer": true, - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/crc32-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "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/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "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/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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": "4.2.0", - "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-4.2.0.tgz", - "integrity": "sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.5", - "p-limit": "^3.1.0 " - } - }, - "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": "25.1.8", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-25.1.8.tgz", - "integrity": "sha512-NoXo6Liy2heSklTI5OIZbCgXC1RzrDQsZkeEwXhdOro3FT1VBOvbubvscdPnjVuQ4AMwwv61oaH96AbiYg9EnQ==", - "dev": true, - "dependencies": { - "app-builder-lib": "25.1.8", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", - "fs-extra": "^10.1.0", - "iconv-lite": "^0.6.2", - "js-yaml": "^4.1.0" - }, - "optionalDependencies": { - "dmg-license": "^1.0.11" - } - }, - "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/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dotenv-expand": { - "version": "11.0.6", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz", - "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==", - "dev": true, - "dependencies": { - "dotenv": "^16.4.4" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron": { - "version": "33.0.2", - "resolved": "https://registry.npmjs.org/electron/-/electron-33.0.2.tgz", - "integrity": "sha512-C2WksfP0COsMHbYXSJG68j6S3TjuGDrw/YT42B526yXalIlNQZ2GeAYKryg6AEMkIp3p8TUfDRD0+HyiyCt/nw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@electron/get": "^2.0.0", - "@types/node": "^20.9.0", - "extract-zip": "^2.0.1" - }, - "bin": { - "electron": "cli.js" - }, - "engines": { - "node": ">= 12.20.55" - } - }, - "node_modules/electron-builder": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-25.1.8.tgz", - "integrity": "sha512-poRgAtUHHOnlzZnc9PK4nzG53xh74wj2Jy7jkTrqZ0MWPoHGh1M2+C//hGeYdA+4K8w4yiVCNYoLXF7ySj2Wig==", - "dev": true, - "dependencies": { - "app-builder-lib": "25.1.8", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", - "chalk": "^4.1.2", - "dmg-builder": "25.1.8", - "fs-extra": "^10.1.0", - "is-ci": "^3.0.0", - "lazy-val": "^1.0.5", - "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-squirrel-windows": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-25.1.8.tgz", - "integrity": "sha512-2ntkJ+9+0GFP6nAISiMabKt6eqBB0kX1QqHNWFWAXgi0VULKGisM46luRFpIBiU3u/TDmhZMM8tzvo2Abn3ayg==", - "dev": true, - "peer": true, - "dependencies": { - "app-builder-lib": "25.1.8", - "archiver": "^5.3.1", - "builder-util": "25.1.7", - "fs-extra": "^10.1.0" - } - }, - "node_modules/electron-osx-sign": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz", - "integrity": "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==", - "deprecated": "Please use @electron/osx-sign moving forward. Be aware the API is slightly different", - "dev": true, - "dependencies": { - "bluebird": "^3.5.0", - "compare-version": "^0.1.2", - "debug": "^2.6.8", - "isbinaryfile": "^3.0.2", - "minimist": "^1.2.0", - "plist": "^3.0.1" - }, - "bin": { - "electron-osx-flat": "bin/electron-osx-flat.js", - "electron-osx-sign": "bin/electron-osx-sign.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/electron-osx-sign/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/electron-osx-sign/node_modules/isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", - "dev": true, - "dependencies": { - "buffer-alloc": "^1.2.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/electron-osx-sign/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/electron-publish": { - "version": "25.1.7", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-25.1.7.tgz", - "integrity": "sha512-+jbTkR9m39eDBMP4gfbqglDd6UvBC7RLh5Y0MhFSsc6UkGHj9Vj9TWobxevHYMMqmoujL11ZLjfPpMX+Pt6YEg==", - "dev": true, - "dependencies": { - "@types/fs-extra": "^9.0.11", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", - "chalk": "^4.1.2", - "fs-extra": "^10.1.0", - "lazy-val": "^1.0.5", - "mime": "^2.5.2" - } - }, - "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/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "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, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "dev": true - }, - "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/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/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/filelist/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/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "peer": true - }, - "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/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.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/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "deprecated": "This package is no longer supported.", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "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.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "optional": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "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==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "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/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/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.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "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.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "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-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/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "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": { - "version": "0.0.1-security", - "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz", - "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==" - }, - "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": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "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": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", - "integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==" - }, - "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "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" - } - ] - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, - "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/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "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==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "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==" - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dev": true, - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "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-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-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isbinaryfile": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.4.tgz", - "integrity": "sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==", - "dev": true, - "engines": { - "node": ">= 18.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/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "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/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true - }, - "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-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": "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/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "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/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "peer": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "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.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true, - "peer": true - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true, - "peer": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true, - "peer": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true, - "peer": true - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true, - "peer": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/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/make-fetch-happen/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/make-fetch-happen/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/make-fetch-happen/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "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-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=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": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "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/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "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/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/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-abi": { - "version": "3.71.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", - "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "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/node-api-version": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.0.tgz", - "integrity": "sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - } - }, - "node_modules/node-blob": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/node-blob/-/node-blob-0.0.2.tgz", - "integrity": "sha512-82wiGzMht96gPQDUYaZBdZEVvYD9aEhU6Bt9KLCr4rADZPRd7dQVY2Yj0ZG/1vp4DhVkL49nJT/M3CiMTAt3ag==" - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-gyp": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", - "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^12.13 || ^14.13 || >=16" - } - }, - "node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "dev": true, - "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "deprecated": "This package is no longer supported.", - "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "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": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "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/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/pe-library": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/pe-library/-/pe-library-0.4.1.tgz", - "integrity": "sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==", - "dev": true, - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/jet2jet" - } - }, - "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/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "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-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "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.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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-binary-file-arch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz", - "integrity": "sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "bin": { - "read-binary-file-arch": "cli.js" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "peer": true, - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/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, - "peer": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "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/resedit": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/resedit/-/resedit-1.7.2.tgz", - "integrity": "sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==", - "dev": true, - "dependencies": { - "pe-library": "^0.4.1" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/jet2jet" - } - }, - "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/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/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "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/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "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/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "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.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true - }, - "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/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/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "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/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "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/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, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", - "dev": true, - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/socks-proxy-agent/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/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.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true - }, - "node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "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_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "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/string-width-cjs": { - "name": "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-ansi-cjs": { - "name": "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/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.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "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/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "peer": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tar/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/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/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "dev": true, - "engines": { - "node": ">=14.14" - } - }, - "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-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/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true - }, - "node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "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/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.5", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", - "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==", - "dev": true - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "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/verror/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/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "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/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "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/wrap-ansi-cjs": { - "name": "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": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "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" - } - }, - "node_modules/zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "dev": true, - "peer": true, - "dependencies": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "dev": true, - "peer": true, - "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - } - }, - "dependencies": { - "@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, - "requires": { - "ajv": "^6.12.0", - "ajv-keywords": "^3.4.1" - } - }, - "@electron/asar": { - "version": "3.2.13", - "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.13.tgz", - "integrity": "sha512-pY5z2qQSwbFzJsBdgfJIzXf5ElHTVMutC2dxh0FD60njknMu3n1NnTABOcQwbb5/v5soqE79m9UjaJryBf3epg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.0", - "commander": "^5.0.0", - "glob": "^7.1.6", - "minimatch": "^3.0.4" - }, - "dependencies": { - "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, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@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, - "requires": { - "debug": "^4.1.1", - "env-paths": "^2.2.0", - "fs-extra": "^8.1.0", - "global-agent": "^3.0.0", - "got": "^11.8.5", - "progress": "^2.0.3", - "semver": "^6.2.0", - "sumchecker": "^3.0.1" - }, - "dependencies": { - "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, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - }, - "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 - } - } - }, - "@electron/notarize": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.5.0.tgz", - "integrity": "sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "fs-extra": "^9.0.1", - "promise-retry": "^2.0.1" - }, - "dependencies": { - "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, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } - } - }, - "@electron/osx-sign": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.1.tgz", - "integrity": "sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true - } - } - }, - "@electron/rebuild": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.1.tgz", - "integrity": "sha512-f6596ZHpEq/YskUd8emYvOUne89ij8mQgjYFA5ru25QwbrRO+t1SImofdDv7kKOuWCmVOuU5tvfkbgGxIl3E/w==", - "dev": true, - "requires": { - "@malept/cross-spawn-promise": "^2.0.0", - "chalk": "^4.0.0", - "debug": "^4.1.1", - "detect-libc": "^2.0.1", - "fs-extra": "^10.0.0", - "got": "^11.7.0", - "node-abi": "^3.45.0", - "node-api-version": "^0.2.0", - "node-gyp": "^9.0.0", - "ora": "^5.1.0", - "read-binary-file-arch": "^1.0.6", - "semver": "^7.3.5", - "tar": "^6.0.5", - "yargs": "^17.0.1" - } - }, - "@electron/universal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.1.tgz", - "integrity": "sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==", - "dev": true, - "requires": { - "@electron/asar": "^3.2.7", - "@malept/cross-spawn-promise": "^2.0.0", - "debug": "^4.3.1", - "dir-compare": "^4.2.0", - "fs-extra": "^11.1.1", - "minimatch": "^9.0.3", - "plist": "^3.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } - } - }, - "@malept/cross-spawn-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", - "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "@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, - "requires": { - "debug": "^4.1.1", - "fs-extra": "^9.0.0", - "lodash": "^4.17.15", - "tmp-promise": "^3.0.2" - }, - "dependencies": { - "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, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } - } - }, - "@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true - }, - "@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 - }, - "@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, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "@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 - }, - "@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, - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "@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, - "requires": { - "@types/ms": "*" - } - }, - "@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, - "requires": { - "@types/node": "*" - } - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@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 - }, - "@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, - "requires": { - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "dev": true - }, - "@types/node": { - "version": "20.17.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.0.tgz", - "integrity": "sha512-a7zRo0f0eLo9K5X9Wp5cAqTUNGzuFLDG2R7C4HY2BhcMAsxgSPuRvAC1ZB6QkuUQXf0YZAgfOX2ZyrBa2n4nHQ==", - "dev": true, - "requires": { - "undici-types": "~6.19.2" - } - }, - "@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, - "requires": { - "@types/node": "*", - "xmlbuilder": ">=11.0.1" - } - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/verror": { - "version": "1.10.10", - "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.10.tgz", - "integrity": "sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==", - "dev": true, - "optional": true - }, - "@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, - "requires": { - "@types/node": "*" - } - }, - "@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", - "dev": true - }, - "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 - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "requires": { - "debug": "^4.3.4" - } - }, - "agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", - "dev": true, - "requires": { - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "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, - "requires": {} - }, - "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 - }, - "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, - "requires": { - "color-convert": "^2.0.1" - } - }, - "app-builder-bin": { - "version": "5.0.0-alpha.10", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-5.0.0-alpha.10.tgz", - "integrity": "sha512-Ev4jj3D7Bo+O0GPD2NMvJl+PGiBAfS7pUGawntBNpCbxtpncfUixqFj9z9Jme7V7s3LBGqsWZZP54fxBX3JKJw==", - "dev": true - }, - "app-builder-lib": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-25.1.8.tgz", - "integrity": "sha512-pCqe7dfsQFBABC1jeKZXQWhGcCPF3rPCXDdfqVKjIeWBcXzyC1iOWZdfFhGl+S9MyE/k//DFmC6FzuGAUudNDg==", - "dev": true, - "requires": { - "@develar/schema-utils": "~2.6.5", - "@electron/notarize": "2.5.0", - "@electron/osx-sign": "1.3.1", - "@electron/rebuild": "3.6.1", - "@electron/universal": "2.0.1", - "@malept/flatpak-bundler": "^0.4.0", - "@types/fs-extra": "9.0.13", - "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.9", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", - "chromium-pickle-js": "^0.2.0", - "config-file-ts": "0.2.8-rc1", - "debug": "^4.3.4", - "dotenv": "^16.4.5", - "dotenv-expand": "^11.0.6", - "ejs": "^3.1.8", - "electron-publish": "25.1.7", - "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", - "json5": "^2.2.3", - "lazy-val": "^1.0.5", - "minimatch": "^10.0.0", - "resedit": "^1.7.0", - "sanitize-filename": "^1.6.3", - "semver": "^7.3.8", - "tar": "^6.1.12", - "temp-file": "^3.4.0" - } - }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "dev": true, - "peer": true, - "requires": { - "archiver-utils": "^2.1.0", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "peer": true, - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - } - }, - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "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 - }, - "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 - }, - "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 - }, - "async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true - }, - "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 - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "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 - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "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 - }, - "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 - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "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, - "requires": { - "bluebird": "^3.5.5" - } - }, - "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 - }, - "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, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "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 - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "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 - }, - "builder-util": { - "version": "25.1.7", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-25.1.7.tgz", - "integrity": "sha512-7jPjzBwEGRbwNcep0gGNpLXG9P94VA3CPAZQCzxkFXiV2GMQKlziMbY//rXPI7WKfhsvGgFXjTcXdBEwgXw9ww==", - "dev": true, - "requires": { - "@types/debug": "^4.1.6", - "7zip-bin": "~5.2.0", - "app-builder-bin": "5.0.0-alpha.10", - "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.2.10", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "debug": "^4.3.4", - "fs-extra": "^10.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "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" - } - }, - "builder-util-runtime": { - "version": "9.2.10", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.10.tgz", - "integrity": "sha512-6p/gfG1RJSQeIbz8TK5aPNkoztgY1q5TgmGFMAXcY8itsGW6Y2ld1ALsZ5UJn8rog7hKF3zHx5iQbNQ8uLcRlw==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "sax": "^1.2.4" - } - }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "dependencies": { - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "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 - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "requires": { - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "requires": { - "readdirp": "^4.0.1" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "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 - }, - "ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true - }, - "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, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "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, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true - }, - "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, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "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, - "requires": { - "color-name": "~1.1.4" - } - }, - "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 - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "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, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "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 - }, - "compare-version": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", - "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", - "dev": true - }, - "compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "dev": true, - "peer": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "config-file-ts": { - "version": "0.2.8-rc1", - "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.8-rc1.tgz", - "integrity": "sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==", - "dev": true, - "requires": { - "glob": "^10.3.12", - "typescript": "^5.4.3" - }, - "dependencies": { - "glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - } - }, - "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "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, - "requires": { - "buffer": "^5.1.0" - } - }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "peer": true - }, - "crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "dev": true, - "peer": true, - "requires": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "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, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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, - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "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 - } - } - }, - "defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "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 - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "optional": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "dev": true - }, - "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 - }, - "dir-compare": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-4.2.0.tgz", - "integrity": "sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==", - "dev": true, - "requires": { - "minimatch": "^3.0.5", - "p-limit": "^3.1.0 " - }, - "dependencies": { - "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, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "dmg-builder": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-25.1.8.tgz", - "integrity": "sha512-NoXo6Liy2heSklTI5OIZbCgXC1RzrDQsZkeEwXhdOro3FT1VBOvbubvscdPnjVuQ4AMwwv61oaH96AbiYg9EnQ==", - "dev": true, - "requires": { - "app-builder-lib": "25.1.8", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", - "dmg-license": "^1.0.11", - "fs-extra": "^10.1.0", - "iconv-lite": "^0.6.2", - "js-yaml": "^4.1.0" - } - }, - "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, - "requires": { - "@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" - } - }, - "dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "dev": true - }, - "dotenv-expand": { - "version": "11.0.6", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz", - "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==", - "dev": true, - "requires": { - "dotenv": "^16.4.4" - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "requires": { - "jake": "^10.8.5" - } - }, - "electron": { - "version": "33.0.2", - "resolved": "https://registry.npmjs.org/electron/-/electron-33.0.2.tgz", - "integrity": "sha512-C2WksfP0COsMHbYXSJG68j6S3TjuGDrw/YT42B526yXalIlNQZ2GeAYKryg6AEMkIp3p8TUfDRD0+HyiyCt/nw==", - "dev": true, - "requires": { - "@electron/get": "^2.0.0", - "@types/node": "^20.9.0", - "extract-zip": "^2.0.1" - } - }, - "electron-builder": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-25.1.8.tgz", - "integrity": "sha512-poRgAtUHHOnlzZnc9PK4nzG53xh74wj2Jy7jkTrqZ0MWPoHGh1M2+C//hGeYdA+4K8w4yiVCNYoLXF7ySj2Wig==", - "dev": true, - "requires": { - "app-builder-lib": "25.1.8", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", - "chalk": "^4.1.2", - "dmg-builder": "25.1.8", - "fs-extra": "^10.1.0", - "is-ci": "^3.0.0", - "lazy-val": "^1.0.5", - "simple-update-notifier": "2.0.0", - "yargs": "^17.6.2" - } - }, - "electron-builder-squirrel-windows": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-25.1.8.tgz", - "integrity": "sha512-2ntkJ+9+0GFP6nAISiMabKt6eqBB0kX1QqHNWFWAXgi0VULKGisM46luRFpIBiU3u/TDmhZMM8tzvo2Abn3ayg==", - "dev": true, - "peer": true, - "requires": { - "app-builder-lib": "25.1.8", - "archiver": "^5.3.1", - "builder-util": "25.1.7", - "fs-extra": "^10.1.0" - } - }, - "electron-osx-sign": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz", - "integrity": "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "compare-version": "^0.1.2", - "debug": "^2.6.8", - "isbinaryfile": "^3.0.2", - "minimist": "^1.2.0", - "plist": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", - "dev": true, - "requires": { - "buffer-alloc": "^1.2.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "electron-publish": { - "version": "25.1.7", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-25.1.7.tgz", - "integrity": "sha512-+jbTkR9m39eDBMP4gfbqglDd6UvBC7RLh5Y0MhFSsc6UkGHj9Vj9TWobxevHYMMqmoujL11ZLjfPpMX+Pt6YEg==", - "dev": true, - "requires": { - "@types/fs-extra": "^9.0.11", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", - "chalk": "^4.1.2", - "fs-extra": "^10.1.0", - "lazy-val": "^1.0.5", - "mime": "^2.5.2" - } - }, - "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 - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "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, - "requires": { - "once": "^1.4.0" - } - }, - "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 - }, - "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 - }, - "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 - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "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, - "optional": true - }, - "exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "dev": true - }, - "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, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - } - }, - "extsprintf": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", - "dev": true, - "optional": true - }, - "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 - }, - "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 - }, - "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, - "requires": { - "pend": "~1.2.0" - } - }, - "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, - "requires": { - "minimatch": "^5.0.1" - }, - "dependencies": { - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "dependencies": { - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true - } - } - }, - "form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "peer": true - }, - "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, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "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, - "requires": { - "minipass": "^3.0.0" - } - }, - "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 - }, - "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 - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "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 - }, - "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "optional": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "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, - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "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, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "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, - "requires": { - "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" - } - }, - "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, - "requires": { - "define-properties": "^1.1.3" - } - }, - "got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "dev": true, - "requires": { - "@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" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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, - "requires": { - "function-bind": "^1.1.1" - } - }, - "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 - }, - "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, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "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 - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "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, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "http": { - "version": "0.0.1-security", - "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz", - "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==" - }, - "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 - }, - "http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "requires": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - } - }, - "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, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, - "https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", - "integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==" - }, - "https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", - "dev": true, - "requires": { - "agent-base": "^7.0.2", - "debug": "4" - } - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "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, - "requires": { - "cli-truncate": "^2.1.0", - "node-addon-api": "^1.6.3" - } - }, - "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, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "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, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dev": true, - "requires": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - } - }, - "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, - "requires": { - "ci-info": "^3.2.0" - } - }, - "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 - }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isbinaryfile": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.4.tgz", - "integrity": "sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "dev": true, - "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "dependencies": { - "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, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "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, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true - }, - "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 - }, - "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 - }, - "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 - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "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 - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "peer": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "requires": { - "immediate": "~3.0.5" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true, - "peer": true - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true, - "peer": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true, - "peer": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true, - "peer": true - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true, - "peer": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - }, - "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, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "dependencies": { - "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, - "requires": { - "debug": "4" - } - }, - "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, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "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, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - } - } - }, - "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, - "requires": { - "escape-string-regexp": "^4.0.0" - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true - }, - "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 - }, - "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, - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "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 - }, - "minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "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 - }, - "negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "dev": true - }, - "node-abi": { - "version": "3.71.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", - "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", - "dev": true, - "requires": { - "semver": "^7.3.5" - } - }, - "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-api-version": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.0.tgz", - "integrity": "sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg==", - "dev": true, - "requires": { - "semver": "^7.3.5" - } - }, - "node-blob": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/node-blob/-/node-blob-0.0.2.tgz", - "integrity": "sha512-82wiGzMht96gPQDUYaZBdZEVvYD9aEhU6Bt9KLCr4rADZPRd7dQVY2Yj0ZG/1vp4DhVkL49nJT/M3CiMTAt3ag==" - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" - }, - "node-gyp": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", - "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", - "dev": true, - "requires": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - } - }, - "nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "dev": true, - "requires": { - "abbrev": "^1.0.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "peer": true - }, - "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 - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - }, - "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 - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, - "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 - }, - "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, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "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 - }, - "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 - }, - "path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true - } - } - }, - "pe-library": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/pe-library/-/pe-library-0.4.1.tgz", - "integrity": "sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==", - "dev": true - }, - "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 - }, - "plist": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", - "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", - "dev": true, - "requires": { - "@xmldom/xmldom": "^0.8.8", - "base64-js": "^1.5.1", - "xmlbuilder": "^15.1.1" - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "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, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "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, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true - }, - "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 - }, - "read-binary-file-arch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz", - "integrity": "sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==", - "dev": true, - "requires": { - "debug": "^4.3.4" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "peer": true, - "requires": { - "minimatch": "^5.1.0" - }, - "dependencies": { - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "peer": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==" - }, - "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 - }, - "resedit": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/resedit/-/resedit-1.7.2.tgz", - "integrity": "sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==", - "dev": true, - "requires": { - "pe-library": "^0.4.1" - } - }, - "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 - }, - "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "requires": { - "lowercase-keys": "^2.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "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, - "requires": { - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "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, - "requires": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true - }, - "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, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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 - }, - "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, - "requires": { - "type-fest": "^0.13.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "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, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "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 - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "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, - "requires": { - "semver": "^7.5.3" - } - }, - "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, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "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 - }, - "socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", - "dev": true, - "requires": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "dependencies": { - "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, - "requires": { - "debug": "4" - } - } - } - }, - "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 - }, - "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, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } + "http": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz", + "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==" }, - "stat-mode": { + "https": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", - "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "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, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string-width-cjs": { - "version": "npm:string-width@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, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "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, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "sumchecker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", - "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dev": true, - "requires": { - "debug": "^4.1.0" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "peer": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "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, - "requires": { - "async-exit-hook": "^2.0.1", - "fs-extra": "^10.0.0" - } - }, - "tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "dev": true - }, - "tmp-promise": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", - "dev": true, - "requires": { - "tmp": "^0.2.0" - } - }, - "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, - "requires": { - "utf8-byte-length": "^1.0.1" - } - }, - "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 - }, - "typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "dev": true - }, - "undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true - }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "utf8-byte-length": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", - "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "verror": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", - "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "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 - } - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "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, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "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" - } - }, - "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 - }, - "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, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } + "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", + "integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=" }, - "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 + "node-blob": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/node-blob/-/node-blob-0.0.2.tgz", + "integrity": "sha512-82wiGzMht96gPQDUYaZBdZEVvYD9aEhU6Bt9KLCr4rADZPRd7dQVY2Yj0ZG/1vp4DhVkL49nJT/M3CiMTAt3ag==" }, - "zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "dev": true, - "peer": true, - "requires": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "dev": true, - "peer": true, - "requires": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" } } } diff --git a/package.json b/package.json index c012b647..615e4213 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,9 @@ { "name": "simple-web-server", "productName": "Simple Web Server", - "version": "1.2.12", + "version": "2.0.0", "main": "index.js", - "description": "Create a local web server in just a few clicks with an easy to use interface. A continuation of Web Server for Chrome, built with Electron.", + "description": "Create a local web server in just a few clicks with an easy to use interface. A continuation of Web Server for Chrome, built with Tauri.", "author": { "name": "Simple Web Server", "url": "https://simplewebserver.org", @@ -23,136 +23,14 @@ "homepage": "https://simplewebserver.org", "bugs": "https://github.com/terreng/simple-web-server/issues", "scripts": { - "start": "electron .", - "make": "electron-builder", - "make_macos_mas_universal": "electron-builder --mac mas --universal -c.mac.identity=\"Terren Gurule\"", - "make_macos_mas_universal_dev": "electron-builder --mac mas-dev --universal -c.mac.identity=\"Terren Gurule\"", - "make_all_macos": "electron-builder --mac dmg zip --x64 --arm64 -c.mac.identity=\"Terren Gurule\"", - "make_all_windows": "electron-builder --windows nsis zip --x64 --ia32 --arm64", - "make_all_windows_appx": "electron-builder --windows appx --x64 --ia32 --arm64", - "make_all_linux": "electron-builder --linux deb rpm zip --x64 --arm64", - "make_all": "npm run make_all_macos && npm run make_macos_mas_universal && npm run make_all_linux && npm run make_all_windows && npm run make_all_windows_appx" - }, - "build": { - "buildVersion": "31", - "appId": "org.simplewebserver.simplewebserver", - "productName": "Simple Web Server", - "copyright": "MIT License", - "files": [ - "./index.js", - "./directory-listing-template-static.html", - "./directory-listing-template.html", - "./index.html", - "./LICENSE", - "./main.js", - "./lang/**", - "./mime.js", - "./open_source_licenses.txt", - "./preload.js", - "./style.css", - "./WSC.js", - "./bookmarks.js", - "./plugin.js", - "./images/logo.png", - "./images/icon.ico", - "./images/menuBarIconTemplate.png", - "./images/menuBarIconTemplate@2x.png", - "./images/menuBarIconTemplate@4x.png", - "./images/menu-down.svg", - "./images/menu-down-dark.svg", - "./fonts/**", - "./WSC/**" - ], - "directories": { - "buildResources": "build" - }, - "afterSign": "build/notarize.js", - "mac": { - "icon": "images/icon.icns", - "gatekeeperAssess": false, - "hardenedRuntime": true, - "entitlements": "build/entitlements.mac.plist", - "entitlementsInherit": "build/entitlements_inherit.mac.plist", - "category": "public.app-category.developer-tools", - "electronLanguages": [ - "en", - "es", - "ru", - "zh_CN", - "ja", - "fr", - "pt_PT", - "it", - "uk", - "de", - "sv" - ], - "artifactName": "Simple-Web-Server-macOS-${version}-${arch}.${ext}" - }, - "mas": { - "gatekeeperAssess": false, - "hardenedRuntime": false, - "entitlements": "build/entitlements.mas.plist", - "entitlementsInherit": "build/entitlements_inherit.mas.plist", - "provisioningProfile": "build/mas_provisioning_profile.provisionprofile" - }, - "masDev": { - "gatekeeperAssess": false, - "hardenedRuntime": false, - "entitlements": "build/entitlements.mas.plist", - "entitlementsInherit": "build/entitlements_inherit.mas.plist", - "provisioningProfile": "build/development_provisioning_profile.provisionprofile" - }, - "dmg": { - "sign": false - }, - "win": { - "icon": "images/icon.ico", - "publisherName": "Simple Web Server", - "artifactName": "Simple-Web-Server-Windows-${version}-${arch}.${ext}" - }, - "nsis": { - "createDesktopShortcut": "always", - "artifactName": "Simple-Web-Server-Installer-${version}-${arch}.${ext}", - "license": "LICENSE" - }, - "linux": { - "icon": "images/512x512.png", - "category": "Development", - "vendor": "Simple Web Server", - "artifactName": "Simple-Web-Server-Linux-${version}-${arch}.${ext}" - }, - "appx": { - "publisherDisplayName": "Terren", - "displayName": "Simple Web Server", - "applicationId": "org.simplewebserver.simplewebserver", - "identityName": "50257Terren.SimpleWebServer", - "publisher": "CN=823B8264-37A4-4589-B252-9E44611E01EB", - "languages": [ - "en-US", - "es", - "zh-CN", - "ru", - "ja", - "fr-FR", - "pt-PT", - "it-IT", - "uk", - "de-DE", - "sv-SE" - ] - } + "tauri": "tauri" }, "devDependencies": { - "@electron/notarize": "^2.5.0", - "dotenv": "^16.4.5", - "electron": "^33.0.2", - "electron-builder": "^25.1.8", - "electron-osx-sign": "^0.6.0" + "@tauri-apps/cli": "^1.1.1" }, "dependencies": { "atob": "^2.1.2", - "chokidar": "^4.0.1", + "dotenv": "^16.0.1", "http": "^0.0.1-security", "https": "^1.0.0", "jszip": "^3.10.1", diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore new file mode 100644 index 00000000..aba21e24 --- /dev/null +++ b/src-tauri/.gitignore @@ -0,0 +1,3 @@ +# 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..accb13bc --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,3622 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aho-corasick" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +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 = "anyhow" +version = "1.0.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" + +[[package]] +name = "app" +version = "0.1.0" +dependencies = [ + "serde", + "serde_json", + "tauri", + "tauri-build", +] + +[[package]] +name = "atk" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" +dependencies = [ + "atk-sys", + "bitflags", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.2", +] + +[[package]] +name = "attohttpc" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fcf00bc6d5abb29b5f97e3c61a90b6d3caa12f3faf897d4a3e3607c050a35a7" +dependencies = [ + "flate2", + "http", + "log", + "native-tls", + "serde", + "serde_json", + "serde_urlencoded", + "url", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "3.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +dependencies = [ + "memchr", +] + +[[package]] +name = "bumpalo" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" + +[[package]] +name = "bytemuck" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" + +[[package]] +name = "cairo-rs" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" +dependencies = [ + "bitflags", + "cairo-sys-rs", + "glib", + "libc", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.0.2", +] + +[[package]] +name = "cargo_toml" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e72c3ff59e3b7d24630206bb63a73af65da4ed5df1f76ee84dfafb9fee2ba60e" +dependencies = [ + "serde", + "serde_derive", + "toml", +] + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" +dependencies = [ + "byteorder", + "uuid 0.8.2", +] + +[[package]] +name = "cfg-expr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-expr" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cocoa" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" +dependencies = [ + "bitflags", + "block", + "core-foundation", + "core-graphics-types", + "foreign-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 = "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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +dependencies = [ + "bitflags", + "core-foundation", + "foreign-types", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" +dependencies = [ + "cfg-if", +] + +[[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", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "ctor" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "dbus" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8bcdd56d2e5c4ed26a529c5a9029f5db8290d433497506f958eae3be148eb6" +dependencies = [ + "libc", + "libdbus-sys", + "winapi", +] + +[[package]] +name = "deflate" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" +dependencies = [ + "adler32", + "byteorder", +] + +[[package]] +name = "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 0.4.0", + "syn", +] + +[[package]] +name = "digest" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +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", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + +[[package]] +name = "dtoa-short" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" +dependencies = [ + "dtoa", +] + +[[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.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "field-offset" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" +dependencies = [ + "memoffset", + "rustc_version 0.3.3", +] + +[[package]] +name = "filetime" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "windows-sys", +] + +[[package]] +name = "flate2" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +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.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" + +[[package]] +name = "futures-executor" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" + +[[package]] +name = "futures-macro" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-task" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" + +[[package]] +name = "futures-util" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" +dependencies = [ + "futures-core", + "futures-macro", + "futures-task", + "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.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" +dependencies = [ + "bitflags", + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.2", +] + +[[package]] +name = "gdk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps 6.0.2", +] + +[[package]] +name = "gdkx11-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps 6.0.2", + "x11", +] + +[[package]] +name = "generator" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc184cace1cea8335047a471cc1da80f18acf8a76f3bab2028d499e328948ec7" +dependencies = [ + "cc", + "libc", + "log", + "rustversion", + "windows 0.32.0", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[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.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gio" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-io", + "gio-sys", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.2", + "winapi", +] + +[[package]] +name = "glib" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "once_cell", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" +dependencies = [ + "anyhow", + "heck 0.4.0", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "glib-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +dependencies = [ + "libc", + "system-deps 6.0.2", +] + +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + +[[package]] +name = "globset" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "gobject-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.0.2", +] + +[[package]] +name = "gtk" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" +dependencies = [ + "atk", + "bitflags", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "once_cell", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps 6.0.2", +] + +[[package]] +name = "gtk3-macros" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" +dependencies = [ + "anyhow", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "html5ever" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "http" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.4", +] + +[[package]] +name = "http-range" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" + +[[package]] +name = "ico" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a4b3331534254a9b64095ae60d3dc2a8225a7a70229cd5888be127cdc1f6804" +dependencies = [ + "byteorder", + "png 0.11.0", +] + +[[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.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +dependencies = [ + "crossbeam-utils", + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + +[[package]] +name = "image" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd8e4fb07cf672b1642304e731ef8a6a4c7891d67bb4fd4f5ce58cd6ed86803c" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-rational", + "num-traits", +] + +[[package]] +name = "indexmap" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "infer" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" +dependencies = [ + "cfb", +] + +[[package]] +name = "inflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5f9f47468e9a76a6452271efadc88fe865a82be91fe75e6c0c57b87ccea59d4" +dependencies = [ + "adler32", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[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.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" + +[[package]] +name = "javascriptcore-rs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +dependencies = [ + "bitflags", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" +dependencies = [ + "serde", + "serde_json", + "treediff", +] + +[[package]] +name = "kuchiki" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" +dependencies = [ + "cssparser", + "html5ever", + "matches", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" + +[[package]] +name = "libdbus-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c185b5b7ad900923ef3a8ff594083d4d9b5aea80bb4f32b8342363138c0d456b" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "line-wrap" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +dependencies = [ + "safemem", +] + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[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 = "mac-notification-sys" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e72d50edb17756489e79d52eb146927bec8eba9dd48faadf9ef08bca3791ad5" +dependencies = [ + "cc", + "dirs-next", + "objc-foundation", + "objc_id", + "time", +] + +[[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.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" +dependencies = [ + "log", + "phf 0.8.0", + "phf_codegen", + "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", +] + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +dependencies = [ + "adler", +] + +[[package]] +name = "native-tls" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ndk" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +dependencies = [ + "bitflags", + "jni-sys", + "ndk-sys", + "num_enum", + "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.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +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 = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "notify-rust" +version = "4.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368e89ea58df747ce88be669ae44e79783c1d30bfd540ad0fc520b3f41f0b3b0" +dependencies = [ + "dbus", + "mac-notification-sys", + "tauri-winrt-notification", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + +[[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-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_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 = "once_cell" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" + +[[package]] +name = "open" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a3100141f1733ea40b53381b0ae3117330735ef22309a190ac57b9576ea716" +dependencies = [ + "pathdiff", + "windows-sys", +] + +[[package]] +name = "openssl" +version = "0.10.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5230151e44c0f05157effb743e8d517472843121cf9243e8b81393edb5acd9ce" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "os_info" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4750134fb6a5d49afc80777394ad5d95b04bc12068c6abb92fae8f43817270f" +dependencies = [ + "log", + "serde", + "winapi", +] + +[[package]] +name = "os_pipe" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dceb7e43f59c35ee1548045b2c72945a5a3bb6ce6d6f07cdc13dc8f6bc4930a" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pango" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +dependencies = [ + "bitflags", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.2", +] + +[[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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys", +] + +[[package]] +name = "paste" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" + +[[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.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pest" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[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_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[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_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_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", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[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 = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" + +[[package]] +name = "plist" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" +dependencies = [ + "base64", + "indexmap", + "line-wrap", + "serde", + "time", + "xml-rs", +] + +[[package]] +name = "png" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0b0cabbbd20c2d7f06dbf015e06aad59b6ca3d9ed14848783e98af9aaf19925" +dependencies = [ + "bitflags", + "deflate", + "inflate", + "num-iter", +] + +[[package]] +name = "png" +version = "0.17.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0e7f4c94ec26ff209cee506314212639d6c91b80afb82984819fafce9df01c" +dependencies = [ + "bitflags", + "crc32fast", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + +[[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.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +dependencies = [ + "once_cell", + "thiserror", + "toml", +] + +[[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", + "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.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "proc-macro2" +version = "1.0.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +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.7", +] + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" +dependencies = [ + "cty", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.7", + "redox_syscall", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "rfd" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +dependencies = [ + "block", + "dispatch", + "glib-sys", + "gobject-sys", + "gtk-sys", + "js-sys", + "lazy_static", + "log", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.37.0", +] + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.14", +] + +[[package]] +name = "rustversion" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" + +[[package]] +name = "ryu" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +dependencies = [ + "lazy_static", + "windows-sys", +] + +[[package]] +name = "scoped-tls" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "security-framework" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074" +dependencies = [ + "itoa 1.0.4", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[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.4", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[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", +] + +[[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 = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +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", +] + +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "soup2" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +dependencies = [ + "bitflags", + "gio", + "glib", + "libc", + "once_cell", + "soup2-sys", +] + +[[package]] +name = "soup2-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" +dependencies = [ + "bitflags", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[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.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +dependencies = [ + "loom", +] + +[[package]] +name = "string_cache" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" +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 = "strum" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" +dependencies = [ + "heck 0.3.3", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "syn" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-deps" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +dependencies = [ + "cfg-expr 0.9.1", + "heck 0.3.3", + "pkg-config", + "toml", + "version-compare 0.0.11", +] + +[[package]] +name = "system-deps" +version = "6.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709" +dependencies = [ + "cfg-expr 0.10.3", + "heck 0.4.0", + "pkg-config", + "toml", + "version-compare 0.1.0", +] + +[[package]] +name = "tao" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43336f5d1793543ba96e2a1e75f3a5c7dcd592743be06a0ab3a190f4fcb4b934" +dependencies = [ + "bitflags", + "cairo-rs", + "cc", + "cocoa", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dispatch", + "gdk", + "gdk-pixbuf", + "gdk-sys", + "gdkx11-sys", + "gio", + "glib", + "glib-sys", + "gtk", + "image", + "instant", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot", + "paste", + "png 0.17.6", + "raw-window-handle", + "scopeguard", + "serde", + "unicode-segmentation", + "uuid 1.2.1", + "windows 0.39.0", + "windows-implement", + "x11-dl", +] + +[[package]] +name = "tar" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tauri" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efbf22abd61d95ca9b2becd77f9db4c093892f73e8a07d21d8b0b2bf71a7bcea" +dependencies = [ + "anyhow", + "attohttpc", + "cocoa", + "dirs-next", + "embed_plist", + "encoding_rs", + "flate2", + "futures-util", + "glib", + "glob", + "gtk", + "heck 0.4.0", + "http", + "ignore", + "notify-rust", + "objc", + "once_cell", + "open", + "os_info", + "os_pipe", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "regex", + "rfd", + "semver 1.0.14", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "shared_child", + "state", + "tar", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "tempfile", + "thiserror", + "tokio", + "url", + "uuid 1.2.1", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-build" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0991fb306849897439dbd4a72e4cbed2413e2eb26cb4b3ba220b94edba8b4b88" +dependencies = [ + "anyhow", + "cargo_toml", + "heck 0.4.0", + "json-patch", + "semver 1.0.14", + "serde_json", + "tauri-utils", + "winres", +] + +[[package]] +name = "tauri-codegen" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "356fa253e40ae4d6ff02075011f2f2bb4066f5c9d8c1e16ca6912d7b75903ba6" +dependencies = [ + "base64", + "brotli", + "ico", + "json-patch", + "plist", + "png 0.17.6", + "proc-macro2", + "quote", + "regex", + "semver 1.0.14", + "serde", + "serde_json", + "sha2", + "tauri-utils", + "thiserror", + "time", + "uuid 1.2.1", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6051fd6940ddb22af452340d03c66a3e2f5d72e0788d4081d91e31528ccdc4d" +dependencies = [ + "heck 0.4.0", + "proc-macro2", + "quote", + "syn", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-runtime" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49439a5ea47f474572b854972f42eda2e02a470be5ca9609cc83bb66945abe2" +dependencies = [ + "gtk", + "http", + "http-range", + "infer", + "rand 0.8.5", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror", + "uuid 1.2.1", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-runtime-wry" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dce920995fd49907aa9bea7249ed1771454f11f7611924c920a1f75fb614d4" +dependencies = [ + "cocoa", + "gtk", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "tauri-runtime", + "tauri-utils", + "uuid 1.2.1", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8fdae6f29cef959809a3c3afef510c5b715a446a597ab8b791497585363f39" +dependencies = [ + "brotli", + "ctor", + "glob", + "heck 0.4.0", + "html5ever", + "json-patch", + "kuchiki", + "memchr", + "phf 0.10.1", + "proc-macro2", + "quote", + "semver 1.0.14", + "serde", + "serde_json", + "serde_with", + "thiserror", + "url", + "walkdir", + "windows 0.39.0", +] + +[[package]] +name = "tauri-winrt-notification" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58de036c4d2e20717024de2a3c4bf56c301f07b21bc8ef9b57189fce06f1f3b" +dependencies = [ + "quick-xml", + "strum", + "windows 0.39.0", +] + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[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.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +dependencies = [ + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" +dependencies = [ + "itoa 1.0.4", + "libc", + "num_threads", +] + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "1.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +dependencies = [ + "autocfg", + "bytes", + "memchr", + "num_cpus", + "pin-project-lite", +] + +[[package]] +name = "toml" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +dependencies = [ + "serde", +] + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "treediff" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" +dependencies = [ + "serde_json", +] + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + +[[package]] +name = "ucd-trie" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + +[[package]] +name = "unicode-bidi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[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.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +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 = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" + +[[package]] +name = "uuid" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feb41e78f93363bb2df8b0e86a2ca30eed7806ea16ea0c790d757cf93f79be83" +dependencies = [ + "getrandom 0.2.7", +] + +[[package]] +name = "valuable" +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 = "version-compare" +version = "0.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" + +[[package]] +name = "version-compare" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[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.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" + +[[package]] +name = "web-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29952969fb5e10fe834a52eb29ad0814ccdfd8387159b0933edf1344a1c9cdcc" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup2", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" +dependencies = [ + "atk-sys", + "bitflags", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pango-sys", + "pkg-config", + "soup2-sys", + "system-deps 6.0.2", +] + +[[package]] +name = "webview2-com" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "webview2-com-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "webview2-com-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7" +dependencies = [ + "regex", + "serde", + "serde_json", + "thiserror", + "windows 0.39.0", + "windows-bindgen", + "windows-metadata", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[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 = "windows" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbedf6db9096bc2364adce0ae0aa636dcd89f3c3f2cd67947062aaf0ca2a10ec" +dependencies = [ + "windows_aarch64_msvc 0.32.0", + "windows_i686_gnu 0.32.0", + "windows_i686_msvc 0.32.0", + "windows_x86_64_gnu 0.32.0", + "windows_x86_64_msvc 0.32.0", +] + +[[package]] +name = "windows" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +dependencies = [ + "windows_aarch64_msvc 0.37.0", + "windows_i686_gnu 0.37.0", + "windows_i686_msvc 0.37.0", + "windows_x86_64_gnu 0.37.0", + "windows_x86_64_msvc 0.37.0", +] + +[[package]] +name = "windows" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" +dependencies = [ + "windows-implement", + "windows_aarch64_msvc 0.39.0", + "windows_i686_gnu 0.39.0", + "windows_i686_msvc 0.39.0", + "windows_x86_64_gnu 0.39.0", + "windows_x86_64_msvc 0.39.0", +] + +[[package]] +name = "windows-bindgen" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41" +dependencies = [ + "windows-metadata", + "windows-tokens", +] + +[[package]] +name = "windows-implement" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" +dependencies = [ + "syn", + "windows-tokens", +] + +[[package]] +name = "windows-metadata" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" + +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc 0.36.1", + "windows_i686_gnu 0.36.1", + "windows_i686_msvc 0.36.1", + "windows_x86_64_gnu 0.36.1", + "windows_x86_64_msvc 0.36.1", +] + +[[package]] +name = "windows-tokens" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" + +[[package]] +name = "windows_i686_gnu" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" + +[[package]] +name = "windows_i686_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" + +[[package]] +name = "windows_i686_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_i686_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" + +[[package]] +name = "windows_i686_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" + +[[package]] +name = "winres" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" +dependencies = [ + "toml", +] + +[[package]] +name = "wry" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff5c1352b4266fdf92c63479d2f58ab4cd29dc4e78fbc1b62011ed1227926945" +dependencies = [ + "base64", + "block", + "cocoa", + "core-graphics", + "crossbeam-channel", + "gdk", + "gio", + "glib", + "gtk", + "html5ever", + "http", + "kuchiki", + "libc", + "log", + "objc", + "objc_id", + "once_cell", + "serde", + "serde_json", + "sha2", + "tao", + "thiserror", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "x11" +version = "2.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7ae97874a928d821b061fce3d1fc52f08071dd53c89a6102bc06efcac3b2908" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c83627bc137605acc00bb399c7b908ef460b621fc37c953db2b09f88c449ea6" +dependencies = [ + "lazy_static", + "libc", + "pkg-config", +] + +[[package]] +name = "xattr" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +dependencies = [ + "libc", +] + +[[package]] +name = "xml-rs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 00000000..63f45a5e --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "app" +version = "0.1.0" +description = "A Tauri App" +authors = ["you"] +license = "" +repository = "" +default-run = "app" +edition = "2021" +rust-version = "1.57" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[build-dependencies] +tauri-build = { version = "1.1.1", features = [] } + +[dependencies] +serde_json = "1.0" +serde = { version = "1.0", features = ["derive"] } +tauri = { version = "1.1.1", features = ["api-all"] } + +[features] +# by default Tauri runs in production mode +# when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL +default = [ "custom-protocol" ] +# this feature is used for production builds where `devPath` points to the filesystem +# DO NOT remove this +custom-protocol = [ "tauri/custom-protocol" ] diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 00000000..795b9b7c --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..f345ecd28fd78f4c49267e6006d1db7caf0f1c48 GIT binary patch literal 20855 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 UsYC`7kN^Mx07*qoM6N<$f(5i1k^lez literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e140c40d1945255b2f462342080f4a99d8cf913a GIT binary patch literal 16962 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 Z{a?G##!QrF=a&Eg002ovPDHLkV1fXK_&xvt literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6584a4b52c9d56d548c4fe51557bc59247f62c09 GIT binary patch literal 24618 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

5RdGB)hhMG%B-@~UnnpOLkj6^h* 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c8bb666e089be64a5b58ae28031946255a392179 GIT binary patch literal 26546 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 JPDHLkV1km(*M|TA literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..06167b12886d39a392950b5c6924806ab5f79258 GIT binary patch literal 4447 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 Hu0mjfUXOHV literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..276808413ae383718cf0e26e3cec36d237b7da94 GIT binary patch literal 321809 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%0As`T|$dJrjNd~BX$pO=C9 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 z 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≻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
X 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IZz{qW-JL2EyeVOg&0BqonsDnQz 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..fcfe62b34acb5207a39ae44bd5c610a43789bd1e GIT binary patch literal 69481 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..70ee5b0c5f5528e0e41e553e8add9e62aa194403 GIT binary patch literal 72827 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

|%l^#_i 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 literal 0 HcmV?d00001 diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 00000000..e994ea4d --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,10 @@ +#![cfg_attr( + all(not(debug_assertions), target_os = "windows"), + windows_subsystem = "windows" +)] + +fn main() { + tauri::Builder::default() + .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..98e886ec --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,68 @@ +{ + "$schema": "../node_modules/@tauri-apps/cli/schema.json", + "build": { + "beforeBuildCommand": "", + "beforeDevCommand": "", + "devPath": "http://127.0.0.1:8765/index.html", + "distDir": "../.." + }, + "package": { + "productName": "Simple Web Server", + "version": "2.0.0" + }, + "tauri": { + "allowlist": { + "all": true + }, + "bundle": { + "active": true, + "category": "DeveloperTool", + "copyright": "MIT License", + "deb": { + "depends": [] + }, + "externalBin": [], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "identifier": "org.simplewebserver.simplewebserver", + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": null + }, + "resources": [], + "shortDescription": "Create a local web server in just a few clicks with an easy to use interface.", + "targets": "all", + "windows": { + "certificateThumbprint": null, + "digestAlgorithm": "sha256", + "timestampUrl": "" + } + }, + "security": { + "csp": null + }, + "updater": { + "active": false + }, + "windows": [ + { + "fullscreen": false, + "height": 700, + "minHeight": 200, + "resizable": true, + "title": "Simple Web Server", + "width": 420, + "minWidth": 280 + } + ] + } +} From 5805aad3140e6550196fba2b2868cf3cde6721c3 Mon Sep 17 00:00:00 2001 From: Terren <11605395+terreng@users.noreply.github.com> Date: Fri, 14 Oct 2022 13:06:50 -0400 Subject: [PATCH 02/12] Call rust from js --- index.html | 5 + main.js | 207 ++++++++++++++++++++------------------ src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 10 +- src-tauri/src/main.rs | 44 +++++++- src-tauri/tauri.conf.json | 3 +- 6 files changed, 160 insertions(+), 111 deletions(-) diff --git a/index.html b/index.html index 38e65f5b..fde8bb60 100644 --- a/index.html +++ b/index.html @@ -5,6 +5,11 @@ + diff --git a/main.js b/main.js index f9c7cfe7..6763a1dc 100644 --- a/main.js +++ b/main.js @@ -10,103 +10,112 @@ let lang; let languages; var language; -window.api.initipc((event, message) => { - if (message.type === "init") { - lang = message.lang; - languages = message.languages; - language = message.language; - - document.body.innerHTML = document.body.innerHTML.replace(/{lang\.([\w.]+?)}/g, function(match) {if (!lang[match.substring(6, match.length-1)]) {console.warn("Couldn't find lang string: "+match.substring(6, match.length-1))}; return lang[match.substring(6, match.length-1)]}); - - document.getElementById("language").innerHTML = Array.from(Object.entries(languages)).map(function(a) {return ''}).join(""); - document.getElementById("language").value = language; - - document.documentElement.setAttribute("lang", language); - - running_states = { - "stopped": { - "text": lang.state_stopped, - "list_color": "var(--status-gray)", - "edit_color": "var(--text-primary)" - }, - "starting": { - "text": lang.state_starting, - "list_color": "var(--status-gray)", - "edit_color": "var(--text-primary)" - }, - "running": { - "text": lang.state_running, - "list_color": "var(--status-green)", - "edit_color": "var(--status-green)" - }, - "error": { - "text": lang.state_error, - "list_color": "var(--status-red)", - "edit_color": "var(--status-red)" - }, - "unknown": { - "text": lang.state_starting, - "list_color": "var(--status-gray)", - "edit_color": "var(--text-primary)" - }, - } +invoke('init').then(function(message) { + lang = message.lang; + languages = message.languages; + language = message.language; + + document.body.innerHTML = document.body.innerHTML.replace(/{lang\.([\w.]+?)}/g, function(match) {if (!lang[match.substring(6, match.length-1)]) {console.warn("Couldn't find lang string: "+match.substring(6, match.length-1))}; return lang[match.substring(6, match.length-1)]}); + + document.getElementById("language").innerHTML = Array.from(Object.entries(languages)).map(function(a) {return ''}).join(""); + document.getElementById("language").value = language; + + document.documentElement.setAttribute("lang", language); + + running_states = { + "stopped": { + "text": lang.state_stopped, + "list_color": "var(--status-gray)", + "edit_color": "var(--text-primary)" + }, + "starting": { + "text": lang.state_starting, + "list_color": "var(--status-gray)", + "edit_color": "var(--text-primary)" + }, + "running": { + "text": lang.state_running, + "list_color": "var(--status-green)", + "edit_color": "var(--status-green)" + }, + "error": { + "text": lang.state_error, + "list_color": "var(--status-red)", + "edit_color": "var(--status-red)" + }, + "unknown": { + "text": lang.state_starting, + "list_color": "var(--status-gray)", + "edit_color": "var(--text-primary)" + }, + } - config = message.config; - ip = message.ip; - install_source = message.install_source; - plugins = message.plugins; - platform = message.platform; - document.getElementById("version_number").innerText = message.version; - if (config.background != null && config.updates != null) openMain(); - else initWelcome(); - document.getElementById("stop_and_quit_button").style.display = config.background ? "block" : "none"; - document.body.style.visibility = "visible"; - refreshPluginList(); - if (platform == "darwin" || platform == "win32") { - if (platform == "darwin") { - document.querySelector("#tray").setAttribute("aria-label", lang.setting_tray_macos); - document.querySelector("#tray > .label").firstChild.textContent = lang.setting_tray_macos+" "; - } else { - document.querySelector("#tray").setAttribute("aria-label", lang.setting_tray_windows); - document.querySelector("#tray > .label").firstChild.textContent = lang.setting_tray_windows+" "; - } + config = message.config; + ip = message.ip; + install_source = message.install_source; + plugins = message.plugins; + platform = message.platform; + document.getElementById("version_number").innerText = message.version; + if (config.background != null && config.updates != null) openMain(); + else initWelcome(); + document.getElementById("stop_and_quit_button").style.display = config.background ? "block" : "none"; + document.body.style.visibility = "visible"; + refreshPluginList(); + if (platform == "darwin" || platform == "win32") { + if (platform == "darwin") { + document.querySelector("#tray").setAttribute("aria-label", lang.setting_tray_macos); + document.querySelector("#tray > .label").firstChild.textContent = lang.setting_tray_macos+" "; } else { - document.querySelector("#tray").style.display = "none"; - } - } else if (message.type === "state") { - server_states = message.server_states; - updateRunningStates(); - } else if (message.type === "update") { - ignore_update = message.version; - if (message.ignored !== true) { - document.getElementById("update_banner").style.display = "block"; - document.getElementById("update_banner").href = message.url; - document.getElementById("update_banner_text").innerText = message.text || lang.update_available; - if (message.attributes.indexOf("high_priority") > -1) { - document.getElementById("update_banner").classList.add("high_priority"); - } else { - document.getElementById("update_banner").classList.remove("high_priority"); - } + document.querySelector("#tray").setAttribute("aria-label", lang.setting_tray_windows); + document.querySelector("#tray > .label").firstChild.textContent = lang.setting_tray_windows+" "; } - document.getElementById("update_notice").style.display = ""; - document.getElementById("update_notice").querySelector("a").href = message.url; - } else if (message.type === "ipchange") { - ip = message.ip; - updateOnIpChange(); - } else if (message.type == "pluginschange") { - plugins = message.plugins; - refreshPluginList(); - if (document.getElementById("server_container").style.display === "block") { - location.reload(); + } else { + document.querySelector("#tray").style.display = "none"; + } +}) + +listen('state', function(event) { + server_states = event.payload.server_states; + updateRunningStates(); +}) + +listen('update', function(event) { + let message = event.payload; + ignore_update = message.version; + if (message.ignored !== true) { + document.getElementById("update_banner").style.display = "block"; + document.getElementById("update_banner").href = message.url; + document.getElementById("update_banner_text").innerText = message.text || lang.update_available; + if (message.attributes.indexOf("high_priority") > -1) { + document.getElementById("update_banner").classList.add("high_priority"); + } else { + document.getElementById("update_banner").classList.remove("high_priority"); } - } else if (message.type === "reload") { + } + document.getElementById("update_notice").style.display = ""; + document.getElementById("update_notice").querySelector("a").href = message.url; +}) + +listen('ipchange', function(event) { + ip = event.payload.ip; + updateOnIpChange(); +}) + +listen('pluginschange', function(event) { + plugins = event.payload.plugins; + refreshPluginList(); + if (document.getElementById("server_container").style.display === "block") { location.reload(); } -}); +}) + +listen('reload', function(event) { + location.reload(); +}) function ignoreUpdate() { config.ignore_update = ignore_update; - window.api.saveconfig(config); + invoke("saveconfig", { "config": config }); document.getElementById("update_banner").style.display = "none"; } @@ -253,7 +262,7 @@ function reorderDragEnd() { config.servers.splice(dragging_index, 1); config.servers.splice(last_hover_index, 0, temp); - window.api.saveconfig(config); + invoke("saveconfig", { "config": config }); renderServerList(); }); @@ -604,7 +613,7 @@ function submitAddServer() { } navigate("main"); renderServerList(); - window.api.saveconfig(config); + invoke("saveconfig", { "config": config }); } let pend_delete_server_id = false; @@ -613,7 +622,7 @@ function confirmDeleteServer() { config.servers.splice(pend_delete_server_id, 1); navigate("main"); renderServerList(); - window.api.saveconfig(config); + invoke("saveconfig", { "config": config }); hidePrompt(); } @@ -640,7 +649,7 @@ function toggleServer(index,inedit) { } } updateRunningStates(); - window.api.saveconfig(config); + invoke("saveconfig", { "config": config }); } function toggleEditServerRunning() { @@ -662,7 +671,7 @@ function toggleRunInBk() { config.background = true; } document.getElementById("stop_and_quit_button").style.display = config.background ? "block" : "none"; - window.api.saveconfig(config); + invoke("saveconfig", { "config": config }); } function toggleUpdates() { @@ -682,7 +691,7 @@ function toggleUpdates() { config.updates = true delete config.ignore_update; } - window.api.saveconfig(config); + invoke("saveconfig", { "config": config }); } function toggleTray() { @@ -695,17 +704,17 @@ function toggleTray() { document.querySelector("#tray").setAttribute("aria-checked", "true"); config.tray = true } - window.api.saveconfig(config); + invoke("saveconfig", { "config": config }); } function themeChange() { config.theme = document.querySelector("#theme").value; - window.api.saveconfig(config); + invoke("saveconfig", { "config": config }); } function changeLang() { config.language = document.querySelector("#language").value; - window.api.saveconfig(config, true); + invoke("saveconfig", { "config": config, reload: true }); } function portValid() { @@ -936,7 +945,7 @@ function initWelcome() { config.background = false; config.updates = true; config.theme = "system"; - window.api.saveconfig(config); + invoke("saveconfig", { "config": config }); navigate("welcome"); if (install_source === "macappstore") { document.querySelector("#updates_welcome").style.display = "none"; @@ -1060,7 +1069,7 @@ function removePlugin(pluginid) { } } - window.api.saveconfig(config); + invoke("saveconfig", { "config": config }); hidePrompt(); }],[lang.cancel,"",hidePrompt]]) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index accb13bc..3a5d3f6b 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -46,7 +46,7 @@ checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" [[package]] name = "app" -version = "0.1.0" +version = "2.0.0" dependencies = [ "serde", "serde_json", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 63f45a5e..3f83f1e6 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "app" -version = "0.1.0" -description = "A Tauri App" -authors = ["you"] -license = "" -repository = "" +version = "2.0.0" +description = "Simple Web Server" +authors = ["Simple Web Server Team"] +license = "MIT License" +repository = "https://github.com/terreng/simple-web-server" default-run = "app" edition = "2021" rust-version = "1.57" diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index e994ea4d..0a2aebd0 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1,10 +1,44 @@ #![cfg_attr( - all(not(debug_assertions), target_os = "windows"), - windows_subsystem = "windows" + all(not(debug_assertions), target_os = "windows"), + windows_subsystem = "windows" )] +use serde_json::{Value}; +use serde_json::json; +use std::fs::File; +use std::io::BufReader; +use std::io::BufWriter; +use std::io::Write; +use std::path::Path; + +const VERSION : i32 = 1001004; +const INSTALL_SOURCE : &str = "website"; fn main() { - tauri::Builder::default() - .run(tauri::generate_context!()) - .expect("error while running tauri application"); + tauri::Builder::default() + .invoke_handler(tauri::generate_handler![init]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} + +#[tauri::command] +fn init() -> Value { + let mut config : Value = json!({}); + if Path::new("config.json").exists() { + let file = File::open("config.json").expect("Unable to open"); + let reader = BufReader::new(file); + config = serde_json::from_reader(reader).expect("Unable to read JSON"); + } + return json!({ + "config": config, + "ip": ["127.0.0.1"], + "install_source": INSTALL_SOURCE + }); } + +#[tauri::command] +fn saveconfig(config: Value) { + let data = config.to_string(); + let f = File::create("config.json").expect("Unable to create file"); + let mut f = BufWriter::new(f); + f.write_all(data.as_bytes()).expect("Unable to write data"); +} \ No newline at end of file diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 98e886ec..f84b9d4c 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -4,7 +4,8 @@ "beforeBuildCommand": "", "beforeDevCommand": "", "devPath": "http://127.0.0.1:8765/index.html", - "distDir": "../.." + "distDir": "../..", + "withGlobalTauri": true }, "package": { "productName": "Simple Web Server", From ba0be3e4a7ba719efbadae8fd761492babf1ad2f Mon Sep 17 00:00:00 2001 From: Terren <11605395+terreng@users.noreply.github.com> Date: Sat, 22 Oct 2022 11:51:41 -0400 Subject: [PATCH 03/12] Save and load config.json --- src-tauri/Cargo.lock | 21 +++++++++++++++++++++ src-tauri/Cargo.toml | 1 + src-tauri/src/main.rs | 20 ++++++++++++++++---- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 3a5d3f6b..c75115ff 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -48,6 +48,7 @@ checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" name = "app" version = "2.0.0" dependencies = [ + "dirs", "serde", "serde_json", "tauri", @@ -525,6 +526,15 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + [[package]] name = "dirs-next" version = "2.0.0" @@ -535,6 +545,17 @@ dependencies = [ "dirs-sys-next", ] +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + [[package]] name = "dirs-sys-next" version = "0.1.2" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 3f83f1e6..a6889f02 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -18,6 +18,7 @@ tauri-build = { version = "1.1.1", features = [] } serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } tauri = { version = "1.1.1", features = ["api-all"] } +dirs = "4.0.0" [features] # by default Tauri runs in production mode diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 0a2aebd0..070715d5 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -2,6 +2,12 @@ all(not(debug_assertions), target_os = "windows"), windows_subsystem = "windows" )] +#[cfg(target_os = "macos")] +static PLATFORM: &str = "macos"; +#[cfg(target_os = "linux")] +static PLATFORM: &str = "linux"; +#[cfg(target_os = "windows")] +static PLATFORM: &str = "windows"; use serde_json::{Value}; use serde_json::json; use std::fs::File; @@ -13,9 +19,15 @@ use std::path::Path; const VERSION : i32 = 1001004; const INSTALL_SOURCE : &str = "website"; +fn savepath() -> String { + let config_directory : String = dirs::config_dir().unwrap().display().to_string(); + let program_subdirectory : &str = if PLATFORM == "macos" {"/Simple Web Server/"} else {"\\Simple Web Server\\"}; + return config_directory + program_subdirectory; +} + fn main() { tauri::Builder::default() - .invoke_handler(tauri::generate_handler![init]) + .invoke_handler(tauri::generate_handler![init, saveconfig]) .run(tauri::generate_context!()) .expect("error while running tauri application"); } @@ -23,8 +35,8 @@ fn main() { #[tauri::command] fn init() -> Value { let mut config : Value = json!({}); - if Path::new("config.json").exists() { - let file = File::open("config.json").expect("Unable to open"); + if Path::new(&(savepath() + "config.json")).exists() { + let file = File::open(savepath() + "config.json").expect("Unable to open"); let reader = BufReader::new(file); config = serde_json::from_reader(reader).expect("Unable to read JSON"); } @@ -38,7 +50,7 @@ fn init() -> Value { #[tauri::command] fn saveconfig(config: Value) { let data = config.to_string(); - let f = File::create("config.json").expect("Unable to create file"); + let f = File::create(savepath() + "config.json").expect("Unable to create file"); let mut f = BufWriter::new(f); f.write_all(data.as_bytes()).expect("Unable to write data"); } \ No newline at end of file From 795c4ffef1ad3b4aa8c08ce2b10a5bdddf3f05f8 Mon Sep 17 00:00:00 2001 From: Terren <11605395+terreng@users.noreply.github.com> Date: Sat, 22 Oct 2022 12:06:15 -0400 Subject: [PATCH 04/12] File picker dialog, quit button --- index.html | 7 ++++--- main.js | 19 +++++++++++++++---- src-tauri/src/main.rs | 7 ++++++- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index fde8bb60..696e9068 100644 --- a/index.html +++ b/index.html @@ -9,6 +9,7 @@ const invoke = window.__TAURI__.invoke; const listen = window.__TAURI__.event.listen; const emit = window.__TAURI__.event.emit; + const dialog = window.__TAURI__.dialog; @@ -20,7 +21,7 @@

- +
@@ -29,8 +30,8 @@
-
{lang.stop_and_quit}
-
{lang.new_server}
+
Stop & Quit
+
New Server
diff --git a/main.js b/main.js index 6763a1dc..e75b28f4 100644 --- a/main.js +++ b/main.js @@ -791,10 +791,21 @@ function updateCurrentPath() { } function chooseFolder() { - window.api.showPicker(current_path).then(function(chosen_path) { - if (chosen_path && chosen_path.length > 0) current_path = chosen_path[0]; - updateCurrentPath(); - }) + var dialog_options = { + directory: true, + multiple: false + }; + + if (current_path) { + dialog_options.defaultPath = current_path; + } + + dialog.open(dialog_options).then(function(selected) { + if (selected) { + current_path = selected; + updateCurrentPath(); + } + }); } function htmlescape(str) { diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 070715d5..351ed41b 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -27,7 +27,7 @@ fn savepath() -> String { fn main() { tauri::Builder::default() - .invoke_handler(tauri::generate_handler![init, saveconfig]) + .invoke_handler(tauri::generate_handler![init, saveconfig, quit]) .run(tauri::generate_context!()) .expect("error while running tauri application"); } @@ -53,4 +53,9 @@ fn saveconfig(config: Value) { let f = File::create(savepath() + "config.json").expect("Unable to create file"); let mut f = BufWriter::new(f); f.write_all(data.as_bytes()).expect("Unable to write data"); +} + +#[tauri::command] +fn quit(handle: tauri::AppHandle) { + handle.exit(0); } \ No newline at end of file From 7fcd9e4856c7b07ec2a2e9bee0fe43fa5a0fc0f0 Mon Sep 17 00:00:00 2001 From: Terren <11605395+terreng@users.noreply.github.com> Date: Sat, 22 Oct 2022 12:43:34 -0400 Subject: [PATCH 05/12] Keep running after all windows closed --- src-tauri/src/main.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 351ed41b..8c6129da 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -28,8 +28,14 @@ fn savepath() -> String { fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![init, saveconfig, quit]) - .run(tauri::generate_context!()) - .expect("error while running tauri application"); + .build(tauri::generate_context!()) + .expect("error while building tauri application") + .run(|_app_handle, event| match event { + tauri::RunEvent::ExitRequested { api, .. } => { + api.prevent_exit(); + } + _ => {} + }); } #[tauri::command] From de1265b015abddf8555b28af06fa0c24c3df396e Mon Sep 17 00:00:00 2001 From: Terren <11605395+terreng@users.noreply.github.com> Date: Sat, 26 Oct 2024 12:56:40 -0400 Subject: [PATCH 06/12] Update index.html --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 696e9068..effd0de7 100644 --- a/index.html +++ b/index.html @@ -30,7 +30,7 @@
-
Stop & Quit
+
Stop & Quit
New Server
From ef164221c9ec15ed31944e748bffda45287880de Mon Sep 17 00:00:00 2001 From: Terren <11605395+terreng@users.noreply.github.com> Date: Sat, 26 Oct 2024 12:59:19 -0400 Subject: [PATCH 07/12] update tauri --- package-lock.json | 375 +++++++++++++++++++++++++++++++++++----------- package.json | 4 +- 2 files changed, 290 insertions(+), 89 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1aaf0d2b..0c87eed4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,20 +10,21 @@ "license": "MIT", "dependencies": { "atob": "^2.1.2", - "dotenv": "^16.0.1", + "dotenv": "^16.4.5", "http": "^0.0.1-security", "https": "^1.0.0", - "node-blob": "0.0.2", + "jszip": "^3.10.1", + "node-blob": "^0.0.2", "node-forge": "^1.3.1" }, "devDependencies": { - "@tauri-apps/cli": "^1.1.1" + "@tauri-apps/cli": "^2.0.4" } }, "node_modules/@tauri-apps/cli": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.1.1.tgz", - "integrity": "sha512-80kjMEMPBwLYCp0tTKSquy90PHHGGBvZsneNr3B/mWxNsvjzA1C0vOyGJGFrJuT2OmkvrdvuJZ5mch5hL8O1Xg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.0.4.tgz", + "integrity": "sha512-Hl9eFXz+O366+6su9PfaSzu2EJdFe1p8K8ghkWmi40dz8VmSE7vsMTaOStD0I71ckSOkh2ICDX7FQTBgjlpjWw==", "dev": true, "bin": { "tauri": "tauri.js" @@ -36,21 +37,22 @@ "url": "https://opencollective.com/tauri" }, "optionalDependencies": { - "@tauri-apps/cli-darwin-arm64": "1.1.1", - "@tauri-apps/cli-darwin-x64": "1.1.1", - "@tauri-apps/cli-linux-arm-gnueabihf": "1.1.1", - "@tauri-apps/cli-linux-arm64-gnu": "1.1.1", - "@tauri-apps/cli-linux-arm64-musl": "1.1.1", - "@tauri-apps/cli-linux-x64-gnu": "1.1.1", - "@tauri-apps/cli-linux-x64-musl": "1.1.1", - "@tauri-apps/cli-win32-ia32-msvc": "1.1.1", - "@tauri-apps/cli-win32-x64-msvc": "1.1.1" + "@tauri-apps/cli-darwin-arm64": "2.0.4", + "@tauri-apps/cli-darwin-x64": "2.0.4", + "@tauri-apps/cli-linux-arm-gnueabihf": "2.0.4", + "@tauri-apps/cli-linux-arm64-gnu": "2.0.4", + "@tauri-apps/cli-linux-arm64-musl": "2.0.4", + "@tauri-apps/cli-linux-x64-gnu": "2.0.4", + "@tauri-apps/cli-linux-x64-musl": "2.0.4", + "@tauri-apps/cli-win32-arm64-msvc": "2.0.4", + "@tauri-apps/cli-win32-ia32-msvc": "2.0.4", + "@tauri-apps/cli-win32-x64-msvc": "2.0.4" } }, "node_modules/@tauri-apps/cli-darwin-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.1.1.tgz", - "integrity": "sha512-qBG11ig525/qf0f5OQxn0ON3hT8YdpTfpa4Y4kVqBJhdW50R5fadPv6tv5Dpl2TS2X7nWh/zg5mEXYoCK3HZ9w==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.0.4.tgz", + "integrity": "sha512-siH7rOHobb16rPbc11k64p1mxIpiRCkWmzs2qmL5IX21Gx9K5onI3Tk67Oqpf2uNupbYzItrOttaDT4NHFC7tw==", "cpu": [ "arm64" ], @@ -64,9 +66,9 @@ } }, "node_modules/@tauri-apps/cli-darwin-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.1.1.tgz", - "integrity": "sha512-M3dMsp78OdxisbTwAWGvy3jIb3uqThtQcUYVvqOu9LeEOHyldOBFDSht+6PTBpaJLAHFMQK2rmNxiWgigklJaA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.0.4.tgz", + "integrity": "sha512-zIccfbCoZMfmUpnk6PFCV0keFyfVj1A9XV3Oiiitj/dkTZ9CQvzjhX3XC0XcK4rsTWegfr2PjSrK06aiPAROAw==", "cpu": [ "x64" ], @@ -80,9 +82,9 @@ } }, "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.1.1.tgz", - "integrity": "sha512-LYlvdAd73cq+yTi6rw7j/DWIvDpeApwgQkIn+HYsNNeFhyFmABU7tmw+pekK3W3nHAkYAJ69Rl4ZdoxdNGKmHg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.0.4.tgz", + "integrity": "sha512-fgQqJzefOGWCBNg4yrVA82Rg4s1XQr5K0dc2rCxBhJfa696e8dQ1LDrnWq/AiO5r+uHfVaoQTIUvxxpFicYRSA==", "cpu": [ "arm" ], @@ -96,9 +98,9 @@ } }, "node_modules/@tauri-apps/cli-linux-arm64-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.1.1.tgz", - "integrity": "sha512-o/hbMQIKuFI7cTNpeQBHD/OCNJOBIci78faKms/t6AstLXx0QJuRHDk477Rg6VVy/I3BBKbyATALbmcTq+ti0A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.0.4.tgz", + "integrity": "sha512-u8wbt5tPA9pI6j+d7jGrfOz9UVCiTp+IYzKNiIqlrDsAjqAUFaNXYHKqOUboeFWEmI4zoCWj6LgpS2OJTQ5FKg==", "cpu": [ "arm64" ], @@ -112,9 +114,9 @@ } }, "node_modules/@tauri-apps/cli-linux-arm64-musl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.1.1.tgz", - "integrity": "sha512-8Ci4qlDnXIp93XqUrtzFCBDatUzPHpZq7L3bociUbWpvy/bnlzxp1C/C+vwdc4uS1MiAp9v3BFgrU4i0f0Z3QQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.0.4.tgz", + "integrity": "sha512-hntF1V8e3V1hlrESm93PsghDhf3lA5pbvFrRfYxU1c+fVD/jRXGVw8BH3O1lW8MWwhEg1YdhKk01oAgsuHLuig==", "cpu": [ "arm64" ], @@ -128,9 +130,9 @@ } }, "node_modules/@tauri-apps/cli-linux-x64-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.1.1.tgz", - "integrity": "sha512-ES4Bkx2JAI8+dDNDJswhLS3yqt+yT/4C6UfGOPIHFxcXUh6fe36eUllrTt+HLRS9xTZbYnteJy7ebq2TqMkaxw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.0.4.tgz", + "integrity": "sha512-Iq1GGJb+oT1T0ZV8izrgf0cBtlzPCJaWcNueRbf1ZXquMf+FSTyQv+/Lo8rq5T6buOIJOH7cAOTuEWWqiCZteg==", "cpu": [ "x64" ], @@ -144,9 +146,9 @@ } }, "node_modules/@tauri-apps/cli-linux-x64-musl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.1.1.tgz", - "integrity": "sha512-qrN1WOMAaDl+LE8P8iO0+DYlrWNTc9jIu/CsnVY/LImTn79ZPxEkcVBo0UGeKRI7f10TfvkVmLCBLxTz8QhEyA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.0.4.tgz", + "integrity": "sha512-9NTk6Pf0bSwXqCBdAA+PDYts9HeHebZzIo8mbRzRyUbER6QngG5HZb9Ka36Z1QWtJjdRy6uxSb4zb/9NuTeHfA==", "cpu": [ "x64" ], @@ -159,10 +161,26 @@ "node": ">= 10" } }, + "node_modules/@tauri-apps/cli-win32-arm64-msvc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.0.4.tgz", + "integrity": "sha512-OF2e9oxiBFR8A8wVMOhUx9QGN/I1ZkquWC7gVQBnA56nx9PabJlDT08QBy5UD8USqZFVznnfNr2ehlheQahb3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@tauri-apps/cli-win32-ia32-msvc": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.1.1.tgz", - "integrity": "sha512-vw7VOmrQlywHhFV3pf54udf2FRNj9dg9WP1gL0My55FnB+w+PWS9Ipm871kX5qepmChdnZHKq9fsqE2uTjX//Q==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.0.4.tgz", + "integrity": "sha512-T+hCKB3rFP6q0saHHtR02hm6wr1ZPJ0Mkii3oRTxjPG6BBXoVzHNCYzvdgEGJPTA2sFuAQtJH764NRtNlDMifw==", "cpu": [ "ia32" ], @@ -176,9 +194,9 @@ } }, "node_modules/@tauri-apps/cli-win32-x64-msvc": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.1.1.tgz", - "integrity": "sha512-OukxlLLi3AoCN4ABnqCDTiiC7xJGWukAjrKCIx7wFISrLjNfsrnH7/UOzuopfGpZChSe2c+AamVmcpBfVsEmJA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.0.4.tgz", + "integrity": "sha512-GVaiI3KWRFLomjJmApHqihhYlkJ+7FqhumhVfBO6Z2tWzZjQyVQgTdNp0kYEuW2WoAYEj0dKY6qd4YM33xYcUA==", "cpu": [ "x64" ], @@ -202,12 +220,20 @@ "node": ">= 4.5.0" } }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, "node_modules/dotenv": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", - "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "engines": { "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" } }, "node_modules/http": { @@ -220,6 +246,40 @@ "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", "integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=" }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/node-blob": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/node-blob/-/node-blob-0.0.2.tgz", @@ -232,86 +292,141 @@ "engines": { "node": ">= 6.13.0" } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" } }, "dependencies": { "@tauri-apps/cli": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.1.1.tgz", - "integrity": "sha512-80kjMEMPBwLYCp0tTKSquy90PHHGGBvZsneNr3B/mWxNsvjzA1C0vOyGJGFrJuT2OmkvrdvuJZ5mch5hL8O1Xg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.0.4.tgz", + "integrity": "sha512-Hl9eFXz+O366+6su9PfaSzu2EJdFe1p8K8ghkWmi40dz8VmSE7vsMTaOStD0I71ckSOkh2ICDX7FQTBgjlpjWw==", "dev": true, "requires": { - "@tauri-apps/cli-darwin-arm64": "1.1.1", - "@tauri-apps/cli-darwin-x64": "1.1.1", - "@tauri-apps/cli-linux-arm-gnueabihf": "1.1.1", - "@tauri-apps/cli-linux-arm64-gnu": "1.1.1", - "@tauri-apps/cli-linux-arm64-musl": "1.1.1", - "@tauri-apps/cli-linux-x64-gnu": "1.1.1", - "@tauri-apps/cli-linux-x64-musl": "1.1.1", - "@tauri-apps/cli-win32-ia32-msvc": "1.1.1", - "@tauri-apps/cli-win32-x64-msvc": "1.1.1" + "@tauri-apps/cli-darwin-arm64": "2.0.4", + "@tauri-apps/cli-darwin-x64": "2.0.4", + "@tauri-apps/cli-linux-arm-gnueabihf": "2.0.4", + "@tauri-apps/cli-linux-arm64-gnu": "2.0.4", + "@tauri-apps/cli-linux-arm64-musl": "2.0.4", + "@tauri-apps/cli-linux-x64-gnu": "2.0.4", + "@tauri-apps/cli-linux-x64-musl": "2.0.4", + "@tauri-apps/cli-win32-arm64-msvc": "2.0.4", + "@tauri-apps/cli-win32-ia32-msvc": "2.0.4", + "@tauri-apps/cli-win32-x64-msvc": "2.0.4" } }, "@tauri-apps/cli-darwin-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.1.1.tgz", - "integrity": "sha512-qBG11ig525/qf0f5OQxn0ON3hT8YdpTfpa4Y4kVqBJhdW50R5fadPv6tv5Dpl2TS2X7nWh/zg5mEXYoCK3HZ9w==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.0.4.tgz", + "integrity": "sha512-siH7rOHobb16rPbc11k64p1mxIpiRCkWmzs2qmL5IX21Gx9K5onI3Tk67Oqpf2uNupbYzItrOttaDT4NHFC7tw==", "dev": true, "optional": true }, "@tauri-apps/cli-darwin-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.1.1.tgz", - "integrity": "sha512-M3dMsp78OdxisbTwAWGvy3jIb3uqThtQcUYVvqOu9LeEOHyldOBFDSht+6PTBpaJLAHFMQK2rmNxiWgigklJaA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.0.4.tgz", + "integrity": "sha512-zIccfbCoZMfmUpnk6PFCV0keFyfVj1A9XV3Oiiitj/dkTZ9CQvzjhX3XC0XcK4rsTWegfr2PjSrK06aiPAROAw==", "dev": true, "optional": true }, "@tauri-apps/cli-linux-arm-gnueabihf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.1.1.tgz", - "integrity": "sha512-LYlvdAd73cq+yTi6rw7j/DWIvDpeApwgQkIn+HYsNNeFhyFmABU7tmw+pekK3W3nHAkYAJ69Rl4ZdoxdNGKmHg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.0.4.tgz", + "integrity": "sha512-fgQqJzefOGWCBNg4yrVA82Rg4s1XQr5K0dc2rCxBhJfa696e8dQ1LDrnWq/AiO5r+uHfVaoQTIUvxxpFicYRSA==", "dev": true, "optional": true }, "@tauri-apps/cli-linux-arm64-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.1.1.tgz", - "integrity": "sha512-o/hbMQIKuFI7cTNpeQBHD/OCNJOBIci78faKms/t6AstLXx0QJuRHDk477Rg6VVy/I3BBKbyATALbmcTq+ti0A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.0.4.tgz", + "integrity": "sha512-u8wbt5tPA9pI6j+d7jGrfOz9UVCiTp+IYzKNiIqlrDsAjqAUFaNXYHKqOUboeFWEmI4zoCWj6LgpS2OJTQ5FKg==", "dev": true, "optional": true }, "@tauri-apps/cli-linux-arm64-musl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.1.1.tgz", - "integrity": "sha512-8Ci4qlDnXIp93XqUrtzFCBDatUzPHpZq7L3bociUbWpvy/bnlzxp1C/C+vwdc4uS1MiAp9v3BFgrU4i0f0Z3QQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.0.4.tgz", + "integrity": "sha512-hntF1V8e3V1hlrESm93PsghDhf3lA5pbvFrRfYxU1c+fVD/jRXGVw8BH3O1lW8MWwhEg1YdhKk01oAgsuHLuig==", "dev": true, "optional": true }, "@tauri-apps/cli-linux-x64-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.1.1.tgz", - "integrity": "sha512-ES4Bkx2JAI8+dDNDJswhLS3yqt+yT/4C6UfGOPIHFxcXUh6fe36eUllrTt+HLRS9xTZbYnteJy7ebq2TqMkaxw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.0.4.tgz", + "integrity": "sha512-Iq1GGJb+oT1T0ZV8izrgf0cBtlzPCJaWcNueRbf1ZXquMf+FSTyQv+/Lo8rq5T6buOIJOH7cAOTuEWWqiCZteg==", "dev": true, "optional": true }, "@tauri-apps/cli-linux-x64-musl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.1.1.tgz", - "integrity": "sha512-qrN1WOMAaDl+LE8P8iO0+DYlrWNTc9jIu/CsnVY/LImTn79ZPxEkcVBo0UGeKRI7f10TfvkVmLCBLxTz8QhEyA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.0.4.tgz", + "integrity": "sha512-9NTk6Pf0bSwXqCBdAA+PDYts9HeHebZzIo8mbRzRyUbER6QngG5HZb9Ka36Z1QWtJjdRy6uxSb4zb/9NuTeHfA==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-win32-arm64-msvc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.0.4.tgz", + "integrity": "sha512-OF2e9oxiBFR8A8wVMOhUx9QGN/I1ZkquWC7gVQBnA56nx9PabJlDT08QBy5UD8USqZFVznnfNr2ehlheQahb3g==", "dev": true, "optional": true }, "@tauri-apps/cli-win32-ia32-msvc": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.1.1.tgz", - "integrity": "sha512-vw7VOmrQlywHhFV3pf54udf2FRNj9dg9WP1gL0My55FnB+w+PWS9Ipm871kX5qepmChdnZHKq9fsqE2uTjX//Q==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.0.4.tgz", + "integrity": "sha512-T+hCKB3rFP6q0saHHtR02hm6wr1ZPJ0Mkii3oRTxjPG6BBXoVzHNCYzvdgEGJPTA2sFuAQtJH764NRtNlDMifw==", "dev": true, "optional": true }, "@tauri-apps/cli-win32-x64-msvc": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.1.1.tgz", - "integrity": "sha512-OukxlLLi3AoCN4ABnqCDTiiC7xJGWukAjrKCIx7wFISrLjNfsrnH7/UOzuopfGpZChSe2c+AamVmcpBfVsEmJA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.0.4.tgz", + "integrity": "sha512-GVaiI3KWRFLomjJmApHqihhYlkJ+7FqhumhVfBO6Z2tWzZjQyVQgTdNp0kYEuW2WoAYEj0dKY6qd4YM33xYcUA==", "dev": true, "optional": true }, @@ -320,10 +435,15 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, "dotenv": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", - "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==" }, "http": { "version": "0.0.1-security", @@ -335,6 +455,40 @@ "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", "integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=" }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "requires": { + "immediate": "~3.0.5" + } + }, "node-blob": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/node-blob/-/node-blob-0.0.2.tgz", @@ -344,6 +498,53 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" } } } diff --git a/package.json b/package.json index 615e4213..9e13cdb4 100644 --- a/package.json +++ b/package.json @@ -26,11 +26,11 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "^1.1.1" + "@tauri-apps/cli": "^2.0.4" }, "dependencies": { "atob": "^2.1.2", - "dotenv": "^16.0.1", + "dotenv": "^16.4.5", "http": "^0.0.1-security", "https": "^1.0.0", "jszip": "^3.10.1", From f244b14249056676801d2d93ebb3b04158236aec Mon Sep 17 00:00:00 2001 From: Terren <11605395+terreng@users.noreply.github.com> Date: Sat, 26 Oct 2024 13:12:25 -0400 Subject: [PATCH 08/12] Update to Tauri 2.0 --- package-lock.json | 167 + package.json | 9 + src-tauri/Cargo.lock | 4797 ++++++++++++++++++++------ src-tauri/Cargo.toml | 15 +- src-tauri/build.rs | 2 +- src-tauri/capabilities/desktop.json | 12 + src-tauri/capabilities/migrated.json | 88 + src-tauri/src/main.rs | 77 +- src-tauri/tauri.conf.json | 92 +- 9 files changed, 4133 insertions(+), 1126 deletions(-) create mode 100644 src-tauri/capabilities/desktop.json create mode 100644 src-tauri/capabilities/migrated.json diff --git a/package-lock.json b/package-lock.json index 0c87eed4..f8224616 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,15 @@ "version": "2.0.0", "license": "MIT", "dependencies": { + "@tauri-apps/plugin-clipboard-manager": "^2.0.0", + "@tauri-apps/plugin-dialog": "^2.0.1", + "@tauri-apps/plugin-fs": "^2.0.1", + "@tauri-apps/plugin-global-shortcut": "^2.0.0", + "@tauri-apps/plugin-http": "^2.0.1", + "@tauri-apps/plugin-notification": "^2.0.0", + "@tauri-apps/plugin-os": "^2.0.0", + "@tauri-apps/plugin-process": "^2.0.0", + "@tauri-apps/plugin-shell": "^2.0.1", "atob": "^2.1.2", "dotenv": "^16.4.5", "http": "^0.0.1-security", @@ -21,6 +30,15 @@ "@tauri-apps/cli": "^2.0.4" } }, + "node_modules/@tauri-apps/api": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.0.3.tgz", + "integrity": "sha512-840qk6n8rbXBXMA5/aAgTYsg5JAubKO0nXw5wf7IzGnUuYKGbB4oFBIZtXOIWy+E0kNTDI3qhq5iqsoMJfwp8g==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + } + }, "node_modules/@tauri-apps/cli": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.0.4.tgz", @@ -209,6 +227,78 @@ "node": ">= 10" } }, + "node_modules/@tauri-apps/plugin-clipboard-manager": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-clipboard-manager/-/plugin-clipboard-manager-2.0.0.tgz", + "integrity": "sha512-V1sXmbjnwfXt/r48RJMwfUmDMSaP/8/YbH4CLNxt+/sf1eHlIP8PRFdFDQwLN0cNQKu2rqQVbG/Wc/Ps6cDUhw==", + "dependencies": { + "@tauri-apps/api": "^2.0.0" + } + }, + "node_modules/@tauri-apps/plugin-dialog": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.0.1.tgz", + "integrity": "sha512-fnUrNr6EfvTqdls/ufusU7h6UbNFzLKvHk/zTuOiBq01R3dTODqwctZlzakdbfSp/7pNwTKvgKTAgl/NAP/Z0Q==", + "dependencies": { + "@tauri-apps/api": "^2.0.0" + } + }, + "node_modules/@tauri-apps/plugin-fs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-fs/-/plugin-fs-2.0.1.tgz", + "integrity": "sha512-PkeZG2WAob9Xpmr66aPvj+McDVgFjV2a7YBzYVZjiCvbGeMs6Yk09tlXhCe3EyZdT/pwWMSi8lXUace+hlsjsw==", + "dependencies": { + "@tauri-apps/api": "^2.0.0" + } + }, + "node_modules/@tauri-apps/plugin-global-shortcut": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-global-shortcut/-/plugin-global-shortcut-2.0.0.tgz", + "integrity": "sha512-pnB4CUwFVjg4twtBSxoLJ4uLFTYxsvOdC1zIbG581pYzhYatOl6mjB+ijD5SSXgiS/jNoqMcfkOF9PWAisurew==", + "dependencies": { + "@tauri-apps/api": "^2.0.0" + } + }, + "node_modules/@tauri-apps/plugin-http": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-http/-/plugin-http-2.0.1.tgz", + "integrity": "sha512-j6IA3pVBybSCwPpsihpX4z8bs6PluuGtr06ahL/xy4D8HunNBTmRmadJrFOQi0gOAbaig4MkQ15nzNLBLy8R1A==", + "dependencies": { + "@tauri-apps/api": "^2.0.0" + } + }, + "node_modules/@tauri-apps/plugin-notification": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-notification/-/plugin-notification-2.0.0.tgz", + "integrity": "sha512-6qEDYJS7mgXZWLXA0EFL+DVCJh8sJlzSoyw6B50pxhLPVFjc5Vr5DVzl5W3mUHaYhod5wsC984eQnlCCGqxYDA==", + "dependencies": { + "@tauri-apps/api": "^2.0.0" + } + }, + "node_modules/@tauri-apps/plugin-os": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-os/-/plugin-os-2.0.0.tgz", + "integrity": "sha512-M7hG/nNyQYTJxVG/UhTKhp9mpXriwWzrs9mqDreB8mIgqA3ek5nHLdwRZJWhkKjZrnDT4v9CpA9BhYeplTlAiA==", + "dependencies": { + "@tauri-apps/api": "^2.0.0" + } + }, + "node_modules/@tauri-apps/plugin-process": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-process/-/plugin-process-2.0.0.tgz", + "integrity": "sha512-OYzi0GnkrF4NAnsHZU7U3tjSoP0PbeAlO7T1Z+vJoBUH9sFQ1NSLqWYWQyf8hcb3gVWe7P1JggjiskO+LST1ug==", + "dependencies": { + "@tauri-apps/api": "^2.0.0" + } + }, + "node_modules/@tauri-apps/plugin-shell": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-shell/-/plugin-shell-2.0.1.tgz", + "integrity": "sha512-akU1b77sw3qHiynrK0s930y8zKmcdrSD60htjH+mFZqv5WaakZA/XxHR3/sF1nNv9Mgmt/Shls37HwnOr00aSw==", + "dependencies": { + "@tauri-apps/api": "^2.0.0" + } + }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -342,6 +432,11 @@ } }, "dependencies": { + "@tauri-apps/api": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.0.3.tgz", + "integrity": "sha512-840qk6n8rbXBXMA5/aAgTYsg5JAubKO0nXw5wf7IzGnUuYKGbB4oFBIZtXOIWy+E0kNTDI3qhq5iqsoMJfwp8g==" + }, "@tauri-apps/cli": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.0.4.tgz", @@ -430,6 +525,78 @@ "dev": true, "optional": true }, + "@tauri-apps/plugin-clipboard-manager": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-clipboard-manager/-/plugin-clipboard-manager-2.0.0.tgz", + "integrity": "sha512-V1sXmbjnwfXt/r48RJMwfUmDMSaP/8/YbH4CLNxt+/sf1eHlIP8PRFdFDQwLN0cNQKu2rqQVbG/Wc/Ps6cDUhw==", + "requires": { + "@tauri-apps/api": "^2.0.0" + } + }, + "@tauri-apps/plugin-dialog": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.0.1.tgz", + "integrity": "sha512-fnUrNr6EfvTqdls/ufusU7h6UbNFzLKvHk/zTuOiBq01R3dTODqwctZlzakdbfSp/7pNwTKvgKTAgl/NAP/Z0Q==", + "requires": { + "@tauri-apps/api": "^2.0.0" + } + }, + "@tauri-apps/plugin-fs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-fs/-/plugin-fs-2.0.1.tgz", + "integrity": "sha512-PkeZG2WAob9Xpmr66aPvj+McDVgFjV2a7YBzYVZjiCvbGeMs6Yk09tlXhCe3EyZdT/pwWMSi8lXUace+hlsjsw==", + "requires": { + "@tauri-apps/api": "^2.0.0" + } + }, + "@tauri-apps/plugin-global-shortcut": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-global-shortcut/-/plugin-global-shortcut-2.0.0.tgz", + "integrity": "sha512-pnB4CUwFVjg4twtBSxoLJ4uLFTYxsvOdC1zIbG581pYzhYatOl6mjB+ijD5SSXgiS/jNoqMcfkOF9PWAisurew==", + "requires": { + "@tauri-apps/api": "^2.0.0" + } + }, + "@tauri-apps/plugin-http": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-http/-/plugin-http-2.0.1.tgz", + "integrity": "sha512-j6IA3pVBybSCwPpsihpX4z8bs6PluuGtr06ahL/xy4D8HunNBTmRmadJrFOQi0gOAbaig4MkQ15nzNLBLy8R1A==", + "requires": { + "@tauri-apps/api": "^2.0.0" + } + }, + "@tauri-apps/plugin-notification": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-notification/-/plugin-notification-2.0.0.tgz", + "integrity": "sha512-6qEDYJS7mgXZWLXA0EFL+DVCJh8sJlzSoyw6B50pxhLPVFjc5Vr5DVzl5W3mUHaYhod5wsC984eQnlCCGqxYDA==", + "requires": { + "@tauri-apps/api": "^2.0.0" + } + }, + "@tauri-apps/plugin-os": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-os/-/plugin-os-2.0.0.tgz", + "integrity": "sha512-M7hG/nNyQYTJxVG/UhTKhp9mpXriwWzrs9mqDreB8mIgqA3ek5nHLdwRZJWhkKjZrnDT4v9CpA9BhYeplTlAiA==", + "requires": { + "@tauri-apps/api": "^2.0.0" + } + }, + "@tauri-apps/plugin-process": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-process/-/plugin-process-2.0.0.tgz", + "integrity": "sha512-OYzi0GnkrF4NAnsHZU7U3tjSoP0PbeAlO7T1Z+vJoBUH9sFQ1NSLqWYWQyf8hcb3gVWe7P1JggjiskO+LST1ug==", + "requires": { + "@tauri-apps/api": "^2.0.0" + } + }, + "@tauri-apps/plugin-shell": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-shell/-/plugin-shell-2.0.1.tgz", + "integrity": "sha512-akU1b77sw3qHiynrK0s930y8zKmcdrSD60htjH+mFZqv5WaakZA/XxHR3/sF1nNv9Mgmt/Shls37HwnOr00aSw==", + "requires": { + "@tauri-apps/api": "^2.0.0" + } + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", diff --git a/package.json b/package.json index 9e13cdb4..30eba6e2 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,15 @@ "@tauri-apps/cli": "^2.0.4" }, "dependencies": { + "@tauri-apps/plugin-clipboard-manager": "^2.0.0", + "@tauri-apps/plugin-dialog": "^2.0.1", + "@tauri-apps/plugin-fs": "^2.0.1", + "@tauri-apps/plugin-global-shortcut": "^2.0.0", + "@tauri-apps/plugin-http": "^2.0.1", + "@tauri-apps/plugin-notification": "^2.0.0", + "@tauri-apps/plugin-os": "^2.0.0", + "@tauri-apps/plugin-process": "^2.0.0", + "@tauri-apps/plugin-shell": "^2.0.1", "atob": "^2.1.2", "dotenv": "^16.4.5", "http": "^0.0.1-security", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index c75115ff..7856796e 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -2,6 +2,15 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + [[package]] name = "adler" version = "1.0.2" @@ -9,20 +18,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] -name = "adler32" -version = "1.2.0" +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "aho-corasick" -version = "0.7.19" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] +[[package]] +name = "aligned-vec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -38,6 +53,21 @@ 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.65" @@ -48,52 +78,254 @@ checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" name = "app" version = "2.0.0" dependencies = [ - "dirs", + "dirs 4.0.0", "serde", "serde_json", "tauri", "tauri-build", + "tauri-plugin-clipboard-manager", + "tauri-plugin-dialog", + "tauri-plugin-fs", + "tauri-plugin-global-shortcut", + "tauri-plugin-http", + "tauri-plugin-notification", + "tauri-plugin-os", + "tauri-plugin-process", + "tauri-plugin-shell", +] + +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" + +[[package]] +name = "arboard" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df099ccb16cd014ff054ac1bf392c67feeef57164b05c42f037cd40f5d4357f4" +dependencies = [ + "clipboard-win", + "core-graphics 0.23.1", + "image", + "log", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "parking_lot", + "windows-sys 0.48.0", + "x11rb", +] + +[[package]] +name = "arg_enum_proc_macro" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "ashpd" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d43c03d9e36dd40cab48435be0b09646da362c278223ca535493877b2c1dee9" +dependencies = [ + "enumflags2", + "futures-channel", + "futures-util", + "rand 0.8.5", + "raw-window-handle", + "serde", + "serde_repr", + "tokio", + "url", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "zbus", +] + +[[package]] +name = "async-broadcast" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "slab", +] + +[[package]] +name = "async-fs" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" +dependencies = [ + "async-lock", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-io" +version = "2.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" +dependencies = [ + "async-lock", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-lock" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451e3cf68011bd56771c79db04a9e333095ab6349f7e47592b788e9b98720cc8" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "async-signal" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", ] [[package]] name = "atk" -version = "0.15.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" +checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4" dependencies = [ "atk-sys", - "bitflags", "glib", "libc", ] [[package]] name = "atk-sys" -version = "0.15.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" +checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009" dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.2", + "system-deps", ] [[package]] -name = "attohttpc" -version = "0.22.0" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fcf00bc6d5abb29b5f97e3c61a90b6d3caa12f3faf897d4a3e3607c050a35a7" -dependencies = [ - "flate2", - "http", - "log", - "native-tls", - "serde", - "serde_json", - "serde_urlencoded", - "url", -] +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" @@ -101,18 +333,89 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "av1-grain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf" +dependencies = [ + "anyhow", + "arrayvec", + "log", + "nom", + "num-rational", + "v_frame", +] + +[[package]] +name = "avif-serialize" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e335041290c43101ca215eed6f43ec437eb5a42125573f600fc3fa42b9bddd62" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide 0.8.0", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + [[package]] name = "base64" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bit_field" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" + [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +dependencies = [ + "serde", +] + +[[package]] +name = "bitstream-io" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81e1519b0d82120d2fd469d5bfb2919a9361c48b02d82d04befc1cdd2002452" + [[package]] name = "block" version = "0.1.6" @@ -128,11 +431,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.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + [[package]] name = "brotli" -version = "3.3.4" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -141,22 +466,19 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "2.3.2" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", ] [[package]] -name = "bstr" -version = "0.2.17" +name = "built" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" -dependencies = [ - "memchr", -] +checksum = "c360505aed52b7ec96a3636c3f039d99103c37d1d9b4f7a8c743d3ea9ffcd03b" [[package]] name = "bumpalo" @@ -166,9 +488,9 @@ checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "bytemuck" -version = "1.12.1" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" +checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" [[package]] name = "byteorder" @@ -176,52 +498,98 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + [[package]] name = "bytes" -version = "1.2.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +dependencies = [ + "serde", +] [[package]] name = "cairo-rs" -version = "0.15.12" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" dependencies = [ - "bitflags", + "bitflags 2.6.0", "cairo-sys-rs", "glib", "libc", + "once_cell", "thiserror", ] [[package]] name = "cairo-sys-rs" -version = "0.15.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" dependencies = [ "glib-sys", "libc", - "system-deps 6.0.2", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +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 1.0.14", + "serde", + "serde_json", + "thiserror", ] [[package]] name = "cargo_toml" -version = "0.11.8" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72c3ff59e3b7d24630206bb63a73af65da4ed5df1f76ee84dfafb9fee2ba60e" +checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" dependencies = [ "serde", - "serde_derive", - "toml", + "toml 0.8.2", ] [[package]] name = "cc" -version = "1.0.73" +version = "1.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +dependencies = [ + "jobserver", + "libc", + "shlex", +] [[package]] name = "cesu8" @@ -231,49 +599,69 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] name = "cfb" -version = "0.6.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" dependencies = [ "byteorder", - "uuid 0.8.2", + "fnv", + "uuid", ] [[package]] name = "cfg-expr" -version = "0.9.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" +checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" dependencies = [ "smallvec", ] [[package]] -name = "cfg-expr" -version = "0.10.3" +name = "cfg-if" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ - "smallvec", + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets 0.52.6", ] [[package]] -name = "cfg-if" -version = "1.0.0" +name = "clipboard-win" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" +dependencies = [ + "error-code", +] [[package]] name = "cocoa" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832" +checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" dependencies = [ - "bitflags", + "bitflags 2.6.0", "block", "cocoa-foundation", - "core-foundation", - "core-graphics", + "core-foundation 0.10.0", + "core-graphics 0.24.0", "foreign-types", "libc", "objc", @@ -281,15 +669,14 @@ dependencies = [ [[package]] name = "cocoa-foundation" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" +checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" dependencies = [ - "bitflags", + "bitflags 2.6.0", "block", - "core-foundation", - "core-graphics-types", - "foreign-types", + "core-foundation 0.10.0", + "core-graphics-types 0.2.0", "libc", "objc", ] @@ -310,12 +697,49 @@ dependencies = [ "memchr", ] +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +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 = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "percent-encoding", + "time", + "version_check", +] + +[[package]] +name = "cookie_store" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4934e6b7e8419148b6ef56950d277af8561060b56afd59e2aadf98b59fce6baa" +dependencies = [ + "cookie", + "idna 0.5.0", + "log", + "publicsuffix", + "serde", + "serde_derive", + "serde_json", + "time", + "url", +] + [[package]] name = "core-foundation" version = "0.9.3" @@ -326,37 +750,70 @@ 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.3" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core-graphics" -version = "0.22.3" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" dependencies = [ - "bitflags", - "core-foundation", - "core-graphics-types", + "bitflags 1.3.2", + "core-foundation 0.9.3", + "core-graphics-types 0.1.2", "foreign-types", "libc", ] [[package]] -name = "core-graphics-types" -version = "0.1.1" +name = "core-graphics" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" dependencies = [ - "bitflags", - "core-foundation", + "bitflags 2.6.0", + "core-foundation 0.10.0", + "core-graphics-types 0.2.0", "foreign-types", "libc", ] +[[package]] +name = "core-graphics-types" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.3", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.10.0", + "libc", +] + [[package]] name = "cpufeatures" version = "0.2.5" @@ -386,14 +843,36 @@ dependencies = [ ] [[package]] -name = "crossbeam-utils" -version = "0.8.12" +name = "crossbeam-deque" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", ] +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-common" version = "0.1.6" @@ -418,7 +897,7 @@ dependencies = [ "proc-macro2", "quote", "smallvec", - "syn", + "syn 1.0.109", ] [[package]] @@ -428,30 +907,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" dependencies = [ "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "ctor" -version = "0.1.23" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" +checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" dependencies = [ "quote", - "syn", + "syn 2.0.85", ] -[[package]] -name = "cty" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" - [[package]] name = "darling" -version = "0.13.4" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ "darling_core", "darling_macro", @@ -459,48 +932,54 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.13.4" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn", + "syn 2.0.85", ] [[package]] name = "darling_macro" -version = "0.13.4" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn", + "syn 2.0.85", ] [[package]] -name = "dbus" -version = "0.9.6" +name = "data-url" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" + +[[package]] +name = "deranged" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8bcdd56d2e5c4ed26a529c5a9029f5db8290d433497506f958eae3be148eb6" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ - "libc", - "libdbus-sys", - "winapi", + "powerfmt", + "serde", ] [[package]] -name = "deflate" -version = "0.7.20" +name = "derivative" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "adler32", - "byteorder", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -513,7 +992,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.0", - "syn", + "syn 1.0.109", ] [[package]] @@ -532,7 +1011,16 @@ version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" dependencies = [ - "dirs-sys", + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", ] [[package]] @@ -556,6 +1044,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + [[package]] name = "dirs-sys-next" version = "0.1.2" @@ -573,6 +1073,53 @@ 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", +] + +[[package]] +name = "dlopen2" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dpi" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" +dependencies = [ + "serde", +] + [[package]] name = "dtoa" version = "0.4.8" @@ -588,6 +1135,38 @@ dependencies = [ "dtoa", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "embed-resource" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e24052d7be71f0efb50c201557f6fe7d237cfd5a64fd5bcd7fd8fe32dbbffa" +dependencies = [ + "cc", + "memchr", + "rustc_version 0.4.0", + "toml 0.8.2", + "vswhom", + "winreg", +] + [[package]] name = "embed_plist" version = "1.2.2" @@ -604,144 +1183,277 @@ dependencies = [ ] [[package]] -name = "fastrand" -version = "1.8.0" +name = "endi" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" -dependencies = [ - "instant", -] +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" [[package]] -name = "field-offset" -version = "0.3.4" +name = "enumflags2" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" dependencies = [ - "memoffset", - "rustc_version 0.3.3", + "enumflags2_derive", + "serde", ] [[package]] -name = "filetime" -version = "0.2.17" +name = "enumflags2_derive" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "windows-sys", + "proc-macro2", + "quote", + "syn 2.0.85", ] [[package]] -name = "flate2" -version = "1.0.24" +name = "equivalent" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" -dependencies = [ - "crc32fast", - "miniz_oxide", -] +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] -name = "fnv" -version = "1.0.7" +name = "erased-serde" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" +dependencies = [ + "serde", + "typeid", +] [[package]] -name = "foreign-types" -version = "0.3.2" +name = "errno" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ - "foreign-types-shared", + "libc", + "windows-sys 0.52.0", ] [[package]] -name = "foreign-types-shared" -version = "0.1.1" +name = "error-code" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" [[package]] -name = "form_urlencoded" -version = "1.1.0" +name = "event-listener" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ - "percent-encoding", + "concurrent-queue", + "parking", + "pin-project-lite", ] [[package]] -name = "futf" -version = "0.1.5" +name = "event-listener-strategy" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "mac", - "new_debug_unreachable", + "event-listener", + "pin-project-lite", ] [[package]] -name = "futures-channel" -version = "0.3.24" +name = "exr" +version = "1.72.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" +checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4" dependencies = [ - "futures-core", + "bit_field", + "flume", + "half", + "lebe", + "miniz_oxide 0.7.4", + "rayon-core", + "smallvec", + "zune-inflate", ] [[package]] -name = "futures-core" -version = "0.3.24" +name = "fastrand" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] -name = "futures-executor" -version = "0.3.24" +name = "field-offset" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" +checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" dependencies = [ - "futures-core", - "futures-task", - "futures-util", + "memoffset 0.6.5", + "rustc_version 0.3.3", ] [[package]] -name = "futures-io" -version = "0.3.24" +name = "flate2" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +dependencies = [ + "crc32fast", + "miniz_oxide 0.5.4", +] [[package]] -name = "futures-macro" -version = "0.3.24" +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]] +name = "flume" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" +dependencies = [ + "spin", +] + +[[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 = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.85", ] [[package]] -name = "futures-task" +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.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" +checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] -name = "futures-util" +name = "futures-executor" version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" +checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-lite" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", + "futures-io", "futures-macro", + "futures-sink", "futures-task", + "memchr", "pin-project-lite", "pin-utils", "slab", @@ -758,11 +1470,10 @@ dependencies = [ [[package]] name = "gdk" -version = "0.15.4" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" +checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646" dependencies = [ - "bitflags", "cairo-rs", "gdk-pixbuf", "gdk-sys", @@ -774,35 +1485,35 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.15.11" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" dependencies = [ - "bitflags", "gdk-pixbuf-sys", "gio", "glib", "libc", + "once_cell", ] [[package]] name = "gdk-pixbuf-sys" -version = "0.15.10" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" dependencies = [ "gio-sys", "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.2", + "system-deps", ] [[package]] name = "gdk-sys" -version = "0.15.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -812,33 +1523,48 @@ dependencies = [ "libc", "pango-sys", "pkg-config", - "system-deps 6.0.2", + "system-deps", ] [[package]] -name = "gdkx11-sys" -version = "0.15.1" +name = "gdkwayland-sys" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +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", - "system-deps 6.0.2", "x11", ] [[package]] -name = "generator" -version = "0.7.1" +name = "gdkx11-sys" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc184cace1cea8335047a471cc1da80f18acf8a76f3bab2028d499e328948ec7" +checksum = "fee8f00f4ee46cad2939b8990f5c70c94ff882c3028f3cc5abf950fa4ab53043" dependencies = [ - "cc", + "gdk-sys", + "glib-sys", "libc", - "log", - "rustversion", - "windows 0.32.0", + "system-deps", + "x11", ] [[package]] @@ -851,6 +1577,26 @@ 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 = "gethostname" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc3655aa6818d65bc620d6911f05aa7b6aeb596291e1e9f79e52df85583d1e30" +dependencies = [ + "rustix", + "windows-targets 0.52.6", +] + [[package]] name = "getrandom" version = "0.1.16" @@ -864,60 +1610,81 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.7" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] +[[package]] +name = "gif" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + [[package]] name = "gio" -version = "0.15.12" +version = "0.18.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" dependencies = [ - "bitflags", "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.15.10" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.2", + "system-deps", "winapi", ] [[package]] name = "glib" -version = "0.15.12" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" dependencies = [ - "bitflags", + "bitflags 2.6.0", "futures-channel", "futures-core", "futures-executor", "futures-task", + "futures-util", + "gio-sys", "glib-macros", "glib-sys", "gobject-sys", "libc", + "memchr", "once_cell", "smallvec", "thiserror", @@ -925,27 +1692,26 @@ dependencies = [ [[package]] name = "glib-macros" -version = "0.15.11" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" dependencies = [ - "anyhow", "heck 0.4.0", - "proc-macro-crate", + "proc-macro-crate 2.0.2", "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 2.0.85", ] [[package]] name = "glib-sys" -version = "0.15.10" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" dependencies = [ "libc", - "system-deps 6.0.2", + "system-deps", ] [[package]] @@ -955,37 +1721,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] -name = "globset" -version = "0.4.9" +name = "global-hotkey" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +checksum = "d1b75248f33c73df1ed69673f6cb36d2e048ae84d29aa1d3e53199d138ebb1df" dependencies = [ - "aho-corasick", - "bstr", - "fnv", - "log", - "regex", + "crossbeam-channel", + "keyboard-types", + "objc2", + "objc2-app-kit", + "once_cell", + "serde", + "thiserror", + "windows-sys 0.59.0", + "x11-dl", ] [[package]] name = "gobject-sys" -version = "0.15.10" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" dependencies = [ "glib-sys", "libc", - "system-deps 6.0.2", + "system-deps", ] [[package]] name = "gtk" -version = "0.15.5" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" +checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c" dependencies = [ "atk", - "bitflags", "cairo-rs", "field-offset", "futures-channel", @@ -996,16 +1765,15 @@ dependencies = [ "gtk-sys", "gtk3-macros", "libc", - "once_cell", "pango", "pkg-config", ] [[package]] name = "gtk-sys" -version = "0.15.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722" dependencies = [ "atk-sys", "cairo-sys-rs", @@ -1016,21 +1784,49 @@ dependencies = [ "gobject-sys", "libc", "pango-sys", - "system-deps 6.0.2", + "system-deps", ] [[package]] name = "gtk3-macros" -version = "0.15.4" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" +checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e" dependencies = [ - "anyhow", - "proc-macro-crate", + "proc-macro-crate 1.2.1", "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 2.0.85", +] + +[[package]] +name = "h2" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.6.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", ] [[package]] @@ -1040,13 +1836,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] -name = "heck" -version = "0.3.3" +name = "hashbrown" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" [[package]] name = "heck" @@ -1054,34 +1847,49 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +[[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.1.19" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "html5ever" -version = "0.25.2" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" +checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" dependencies = [ "log", "mac", "markup5ever", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "http" -version = "0.2.8" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -1089,68 +1897,189 @@ dependencies = [ ] [[package]] -name = "http-range" -version = "0.1.5" +name = "http-body" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] [[package]] -name = "ico" -version = "0.1.0" +name = "http-body-util" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a4b3331534254a9b64095ae60d3dc2a8225a7a70229cd5888be127cdc1f6804" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "byteorder", - "png 0.11.0", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", ] [[package]] -name = "ident_case" -version = "1.0.1" +name = "httparse" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] -name = "idna" -version = "0.3.0" +name = "hyper" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "itoa 1.0.4", + "pin-project-lite", + "smallvec", + "tokio", + "want", ] [[package]] -name = "ignore" -version = "0.4.18" +name = "hyper-rustls" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ - "crossbeam-utils", - "globset", - "lazy_static", - "log", - "memchr", - "regex", - "same-file", - "thread_local", - "walkdir", - "winapi-util", + "futures-util", + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core 0.52.0", +] + +[[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.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[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.4" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd8e4fb07cf672b1642304e731ef8a6a4c7891d67bb4fd4f5ce58cd6ed86803c" +checksum = "bc144d44a31d753b02ce64093d532f55ff8dc4ebf2ffb8a63c0dda691385acae" dependencies = [ "bytemuck", - "byteorder", + "byteorder-lite", "color_quant", - "num-rational", + "exr", + "gif", + "image-webp", "num-traits", + "png", + "qoi", + "ravif", + "rayon", + "rgb", + "tiff", + "zune-core", + "zune-jpeg", ] +[[package]] +name = "image-webp" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e031e8e3d94711a9ccb5d6ea357439ef3dcbed361798bd4071dc4d9793fbe22f" +dependencies = [ + "byteorder-lite", + "quick-error", +] + +[[package]] +name = "imgref" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408" + [[package]] name = "indexmap" version = "1.9.1" @@ -1158,25 +2087,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", + "serde", ] [[package]] -name = "infer" -version = "0.7.0" +name = "indexmap" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ - "cfb", + "equivalent", + "hashbrown 0.15.0", + "serde", ] [[package]] -name = "inflate" -version = "0.3.4" +name = "infer" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f9f47468e9a76a6452271efadc88fe865a82be91fe75e6c0c57b87ccea59d4" +checksum = "bc150e5ce2330295b8616ce0e3f53250e53af31759a9dbedad1621ba29151847" dependencies = [ - "adler32", + "cfb", ] [[package]] @@ -1188,6 +2120,51 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "interpolate_name" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "ipnet" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" + +[[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 = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "0.4.8" @@ -1202,39 +2179,41 @@ checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" [[package]] name = "javascriptcore-rs" -version = "0.16.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "glib", "javascriptcore-rs-sys", ] [[package]] name = "javascriptcore-rs-sys" -version = "0.4.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 5.0.0", + "system-deps", ] [[package]] name = "jni" -version = "0.19.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", + "cfg-if", "combine", "jni-sys", "log", "thiserror", "walkdir", + "windows-sys 0.45.0", ] [[package]] @@ -1243,34 +2222,95 @@ 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 = "jpeg-decoder" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" + [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] [[package]] name = "json-patch" -version = "0.2.6" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b1fb8864823fad91877e6caea0baca82e49e8db50f8e5c9f9a453e27d3330fc" +dependencies = [ + "jsonptr 0.4.7", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr 0.6.3", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "jsonptr" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c6e529149475ca0b2820835d3dce8fcc41c6b943ca608d32f35b449255e4627" +dependencies = [ + "fluent-uri", + "serde", + "serde_json", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" dependencies = [ "serde", "serde_json", - "treediff", ] [[package]] -name = "kuchiki" -version = "0.8.1" +name = "keyboard-types" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.6.0", + "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.1", "matches", "selectors", ] @@ -1281,19 +2321,61 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lebe" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" + +[[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", + "once_cell", +] + [[package]] name = "libc" -version = "0.2.135" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] -name = "libdbus-sys" -version = "0.2.2" +name = "libfuzzer-sys" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c185b5b7ad900923ef3a8ff594083d4d9b5aea80bb4f32b8342363138c0d456b" +checksum = "a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7" dependencies = [ - "pkg-config", + "arbitrary", + "cc", + "once_cell", +] + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", ] [[package]] @@ -1305,6 +2387,12 @@ dependencies = [ "safemem", ] +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + [[package]] name = "lock_api" version = "0.4.9" @@ -1317,26 +2405,17 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] -name = "loom" -version = "0.5.6" +name = "loop9" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" +checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "serde", - "serde_json", - "tracing", - "tracing-subscriber", + "imgref", ] [[package]] @@ -1347,9 +2426,9 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" [[package]] name = "mac-notification-sys" -version = "0.5.6" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e72d50edb17756489e79d52eb146927bec8eba9dd48faadf9ef08bca3791ad5" +checksum = "dce8f34f3717aa37177e723df6c1fc5fb02b2a1087374ea3fe0ea42316dc8f91" dependencies = [ "cc", "dirs-next", @@ -1369,38 +2448,38 @@ dependencies = [ [[package]] name = "markup5ever" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" +checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" dependencies = [ "log", - "phf 0.8.0", - "phf_codegen", + "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", -] - [[package]] name = "matches" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", +] + [[package]] name = "memchr" -version = "2.5.0" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memoffset" @@ -1411,6 +2490,27 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.5.4" @@ -1421,193 +2521,452 @@ dependencies = [ ] [[package]] -name = "native-tls" -version = "0.2.10" +name = "miniz_oxide" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ - "lazy_static", + "adler", +] + +[[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 = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +dependencies = [ + "hermit-abi 0.3.9", "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + +[[package]] +name = "muda" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8123dfd4996055ac9b15a60ad263b44b01e539007523ad7a4a533a3d93b0591" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "png", + "serde", + "thiserror", + "windows-sys 0.59.0", ] [[package]] name = "ndk" -version = "0.6.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags", + "bitflags 2.6.0", "jni-sys", + "log", "ndk-sys", "num_enum", + "raw-window-handle", "thiserror", ] [[package]] -name = "ndk-context" -version = "0.1.1" +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.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +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.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "libc", + "memoffset 0.9.1", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "noop_proc_macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" + +[[package]] +name = "notify-rust" +version = "4.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5134a72dc570b178bff81b01e81ab14a6fcc015391ed4b3b14853090658cd3a3" +dependencies = [ + "log", + "mac-notification-sys", + "serde", + "tauri-winrt-notification", + "zbus", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate 2.0.2", + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[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" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "objc2-encode", +] [[package]] -name = "ndk-sys" -version = "0.3.0" +name = "objc2-app-kit" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "jni-sys", + "bitflags 2.6.0", + "block2", + "libc", + "objc2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation", + "objc2-quartz-core", ] [[package]] -name = "new_debug_unreachable" -version = "1.0.4" +name = "objc2-cloud-kit" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] [[package]] -name = "nodrop" -version = "0.1.14" +name = "objc2-contacts" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] [[package]] -name = "notify-rust" -version = "4.5.10" +name = "objc2-core-data" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368e89ea58df747ce88be669ae44e79783c1d30bfd540ad0fc520b3f41f0b3b0" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "dbus", - "mac-notification-sys", - "tauri-winrt-notification", + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", ] [[package]] -name = "nu-ansi-term" -version = "0.46.0" +name = "objc2-core-image" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ - "overload", - "winapi", + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", ] [[package]] -name = "num-integer" -version = "0.1.45" +name = "objc2-core-location" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" dependencies = [ - "autocfg", - "num-traits", + "block2", + "objc2", + "objc2-contacts", + "objc2-foundation", ] [[package]] -name = "num-iter" -version = "0.1.43" +name = "objc2-encode" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] +checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" [[package]] -name = "num-rational" -version = "0.4.1" +name = "objc2-foundation" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "autocfg", - "num-integer", - "num-traits", + "bitflags 2.6.0", + "block2", + "dispatch", + "libc", + "objc2", ] [[package]] -name = "num-traits" -version = "0.2.15" +name = "objc2-link-presentation" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" dependencies = [ - "autocfg", + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", ] [[package]] -name = "num_cpus" -version = "1.13.1" +name = "objc2-metal" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "hermit-abi", - "libc", + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", ] [[package]] -name = "num_enum" -version = "0.5.7" +name = "objc2-quartz-core" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "num_enum_derive", + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", ] [[package]] -name = "num_enum_derive" -version = "0.5.7" +name = "objc2-symbols" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", + "objc2", + "objc2-foundation", ] [[package]] -name = "num_threads" -version = "0.1.6" +name = "objc2-ui-kit" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "libc", + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", ] [[package]] -name = "objc" -version = "0.2.7" +name = "objc2-uniform-type-identifiers" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" dependencies = [ - "malloc_buf", - "objc_exception", + "block2", + "objc2", + "objc2-foundation", ] [[package]] -name = "objc-foundation" -version = "0.1.1" +name = "objc2-user-notifications" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "block", - "objc", - "objc_id", + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", ] [[package]] -name = "objc_exception" -version = "0.1.2" +name = "objc2-web-kit" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +checksum = "68bc69301064cebefc6c4c90ce9cba69225239e4b8ff99d445a2b5563797da65" dependencies = [ - "cc", + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", ] [[package]] @@ -1620,100 +2979,75 @@ dependencies = [ ] [[package]] -name = "once_cell" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" - -[[package]] -name = "open" -version = "3.0.3" +name = "object" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a3100141f1733ea40b53381b0ae3117330735ef22309a190ac57b9576ea716" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ - "pathdiff", - "windows-sys", + "memchr", ] [[package]] -name = "openssl" -version = "0.10.42" +name = "once_cell" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] -name = "openssl-macros" -version = "0.1.0" +name = "open" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3" dependencies = [ - "proc-macro2", - "quote", - "syn", + "is-wsl", + "libc", + "pathdiff", ] [[package]] -name = "openssl-probe" -version = "0.1.5" +name = "option-ext" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] -name = "openssl-sys" -version = "0.9.76" +name = "ordered-stream" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5230151e44c0f05157effb743e8d517472843121cf9243e8b81393edb5acd9ce" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" dependencies = [ - "autocfg", - "cc", - "libc", - "pkg-config", - "vcpkg", + "futures-core", + "pin-project-lite", ] [[package]] name = "os_info" -version = "3.5.1" +version = "3.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4750134fb6a5d49afc80777394ad5d95b04bc12068c6abb92fae8f43817270f" +checksum = "ae99c7fa6dd38c7cafe1ec085e804f8f555a2f8659b0dbe03f1f9963a9b51092" dependencies = [ "log", "serde", - "winapi", + "windows-sys 0.52.0", ] [[package]] name = "os_pipe" -version = "1.1.1" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dceb7e43f59c35ee1548045b2c72945a5a3bb6ce6d6f07cdc13dc8f6bc4930a" +checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" dependencies = [ "libc", - "winapi", + "windows-sys 0.59.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.15.10" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" dependencies = [ - "bitflags", + "gio", "glib", "libc", "once_cell", @@ -1722,16 +3056,22 @@ dependencies = [ [[package]] name = "pango-sys" -version = "0.15.10" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.2", + "system-deps", ] +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + [[package]] name = "parking_lot" version = "0.12.1" @@ -1750,28 +3090,28 @@ checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", - "windows-sys", + "windows-sys 0.36.1", ] [[package]] name = "paste" -version = "1.0.9" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pathdiff" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +checksum = "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361" [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" @@ -1800,9 +3140,17 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" dependencies = [ - "phf_macros 0.10.0", "phf_shared 0.10.0", - "proc-macro-hack", +] + +[[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]] @@ -1815,6 +3163,16 @@ dependencies = [ "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" @@ -1835,6 +3193,16 @@ dependencies = [ "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" @@ -1846,21 +3214,20 @@ dependencies = [ "proc-macro-hack", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "phf_macros" -version = "0.10.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", + "phf_generator 0.11.2", + "phf_shared 0.11.2", "proc-macro2", "quote", - "syn", + "syn 2.0.85", ] [[package]] @@ -1881,11 +3248,20 @@ 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.9" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -1893,6 +3269,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + [[package]] name = "pkg-config" version = "0.3.25" @@ -1905,8 +3292,8 @@ version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" dependencies = [ - "base64", - "indexmap", + "base64 0.13.0", + "indexmap 1.9.1", "line-wrap", "serde", "time", @@ -1915,28 +3302,37 @@ dependencies = [ [[package]] name = "png" -version = "0.11.0" +version = "0.17.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0b0cabbbd20c2d7f06dbf015e06aad59b6ca3d9ed14848783e98af9aaf19925" +checksum = "8f0e7f4c94ec26ff209cee506314212639d6c91b80afb82984819fafce9df01c" dependencies = [ - "bitflags", - "deflate", - "inflate", - "num-iter", + "bitflags 1.3.2", + "crc32fast", + "flate2", + "miniz_oxide 0.5.4", ] [[package]] -name = "png" -version = "0.17.6" +name = "polling" +version = "3.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0e7f4c94ec26ff209cee506314212639d6c91b80afb82984819fafce9df01c" +checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" dependencies = [ - "bitflags", - "crc32fast", - "flate2", - "miniz_oxide", + "cfg-if", + "concurrent-queue", + "hermit-abi 0.4.0", + "pin-project-lite", + "rustix", + "tracing", + "windows-sys 0.59.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.16" @@ -1947,72 +3343,189 @@ checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" name = "precomputed-hash" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +dependencies = [ + "once_cell", + "thiserror", + "toml 0.5.9", +] + +[[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.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "proc-macro2" +version = "1.0.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "profiling" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" +dependencies = [ + "profiling-procmacros", +] + +[[package]] +name = "profiling-procmacros" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30" +dependencies = [ + "quote", + "syn 2.0.85", +] + +[[package]] +name = "psl-types" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" + +[[package]] +name = "publicsuffix" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457" +dependencies = [ + "idna 0.3.0", + "psl-types", +] [[package]] -name = "proc-macro-crate" -version = "1.2.1" +name = "qoi" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" dependencies = [ - "once_cell", - "thiserror", - "toml", + "bytemuck", ] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "quick-error" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + +[[package]] +name = "quick-xml" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", + "memchr", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "quick-xml" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" dependencies = [ - "proc-macro2", - "quote", - "version_check", + "memchr", ] [[package]] -name = "proc-macro-hack" -version = "0.5.19" +name = "quinn" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror", + "tokio", + "tracing", +] [[package]] -name = "proc-macro2" -version = "1.0.46" +name = "quinn-proto" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ - "unicode-ident", + "bytes", + "rand 0.8.5", + "ring", + "rustc-hash", + "rustls", + "slab", + "thiserror", + "tinyvec", + "tracing", ] [[package]] -name = "quick-xml" -version = "0.23.1" +name = "quinn-udp" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" +checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" dependencies = [ - "memchr", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.21" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -2077,7 +3590,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.7", + "getrandom 0.2.15", ] [[package]] @@ -2098,13 +3611,79 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rav1e" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" +dependencies = [ + "arbitrary", + "arg_enum_proc_macro", + "arrayvec", + "av1-grain", + "bitstream-io", + "built", + "cfg-if", + "interpolate_name", + "itertools", + "libc", + "libfuzzer-sys", + "log", + "maybe-rayon", + "new_debug_unreachable", + "noop_proc_macro", + "num-derive", + "num-traits", + "once_cell", + "paste", + "profiling", + "rand 0.8.5", + "rand_chacha 0.3.1", + "simd_helpers", + "system-deps", + "thiserror", + "v_frame", + "wasm-bindgen", +] + +[[package]] +name = "ravif" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2413fd96bd0ea5cdeeb37eaf446a22e6ed7b981d792828721e74ded1980a45c6" +dependencies = [ + "avif-serialize", + "imgref", + "loop9", + "quick-error", + "rav1e", + "rgb", +] + [[package]] name = "raw-window-handle" -version = "0.5.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "cty", + "crossbeam-deque", + "crossbeam-utils", ] [[package]] @@ -2113,7 +3692,16 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +dependencies = [ + "bitflags 2.6.0", ] [[package]] @@ -2122,70 +3710,145 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.7", - "redox_syscall", + "getrandom 0.2.15", + "redox_syscall 0.2.16", "thiserror", ] [[package]] name = "regex" -version = "1.6.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", + "regex-automata", "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.1.10" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ + "aho-corasick", + "memchr", "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.27" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] -name = "remove_dir_all" -version = "0.5.3" +name = "reqwest" +version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" dependencies = [ - "winapi", + "base64 0.22.1", + "bytes", + "cookie", + "cookie_store", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pemfile", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-rustls", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots", + "windows-registry", ] [[package]] name = "rfd" -version = "0.10.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +checksum = "8af382a047821a08aa6bfc09ab0d80ff48d45d8726f7cd8e44891f7cb4a4278e" dependencies = [ - "block", - "dispatch", + "ashpd", + "block2", "glib-sys", "gobject-sys", "gtk-sys", "js-sys", - "lazy_static", "log", - "objc", - "objc-foundation", - "objc_id", + "objc2", + "objc2-app-kit", + "objc2-foundation", "raw-window-handle", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows 0.37.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "rgb" +version = "0.8.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", ] +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustc_version" version = "0.3.3" @@ -2205,10 +3868,57 @@ dependencies = [ ] [[package]] -name = "rustversion" -version = "1.0.9" +name = "rustix" +version = "0.38.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.23.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" + +[[package]] +name = "rustls-webpki" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] [[package]] name = "ryu" @@ -2232,49 +3942,43 @@ dependencies = [ ] [[package]] -name = "schannel" -version = "0.1.20" +name = "schemars" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" dependencies = [ - "lazy_static", - "windows-sys", + "dyn-clone", + "indexmap 1.9.1", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", ] [[package]] -name = "scoped-tls" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" - -[[package]] -name = "scopeguard" -version = "1.1.0" +name = "schemars_derive" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.85", +] [[package]] -name = "security-framework" -version = "2.7.0" +name = "scoped-tls" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] -name = "security-framework-sys" -version = "2.6.1" +name = "scopeguard" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" -dependencies = [ - "core-foundation-sys", - "libc", -] +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "selectors" @@ -2282,14 +3986,14 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cssparser", "derive_more", "fxhash", "log", "matches", "phf 0.8.0", - "phf_codegen", + "phf_codegen 0.8.0", "precomputed-hash", "servo_arc", "smallvec", @@ -2325,31 +4029,54 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.145" +version = "1.0.213" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" +checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" 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.145" +version = "1.0.213" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.85", ] [[package]] name = "serde_json" -version = "1.0.86" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "itoa 1.0.4", + "memchr", "ryu", "serde", ] @@ -2362,7 +4089,16 @@ checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", ] [[package]] @@ -2379,24 +4115,32 @@ dependencies = [ [[package]] name = "serde_with" -version = "1.14.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.1", + "indexmap 2.6.0", "serde", + "serde_derive", + "serde_json", "serde_with_macros", + "time", ] [[package]] name = "serde_with_macros" -version = "1.5.2" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" dependencies = [ "darling", "proc-macro2", "quote", - "syn", + "syn 2.0.85", ] [[package]] @@ -2418,7 +4162,7 @@ checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2431,6 +4175,17 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "sha2" version = "0.10.6" @@ -2443,22 +4198,43 @@ dependencies = [ ] [[package]] -name = "sharded-slab" -version = "0.1.4" +name = "shared_child" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "09fa9338aed9a1df411814a5b2252f7cd206c55ae9bf2fa763f8de84603aa60c" dependencies = [ - "lazy_static", + "libc", + "windows-sys 0.59.0", ] [[package]] -name = "shared_child" -version = "1.0.0" +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "simd_helpers" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" +checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" dependencies = [ - "libc", - "winapi", + "quote", ] [[package]] @@ -2469,45 +4245,84 @@ checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" [[package]] name = "slab" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.10.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] -name = "soup2" -version = "0.2.1" +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "softbuffer" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" +dependencies = [ + "bytemuck", + "cfg_aliases", + "core-graphics 0.24.0", + "foreign-types", + "js-sys", + "log", + "objc2", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall 0.5.7", + "wasm-bindgen", + "web-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "soup3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" dependencies = [ - "bitflags", + "futures-channel", "gio", "glib", "libc", - "once_cell", - "soup2-sys", + "soup3-sys", ] [[package]] -name = "soup2-sys" -version = "0.2.0" +name = "soup3-sys" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" dependencies = [ - "bitflags", "gio-sys", "glib-sys", "gobject-sys", "libc", - "system-deps 5.0.0", + "system-deps", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", ] [[package]] @@ -2517,13 +4332,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] -name = "state" -version = "0.5.3" +name = "static_assertions" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" -dependencies = [ - "loom", -] +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "string_cache" @@ -2553,36 +4365,43 @@ 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 = "strum" -version = "0.22.0" +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.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" dependencies = [ - "strum_macros", + "base64 0.21.7", + "serde", + "serde_json", ] [[package]] -name = "strum_macros" -version = "0.22.0" +name = "syn" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "heck 0.3.3", "proc-macro2", "quote", - "syn", + "unicode-ident", ] [[package]] name = "syn" -version = "1.0.102" +version = "2.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" +checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" dependencies = [ "proc-macro2", "quote", @@ -2590,16 +4409,42 @@ dependencies = [ ] [[package]] -name = "system-deps" -version = "5.0.0" +name = "sync_wrapper" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" dependencies = [ - "cfg-expr 0.9.1", - "heck 0.3.3", - "pkg-config", - "toml", - "version-compare 0.0.11", + "futures-core", +] + +[[package]] +name = "sys-locale" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e801cf239ecd6ccd71f03d270d67dd53d13e90aab208bf4b8fe4ad957ea949b0" +dependencies = [ + "libc", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.9.3", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", ] [[package]] @@ -2608,36 +4453,30 @@ version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709" dependencies = [ - "cfg-expr 0.10.3", + "cfg-expr", "heck 0.4.0", "pkg-config", - "toml", - "version-compare 0.1.0", + "toml 0.5.9", + "version-compare", ] [[package]] name = "tao" -version = "0.14.0" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43336f5d1793543ba96e2a1e75f3a5c7dcd592743be06a0ab3a190f4fcb4b934" +checksum = "a0dbbebe82d02044dfa481adca1550d6dd7bd16e086bc34fa0fbecceb5a63751" dependencies = [ - "bitflags", - "cairo-rs", - "cc", + "bitflags 2.6.0", "cocoa", - "core-foundation", - "core-graphics", + "core-foundation 0.10.0", + "core-graphics 0.24.0", "crossbeam-channel", "dispatch", - "gdk", - "gdk-pixbuf", - "gdk-sys", + "dlopen2", + "dpi", + "gdkwayland-sys", "gdkx11-sys", - "gio", - "glib", - "glib-sys", "gtk", - "image", "instant", "jni", "lazy_static", @@ -2649,229 +4488,431 @@ dependencies = [ "objc", "once_cell", "parking_lot", - "paste", - "png 0.17.6", "raw-window-handle", "scopeguard", - "serde", + "tao-macros", "unicode-segmentation", - "uuid 1.2.1", - "windows 0.39.0", - "windows-implement", + "url", + "windows 0.58.0", + "windows-core 0.58.0", + "windows-version", "x11-dl", ] [[package]] -name = "tar" -version = "0.4.38" +name = "tao-macros" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ - "filetime", - "libc", - "xattr", + "proc-macro2", + "quote", + "syn 2.0.85", ] [[package]] name = "tauri" -version = "1.1.1" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbf22abd61d95ca9b2becd77f9db4c093892f73e8a07d21d8b0b2bf71a7bcea" +checksum = "d3889b392db6d32a105d3757230ea0220090b8f94c90d3e60b6c5eb91178ab1b" dependencies = [ "anyhow", - "attohttpc", - "cocoa", - "dirs-next", + "bytes", + "dirs 5.0.1", + "dunce", "embed_plist", - "encoding_rs", - "flate2", "futures-util", - "glib", + "getrandom 0.2.15", "glob", "gtk", - "heck 0.4.0", + "heck 0.5.0", "http", - "ignore", - "notify-rust", - "objc", - "once_cell", - "open", - "os_info", - "os_pipe", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", "percent-encoding", - "rand 0.8.5", + "plist", "raw-window-handle", - "regex", - "rfd", - "semver 1.0.14", + "reqwest", "serde", "serde_json", "serde_repr", "serialize-to-javascript", - "shared_child", - "state", - "tar", + "swift-rs", + "tauri-build", "tauri-macros", "tauri-runtime", "tauri-runtime-wry", "tauri-utils", - "tempfile", "thiserror", "tokio", + "tray-icon", "url", - "uuid 1.2.1", + "urlpattern", "webkit2gtk", "webview2-com", - "windows 0.39.0", + "window-vibrancy", + "windows 0.58.0", ] [[package]] name = "tauri-build" -version = "1.1.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0991fb306849897439dbd4a72e4cbed2413e2eb26cb4b3ba220b94edba8b4b88" +checksum = "9f96827ccfb1aa40d55d0ded79562d18ba18566657a553f992a982d755148376" dependencies = [ "anyhow", "cargo_toml", - "heck 0.4.0", - "json-patch", + "dirs 5.0.1", + "glob", + "heck 0.5.0", + "json-patch 3.0.1", + "schemars", "semver 1.0.14", + "serde", "serde_json", "tauri-utils", - "winres", + "tauri-winres", + "toml 0.8.2", + "walkdir", ] [[package]] name = "tauri-codegen" -version = "1.1.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356fa253e40ae4d6ff02075011f2f2bb4066f5c9d8c1e16ca6912d7b75903ba6" +checksum = "8947f16f47becd9e9cd39b74ee337fd1981574d78819be18e4384d85e5a0b82f" dependencies = [ - "base64", + "base64 0.22.1", "brotli", "ico", - "json-patch", + "json-patch 2.0.0", "plist", - "png 0.17.6", + "png", "proc-macro2", "quote", - "regex", "semver 1.0.14", "serde", "serde_json", "sha2", + "syn 2.0.85", "tauri-utils", "thiserror", "time", - "uuid 1.2.1", + "url", + "uuid", "walkdir", ] [[package]] name = "tauri-macros" -version = "1.1.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6051fd6940ddb22af452340d03c66a3e2f5d72e0788d4081d91e31528ccdc4d" +checksum = "8bd1c8d4a66799d3438747c3a79705cd665a95d6f24cb5f315413ff7a981fe2a" dependencies = [ - "heck 0.4.0", + "heck 0.5.0", "proc-macro2", "quote", - "syn", + "syn 2.0.85", "tauri-codegen", "tauri-utils", ] [[package]] -name = "tauri-runtime" -version = "0.11.1" +name = "tauri-plugin" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d49439a5ea47f474572b854972f42eda2e02a470be5ca9609cc83bb66945abe2" +checksum = "6fa4e6c94cb1d635f65a770c69e23de1bc054b0e4c554fa037a7cc7676333d39" dependencies = [ - "gtk", + "anyhow", + "glob", + "plist", + "schemars", + "serde", + "serde_json", + "tauri-utils", + "toml 0.8.2", + "walkdir", +] + +[[package]] +name = "tauri-plugin-clipboard-manager" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b7d556886c15849198c0948fd7f4c880492f0461539176da0a8a70272e2904" +dependencies = [ + "arboard", + "image", + "log", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror", +] + +[[package]] +name = "tauri-plugin-dialog" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4307310e1d2c09ab110235834722e7c2b85099b683e1eb7342ab351b0be5ada3" +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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96ba7d46e86db8c830d143ef90ab5a453328365b0cc834c24edea4267b16aba0" +dependencies = [ + "anyhow", + "dunce", + "glob", + "percent-encoding", + "schemars", + "serde", + "serde_json", + "serde_repr", + "tauri", + "tauri-plugin", + "thiserror", + "url", + "uuid", +] + +[[package]] +name = "tauri-plugin-global-shortcut" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c15fb7f5e4c80a73ce97217dcff27e423f496178cbcb87e13b4efe99eebb550" +dependencies = [ + "global-hotkey", + "log", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror", +] + +[[package]] +name = "tauri-plugin-http" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c752aee1b00ec3c4d4f440095995d9bd2c640b478f2067d1fba388900b82eb96" +dependencies = [ + "data-url", "http", - "http-range", - "infer", + "regex", + "reqwest", + "schemars", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "tauri-plugin-fs", + "thiserror", + "tokio", + "url", + "urlpattern", +] + +[[package]] +name = "tauri-plugin-notification" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef492a2d19b6376bb4c9e0c4fab3f3bf8a220ea112d24f35027b737ff55de20c" +dependencies = [ + "log", + "notify-rust", "rand 0.8.5", + "serde", + "serde_json", + "serde_repr", + "tauri", + "tauri-plugin", + "thiserror", + "time", + "url", +] + +[[package]] +name = "tauri-plugin-os" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc5f23a86f37687c7f4fecfdc706b279087bc44f7a46702f7307ff1551ee03a" +dependencies = [ + "gethostname 0.5.0", + "log", + "os_info", + "serde", + "serde_json", + "serialize-to-javascript", + "sys-locale", + "tauri", + "tauri-plugin", + "thiserror", +] + +[[package]] +name = "tauri-plugin-process" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae06a00087c148962a52814a2d7265b1a0505bced5ffb74f8c284a5f96a4d03d" +dependencies = [ + "tauri", + "tauri-plugin", +] + +[[package]] +name = "tauri-plugin-shell" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad7880c5586b6b2104be451e3d7fc0f3800c84bda69e9ba81c828f87cb34267" +dependencies = [ + "encoding_rs", + "log", + "open", + "os_pipe", + "regex", + "schemars", + "serde", + "serde_json", + "shared_child", + "tauri", + "tauri-plugin", + "thiserror", + "tokio", +] + +[[package]] +name = "tauri-runtime" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ef7363e7229ac8d04e8a5d405670dbd43dde8fc4bc3bc56105c35452d03784" +dependencies = [ + "dpi", + "gtk", + "http", + "jni", "raw-window-handle", "serde", "serde_json", "tauri-utils", "thiserror", - "uuid 1.2.1", - "webview2-com", - "windows 0.39.0", + "url", + "windows 0.58.0", ] [[package]] name = "tauri-runtime-wry" -version = "0.11.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dce920995fd49907aa9bea7249ed1771454f11f7611924c920a1f75fb614d4" +checksum = "62fa2068e8498ad007b54d5773d03d57c3ff6dd96f8c8ce58beff44d0d5e0d30" dependencies = [ - "cocoa", "gtk", + "http", + "jni", + "log", + "objc2", + "objc2-app-kit", + "objc2-foundation", "percent-encoding", - "rand 0.8.5", "raw-window-handle", + "softbuffer", + "tao", "tauri-runtime", "tauri-utils", - "uuid 1.2.1", + "url", "webkit2gtk", "webview2-com", - "windows 0.39.0", + "windows 0.58.0", "wry", ] [[package]] name = "tauri-utils" -version = "1.1.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8fdae6f29cef959809a3c3afef510c5b715a446a597ab8b791497585363f39" +checksum = "1fc65d6f5c54e56b66258948a6d9e47a82ea41f4b5a7612bfbdd1634c2913ed0" dependencies = [ "brotli", + "cargo_metadata", "ctor", + "dunce", "glob", - "heck 0.4.0", "html5ever", - "json-patch", - "kuchiki", + "infer", + "json-patch 2.0.0", + "kuchikiki", + "log", "memchr", - "phf 0.10.1", + "phf 0.11.2", "proc-macro2", "quote", + "regex", + "schemars", "semver 1.0.14", "serde", + "serde-untagged", "serde_json", "serde_with", + "swift-rs", "thiserror", + "toml 0.8.2", "url", + "urlpattern", + "uuid", "walkdir", - "windows 0.39.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 = "tauri-winrt-notification" -version = "0.1.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58de036c4d2e20717024de2a3c4bf56c301f07b21bc8ef9b57189fce06f1f3b" +checksum = "f89f5fb70d6f62381f5d9b2ba9008196150b40b75f3068eb24faeddf1c686871" dependencies = [ - "quick-xml", - "strum", - "windows 0.39.0", + "quick-xml 0.31.0", + "windows 0.56.0", + "windows-version", ] [[package]] name = "tempfile" -version = "3.3.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if", "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi", + "once_cell", + "rustix", + "windows-sys 0.59.0", ] [[package]] @@ -2893,42 +4934,64 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.37" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.37" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.85", ] [[package]] -name = "thread_local" -version = "1.1.4" +name = "tiff" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" dependencies = [ - "once_cell", + "flate2", + "jpeg-decoder", + "weezl", ] [[package]] name = "time" -version = "0.3.15" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ + "deranged", "itoa 1.0.4", - "libc", - "num_threads", + "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.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", ] [[package]] @@ -2948,15 +5011,55 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.21.2" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" dependencies = [ - "autocfg", + "backtrace", "bytes", - "memchr", - "num_cpus", + "libc", + "mio", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[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.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", "pin-project-lite", + "tokio", ] [[package]] @@ -2968,6 +5071,71 @@ dependencies = [ "serde", ] +[[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.6.0", + "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.6.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + [[package]] name = "tracing" version = "0.1.37" @@ -2982,13 +5150,13 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.85", ] [[package]] @@ -2998,46 +5166,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ "once_cell", - "valuable", ] [[package]] -name = "tracing-log" -version = "0.1.3" +name = "tray-icon" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +checksum = "7c92af36a182b46206723bdf8a7942e20838cde1cf062e5b97854d57eb01763b" dependencies = [ - "lazy_static", - "log", - "tracing-core", + "core-graphics 0.24.0", + "crossbeam-channel", + "dirs 5.0.1", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "png", + "serde", + "thiserror", + "windows-sys 0.59.0", ] [[package]] -name = "tracing-subscriber" -version = "0.3.16" +name = "try-lock" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] -name = "treediff" -version = "3.0.2" +name = "typeid" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" -dependencies = [ - "serde_json", -] +checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" [[package]] name = "typenum" @@ -3051,11 +5213,63 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset 0.9.1", + "tempfile", + "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]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" @@ -3074,33 +5288,45 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.10.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 = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.3.1" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", - "idna", + "idna 0.5.0", "percent-encoding", "serde", ] [[package]] -name = "utf-8" -version = "0.7.6" +name = "urlpattern" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] [[package]] -name = "uuid" -version = "0.8.2" +name = "utf-8" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] name = "uuid" @@ -3108,38 +5334,52 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "feb41e78f93363bb2df8b0e86a2ca30eed7806ea16ea0c790d757cf93f79be83" dependencies = [ - "getrandom 0.2.7", + "getrandom 0.2.15", + "serde", ] [[package]] -name = "valuable" -version = "0.1.0" +name = "v_frame" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b" +dependencies = [ + "aligned-vec", + "num-traits", + "wasm-bindgen", +] [[package]] -name = "vcpkg" -version = "0.2.15" +name = "version-compare" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" [[package]] -name = "version-compare" -version = "0.0.11" +name = "version_check" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] -name = "version-compare" +name = "vswhom" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] [[package]] -name = "version_check" -version = "0.9.4" +name = "vswhom-sys" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +dependencies = [ + "cc", + "libc", +] [[package]] name = "walkdir" @@ -3152,6 +5392,15 @@ dependencies = [ "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" @@ -3166,34 +5415,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn", + "syn 2.0.85", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -3203,9 +5453,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3213,28 +5463,101 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.85", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" + +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wayland-backend" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" +dependencies = [ + "cc", + "downcast-rs", + "rustix", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" +dependencies = [ + "bitflags 2.6.0", + "rustix", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" +dependencies = [ + "proc-macro2", + "quick-xml 0.36.2", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" +dependencies = [ + "dlib", + "log", + "pkg-config", +] [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -3242,11 +5565,11 @@ dependencies = [ [[package]] name = "webkit2gtk" -version = "0.18.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29952969fb5e10fe834a52eb29ad0814ccdfd8387159b0933edf1344a1c9cdcc" +checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-rs", "gdk", "gdk-sys", @@ -3260,20 +5583,18 @@ dependencies = [ "javascriptcore-rs", "libc", "once_cell", - "soup2", + "soup3", "webkit2gtk-sys", ] [[package]] name = "webkit2gtk-sys" -version = "0.18.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" +checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" dependencies = [ - "atk-sys", - "bitflags", + "bitflags 1.3.2", "cairo-sys-rs", - "gdk-pixbuf-sys", "gdk-sys", "gio-sys", "glib-sys", @@ -3281,50 +5602,62 @@ dependencies = [ "gtk-sys", "javascriptcore-rs-sys", "libc", - "pango-sys", "pkg-config", - "soup2-sys", - "system-deps 6.0.2", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webpki-roots" +version = "0.26.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +dependencies = [ + "rustls-pki-types", ] [[package]] name = "webview2-com" -version = "0.19.1" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178" +checksum = "6f61ff3d9d0ee4efcb461b14eb3acfda2702d10dc329f339303fc3e57215ae2c" dependencies = [ "webview2-com-macros", "webview2-com-sys", - "windows 0.39.0", - "windows-implement", + "windows 0.58.0", + "windows-core 0.58.0", + "windows-implement 0.58.0", + "windows-interface 0.58.0", ] [[package]] name = "webview2-com-macros" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" +checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.85", ] [[package]] name = "webview2-com-sys" -version = "0.19.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7" +checksum = "a3a3e2eeb58f82361c93f9777014668eb3d07e7d174ee4c819575a9208011886" dependencies = [ - "regex", - "serde", - "serde_json", "thiserror", - "windows 0.39.0", - "windows-bindgen", - "windows-metadata", + "windows 0.58.0", + "windows-core 0.58.0", ] +[[package]] +name = "weezl" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" + [[package]] name = "winapi" version = "0.3.9" @@ -3357,70 +5690,155 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "windows" -version = "0.32.0" +name = "window-vibrancy" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbedf6db9096bc2364adce0ae0aa636dcd89f3c3f2cd67947062aaf0ca2a10ec" +checksum = "3ea403deff7b51fff19e261330f71608ff2cdef5721d72b64180bb95be7c4150" dependencies = [ - "windows_aarch64_msvc 0.32.0", - "windows_i686_gnu 0.32.0", - "windows_i686_msvc 0.32.0", - "windows_x86_64_gnu 0.32.0", - "windows_x86_64_msvc 0.32.0", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", ] [[package]] name = "windows" -version = "0.37.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132" dependencies = [ - "windows_aarch64_msvc 0.37.0", - "windows_i686_gnu 0.37.0", - "windows_i686_msvc 0.37.0", - "windows_x86_64_gnu 0.37.0", - "windows_x86_64_msvc 0.37.0", + "windows-core 0.56.0", + "windows-targets 0.52.6", ] [[package]] name = "windows" -version = "0.39.0" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core 0.58.0", + "windows-targets 0.52.6", +] + +[[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.6", +] + +[[package]] +name = "windows-core" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6" +dependencies = [ + "windows-implement 0.56.0", + "windows-interface 0.56.0", + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ - "windows-implement", - "windows_aarch64_msvc 0.39.0", - "windows_i686_gnu 0.39.0", - "windows_i686_msvc 0.39.0", - "windows_x86_64_gnu 0.39.0", - "windows_x86_64_msvc 0.39.0", + "windows-implement 0.58.0", + "windows-interface 0.58.0", + "windows-result 0.2.0", + "windows-strings", + "windows-targets 0.52.6", ] [[package]] -name = "windows-bindgen" -version = "0.39.0" +name = "windows-implement" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41" +checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ - "windows-metadata", - "windows-tokens", + "proc-macro2", + "quote", + "syn 2.0.85", ] [[package]] name = "windows-implement" -version = "0.39.0" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "windows-interface" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result 0.2.0", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "syn", - "windows-tokens", + "windows-targets 0.52.6", ] [[package]] -name = "windows-metadata" -version = "0.39.0" +name = "windows-strings" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result 0.2.0", + "windows-targets 0.52.6", +] [[package]] name = "windows-sys" @@ -3436,16 +5854,113 @@ dependencies = [ ] [[package]] -name = "windows-tokens" -version = "0.39.0" +name = "windows-sys" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.32.0" +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.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.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-version" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515" +dependencies = [ + "windows-targets 0.52.6", +] + +[[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.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -3455,21 +5970,21 @@ checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" [[package]] name = "windows_aarch64_msvc" -version = "0.37.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.39.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] -name = "windows_i686_gnu" -version = "0.32.0" +name = "windows_aarch64_msvc" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -3479,21 +5994,27 @@ checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" [[package]] name = "windows_i686_gnu" -version = "0.37.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.39.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] -name = "windows_i686_msvc" -version = "0.32.0" +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -3503,21 +6024,21 @@ checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" [[package]] name = "windows_i686_msvc" -version = "0.37.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.39.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] -name = "windows_x86_64_gnu" -version = "0.32.0" +name = "windows_i686_msvc" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -3527,21 +6048,39 @@ checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" [[package]] name = "windows_x86_64_gnu" -version = "0.37.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.39.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] -name = "windows_x86_64_msvc" -version = "0.32.0" +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.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.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -3551,59 +6090,80 @@ checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" [[package]] name = "windows_x86_64_msvc" -version = "0.37.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.39.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] -name = "winres" -version = "0.1.12" +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[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.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ - "toml", + "cfg-if", + "windows-sys 0.48.0", ] [[package]] name = "wry" -version = "0.21.1" +version = "0.46.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff5c1352b4266fdf92c63479d2f58ab4cd29dc4e78fbc1b62011ed1227926945" +checksum = "cd5cdf57c66813d97601181349c63b96994b3074fc3d7a31a8cce96e968e3bbd" dependencies = [ - "base64", - "block", - "cocoa", - "core-graphics", + "base64 0.22.1", + "block2", "crossbeam-channel", - "gdk", - "gio", - "glib", + "dpi", + "dunce", + "gdkx11", "gtk", "html5ever", "http", - "kuchiki", + "javascriptcore-rs", + "jni", + "kuchikiki", "libc", - "log", - "objc", - "objc_id", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", "once_cell", - "serde", - "serde_json", + "percent-encoding", + "raw-window-handle", "sha2", - "tao", + "soup3", + "tao-macros", "thiserror", - "url", "webkit2gtk", "webkit2gtk-sys", "webview2-com", - "windows 0.39.0", - "windows-implement", + "windows 0.58.0", + "windows-core 0.58.0", + "windows-version", + "x11-dl", ] [[package]] @@ -3618,22 +6178,40 @@ dependencies = [ [[package]] name = "x11-dl" -version = "2.20.0" +version = "2.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c83627bc137605acc00bb399c7b908ef460b621fc37c953db2b09f88c449ea6" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" dependencies = [ - "lazy_static", "libc", + "once_cell", "pkg-config", ] [[package]] -name = "xattr" -version = "0.2.3" +name = "x11rb" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" +dependencies = [ + "gethostname 0.4.3", + "rustix", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" + +[[package]] +name = "xdg-home" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" dependencies = [ "libc", + "windows-sys 0.59.0", ] [[package]] @@ -3641,3 +6219,136 @@ name = "xml-rs" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" + +[[package]] +name = "zbus" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030" +dependencies = [ + "async-broadcast", + "async-executor", + "async-fs", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "derivative", + "enumflags2", + "event-listener", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix", + "ordered-stream", + "rand 0.8.5", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tokio", + "tracing", + "uds_windows", + "windows-sys 0.52.0", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7" +dependencies = [ + "proc-macro-crate 1.2.1", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zune-core" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" + +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "zune-jpeg" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16099418600b4d8f028622f73ff6e3deaabdff330fb9a2a131dea781ee8b0768" +dependencies = [ + "zune-core", +] + +[[package]] +name = "zvariant" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e09e8be97d44eeab994d752f341e67b3b0d80512a8b315a0671d47232ef1b65" +dependencies = [ + "endi", + "enumflags2", + "serde", + "static_assertions", + "url", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e" +dependencies = [ + "proc-macro-crate 1.2.1", + "proc-macro2", + "quote", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index a6889f02..072f4e90 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -12,13 +12,21 @@ rust-version = "1.57" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [build-dependencies] -tauri-build = { version = "1.1.1", features = [] } +tauri-build = { version = "2", features = [] } [dependencies] serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } -tauri = { version = "1.1.1", features = ["api-all"] } +tauri = { version = "2", features = [] } dirs = "4.0.0" +tauri-plugin-http = "2" +tauri-plugin-process = "2" +tauri-plugin-fs = "2" +tauri-plugin-clipboard-manager = "2.0.1" +tauri-plugin-shell = "2" +tauri-plugin-dialog = "2" +tauri-plugin-os = "2" +tauri-plugin-notification = "2" [features] # by default Tauri runs in production mode @@ -27,3 +35,6 @@ default = [ "custom-protocol" ] # this feature is used for production builds where `devPath` points to the filesystem # DO NOT remove this custom-protocol = [ "tauri/custom-protocol" ] + +[target."cfg(not(any(target_os = \"android\", target_os = \"ios\")))".dependencies] +tauri-plugin-global-shortcut = "2" diff --git a/src-tauri/build.rs b/src-tauri/build.rs index 795b9b7c..d860e1e6 100644 --- a/src-tauri/build.rs +++ b/src-tauri/build.rs @@ -1,3 +1,3 @@ fn main() { - tauri_build::build() + tauri_build::build() } diff --git a/src-tauri/capabilities/desktop.json b/src-tauri/capabilities/desktop.json new file mode 100644 index 00000000..e57f3cc8 --- /dev/null +++ b/src-tauri/capabilities/desktop.json @@ -0,0 +1,12 @@ +{ + "identifier": "desktop-capability", + "platforms": [ + "macOS", + "windows", + "linux" + ], + "permissions": [ + "global-shortcut:default", + "os:default" + ] +} \ No newline at end of file diff --git a/src-tauri/capabilities/migrated.json b/src-tauri/capabilities/migrated.json new file mode 100644 index 00000000..b232c12a --- /dev/null +++ b/src-tauri/capabilities/migrated.json @@ -0,0 +1,88 @@ +{ + "identifier": "migrated", + "description": "permissions that were migrated from v1", + "local": true, + "windows": [ + "main" + ], + "permissions": [ + "core:default", + "fs:allow-read-file", + "fs:allow-write-file", + "fs:allow-read-dir", + "fs:allow-copy-file", + "fs:allow-mkdir", + "fs:allow-remove", + "fs:allow-remove", + "fs:allow-rename", + "fs:allow-exists", + "core:window:allow-create", + "core:window:allow-center", + "core:window:allow-request-user-attention", + "core:window:allow-set-resizable", + "core:window:allow-set-maximizable", + "core:window:allow-set-minimizable", + "core:window:allow-set-closable", + "core:window:allow-set-title", + "core:window:allow-maximize", + "core:window:allow-unmaximize", + "core:window:allow-minimize", + "core:window:allow-unminimize", + "core:window:allow-show", + "core:window:allow-hide", + "core:window:allow-close", + "core:window:allow-set-decorations", + "core:window:allow-set-always-on-top", + "core:window:allow-set-content-protected", + "core:window:allow-set-size", + "core:window:allow-set-min-size", + "core:window:allow-set-max-size", + "core:window:allow-set-position", + "core:window:allow-set-fullscreen", + "core:window:allow-set-focus", + "core:window:allow-set-icon", + "core:window:allow-set-skip-taskbar", + "core:window:allow-set-cursor-grab", + "core:window:allow-set-cursor-visible", + "core:window:allow-set-cursor-icon", + "core:window:allow-set-cursor-position", + "core:window:allow-set-ignore-cursor-events", + "core:window:allow-start-dragging", + "core:webview:allow-print", + "shell:allow-execute", + "shell:allow-open", + "dialog:allow-open", + "dialog:allow-save", + "dialog:allow-message", + "dialog:allow-ask", + "dialog:allow-confirm", + "http:default", + "notification:default", + "global-shortcut:allow-is-registered", + "global-shortcut:allow-register", + "global-shortcut:allow-register-all", + "global-shortcut:allow-unregister", + "global-shortcut:allow-unregister-all", + "os:allow-platform", + "os:allow-version", + "os:allow-os-type", + "os:allow-family", + "os:allow-arch", + "os:allow-exe-extension", + "os:allow-locale", + "os:allow-hostname", + "process:allow-restart", + "process:allow-exit", + "clipboard-manager:allow-read-text", + "clipboard-manager:allow-write-text", + "core:app:allow-app-show", + "core:app:allow-app-hide", + "http:default", + "process:default", + "fs:default", + "clipboard-manager:default", + "shell:default", + "dialog:default", + "os:default" + ] +} \ No newline at end of file diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 8c6129da..bec3a66c 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1,6 +1,6 @@ #![cfg_attr( - all(not(debug_assertions), target_os = "windows"), - windows_subsystem = "windows" + all(not(debug_assertions), target_os = "windows"), + windows_subsystem = "windows" )] #[cfg(target_os = "macos")] static PLATFORM: &str = "macos"; @@ -8,54 +8,67 @@ static PLATFORM: &str = "macos"; static PLATFORM: &str = "linux"; #[cfg(target_os = "windows")] static PLATFORM: &str = "windows"; -use serde_json::{Value}; use serde_json::json; +use serde_json::Value; use std::fs::File; use std::io::BufReader; use std::io::BufWriter; use std::io::Write; use std::path::Path; -const VERSION : i32 = 1001004; -const INSTALL_SOURCE : &str = "website"; +const VERSION: i32 = 1001004; +const INSTALL_SOURCE: &str = "website"; fn savepath() -> String { - let config_directory : String = dirs::config_dir().unwrap().display().to_string(); - let program_subdirectory : &str = if PLATFORM == "macos" {"/Simple Web Server/"} else {"\\Simple Web Server\\"}; - return config_directory + program_subdirectory; + let config_directory: String = dirs::config_dir().unwrap().display().to_string(); + let program_subdirectory: &str = if PLATFORM == "macos" { + "/Simple Web Server/" + } else { + "\\Simple Web Server\\" + }; + return config_directory + program_subdirectory; } fn main() { - tauri::Builder::default() - .invoke_handler(tauri::generate_handler![init, saveconfig, quit]) - .build(tauri::generate_context!()) - .expect("error while building tauri application") - .run(|_app_handle, event| match event { - tauri::RunEvent::ExitRequested { api, .. } => { - api.prevent_exit(); - } - _ => {} - }); + tauri::Builder::default() + .plugin(tauri_plugin_notification::init()) + .plugin(tauri_plugin_os::init()) + .plugin(tauri_plugin_global_shortcut::Builder::new().build()) + .plugin(tauri_plugin_dialog::init()) + .plugin(tauri_plugin_shell::init()) + .plugin(tauri_plugin_clipboard_manager::init()) + .plugin(tauri_plugin_fs::init()) + .plugin(tauri_plugin_process::init()) + .plugin(tauri_plugin_http::init()) + .invoke_handler(tauri::generate_handler![init, saveconfig, quit]) + .build(tauri::generate_context!()) + .expect("error while building tauri application") + .run(|_app_handle, event| match event { + tauri::RunEvent::ExitRequested { api, .. } => { + api.prevent_exit(); + } + _ => {} + }); } #[tauri::command] fn init() -> Value { - let mut config : Value = json!({}); - if Path::new(&(savepath() + "config.json")).exists() { - let file = File::open(savepath() + "config.json").expect("Unable to open"); - let reader = BufReader::new(file); - config = serde_json::from_reader(reader).expect("Unable to read JSON"); - } - return json!({ - "config": config, - "ip": ["127.0.0.1"], - "install_source": INSTALL_SOURCE - }); + let mut config: Value = json!({}); + if Path::new(&(savepath() + "config.json")).exists() { + let file = File::open(savepath() + "config.json").expect("Unable to open"); + let reader = BufReader::new(file); + config = serde_json::from_reader(reader).expect("Unable to read JSON"); + } + return json!({ + "config": config, + "ip": ["127.0.0.1"], + "install_source": INSTALL_SOURCE + }); } #[tauri::command] fn saveconfig(config: Value) { - let data = config.to_string(); + let data = config.to_string(); let f = File::create(savepath() + "config.json").expect("Unable to create file"); let mut f = BufWriter::new(f); f.write_all(data.as_bytes()).expect("Unable to write data"); @@ -63,5 +76,5 @@ fn saveconfig(config: Value) { #[tauri::command] fn quit(handle: tauri::AppHandle) { - handle.exit(0); -} \ No newline at end of file + handle.exit(0); +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index f84b9d4c..1622bc44 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -3,57 +3,50 @@ "build": { "beforeBuildCommand": "", "beforeDevCommand": "", - "devPath": "http://127.0.0.1:8765/index.html", - "distDir": "../..", - "withGlobalTauri": true + "frontendDist": "../..", + "devUrl": "http://127.0.0.1:8765/index.html" }, - "package": { - "productName": "Simple Web Server", - "version": "2.0.0" - }, - "tauri": { - "allowlist": { - "all": true + "bundle": { + "active": true, + "category": "DeveloperTool", + "copyright": "MIT License", + "targets": "all", + "externalBin": [], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "windows": { + "certificateThumbprint": null, + "digestAlgorithm": "sha256", + "timestampUrl": "" + }, + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": null }, - "bundle": { - "active": true, - "category": "DeveloperTool", - "copyright": "MIT License", + "resources": [], + "shortDescription": "Create a local web server in just a few clicks with an easy to use interface.", + "linux": { "deb": { "depends": [] - }, - "externalBin": [], - "icon": [ - "icons/32x32.png", - "icons/128x128.png", - "icons/128x128@2x.png", - "icons/icon.icns", - "icons/icon.ico" - ], - "identifier": "org.simplewebserver.simplewebserver", - "longDescription": "", - "macOS": { - "entitlements": null, - "exceptionDomain": "", - "frameworks": [], - "providerShortName": null, - "signingIdentity": null - }, - "resources": [], - "shortDescription": "Create a local web server in just a few clicks with an easy to use interface.", - "targets": "all", - "windows": { - "certificateThumbprint": null, - "digestAlgorithm": "sha256", - "timestampUrl": "" } - }, - "security": { - "csp": null - }, - "updater": { - "active": false - }, + } + }, + "productName": "Simple Web Server", + "mainBinaryName": "Simple Web Server", + "version": "2.0.0", + "identifier": "org.simplewebserver.simplewebserver", + "plugins": {}, + "app": { + "withGlobalTauri": true, "windows": [ { "fullscreen": false, @@ -64,6 +57,9 @@ "width": 420, "minWidth": 280 } - ] + ], + "security": { + "csp": null + } } -} +} \ No newline at end of file From 0462b64afa590a595a054bff71ba4d2dcc8961de Mon Sep 17 00:00:00 2001 From: Terren <11605395+terreng@users.noreply.github.com> Date: Sat, 26 Oct 2024 13:21:01 -0400 Subject: [PATCH 09/12] Update to Tauri 2.0 --- src-tauri/Cargo.lock | 570 +-- src-tauri/Cargo.toml | 2 +- src-tauri/gen/schemas/acl-manifests.json | 1 + src-tauri/gen/schemas/capabilities.json | 1 + src-tauri/gen/schemas/desktop-schema.json | 5598 +++++++++++++++++++++ src-tauri/gen/schemas/macOS-schema.json | 5598 +++++++++++++++++++++ 6 files changed, 11443 insertions(+), 327 deletions(-) create mode 100644 src-tauri/gen/schemas/acl-manifests.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/macOS-schema.json diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 7856796e..5e428a20 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -70,9 +70,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.65" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" +checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" [[package]] name = "app" @@ -107,7 +107,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df099ccb16cd014ff054ac1bf392c67feeef57164b05c42f037cd40f5d4357f4" dependencies = [ "clipboard-win", - "core-graphics 0.23.1", + "core-graphics 0.23.2", "image", "log", "objc2", @@ -236,20 +236,21 @@ dependencies = [ [[package]] name = "async-process" -version = "2.1.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451e3cf68011bd56771c79db04a9e333095ab6349f7e47592b788e9b98720cc8" +checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ "async-channel", "async-io", "async-lock", "async-signal", + "async-task", "blocking", "cfg-if", "event-listener", "futures-lite", "rustix", - "windows-sys 0.52.0", + "tracing", ] [[package]] @@ -329,9 +330,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "av1-grain" @@ -371,12 +372,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - [[package]] name = "base64" version = "0.21.7" @@ -424,9 +419,9 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] @@ -482,9 +477,9 @@ checksum = "c360505aed52b7ec96a3636c3f039d99103c37d1d9b4f7a8c743d3ea9ffcd03b" [[package]] name = "bumpalo" -version = "3.11.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" @@ -494,9 +489,9 @@ checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "byteorder-lite" @@ -564,7 +559,7 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.14", + "semver", "serde", "serde_json", "thiserror", @@ -610,11 +605,12 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.10.3" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ "smallvec", + "target-lexicon", ] [[package]] @@ -689,9 +685,9 @@ 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", @@ -742,9 +738,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -768,13 +764,13 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core-graphics" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.3", - "core-graphics-types 0.1.2", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", "foreign-types", "libc", ] @@ -794,12 +790,12 @@ dependencies = [ [[package]] name = "core-graphics-types" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.3", + "core-foundation 0.9.4", "libc", ] @@ -816,29 +812,28 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" dependencies = [ - "cfg-if", "crossbeam-utils", ] @@ -902,12 +897,12 @@ dependencies = [ [[package]] name = "cssparser-macros" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 1.0.109", + "syn 2.0.85", ] [[package]] @@ -984,22 +979,22 @@ dependencies = [ [[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 0.4.0", - "syn 1.0.109", + "rustc_version", + "syn 2.0.85", ] [[package]] name = "digest" -version = "0.10.5" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", @@ -1079,7 +1074,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading", + "libloading 0.8.5", ] [[package]] @@ -1122,15 +1117,15 @@ dependencies = [ [[package]] name = "dtoa" -version = "0.4.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" [[package]] name = "dtoa-short" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" dependencies = [ "dtoa", ] @@ -1161,7 +1156,7 @@ checksum = "f4e24052d7be71f0efb50c201557f6fe7d237cfd5a64fd5bcd7fd8fe32dbbffa" dependencies = [ "cc", "memchr", - "rustc_version 0.4.0", + "rustc_version", "toml 0.8.2", "vswhom", "winreg", @@ -1175,9 +1170,9 @@ checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" [[package]] name = "encoding_rs" -version = "0.8.31" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -1284,24 +1279,33 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +[[package]] +name = "fdeflate" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8090f921a24b04994d9929e204f50b498a33ea6ba559ffaa05e04f7ee7fb5ab" +dependencies = [ + "simd-adler32", +] + [[package]] name = "field-offset" -version = "0.3.4" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ - "memoffset 0.6.5", - "rustc_version 0.3.3", + "memoffset", + "rustc_version", ] [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", - "miniz_oxide 0.5.4", + "miniz_oxide 0.8.0", ] [[package]] @@ -1376,9 +1380,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.24" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", ] @@ -1391,9 +1395,9 @@ checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.24" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -1569,9 +1573,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -1696,7 +1700,7 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" dependencies = [ - "heck 0.4.0", + "heck 0.4.1", "proc-macro-crate 2.0.2", "proc-macro-error", "proc-macro2", @@ -1716,9 +1720,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "global-hotkey" @@ -1793,7 +1797,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e" dependencies = [ - "proc-macro-crate 1.2.1", + "proc-macro-crate 1.3.1", "proc-macro-error", "proc-macro2", "quote", @@ -1843,9 +1847,9 @@ checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" [[package]] name = "heck" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "heck" @@ -1893,7 +1897,7 @@ checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", - "itoa 1.0.4", + "itoa 1.0.11", ] [[package]] @@ -1938,7 +1942,7 @@ dependencies = [ "http", "http-body", "httparse", - "itoa 1.0.4", + "itoa 1.0.11", "pin-project-lite", "smallvec", "tokio", @@ -2082,9 +2086,9 @@ checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408" [[package]] name = "indexmap" -version = "1.9.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", @@ -2113,9 +2117,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", ] @@ -2173,9 +2177,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.4" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "javascriptcore-rs" @@ -2310,16 +2314,16 @@ checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" dependencies = [ "cssparser", "html5ever", - "indexmap 1.9.1", + "indexmap 1.9.3", "matches", "selectors", ] [[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 = "lebe" @@ -2347,7 +2351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" dependencies = [ "gtk-sys", - "libloading", + "libloading 0.7.4", "once_cell", ] @@ -2379,12 +2383,23 @@ dependencies = [ ] [[package]] -name = "line-wrap" -version = "0.1.1" +name = "libloading" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ - "safemem", + "cfg-if", + "windows-targets 0.52.6", +] + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", ] [[package]] @@ -2395,9 +2410,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -2462,9 +2477,9 @@ dependencies = [ [[package]] name = "matches" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "maybe-rayon" @@ -2481,15 +2496,6 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.9.1" @@ -2511,15 +2517,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.7.4" @@ -2536,6 +2533,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -2602,9 +2600,9 @@ dependencies = [ [[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" @@ -2615,7 +2613,7 @@ dependencies = [ "bitflags 2.6.0", "cfg-if", "libc", - "memoffset 0.9.1", + "memoffset", ] [[package]] @@ -3074,9 +3072,9 @@ 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", @@ -3084,15 +3082,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.3" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.16", + "redox_syscall", "smallvec", - "windows-sys 0.36.1", + "windows-targets 0.52.6", ] [[package]] @@ -3113,16 +3111,6 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -[[package]] -name = "pest" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" -dependencies = [ - "thiserror", - "ucd-trie", -] - [[package]] name = "phf" version = "0.8.0" @@ -3282,34 +3270,34 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.25" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "plist" -version = "1.3.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" +checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" dependencies = [ - "base64 0.13.0", - "indexmap 1.9.1", - "line-wrap", + "base64 0.22.1", + "indexmap 2.6.0", + "quick-xml 0.32.0", "serde", "time", - "xml-rs", ] [[package]] name = "png" -version = "0.17.6" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0e7f4c94ec26ff209cee506314212639d6c91b80afb82984819fafce9df01c" +checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0" dependencies = [ "bitflags 1.3.2", "crc32fast", + "fdeflate", "flate2", - "miniz_oxide 0.5.4", + "miniz_oxide 0.8.0", ] [[package]] @@ -3335,9 +3323,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "precomputed-hash" @@ -3347,13 +3338,12 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "proc-macro-crate" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "thiserror", - "toml 0.5.9", + "toml_edit 0.19.15", ] [[package]] @@ -3392,9 +3382,9 @@ dependencies = [ [[package]] name = "proc-macro-hack" -version = "0.5.19" +version = "0.5.20+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" @@ -3464,6 +3454,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "quick-xml" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" +dependencies = [ + "memchr", +] + [[package]] name = "quick-xml" version = "0.36.2" @@ -3686,15 +3685,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.5.7" @@ -3706,12 +3696,12 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom 0.2.15", - "redox_syscall 0.2.16", + "libredox", "thiserror", ] @@ -3851,20 +3841,11 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.14", + "semver", ] [[package]] @@ -3922,15 +3903,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" - -[[package]] -name = "safemem" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "same-file" @@ -3948,7 +3923,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" dependencies = [ "dyn-clone", - "indexmap 1.9.1", + "indexmap 1.9.3", "schemars_derive", "serde", "serde_json", @@ -4002,31 +3977,13 @@ dependencies = [ [[package]] name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.14" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" dependencies = [ "serde", ] -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - [[package]] name = "serde" version = "1.0.213" @@ -4075,7 +4032,7 @@ version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ - "itoa 1.0.4", + "itoa 1.0.11", "memchr", "ryu", "serde", @@ -4083,13 +4040,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.9" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.85", ] [[package]] @@ -4108,7 +4065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.4", + "itoa 1.0.11", "ryu", "serde", ] @@ -4122,7 +4079,7 @@ dependencies = [ "base64 0.22.1", "chrono", "hex", - "indexmap 1.9.1", + "indexmap 1.9.3", "indexmap 2.6.0", "serde", "serde_derive", @@ -4177,9 +4134,9 @@ dependencies = [ [[package]] name = "sha1" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", @@ -4188,9 +4145,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -4239,9 +4196,9 @@ dependencies = [ [[package]] name = "siphasher" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "slab" @@ -4284,7 +4241,7 @@ dependencies = [ "objc2-foundation", "objc2-quartz-core", "raw-window-handle", - "redox_syscall 0.5.7", + "redox_syscall", "wasm-bindgen", "web-sys", "windows-sys 0.59.0", @@ -4339,9 +4296,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "string_cache" -version = "0.8.4" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" dependencies = [ "new_debug_unreachable", "once_cell", @@ -4433,7 +4390,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.6.0", - "core-foundation 0.9.3", + "core-foundation 0.9.4", "system-configuration-sys", ] @@ -4449,14 +4406,14 @@ dependencies = [ [[package]] name = "system-deps" -version = "6.0.2" +version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" dependencies = [ "cfg-expr", - "heck 0.4.0", + "heck 0.5.0", "pkg-config", - "toml 0.5.9", + "toml 0.8.2", "version-compare", ] @@ -4510,6 +4467,12 @@ dependencies = [ "syn 2.0.85", ] +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + [[package]] name = "tauri" version = "2.0.6" @@ -4573,7 +4536,7 @@ dependencies = [ "heck 0.5.0", "json-patch 3.0.1", "schemars", - "semver 1.0.14", + "semver", "serde", "serde_json", "tauri-utils", @@ -4596,7 +4559,7 @@ dependencies = [ "png", "proc-macro2", "quote", - "semver 1.0.14", + "semver", "serde", "serde_json", "sha2", @@ -4867,7 +4830,7 @@ dependencies = [ "quote", "regex", "schemars", - "semver 1.0.14", + "semver", "serde", "serde-untagged", "serde_json", @@ -4970,7 +4933,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", - "itoa 1.0.4", + "itoa 1.0.11", "num-conv", "powerfmt", "serde", @@ -4996,18 +4959,18 @@ dependencies = [ [[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", ] [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" @@ -5062,15 +5025,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" -dependencies = [ - "serde", -] - [[package]] name = "toml" version = "0.7.8" @@ -5138,11 +5092,10 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -5161,9 +5114,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", ] @@ -5203,15 +5156,9 @@ checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" [[package]] name = "typenum" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" - -[[package]] -name = "ucd-trie" -version = "0.1.5" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "uds_windows" @@ -5219,7 +5166,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ - "memoffset 0.9.1", + "memoffset", "tempfile", "winapi", ] @@ -5273,15 +5220,15 @@ checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.5" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] @@ -5330,9 +5277,9 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] name = "uuid" -version = "1.2.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb41e78f93363bb2df8b0e86a2ca30eed7806ea16ea0c790d757cf93f79be83" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom 0.2.15", "serde", @@ -5351,15 +5298,15 @@ dependencies = [ [[package]] name = "version-compare" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" +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" @@ -5383,12 +5330,11 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.3.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", - "winapi", "winapi-util", ] @@ -5676,11 +5622,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "winapi", + "windows-sys 0.59.0", ] [[package]] @@ -5840,19 +5786,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] - [[package]] name = "windows-sys" version = "0.45.0" @@ -5962,12 +5895,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" - [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -5986,12 +5913,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" - [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -6016,12 +5937,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" - [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -6040,12 +5955,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -6082,12 +5991,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -6168,9 +6071,9 @@ dependencies = [ [[package]] name = "x11" -version = "2.20.0" +version = "2.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ae97874a928d821b061fce3d1fc52f08071dd53c89a6102bc06efcac3b2908" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" dependencies = [ "libc", "pkg-config", @@ -6214,12 +6117,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "xml-rs" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" - [[package]] name = "zbus" version = "4.0.1" @@ -6266,7 +6163,7 @@ version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7" dependencies = [ - "proc-macro-crate 1.2.1", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "regex", @@ -6285,6 +6182,27 @@ dependencies = [ "zvariant", ] +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + [[package]] name = "zeroize" version = "1.8.1" @@ -6335,7 +6253,7 @@ version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e" dependencies = [ - "proc-macro-crate 1.2.1", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 072f4e90..bd6175f4 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -7,7 +7,7 @@ license = "MIT License" repository = "https://github.com/terreng/simple-web-server" default-run = "app" edition = "2021" -rust-version = "1.57" +rust-version = "1.82" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/src-tauri/gen/schemas/acl-manifests.json b/src-tauri/gen/schemas/acl-manifests.json new file mode 100644 index 00000000..be6a74cb --- /dev/null +++ b/src-tauri/gen/schemas/acl-manifests.json @@ -0,0 +1 @@ +{"clipboard-manager":{"default_permission":{"identifier":"default","description":"No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n","permissions":[]},"permissions":{"allow-clear":{"identifier":"allow-clear","description":"Enables the clear command without any pre-configured scope.","commands":{"allow":["clear"],"deny":[]}},"allow-read-image":{"identifier":"allow-read-image","description":"Enables the read_image command without any pre-configured scope.","commands":{"allow":["read_image"],"deny":[]}},"allow-read-text":{"identifier":"allow-read-text","description":"Enables the read_text command without any pre-configured scope.","commands":{"allow":["read_text"],"deny":[]}},"allow-write-html":{"identifier":"allow-write-html","description":"Enables the write_html command without any pre-configured scope.","commands":{"allow":["write_html"],"deny":[]}},"allow-write-image":{"identifier":"allow-write-image","description":"Enables the write_image command without any pre-configured scope.","commands":{"allow":["write_image"],"deny":[]}},"allow-write-text":{"identifier":"allow-write-text","description":"Enables the write_text command without any pre-configured scope.","commands":{"allow":["write_text"],"deny":[]}},"deny-clear":{"identifier":"deny-clear","description":"Denies the clear command without any pre-configured scope.","commands":{"allow":[],"deny":["clear"]}},"deny-read-image":{"identifier":"deny-read-image","description":"Denies the read_image command without any pre-configured scope.","commands":{"allow":[],"deny":["read_image"]}},"deny-read-text":{"identifier":"deny-read-text","description":"Denies the read_text command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text"]}},"deny-write-html":{"identifier":"deny-write-html","description":"Denies the write_html command without any pre-configured scope.","commands":{"allow":[],"deny":["write_html"]}},"deny-write-image":{"identifier":"deny-write-image","description":"Denies the write_image command without any pre-configured scope.","commands":{"allow":[],"deny":["write_image"]}},"deny-write-text":{"identifier":"deny-write-text","description":"Denies the write_text command without any pre-configured scope.","commands":{"allow":[],"deny":["write_text"]}}},"permission_sets":{},"global_scope_schema":null},"core":{"default_permission":{"identifier":"default","description":"Default core plugins set which includes:\n- 'core:path:default'\n- 'core:event:default'\n- 'core:window:default'\n- 'core:webview:default'\n- 'core:app:default'\n- 'core:image:default'\n- 'core:resources:default'\n- 'core:menu:default'\n- 'core:tray:default'\n","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"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":[]}},"allow-set-as-help-menu-for-nsapp":{"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":[]}},"allow-set-as-window-menu":{"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":[]}},"allow-set-as-windows-menu-for-nsapp":{"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":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"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"]}},"deny-set-as-help-menu-for-nsapp":{"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"]}},"deny-set-as-window-menu":{"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"]}},"deny-set-as-windows-menu-for-nsapp":{"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"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core: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":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"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":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"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":[]}},"allow-set-temp-dir-path":{"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":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"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"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"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"]}},"deny-set-temp-dir-path":{"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"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","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-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-set-always-on-bottom":{"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":[]}},"allow-set-always-on-top":{"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":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"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":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"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":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-set-always-on-bottom":{"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"]}},"deny-set-always-on-top":{"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"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"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"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"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"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"dialog":{"default_permission":{"identifier":"default","description":"This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n","permissions":["allow-ask","allow-confirm","allow-message","allow-save","allow-open"]},"permissions":{"allow-ask":{"identifier":"allow-ask","description":"Enables the ask command without any pre-configured scope.","commands":{"allow":["ask"],"deny":[]}},"allow-confirm":{"identifier":"allow-confirm","description":"Enables the confirm command without any pre-configured scope.","commands":{"allow":["confirm"],"deny":[]}},"allow-message":{"identifier":"allow-message","description":"Enables the message command without any pre-configured scope.","commands":{"allow":["message"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-save":{"identifier":"allow-save","description":"Enables the save command without any pre-configured scope.","commands":{"allow":["save"],"deny":[]}},"deny-ask":{"identifier":"deny-ask","description":"Denies the ask command without any pre-configured scope.","commands":{"allow":[],"deny":["ask"]}},"deny-confirm":{"identifier":"deny-confirm","description":"Denies the confirm command without any pre-configured scope.","commands":{"allow":[],"deny":["confirm"]}},"deny-message":{"identifier":"deny-message","description":"Denies the message command without any pre-configured scope.","commands":{"allow":[],"deny":["message"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-save":{"identifier":"deny-save","description":"Denies the save command without any pre-configured scope.","commands":{"allow":[],"deny":["save"]}}},"permission_sets":{},"global_scope_schema":null},"fs":{"default_permission":{"identifier":"default","description":"This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n","permissions":["create-app-specific-dirs","read-app-specific-dirs-recursive","deny-default"]},"permissions":{"allow-copy-file":{"identifier":"allow-copy-file","description":"Enables the copy_file command without any pre-configured scope.","commands":{"allow":["copy_file"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-exists":{"identifier":"allow-exists","description":"Enables the exists command without any pre-configured scope.","commands":{"allow":["exists"],"deny":[]}},"allow-fstat":{"identifier":"allow-fstat","description":"Enables the fstat command without any pre-configured scope.","commands":{"allow":["fstat"],"deny":[]}},"allow-ftruncate":{"identifier":"allow-ftruncate","description":"Enables the ftruncate command without any pre-configured scope.","commands":{"allow":["ftruncate"],"deny":[]}},"allow-lstat":{"identifier":"allow-lstat","description":"Enables the lstat command without any pre-configured scope.","commands":{"allow":["lstat"],"deny":[]}},"allow-mkdir":{"identifier":"allow-mkdir","description":"Enables the mkdir command without any pre-configured scope.","commands":{"allow":["mkdir"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-read":{"identifier":"allow-read","description":"Enables the read command without any pre-configured scope.","commands":{"allow":["read"],"deny":[]}},"allow-read-dir":{"identifier":"allow-read-dir","description":"Enables the read_dir command without any pre-configured scope.","commands":{"allow":["read_dir"],"deny":[]}},"allow-read-file":{"identifier":"allow-read-file","description":"Enables the read_file command without any pre-configured scope.","commands":{"allow":["read_file"],"deny":[]}},"allow-read-text-file":{"identifier":"allow-read-text-file","description":"Enables the read_text_file command without any pre-configured scope.","commands":{"allow":["read_text_file"],"deny":[]}},"allow-read-text-file-lines":{"identifier":"allow-read-text-file-lines","description":"Enables the read_text_file_lines command without any pre-configured scope.","commands":{"allow":["read_text_file_lines"],"deny":[]}},"allow-read-text-file-lines-next":{"identifier":"allow-read-text-file-lines-next","description":"Enables the read_text_file_lines_next command without any pre-configured scope.","commands":{"allow":["read_text_file_lines_next"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-rename":{"identifier":"allow-rename","description":"Enables the rename command without any pre-configured scope.","commands":{"allow":["rename"],"deny":[]}},"allow-seek":{"identifier":"allow-seek","description":"Enables the seek command without any pre-configured scope.","commands":{"allow":["seek"],"deny":[]}},"allow-stat":{"identifier":"allow-stat","description":"Enables the stat command without any pre-configured scope.","commands":{"allow":["stat"],"deny":[]}},"allow-truncate":{"identifier":"allow-truncate","description":"Enables the truncate command without any pre-configured scope.","commands":{"allow":["truncate"],"deny":[]}},"allow-unwatch":{"identifier":"allow-unwatch","description":"Enables the unwatch command without any pre-configured scope.","commands":{"allow":["unwatch"],"deny":[]}},"allow-watch":{"identifier":"allow-watch","description":"Enables the watch command without any pre-configured scope.","commands":{"allow":["watch"],"deny":[]}},"allow-write":{"identifier":"allow-write","description":"Enables the write command without any pre-configured scope.","commands":{"allow":["write"],"deny":[]}},"allow-write-file":{"identifier":"allow-write-file","description":"Enables the write_file command without any pre-configured scope.","commands":{"allow":["write_file"],"deny":[]}},"allow-write-text-file":{"identifier":"allow-write-text-file","description":"Enables the write_text_file command without any pre-configured scope.","commands":{"allow":["write_text_file"],"deny":[]}},"create-app-specific-dirs":{"identifier":"create-app-specific-dirs","description":"This permissions allows to create the application specific directories.\n","commands":{"allow":["mkdir","scope-app-index"],"deny":[]}},"deny-copy-file":{"identifier":"deny-copy-file","description":"Denies the copy_file command without any pre-configured scope.","commands":{"allow":[],"deny":["copy_file"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-exists":{"identifier":"deny-exists","description":"Denies the exists command without any pre-configured scope.","commands":{"allow":[],"deny":["exists"]}},"deny-fstat":{"identifier":"deny-fstat","description":"Denies the fstat command without any pre-configured scope.","commands":{"allow":[],"deny":["fstat"]}},"deny-ftruncate":{"identifier":"deny-ftruncate","description":"Denies the ftruncate command without any pre-configured scope.","commands":{"allow":[],"deny":["ftruncate"]}},"deny-lstat":{"identifier":"deny-lstat","description":"Denies the lstat command without any pre-configured scope.","commands":{"allow":[],"deny":["lstat"]}},"deny-mkdir":{"identifier":"deny-mkdir","description":"Denies the mkdir command without any pre-configured scope.","commands":{"allow":[],"deny":["mkdir"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-read":{"identifier":"deny-read","description":"Denies the read command without any pre-configured scope.","commands":{"allow":[],"deny":["read"]}},"deny-read-dir":{"identifier":"deny-read-dir","description":"Denies the read_dir command without any pre-configured scope.","commands":{"allow":[],"deny":["read_dir"]}},"deny-read-file":{"identifier":"deny-read-file","description":"Denies the read_file command without any pre-configured scope.","commands":{"allow":[],"deny":["read_file"]}},"deny-read-text-file":{"identifier":"deny-read-text-file","description":"Denies the read_text_file command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text_file"]}},"deny-read-text-file-lines":{"identifier":"deny-read-text-file-lines","description":"Denies the read_text_file_lines command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text_file_lines"]}},"deny-read-text-file-lines-next":{"identifier":"deny-read-text-file-lines-next","description":"Denies the read_text_file_lines_next command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text_file_lines_next"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-rename":{"identifier":"deny-rename","description":"Denies the rename command without any pre-configured scope.","commands":{"allow":[],"deny":["rename"]}},"deny-seek":{"identifier":"deny-seek","description":"Denies the seek command without any pre-configured scope.","commands":{"allow":[],"deny":["seek"]}},"deny-stat":{"identifier":"deny-stat","description":"Denies the stat command without any pre-configured scope.","commands":{"allow":[],"deny":["stat"]}},"deny-truncate":{"identifier":"deny-truncate","description":"Denies the truncate command without any pre-configured scope.","commands":{"allow":[],"deny":["truncate"]}},"deny-unwatch":{"identifier":"deny-unwatch","description":"Denies the unwatch command without any pre-configured scope.","commands":{"allow":[],"deny":["unwatch"]}},"deny-watch":{"identifier":"deny-watch","description":"Denies the watch command without any pre-configured scope.","commands":{"allow":[],"deny":["watch"]}},"deny-webview-data-linux":{"identifier":"deny-webview-data-linux","description":"This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.","commands":{"allow":[],"deny":[]}},"deny-webview-data-windows":{"identifier":"deny-webview-data-windows","description":"This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.","commands":{"allow":[],"deny":[]}},"deny-write":{"identifier":"deny-write","description":"Denies the write command without any pre-configured scope.","commands":{"allow":[],"deny":["write"]}},"deny-write-file":{"identifier":"deny-write-file","description":"Denies the write_file command without any pre-configured scope.","commands":{"allow":[],"deny":["write_file"]}},"deny-write-text-file":{"identifier":"deny-write-text-file","description":"Denies the write_text_file command without any pre-configured scope.","commands":{"allow":[],"deny":["write_text_file"]}},"read-all":{"identifier":"read-all","description":"This enables all read related commands without any pre-configured accessible paths.","commands":{"allow":["read_dir","read_file","read","open","read_text_file","read_text_file_lines","read_text_file_lines_next","seek","stat","lstat","fstat","exists","watch","unwatch"],"deny":[]}},"read-app-specific-dirs-recursive":{"identifier":"read-app-specific-dirs-recursive","description":"This permission allows recursive read functionality on the application\nspecific base directories. \n","commands":{"allow":["read_dir","read_file","read_text_file","read_text_file_lines","read_text_file_lines_next","exists","scope-app-recursive"],"deny":[]}},"read-dirs":{"identifier":"read-dirs","description":"This enables directory read and file metadata related commands without any pre-configured accessible paths.","commands":{"allow":["read_dir","stat","lstat","fstat","exists"],"deny":[]}},"read-files":{"identifier":"read-files","description":"This enables file read related commands without any pre-configured accessible paths.","commands":{"allow":["read_file","read","open","read_text_file","read_text_file_lines","read_text_file_lines_next","seek","stat","lstat","fstat","exists"],"deny":[]}},"read-meta":{"identifier":"read-meta","description":"This enables all index or metadata related commands without any pre-configured accessible paths.","commands":{"allow":["read_dir","stat","lstat","fstat","exists"],"deny":[]}},"scope":{"identifier":"scope","description":"An empty permission you can use to modify the global scope.","commands":{"allow":[],"deny":[]}},"scope-app":{"identifier":"scope-app","description":"This scope permits access to all files and list content of top level directories in the application folders.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPCONFIG/*"},{"path":"$APPDATA"},{"path":"$APPDATA/*"},{"path":"$APPLOCALDATA"},{"path":"$APPLOCALDATA/*"},{"path":"$APPCACHE"},{"path":"$APPCACHE/*"},{"path":"$APPLOG"},{"path":"$APPLOG/*"}]}},"scope-app-index":{"identifier":"scope-app-index","description":"This scope permits to list all files and folders in the application directories.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPDATA"},{"path":"$APPLOCALDATA"},{"path":"$APPCACHE"},{"path":"$APPLOG"}]}},"scope-app-recursive":{"identifier":"scope-app-recursive","description":"This scope permits recursive access to the complete application folders, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPCONFIG/**"},{"path":"$APPDATA"},{"path":"$APPDATA/**"},{"path":"$APPLOCALDATA"},{"path":"$APPLOCALDATA/**"},{"path":"$APPCACHE"},{"path":"$APPCACHE/**"},{"path":"$APPLOG"},{"path":"$APPLOG/**"}]}},"scope-appcache":{"identifier":"scope-appcache","description":"This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCACHE"},{"path":"$APPCACHE/*"}]}},"scope-appcache-index":{"identifier":"scope-appcache-index","description":"This scope permits to list all files and folders in the `$APPCACHE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCACHE"}]}},"scope-appcache-recursive":{"identifier":"scope-appcache-recursive","description":"This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCACHE"},{"path":"$APPCACHE/**"}]}},"scope-appconfig":{"identifier":"scope-appconfig","description":"This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPCONFIG/*"}]}},"scope-appconfig-index":{"identifier":"scope-appconfig-index","description":"This scope permits to list all files and folders in the `$APPCONFIG`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"}]}},"scope-appconfig-recursive":{"identifier":"scope-appconfig-recursive","description":"This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPCONFIG/**"}]}},"scope-appdata":{"identifier":"scope-appdata","description":"This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPDATA"},{"path":"$APPDATA/*"}]}},"scope-appdata-index":{"identifier":"scope-appdata-index","description":"This scope permits to list all files and folders in the `$APPDATA`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPDATA"}]}},"scope-appdata-recursive":{"identifier":"scope-appdata-recursive","description":"This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPDATA"},{"path":"$APPDATA/**"}]}},"scope-applocaldata":{"identifier":"scope-applocaldata","description":"This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOCALDATA"},{"path":"$APPLOCALDATA/*"}]}},"scope-applocaldata-index":{"identifier":"scope-applocaldata-index","description":"This scope permits to list all files and folders in the `$APPLOCALDATA`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOCALDATA"}]}},"scope-applocaldata-recursive":{"identifier":"scope-applocaldata-recursive","description":"This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOCALDATA"},{"path":"$APPLOCALDATA/**"}]}},"scope-applog":{"identifier":"scope-applog","description":"This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOG"},{"path":"$APPLOG/*"}]}},"scope-applog-index":{"identifier":"scope-applog-index","description":"This scope permits to list all files and folders in the `$APPLOG`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOG"}]}},"scope-applog-recursive":{"identifier":"scope-applog-recursive","description":"This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOG"},{"path":"$APPLOG/**"}]}},"scope-audio":{"identifier":"scope-audio","description":"This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$AUDIO"},{"path":"$AUDIO/*"}]}},"scope-audio-index":{"identifier":"scope-audio-index","description":"This scope permits to list all files and folders in the `$AUDIO`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$AUDIO"}]}},"scope-audio-recursive":{"identifier":"scope-audio-recursive","description":"This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$AUDIO"},{"path":"$AUDIO/**"}]}},"scope-cache":{"identifier":"scope-cache","description":"This scope permits access to all files and list content of top level directories in the `$CACHE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CACHE"},{"path":"$CACHE/*"}]}},"scope-cache-index":{"identifier":"scope-cache-index","description":"This scope permits to list all files and folders in the `$CACHE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CACHE"}]}},"scope-cache-recursive":{"identifier":"scope-cache-recursive","description":"This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CACHE"},{"path":"$CACHE/**"}]}},"scope-config":{"identifier":"scope-config","description":"This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CONFIG"},{"path":"$CONFIG/*"}]}},"scope-config-index":{"identifier":"scope-config-index","description":"This scope permits to list all files and folders in the `$CONFIG`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CONFIG"}]}},"scope-config-recursive":{"identifier":"scope-config-recursive","description":"This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CONFIG"},{"path":"$CONFIG/**"}]}},"scope-data":{"identifier":"scope-data","description":"This scope permits access to all files and list content of top level directories in the `$DATA` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DATA"},{"path":"$DATA/*"}]}},"scope-data-index":{"identifier":"scope-data-index","description":"This scope permits to list all files and folders in the `$DATA`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DATA"}]}},"scope-data-recursive":{"identifier":"scope-data-recursive","description":"This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DATA"},{"path":"$DATA/**"}]}},"scope-desktop":{"identifier":"scope-desktop","description":"This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DESKTOP"},{"path":"$DESKTOP/*"}]}},"scope-desktop-index":{"identifier":"scope-desktop-index","description":"This scope permits to list all files and folders in the `$DESKTOP`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DESKTOP"}]}},"scope-desktop-recursive":{"identifier":"scope-desktop-recursive","description":"This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DESKTOP"},{"path":"$DESKTOP/**"}]}},"scope-document":{"identifier":"scope-document","description":"This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOCUMENT"},{"path":"$DOCUMENT/*"}]}},"scope-document-index":{"identifier":"scope-document-index","description":"This scope permits to list all files and folders in the `$DOCUMENT`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOCUMENT"}]}},"scope-document-recursive":{"identifier":"scope-document-recursive","description":"This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOCUMENT"},{"path":"$DOCUMENT/**"}]}},"scope-download":{"identifier":"scope-download","description":"This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOWNLOAD"},{"path":"$DOWNLOAD/*"}]}},"scope-download-index":{"identifier":"scope-download-index","description":"This scope permits to list all files and folders in the `$DOWNLOAD`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOWNLOAD"}]}},"scope-download-recursive":{"identifier":"scope-download-recursive","description":"This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOWNLOAD"},{"path":"$DOWNLOAD/**"}]}},"scope-exe":{"identifier":"scope-exe","description":"This scope permits access to all files and list content of top level directories in the `$EXE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$EXE"},{"path":"$EXE/*"}]}},"scope-exe-index":{"identifier":"scope-exe-index","description":"This scope permits to list all files and folders in the `$EXE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$EXE"}]}},"scope-exe-recursive":{"identifier":"scope-exe-recursive","description":"This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$EXE"},{"path":"$EXE/**"}]}},"scope-font":{"identifier":"scope-font","description":"This scope permits access to all files and list content of top level directories in the `$FONT` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$FONT"},{"path":"$FONT/*"}]}},"scope-font-index":{"identifier":"scope-font-index","description":"This scope permits to list all files and folders in the `$FONT`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$FONT"}]}},"scope-font-recursive":{"identifier":"scope-font-recursive","description":"This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$FONT"},{"path":"$FONT/**"}]}},"scope-home":{"identifier":"scope-home","description":"This scope permits access to all files and list content of top level directories in the `$HOME` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$HOME"},{"path":"$HOME/*"}]}},"scope-home-index":{"identifier":"scope-home-index","description":"This scope permits to list all files and folders in the `$HOME`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$HOME"}]}},"scope-home-recursive":{"identifier":"scope-home-recursive","description":"This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$HOME"},{"path":"$HOME/**"}]}},"scope-localdata":{"identifier":"scope-localdata","description":"This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOCALDATA"},{"path":"$LOCALDATA/*"}]}},"scope-localdata-index":{"identifier":"scope-localdata-index","description":"This scope permits to list all files and folders in the `$LOCALDATA`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOCALDATA"}]}},"scope-localdata-recursive":{"identifier":"scope-localdata-recursive","description":"This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOCALDATA"},{"path":"$LOCALDATA/**"}]}},"scope-log":{"identifier":"scope-log","description":"This scope permits access to all files and list content of top level directories in the `$LOG` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOG"},{"path":"$LOG/*"}]}},"scope-log-index":{"identifier":"scope-log-index","description":"This scope permits to list all files and folders in the `$LOG`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOG"}]}},"scope-log-recursive":{"identifier":"scope-log-recursive","description":"This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOG"},{"path":"$LOG/**"}]}},"scope-picture":{"identifier":"scope-picture","description":"This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PICTURE"},{"path":"$PICTURE/*"}]}},"scope-picture-index":{"identifier":"scope-picture-index","description":"This scope permits to list all files and folders in the `$PICTURE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PICTURE"}]}},"scope-picture-recursive":{"identifier":"scope-picture-recursive","description":"This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PICTURE"},{"path":"$PICTURE/**"}]}},"scope-public":{"identifier":"scope-public","description":"This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PUBLIC"},{"path":"$PUBLIC/*"}]}},"scope-public-index":{"identifier":"scope-public-index","description":"This scope permits to list all files and folders in the `$PUBLIC`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PUBLIC"}]}},"scope-public-recursive":{"identifier":"scope-public-recursive","description":"This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PUBLIC"},{"path":"$PUBLIC/**"}]}},"scope-resource":{"identifier":"scope-resource","description":"This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RESOURCE"},{"path":"$RESOURCE/*"}]}},"scope-resource-index":{"identifier":"scope-resource-index","description":"This scope permits to list all files and folders in the `$RESOURCE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RESOURCE"}]}},"scope-resource-recursive":{"identifier":"scope-resource-recursive","description":"This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RESOURCE"},{"path":"$RESOURCE/**"}]}},"scope-runtime":{"identifier":"scope-runtime","description":"This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RUNTIME"},{"path":"$RUNTIME/*"}]}},"scope-runtime-index":{"identifier":"scope-runtime-index","description":"This scope permits to list all files and folders in the `$RUNTIME`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RUNTIME"}]}},"scope-runtime-recursive":{"identifier":"scope-runtime-recursive","description":"This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RUNTIME"},{"path":"$RUNTIME/**"}]}},"scope-temp":{"identifier":"scope-temp","description":"This scope permits access to all files and list content of top level directories in the `$TEMP` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMP"},{"path":"$TEMP/*"}]}},"scope-temp-index":{"identifier":"scope-temp-index","description":"This scope permits to list all files and folders in the `$TEMP`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMP"}]}},"scope-temp-recursive":{"identifier":"scope-temp-recursive","description":"This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMP"},{"path":"$TEMP/**"}]}},"scope-template":{"identifier":"scope-template","description":"This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMPLATE"},{"path":"$TEMPLATE/*"}]}},"scope-template-index":{"identifier":"scope-template-index","description":"This scope permits to list all files and folders in the `$TEMPLATE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMPLATE"}]}},"scope-template-recursive":{"identifier":"scope-template-recursive","description":"This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMPLATE"},{"path":"$TEMPLATE/**"}]}},"scope-video":{"identifier":"scope-video","description":"This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$VIDEO"},{"path":"$VIDEO/*"}]}},"scope-video-index":{"identifier":"scope-video-index","description":"This scope permits to list all files and folders in the `$VIDEO`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$VIDEO"}]}},"scope-video-recursive":{"identifier":"scope-video-recursive","description":"This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$VIDEO"},{"path":"$VIDEO/**"}]}},"write-all":{"identifier":"write-all","description":"This enables all write related commands without any pre-configured accessible paths.","commands":{"allow":["mkdir","create","copy_file","remove","rename","truncate","ftruncate","write","write_file","write_text_file"],"deny":[]}},"write-files":{"identifier":"write-files","description":"This enables all file write related commands without any pre-configured accessible paths.","commands":{"allow":["create","copy_file","remove","rename","truncate","ftruncate","write","write_file","write_text_file"],"deny":[]}}},"permission_sets":{"allow-app-meta":{"identifier":"allow-app-meta","description":"This allows non-recursive read access to metadata of the application folders, including file listing and statistics.","permissions":["read-meta","scope-app-index"]},"allow-app-meta-recursive":{"identifier":"allow-app-meta-recursive","description":"This allows full recursive read access to metadata of the application folders, including file listing and statistics.","permissions":["read-meta","scope-app-recursive"]},"allow-app-read":{"identifier":"allow-app-read","description":"This allows non-recursive read access to the application folders.","permissions":["read-all","scope-app"]},"allow-app-read-recursive":{"identifier":"allow-app-read-recursive","description":"This allows full recursive read access to the complete application folders, files and subdirectories.","permissions":["read-all","scope-app-recursive"]},"allow-app-write":{"identifier":"allow-app-write","description":"This allows non-recursive write access to the application folders.","permissions":["write-all","scope-app"]},"allow-app-write-recursive":{"identifier":"allow-app-write-recursive","description":"This allows full recursive write access to the complete application folders, files and subdirectories.","permissions":["write-all","scope-app-recursive"]},"allow-appcache-meta":{"identifier":"allow-appcache-meta","description":"This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.","permissions":["read-meta","scope-appcache-index"]},"allow-appcache-meta-recursive":{"identifier":"allow-appcache-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.","permissions":["read-meta","scope-appcache-recursive"]},"allow-appcache-read":{"identifier":"allow-appcache-read","description":"This allows non-recursive read access to the `$APPCACHE` folder.","permissions":["read-all","scope-appcache"]},"allow-appcache-read-recursive":{"identifier":"allow-appcache-read-recursive","description":"This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.","permissions":["read-all","scope-appcache-recursive"]},"allow-appcache-write":{"identifier":"allow-appcache-write","description":"This allows non-recursive write access to the `$APPCACHE` folder.","permissions":["write-all","scope-appcache"]},"allow-appcache-write-recursive":{"identifier":"allow-appcache-write-recursive","description":"This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.","permissions":["write-all","scope-appcache-recursive"]},"allow-appconfig-meta":{"identifier":"allow-appconfig-meta","description":"This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.","permissions":["read-meta","scope-appconfig-index"]},"allow-appconfig-meta-recursive":{"identifier":"allow-appconfig-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.","permissions":["read-meta","scope-appconfig-recursive"]},"allow-appconfig-read":{"identifier":"allow-appconfig-read","description":"This allows non-recursive read access to the `$APPCONFIG` folder.","permissions":["read-all","scope-appconfig"]},"allow-appconfig-read-recursive":{"identifier":"allow-appconfig-read-recursive","description":"This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.","permissions":["read-all","scope-appconfig-recursive"]},"allow-appconfig-write":{"identifier":"allow-appconfig-write","description":"This allows non-recursive write access to the `$APPCONFIG` folder.","permissions":["write-all","scope-appconfig"]},"allow-appconfig-write-recursive":{"identifier":"allow-appconfig-write-recursive","description":"This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.","permissions":["write-all","scope-appconfig-recursive"]},"allow-appdata-meta":{"identifier":"allow-appdata-meta","description":"This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-appdata-index"]},"allow-appdata-meta-recursive":{"identifier":"allow-appdata-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-appdata-recursive"]},"allow-appdata-read":{"identifier":"allow-appdata-read","description":"This allows non-recursive read access to the `$APPDATA` folder.","permissions":["read-all","scope-appdata"]},"allow-appdata-read-recursive":{"identifier":"allow-appdata-read-recursive","description":"This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.","permissions":["read-all","scope-appdata-recursive"]},"allow-appdata-write":{"identifier":"allow-appdata-write","description":"This allows non-recursive write access to the `$APPDATA` folder.","permissions":["write-all","scope-appdata"]},"allow-appdata-write-recursive":{"identifier":"allow-appdata-write-recursive","description":"This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.","permissions":["write-all","scope-appdata-recursive"]},"allow-applocaldata-meta":{"identifier":"allow-applocaldata-meta","description":"This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-applocaldata-index"]},"allow-applocaldata-meta-recursive":{"identifier":"allow-applocaldata-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-applocaldata-recursive"]},"allow-applocaldata-read":{"identifier":"allow-applocaldata-read","description":"This allows non-recursive read access to the `$APPLOCALDATA` folder.","permissions":["read-all","scope-applocaldata"]},"allow-applocaldata-read-recursive":{"identifier":"allow-applocaldata-read-recursive","description":"This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.","permissions":["read-all","scope-applocaldata-recursive"]},"allow-applocaldata-write":{"identifier":"allow-applocaldata-write","description":"This allows non-recursive write access to the `$APPLOCALDATA` folder.","permissions":["write-all","scope-applocaldata"]},"allow-applocaldata-write-recursive":{"identifier":"allow-applocaldata-write-recursive","description":"This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.","permissions":["write-all","scope-applocaldata-recursive"]},"allow-applog-meta":{"identifier":"allow-applog-meta","description":"This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.","permissions":["read-meta","scope-applog-index"]},"allow-applog-meta-recursive":{"identifier":"allow-applog-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.","permissions":["read-meta","scope-applog-recursive"]},"allow-applog-read":{"identifier":"allow-applog-read","description":"This allows non-recursive read access to the `$APPLOG` folder.","permissions":["read-all","scope-applog"]},"allow-applog-read-recursive":{"identifier":"allow-applog-read-recursive","description":"This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.","permissions":["read-all","scope-applog-recursive"]},"allow-applog-write":{"identifier":"allow-applog-write","description":"This allows non-recursive write access to the `$APPLOG` folder.","permissions":["write-all","scope-applog"]},"allow-applog-write-recursive":{"identifier":"allow-applog-write-recursive","description":"This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.","permissions":["write-all","scope-applog-recursive"]},"allow-audio-meta":{"identifier":"allow-audio-meta","description":"This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.","permissions":["read-meta","scope-audio-index"]},"allow-audio-meta-recursive":{"identifier":"allow-audio-meta-recursive","description":"This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.","permissions":["read-meta","scope-audio-recursive"]},"allow-audio-read":{"identifier":"allow-audio-read","description":"This allows non-recursive read access to the `$AUDIO` folder.","permissions":["read-all","scope-audio"]},"allow-audio-read-recursive":{"identifier":"allow-audio-read-recursive","description":"This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.","permissions":["read-all","scope-audio-recursive"]},"allow-audio-write":{"identifier":"allow-audio-write","description":"This allows non-recursive write access to the `$AUDIO` folder.","permissions":["write-all","scope-audio"]},"allow-audio-write-recursive":{"identifier":"allow-audio-write-recursive","description":"This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.","permissions":["write-all","scope-audio-recursive"]},"allow-cache-meta":{"identifier":"allow-cache-meta","description":"This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.","permissions":["read-meta","scope-cache-index"]},"allow-cache-meta-recursive":{"identifier":"allow-cache-meta-recursive","description":"This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.","permissions":["read-meta","scope-cache-recursive"]},"allow-cache-read":{"identifier":"allow-cache-read","description":"This allows non-recursive read access to the `$CACHE` folder.","permissions":["read-all","scope-cache"]},"allow-cache-read-recursive":{"identifier":"allow-cache-read-recursive","description":"This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.","permissions":["read-all","scope-cache-recursive"]},"allow-cache-write":{"identifier":"allow-cache-write","description":"This allows non-recursive write access to the `$CACHE` folder.","permissions":["write-all","scope-cache"]},"allow-cache-write-recursive":{"identifier":"allow-cache-write-recursive","description":"This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.","permissions":["write-all","scope-cache-recursive"]},"allow-config-meta":{"identifier":"allow-config-meta","description":"This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.","permissions":["read-meta","scope-config-index"]},"allow-config-meta-recursive":{"identifier":"allow-config-meta-recursive","description":"This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.","permissions":["read-meta","scope-config-recursive"]},"allow-config-read":{"identifier":"allow-config-read","description":"This allows non-recursive read access to the `$CONFIG` folder.","permissions":["read-all","scope-config"]},"allow-config-read-recursive":{"identifier":"allow-config-read-recursive","description":"This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.","permissions":["read-all","scope-config-recursive"]},"allow-config-write":{"identifier":"allow-config-write","description":"This allows non-recursive write access to the `$CONFIG` folder.","permissions":["write-all","scope-config"]},"allow-config-write-recursive":{"identifier":"allow-config-write-recursive","description":"This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.","permissions":["write-all","scope-config-recursive"]},"allow-data-meta":{"identifier":"allow-data-meta","description":"This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.","permissions":["read-meta","scope-data-index"]},"allow-data-meta-recursive":{"identifier":"allow-data-meta-recursive","description":"This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.","permissions":["read-meta","scope-data-recursive"]},"allow-data-read":{"identifier":"allow-data-read","description":"This allows non-recursive read access to the `$DATA` folder.","permissions":["read-all","scope-data"]},"allow-data-read-recursive":{"identifier":"allow-data-read-recursive","description":"This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.","permissions":["read-all","scope-data-recursive"]},"allow-data-write":{"identifier":"allow-data-write","description":"This allows non-recursive write access to the `$DATA` folder.","permissions":["write-all","scope-data"]},"allow-data-write-recursive":{"identifier":"allow-data-write-recursive","description":"This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.","permissions":["write-all","scope-data-recursive"]},"allow-desktop-meta":{"identifier":"allow-desktop-meta","description":"This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.","permissions":["read-meta","scope-desktop-index"]},"allow-desktop-meta-recursive":{"identifier":"allow-desktop-meta-recursive","description":"This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.","permissions":["read-meta","scope-desktop-recursive"]},"allow-desktop-read":{"identifier":"allow-desktop-read","description":"This allows non-recursive read access to the `$DESKTOP` folder.","permissions":["read-all","scope-desktop"]},"allow-desktop-read-recursive":{"identifier":"allow-desktop-read-recursive","description":"This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.","permissions":["read-all","scope-desktop-recursive"]},"allow-desktop-write":{"identifier":"allow-desktop-write","description":"This allows non-recursive write access to the `$DESKTOP` folder.","permissions":["write-all","scope-desktop"]},"allow-desktop-write-recursive":{"identifier":"allow-desktop-write-recursive","description":"This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.","permissions":["write-all","scope-desktop-recursive"]},"allow-document-meta":{"identifier":"allow-document-meta","description":"This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.","permissions":["read-meta","scope-document-index"]},"allow-document-meta-recursive":{"identifier":"allow-document-meta-recursive","description":"This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.","permissions":["read-meta","scope-document-recursive"]},"allow-document-read":{"identifier":"allow-document-read","description":"This allows non-recursive read access to the `$DOCUMENT` folder.","permissions":["read-all","scope-document"]},"allow-document-read-recursive":{"identifier":"allow-document-read-recursive","description":"This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.","permissions":["read-all","scope-document-recursive"]},"allow-document-write":{"identifier":"allow-document-write","description":"This allows non-recursive write access to the `$DOCUMENT` folder.","permissions":["write-all","scope-document"]},"allow-document-write-recursive":{"identifier":"allow-document-write-recursive","description":"This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.","permissions":["write-all","scope-document-recursive"]},"allow-download-meta":{"identifier":"allow-download-meta","description":"This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.","permissions":["read-meta","scope-download-index"]},"allow-download-meta-recursive":{"identifier":"allow-download-meta-recursive","description":"This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.","permissions":["read-meta","scope-download-recursive"]},"allow-download-read":{"identifier":"allow-download-read","description":"This allows non-recursive read access to the `$DOWNLOAD` folder.","permissions":["read-all","scope-download"]},"allow-download-read-recursive":{"identifier":"allow-download-read-recursive","description":"This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.","permissions":["read-all","scope-download-recursive"]},"allow-download-write":{"identifier":"allow-download-write","description":"This allows non-recursive write access to the `$DOWNLOAD` folder.","permissions":["write-all","scope-download"]},"allow-download-write-recursive":{"identifier":"allow-download-write-recursive","description":"This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.","permissions":["write-all","scope-download-recursive"]},"allow-exe-meta":{"identifier":"allow-exe-meta","description":"This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.","permissions":["read-meta","scope-exe-index"]},"allow-exe-meta-recursive":{"identifier":"allow-exe-meta-recursive","description":"This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.","permissions":["read-meta","scope-exe-recursive"]},"allow-exe-read":{"identifier":"allow-exe-read","description":"This allows non-recursive read access to the `$EXE` folder.","permissions":["read-all","scope-exe"]},"allow-exe-read-recursive":{"identifier":"allow-exe-read-recursive","description":"This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.","permissions":["read-all","scope-exe-recursive"]},"allow-exe-write":{"identifier":"allow-exe-write","description":"This allows non-recursive write access to the `$EXE` folder.","permissions":["write-all","scope-exe"]},"allow-exe-write-recursive":{"identifier":"allow-exe-write-recursive","description":"This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.","permissions":["write-all","scope-exe-recursive"]},"allow-font-meta":{"identifier":"allow-font-meta","description":"This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.","permissions":["read-meta","scope-font-index"]},"allow-font-meta-recursive":{"identifier":"allow-font-meta-recursive","description":"This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.","permissions":["read-meta","scope-font-recursive"]},"allow-font-read":{"identifier":"allow-font-read","description":"This allows non-recursive read access to the `$FONT` folder.","permissions":["read-all","scope-font"]},"allow-font-read-recursive":{"identifier":"allow-font-read-recursive","description":"This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.","permissions":["read-all","scope-font-recursive"]},"allow-font-write":{"identifier":"allow-font-write","description":"This allows non-recursive write access to the `$FONT` folder.","permissions":["write-all","scope-font"]},"allow-font-write-recursive":{"identifier":"allow-font-write-recursive","description":"This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.","permissions":["write-all","scope-font-recursive"]},"allow-home-meta":{"identifier":"allow-home-meta","description":"This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.","permissions":["read-meta","scope-home-index"]},"allow-home-meta-recursive":{"identifier":"allow-home-meta-recursive","description":"This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.","permissions":["read-meta","scope-home-recursive"]},"allow-home-read":{"identifier":"allow-home-read","description":"This allows non-recursive read access to the `$HOME` folder.","permissions":["read-all","scope-home"]},"allow-home-read-recursive":{"identifier":"allow-home-read-recursive","description":"This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.","permissions":["read-all","scope-home-recursive"]},"allow-home-write":{"identifier":"allow-home-write","description":"This allows non-recursive write access to the `$HOME` folder.","permissions":["write-all","scope-home"]},"allow-home-write-recursive":{"identifier":"allow-home-write-recursive","description":"This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.","permissions":["write-all","scope-home-recursive"]},"allow-localdata-meta":{"identifier":"allow-localdata-meta","description":"This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-localdata-index"]},"allow-localdata-meta-recursive":{"identifier":"allow-localdata-meta-recursive","description":"This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-localdata-recursive"]},"allow-localdata-read":{"identifier":"allow-localdata-read","description":"This allows non-recursive read access to the `$LOCALDATA` folder.","permissions":["read-all","scope-localdata"]},"allow-localdata-read-recursive":{"identifier":"allow-localdata-read-recursive","description":"This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.","permissions":["read-all","scope-localdata-recursive"]},"allow-localdata-write":{"identifier":"allow-localdata-write","description":"This allows non-recursive write access to the `$LOCALDATA` folder.","permissions":["write-all","scope-localdata"]},"allow-localdata-write-recursive":{"identifier":"allow-localdata-write-recursive","description":"This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.","permissions":["write-all","scope-localdata-recursive"]},"allow-log-meta":{"identifier":"allow-log-meta","description":"This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.","permissions":["read-meta","scope-log-index"]},"allow-log-meta-recursive":{"identifier":"allow-log-meta-recursive","description":"This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.","permissions":["read-meta","scope-log-recursive"]},"allow-log-read":{"identifier":"allow-log-read","description":"This allows non-recursive read access to the `$LOG` folder.","permissions":["read-all","scope-log"]},"allow-log-read-recursive":{"identifier":"allow-log-read-recursive","description":"This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.","permissions":["read-all","scope-log-recursive"]},"allow-log-write":{"identifier":"allow-log-write","description":"This allows non-recursive write access to the `$LOG` folder.","permissions":["write-all","scope-log"]},"allow-log-write-recursive":{"identifier":"allow-log-write-recursive","description":"This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.","permissions":["write-all","scope-log-recursive"]},"allow-picture-meta":{"identifier":"allow-picture-meta","description":"This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.","permissions":["read-meta","scope-picture-index"]},"allow-picture-meta-recursive":{"identifier":"allow-picture-meta-recursive","description":"This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.","permissions":["read-meta","scope-picture-recursive"]},"allow-picture-read":{"identifier":"allow-picture-read","description":"This allows non-recursive read access to the `$PICTURE` folder.","permissions":["read-all","scope-picture"]},"allow-picture-read-recursive":{"identifier":"allow-picture-read-recursive","description":"This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.","permissions":["read-all","scope-picture-recursive"]},"allow-picture-write":{"identifier":"allow-picture-write","description":"This allows non-recursive write access to the `$PICTURE` folder.","permissions":["write-all","scope-picture"]},"allow-picture-write-recursive":{"identifier":"allow-picture-write-recursive","description":"This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.","permissions":["write-all","scope-picture-recursive"]},"allow-public-meta":{"identifier":"allow-public-meta","description":"This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.","permissions":["read-meta","scope-public-index"]},"allow-public-meta-recursive":{"identifier":"allow-public-meta-recursive","description":"This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.","permissions":["read-meta","scope-public-recursive"]},"allow-public-read":{"identifier":"allow-public-read","description":"This allows non-recursive read access to the `$PUBLIC` folder.","permissions":["read-all","scope-public"]},"allow-public-read-recursive":{"identifier":"allow-public-read-recursive","description":"This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.","permissions":["read-all","scope-public-recursive"]},"allow-public-write":{"identifier":"allow-public-write","description":"This allows non-recursive write access to the `$PUBLIC` folder.","permissions":["write-all","scope-public"]},"allow-public-write-recursive":{"identifier":"allow-public-write-recursive","description":"This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.","permissions":["write-all","scope-public-recursive"]},"allow-resource-meta":{"identifier":"allow-resource-meta","description":"This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.","permissions":["read-meta","scope-resource-index"]},"allow-resource-meta-recursive":{"identifier":"allow-resource-meta-recursive","description":"This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.","permissions":["read-meta","scope-resource-recursive"]},"allow-resource-read":{"identifier":"allow-resource-read","description":"This allows non-recursive read access to the `$RESOURCE` folder.","permissions":["read-all","scope-resource"]},"allow-resource-read-recursive":{"identifier":"allow-resource-read-recursive","description":"This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.","permissions":["read-all","scope-resource-recursive"]},"allow-resource-write":{"identifier":"allow-resource-write","description":"This allows non-recursive write access to the `$RESOURCE` folder.","permissions":["write-all","scope-resource"]},"allow-resource-write-recursive":{"identifier":"allow-resource-write-recursive","description":"This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.","permissions":["write-all","scope-resource-recursive"]},"allow-runtime-meta":{"identifier":"allow-runtime-meta","description":"This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.","permissions":["read-meta","scope-runtime-index"]},"allow-runtime-meta-recursive":{"identifier":"allow-runtime-meta-recursive","description":"This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.","permissions":["read-meta","scope-runtime-recursive"]},"allow-runtime-read":{"identifier":"allow-runtime-read","description":"This allows non-recursive read access to the `$RUNTIME` folder.","permissions":["read-all","scope-runtime"]},"allow-runtime-read-recursive":{"identifier":"allow-runtime-read-recursive","description":"This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.","permissions":["read-all","scope-runtime-recursive"]},"allow-runtime-write":{"identifier":"allow-runtime-write","description":"This allows non-recursive write access to the `$RUNTIME` folder.","permissions":["write-all","scope-runtime"]},"allow-runtime-write-recursive":{"identifier":"allow-runtime-write-recursive","description":"This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.","permissions":["write-all","scope-runtime-recursive"]},"allow-temp-meta":{"identifier":"allow-temp-meta","description":"This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.","permissions":["read-meta","scope-temp-index"]},"allow-temp-meta-recursive":{"identifier":"allow-temp-meta-recursive","description":"This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.","permissions":["read-meta","scope-temp-recursive"]},"allow-temp-read":{"identifier":"allow-temp-read","description":"This allows non-recursive read access to the `$TEMP` folder.","permissions":["read-all","scope-temp"]},"allow-temp-read-recursive":{"identifier":"allow-temp-read-recursive","description":"This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.","permissions":["read-all","scope-temp-recursive"]},"allow-temp-write":{"identifier":"allow-temp-write","description":"This allows non-recursive write access to the `$TEMP` folder.","permissions":["write-all","scope-temp"]},"allow-temp-write-recursive":{"identifier":"allow-temp-write-recursive","description":"This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.","permissions":["write-all","scope-temp-recursive"]},"allow-template-meta":{"identifier":"allow-template-meta","description":"This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.","permissions":["read-meta","scope-template-index"]},"allow-template-meta-recursive":{"identifier":"allow-template-meta-recursive","description":"This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.","permissions":["read-meta","scope-template-recursive"]},"allow-template-read":{"identifier":"allow-template-read","description":"This allows non-recursive read access to the `$TEMPLATE` folder.","permissions":["read-all","scope-template"]},"allow-template-read-recursive":{"identifier":"allow-template-read-recursive","description":"This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.","permissions":["read-all","scope-template-recursive"]},"allow-template-write":{"identifier":"allow-template-write","description":"This allows non-recursive write access to the `$TEMPLATE` folder.","permissions":["write-all","scope-template"]},"allow-template-write-recursive":{"identifier":"allow-template-write-recursive","description":"This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.","permissions":["write-all","scope-template-recursive"]},"allow-video-meta":{"identifier":"allow-video-meta","description":"This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.","permissions":["read-meta","scope-video-index"]},"allow-video-meta-recursive":{"identifier":"allow-video-meta-recursive","description":"This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.","permissions":["read-meta","scope-video-recursive"]},"allow-video-read":{"identifier":"allow-video-read","description":"This allows non-recursive read access to the `$VIDEO` folder.","permissions":["read-all","scope-video"]},"allow-video-read-recursive":{"identifier":"allow-video-read-recursive","description":"This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.","permissions":["read-all","scope-video-recursive"]},"allow-video-write":{"identifier":"allow-video-write","description":"This allows non-recursive write access to the `$VIDEO` folder.","permissions":["write-all","scope-video"]},"allow-video-write-recursive":{"identifier":"allow-video-write-recursive","description":"This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.","permissions":["write-all","scope-video-recursive"]},"deny-default":{"identifier":"deny-default","description":"This denies access to dangerous Tauri relevant files and folders by default.","permissions":["deny-webview-data-linux","deny-webview-data-windows"]}},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"description":"FS scope path.","type":"string"},{"properties":{"path":{"description":"FS scope path.","type":"string"}},"required":["path"],"type":"object"}],"description":"FS scope entry.","title":"FsScopeEntry"}},"global-shortcut":{"default_permission":{"identifier":"default","description":"No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n","permissions":[]},"permissions":{"allow-is-registered":{"identifier":"allow-is-registered","description":"Enables the is_registered command without any pre-configured scope.","commands":{"allow":["is_registered"],"deny":[]}},"allow-register":{"identifier":"allow-register","description":"Enables the register command without any pre-configured scope.","commands":{"allow":["register"],"deny":[]}},"allow-register-all":{"identifier":"allow-register-all","description":"Enables the register_all command without any pre-configured scope.","commands":{"allow":["register_all"],"deny":[]}},"allow-unregister":{"identifier":"allow-unregister","description":"Enables the unregister command without any pre-configured scope.","commands":{"allow":["unregister"],"deny":[]}},"allow-unregister-all":{"identifier":"allow-unregister-all","description":"Enables the unregister_all command without any pre-configured scope.","commands":{"allow":["unregister_all"],"deny":[]}},"deny-is-registered":{"identifier":"deny-is-registered","description":"Denies the is_registered command without any pre-configured scope.","commands":{"allow":[],"deny":["is_registered"]}},"deny-register":{"identifier":"deny-register","description":"Denies the register command without any pre-configured scope.","commands":{"allow":[],"deny":["register"]}},"deny-register-all":{"identifier":"deny-register-all","description":"Denies the register_all command without any pre-configured scope.","commands":{"allow":[],"deny":["register_all"]}},"deny-unregister":{"identifier":"deny-unregister","description":"Denies the unregister command without any pre-configured scope.","commands":{"allow":[],"deny":["unregister"]}},"deny-unregister-all":{"identifier":"deny-unregister-all","description":"Denies the unregister_all command without any pre-configured scope.","commands":{"allow":[],"deny":["unregister_all"]}}},"permission_sets":{},"global_scope_schema":null},"http":{"default_permission":{"identifier":"default","description":"This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n","permissions":["allow-fetch","allow-fetch-cancel","allow-fetch-read-body","allow-fetch-send"]},"permissions":{"allow-fetch":{"identifier":"allow-fetch","description":"Enables the fetch command without any pre-configured scope.","commands":{"allow":["fetch"],"deny":[]}},"allow-fetch-cancel":{"identifier":"allow-fetch-cancel","description":"Enables the fetch_cancel command without any pre-configured scope.","commands":{"allow":["fetch_cancel"],"deny":[]}},"allow-fetch-read-body":{"identifier":"allow-fetch-read-body","description":"Enables the fetch_read_body command without any pre-configured scope.","commands":{"allow":["fetch_read_body"],"deny":[]}},"allow-fetch-send":{"identifier":"allow-fetch-send","description":"Enables the fetch_send command without any pre-configured scope.","commands":{"allow":["fetch_send"],"deny":[]}},"deny-fetch":{"identifier":"deny-fetch","description":"Denies the fetch command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch"]}},"deny-fetch-cancel":{"identifier":"deny-fetch-cancel","description":"Denies the fetch_cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_cancel"]}},"deny-fetch-read-body":{"identifier":"deny-fetch-read-body","description":"Denies the fetch_read_body command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_read_body"]}},"deny-fetch-send":{"identifier":"deny-fetch-send","description":"Denies the fetch_send command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_send"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"description":"A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"},{"properties":{"url":{"description":"A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"}},"required":["url"],"type":"object"}],"description":"HTTP scope entry.","title":"HttpScopeEntry"}},"notification":{"default_permission":{"identifier":"default","description":"This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n","permissions":["allow-is-permission-granted","allow-request-permission","allow-notify","allow-register-action-types","allow-register-listener","allow-cancel","allow-get-pending","allow-remove-active","allow-get-active","allow-check-permissions","allow-show","allow-batch","allow-list-channels","allow-delete-channel","allow-create-channel","allow-permission-state"]},"permissions":{"allow-batch":{"identifier":"allow-batch","description":"Enables the batch command without any pre-configured scope.","commands":{"allow":["batch"],"deny":[]}},"allow-cancel":{"identifier":"allow-cancel","description":"Enables the cancel command without any pre-configured scope.","commands":{"allow":["cancel"],"deny":[]}},"allow-check-permissions":{"identifier":"allow-check-permissions","description":"Enables the check_permissions command without any pre-configured scope.","commands":{"allow":["check_permissions"],"deny":[]}},"allow-create-channel":{"identifier":"allow-create-channel","description":"Enables the create_channel command without any pre-configured scope.","commands":{"allow":["create_channel"],"deny":[]}},"allow-delete-channel":{"identifier":"allow-delete-channel","description":"Enables the delete_channel command without any pre-configured scope.","commands":{"allow":["delete_channel"],"deny":[]}},"allow-get-active":{"identifier":"allow-get-active","description":"Enables the get_active command without any pre-configured scope.","commands":{"allow":["get_active"],"deny":[]}},"allow-get-pending":{"identifier":"allow-get-pending","description":"Enables the get_pending command without any pre-configured scope.","commands":{"allow":["get_pending"],"deny":[]}},"allow-is-permission-granted":{"identifier":"allow-is-permission-granted","description":"Enables the is_permission_granted command without any pre-configured scope.","commands":{"allow":["is_permission_granted"],"deny":[]}},"allow-list-channels":{"identifier":"allow-list-channels","description":"Enables the list_channels command without any pre-configured scope.","commands":{"allow":["list_channels"],"deny":[]}},"allow-notify":{"identifier":"allow-notify","description":"Enables the notify command without any pre-configured scope.","commands":{"allow":["notify"],"deny":[]}},"allow-permission-state":{"identifier":"allow-permission-state","description":"Enables the permission_state command without any pre-configured scope.","commands":{"allow":["permission_state"],"deny":[]}},"allow-register-action-types":{"identifier":"allow-register-action-types","description":"Enables the register_action_types command without any pre-configured scope.","commands":{"allow":["register_action_types"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-active":{"identifier":"allow-remove-active","description":"Enables the remove_active command without any pre-configured scope.","commands":{"allow":["remove_active"],"deny":[]}},"allow-request-permission":{"identifier":"allow-request-permission","description":"Enables the request_permission command without any pre-configured scope.","commands":{"allow":["request_permission"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"deny-batch":{"identifier":"deny-batch","description":"Denies the batch command without any pre-configured scope.","commands":{"allow":[],"deny":["batch"]}},"deny-cancel":{"identifier":"deny-cancel","description":"Denies the cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["cancel"]}},"deny-check-permissions":{"identifier":"deny-check-permissions","description":"Denies the check_permissions command without any pre-configured scope.","commands":{"allow":[],"deny":["check_permissions"]}},"deny-create-channel":{"identifier":"deny-create-channel","description":"Denies the create_channel command without any pre-configured scope.","commands":{"allow":[],"deny":["create_channel"]}},"deny-delete-channel":{"identifier":"deny-delete-channel","description":"Denies the delete_channel command without any pre-configured scope.","commands":{"allow":[],"deny":["delete_channel"]}},"deny-get-active":{"identifier":"deny-get-active","description":"Denies the get_active command without any pre-configured scope.","commands":{"allow":[],"deny":["get_active"]}},"deny-get-pending":{"identifier":"deny-get-pending","description":"Denies the get_pending command without any pre-configured scope.","commands":{"allow":[],"deny":["get_pending"]}},"deny-is-permission-granted":{"identifier":"deny-is-permission-granted","description":"Denies the is_permission_granted command without any pre-configured scope.","commands":{"allow":[],"deny":["is_permission_granted"]}},"deny-list-channels":{"identifier":"deny-list-channels","description":"Denies the list_channels command without any pre-configured scope.","commands":{"allow":[],"deny":["list_channels"]}},"deny-notify":{"identifier":"deny-notify","description":"Denies the notify command without any pre-configured scope.","commands":{"allow":[],"deny":["notify"]}},"deny-permission-state":{"identifier":"deny-permission-state","description":"Denies the permission_state command without any pre-configured scope.","commands":{"allow":[],"deny":["permission_state"]}},"deny-register-action-types":{"identifier":"deny-register-action-types","description":"Denies the register_action_types command without any pre-configured scope.","commands":{"allow":[],"deny":["register_action_types"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-active":{"identifier":"deny-remove-active","description":"Denies the remove_active command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_active"]}},"deny-request-permission":{"identifier":"deny-request-permission","description":"Denies the request_permission command without any pre-configured scope.","commands":{"allow":[],"deny":["request_permission"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}}},"permission_sets":{},"global_scope_schema":null},"os":{"default_permission":{"identifier":"default","description":"This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n","permissions":["allow-arch","allow-exe-extension","allow-family","allow-locale","allow-os-type","allow-platform","allow-version"]},"permissions":{"allow-arch":{"identifier":"allow-arch","description":"Enables the arch command without any pre-configured scope.","commands":{"allow":["arch"],"deny":[]}},"allow-exe-extension":{"identifier":"allow-exe-extension","description":"Enables the exe_extension command without any pre-configured scope.","commands":{"allow":["exe_extension"],"deny":[]}},"allow-family":{"identifier":"allow-family","description":"Enables the family command without any pre-configured scope.","commands":{"allow":["family"],"deny":[]}},"allow-hostname":{"identifier":"allow-hostname","description":"Enables the hostname command without any pre-configured scope.","commands":{"allow":["hostname"],"deny":[]}},"allow-locale":{"identifier":"allow-locale","description":"Enables the locale command without any pre-configured scope.","commands":{"allow":["locale"],"deny":[]}},"allow-os-type":{"identifier":"allow-os-type","description":"Enables the os_type command without any pre-configured scope.","commands":{"allow":["os_type"],"deny":[]}},"allow-platform":{"identifier":"allow-platform","description":"Enables the platform command without any pre-configured scope.","commands":{"allow":["platform"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-arch":{"identifier":"deny-arch","description":"Denies the arch command without any pre-configured scope.","commands":{"allow":[],"deny":["arch"]}},"deny-exe-extension":{"identifier":"deny-exe-extension","description":"Denies the exe_extension command without any pre-configured scope.","commands":{"allow":[],"deny":["exe_extension"]}},"deny-family":{"identifier":"deny-family","description":"Denies the family command without any pre-configured scope.","commands":{"allow":[],"deny":["family"]}},"deny-hostname":{"identifier":"deny-hostname","description":"Denies the hostname command without any pre-configured scope.","commands":{"allow":[],"deny":["hostname"]}},"deny-locale":{"identifier":"deny-locale","description":"Denies the locale command without any pre-configured scope.","commands":{"allow":[],"deny":["locale"]}},"deny-os-type":{"identifier":"deny-os-type","description":"Denies the os_type command without any pre-configured scope.","commands":{"allow":[],"deny":["os_type"]}},"deny-platform":{"identifier":"deny-platform","description":"Denies the platform command without any pre-configured scope.","commands":{"allow":[],"deny":["platform"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"process":{"default_permission":{"identifier":"default","description":"This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n","permissions":["allow-exit","allow-restart"]},"permissions":{"allow-exit":{"identifier":"allow-exit","description":"Enables the exit command without any pre-configured scope.","commands":{"allow":["exit"],"deny":[]}},"allow-restart":{"identifier":"allow-restart","description":"Enables the restart command without any pre-configured scope.","commands":{"allow":["restart"],"deny":[]}},"deny-exit":{"identifier":"deny-exit","description":"Denies the exit command without any pre-configured scope.","commands":{"allow":[],"deny":["exit"]}},"deny-restart":{"identifier":"deny-restart","description":"Denies the restart command without any pre-configured scope.","commands":{"allow":[],"deny":["restart"]}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":{"identifier":"default","description":"This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n","permissions":["allow-open"]},"permissions":{"allow-execute":{"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]}},"allow-kill":{"identifier":"allow-kill","description":"Enables the kill command without any pre-configured scope.","commands":{"allow":["kill"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-spawn":{"identifier":"allow-spawn","description":"Enables the spawn command without any pre-configured scope.","commands":{"allow":["spawn"],"deny":[]}},"allow-stdin-write":{"identifier":"allow-stdin-write","description":"Enables the stdin_write command without any pre-configured scope.","commands":{"allow":["stdin_write"],"deny":[]}},"deny-execute":{"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]}},"deny-kill":{"identifier":"deny-kill","description":"Denies the kill command without any pre-configured scope.","commands":{"allow":[],"deny":["kill"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-spawn":{"identifier":"deny-spawn","description":"Denies the spawn command without any pre-configured scope.","commands":{"allow":[],"deny":["spawn"]}},"deny-stdin-write":{"identifier":"deny-stdin-write","description":"Denies the stdin_write command without any pre-configured scope.","commands":{"allow":[],"deny":["stdin_write"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"cmd":{"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`, `$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"}},"required":["cmd","name"],"type":"object"},{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"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":["name","sidecar"],"type":"object"}],"definitions":{"ShellScopeEntryAllowedArg":{"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":{"raw":{"default":false,"description":"Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.","type":"boolean"},"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\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ","type":"string"}},"required":["validator"],"type":"object"}],"description":"A command argument allowed to be executed by the webview API."},"ShellScopeEntryAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellScopeEntryAllowedArg"},"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 [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"Shell scope entry.","title":"ShellScopeEntry"}}} \ No newline at end of file diff --git a/src-tauri/gen/schemas/capabilities.json b/src-tauri/gen/schemas/capabilities.json new file mode 100644 index 00000000..34499547 --- /dev/null +++ b/src-tauri/gen/schemas/capabilities.json @@ -0,0 +1 @@ +{"desktop-capability":{"identifier":"desktop-capability","description":"","local":true,"permissions":["global-shortcut:default","os:default"],"platforms":["macOS","windows","linux"]},"migrated":{"identifier":"migrated","description":"permissions that were migrated from v1","local":true,"windows":["main"],"permissions":["core:default","fs:allow-read-file","fs:allow-write-file","fs:allow-read-dir","fs:allow-copy-file","fs:allow-mkdir","fs:allow-remove","fs:allow-remove","fs:allow-rename","fs:allow-exists","core:window:allow-create","core:window:allow-center","core:window:allow-request-user-attention","core:window:allow-set-resizable","core:window:allow-set-maximizable","core:window:allow-set-minimizable","core:window:allow-set-closable","core:window:allow-set-title","core:window:allow-maximize","core:window:allow-unmaximize","core:window:allow-minimize","core:window:allow-unminimize","core:window:allow-show","core:window:allow-hide","core:window:allow-close","core:window:allow-set-decorations","core:window:allow-set-always-on-top","core:window:allow-set-content-protected","core:window:allow-set-size","core:window:allow-set-min-size","core:window:allow-set-max-size","core:window:allow-set-position","core:window:allow-set-fullscreen","core:window:allow-set-focus","core:window:allow-set-icon","core:window:allow-set-skip-taskbar","core:window:allow-set-cursor-grab","core:window:allow-set-cursor-visible","core:window:allow-set-cursor-icon","core:window:allow-set-cursor-position","core:window:allow-set-ignore-cursor-events","core:window:allow-start-dragging","core:webview:allow-print","shell:allow-execute","shell:allow-open","dialog:allow-open","dialog:allow-save","dialog:allow-message","dialog:allow-ask","dialog:allow-confirm","http:default","notification:default","global-shortcut:allow-is-registered","global-shortcut:allow-register","global-shortcut:allow-register-all","global-shortcut:allow-unregister","global-shortcut:allow-unregister-all","os:allow-platform","os:allow-version","os:allow-os-type","os:allow-family","os:allow-arch","os:allow-exe-extension","os:allow-locale","os:allow-hostname","process:allow-restart","process:allow-exit","clipboard-manager:allow-read-text","clipboard-manager:allow-write-text","core:app:allow-app-show","core:app:allow-app-hide","http:default","process:default","fs:default","clipboard-manager:default","shell:default","dialog:default","os:default"]}} \ 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..2e2f21e5 --- /dev/null +++ b/src-tauri/gen/schemas/desktop-schema.json @@ -0,0 +1,5598 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "CapabilityFile", + "description": "Capability formats accepted in a capability file.", + "anyOf": [ + { + "description": "A single capability.", + "allOf": [ + { + "$ref": "#/definitions/Capability" + } + ] + }, + { + "description": "A list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + }, + { + "description": "A list of capabilities.", + "type": "object", + "required": [ + "capabilities" + ], + "properties": { + "capabilities": { + "description": "The list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + } + } + } + ], + "definitions": { + "Capability": { + "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows fine grained access to the Tauri core, application, or plugin commands. If a window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", + "type": "object", + "required": [ + "identifier", + "permissions" + ], + "properties": { + "identifier": { + "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", + "type": "string" + }, + "description": { + "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.", + "default": "", + "type": "string" + }, + "remote": { + "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", + "anyOf": [ + { + "$ref": "#/definitions/CapabilityRemote" + }, + { + "type": "null" + } + ] + }, + "local": { + "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", + "default": true, + "type": "boolean" + }, + "windows": { + "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "webviews": { + "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ```", + "type": "array", + "items": { + "$ref": "#/definitions/PermissionEntry" + }, + "uniqueItems": true + }, + "platforms": { + "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Target" + } + } + } + }, + "CapabilityRemote": { + "description": "Configuration for remote URLs that are associated with the capability.", + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PermissionEntry": { + "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", + "anyOf": [ + { + "description": "Reference a permission or permission set by identifier.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + { + "description": "Reference a permission or permission set by identifier and extends its scope.", + "type": "object", + "allOf": [ + { + "if": { + "properties": { + "identifier": { + "anyOf": [ + { + "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", + "type": "string", + "const": "fs:default" + }, + { + "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", + "type": "string", + "const": "fs:allow-app-meta" + }, + { + "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", + "type": "string", + "const": "fs:allow-app-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the application folders.", + "type": "string", + "const": "fs:allow-app-read" + }, + { + "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", + "type": "string", + "const": "fs:allow-app-read-recursive" + }, + { + "description": "This allows non-recursive write access to the application folders.", + "type": "string", + "const": "fs:allow-app-write" + }, + { + "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", + "type": "string", + "const": "fs:allow-app-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appcache-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appcache-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPCACHE` folder.", + "type": "string", + "const": "fs:allow-appcache-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appcache-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPCACHE` folder.", + "type": "string", + "const": "fs:allow-appcache-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appcache-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appconfig-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appconfig-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:allow-appconfig-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appconfig-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:allow-appconfig-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appconfig-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appdata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appdata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPDATA` folder.", + "type": "string", + "const": "fs:allow-appdata-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appdata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPDATA` folder.", + "type": "string", + "const": "fs:allow-appdata-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appdata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applocaldata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applocaldata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:allow-applocaldata-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applocaldata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:allow-applocaldata-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applocaldata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applog-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applog-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPLOG` folder.", + "type": "string", + "const": "fs:allow-applog-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applog-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPLOG` folder.", + "type": "string", + "const": "fs:allow-applog-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applog-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-audio-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-audio-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$AUDIO` folder.", + "type": "string", + "const": "fs:allow-audio-read" + }, + { + "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-audio-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$AUDIO` folder.", + "type": "string", + "const": "fs:allow-audio-write" + }, + { + "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-audio-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-cache-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-cache-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$CACHE` folder.", + "type": "string", + "const": "fs:allow-cache-read" + }, + { + "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-cache-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$CACHE` folder.", + "type": "string", + "const": "fs:allow-cache-write" + }, + { + "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-cache-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-config-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-config-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$CONFIG` folder.", + "type": "string", + "const": "fs:allow-config-read" + }, + { + "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-config-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$CONFIG` folder.", + "type": "string", + "const": "fs:allow-config-write" + }, + { + "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-config-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-data-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-data-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DATA` folder.", + "type": "string", + "const": "fs:allow-data-read" + }, + { + "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-data-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DATA` folder.", + "type": "string", + "const": "fs:allow-data-write" + }, + { + "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-data-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-desktop-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-desktop-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DESKTOP` folder.", + "type": "string", + "const": "fs:allow-desktop-read" + }, + { + "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-desktop-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DESKTOP` folder.", + "type": "string", + "const": "fs:allow-desktop-write" + }, + { + "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-desktop-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-document-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-document-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:allow-document-read" + }, + { + "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-document-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:allow-document-write" + }, + { + "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-document-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-download-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-download-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:allow-download-read" + }, + { + "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-download-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:allow-download-write" + }, + { + "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-download-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-exe-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-exe-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$EXE` folder.", + "type": "string", + "const": "fs:allow-exe-read" + }, + { + "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-exe-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$EXE` folder.", + "type": "string", + "const": "fs:allow-exe-write" + }, + { + "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-exe-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-font-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-font-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$FONT` folder.", + "type": "string", + "const": "fs:allow-font-read" + }, + { + "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-font-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$FONT` folder.", + "type": "string", + "const": "fs:allow-font-write" + }, + { + "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-font-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-home-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-home-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$HOME` folder.", + "type": "string", + "const": "fs:allow-home-read" + }, + { + "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-home-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$HOME` folder.", + "type": "string", + "const": "fs:allow-home-write" + }, + { + "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-home-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-localdata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-localdata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:allow-localdata-read" + }, + { + "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-localdata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:allow-localdata-write" + }, + { + "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-localdata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-log-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-log-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$LOG` folder.", + "type": "string", + "const": "fs:allow-log-read" + }, + { + "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-log-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$LOG` folder.", + "type": "string", + "const": "fs:allow-log-write" + }, + { + "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-log-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-picture-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-picture-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$PICTURE` folder.", + "type": "string", + "const": "fs:allow-picture-read" + }, + { + "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-picture-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$PICTURE` folder.", + "type": "string", + "const": "fs:allow-picture-write" + }, + { + "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-picture-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-public-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-public-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$PUBLIC` folder.", + "type": "string", + "const": "fs:allow-public-read" + }, + { + "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-public-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$PUBLIC` folder.", + "type": "string", + "const": "fs:allow-public-write" + }, + { + "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-public-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-resource-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-resource-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$RESOURCE` folder.", + "type": "string", + "const": "fs:allow-resource-read" + }, + { + "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-resource-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$RESOURCE` folder.", + "type": "string", + "const": "fs:allow-resource-write" + }, + { + "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-resource-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-runtime-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-runtime-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$RUNTIME` folder.", + "type": "string", + "const": "fs:allow-runtime-read" + }, + { + "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-runtime-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$RUNTIME` folder.", + "type": "string", + "const": "fs:allow-runtime-write" + }, + { + "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-runtime-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-temp-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-temp-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$TEMP` folder.", + "type": "string", + "const": "fs:allow-temp-read" + }, + { + "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-temp-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$TEMP` folder.", + "type": "string", + "const": "fs:allow-temp-write" + }, + { + "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-temp-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-template-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-template-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:allow-template-read" + }, + { + "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-template-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:allow-template-write" + }, + { + "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-template-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-video-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-video-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$VIDEO` folder.", + "type": "string", + "const": "fs:allow-video-read" + }, + { + "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-video-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$VIDEO` folder.", + "type": "string", + "const": "fs:allow-video-write" + }, + { + "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-video-write-recursive" + }, + { + "description": "This denies access to dangerous Tauri relevant files and folders by default.", + "type": "string", + "const": "fs:deny-default" + }, + { + "description": "Enables the copy_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-copy-file" + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-create" + }, + { + "description": "Enables the exists command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-exists" + }, + { + "description": "Enables the fstat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-fstat" + }, + { + "description": "Enables the ftruncate command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-ftruncate" + }, + { + "description": "Enables the lstat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-lstat" + }, + { + "description": "Enables the mkdir command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-mkdir" + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-open" + }, + { + "description": "Enables the read command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read" + }, + { + "description": "Enables the read_dir command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-dir" + }, + { + "description": "Enables the read_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-file" + }, + { + "description": "Enables the read_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file" + }, + { + "description": "Enables the read_text_file_lines command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file-lines" + }, + { + "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file-lines-next" + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-remove" + }, + { + "description": "Enables the rename command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-rename" + }, + { + "description": "Enables the seek command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-seek" + }, + { + "description": "Enables the stat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-stat" + }, + { + "description": "Enables the truncate command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-truncate" + }, + { + "description": "Enables the unwatch command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-unwatch" + }, + { + "description": "Enables the watch command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-watch" + }, + { + "description": "Enables the write command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write" + }, + { + "description": "Enables the write_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write-file" + }, + { + "description": "Enables the write_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write-text-file" + }, + { + "description": "This permissions allows to create the application specific directories.\n", + "type": "string", + "const": "fs:create-app-specific-dirs" + }, + { + "description": "Denies the copy_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-copy-file" + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-create" + }, + { + "description": "Denies the exists command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-exists" + }, + { + "description": "Denies the fstat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-fstat" + }, + { + "description": "Denies the ftruncate command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-ftruncate" + }, + { + "description": "Denies the lstat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-lstat" + }, + { + "description": "Denies the mkdir command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-mkdir" + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-open" + }, + { + "description": "Denies the read command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read" + }, + { + "description": "Denies the read_dir command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-dir" + }, + { + "description": "Denies the read_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-file" + }, + { + "description": "Denies the read_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file" + }, + { + "description": "Denies the read_text_file_lines command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file-lines" + }, + { + "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file-lines-next" + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-remove" + }, + { + "description": "Denies the rename command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-rename" + }, + { + "description": "Denies the seek command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-seek" + }, + { + "description": "Denies the stat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-stat" + }, + { + "description": "Denies the truncate command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-truncate" + }, + { + "description": "Denies the unwatch command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-unwatch" + }, + { + "description": "Denies the watch command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-watch" + }, + { + "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "type": "string", + "const": "fs:deny-webview-data-linux" + }, + { + "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "type": "string", + "const": "fs:deny-webview-data-windows" + }, + { + "description": "Denies the write command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write" + }, + { + "description": "Denies the write_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write-file" + }, + { + "description": "Denies the write_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write-text-file" + }, + { + "description": "This enables all read related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-all" + }, + { + "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", + "type": "string", + "const": "fs:read-app-specific-dirs-recursive" + }, + { + "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-dirs" + }, + { + "description": "This enables file read related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-files" + }, + { + "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-meta" + }, + { + "description": "An empty permission you can use to modify the global scope.", + "type": "string", + "const": "fs:scope" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the application folders.", + "type": "string", + "const": "fs:scope-app" + }, + { + "description": "This scope permits to list all files and folders in the application directories.", + "type": "string", + "const": "fs:scope-app-index" + }, + { + "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", + "type": "string", + "const": "fs:scope-app-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", + "type": "string", + "const": "fs:scope-appcache" + }, + { + "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", + "type": "string", + "const": "fs:scope-appcache-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appcache-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:scope-appconfig" + }, + { + "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", + "type": "string", + "const": "fs:scope-appconfig-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appconfig-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", + "type": "string", + "const": "fs:scope-appdata" + }, + { + "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", + "type": "string", + "const": "fs:scope-appdata-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appdata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:scope-applocaldata" + }, + { + "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", + "type": "string", + "const": "fs:scope-applocaldata-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-applocaldata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", + "type": "string", + "const": "fs:scope-applog" + }, + { + "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", + "type": "string", + "const": "fs:scope-applog-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-applog-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", + "type": "string", + "const": "fs:scope-audio" + }, + { + "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", + "type": "string", + "const": "fs:scope-audio-index" + }, + { + "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-audio-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", + "type": "string", + "const": "fs:scope-cache" + }, + { + "description": "This scope permits to list all files and folders in the `$CACHE`folder.", + "type": "string", + "const": "fs:scope-cache-index" + }, + { + "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-cache-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", + "type": "string", + "const": "fs:scope-config" + }, + { + "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", + "type": "string", + "const": "fs:scope-config-index" + }, + { + "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-config-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", + "type": "string", + "const": "fs:scope-data" + }, + { + "description": "This scope permits to list all files and folders in the `$DATA`folder.", + "type": "string", + "const": "fs:scope-data-index" + }, + { + "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-data-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", + "type": "string", + "const": "fs:scope-desktop" + }, + { + "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", + "type": "string", + "const": "fs:scope-desktop-index" + }, + { + "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-desktop-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:scope-document" + }, + { + "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", + "type": "string", + "const": "fs:scope-document-index" + }, + { + "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-document-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:scope-download" + }, + { + "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", + "type": "string", + "const": "fs:scope-download-index" + }, + { + "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-download-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", + "type": "string", + "const": "fs:scope-exe" + }, + { + "description": "This scope permits to list all files and folders in the `$EXE`folder.", + "type": "string", + "const": "fs:scope-exe-index" + }, + { + "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-exe-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", + "type": "string", + "const": "fs:scope-font" + }, + { + "description": "This scope permits to list all files and folders in the `$FONT`folder.", + "type": "string", + "const": "fs:scope-font-index" + }, + { + "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-font-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", + "type": "string", + "const": "fs:scope-home" + }, + { + "description": "This scope permits to list all files and folders in the `$HOME`folder.", + "type": "string", + "const": "fs:scope-home-index" + }, + { + "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-home-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:scope-localdata" + }, + { + "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", + "type": "string", + "const": "fs:scope-localdata-index" + }, + { + "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-localdata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", + "type": "string", + "const": "fs:scope-log" + }, + { + "description": "This scope permits to list all files and folders in the `$LOG`folder.", + "type": "string", + "const": "fs:scope-log-index" + }, + { + "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-log-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", + "type": "string", + "const": "fs:scope-picture" + }, + { + "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", + "type": "string", + "const": "fs:scope-picture-index" + }, + { + "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-picture-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", + "type": "string", + "const": "fs:scope-public" + }, + { + "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", + "type": "string", + "const": "fs:scope-public-index" + }, + { + "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-public-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", + "type": "string", + "const": "fs:scope-resource" + }, + { + "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", + "type": "string", + "const": "fs:scope-resource-index" + }, + { + "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-resource-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", + "type": "string", + "const": "fs:scope-runtime" + }, + { + "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", + "type": "string", + "const": "fs:scope-runtime-index" + }, + { + "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-runtime-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", + "type": "string", + "const": "fs:scope-temp" + }, + { + "description": "This scope permits to list all files and folders in the `$TEMP`folder.", + "type": "string", + "const": "fs:scope-temp-index" + }, + { + "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-temp-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:scope-template" + }, + { + "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", + "type": "string", + "const": "fs:scope-template-index" + }, + { + "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-template-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", + "type": "string", + "const": "fs:scope-video" + }, + { + "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", + "type": "string", + "const": "fs:scope-video-index" + }, + { + "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-video-recursive" + }, + { + "description": "This enables all write related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:write-all" + }, + { + "description": "This enables all file write related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:write-files" + } + ] + } + } + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "FsScopeEntry", + "description": "FS scope entry.", + "anyOf": [ + { + "description": "FS scope path.", + "type": "string" + }, + { + "type": "object", + "required": [ + "path" + ], + "properties": { + "path": { + "description": "FS scope path.", + "type": "string" + } + } + } + ] + } + }, + "deny": { + "items": { + "title": "FsScopeEntry", + "description": "FS scope entry.", + "anyOf": [ + { + "description": "FS scope path.", + "type": "string" + }, + { + "type": "object", + "required": [ + "path" + ], + "properties": { + "path": { + "description": "FS scope path.", + "type": "string" + } + } + } + ] + } + } + } + }, + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + } + } + }, + { + "if": { + "properties": { + "identifier": { + "anyOf": [ + { + "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", + "type": "string", + "const": "http:default" + }, + { + "description": "Enables the fetch command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch" + }, + { + "description": "Enables the fetch_cancel command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-cancel" + }, + { + "description": "Enables the fetch_read_body command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-read-body" + }, + { + "description": "Enables the fetch_send command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-send" + }, + { + "description": "Denies the fetch command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch" + }, + { + "description": "Denies the fetch_cancel command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-cancel" + }, + { + "description": "Denies the fetch_read_body command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-read-body" + }, + { + "description": "Denies the fetch_send command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-send" + } + ] + } + } + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "HttpScopeEntry", + "description": "HTTP scope entry.", + "anyOf": [ + { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + }, + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } + } + ] + } + }, + "deny": { + "items": { + "title": "HttpScopeEntry", + "description": "HTTP scope entry.", + "anyOf": [ + { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + }, + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } + } + ] + } + } + } + }, + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + } + } + }, + { + "if": { + "properties": { + "identifier": { + "anyOf": [ + { + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", + "type": "string", + "const": "shell:default" + }, + { + "description": "Enables the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-execute" + }, + { + "description": "Enables the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-kill" + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-open" + }, + { + "description": "Enables the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-spawn" + }, + { + "description": "Enables the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-stdin-write" + }, + { + "description": "Denies the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-execute" + }, + { + "description": "Denies the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-kill" + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-open" + }, + { + "description": "Denies the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-spawn" + }, + { + "description": "Denies the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-stdin-write" + } + ] + } + } + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "ShellScopeEntry", + "description": "Shell scope entry.", + "anyOf": [ + { + "type": "object", + "required": [ + "cmd", + "name" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "cmd": { + "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`, `$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" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "name", + "sidecar" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "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" + } + }, + "additionalProperties": false + } + ] + } + }, + "deny": { + "items": { + "title": "ShellScopeEntry", + "description": "Shell scope entry.", + "anyOf": [ + { + "type": "object", + "required": [ + "cmd", + "name" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "cmd": { + "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`, `$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" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "name", + "sidecar" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "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" + } + }, + "additionalProperties": false + } + ] + } + } + } + }, + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + } + } + }, + { + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + "allow": { + "description": "Data that defines what is allowed by the scope.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + }, + "deny": { + "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + } + } + } + ], + "required": [ + "identifier" + ] + } + ] + }, + "Identifier": { + "description": "Permission identifier", + "oneOf": [ + { + "description": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n", + "type": "string", + "const": "clipboard-manager:default" + }, + { + "description": "Enables the clear command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:allow-clear" + }, + { + "description": "Enables the read_image command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:allow-read-image" + }, + { + "description": "Enables the read_text command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:allow-read-text" + }, + { + "description": "Enables the write_html command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:allow-write-html" + }, + { + "description": "Enables the write_image command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:allow-write-image" + }, + { + "description": "Enables the write_text command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:allow-write-text" + }, + { + "description": "Denies the clear command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:deny-clear" + }, + { + "description": "Denies the read_image command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:deny-read-image" + }, + { + "description": "Denies the read_text command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:deny-read-text" + }, + { + "description": "Denies the write_html command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:deny-write-html" + }, + { + "description": "Denies the write_image command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:deny-write-image" + }, + { + "description": "Denies the write_text command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:deny-write-text" + }, + { + "description": "Default core plugins set which includes:\n- 'core:path:default'\n- 'core:event:default'\n- 'core:window:default'\n- 'core:webview:default'\n- 'core:app:default'\n- 'core:image:default'\n- 'core:resources:default'\n- 'core:menu:default'\n- 'core:tray:default'\n", + "type": "string", + "const": "core:default" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:app:default" + }, + { + "description": "Enables the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-hide" + }, + { + "description": "Enables the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-show" + }, + { + "description": "Enables the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-default-window-icon" + }, + { + "description": "Enables the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-name" + }, + { + "description": "Enables the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-app-theme" + }, + { + "description": "Enables the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-tauri-version" + }, + { + "description": "Enables the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-version" + }, + { + "description": "Denies the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-hide" + }, + { + "description": "Denies the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-show" + }, + { + "description": "Denies the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-default-window-icon" + }, + { + "description": "Denies the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-name" + }, + { + "description": "Denies the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-app-theme" + }, + { + "description": "Denies the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-tauri-version" + }, + { + "description": "Denies the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-version" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:event:default" + }, + { + "description": "Enables the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit" + }, + { + "description": "Enables the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit-to" + }, + { + "description": "Enables the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-listen" + }, + { + "description": "Enables the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-unlisten" + }, + { + "description": "Denies the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit" + }, + { + "description": "Denies the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit-to" + }, + { + "description": "Denies the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-listen" + }, + { + "description": "Denies the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-unlisten" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:image:default" + }, + { + "description": "Enables the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-bytes" + }, + { + "description": "Enables the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-path" + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-new" + }, + { + "description": "Enables the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-rgba" + }, + { + "description": "Enables the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-size" + }, + { + "description": "Denies the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-bytes" + }, + { + "description": "Denies the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-path" + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-new" + }, + { + "description": "Denies the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-rgba" + }, + { + "description": "Denies the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-size" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:menu:default" + }, + { + "description": "Enables the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-append" + }, + { + "description": "Enables the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-create-default" + }, + { + "description": "Enables the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-get" + }, + { + "description": "Enables the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-insert" + }, + { + "description": "Enables the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-checked" + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-enabled" + }, + { + "description": "Enables the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-items" + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-new" + }, + { + "description": "Enables the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-popup" + }, + { + "description": "Enables the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-prepend" + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove" + }, + { + "description": "Enables the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove-at" + }, + { + "description": "Enables the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-accelerator" + }, + { + "description": "Enables the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-app-menu" + }, + { + "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-help-menu-for-nsapp" + }, + { + "description": "Enables the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-window-menu" + }, + { + "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-windows-menu-for-nsapp" + }, + { + "description": "Enables the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-checked" + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-enabled" + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-icon" + }, + { + "description": "Enables the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-text" + }, + { + "description": "Enables the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-text" + }, + { + "description": "Denies the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-append" + }, + { + "description": "Denies the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-create-default" + }, + { + "description": "Denies the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-get" + }, + { + "description": "Denies the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-insert" + }, + { + "description": "Denies the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-checked" + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-enabled" + }, + { + "description": "Denies the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-items" + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-new" + }, + { + "description": "Denies the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-popup" + }, + { + "description": "Denies the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-prepend" + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove" + }, + { + "description": "Denies the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove-at" + }, + { + "description": "Denies the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-accelerator" + }, + { + "description": "Denies the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-app-menu" + }, + { + "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-help-menu-for-nsapp" + }, + { + "description": "Denies the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-window-menu" + }, + { + "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-windows-menu-for-nsapp" + }, + { + "description": "Denies the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-checked" + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-enabled" + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-icon" + }, + { + "description": "Denies the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-text" + }, + { + "description": "Denies the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-text" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:path:default" + }, + { + "description": "Enables the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-basename" + }, + { + "description": "Enables the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-dirname" + }, + { + "description": "Enables the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-extname" + }, + { + "description": "Enables the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-is-absolute" + }, + { + "description": "Enables the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-join" + }, + { + "description": "Enables the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-normalize" + }, + { + "description": "Enables the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve" + }, + { + "description": "Enables the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve-directory" + }, + { + "description": "Denies the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-basename" + }, + { + "description": "Denies the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-dirname" + }, + { + "description": "Denies the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-extname" + }, + { + "description": "Denies the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-is-absolute" + }, + { + "description": "Denies the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-join" + }, + { + "description": "Denies the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-normalize" + }, + { + "description": "Denies the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve" + }, + { + "description": "Denies the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve-directory" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:resources:default" + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:allow-close" + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:deny-close" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:tray:default" + }, + { + "description": "Enables the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-get-by-id" + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-new" + }, + { + "description": "Enables the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-remove-by-id" + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon" + }, + { + "description": "Enables the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon-as-template" + }, + { + "description": "Enables the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-menu" + }, + { + "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-show-menu-on-left-click" + }, + { + "description": "Enables the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-temp-dir-path" + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-title" + }, + { + "description": "Enables the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-tooltip" + }, + { + "description": "Enables the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-visible" + }, + { + "description": "Denies the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-get-by-id" + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-new" + }, + { + "description": "Denies the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-remove-by-id" + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon" + }, + { + "description": "Denies the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon-as-template" + }, + { + "description": "Denies the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-menu" + }, + { + "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-show-menu-on-left-click" + }, + { + "description": "Denies the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-temp-dir-path" + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-title" + }, + { + "description": "Denies the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-tooltip" + }, + { + "description": "Denies the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-visible" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:webview:default" + }, + { + "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-clear-all-browsing-data" + }, + { + "description": "Enables the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview" + }, + { + "description": "Enables the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview-window" + }, + { + "description": "Enables the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-get-all-webviews" + }, + { + "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-internal-toggle-devtools" + }, + { + "description": "Enables the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-print" + }, + { + "description": "Enables the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-reparent" + }, + { + "description": "Enables the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-focus" + }, + { + "description": "Enables the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-position" + }, + { + "description": "Enables the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-size" + }, + { + "description": "Enables the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-zoom" + }, + { + "description": "Enables the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-close" + }, + { + "description": "Enables the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-hide" + }, + { + "description": "Enables the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-position" + }, + { + "description": "Enables the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-show" + }, + { + "description": "Enables the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-size" + }, + { + "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-clear-all-browsing-data" + }, + { + "description": "Denies the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview" + }, + { + "description": "Denies the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview-window" + }, + { + "description": "Denies the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-get-all-webviews" + }, + { + "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-internal-toggle-devtools" + }, + { + "description": "Denies the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-print" + }, + { + "description": "Denies the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-reparent" + }, + { + "description": "Denies the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-focus" + }, + { + "description": "Denies the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-position" + }, + { + "description": "Denies the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-size" + }, + { + "description": "Denies the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-zoom" + }, + { + "description": "Denies the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-close" + }, + { + "description": "Denies the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-hide" + }, + { + "description": "Denies the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-position" + }, + { + "description": "Denies the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-show" + }, + { + "description": "Denies the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-size" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:window:default" + }, + { + "description": "Enables the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-available-monitors" + }, + { + "description": "Enables the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-center" + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-close" + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-create" + }, + { + "description": "Enables the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-current-monitor" + }, + { + "description": "Enables the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-cursor-position" + }, + { + "description": "Enables the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-destroy" + }, + { + "description": "Enables the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-get-all-windows" + }, + { + "description": "Enables the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-hide" + }, + { + "description": "Enables the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-position" + }, + { + "description": "Enables the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-size" + }, + { + "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-internal-toggle-maximize" + }, + { + "description": "Enables the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-closable" + }, + { + "description": "Enables the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-decorated" + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-enabled" + }, + { + "description": "Enables the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-focused" + }, + { + "description": "Enables the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-fullscreen" + }, + { + "description": "Enables the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximizable" + }, + { + "description": "Enables the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximized" + }, + { + "description": "Enables the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimizable" + }, + { + "description": "Enables the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimized" + }, + { + "description": "Enables the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-resizable" + }, + { + "description": "Enables the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-visible" + }, + { + "description": "Enables the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-maximize" + }, + { + "description": "Enables the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-minimize" + }, + { + "description": "Enables the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-monitor-from-point" + }, + { + "description": "Enables the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-position" + }, + { + "description": "Enables the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-size" + }, + { + "description": "Enables the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-primary-monitor" + }, + { + "description": "Enables the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-request-user-attention" + }, + { + "description": "Enables the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-scale-factor" + }, + { + "description": "Enables the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-bottom" + }, + { + "description": "Enables the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-top" + }, + { + "description": "Enables the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-closable" + }, + { + "description": "Enables the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-content-protected" + }, + { + "description": "Enables the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-grab" + }, + { + "description": "Enables the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-icon" + }, + { + "description": "Enables the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-position" + }, + { + "description": "Enables the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-visible" + }, + { + "description": "Enables the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-decorations" + }, + { + "description": "Enables the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-effects" + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-enabled" + }, + { + "description": "Enables the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focus" + }, + { + "description": "Enables the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-fullscreen" + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-icon" + }, + { + "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-ignore-cursor-events" + }, + { + "description": "Enables the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-max-size" + }, + { + "description": "Enables the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-maximizable" + }, + { + "description": "Enables the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-min-size" + }, + { + "description": "Enables the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-minimizable" + }, + { + "description": "Enables the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-position" + }, + { + "description": "Enables the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-progress-bar" + }, + { + "description": "Enables the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-resizable" + }, + { + "description": "Enables the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-shadow" + }, + { + "description": "Enables the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size" + }, + { + "description": "Enables the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size-constraints" + }, + { + "description": "Enables the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-skip-taskbar" + }, + { + "description": "Enables the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-theme" + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title" + }, + { + "description": "Enables the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title-bar-style" + }, + { + "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-visible-on-all-workspaces" + }, + { + "description": "Enables the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-show" + }, + { + "description": "Enables the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-dragging" + }, + { + "description": "Enables the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-resize-dragging" + }, + { + "description": "Enables the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-theme" + }, + { + "description": "Enables the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-title" + }, + { + "description": "Enables the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-toggle-maximize" + }, + { + "description": "Enables the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unmaximize" + }, + { + "description": "Enables the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unminimize" + }, + { + "description": "Denies the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-available-monitors" + }, + { + "description": "Denies the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-center" + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-close" + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-create" + }, + { + "description": "Denies the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-current-monitor" + }, + { + "description": "Denies the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-cursor-position" + }, + { + "description": "Denies the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-destroy" + }, + { + "description": "Denies the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-get-all-windows" + }, + { + "description": "Denies the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-hide" + }, + { + "description": "Denies the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-position" + }, + { + "description": "Denies the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-size" + }, + { + "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-internal-toggle-maximize" + }, + { + "description": "Denies the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-closable" + }, + { + "description": "Denies the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-decorated" + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-enabled" + }, + { + "description": "Denies the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-focused" + }, + { + "description": "Denies the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-fullscreen" + }, + { + "description": "Denies the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximizable" + }, + { + "description": "Denies the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximized" + }, + { + "description": "Denies the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimizable" + }, + { + "description": "Denies the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimized" + }, + { + "description": "Denies the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-resizable" + }, + { + "description": "Denies the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-visible" + }, + { + "description": "Denies the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-maximize" + }, + { + "description": "Denies the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-minimize" + }, + { + "description": "Denies the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-monitor-from-point" + }, + { + "description": "Denies the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-position" + }, + { + "description": "Denies the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-size" + }, + { + "description": "Denies the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-primary-monitor" + }, + { + "description": "Denies the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-request-user-attention" + }, + { + "description": "Denies the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-scale-factor" + }, + { + "description": "Denies the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-bottom" + }, + { + "description": "Denies the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-top" + }, + { + "description": "Denies the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-closable" + }, + { + "description": "Denies the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-content-protected" + }, + { + "description": "Denies the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-grab" + }, + { + "description": "Denies the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-icon" + }, + { + "description": "Denies the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-position" + }, + { + "description": "Denies the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-visible" + }, + { + "description": "Denies the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-decorations" + }, + { + "description": "Denies the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-effects" + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-enabled" + }, + { + "description": "Denies the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focus" + }, + { + "description": "Denies the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-fullscreen" + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-icon" + }, + { + "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-ignore-cursor-events" + }, + { + "description": "Denies the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-max-size" + }, + { + "description": "Denies the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-maximizable" + }, + { + "description": "Denies the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-min-size" + }, + { + "description": "Denies the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-minimizable" + }, + { + "description": "Denies the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-position" + }, + { + "description": "Denies the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-progress-bar" + }, + { + "description": "Denies the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-resizable" + }, + { + "description": "Denies the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-shadow" + }, + { + "description": "Denies the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size" + }, + { + "description": "Denies the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size-constraints" + }, + { + "description": "Denies the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-skip-taskbar" + }, + { + "description": "Denies the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-theme" + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title" + }, + { + "description": "Denies the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title-bar-style" + }, + { + "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-visible-on-all-workspaces" + }, + { + "description": "Denies the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-show" + }, + { + "description": "Denies the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-dragging" + }, + { + "description": "Denies the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-resize-dragging" + }, + { + "description": "Denies the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-theme" + }, + { + "description": "Denies the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-title" + }, + { + "description": "Denies the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-toggle-maximize" + }, + { + "description": "Denies the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unmaximize" + }, + { + "description": "Denies the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unminimize" + }, + { + "description": "This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n", + "type": "string", + "const": "dialog:default" + }, + { + "description": "Enables the ask command without any pre-configured scope.", + "type": "string", + "const": "dialog:allow-ask" + }, + { + "description": "Enables the confirm command without any pre-configured scope.", + "type": "string", + "const": "dialog:allow-confirm" + }, + { + "description": "Enables the message command without any pre-configured scope.", + "type": "string", + "const": "dialog:allow-message" + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "dialog:allow-open" + }, + { + "description": "Enables the save command without any pre-configured scope.", + "type": "string", + "const": "dialog:allow-save" + }, + { + "description": "Denies the ask command without any pre-configured scope.", + "type": "string", + "const": "dialog:deny-ask" + }, + { + "description": "Denies the confirm command without any pre-configured scope.", + "type": "string", + "const": "dialog:deny-confirm" + }, + { + "description": "Denies the message command without any pre-configured scope.", + "type": "string", + "const": "dialog:deny-message" + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "dialog:deny-open" + }, + { + "description": "Denies the save command without any pre-configured scope.", + "type": "string", + "const": "dialog:deny-save" + }, + { + "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", + "type": "string", + "const": "fs:default" + }, + { + "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", + "type": "string", + "const": "fs:allow-app-meta" + }, + { + "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", + "type": "string", + "const": "fs:allow-app-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the application folders.", + "type": "string", + "const": "fs:allow-app-read" + }, + { + "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", + "type": "string", + "const": "fs:allow-app-read-recursive" + }, + { + "description": "This allows non-recursive write access to the application folders.", + "type": "string", + "const": "fs:allow-app-write" + }, + { + "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", + "type": "string", + "const": "fs:allow-app-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appcache-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appcache-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPCACHE` folder.", + "type": "string", + "const": "fs:allow-appcache-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appcache-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPCACHE` folder.", + "type": "string", + "const": "fs:allow-appcache-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appcache-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appconfig-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appconfig-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:allow-appconfig-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appconfig-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:allow-appconfig-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appconfig-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appdata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appdata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPDATA` folder.", + "type": "string", + "const": "fs:allow-appdata-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appdata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPDATA` folder.", + "type": "string", + "const": "fs:allow-appdata-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appdata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applocaldata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applocaldata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:allow-applocaldata-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applocaldata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:allow-applocaldata-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applocaldata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applog-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applog-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPLOG` folder.", + "type": "string", + "const": "fs:allow-applog-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applog-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPLOG` folder.", + "type": "string", + "const": "fs:allow-applog-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applog-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-audio-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-audio-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$AUDIO` folder.", + "type": "string", + "const": "fs:allow-audio-read" + }, + { + "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-audio-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$AUDIO` folder.", + "type": "string", + "const": "fs:allow-audio-write" + }, + { + "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-audio-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-cache-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-cache-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$CACHE` folder.", + "type": "string", + "const": "fs:allow-cache-read" + }, + { + "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-cache-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$CACHE` folder.", + "type": "string", + "const": "fs:allow-cache-write" + }, + { + "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-cache-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-config-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-config-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$CONFIG` folder.", + "type": "string", + "const": "fs:allow-config-read" + }, + { + "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-config-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$CONFIG` folder.", + "type": "string", + "const": "fs:allow-config-write" + }, + { + "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-config-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-data-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-data-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DATA` folder.", + "type": "string", + "const": "fs:allow-data-read" + }, + { + "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-data-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DATA` folder.", + "type": "string", + "const": "fs:allow-data-write" + }, + { + "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-data-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-desktop-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-desktop-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DESKTOP` folder.", + "type": "string", + "const": "fs:allow-desktop-read" + }, + { + "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-desktop-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DESKTOP` folder.", + "type": "string", + "const": "fs:allow-desktop-write" + }, + { + "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-desktop-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-document-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-document-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:allow-document-read" + }, + { + "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-document-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:allow-document-write" + }, + { + "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-document-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-download-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-download-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:allow-download-read" + }, + { + "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-download-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:allow-download-write" + }, + { + "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-download-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-exe-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-exe-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$EXE` folder.", + "type": "string", + "const": "fs:allow-exe-read" + }, + { + "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-exe-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$EXE` folder.", + "type": "string", + "const": "fs:allow-exe-write" + }, + { + "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-exe-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-font-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-font-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$FONT` folder.", + "type": "string", + "const": "fs:allow-font-read" + }, + { + "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-font-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$FONT` folder.", + "type": "string", + "const": "fs:allow-font-write" + }, + { + "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-font-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-home-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-home-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$HOME` folder.", + "type": "string", + "const": "fs:allow-home-read" + }, + { + "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-home-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$HOME` folder.", + "type": "string", + "const": "fs:allow-home-write" + }, + { + "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-home-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-localdata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-localdata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:allow-localdata-read" + }, + { + "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-localdata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:allow-localdata-write" + }, + { + "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-localdata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-log-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-log-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$LOG` folder.", + "type": "string", + "const": "fs:allow-log-read" + }, + { + "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-log-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$LOG` folder.", + "type": "string", + "const": "fs:allow-log-write" + }, + { + "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-log-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-picture-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-picture-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$PICTURE` folder.", + "type": "string", + "const": "fs:allow-picture-read" + }, + { + "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-picture-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$PICTURE` folder.", + "type": "string", + "const": "fs:allow-picture-write" + }, + { + "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-picture-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-public-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-public-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$PUBLIC` folder.", + "type": "string", + "const": "fs:allow-public-read" + }, + { + "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-public-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$PUBLIC` folder.", + "type": "string", + "const": "fs:allow-public-write" + }, + { + "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-public-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-resource-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-resource-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$RESOURCE` folder.", + "type": "string", + "const": "fs:allow-resource-read" + }, + { + "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-resource-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$RESOURCE` folder.", + "type": "string", + "const": "fs:allow-resource-write" + }, + { + "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-resource-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-runtime-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-runtime-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$RUNTIME` folder.", + "type": "string", + "const": "fs:allow-runtime-read" + }, + { + "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-runtime-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$RUNTIME` folder.", + "type": "string", + "const": "fs:allow-runtime-write" + }, + { + "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-runtime-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-temp-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-temp-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$TEMP` folder.", + "type": "string", + "const": "fs:allow-temp-read" + }, + { + "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-temp-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$TEMP` folder.", + "type": "string", + "const": "fs:allow-temp-write" + }, + { + "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-temp-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-template-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-template-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:allow-template-read" + }, + { + "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-template-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:allow-template-write" + }, + { + "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-template-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-video-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-video-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$VIDEO` folder.", + "type": "string", + "const": "fs:allow-video-read" + }, + { + "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-video-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$VIDEO` folder.", + "type": "string", + "const": "fs:allow-video-write" + }, + { + "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-video-write-recursive" + }, + { + "description": "This denies access to dangerous Tauri relevant files and folders by default.", + "type": "string", + "const": "fs:deny-default" + }, + { + "description": "Enables the copy_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-copy-file" + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-create" + }, + { + "description": "Enables the exists command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-exists" + }, + { + "description": "Enables the fstat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-fstat" + }, + { + "description": "Enables the ftruncate command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-ftruncate" + }, + { + "description": "Enables the lstat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-lstat" + }, + { + "description": "Enables the mkdir command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-mkdir" + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-open" + }, + { + "description": "Enables the read command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read" + }, + { + "description": "Enables the read_dir command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-dir" + }, + { + "description": "Enables the read_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-file" + }, + { + "description": "Enables the read_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file" + }, + { + "description": "Enables the read_text_file_lines command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file-lines" + }, + { + "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file-lines-next" + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-remove" + }, + { + "description": "Enables the rename command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-rename" + }, + { + "description": "Enables the seek command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-seek" + }, + { + "description": "Enables the stat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-stat" + }, + { + "description": "Enables the truncate command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-truncate" + }, + { + "description": "Enables the unwatch command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-unwatch" + }, + { + "description": "Enables the watch command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-watch" + }, + { + "description": "Enables the write command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write" + }, + { + "description": "Enables the write_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write-file" + }, + { + "description": "Enables the write_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write-text-file" + }, + { + "description": "This permissions allows to create the application specific directories.\n", + "type": "string", + "const": "fs:create-app-specific-dirs" + }, + { + "description": "Denies the copy_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-copy-file" + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-create" + }, + { + "description": "Denies the exists command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-exists" + }, + { + "description": "Denies the fstat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-fstat" + }, + { + "description": "Denies the ftruncate command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-ftruncate" + }, + { + "description": "Denies the lstat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-lstat" + }, + { + "description": "Denies the mkdir command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-mkdir" + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-open" + }, + { + "description": "Denies the read command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read" + }, + { + "description": "Denies the read_dir command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-dir" + }, + { + "description": "Denies the read_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-file" + }, + { + "description": "Denies the read_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file" + }, + { + "description": "Denies the read_text_file_lines command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file-lines" + }, + { + "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file-lines-next" + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-remove" + }, + { + "description": "Denies the rename command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-rename" + }, + { + "description": "Denies the seek command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-seek" + }, + { + "description": "Denies the stat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-stat" + }, + { + "description": "Denies the truncate command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-truncate" + }, + { + "description": "Denies the unwatch command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-unwatch" + }, + { + "description": "Denies the watch command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-watch" + }, + { + "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "type": "string", + "const": "fs:deny-webview-data-linux" + }, + { + "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "type": "string", + "const": "fs:deny-webview-data-windows" + }, + { + "description": "Denies the write command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write" + }, + { + "description": "Denies the write_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write-file" + }, + { + "description": "Denies the write_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write-text-file" + }, + { + "description": "This enables all read related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-all" + }, + { + "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", + "type": "string", + "const": "fs:read-app-specific-dirs-recursive" + }, + { + "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-dirs" + }, + { + "description": "This enables file read related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-files" + }, + { + "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-meta" + }, + { + "description": "An empty permission you can use to modify the global scope.", + "type": "string", + "const": "fs:scope" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the application folders.", + "type": "string", + "const": "fs:scope-app" + }, + { + "description": "This scope permits to list all files and folders in the application directories.", + "type": "string", + "const": "fs:scope-app-index" + }, + { + "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", + "type": "string", + "const": "fs:scope-app-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", + "type": "string", + "const": "fs:scope-appcache" + }, + { + "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", + "type": "string", + "const": "fs:scope-appcache-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appcache-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:scope-appconfig" + }, + { + "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", + "type": "string", + "const": "fs:scope-appconfig-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appconfig-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", + "type": "string", + "const": "fs:scope-appdata" + }, + { + "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", + "type": "string", + "const": "fs:scope-appdata-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appdata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:scope-applocaldata" + }, + { + "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", + "type": "string", + "const": "fs:scope-applocaldata-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-applocaldata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", + "type": "string", + "const": "fs:scope-applog" + }, + { + "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", + "type": "string", + "const": "fs:scope-applog-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-applog-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", + "type": "string", + "const": "fs:scope-audio" + }, + { + "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", + "type": "string", + "const": "fs:scope-audio-index" + }, + { + "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-audio-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", + "type": "string", + "const": "fs:scope-cache" + }, + { + "description": "This scope permits to list all files and folders in the `$CACHE`folder.", + "type": "string", + "const": "fs:scope-cache-index" + }, + { + "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-cache-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", + "type": "string", + "const": "fs:scope-config" + }, + { + "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", + "type": "string", + "const": "fs:scope-config-index" + }, + { + "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-config-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", + "type": "string", + "const": "fs:scope-data" + }, + { + "description": "This scope permits to list all files and folders in the `$DATA`folder.", + "type": "string", + "const": "fs:scope-data-index" + }, + { + "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-data-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", + "type": "string", + "const": "fs:scope-desktop" + }, + { + "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", + "type": "string", + "const": "fs:scope-desktop-index" + }, + { + "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-desktop-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:scope-document" + }, + { + "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", + "type": "string", + "const": "fs:scope-document-index" + }, + { + "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-document-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:scope-download" + }, + { + "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", + "type": "string", + "const": "fs:scope-download-index" + }, + { + "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-download-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", + "type": "string", + "const": "fs:scope-exe" + }, + { + "description": "This scope permits to list all files and folders in the `$EXE`folder.", + "type": "string", + "const": "fs:scope-exe-index" + }, + { + "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-exe-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", + "type": "string", + "const": "fs:scope-font" + }, + { + "description": "This scope permits to list all files and folders in the `$FONT`folder.", + "type": "string", + "const": "fs:scope-font-index" + }, + { + "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-font-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", + "type": "string", + "const": "fs:scope-home" + }, + { + "description": "This scope permits to list all files and folders in the `$HOME`folder.", + "type": "string", + "const": "fs:scope-home-index" + }, + { + "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-home-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:scope-localdata" + }, + { + "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", + "type": "string", + "const": "fs:scope-localdata-index" + }, + { + "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-localdata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", + "type": "string", + "const": "fs:scope-log" + }, + { + "description": "This scope permits to list all files and folders in the `$LOG`folder.", + "type": "string", + "const": "fs:scope-log-index" + }, + { + "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-log-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", + "type": "string", + "const": "fs:scope-picture" + }, + { + "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", + "type": "string", + "const": "fs:scope-picture-index" + }, + { + "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-picture-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", + "type": "string", + "const": "fs:scope-public" + }, + { + "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", + "type": "string", + "const": "fs:scope-public-index" + }, + { + "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-public-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", + "type": "string", + "const": "fs:scope-resource" + }, + { + "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", + "type": "string", + "const": "fs:scope-resource-index" + }, + { + "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-resource-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", + "type": "string", + "const": "fs:scope-runtime" + }, + { + "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", + "type": "string", + "const": "fs:scope-runtime-index" + }, + { + "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-runtime-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", + "type": "string", + "const": "fs:scope-temp" + }, + { + "description": "This scope permits to list all files and folders in the `$TEMP`folder.", + "type": "string", + "const": "fs:scope-temp-index" + }, + { + "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-temp-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:scope-template" + }, + { + "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", + "type": "string", + "const": "fs:scope-template-index" + }, + { + "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-template-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", + "type": "string", + "const": "fs:scope-video" + }, + { + "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", + "type": "string", + "const": "fs:scope-video-index" + }, + { + "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-video-recursive" + }, + { + "description": "This enables all write related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:write-all" + }, + { + "description": "This enables all file write related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:write-files" + }, + { + "description": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n", + "type": "string", + "const": "global-shortcut:default" + }, + { + "description": "Enables the is_registered command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:allow-is-registered" + }, + { + "description": "Enables the register command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:allow-register" + }, + { + "description": "Enables the register_all command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:allow-register-all" + }, + { + "description": "Enables the unregister command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:allow-unregister" + }, + { + "description": "Enables the unregister_all command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:allow-unregister-all" + }, + { + "description": "Denies the is_registered command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:deny-is-registered" + }, + { + "description": "Denies the register command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:deny-register" + }, + { + "description": "Denies the register_all command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:deny-register-all" + }, + { + "description": "Denies the unregister command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:deny-unregister" + }, + { + "description": "Denies the unregister_all command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:deny-unregister-all" + }, + { + "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", + "type": "string", + "const": "http:default" + }, + { + "description": "Enables the fetch command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch" + }, + { + "description": "Enables the fetch_cancel command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-cancel" + }, + { + "description": "Enables the fetch_read_body command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-read-body" + }, + { + "description": "Enables the fetch_send command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-send" + }, + { + "description": "Denies the fetch command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch" + }, + { + "description": "Denies the fetch_cancel command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-cancel" + }, + { + "description": "Denies the fetch_read_body command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-read-body" + }, + { + "description": "Denies the fetch_send command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-send" + }, + { + "description": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n", + "type": "string", + "const": "notification:default" + }, + { + "description": "Enables the batch command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-batch" + }, + { + "description": "Enables the cancel command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-cancel" + }, + { + "description": "Enables the check_permissions command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-check-permissions" + }, + { + "description": "Enables the create_channel command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-create-channel" + }, + { + "description": "Enables the delete_channel command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-delete-channel" + }, + { + "description": "Enables the get_active command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-get-active" + }, + { + "description": "Enables the get_pending command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-get-pending" + }, + { + "description": "Enables the is_permission_granted command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-is-permission-granted" + }, + { + "description": "Enables the list_channels command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-list-channels" + }, + { + "description": "Enables the notify command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-notify" + }, + { + "description": "Enables the permission_state command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-permission-state" + }, + { + "description": "Enables the register_action_types command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-register-action-types" + }, + { + "description": "Enables the register_listener command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-register-listener" + }, + { + "description": "Enables the remove_active command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-remove-active" + }, + { + "description": "Enables the request_permission command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-request-permission" + }, + { + "description": "Enables the show command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-show" + }, + { + "description": "Denies the batch command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-batch" + }, + { + "description": "Denies the cancel command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-cancel" + }, + { + "description": "Denies the check_permissions command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-check-permissions" + }, + { + "description": "Denies the create_channel command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-create-channel" + }, + { + "description": "Denies the delete_channel command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-delete-channel" + }, + { + "description": "Denies the get_active command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-get-active" + }, + { + "description": "Denies the get_pending command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-get-pending" + }, + { + "description": "Denies the is_permission_granted command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-is-permission-granted" + }, + { + "description": "Denies the list_channels command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-list-channels" + }, + { + "description": "Denies the notify command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-notify" + }, + { + "description": "Denies the permission_state command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-permission-state" + }, + { + "description": "Denies the register_action_types command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-register-action-types" + }, + { + "description": "Denies the register_listener command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-register-listener" + }, + { + "description": "Denies the remove_active command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-remove-active" + }, + { + "description": "Denies the request_permission command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-request-permission" + }, + { + "description": "Denies the show command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-show" + }, + { + "description": "This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n", + "type": "string", + "const": "os:default" + }, + { + "description": "Enables the arch command without any pre-configured scope.", + "type": "string", + "const": "os:allow-arch" + }, + { + "description": "Enables the exe_extension command without any pre-configured scope.", + "type": "string", + "const": "os:allow-exe-extension" + }, + { + "description": "Enables the family command without any pre-configured scope.", + "type": "string", + "const": "os:allow-family" + }, + { + "description": "Enables the hostname command without any pre-configured scope.", + "type": "string", + "const": "os:allow-hostname" + }, + { + "description": "Enables the locale command without any pre-configured scope.", + "type": "string", + "const": "os:allow-locale" + }, + { + "description": "Enables the os_type command without any pre-configured scope.", + "type": "string", + "const": "os:allow-os-type" + }, + { + "description": "Enables the platform command without any pre-configured scope.", + "type": "string", + "const": "os:allow-platform" + }, + { + "description": "Enables the version command without any pre-configured scope.", + "type": "string", + "const": "os:allow-version" + }, + { + "description": "Denies the arch command without any pre-configured scope.", + "type": "string", + "const": "os:deny-arch" + }, + { + "description": "Denies the exe_extension command without any pre-configured scope.", + "type": "string", + "const": "os:deny-exe-extension" + }, + { + "description": "Denies the family command without any pre-configured scope.", + "type": "string", + "const": "os:deny-family" + }, + { + "description": "Denies the hostname command without any pre-configured scope.", + "type": "string", + "const": "os:deny-hostname" + }, + { + "description": "Denies the locale command without any pre-configured scope.", + "type": "string", + "const": "os:deny-locale" + }, + { + "description": "Denies the os_type command without any pre-configured scope.", + "type": "string", + "const": "os:deny-os-type" + }, + { + "description": "Denies the platform command without any pre-configured scope.", + "type": "string", + "const": "os:deny-platform" + }, + { + "description": "Denies the version command without any pre-configured scope.", + "type": "string", + "const": "os:deny-version" + }, + { + "description": "This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n", + "type": "string", + "const": "process:default" + }, + { + "description": "Enables the exit command without any pre-configured scope.", + "type": "string", + "const": "process:allow-exit" + }, + { + "description": "Enables the restart command without any pre-configured scope.", + "type": "string", + "const": "process:allow-restart" + }, + { + "description": "Denies the exit command without any pre-configured scope.", + "type": "string", + "const": "process:deny-exit" + }, + { + "description": "Denies the restart command without any pre-configured scope.", + "type": "string", + "const": "process:deny-restart" + }, + { + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", + "type": "string", + "const": "shell:default" + }, + { + "description": "Enables the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-execute" + }, + { + "description": "Enables the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-kill" + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-open" + }, + { + "description": "Enables the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-spawn" + }, + { + "description": "Enables the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-stdin-write" + }, + { + "description": "Denies the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-execute" + }, + { + "description": "Denies the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-kill" + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-open" + }, + { + "description": "Denies the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-spawn" + }, + { + "description": "Denies the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-stdin-write" + } + ] + }, + "Value": { + "description": "All supported ACL values.", + "anyOf": [ + { + "description": "Represents a null JSON value.", + "type": "null" + }, + { + "description": "Represents a [`bool`].", + "type": "boolean" + }, + { + "description": "Represents a valid ACL [`Number`].", + "allOf": [ + { + "$ref": "#/definitions/Number" + } + ] + }, + { + "description": "Represents a [`String`].", + "type": "string" + }, + { + "description": "Represents a list of other [`Value`]s.", + "type": "array", + "items": { + "$ref": "#/definitions/Value" + } + }, + { + "description": "Represents a map of [`String`] keys to [`Value`]s.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Value" + } + } + ] + }, + "Number": { + "description": "A valid ACL number.", + "anyOf": [ + { + "description": "Represents an [`i64`].", + "type": "integer", + "format": "int64" + }, + { + "description": "Represents a [`f64`].", + "type": "number", + "format": "double" + } + ] + }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, + "ShellScopeEntryAllowedArg": { + "description": "A command argument allowed to be executed by the webview API.", + "anyOf": [ + { + "description": "A non-configurable argument that is passed to the command in the order it was specified.", + "type": "string" + }, + { + "description": "A variable that is set while calling the command from the webview API.", + "type": "object", + "required": [ + "validator" + ], + "properties": { + "raw": { + "description": "Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.", + "default": false, + "type": "boolean" + }, + "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\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ", + "type": "string" + } + }, + "additionalProperties": false + } + ] + }, + "ShellScopeEntryAllowedArgs": { + "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 [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", + "anyOf": [ + { + "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", + "type": "boolean" + }, + { + "description": "A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.", + "type": "array", + "items": { + "$ref": "#/definitions/ShellScopeEntryAllowedArg" + } + } + ] + } + } +} \ No newline at end of file diff --git a/src-tauri/gen/schemas/macOS-schema.json b/src-tauri/gen/schemas/macOS-schema.json new file mode 100644 index 00000000..2e2f21e5 --- /dev/null +++ b/src-tauri/gen/schemas/macOS-schema.json @@ -0,0 +1,5598 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "CapabilityFile", + "description": "Capability formats accepted in a capability file.", + "anyOf": [ + { + "description": "A single capability.", + "allOf": [ + { + "$ref": "#/definitions/Capability" + } + ] + }, + { + "description": "A list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + }, + { + "description": "A list of capabilities.", + "type": "object", + "required": [ + "capabilities" + ], + "properties": { + "capabilities": { + "description": "The list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + } + } + } + ], + "definitions": { + "Capability": { + "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows fine grained access to the Tauri core, application, or plugin commands. If a window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", + "type": "object", + "required": [ + "identifier", + "permissions" + ], + "properties": { + "identifier": { + "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", + "type": "string" + }, + "description": { + "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.", + "default": "", + "type": "string" + }, + "remote": { + "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", + "anyOf": [ + { + "$ref": "#/definitions/CapabilityRemote" + }, + { + "type": "null" + } + ] + }, + "local": { + "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", + "default": true, + "type": "boolean" + }, + "windows": { + "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "webviews": { + "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ```", + "type": "array", + "items": { + "$ref": "#/definitions/PermissionEntry" + }, + "uniqueItems": true + }, + "platforms": { + "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Target" + } + } + } + }, + "CapabilityRemote": { + "description": "Configuration for remote URLs that are associated with the capability.", + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PermissionEntry": { + "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", + "anyOf": [ + { + "description": "Reference a permission or permission set by identifier.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + { + "description": "Reference a permission or permission set by identifier and extends its scope.", + "type": "object", + "allOf": [ + { + "if": { + "properties": { + "identifier": { + "anyOf": [ + { + "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", + "type": "string", + "const": "fs:default" + }, + { + "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", + "type": "string", + "const": "fs:allow-app-meta" + }, + { + "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", + "type": "string", + "const": "fs:allow-app-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the application folders.", + "type": "string", + "const": "fs:allow-app-read" + }, + { + "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", + "type": "string", + "const": "fs:allow-app-read-recursive" + }, + { + "description": "This allows non-recursive write access to the application folders.", + "type": "string", + "const": "fs:allow-app-write" + }, + { + "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", + "type": "string", + "const": "fs:allow-app-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appcache-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appcache-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPCACHE` folder.", + "type": "string", + "const": "fs:allow-appcache-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appcache-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPCACHE` folder.", + "type": "string", + "const": "fs:allow-appcache-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appcache-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appconfig-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appconfig-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:allow-appconfig-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appconfig-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:allow-appconfig-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appconfig-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appdata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appdata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPDATA` folder.", + "type": "string", + "const": "fs:allow-appdata-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appdata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPDATA` folder.", + "type": "string", + "const": "fs:allow-appdata-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appdata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applocaldata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applocaldata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:allow-applocaldata-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applocaldata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:allow-applocaldata-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applocaldata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applog-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applog-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPLOG` folder.", + "type": "string", + "const": "fs:allow-applog-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applog-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPLOG` folder.", + "type": "string", + "const": "fs:allow-applog-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applog-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-audio-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-audio-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$AUDIO` folder.", + "type": "string", + "const": "fs:allow-audio-read" + }, + { + "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-audio-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$AUDIO` folder.", + "type": "string", + "const": "fs:allow-audio-write" + }, + { + "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-audio-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-cache-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-cache-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$CACHE` folder.", + "type": "string", + "const": "fs:allow-cache-read" + }, + { + "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-cache-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$CACHE` folder.", + "type": "string", + "const": "fs:allow-cache-write" + }, + { + "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-cache-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-config-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-config-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$CONFIG` folder.", + "type": "string", + "const": "fs:allow-config-read" + }, + { + "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-config-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$CONFIG` folder.", + "type": "string", + "const": "fs:allow-config-write" + }, + { + "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-config-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-data-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-data-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DATA` folder.", + "type": "string", + "const": "fs:allow-data-read" + }, + { + "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-data-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DATA` folder.", + "type": "string", + "const": "fs:allow-data-write" + }, + { + "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-data-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-desktop-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-desktop-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DESKTOP` folder.", + "type": "string", + "const": "fs:allow-desktop-read" + }, + { + "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-desktop-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DESKTOP` folder.", + "type": "string", + "const": "fs:allow-desktop-write" + }, + { + "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-desktop-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-document-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-document-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:allow-document-read" + }, + { + "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-document-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:allow-document-write" + }, + { + "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-document-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-download-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-download-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:allow-download-read" + }, + { + "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-download-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:allow-download-write" + }, + { + "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-download-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-exe-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-exe-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$EXE` folder.", + "type": "string", + "const": "fs:allow-exe-read" + }, + { + "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-exe-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$EXE` folder.", + "type": "string", + "const": "fs:allow-exe-write" + }, + { + "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-exe-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-font-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-font-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$FONT` folder.", + "type": "string", + "const": "fs:allow-font-read" + }, + { + "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-font-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$FONT` folder.", + "type": "string", + "const": "fs:allow-font-write" + }, + { + "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-font-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-home-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-home-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$HOME` folder.", + "type": "string", + "const": "fs:allow-home-read" + }, + { + "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-home-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$HOME` folder.", + "type": "string", + "const": "fs:allow-home-write" + }, + { + "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-home-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-localdata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-localdata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:allow-localdata-read" + }, + { + "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-localdata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:allow-localdata-write" + }, + { + "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-localdata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-log-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-log-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$LOG` folder.", + "type": "string", + "const": "fs:allow-log-read" + }, + { + "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-log-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$LOG` folder.", + "type": "string", + "const": "fs:allow-log-write" + }, + { + "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-log-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-picture-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-picture-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$PICTURE` folder.", + "type": "string", + "const": "fs:allow-picture-read" + }, + { + "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-picture-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$PICTURE` folder.", + "type": "string", + "const": "fs:allow-picture-write" + }, + { + "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-picture-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-public-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-public-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$PUBLIC` folder.", + "type": "string", + "const": "fs:allow-public-read" + }, + { + "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-public-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$PUBLIC` folder.", + "type": "string", + "const": "fs:allow-public-write" + }, + { + "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-public-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-resource-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-resource-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$RESOURCE` folder.", + "type": "string", + "const": "fs:allow-resource-read" + }, + { + "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-resource-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$RESOURCE` folder.", + "type": "string", + "const": "fs:allow-resource-write" + }, + { + "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-resource-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-runtime-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-runtime-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$RUNTIME` folder.", + "type": "string", + "const": "fs:allow-runtime-read" + }, + { + "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-runtime-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$RUNTIME` folder.", + "type": "string", + "const": "fs:allow-runtime-write" + }, + { + "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-runtime-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-temp-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-temp-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$TEMP` folder.", + "type": "string", + "const": "fs:allow-temp-read" + }, + { + "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-temp-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$TEMP` folder.", + "type": "string", + "const": "fs:allow-temp-write" + }, + { + "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-temp-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-template-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-template-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:allow-template-read" + }, + { + "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-template-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:allow-template-write" + }, + { + "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-template-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-video-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-video-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$VIDEO` folder.", + "type": "string", + "const": "fs:allow-video-read" + }, + { + "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-video-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$VIDEO` folder.", + "type": "string", + "const": "fs:allow-video-write" + }, + { + "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-video-write-recursive" + }, + { + "description": "This denies access to dangerous Tauri relevant files and folders by default.", + "type": "string", + "const": "fs:deny-default" + }, + { + "description": "Enables the copy_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-copy-file" + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-create" + }, + { + "description": "Enables the exists command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-exists" + }, + { + "description": "Enables the fstat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-fstat" + }, + { + "description": "Enables the ftruncate command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-ftruncate" + }, + { + "description": "Enables the lstat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-lstat" + }, + { + "description": "Enables the mkdir command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-mkdir" + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-open" + }, + { + "description": "Enables the read command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read" + }, + { + "description": "Enables the read_dir command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-dir" + }, + { + "description": "Enables the read_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-file" + }, + { + "description": "Enables the read_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file" + }, + { + "description": "Enables the read_text_file_lines command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file-lines" + }, + { + "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file-lines-next" + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-remove" + }, + { + "description": "Enables the rename command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-rename" + }, + { + "description": "Enables the seek command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-seek" + }, + { + "description": "Enables the stat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-stat" + }, + { + "description": "Enables the truncate command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-truncate" + }, + { + "description": "Enables the unwatch command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-unwatch" + }, + { + "description": "Enables the watch command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-watch" + }, + { + "description": "Enables the write command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write" + }, + { + "description": "Enables the write_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write-file" + }, + { + "description": "Enables the write_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write-text-file" + }, + { + "description": "This permissions allows to create the application specific directories.\n", + "type": "string", + "const": "fs:create-app-specific-dirs" + }, + { + "description": "Denies the copy_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-copy-file" + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-create" + }, + { + "description": "Denies the exists command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-exists" + }, + { + "description": "Denies the fstat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-fstat" + }, + { + "description": "Denies the ftruncate command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-ftruncate" + }, + { + "description": "Denies the lstat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-lstat" + }, + { + "description": "Denies the mkdir command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-mkdir" + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-open" + }, + { + "description": "Denies the read command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read" + }, + { + "description": "Denies the read_dir command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-dir" + }, + { + "description": "Denies the read_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-file" + }, + { + "description": "Denies the read_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file" + }, + { + "description": "Denies the read_text_file_lines command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file-lines" + }, + { + "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file-lines-next" + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-remove" + }, + { + "description": "Denies the rename command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-rename" + }, + { + "description": "Denies the seek command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-seek" + }, + { + "description": "Denies the stat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-stat" + }, + { + "description": "Denies the truncate command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-truncate" + }, + { + "description": "Denies the unwatch command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-unwatch" + }, + { + "description": "Denies the watch command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-watch" + }, + { + "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "type": "string", + "const": "fs:deny-webview-data-linux" + }, + { + "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "type": "string", + "const": "fs:deny-webview-data-windows" + }, + { + "description": "Denies the write command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write" + }, + { + "description": "Denies the write_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write-file" + }, + { + "description": "Denies the write_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write-text-file" + }, + { + "description": "This enables all read related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-all" + }, + { + "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", + "type": "string", + "const": "fs:read-app-specific-dirs-recursive" + }, + { + "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-dirs" + }, + { + "description": "This enables file read related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-files" + }, + { + "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-meta" + }, + { + "description": "An empty permission you can use to modify the global scope.", + "type": "string", + "const": "fs:scope" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the application folders.", + "type": "string", + "const": "fs:scope-app" + }, + { + "description": "This scope permits to list all files and folders in the application directories.", + "type": "string", + "const": "fs:scope-app-index" + }, + { + "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", + "type": "string", + "const": "fs:scope-app-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", + "type": "string", + "const": "fs:scope-appcache" + }, + { + "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", + "type": "string", + "const": "fs:scope-appcache-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appcache-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:scope-appconfig" + }, + { + "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", + "type": "string", + "const": "fs:scope-appconfig-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appconfig-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", + "type": "string", + "const": "fs:scope-appdata" + }, + { + "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", + "type": "string", + "const": "fs:scope-appdata-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appdata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:scope-applocaldata" + }, + { + "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", + "type": "string", + "const": "fs:scope-applocaldata-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-applocaldata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", + "type": "string", + "const": "fs:scope-applog" + }, + { + "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", + "type": "string", + "const": "fs:scope-applog-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-applog-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", + "type": "string", + "const": "fs:scope-audio" + }, + { + "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", + "type": "string", + "const": "fs:scope-audio-index" + }, + { + "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-audio-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", + "type": "string", + "const": "fs:scope-cache" + }, + { + "description": "This scope permits to list all files and folders in the `$CACHE`folder.", + "type": "string", + "const": "fs:scope-cache-index" + }, + { + "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-cache-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", + "type": "string", + "const": "fs:scope-config" + }, + { + "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", + "type": "string", + "const": "fs:scope-config-index" + }, + { + "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-config-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", + "type": "string", + "const": "fs:scope-data" + }, + { + "description": "This scope permits to list all files and folders in the `$DATA`folder.", + "type": "string", + "const": "fs:scope-data-index" + }, + { + "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-data-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", + "type": "string", + "const": "fs:scope-desktop" + }, + { + "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", + "type": "string", + "const": "fs:scope-desktop-index" + }, + { + "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-desktop-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:scope-document" + }, + { + "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", + "type": "string", + "const": "fs:scope-document-index" + }, + { + "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-document-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:scope-download" + }, + { + "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", + "type": "string", + "const": "fs:scope-download-index" + }, + { + "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-download-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", + "type": "string", + "const": "fs:scope-exe" + }, + { + "description": "This scope permits to list all files and folders in the `$EXE`folder.", + "type": "string", + "const": "fs:scope-exe-index" + }, + { + "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-exe-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", + "type": "string", + "const": "fs:scope-font" + }, + { + "description": "This scope permits to list all files and folders in the `$FONT`folder.", + "type": "string", + "const": "fs:scope-font-index" + }, + { + "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-font-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", + "type": "string", + "const": "fs:scope-home" + }, + { + "description": "This scope permits to list all files and folders in the `$HOME`folder.", + "type": "string", + "const": "fs:scope-home-index" + }, + { + "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-home-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:scope-localdata" + }, + { + "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", + "type": "string", + "const": "fs:scope-localdata-index" + }, + { + "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-localdata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", + "type": "string", + "const": "fs:scope-log" + }, + { + "description": "This scope permits to list all files and folders in the `$LOG`folder.", + "type": "string", + "const": "fs:scope-log-index" + }, + { + "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-log-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", + "type": "string", + "const": "fs:scope-picture" + }, + { + "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", + "type": "string", + "const": "fs:scope-picture-index" + }, + { + "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-picture-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", + "type": "string", + "const": "fs:scope-public" + }, + { + "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", + "type": "string", + "const": "fs:scope-public-index" + }, + { + "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-public-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", + "type": "string", + "const": "fs:scope-resource" + }, + { + "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", + "type": "string", + "const": "fs:scope-resource-index" + }, + { + "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-resource-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", + "type": "string", + "const": "fs:scope-runtime" + }, + { + "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", + "type": "string", + "const": "fs:scope-runtime-index" + }, + { + "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-runtime-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", + "type": "string", + "const": "fs:scope-temp" + }, + { + "description": "This scope permits to list all files and folders in the `$TEMP`folder.", + "type": "string", + "const": "fs:scope-temp-index" + }, + { + "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-temp-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:scope-template" + }, + { + "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", + "type": "string", + "const": "fs:scope-template-index" + }, + { + "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-template-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", + "type": "string", + "const": "fs:scope-video" + }, + { + "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", + "type": "string", + "const": "fs:scope-video-index" + }, + { + "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-video-recursive" + }, + { + "description": "This enables all write related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:write-all" + }, + { + "description": "This enables all file write related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:write-files" + } + ] + } + } + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "FsScopeEntry", + "description": "FS scope entry.", + "anyOf": [ + { + "description": "FS scope path.", + "type": "string" + }, + { + "type": "object", + "required": [ + "path" + ], + "properties": { + "path": { + "description": "FS scope path.", + "type": "string" + } + } + } + ] + } + }, + "deny": { + "items": { + "title": "FsScopeEntry", + "description": "FS scope entry.", + "anyOf": [ + { + "description": "FS scope path.", + "type": "string" + }, + { + "type": "object", + "required": [ + "path" + ], + "properties": { + "path": { + "description": "FS scope path.", + "type": "string" + } + } + } + ] + } + } + } + }, + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + } + } + }, + { + "if": { + "properties": { + "identifier": { + "anyOf": [ + { + "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", + "type": "string", + "const": "http:default" + }, + { + "description": "Enables the fetch command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch" + }, + { + "description": "Enables the fetch_cancel command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-cancel" + }, + { + "description": "Enables the fetch_read_body command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-read-body" + }, + { + "description": "Enables the fetch_send command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-send" + }, + { + "description": "Denies the fetch command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch" + }, + { + "description": "Denies the fetch_cancel command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-cancel" + }, + { + "description": "Denies the fetch_read_body command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-read-body" + }, + { + "description": "Denies the fetch_send command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-send" + } + ] + } + } + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "HttpScopeEntry", + "description": "HTTP scope entry.", + "anyOf": [ + { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + }, + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } + } + ] + } + }, + "deny": { + "items": { + "title": "HttpScopeEntry", + "description": "HTTP scope entry.", + "anyOf": [ + { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + }, + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } + } + ] + } + } + } + }, + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + } + } + }, + { + "if": { + "properties": { + "identifier": { + "anyOf": [ + { + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", + "type": "string", + "const": "shell:default" + }, + { + "description": "Enables the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-execute" + }, + { + "description": "Enables the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-kill" + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-open" + }, + { + "description": "Enables the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-spawn" + }, + { + "description": "Enables the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-stdin-write" + }, + { + "description": "Denies the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-execute" + }, + { + "description": "Denies the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-kill" + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-open" + }, + { + "description": "Denies the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-spawn" + }, + { + "description": "Denies the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-stdin-write" + } + ] + } + } + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "ShellScopeEntry", + "description": "Shell scope entry.", + "anyOf": [ + { + "type": "object", + "required": [ + "cmd", + "name" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "cmd": { + "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`, `$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" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "name", + "sidecar" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "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" + } + }, + "additionalProperties": false + } + ] + } + }, + "deny": { + "items": { + "title": "ShellScopeEntry", + "description": "Shell scope entry.", + "anyOf": [ + { + "type": "object", + "required": [ + "cmd", + "name" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "cmd": { + "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`, `$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" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "name", + "sidecar" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "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" + } + }, + "additionalProperties": false + } + ] + } + } + } + }, + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + } + } + }, + { + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + "allow": { + "description": "Data that defines what is allowed by the scope.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + }, + "deny": { + "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + } + } + } + ], + "required": [ + "identifier" + ] + } + ] + }, + "Identifier": { + "description": "Permission identifier", + "oneOf": [ + { + "description": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n", + "type": "string", + "const": "clipboard-manager:default" + }, + { + "description": "Enables the clear command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:allow-clear" + }, + { + "description": "Enables the read_image command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:allow-read-image" + }, + { + "description": "Enables the read_text command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:allow-read-text" + }, + { + "description": "Enables the write_html command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:allow-write-html" + }, + { + "description": "Enables the write_image command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:allow-write-image" + }, + { + "description": "Enables the write_text command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:allow-write-text" + }, + { + "description": "Denies the clear command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:deny-clear" + }, + { + "description": "Denies the read_image command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:deny-read-image" + }, + { + "description": "Denies the read_text command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:deny-read-text" + }, + { + "description": "Denies the write_html command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:deny-write-html" + }, + { + "description": "Denies the write_image command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:deny-write-image" + }, + { + "description": "Denies the write_text command without any pre-configured scope.", + "type": "string", + "const": "clipboard-manager:deny-write-text" + }, + { + "description": "Default core plugins set which includes:\n- 'core:path:default'\n- 'core:event:default'\n- 'core:window:default'\n- 'core:webview:default'\n- 'core:app:default'\n- 'core:image:default'\n- 'core:resources:default'\n- 'core:menu:default'\n- 'core:tray:default'\n", + "type": "string", + "const": "core:default" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:app:default" + }, + { + "description": "Enables the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-hide" + }, + { + "description": "Enables the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-show" + }, + { + "description": "Enables the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-default-window-icon" + }, + { + "description": "Enables the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-name" + }, + { + "description": "Enables the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-app-theme" + }, + { + "description": "Enables the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-tauri-version" + }, + { + "description": "Enables the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-version" + }, + { + "description": "Denies the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-hide" + }, + { + "description": "Denies the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-show" + }, + { + "description": "Denies the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-default-window-icon" + }, + { + "description": "Denies the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-name" + }, + { + "description": "Denies the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-app-theme" + }, + { + "description": "Denies the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-tauri-version" + }, + { + "description": "Denies the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-version" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:event:default" + }, + { + "description": "Enables the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit" + }, + { + "description": "Enables the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit-to" + }, + { + "description": "Enables the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-listen" + }, + { + "description": "Enables the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-unlisten" + }, + { + "description": "Denies the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit" + }, + { + "description": "Denies the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit-to" + }, + { + "description": "Denies the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-listen" + }, + { + "description": "Denies the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-unlisten" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:image:default" + }, + { + "description": "Enables the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-bytes" + }, + { + "description": "Enables the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-path" + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-new" + }, + { + "description": "Enables the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-rgba" + }, + { + "description": "Enables the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-size" + }, + { + "description": "Denies the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-bytes" + }, + { + "description": "Denies the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-path" + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-new" + }, + { + "description": "Denies the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-rgba" + }, + { + "description": "Denies the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-size" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:menu:default" + }, + { + "description": "Enables the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-append" + }, + { + "description": "Enables the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-create-default" + }, + { + "description": "Enables the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-get" + }, + { + "description": "Enables the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-insert" + }, + { + "description": "Enables the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-checked" + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-enabled" + }, + { + "description": "Enables the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-items" + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-new" + }, + { + "description": "Enables the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-popup" + }, + { + "description": "Enables the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-prepend" + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove" + }, + { + "description": "Enables the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove-at" + }, + { + "description": "Enables the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-accelerator" + }, + { + "description": "Enables the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-app-menu" + }, + { + "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-help-menu-for-nsapp" + }, + { + "description": "Enables the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-window-menu" + }, + { + "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-windows-menu-for-nsapp" + }, + { + "description": "Enables the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-checked" + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-enabled" + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-icon" + }, + { + "description": "Enables the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-text" + }, + { + "description": "Enables the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-text" + }, + { + "description": "Denies the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-append" + }, + { + "description": "Denies the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-create-default" + }, + { + "description": "Denies the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-get" + }, + { + "description": "Denies the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-insert" + }, + { + "description": "Denies the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-checked" + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-enabled" + }, + { + "description": "Denies the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-items" + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-new" + }, + { + "description": "Denies the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-popup" + }, + { + "description": "Denies the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-prepend" + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove" + }, + { + "description": "Denies the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove-at" + }, + { + "description": "Denies the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-accelerator" + }, + { + "description": "Denies the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-app-menu" + }, + { + "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-help-menu-for-nsapp" + }, + { + "description": "Denies the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-window-menu" + }, + { + "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-windows-menu-for-nsapp" + }, + { + "description": "Denies the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-checked" + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-enabled" + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-icon" + }, + { + "description": "Denies the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-text" + }, + { + "description": "Denies the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-text" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:path:default" + }, + { + "description": "Enables the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-basename" + }, + { + "description": "Enables the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-dirname" + }, + { + "description": "Enables the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-extname" + }, + { + "description": "Enables the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-is-absolute" + }, + { + "description": "Enables the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-join" + }, + { + "description": "Enables the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-normalize" + }, + { + "description": "Enables the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve" + }, + { + "description": "Enables the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve-directory" + }, + { + "description": "Denies the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-basename" + }, + { + "description": "Denies the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-dirname" + }, + { + "description": "Denies the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-extname" + }, + { + "description": "Denies the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-is-absolute" + }, + { + "description": "Denies the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-join" + }, + { + "description": "Denies the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-normalize" + }, + { + "description": "Denies the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve" + }, + { + "description": "Denies the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve-directory" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:resources:default" + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:allow-close" + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:deny-close" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:tray:default" + }, + { + "description": "Enables the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-get-by-id" + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-new" + }, + { + "description": "Enables the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-remove-by-id" + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon" + }, + { + "description": "Enables the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon-as-template" + }, + { + "description": "Enables the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-menu" + }, + { + "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-show-menu-on-left-click" + }, + { + "description": "Enables the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-temp-dir-path" + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-title" + }, + { + "description": "Enables the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-tooltip" + }, + { + "description": "Enables the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-visible" + }, + { + "description": "Denies the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-get-by-id" + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-new" + }, + { + "description": "Denies the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-remove-by-id" + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon" + }, + { + "description": "Denies the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon-as-template" + }, + { + "description": "Denies the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-menu" + }, + { + "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-show-menu-on-left-click" + }, + { + "description": "Denies the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-temp-dir-path" + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-title" + }, + { + "description": "Denies the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-tooltip" + }, + { + "description": "Denies the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-visible" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:webview:default" + }, + { + "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-clear-all-browsing-data" + }, + { + "description": "Enables the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview" + }, + { + "description": "Enables the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview-window" + }, + { + "description": "Enables the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-get-all-webviews" + }, + { + "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-internal-toggle-devtools" + }, + { + "description": "Enables the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-print" + }, + { + "description": "Enables the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-reparent" + }, + { + "description": "Enables the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-focus" + }, + { + "description": "Enables the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-position" + }, + { + "description": "Enables the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-size" + }, + { + "description": "Enables the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-zoom" + }, + { + "description": "Enables the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-close" + }, + { + "description": "Enables the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-hide" + }, + { + "description": "Enables the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-position" + }, + { + "description": "Enables the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-show" + }, + { + "description": "Enables the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-size" + }, + { + "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-clear-all-browsing-data" + }, + { + "description": "Denies the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview" + }, + { + "description": "Denies the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview-window" + }, + { + "description": "Denies the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-get-all-webviews" + }, + { + "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-internal-toggle-devtools" + }, + { + "description": "Denies the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-print" + }, + { + "description": "Denies the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-reparent" + }, + { + "description": "Denies the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-focus" + }, + { + "description": "Denies the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-position" + }, + { + "description": "Denies the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-size" + }, + { + "description": "Denies the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-zoom" + }, + { + "description": "Denies the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-close" + }, + { + "description": "Denies the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-hide" + }, + { + "description": "Denies the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-position" + }, + { + "description": "Denies the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-show" + }, + { + "description": "Denies the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-size" + }, + { + "description": "Default permissions for the plugin.", + "type": "string", + "const": "core:window:default" + }, + { + "description": "Enables the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-available-monitors" + }, + { + "description": "Enables the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-center" + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-close" + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-create" + }, + { + "description": "Enables the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-current-monitor" + }, + { + "description": "Enables the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-cursor-position" + }, + { + "description": "Enables the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-destroy" + }, + { + "description": "Enables the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-get-all-windows" + }, + { + "description": "Enables the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-hide" + }, + { + "description": "Enables the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-position" + }, + { + "description": "Enables the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-size" + }, + { + "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-internal-toggle-maximize" + }, + { + "description": "Enables the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-closable" + }, + { + "description": "Enables the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-decorated" + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-enabled" + }, + { + "description": "Enables the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-focused" + }, + { + "description": "Enables the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-fullscreen" + }, + { + "description": "Enables the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximizable" + }, + { + "description": "Enables the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximized" + }, + { + "description": "Enables the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimizable" + }, + { + "description": "Enables the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimized" + }, + { + "description": "Enables the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-resizable" + }, + { + "description": "Enables the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-visible" + }, + { + "description": "Enables the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-maximize" + }, + { + "description": "Enables the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-minimize" + }, + { + "description": "Enables the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-monitor-from-point" + }, + { + "description": "Enables the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-position" + }, + { + "description": "Enables the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-size" + }, + { + "description": "Enables the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-primary-monitor" + }, + { + "description": "Enables the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-request-user-attention" + }, + { + "description": "Enables the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-scale-factor" + }, + { + "description": "Enables the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-bottom" + }, + { + "description": "Enables the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-top" + }, + { + "description": "Enables the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-closable" + }, + { + "description": "Enables the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-content-protected" + }, + { + "description": "Enables the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-grab" + }, + { + "description": "Enables the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-icon" + }, + { + "description": "Enables the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-position" + }, + { + "description": "Enables the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-visible" + }, + { + "description": "Enables the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-decorations" + }, + { + "description": "Enables the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-effects" + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-enabled" + }, + { + "description": "Enables the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focus" + }, + { + "description": "Enables the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-fullscreen" + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-icon" + }, + { + "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-ignore-cursor-events" + }, + { + "description": "Enables the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-max-size" + }, + { + "description": "Enables the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-maximizable" + }, + { + "description": "Enables the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-min-size" + }, + { + "description": "Enables the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-minimizable" + }, + { + "description": "Enables the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-position" + }, + { + "description": "Enables the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-progress-bar" + }, + { + "description": "Enables the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-resizable" + }, + { + "description": "Enables the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-shadow" + }, + { + "description": "Enables the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size" + }, + { + "description": "Enables the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size-constraints" + }, + { + "description": "Enables the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-skip-taskbar" + }, + { + "description": "Enables the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-theme" + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title" + }, + { + "description": "Enables the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title-bar-style" + }, + { + "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-visible-on-all-workspaces" + }, + { + "description": "Enables the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-show" + }, + { + "description": "Enables the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-dragging" + }, + { + "description": "Enables the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-resize-dragging" + }, + { + "description": "Enables the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-theme" + }, + { + "description": "Enables the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-title" + }, + { + "description": "Enables the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-toggle-maximize" + }, + { + "description": "Enables the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unmaximize" + }, + { + "description": "Enables the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unminimize" + }, + { + "description": "Denies the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-available-monitors" + }, + { + "description": "Denies the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-center" + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-close" + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-create" + }, + { + "description": "Denies the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-current-monitor" + }, + { + "description": "Denies the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-cursor-position" + }, + { + "description": "Denies the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-destroy" + }, + { + "description": "Denies the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-get-all-windows" + }, + { + "description": "Denies the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-hide" + }, + { + "description": "Denies the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-position" + }, + { + "description": "Denies the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-size" + }, + { + "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-internal-toggle-maximize" + }, + { + "description": "Denies the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-closable" + }, + { + "description": "Denies the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-decorated" + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-enabled" + }, + { + "description": "Denies the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-focused" + }, + { + "description": "Denies the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-fullscreen" + }, + { + "description": "Denies the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximizable" + }, + { + "description": "Denies the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximized" + }, + { + "description": "Denies the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimizable" + }, + { + "description": "Denies the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimized" + }, + { + "description": "Denies the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-resizable" + }, + { + "description": "Denies the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-visible" + }, + { + "description": "Denies the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-maximize" + }, + { + "description": "Denies the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-minimize" + }, + { + "description": "Denies the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-monitor-from-point" + }, + { + "description": "Denies the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-position" + }, + { + "description": "Denies the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-size" + }, + { + "description": "Denies the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-primary-monitor" + }, + { + "description": "Denies the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-request-user-attention" + }, + { + "description": "Denies the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-scale-factor" + }, + { + "description": "Denies the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-bottom" + }, + { + "description": "Denies the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-top" + }, + { + "description": "Denies the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-closable" + }, + { + "description": "Denies the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-content-protected" + }, + { + "description": "Denies the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-grab" + }, + { + "description": "Denies the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-icon" + }, + { + "description": "Denies the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-position" + }, + { + "description": "Denies the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-visible" + }, + { + "description": "Denies the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-decorations" + }, + { + "description": "Denies the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-effects" + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-enabled" + }, + { + "description": "Denies the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focus" + }, + { + "description": "Denies the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-fullscreen" + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-icon" + }, + { + "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-ignore-cursor-events" + }, + { + "description": "Denies the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-max-size" + }, + { + "description": "Denies the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-maximizable" + }, + { + "description": "Denies the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-min-size" + }, + { + "description": "Denies the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-minimizable" + }, + { + "description": "Denies the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-position" + }, + { + "description": "Denies the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-progress-bar" + }, + { + "description": "Denies the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-resizable" + }, + { + "description": "Denies the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-shadow" + }, + { + "description": "Denies the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size" + }, + { + "description": "Denies the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size-constraints" + }, + { + "description": "Denies the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-skip-taskbar" + }, + { + "description": "Denies the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-theme" + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title" + }, + { + "description": "Denies the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title-bar-style" + }, + { + "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-visible-on-all-workspaces" + }, + { + "description": "Denies the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-show" + }, + { + "description": "Denies the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-dragging" + }, + { + "description": "Denies the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-resize-dragging" + }, + { + "description": "Denies the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-theme" + }, + { + "description": "Denies the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-title" + }, + { + "description": "Denies the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-toggle-maximize" + }, + { + "description": "Denies the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unmaximize" + }, + { + "description": "Denies the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unminimize" + }, + { + "description": "This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n", + "type": "string", + "const": "dialog:default" + }, + { + "description": "Enables the ask command without any pre-configured scope.", + "type": "string", + "const": "dialog:allow-ask" + }, + { + "description": "Enables the confirm command without any pre-configured scope.", + "type": "string", + "const": "dialog:allow-confirm" + }, + { + "description": "Enables the message command without any pre-configured scope.", + "type": "string", + "const": "dialog:allow-message" + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "dialog:allow-open" + }, + { + "description": "Enables the save command without any pre-configured scope.", + "type": "string", + "const": "dialog:allow-save" + }, + { + "description": "Denies the ask command without any pre-configured scope.", + "type": "string", + "const": "dialog:deny-ask" + }, + { + "description": "Denies the confirm command without any pre-configured scope.", + "type": "string", + "const": "dialog:deny-confirm" + }, + { + "description": "Denies the message command without any pre-configured scope.", + "type": "string", + "const": "dialog:deny-message" + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "dialog:deny-open" + }, + { + "description": "Denies the save command without any pre-configured scope.", + "type": "string", + "const": "dialog:deny-save" + }, + { + "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", + "type": "string", + "const": "fs:default" + }, + { + "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", + "type": "string", + "const": "fs:allow-app-meta" + }, + { + "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", + "type": "string", + "const": "fs:allow-app-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the application folders.", + "type": "string", + "const": "fs:allow-app-read" + }, + { + "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", + "type": "string", + "const": "fs:allow-app-read-recursive" + }, + { + "description": "This allows non-recursive write access to the application folders.", + "type": "string", + "const": "fs:allow-app-write" + }, + { + "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", + "type": "string", + "const": "fs:allow-app-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appcache-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appcache-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPCACHE` folder.", + "type": "string", + "const": "fs:allow-appcache-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appcache-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPCACHE` folder.", + "type": "string", + "const": "fs:allow-appcache-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appcache-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appconfig-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appconfig-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:allow-appconfig-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appconfig-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:allow-appconfig-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appconfig-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appdata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appdata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPDATA` folder.", + "type": "string", + "const": "fs:allow-appdata-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appdata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPDATA` folder.", + "type": "string", + "const": "fs:allow-appdata-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appdata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applocaldata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applocaldata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:allow-applocaldata-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applocaldata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:allow-applocaldata-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applocaldata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applog-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applog-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPLOG` folder.", + "type": "string", + "const": "fs:allow-applog-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applog-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPLOG` folder.", + "type": "string", + "const": "fs:allow-applog-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applog-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-audio-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-audio-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$AUDIO` folder.", + "type": "string", + "const": "fs:allow-audio-read" + }, + { + "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-audio-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$AUDIO` folder.", + "type": "string", + "const": "fs:allow-audio-write" + }, + { + "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-audio-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-cache-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-cache-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$CACHE` folder.", + "type": "string", + "const": "fs:allow-cache-read" + }, + { + "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-cache-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$CACHE` folder.", + "type": "string", + "const": "fs:allow-cache-write" + }, + { + "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-cache-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-config-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-config-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$CONFIG` folder.", + "type": "string", + "const": "fs:allow-config-read" + }, + { + "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-config-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$CONFIG` folder.", + "type": "string", + "const": "fs:allow-config-write" + }, + { + "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-config-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-data-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-data-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DATA` folder.", + "type": "string", + "const": "fs:allow-data-read" + }, + { + "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-data-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DATA` folder.", + "type": "string", + "const": "fs:allow-data-write" + }, + { + "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-data-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-desktop-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-desktop-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DESKTOP` folder.", + "type": "string", + "const": "fs:allow-desktop-read" + }, + { + "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-desktop-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DESKTOP` folder.", + "type": "string", + "const": "fs:allow-desktop-write" + }, + { + "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-desktop-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-document-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-document-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:allow-document-read" + }, + { + "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-document-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:allow-document-write" + }, + { + "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-document-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-download-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-download-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:allow-download-read" + }, + { + "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-download-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:allow-download-write" + }, + { + "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-download-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-exe-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-exe-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$EXE` folder.", + "type": "string", + "const": "fs:allow-exe-read" + }, + { + "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-exe-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$EXE` folder.", + "type": "string", + "const": "fs:allow-exe-write" + }, + { + "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-exe-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-font-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-font-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$FONT` folder.", + "type": "string", + "const": "fs:allow-font-read" + }, + { + "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-font-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$FONT` folder.", + "type": "string", + "const": "fs:allow-font-write" + }, + { + "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-font-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-home-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-home-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$HOME` folder.", + "type": "string", + "const": "fs:allow-home-read" + }, + { + "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-home-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$HOME` folder.", + "type": "string", + "const": "fs:allow-home-write" + }, + { + "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-home-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-localdata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-localdata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:allow-localdata-read" + }, + { + "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-localdata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:allow-localdata-write" + }, + { + "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-localdata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-log-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-log-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$LOG` folder.", + "type": "string", + "const": "fs:allow-log-read" + }, + { + "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-log-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$LOG` folder.", + "type": "string", + "const": "fs:allow-log-write" + }, + { + "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-log-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-picture-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-picture-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$PICTURE` folder.", + "type": "string", + "const": "fs:allow-picture-read" + }, + { + "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-picture-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$PICTURE` folder.", + "type": "string", + "const": "fs:allow-picture-write" + }, + { + "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-picture-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-public-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-public-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$PUBLIC` folder.", + "type": "string", + "const": "fs:allow-public-read" + }, + { + "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-public-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$PUBLIC` folder.", + "type": "string", + "const": "fs:allow-public-write" + }, + { + "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-public-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-resource-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-resource-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$RESOURCE` folder.", + "type": "string", + "const": "fs:allow-resource-read" + }, + { + "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-resource-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$RESOURCE` folder.", + "type": "string", + "const": "fs:allow-resource-write" + }, + { + "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-resource-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-runtime-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-runtime-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$RUNTIME` folder.", + "type": "string", + "const": "fs:allow-runtime-read" + }, + { + "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-runtime-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$RUNTIME` folder.", + "type": "string", + "const": "fs:allow-runtime-write" + }, + { + "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-runtime-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-temp-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-temp-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$TEMP` folder.", + "type": "string", + "const": "fs:allow-temp-read" + }, + { + "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-temp-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$TEMP` folder.", + "type": "string", + "const": "fs:allow-temp-write" + }, + { + "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-temp-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-template-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-template-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:allow-template-read" + }, + { + "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-template-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:allow-template-write" + }, + { + "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-template-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-video-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-video-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$VIDEO` folder.", + "type": "string", + "const": "fs:allow-video-read" + }, + { + "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-video-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$VIDEO` folder.", + "type": "string", + "const": "fs:allow-video-write" + }, + { + "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-video-write-recursive" + }, + { + "description": "This denies access to dangerous Tauri relevant files and folders by default.", + "type": "string", + "const": "fs:deny-default" + }, + { + "description": "Enables the copy_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-copy-file" + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-create" + }, + { + "description": "Enables the exists command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-exists" + }, + { + "description": "Enables the fstat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-fstat" + }, + { + "description": "Enables the ftruncate command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-ftruncate" + }, + { + "description": "Enables the lstat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-lstat" + }, + { + "description": "Enables the mkdir command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-mkdir" + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-open" + }, + { + "description": "Enables the read command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read" + }, + { + "description": "Enables the read_dir command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-dir" + }, + { + "description": "Enables the read_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-file" + }, + { + "description": "Enables the read_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file" + }, + { + "description": "Enables the read_text_file_lines command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file-lines" + }, + { + "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file-lines-next" + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-remove" + }, + { + "description": "Enables the rename command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-rename" + }, + { + "description": "Enables the seek command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-seek" + }, + { + "description": "Enables the stat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-stat" + }, + { + "description": "Enables the truncate command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-truncate" + }, + { + "description": "Enables the unwatch command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-unwatch" + }, + { + "description": "Enables the watch command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-watch" + }, + { + "description": "Enables the write command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write" + }, + { + "description": "Enables the write_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write-file" + }, + { + "description": "Enables the write_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write-text-file" + }, + { + "description": "This permissions allows to create the application specific directories.\n", + "type": "string", + "const": "fs:create-app-specific-dirs" + }, + { + "description": "Denies the copy_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-copy-file" + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-create" + }, + { + "description": "Denies the exists command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-exists" + }, + { + "description": "Denies the fstat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-fstat" + }, + { + "description": "Denies the ftruncate command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-ftruncate" + }, + { + "description": "Denies the lstat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-lstat" + }, + { + "description": "Denies the mkdir command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-mkdir" + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-open" + }, + { + "description": "Denies the read command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read" + }, + { + "description": "Denies the read_dir command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-dir" + }, + { + "description": "Denies the read_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-file" + }, + { + "description": "Denies the read_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file" + }, + { + "description": "Denies the read_text_file_lines command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file-lines" + }, + { + "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file-lines-next" + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-remove" + }, + { + "description": "Denies the rename command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-rename" + }, + { + "description": "Denies the seek command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-seek" + }, + { + "description": "Denies the stat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-stat" + }, + { + "description": "Denies the truncate command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-truncate" + }, + { + "description": "Denies the unwatch command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-unwatch" + }, + { + "description": "Denies the watch command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-watch" + }, + { + "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "type": "string", + "const": "fs:deny-webview-data-linux" + }, + { + "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "type": "string", + "const": "fs:deny-webview-data-windows" + }, + { + "description": "Denies the write command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write" + }, + { + "description": "Denies the write_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write-file" + }, + { + "description": "Denies the write_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write-text-file" + }, + { + "description": "This enables all read related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-all" + }, + { + "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", + "type": "string", + "const": "fs:read-app-specific-dirs-recursive" + }, + { + "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-dirs" + }, + { + "description": "This enables file read related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-files" + }, + { + "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-meta" + }, + { + "description": "An empty permission you can use to modify the global scope.", + "type": "string", + "const": "fs:scope" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the application folders.", + "type": "string", + "const": "fs:scope-app" + }, + { + "description": "This scope permits to list all files and folders in the application directories.", + "type": "string", + "const": "fs:scope-app-index" + }, + { + "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", + "type": "string", + "const": "fs:scope-app-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", + "type": "string", + "const": "fs:scope-appcache" + }, + { + "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", + "type": "string", + "const": "fs:scope-appcache-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appcache-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:scope-appconfig" + }, + { + "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", + "type": "string", + "const": "fs:scope-appconfig-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appconfig-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", + "type": "string", + "const": "fs:scope-appdata" + }, + { + "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", + "type": "string", + "const": "fs:scope-appdata-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appdata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:scope-applocaldata" + }, + { + "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", + "type": "string", + "const": "fs:scope-applocaldata-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-applocaldata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", + "type": "string", + "const": "fs:scope-applog" + }, + { + "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", + "type": "string", + "const": "fs:scope-applog-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-applog-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", + "type": "string", + "const": "fs:scope-audio" + }, + { + "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", + "type": "string", + "const": "fs:scope-audio-index" + }, + { + "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-audio-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", + "type": "string", + "const": "fs:scope-cache" + }, + { + "description": "This scope permits to list all files and folders in the `$CACHE`folder.", + "type": "string", + "const": "fs:scope-cache-index" + }, + { + "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-cache-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", + "type": "string", + "const": "fs:scope-config" + }, + { + "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", + "type": "string", + "const": "fs:scope-config-index" + }, + { + "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-config-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", + "type": "string", + "const": "fs:scope-data" + }, + { + "description": "This scope permits to list all files and folders in the `$DATA`folder.", + "type": "string", + "const": "fs:scope-data-index" + }, + { + "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-data-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", + "type": "string", + "const": "fs:scope-desktop" + }, + { + "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", + "type": "string", + "const": "fs:scope-desktop-index" + }, + { + "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-desktop-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:scope-document" + }, + { + "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", + "type": "string", + "const": "fs:scope-document-index" + }, + { + "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-document-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:scope-download" + }, + { + "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", + "type": "string", + "const": "fs:scope-download-index" + }, + { + "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-download-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", + "type": "string", + "const": "fs:scope-exe" + }, + { + "description": "This scope permits to list all files and folders in the `$EXE`folder.", + "type": "string", + "const": "fs:scope-exe-index" + }, + { + "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-exe-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", + "type": "string", + "const": "fs:scope-font" + }, + { + "description": "This scope permits to list all files and folders in the `$FONT`folder.", + "type": "string", + "const": "fs:scope-font-index" + }, + { + "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-font-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", + "type": "string", + "const": "fs:scope-home" + }, + { + "description": "This scope permits to list all files and folders in the `$HOME`folder.", + "type": "string", + "const": "fs:scope-home-index" + }, + { + "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-home-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:scope-localdata" + }, + { + "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", + "type": "string", + "const": "fs:scope-localdata-index" + }, + { + "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-localdata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", + "type": "string", + "const": "fs:scope-log" + }, + { + "description": "This scope permits to list all files and folders in the `$LOG`folder.", + "type": "string", + "const": "fs:scope-log-index" + }, + { + "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-log-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", + "type": "string", + "const": "fs:scope-picture" + }, + { + "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", + "type": "string", + "const": "fs:scope-picture-index" + }, + { + "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-picture-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", + "type": "string", + "const": "fs:scope-public" + }, + { + "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", + "type": "string", + "const": "fs:scope-public-index" + }, + { + "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-public-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", + "type": "string", + "const": "fs:scope-resource" + }, + { + "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", + "type": "string", + "const": "fs:scope-resource-index" + }, + { + "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-resource-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", + "type": "string", + "const": "fs:scope-runtime" + }, + { + "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", + "type": "string", + "const": "fs:scope-runtime-index" + }, + { + "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-runtime-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", + "type": "string", + "const": "fs:scope-temp" + }, + { + "description": "This scope permits to list all files and folders in the `$TEMP`folder.", + "type": "string", + "const": "fs:scope-temp-index" + }, + { + "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-temp-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:scope-template" + }, + { + "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", + "type": "string", + "const": "fs:scope-template-index" + }, + { + "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-template-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", + "type": "string", + "const": "fs:scope-video" + }, + { + "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", + "type": "string", + "const": "fs:scope-video-index" + }, + { + "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-video-recursive" + }, + { + "description": "This enables all write related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:write-all" + }, + { + "description": "This enables all file write related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:write-files" + }, + { + "description": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n", + "type": "string", + "const": "global-shortcut:default" + }, + { + "description": "Enables the is_registered command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:allow-is-registered" + }, + { + "description": "Enables the register command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:allow-register" + }, + { + "description": "Enables the register_all command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:allow-register-all" + }, + { + "description": "Enables the unregister command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:allow-unregister" + }, + { + "description": "Enables the unregister_all command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:allow-unregister-all" + }, + { + "description": "Denies the is_registered command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:deny-is-registered" + }, + { + "description": "Denies the register command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:deny-register" + }, + { + "description": "Denies the register_all command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:deny-register-all" + }, + { + "description": "Denies the unregister command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:deny-unregister" + }, + { + "description": "Denies the unregister_all command without any pre-configured scope.", + "type": "string", + "const": "global-shortcut:deny-unregister-all" + }, + { + "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", + "type": "string", + "const": "http:default" + }, + { + "description": "Enables the fetch command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch" + }, + { + "description": "Enables the fetch_cancel command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-cancel" + }, + { + "description": "Enables the fetch_read_body command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-read-body" + }, + { + "description": "Enables the fetch_send command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-send" + }, + { + "description": "Denies the fetch command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch" + }, + { + "description": "Denies the fetch_cancel command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-cancel" + }, + { + "description": "Denies the fetch_read_body command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-read-body" + }, + { + "description": "Denies the fetch_send command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-send" + }, + { + "description": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n", + "type": "string", + "const": "notification:default" + }, + { + "description": "Enables the batch command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-batch" + }, + { + "description": "Enables the cancel command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-cancel" + }, + { + "description": "Enables the check_permissions command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-check-permissions" + }, + { + "description": "Enables the create_channel command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-create-channel" + }, + { + "description": "Enables the delete_channel command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-delete-channel" + }, + { + "description": "Enables the get_active command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-get-active" + }, + { + "description": "Enables the get_pending command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-get-pending" + }, + { + "description": "Enables the is_permission_granted command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-is-permission-granted" + }, + { + "description": "Enables the list_channels command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-list-channels" + }, + { + "description": "Enables the notify command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-notify" + }, + { + "description": "Enables the permission_state command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-permission-state" + }, + { + "description": "Enables the register_action_types command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-register-action-types" + }, + { + "description": "Enables the register_listener command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-register-listener" + }, + { + "description": "Enables the remove_active command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-remove-active" + }, + { + "description": "Enables the request_permission command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-request-permission" + }, + { + "description": "Enables the show command without any pre-configured scope.", + "type": "string", + "const": "notification:allow-show" + }, + { + "description": "Denies the batch command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-batch" + }, + { + "description": "Denies the cancel command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-cancel" + }, + { + "description": "Denies the check_permissions command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-check-permissions" + }, + { + "description": "Denies the create_channel command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-create-channel" + }, + { + "description": "Denies the delete_channel command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-delete-channel" + }, + { + "description": "Denies the get_active command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-get-active" + }, + { + "description": "Denies the get_pending command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-get-pending" + }, + { + "description": "Denies the is_permission_granted command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-is-permission-granted" + }, + { + "description": "Denies the list_channels command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-list-channels" + }, + { + "description": "Denies the notify command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-notify" + }, + { + "description": "Denies the permission_state command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-permission-state" + }, + { + "description": "Denies the register_action_types command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-register-action-types" + }, + { + "description": "Denies the register_listener command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-register-listener" + }, + { + "description": "Denies the remove_active command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-remove-active" + }, + { + "description": "Denies the request_permission command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-request-permission" + }, + { + "description": "Denies the show command without any pre-configured scope.", + "type": "string", + "const": "notification:deny-show" + }, + { + "description": "This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n", + "type": "string", + "const": "os:default" + }, + { + "description": "Enables the arch command without any pre-configured scope.", + "type": "string", + "const": "os:allow-arch" + }, + { + "description": "Enables the exe_extension command without any pre-configured scope.", + "type": "string", + "const": "os:allow-exe-extension" + }, + { + "description": "Enables the family command without any pre-configured scope.", + "type": "string", + "const": "os:allow-family" + }, + { + "description": "Enables the hostname command without any pre-configured scope.", + "type": "string", + "const": "os:allow-hostname" + }, + { + "description": "Enables the locale command without any pre-configured scope.", + "type": "string", + "const": "os:allow-locale" + }, + { + "description": "Enables the os_type command without any pre-configured scope.", + "type": "string", + "const": "os:allow-os-type" + }, + { + "description": "Enables the platform command without any pre-configured scope.", + "type": "string", + "const": "os:allow-platform" + }, + { + "description": "Enables the version command without any pre-configured scope.", + "type": "string", + "const": "os:allow-version" + }, + { + "description": "Denies the arch command without any pre-configured scope.", + "type": "string", + "const": "os:deny-arch" + }, + { + "description": "Denies the exe_extension command without any pre-configured scope.", + "type": "string", + "const": "os:deny-exe-extension" + }, + { + "description": "Denies the family command without any pre-configured scope.", + "type": "string", + "const": "os:deny-family" + }, + { + "description": "Denies the hostname command without any pre-configured scope.", + "type": "string", + "const": "os:deny-hostname" + }, + { + "description": "Denies the locale command without any pre-configured scope.", + "type": "string", + "const": "os:deny-locale" + }, + { + "description": "Denies the os_type command without any pre-configured scope.", + "type": "string", + "const": "os:deny-os-type" + }, + { + "description": "Denies the platform command without any pre-configured scope.", + "type": "string", + "const": "os:deny-platform" + }, + { + "description": "Denies the version command without any pre-configured scope.", + "type": "string", + "const": "os:deny-version" + }, + { + "description": "This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n", + "type": "string", + "const": "process:default" + }, + { + "description": "Enables the exit command without any pre-configured scope.", + "type": "string", + "const": "process:allow-exit" + }, + { + "description": "Enables the restart command without any pre-configured scope.", + "type": "string", + "const": "process:allow-restart" + }, + { + "description": "Denies the exit command without any pre-configured scope.", + "type": "string", + "const": "process:deny-exit" + }, + { + "description": "Denies the restart command without any pre-configured scope.", + "type": "string", + "const": "process:deny-restart" + }, + { + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", + "type": "string", + "const": "shell:default" + }, + { + "description": "Enables the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-execute" + }, + { + "description": "Enables the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-kill" + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-open" + }, + { + "description": "Enables the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-spawn" + }, + { + "description": "Enables the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-stdin-write" + }, + { + "description": "Denies the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-execute" + }, + { + "description": "Denies the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-kill" + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-open" + }, + { + "description": "Denies the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-spawn" + }, + { + "description": "Denies the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-stdin-write" + } + ] + }, + "Value": { + "description": "All supported ACL values.", + "anyOf": [ + { + "description": "Represents a null JSON value.", + "type": "null" + }, + { + "description": "Represents a [`bool`].", + "type": "boolean" + }, + { + "description": "Represents a valid ACL [`Number`].", + "allOf": [ + { + "$ref": "#/definitions/Number" + } + ] + }, + { + "description": "Represents a [`String`].", + "type": "string" + }, + { + "description": "Represents a list of other [`Value`]s.", + "type": "array", + "items": { + "$ref": "#/definitions/Value" + } + }, + { + "description": "Represents a map of [`String`] keys to [`Value`]s.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Value" + } + } + ] + }, + "Number": { + "description": "A valid ACL number.", + "anyOf": [ + { + "description": "Represents an [`i64`].", + "type": "integer", + "format": "int64" + }, + { + "description": "Represents a [`f64`].", + "type": "number", + "format": "double" + } + ] + }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, + "ShellScopeEntryAllowedArg": { + "description": "A command argument allowed to be executed by the webview API.", + "anyOf": [ + { + "description": "A non-configurable argument that is passed to the command in the order it was specified.", + "type": "string" + }, + { + "description": "A variable that is set while calling the command from the webview API.", + "type": "object", + "required": [ + "validator" + ], + "properties": { + "raw": { + "description": "Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.", + "default": false, + "type": "boolean" + }, + "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\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ", + "type": "string" + } + }, + "additionalProperties": false + } + ] + }, + "ShellScopeEntryAllowedArgs": { + "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 [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", + "anyOf": [ + { + "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", + "type": "boolean" + }, + { + "description": "A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.", + "type": "array", + "items": { + "$ref": "#/definitions/ShellScopeEntryAllowedArg" + } + } + ] + } + } +} \ No newline at end of file From 420ebfd092d33cc7c65accc753adde2b3271f38c Mon Sep 17 00:00:00 2001 From: Terren <11605395+terreng@users.noreply.github.com> Date: Sat, 26 Oct 2024 14:04:20 -0400 Subject: [PATCH 10/12] Tauri implement new language handling --- index.html | 8 ++--- src-tauri/src/main.rs | 76 ++++++++++++++++++++++++++++++++++++++----- 2 files changed, 71 insertions(+), 13 deletions(-) diff --git a/index.html b/index.html index effd0de7..3db85c5a 100644 --- a/index.html +++ b/index.html @@ -2,11 +2,11 @@ - +