From b1da210a9f5f85339f38fa7749a948c30afad290 Mon Sep 17 00:00:00 2001 From: Vomitblood Date: Tue, 22 Oct 2024 22:10:01 +0800 Subject: [PATCH] migrate to tauri 2.0 --- bun.lockb | Bin 173112 -> 369981 bytes package-lock.json | 6696 ++++++++++++++++- package.json | 11 +- src-tauri/Cargo.lock | 2530 ++++--- src-tauri/Cargo.toml | 8 +- src-tauri/capabilities/migrated.json | 77 + src-tauri/gen/schemas/acl-manifests.json | 1 + src-tauri/gen/schemas/capabilities.json | 1 + src-tauri/gen/schemas/desktop-schema.json | 4933 ++++++++++++ src-tauri/gen/schemas/linux-schema.json | 4933 ++++++++++++ src-tauri/tauri.conf.json | 116 +- src/components/Generic/Layout.tsx | 2 +- .../Settings/SettingsTabs/Background.tsx | 6 +- src/components/HeaderBar/WindowButtons.tsx | 2 +- src/lib/testing.ts | 2 +- src/lib/utils/json.ts | 2 +- src/lib/utils/toml.ts | 2 +- 17 files changed, 18156 insertions(+), 1166 deletions(-) create mode 100644 src-tauri/capabilities/migrated.json 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/linux-schema.json diff --git a/bun.lockb b/bun.lockb index 73ed7ce1b047d7771c57299f8b6cd4bf2d73fb47..d53d10b0471ce44df1ca5a498d1f220404a939ed 100755 GIT binary patch literal 369981 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%0AptpTaNhiB4;0 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

OxFS+jF8!+wvrK5uoC;mWNF$IF!# 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 diff --git a/package-lock.json b/package-lock.json index 4f7fbfa..8d2e2be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,17 +15,22 @@ "@mui/icons-material": "^5.16.6", "@mui/lab": "^5.0.0-alpha.173", "@mui/material": "^5.16.6", - "@tauri-apps/api": "^1.6.0", + "@tauri-apps/api": "^2.0.0", + "@tauri-apps/plugin-dialog": "^2.0.1", + "@tauri-apps/plugin-fs": "^2.0.1", + "@tauri-apps/plugin-notification": "^2.0.0", + "@tauri-apps/plugin-process": "^2.0.0", "jotai": "^2.9.1", "lodash": "^4.17.21", "next": "14.2.5", "react": "^18.3.1", "react-dom": "^18.3.1", "smol-toml": "^1.3.0", + "tauri": "^0.15.0", "zustand": "^4.5.4" }, "devDependencies": { - "@tauri-apps/cli": "^1.6.0", + "@tauri-apps/cli": "^2.0.4", "@types/lodash": "^4.17.7", "@types/node": "^20.14.14", "@types/react": "^18.3.3", @@ -980,7 +985,6 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -992,7 +996,6 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -1000,7 +1003,6 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -1032,6 +1034,17 @@ "dev": true, "license": "MIT" }, + "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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, "node_modules/@swc/counter": { "version": "0.1.3", "license": "Apache-2.0" @@ -1044,23 +1057,31 @@ "tslib": "^2.4.0" } }, - "node_modules/@tauri-apps/api": { - "version": "1.6.0", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">= 14.6.0", - "npm": ">= 6.6.0", - "yarn": ">= 1.19.1" + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" }, + "engines": { + "node": ">=10" + } + }, + "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": "1.6.0", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.0.4.tgz", + "integrity": "sha512-Hl9eFXz+O366+6su9PfaSzu2EJdFe1p8K8ghkWmi40dz8VmSE7vsMTaOStD0I71ckSOkh2ICDX7FQTBgjlpjWw==", "dev": true, - "license": "Apache-2.0 OR MIT", "bin": { "tauri": "tauri.js" }, @@ -1072,25 +1093,106 @@ "url": "https://opencollective.com/tauri" }, "optionalDependencies": { - "@tauri-apps/cli-darwin-arm64": "1.6.0", - "@tauri-apps/cli-darwin-x64": "1.6.0", - "@tauri-apps/cli-linux-arm-gnueabihf": "1.6.0", - "@tauri-apps/cli-linux-arm64-gnu": "1.6.0", - "@tauri-apps/cli-linux-arm64-musl": "1.6.0", - "@tauri-apps/cli-linux-x64-gnu": "1.6.0", - "@tauri-apps/cli-linux-x64-musl": "1.6.0", - "@tauri-apps/cli-win32-arm64-msvc": "1.6.0", - "@tauri-apps/cli-win32-ia32-msvc": "1.6.0", - "@tauri-apps/cli-win32-x64-msvc": "1.6.0" + "@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-linux-x64-gnu": { - "version": "1.6.0", + "node_modules/@tauri-apps/cli-darwin-arm64": { + "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" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-darwin-x64": { + "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" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { + "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" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-gnu": { + "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" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-musl": { + "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" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-gnu": { + "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" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1100,12 +1202,13 @@ } }, "node_modules/@tauri-apps/cli-linux-x64-musl": { - "version": "1.6.0", + "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" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1114,19 +1217,185 @@ "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": "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" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-x64-msvc": { + "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" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "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-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-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/tauri-inliner": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/tauri-inliner/-/tauri-inliner-1.14.1.tgz", + "integrity": "sha512-IXlPbWXpKNz0dz1fplPAetBBzKA8kUaOvrrpyJ0jvxMihI9vKHaKP4GDyF89XCi0edXKv2MM+MWaaPVcmy12Bg==", + "deprecated": "Tauri now uses a custom protocol for asset loading so this package is not used anymore.", + "dependencies": { + "ansi-escapes": "^4.3.0", + "ansi-styles": "^4.2.1", + "chalk": "^3.0.0", + "charset": "^1.0.1", + "cheerio": "^0.22.0", + "debug": "^4.1.1", + "es6-promise": "^4.2.8", + "iconv-lite": "^0.5.0", + "jschardet": "^2.1.1", + "lodash": "^4.17.15", + "mime": "^2.4.4", + "minimist": "^1.2.0", + "request": "^2.88.0", + "svgo": "^1.3.2", + "then-fs": "^2.0.0", + "uglify-js": "^3.7.4", + "update-notifier": "^4.0.0" + }, + "bin": { + "inliner": "cli/index.js" + } + }, + "node_modules/@tauri-apps/tauri-inliner/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@tauri-apps/toml": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/toml/-/toml-2.2.4.tgz", + "integrity": "sha512-NJV/pdgJObDlDWi5+MTHZ2qyNvdL0dlHqQ72nzQYXWbW1LHMPXgCJYl0pLqL1XxxLtxtInYbtVCGVAcwhGxdkw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + } + }, + "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==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "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==", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + }, "node_modules/@types/json5": { "version": "0.0.29", "dev": true, "license": "MIT" }, + "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==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/lodash": { "version": "4.17.7", "dev": true, "license": "MIT" }, + "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==" + }, "node_modules/@types/node": { "version": "20.14.14", - "dev": true, "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -1140,6 +1409,11 @@ "version": "15.7.12", "license": "MIT" }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" + }, "node_modules/@types/react": { "version": "18.3.3", "license": "MIT", @@ -1163,6 +1437,14 @@ "@types/react": "*" } }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@typescript-eslint/parser": { "version": "7.2.0", "dev": true, @@ -1299,6 +1581,12 @@ "dev": true, "license": "ISC" }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" + }, "node_modules/acorn": { "version": "8.12.1", "dev": true, @@ -1310,6 +1598,26 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "dev": true, @@ -1318,9 +1626,28 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.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==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { "version": "6.12.6", - "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -1333,9 +1660,59 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/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==" + }, + "node_modules/ansi-align/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==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1343,7 +1720,6 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1355,6 +1731,98 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "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/archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==", + "dependencies": { + "file-type": "^4.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/archive-type/node_modules/file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/are-we-there-yet/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/are-we-there-yet/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/are-we-there-yet/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/argparse": { "version": "2.0.1", "dev": true, @@ -1370,7 +1838,6 @@ }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.5", @@ -1383,6 +1850,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", + "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==" + }, "node_modules/array-includes": { "version": "3.1.8", "dev": true, @@ -1404,7 +1884,6 @@ }, "node_modules/array-union": { "version": "2.1.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1482,6 +1961,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array.prototype.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.tosorted": { "version": "1.1.4", "dev": true, @@ -1499,7 +1998,6 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.3", - "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", @@ -1518,14 +2016,55 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "engines": { + "node": ">=8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "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==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/ast-types-flow": { "version": "0.0.8", "dev": true, "license": "MIT" }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "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==", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.7", - "dev": true, "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" @@ -1537,6 +2076,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" + }, "node_modules/axe-core": { "version": "4.10.0", "dev": true, @@ -1583,12 +2135,563 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "dev": true, "license": "MIT" }, + "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==", + "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/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bin-build": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz", + "integrity": "sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==", + "dependencies": { + "decompress": "^4.0.0", + "download": "^6.2.2", + "execa": "^0.7.0", + "p-map-series": "^1.0.0", + "tempfile": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-check": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", + "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==", + "dependencies": { + "execa": "^0.7.0", + "executable": "^4.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz", + "integrity": "sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==", + "dependencies": { + "execa": "^1.0.0", + "find-versions": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-version-check": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz", + "integrity": "sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==", + "dependencies": { + "bin-version": "^3.0.0", + "semver": "^5.6.0", + "semver-truncate": "^1.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-version-check/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/bin-version/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/bin-version/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-version/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-version/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-version/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/bin-version/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bin-version/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bin-version/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==" + }, + "node_modules/bin-version/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/bin-wrapper": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz", + "integrity": "sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==", + "dependencies": { + "bin-check": "^4.1.0", + "bin-version-check": "^4.0.0", + "download": "^7.1.0", + "import-lazy": "^3.1.0", + "os-filter-obj": "^2.0.0", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper/node_modules/@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==", + "dependencies": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + } + }, + "node_modules/bin-wrapper/node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bin-wrapper/node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/bin-wrapper/node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/download": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", + "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==", + "dependencies": { + "archive-type": "^4.0.0", + "caw": "^2.0.1", + "content-disposition": "^0.5.2", + "decompress": "^4.2.0", + "ext-name": "^5.0.0", + "file-type": "^8.1.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^8.3.1", + "make-dir": "^1.2.0", + "p-event": "^2.1.0", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper/node_modules/download/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/file-type": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", + "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper/node_modules/got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "dependencies": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/got/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + }, + "node_modules/bin-wrapper/node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "node_modules/bin-wrapper/node_modules/keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/bin-wrapper/node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bin-wrapper/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dependencies": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "dependencies": { + "p-timeout": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper/node_modules/p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper/node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/bin-wrapper/node_modules/sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/bl/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/bl/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/bl/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/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/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==" + }, + "node_modules/boxen/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==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "engines": { + "node": ">=8" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -1597,7 +2700,6 @@ }, "node_modules/braces": { "version": "3.0.3", - "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -1606,6 +2708,61 @@ "node": ">=8" } }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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==", + "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==" + }, + "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==", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" + }, "node_modules/buffer-from": { "version": "0.1.2", "license": "MIT" @@ -1619,9 +2776,47 @@ "node": ">=10.16.0" } }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "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/cacheable-request/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==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/call-bind": { "version": "1.0.7", - "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -1644,6 +2839,34 @@ "node": ">=6" } }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001643", "funding": [ @@ -1662,9 +2885,27 @@ ], "license": "CC-BY-4.0" }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/caw": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz", + "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==", + "dependencies": { + "get-proxy": "^2.0.0", + "isurl": "^1.0.0-alpha5", + "tunnel-agent": "^0.6.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/chalk": { "version": "4.1.2", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -1677,10 +2918,152 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "node_modules/charset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/charset/-/charset-1.0.1.tgz", + "integrity": "sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==", + "dependencies": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/chokidar": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.0.tgz", + "integrity": "sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==", + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "engines": { + "node": ">= 10" + } + }, "node_modules/client-only": { "version": "0.0.1", "license": "MIT" }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/clsx": { "version": "2.1.1", "license": "MIT", @@ -1688,9 +3071,102 @@ "node": ">=6" } }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/coa/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -1701,14 +3177,115 @@ }, "node_modules/color-name": { "version": "1.1.4", - "dev": true, "license": "MIT" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "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==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, "node_modules/concat-map": { "version": "0.0.1", - "dev": true, "license": "MIT" }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==" + }, + "node_modules/console-stream": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", + "integrity": "sha512-QC/8l9e6ofi6nqZ5PawlDgzmMw3OxIXtvolBzap/F4UDBJlDaZRSNbL/lb41C29FcbSJncBFlJFj2WJoNyZRfQ==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/convert-source-map": { "version": "1.9.0", "license": "MIT" @@ -1733,7 +3310,6 @@ }, "node_modules/cross-spawn": { "version": "7.0.3", - "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -1744,18 +3320,161 @@ "node": ">= 8" } }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==", + "dependencies": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "engines": { + "node": "*" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csso/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, "node_modules/csstype": { "version": "3.1.3", "license": "MIT" }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "dev": true, "license": "BSD-2-Clause" }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/data-view-buffer": { "version": "1.0.1", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.6", @@ -1771,7 +3490,6 @@ }, "node_modules/data-view-byte-length": { "version": "1.0.1", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -1787,7 +3505,6 @@ }, "node_modules/data-view-byte-offset": { "version": "1.0.0", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.6", @@ -1816,6 +3533,204 @@ } } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "dependencies": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "dependencies": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "dependencies": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "dependencies": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "dependencies": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip/node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "dependencies": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress/node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/deep-equal": { "version": "2.2.3", "dev": true, @@ -1852,14 +3767,28 @@ "dev": true, "license": "MIT" }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/deep-is": { "version": "0.1.4", - "dev": true, "license": "MIT" }, + "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==", + "engines": { + "node": ">=10" + } + }, "node_modules/define-data-property": { "version": "1.1.4", - "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -1875,7 +3804,6 @@ }, "node_modules/define-properties": { "version": "1.2.1", - "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", @@ -1889,9 +3817,32 @@ "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==", + "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==" + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/dir-glob": { "version": "3.0.1", - "dev": true, "license": "MIT", "dependencies": { "path-type": "^4.0.0" @@ -1919,6 +3870,189 @@ "csstype": "^3.0.2" } }, + "node_modules/dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dependencies": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/download": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz", + "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==", + "dependencies": { + "caw": "^2.0.0", + "content-disposition": "^0.5.2", + "decompress": "^4.0.0", + "ext-name": "^5.0.0", + "file-type": "5.2.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^7.0.0", + "make-dir": "^1.0.0", + "p-event": "^1.0.0", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/download/node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/download/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/download/node_modules/got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dependencies": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/download/node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/download/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/download/node_modules/p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/download/node_modules/p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/download/node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/download/node_modules/url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==", + "dependencies": { + "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/duplexer2": { "version": "0.1.4", "license": "BSD-3-Clause", @@ -1950,16 +4084,38 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, "node_modules/eastasianwidth": { "version": "0.2.0", "dev": true, "license": "MIT" }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "node_modules/emoji-regex": { "version": "9.2.2", "dev": true, "license": "MIT" }, + "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==", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/enhanced-resolve": { "version": "5.17.1", "dev": true, @@ -1972,6 +4128,11 @@ "node": ">=10.13.0" } }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, "node_modules/error-ex": { "version": "1.3.2", "license": "MIT", @@ -1981,7 +4142,6 @@ }, "node_modules/es-abstract": { "version": "1.23.3", - "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", @@ -2038,9 +4198,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, "node_modules/es-define-property": { "version": "1.0.0", - "dev": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4" @@ -2051,7 +4215,6 @@ }, "node_modules/es-errors": { "version": "1.3.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2107,7 +4270,6 @@ }, "node_modules/es-object-atoms": { "version": "1.0.0", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -2118,7 +4280,6 @@ }, "node_modules/es-set-tostringtag": { "version": "2.0.3", - "dev": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4", @@ -2139,7 +4300,6 @@ }, "node_modules/es-to-primitive": { "version": "1.2.1", - "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.1.4", @@ -2153,6 +4313,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "engines": { + "node": ">=8" + } + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "license": "MIT", @@ -2163,6 +4336,91 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/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==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/eslint": { "version": "8.57.0", "dev": true, @@ -2497,6 +4755,18 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/esquery": { "version": "1.6.0", "dev": true, @@ -2529,20 +4799,227 @@ }, "node_modules/esutils": { "version": "2.0.3", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/exec-buffer": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz", + "integrity": "sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==", + "dependencies": { + "execa": "^0.7.0", + "p-finally": "^1.0.0", + "pify": "^3.0.0", + "rimraf": "^2.5.4", + "tempfile": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/exec-buffer/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", + "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/exec-buffer/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/execa/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/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==" + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/executable/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "dependencies": { + "mime-db": "^1.28.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "dependencies": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "dev": true, "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.2", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -2557,7 +5034,6 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -2568,22 +5044,49 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "dev": true, "license": "MIT" }, "node_modules/fastq": { "version": "1.17.1", - "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "dev": true, @@ -2595,9 +5098,37 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/file-type": { + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", + "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz", + "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/fill-range": { "version": "7.1.1", - "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -2625,6 +5156,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/find-versions": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", + "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "dependencies": { + "semver-regex": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/flat-cache": { "version": "3.2.0", "dev": true, @@ -2643,9 +5185,27 @@ "dev": true, "license": "ISC" }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/for-each": { "version": "0.3.3", - "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.1.3" @@ -2666,11 +5226,99 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/from2/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/from2/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/from2/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/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==" + }, + "node_modules/fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", - "dev": true, "license": "ISC" }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "license": "MIT", @@ -2680,7 +5328,6 @@ }, "node_modules/function.prototype.name": { "version": "1.1.6", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -2697,15 +5344,77 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/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==" + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/get-intrinsic": { "version": "1.2.4", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -2721,9 +5430,35 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proxy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", + "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==", + "dependencies": { + "npm-conf": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "engines": { + "node": ">=4" + } + }, "node_modules/get-symbol-description": { "version": "1.0.2", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.5", @@ -2748,6 +5483,19 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" + }, "node_modules/glob": { "version": "10.3.10", "dev": true, @@ -2802,6 +5550,25 @@ "balanced-match": "^1.0.0" } }, + "node_modules/global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "dependencies": { + "ini": "1.3.7" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + }, "node_modules/globals": { "version": "13.24.0", "dev": true, @@ -2818,7 +5585,6 @@ }, "node_modules/globalthis": { "version": "1.0.4", - "dev": true, "license": "MIT", "dependencies": { "define-properties": "^1.2.1", @@ -2852,7 +5618,6 @@ }, "node_modules/gopd": { "version": "1.0.1", - "dev": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" @@ -2861,6 +5626,30 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "license": "ISC" @@ -2870,9 +5659,48 @@ "dev": true, "license": "MIT" }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/has-bigints": { "version": "1.0.2", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2880,7 +5708,6 @@ }, "node_modules/has-flag": { "version": "4.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2888,7 +5715,6 @@ }, "node_modules/has-property-descriptors": { "version": "1.0.2", - "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" @@ -2899,7 +5725,6 @@ }, "node_modules/has-proto": { "version": "1.0.3", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2908,9 +5733,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "engines": { + "node": "*" + } + }, "node_modules/has-symbols": { "version": "1.0.3", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2919,9 +5751,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dependencies": { + "has-symbol-support-x": "^1.4.1" + }, + "engines": { + "node": "*" + } + }, "node_modules/has-tostringtag": { "version": "1.0.2", - "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -2933,6 +5775,19 @@ "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==" + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "engines": { + "node": ">=8" + } + }, "node_modules/hasown": { "version": "2.0.2", "license": "MIT", @@ -2954,6 +5809,22 @@ "version": "16.13.1", "license": "MIT" }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/html-tokenize": { "version": "2.0.1", "license": "MIT", @@ -2968,14 +5839,307 @@ "html-tokenize": "bin/cmd.js" } }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/htmlparser2/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/htmlparser2/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/htmlparser2/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "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==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "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==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz", + "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "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==", + "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/ignore": { "version": "5.3.1", - "dev": true, "license": "MIT", "engines": { "node": ">= 4" } }, + "node_modules/imagemin": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-7.0.1.tgz", + "integrity": "sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==", + "dependencies": { + "file-type": "^12.0.0", + "globby": "^10.0.0", + "graceful-fs": "^4.2.2", + "junk": "^3.1.0", + "make-dir": "^3.0.0", + "p-pipe": "^3.0.0", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imagemin-optipng": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-8.0.0.tgz", + "integrity": "sha512-CUGfhfwqlPjAC0rm8Fy+R2DJDBGjzy2SkfyT09L8rasnF9jSoHFqJ1xxSZWK6HVPZBMhGPMxCTL70OgTHlLF5A==", + "dependencies": { + "exec-buffer": "^3.0.0", + "is-png": "^2.0.0", + "optipng-bin": "^7.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/imagemin-pngquant": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-9.0.1.tgz", + "integrity": "sha512-PYyo9G/xwddf+Qqlqe3onz5ZH7p6vHYVVkiuuczUjxZmfekyY77RXaOA/AR6FnVoeQxGa/pDtEK5xUKOcVo+sA==", + "dependencies": { + "execa": "^4.0.0", + "is-png": "^2.0.0", + "is-stream": "^2.0.0", + "ow": "^0.17.0", + "pngquant-bin": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/imagemin-pngquant/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/imagemin-pngquant/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==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imagemin-pngquant/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imagemin-pngquant/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imagemin-pngquant/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==" + }, + "node_modules/imagemin-zopfli": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/imagemin-zopfli/-/imagemin-zopfli-7.0.0.tgz", + "integrity": "sha512-nmffj58rVb0O3AlCZLBBVKGyZ5MYPZZfKxUhvA7bwPGougHl/F7EUKSse9jkgXjdvtJYG2ojJeh5N67mYgBM9g==", + "dependencies": { + "exec-buffer": "^3.0.0", + "is-png": "^2.0.0", + "zopflipng-bin": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/imagemin/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", + "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/imagemin/node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/import-fresh": { "version": "3.3.0", "license": "MIT", @@ -2990,17 +6154,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-lazy": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", + "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", - "dev": true, "license": "MIT", "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==", + "engines": { + "node": ">=8" + } + }, "node_modules/inflight": { "version": "1.0.6", - "dev": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -3011,9 +6189,54 @@ "version": "2.0.4", "license": "ISC" }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/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==" + }, + "node_modules/inquirer/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==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/internal-slot": { "version": "1.0.7", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -3024,6 +6247,26 @@ "node": ">= 0.4" } }, + "node_modules/into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==", + "dependencies": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "engines": { + "node": ">=4" + } + }, "node_modules/is-arguments": { "version": "1.1.1", "dev": true, @@ -3041,7 +6284,6 @@ }, "node_modules/is-array-buffer": { "version": "3.0.4", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -3074,7 +6316,6 @@ }, "node_modules/is-bigint": { "version": "1.0.4", - "dev": true, "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" @@ -3083,9 +6324,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-boolean-object": { "version": "1.1.2", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -3100,7 +6351,6 @@ }, "node_modules/is-callable": { "version": "1.2.7", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3109,6 +6359,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, "node_modules/is-core-module": { "version": "2.15.0", "license": "MIT", @@ -3124,7 +6385,6 @@ }, "node_modules/is-data-view": { "version": "1.0.1", - "dev": true, "license": "MIT", "dependencies": { "is-typed-array": "^1.1.13" @@ -3138,7 +6398,6 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -3152,7 +6411,6 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3169,9 +6427,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3193,7 +6461,6 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -3202,6 +6469,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dependencies": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-map": { "version": "2.0.3", "dev": true, @@ -3213,9 +6495,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==" + }, "node_modules/is-negative-zero": { "version": "2.0.3", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3224,9 +6510,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "engines": { + "node": ">=8" + } + }, "node_modules/is-number": { "version": "7.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -3234,7 +6527,6 @@ }, "node_modules/is-number-object": { "version": "1.0.7", - "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -3246,17 +6538,92 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-path-inside": { "version": "3.0.3", - "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-png": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-png/-/is-png-2.0.0.tgz", + "integrity": "sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-port-reachable": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-3.1.0.tgz", + "integrity": "sha512-vjc0SSRNZ32s9SbZBzGaiP6YVB+xglLShhgZD/FHMZUXBvQWaV9CtzgeVhjccFJrI6RAMV+LX7NYxueW/A8W5A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-reachable": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-reachable/-/is-reachable-5.0.0.tgz", + "integrity": "sha512-frRPbdrQWEqbnF1il9Dyrf52Q40exkHdo4/grWMjHrBn4G1DKC9sbuQihgANkJPNi2eosU4AXBsrITdXmc3IQg==", + "dependencies": { + "arrify": "^2.0.1", + "got": "^11.7.0", + "is-port-reachable": "^3.0.0", + "p-any": "^3.0.0", + "p-timeout": "^3.2.0", + "prepend-http": "^3.0.1", + "router-ips": "^1.0.0", + "url-parse": "^1.4.7" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-regex": { "version": "1.1.4", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -3269,6 +6636,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-set": { "version": "2.0.3", "dev": true, @@ -3282,7 +6657,6 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.3", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7" @@ -3294,9 +6668,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-string": { "version": "1.0.7", - "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -3310,7 +6691,6 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" @@ -3324,7 +6704,6 @@ }, "node_modules/is-typed-array": { "version": "1.1.13", - "dev": true, "license": "MIT", "dependencies": { "which-typed-array": "^1.1.14" @@ -3336,6 +6715,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==" + }, "node_modules/is-weakmap": { "version": "2.0.2", "dev": true, @@ -3349,7 +6738,6 @@ }, "node_modules/is-weakref": { "version": "1.0.2", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2" @@ -3373,15 +6761,55 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, "node_modules/isarray": { "version": "0.0.1", "license": "MIT" }, + "node_modules/isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, "node_modules/isexe": { "version": "2.0.0", - "dev": true, "license": "ISC" }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "dependencies": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + }, + "engines": { + "node": ">= 4" + } + }, "node_modules/iterator.prototype": { "version": "1.1.2", "dev": true, @@ -3445,6 +6873,74 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/jschardet": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-2.3.0.tgz", + "integrity": "sha512-6I6xT7XN/7sBB7q8ObzKbmv5vN+blzLcboDE1BNEsEfmRXJValMxO6OIRT69ylPBRemS3rw6US+CMCar0OBc9g==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/jsdom": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", + "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", + "dependencies": { + "abab": "^2.0.3", + "acorn": "^7.1.1", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.2.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.14.1", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.8", + "saxes": "^5.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.2.3", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/jsesc": { "version": "2.5.2", "license": "MIT", @@ -3457,16 +6953,19 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "dev": true, "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "license": "MIT" }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { @@ -3474,6 +6973,11 @@ "dev": true, "license": "MIT" }, + "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==" + }, "node_modules/json5": { "version": "1.0.2", "dev": true, @@ -3485,6 +6989,39 @@ "json5": "lib/cli.js" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonfile/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "dev": true, @@ -3499,14 +7036,29 @@ "node": ">=4.0" } }, + "node_modules/junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/keyv": { "version": "4.5.4", - "dev": true, "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/language-subtag-registry": { "version": "0.3.23", "dev": true, @@ -3523,6 +7075,17 @@ "node": ">=0.10" } }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/levn": { "version": "0.4.1", "dev": true, @@ -3539,6 +7102,51 @@ "version": "1.2.4", "license": "MIT" }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/locate-path": { "version": "6.0.0", "dev": true, @@ -3557,11 +7165,105 @@ "version": "4.17.21", "license": "MIT" }, + "node_modules/lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==" + }, + "node_modules/lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA==" + }, + "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==" + }, + "node_modules/lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ==" + }, + "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==" + }, + "node_modules/lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" + }, + "node_modules/lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==" + }, "node_modules/lodash.merge": { "version": "4.6.2", - "dev": true, "license": "MIT" }, + "node_modules/lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==" + }, + "node_modules/lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==" + }, + "node_modules/lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==" + }, + "node_modules/lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==" + }, + "node_modules/logalot": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", + "integrity": "sha512-Ah4CgdSRfeCJagxQhcVNMi9BfGYyEKLa6d7OA6xSbld/Hg3Cf2QiOa1mDpmG7Ve8LOH6DN3mdttzjQAvWTyVkw==", + "dependencies": { + "figures": "^1.3.5", + "squeak": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/logalot/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/logalot/node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/loose-envify": { "version": "1.4.0", "license": "MIT", @@ -3572,14 +7274,118 @@ "loose-envify": "cli.js" } }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loud-rejection/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==" + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/lpad-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", + "integrity": "sha512-MMIcFmmR9zlGZtBcFOows6c2COMekHCIFJz3ew/rRpKZ1wR4mXDPzvcVqLarux8M33X4TPSq2Jdw8WJj0q0KbQ==", + "dependencies": { + "get-stdin": "^4.0.1", + "indent-string": "^2.1.0", + "longest": "^1.0.0", + "meow": "^3.3.0" + }, + "bin": { + "lpad-align": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/lru-cache": { "version": "10.4.3", "dev": true, "license": "ISC" }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, "node_modules/merge2": { "version": "1.4.1", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -3587,7 +7393,6 @@ }, "node_modules/micromatch": { "version": "4.0.7", - "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -3597,9 +7402,62 @@ "node": ">=8.6" } }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "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==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types/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==", + "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==", + "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==", + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "3.1.2", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -3623,6 +7481,22 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, "node_modules/ms": { "version": "2.1.2", "license": "MIT" @@ -3635,6 +7509,11 @@ "object-assign": "^4.1.0" } }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, "node_modules/nanoid": { "version": "3.3.7", "funding": [ @@ -3651,6 +7530,11 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + }, "node_modules/natural-compare": { "version": "1.4.0", "dev": true, @@ -3704,6 +7588,158 @@ } } }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node_modules/node-abi": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", + "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", + "dependencies": { + "semver": "^5.4.1" + } + }, + "node_modules/node-abi/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "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==", + "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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nwsapi": { + "version": "2.2.13", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", + "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, "node_modules/object-assign": { "version": "4.1.1", "license": "MIT", @@ -3713,7 +7749,6 @@ }, "node_modules/object-inspect": { "version": "1.13.2", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3739,7 +7774,6 @@ }, "node_modules/object-keys": { "version": "1.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3747,7 +7781,6 @@ }, "node_modules/object.assign": { "version": "4.1.5", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.5", @@ -3792,6 +7825,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object.groupby": { "version": "1.0.3", "dev": true, @@ -3807,7 +7860,6 @@ }, "node_modules/object.values": { "version": "1.2.0", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -3823,12 +7875,25 @@ }, "node_modules/once": { "version": "1.4.0", - "dev": true, "license": "ISC", "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==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.4", "dev": true, @@ -3845,6 +7910,127 @@ "node": ">= 0.8.0" } }, + "node_modules/optipng-bin": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-7.0.1.tgz", + "integrity": "sha512-W99mpdW7Nt2PpFiaO+74pkht7KEqkXkeRomdWXfEz3SALZ6hns81y/pm1dsGZ6ItUIfchiNIP6ORDr1zETU1jA==", + "hasInstallScript": true, + "dependencies": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.0" + }, + "bin": { + "optipng": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/os-filter-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz", + "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==", + "dependencies": { + "arch": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ow": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.17.0.tgz", + "integrity": "sha512-i3keDzDQP5lWIe4oODyDFey1qVrq2hXKTuTH2VpqwpYtzPiKZt2ziRI4NBQmgW40AnV5Euz17OyWweCb+bNEQA==", + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ow/node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-any": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz", + "integrity": "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==", + "dependencies": { + "p-cancelable": "^2.0.0", + "p-some": "^5.0.0" + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-event": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz", + "integrity": "sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==", + "dependencies": { + "p-timeout": "^1.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-event/node_modules/p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==", + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "3.1.0", "dev": true, @@ -3873,6 +8059,235 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz", + "integrity": "sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg==", + "dependencies": { + "p-reduce": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-pipe": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", + "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-some": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz", + "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==", + "dependencies": { + "aggregate-error": "^3.0.0", + "p-cancelable": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json/node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json/node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/cacheable-request/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==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json/node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/package-json/node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "node_modules/package-json/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json/node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/package-json/node_modules/got/node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/package-json/node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "node_modules/package-json/node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/package-json/node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json/node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/package-json/node_modules/responselike/node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/parent-module": { "version": "1.0.1", "license": "MIT", @@ -3899,6 +8314,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, "node_modules/path-exists": { "version": "4.0.0", "dev": true, @@ -3909,7 +8329,6 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3917,7 +8336,6 @@ }, "node_modules/path-key": { "version": "3.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3949,13 +8367,22 @@ "node": ">=8" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, "node_modules/picocolors": { "version": "1.0.1", "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -3964,9 +8391,123 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/png2icons": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/png2icons/-/png2icons-2.0.1.tgz", + "integrity": "sha512-GDEQJr8OG4e6JMp7mABtXFSEpgJa1CCpbQiAR+EjhkHJHnUL9zPPtbOrjsMD8gUbikgv3j7x404b0YJsV3aVFA==", + "bin": { + "png2icons": "png2icons-cli.js" + } + }, + "node_modules/pngquant-bin": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-6.0.1.tgz", + "integrity": "sha512-Q3PUyolfktf+hYio6wsg3SanQzEU/v8aICg/WpzxXcuCMRb7H2Q81okfpcEztbMvw25ILjd3a87doj2N9kvbpQ==", + "hasInstallScript": true, + "dependencies": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.1", + "execa": "^4.0.0" + }, + "bin": { + "pngquant": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pngquant-bin/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/pngquant-bin/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==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pngquant-bin/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pngquant-bin/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pngquant-bin/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==" + }, "node_modules/possible-typed-array-names": { "version": "1.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3998,6 +8539,64 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/prebuild-install": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", + "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", + "dependencies": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.21.0", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prebuild-install/node_modules/decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dependencies": { + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild-install/node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prebuild-install/node_modules/simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "dependencies": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "dev": true, @@ -4006,10 +8605,26 @@ "node": ">= 0.8.0" } }, + "node_modules/prepend-http": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-3.0.1.tgz", + "integrity": "sha512-BLxfZh+m6UiAiCPZFJ4+vYoL7NrRs5XgCTRrjseATAggXhdZKKxn+JUNmuVYWY23bDHgaEHodxw8mnmtVEDtHw==", + "engines": { + "node": ">=8" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "license": "MIT" }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dependencies": { + "asap": "~2.0.3" + } + }, "node_modules/prop-types": { "version": "15.8.1", "license": "MIT", @@ -4023,17 +8638,86 @@ "version": "16.13.1", "license": "MIT" }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.1", - "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dependencies": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, "node_modules/queue-microtask": { "version": "1.2.3", - "dev": true, "funding": [ { "type": "github", @@ -4050,6 +8734,39 @@ ], "license": "MIT" }, + "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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react": { "version": "18.3.1", "license": "MIT", @@ -4089,6 +8806,95 @@ "react-dom": ">=16.6.0" } }, + "node_modules/read-chunk": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", + "dependencies": { + "pify": "^4.0.1", + "with-open-file": "^0.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-chunk/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/readable-stream": { "version": "1.0.34", "license": "MIT", @@ -4099,6 +8905,40 @@ "string_decoder": "~0.10.x" } }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/redent/node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.6", "dev": true, @@ -4125,7 +8965,6 @@ }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.6", @@ -4140,6 +8979,138 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dependencies": { + "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "dependencies": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.12.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, "node_modules/resolve": { "version": "2.0.0-next.5", "dev": true, @@ -4156,6 +9127,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==" + }, "node_modules/resolve-from": { "version": "4.0.0", "license": "MIT", @@ -4171,9 +9147,36 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "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==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/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==" + }, "node_modules/reusify": { "version": "1.0.4", - "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -4213,9 +9216,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/router-ips": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/router-ips/-/router-ips-1.0.0.tgz", + "integrity": "sha512-yBo6F52Un/WYioXbedBGvrKIiofbwt+4cUhdqDb9fNMJBI4D4jOy7jlxxaRVEvICPKU7xMmJDtDFR6YswX/sFQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/run-parallel": { "version": "1.2.0", - "dev": true, "funding": [ { "type": "github", @@ -4235,9 +9253,24 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, "node_modules/safe-array-concat": { "version": "1.1.2", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -4254,7 +9287,6 @@ }, "node_modules/safe-array-concat/node_modules/isarray": { "version": "2.0.5", - "dev": true, "license": "MIT" }, "node_modules/safe-buffer": { @@ -4263,7 +9295,6 @@ }, "node_modules/safe-regex-test": { "version": "1.0.3", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.6", @@ -4277,6 +9308,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/scheduler": { "version": "0.23.2", "license": "MIT", @@ -4284,17 +9336,70 @@ "loose-envify": "^1.1.0" } }, + "node_modules/seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "dependencies": { + "commander": "^2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" + } + }, "node_modules/semver": { "version": "6.3.1", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" } }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/semver-truncate": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", + "integrity": "sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==", + "dependencies": { + "semver": "^5.3.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/semver-truncate/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "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==" + }, "node_modules/set-function-length": { "version": "1.2.2", - "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -4310,7 +9415,6 @@ }, "node_modules/set-function-name": { "version": "2.0.2", - "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -4322,9 +9426,54 @@ "node": ">= 0.4" } }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sharp": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.27.0.tgz", + "integrity": "sha512-II+YBCW3JuVWQZdpTEA2IBjJcYXPuoKo3AUqYuW+FK9Um93v2gPE2ihICCsN5nHTUoP8WCjqA83c096e8n//Rw==", + "hasInstallScript": true, + "dependencies": { + "array-flatten": "^3.0.0", + "color": "^3.1.3", + "detect-libc": "^1.0.3", + "node-addon-api": "^3.1.0", + "npmlog": "^4.1.2", + "prebuild-install": "^6.0.0", + "semver": "^7.3.4", + "simple-get": "^4.0.0", + "tar-fs": "^2.1.1", + "tunnel-agent": "^0.6.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/shebang-command": { "version": "2.0.0", - "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -4335,7 +9484,6 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4343,7 +9491,6 @@ }, "node_modules/side-channel": { "version": "1.0.6", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -4369,9 +9516,64 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "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/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "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": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, "node_modules/slash": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4388,6 +9590,28 @@ "url": "https://github.com/sponsors/cyyynthia" } }, + "node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", + "dependencies": { + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map": { "version": "0.5.7", "license": "BSD-3-Clause", @@ -4402,6 +9626,148 @@ "node": ">=0.10.0" } }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/squeak": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", + "integrity": "sha512-YQL1ulInM+ev8nXX7vfXsCsDh6IqXlrremc1hzi77776BtpWgYJUMto3UM05GSAaGzJgWekszjoKDrVNB5XG+A==", + "dependencies": { + "chalk": "^1.0.0", + "console-stream": "^0.1.1", + "lpad-align": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/squeak/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stop-iteration-iterator": { "version": "1.0.0", "dev": true, @@ -4419,6 +9785,14 @@ "node": ">=10.0.0" } }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/string_decoder": { "version": "0.10.31", "license": "MIT" @@ -4528,7 +9902,6 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.9", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -4545,7 +9918,6 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.8", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -4558,7 +9930,6 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.8", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -4574,7 +9945,6 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -4603,6 +9973,44 @@ "node": ">=4" } }, + "node_modules/strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "dependencies": { + "is-natural-number": "^4.0.1" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "dev": true, @@ -4614,6 +10022,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-outer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/styled-jsx": { "version": "5.1.1", "license": "MIT", @@ -4641,7 +10068,6 @@ }, "node_modules/supports-color": { "version": "7.2.0", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -4660,6 +10086,153 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svgo/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, "node_modules/tapable": { "version": "2.2.1", "dev": true, @@ -4668,11 +10241,308 @@ "node": ">=6" } }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/tar-fs/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tar-fs/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/tar-fs/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/tar-fs/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==", + "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": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dependencies": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/tar-stream/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/tar-stream/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/tar-stream/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/tar-stream/node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/tauri": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/tauri/-/tauri-0.15.0.tgz", + "integrity": "sha512-5zPhs7s4NyoUZEUWF9tOM3LCIgMGAc6c6tFONpXc2S41dK/Yk90JFC0z51HQMs/lrkA4AbU8f3EzMCM4WWY20Q==", + "hasInstallScript": true, + "dependencies": { + "@tauri-apps/tauri-inliner": "1.14.1", + "@tauri-apps/toml": "2.2.4", + "chalk": "4.1.0", + "chokidar": "3.5.0", + "cross-spawn": "7.0.3", + "fast-glob": "3.2.4", + "fs-extra": "9.0.1", + "http-proxy": "1.18.1", + "imagemin": "7.0.1", + "imagemin-optipng": "8.0.0", + "imagemin-pngquant": "9.0.1", + "imagemin-zopfli": "7.0.0", + "inquirer": "7.3.3", + "is-png": "2.0.0", + "is-reachable": "5.0.0", + "isbinaryfile": "4.0.6", + "jsdom": "16.4.0", + "lodash": "4.17.20", + "minimist": "1.2.5", + "ms": "2.1.3", + "png2icons": "2.0.1", + "read-chunk": "3.2.0", + "semver": "7.3.4", + "sharp": "0.27.0", + "webpack-merge": "5.7.3", + "webpack-shell-plugin": "0.5.0" + }, + "engines": { + "node": ">= 10.17.0", + "npm": ">= 6.6.0", + "yarn": ">= 1.19.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + } + }, + "node_modules/tauri/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "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/tauri/node_modules/fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tauri/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tauri/node_modules/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "node_modules/tauri/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==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tauri/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/tauri/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/tauri/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tauri/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tempfile": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", + "integrity": "sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA==", + "dependencies": { + "temp-dir": "^1.0.0", + "uuid": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/text-table": { "version": "0.2.0", "dev": true, "license": "MIT" }, + "node_modules/then-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/then-fs/-/then-fs-2.0.0.tgz", + "integrity": "sha512-5ffcBcU+vFUCYDNi/o507IqjqrTkuGsLVZ1Fp50hwgZRY7ufVFa9jFfTy5uZ2QnSKacKigWKeaXkOqLa4DsjLw==", + "dependencies": { + "promise": ">=3.2 <8" + } + }, "node_modules/through": { "version": "2.3.8", "license": "MIT" @@ -4685,6 +10555,30 @@ "xtend": "~2.1.1" } }, + "node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, "node_modules/to-fast-properties": { "version": "2.0.0", "license": "MIT", @@ -4692,9 +10586,16 @@ "node": ">=4" } }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", - "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -4703,6 +10604,57 @@ "node": ">=8.0" } }, + "node_modules/tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dependencies": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-repeated/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/ts-api-utils": { "version": "1.3.0", "dev": true, @@ -4729,6 +10681,22 @@ "version": "2.6.3", "license": "0BSD" }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, "node_modules/type-check": { "version": "0.4.0", "dev": true, @@ -4753,7 +10721,6 @@ }, "node_modules/typed-array-buffer": { "version": "1.0.2", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -4766,7 +10733,6 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.1", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -4784,7 +10750,6 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.2", - "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -4803,7 +10768,6 @@ }, "node_modules/typed-array-length": { "version": "1.0.6", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -4820,6 +10784,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, "node_modules/typescript": { "version": "5.5.4", "dev": true, @@ -4832,9 +10804,19 @@ "node": ">=14.17" } }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/unbox-primitive": { "version": "1.0.2", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -4846,19 +10828,132 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "node_modules/undici-types": { "version": "5.26.5", - "dev": true, "license": "MIT" }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "node_modules/update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "dependencies": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "engines": { + "node": ">=4" + } + }, "node_modules/uri-js": { "version": "4.4.1", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/url-parse-lax/node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==", + "engines": { + "node": ">= 4" + } + }, "node_modules/use-sync-external-store": { "version": "1.2.0", "license": "MIT", @@ -4870,9 +10965,140 @@ "version": "1.0.2", "license": "MIT" }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.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==" + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack-merge": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-shell-plugin": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/webpack-shell-plugin/-/webpack-shell-plugin-0.5.0.tgz", + "integrity": "sha512-BJMcVgXzA7Yc/Dq9JFj/wvquYG5qP3lgmCpMYzhP1a+LxZ/z3TbqKJ3W2xTkzQqBeYsgTdOcSdZ/+qYoFBhMhA==" + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/which": { "version": "2.0.2", - "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -4886,7 +11112,6 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", - "dev": true, "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", @@ -4948,7 +11173,6 @@ }, "node_modules/which-typed-array": { "version": "1.1.15", - "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -4964,9 +11188,89 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wide-align/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==" + }, + "node_modules/wide-align/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==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/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==" + }, + "node_modules/widest-line/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==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" + }, + "node_modules/with-open-file": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", + "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", + "dependencies": { + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/with-open-file/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, "node_modules/word-wrap": { "version": "1.2.5", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -5061,9 +11365,62 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "dev": true, "license": "ISC" }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/write-file-atomic/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==" + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, "node_modules/xtend": { "version": "2.1.2", "dependencies": { @@ -5077,6 +11434,11 @@ "version": "0.4.0", "license": "MIT" }, + "node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + }, "node_modules/yaml": { "version": "1.10.2", "license": "ISC", @@ -5084,6 +11446,15 @@ "node": ">= 6" } }, + "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==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "dev": true, @@ -5095,6 +11466,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zopflipng-bin": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zopflipng-bin/-/zopflipng-bin-6.0.1.tgz", + "integrity": "sha512-+aybvXv/xafL6I67uSH5yLHrSy4/OaSOV9tniw4yZFIHpINXUcctVHE/WzHxOONrL2GHzJ8Fd4iDrNyaS6TVbg==", + "hasInstallScript": true, + "dependencies": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.1", + "logalot": "^2.1.0" + }, + "bin": { + "zopflipng": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/zustand": { "version": "4.5.4", "license": "MIT", diff --git a/package.json b/package.json index 6c2f6f7..123f36b 100644 --- a/package.json +++ b/package.json @@ -17,18 +17,23 @@ "@mui/icons-material": "^5.16.6", "@mui/lab": "^5.0.0-alpha.173", "@mui/material": "^5.16.6", - "@tauri-apps/api": "^1.6.0", + "@tauri-apps/api": "^2.0.0", + "@tauri-apps/plugin-dialog": "^2.0.1", + "@tauri-apps/plugin-fs": "^2.0.1", + "@tauri-apps/plugin-notification": "^2.0.0", + "@tauri-apps/plugin-process": "^2.0.0", "jotai": "^2.9.1", "lodash": "^4.17.21", "next": "14.2.5", "react": "^18.3.1", "react-dom": "^18.3.1", "smol-toml": "^1.3.0", + "tauri": "^0.15.0", "zustand": "^4.5.4" }, "devDependencies": { + "@tauri-apps/cli": "^2.0.4", "@types/lodash": "^4.17.7", - "@tauri-apps/cli": "^1.6.0", "@types/node": "^20.14.14", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", @@ -36,4 +41,4 @@ "eslint-config-next": "14.2.5", "typescript": "^5.5.4" } -} \ No newline at end of file +} diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 504777d..1199191 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -73,11 +73,15 @@ name = "app" version = "0.1.0" dependencies = [ "gif", - "image 0.25.2", + "image", "serde", "serde_json", "tauri", "tauri-build", + "tauri-plugin-dialog", + "tauri-plugin-fs", + "tauri-plugin-notification", + "tauri-plugin-process", "webp", ] @@ -105,13 +109,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] -name = "async-broadcast" -version = "0.5.1" +name = "ashpd" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +checksum = "4d43c03d9e36dd40cab48435be0b09646da362c278223ca535493877b2c1dee9" dependencies = [ - "event-listener 2.5.3", + "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]] @@ -121,110 +148,82 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener-strategy 0.5.2", + "event-listener-strategy", "futures-core", "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.11.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.1.0", - "futures-lite 2.3.0", + "fastrand", + "futures-lite", "slab", ] [[package]] name = "async-fs" -version = "1.6.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ - "async-lock 2.8.0", - "autocfg", + "async-lock", "blocking", - "futures-lite 1.13.0", + "futures-lite", ] [[package]] name = "async-io" -version = "1.13.0" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" -dependencies = [ - "async-lock 3.3.0", + "async-lock", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.3.0", + "futures-lite", "parking", - "polling 3.7.0", - "rustix 0.38.34", + "polling", + "rustix", "slab", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "async-lock" -version = "2.8.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 2.5.3", -] - -[[package]] -name = "async-lock" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" -dependencies = [ - "event-listener 4.0.3", - "event-listener-strategy 0.4.0", + "event-listener", + "event-listener-strategy", "pin-project-lite", ] [[package]] name = "async-process" -version = "1.8.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", + "async-channel", + "async-io", + "async-lock", "async-signal", + "async-task", "blocking", "cfg-if", - "event-listener 3.1.0", - "futures-lite 1.13.0", - "rustix 0.38.34", - "windows-sys 0.48.0", + "event-listener", + "futures-lite", + "rustix", + "tracing", ] [[package]] @@ -240,20 +239,20 @@ dependencies = [ [[package]] name = "async-signal" -version = "0.2.6" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ - "async-io 2.3.2", - "async-lock 3.3.0", + "async-io", + "async-lock", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.34", + "rustix", "signal-hook-registry", "slab", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -264,9 +263,9 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", @@ -275,26 +274,25 @@ dependencies = [ [[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 1.3.2", "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.2.2", + "system-deps", ] [[package]] @@ -347,12 +345,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -382,6 +374,9 @@ name = "bitflags" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +dependencies = [ + "serde", +] [[package]] name = "bitstream-io" @@ -405,24 +400,32 @@ dependencies = [ ] [[package]] -name = "blocking" -version = "1.6.0" +name = "block2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2", +] + +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ "async-channel", - "async-lock 3.3.0", "async-task", "futures-io", - "futures-lite 2.3.0", + "futures-lite", "piper", ] [[package]] name = "brotli" -version = "3.5.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -431,24 +434,14 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "2.5.1" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", ] -[[package]] -name = "bstr" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "built" version = "0.7.4" @@ -481,42 +474,78 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +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 1.3.2", + "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.2.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", + "serde", + "serde_json", + "thiserror", ] [[package]] name = "cargo_toml" -version = "0.15.3" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" +checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" dependencies = [ "serde", - "toml 0.7.8", + "toml 0.8.2", ] [[package]] @@ -546,15 +575,6 @@ dependencies = [ "uuid", ] -[[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.15.8" @@ -571,6 +591,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" 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" @@ -586,11 +612,11 @@ dependencies = [ [[package]] name = "cocoa" -version = "0.24.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "block", "cocoa-foundation", "core-foundation", @@ -602,11 +628,11 @@ dependencies = [ [[package]] name = "cocoa-foundation" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" +checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "block", "core-foundation", "core-graphics-types", @@ -647,9 +673,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation" -version = "0.9.4" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" dependencies = [ "core-foundation-sys", "libc", @@ -657,17 +683,17 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core-graphics" -version = "0.22.3" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "core-graphics-types", "foreign-types", @@ -676,11 +702,11 @@ dependencies = [ [[package]] name = "core-graphics-types" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "libc", ] @@ -869,6 +895,15 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + [[package]] name = "dirs-next" version = "2.0.0" @@ -879,6 +914,18 @@ dependencies = [ "dirs-sys-next", ] +[[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" @@ -896,6 +943,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.72", +] + +[[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 = "1.0.9" @@ -917,6 +1011,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +[[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" @@ -932,7 +1032,7 @@ dependencies = [ "cc", "memchr", "rustc_version", - "toml 0.8.16", + "toml 0.8.2", "vswhom", "winreg", ] @@ -944,19 +1044,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" [[package]] -name = "encoding_rs" -version = "0.8.34" +name = "endi" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if", -] +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" [[package]] name = "enumflags2" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" dependencies = [ "enumflags2_derive", "serde", @@ -964,9 +1061,9 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", @@ -979,6 +1076,16 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "erased-serde" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" +dependencies = [ + "serde", + "typeid", +] + [[package]] name = "errno" version = "0.3.9" @@ -991,60 +1098,22 @@ dependencies = [ [[package]] name = "event-listener" -version = "2.5.3" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ "concurrent-queue", "parking", "pin-project-lite", ] -[[package]] -name = "event-listener" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.3", - "pin-project-lite", -] - [[package]] name = "event-listener-strategy" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 5.3.0", + "event-listener", "pin-project-lite", ] @@ -1066,18 +1135,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.9.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fdeflate" @@ -1094,22 +1154,10 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ - "memoffset 0.9.1", + "memoffset", "rustc_version", ] -[[package]] -name = "filetime" -version = "0.2.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.4.1", - "windows-sys 0.52.0", -] - [[package]] name = "flate2" version = "1.0.30" @@ -1120,6 +1168,15 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "fluent-uri" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17c704e9dbe1ddd863da1e6ff3567795087b1eb201ce80d8fa81162e1516500d" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "flume" version = "0.11.0" @@ -1137,18 +1194,30 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foreign-types" -version = "0.3.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" dependencies = [ + "foreign-types-macros", "foreign-types-shared", ] [[package]] -name = "foreign-types-shared" -version = "0.1.1" +name = "foreign-types-macros" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" [[package]] name = "form_urlencoded" @@ -1201,28 +1270,13 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - [[package]] name = "futures-lite" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 2.1.0", + "fastrand", "futures-core", "futures-io", "parking", @@ -1280,11 +1334,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 1.3.2", "cairo-rs", "gdk-pixbuf", "gdk-sys", @@ -1296,35 +1349,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 1.3.2", "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.2.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", @@ -1334,47 +1387,48 @@ dependencies = [ "libc", "pango-sys", "pkg-config", - "system-deps 6.2.2", + "system-deps", ] [[package]] name = "gdkwayland-sys" -version = "0.15.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cca49a59ad8cfdf36ef7330fe7bdfbe1d34323220cc16a0de2679ee773aee2c2" +checksum = "a90fbf5c033c65d93792192a49a8efb5bb1e640c419682a58bb96f5ae77f3d4a" dependencies = [ "gdk-sys", "glib-sys", "gobject-sys", "libc", "pkg-config", - "system-deps 6.2.2", + "system-deps", ] [[package]] -name = "gdkx11-sys" -version = "0.15.1" +name = "gdkx11" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +checksum = "db2ea8a4909d530f79921290389cbd7c34cb9d623bfe970eaae65ca5f9cd9cce" dependencies = [ - "gdk-sys", - "glib-sys", + "gdk", + "gdkx11-sys", + "gio", + "glib", "libc", - "system-deps 6.2.2", "x11", ] [[package]] -name = "generator" -version = "0.7.5" +name = "gdkx11-sys" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" +checksum = "fee8f00f4ee46cad2939b8990f5c70c94ff882c3028f3cc5abf950fa4ab53043" dependencies = [ - "cc", + "gdk-sys", + "glib-sys", "libc", - "log", - "rustversion", - "windows 0.48.0", + "system-deps", + "x11", ] [[package]] @@ -1427,49 +1481,54 @@ checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[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 1.3.2", "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.2.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 1.3.2", + "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", @@ -1477,27 +1536,26 @@ dependencies = [ [[package]] name = "glib-macros" -version = "0.15.13" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" dependencies = [ - "anyhow", "heck 0.4.1", - "proc-macro-crate", + "proc-macro-crate 2.0.2", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.72", ] [[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.2.2", + "system-deps", ] [[package]] @@ -1506,38 +1564,24 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "globset" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" -dependencies = [ - "aho-corasick", - "bstr", - "log", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", -] - [[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.2.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 1.3.2", "cairo-rs", "field-offset", "futures-channel", @@ -1548,16 +1592,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", @@ -1568,21 +1611,20 @@ dependencies = [ "gobject-sys", "libc", "pango-sys", - "system-deps 6.2.2", + "system-deps", ] [[package]] name = "gtk3-macros" -version = "0.15.6" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d" +checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e" dependencies = [ - "anyhow", - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.72", ] [[package]] @@ -1607,15 +1649,6 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -[[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.1" @@ -1634,6 +1667,12 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + [[package]] name = "hex" version = "0.4.3" @@ -1656,21 +1695,88 @@ dependencies = [ [[package]] name = "http" -version = "0.2.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", "itoa 1.0.11", ] +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", +] + [[package]] name = "http-range" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" +[[package]] +name = "httparse" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" + +[[package]] +name = "hyper" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "httparse", + "itoa 1.0.11", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[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.60" @@ -1720,34 +1826,6 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "ignore" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" -dependencies = [ - "crossbeam-deque", - "globset", - "log", - "memchr", - "regex-automata 0.4.7", - "same-file", - "walkdir", - "winapi-util", -] - -[[package]] -name = "image" -version = "0.24.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "num-traits", -] - [[package]] name = "image" version = "0.25.2" @@ -1811,9 +1889,9 @@ dependencies = [ [[package]] name = "infer" -version = "0.13.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f551f8c3a39f68f986517db0d1759de85881894fdc7db798bd2a9df9cb04b7fc" +checksum = "bc150e5ce2330295b8616ce0e3f53250e53af31759a9dbedad1621ba29151847" dependencies = [ "cfb", ] @@ -1839,15 +1917,10 @@ dependencies = [ ] [[package]] -name = "io-lifetimes" -version = "1.0.11" +name = "ipnet" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.48.0", -] +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "itertools" @@ -1872,9 +1945,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[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 1.3.2", "glib", @@ -1883,28 +1956,30 @@ dependencies = [ [[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.20.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", + "cfg-if", "combine", "jni-sys", "log", "thiserror", "walkdir", + "windows-sys 0.45.0", ] [[package]] @@ -1939,15 +2014,60 @@ dependencies = [ [[package]] name = "json-patch" -version = "1.4.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" +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 = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.6.0", + "serde", + "unicode-segmentation", +] + [[package]] name = "kuchikiki" version = "0.8.2" @@ -1973,6 +2093,30 @@ 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.155" @@ -1990,6 +2134,16 @@ dependencies = [ "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]] name = "libredox" version = "0.1.3" @@ -2010,12 +2164,6 @@ dependencies = [ "glob", ] -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -2038,21 +2186,6 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" -[[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 = "loop9" version = "0.1.5" @@ -2070,9 +2203,9 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" [[package]] name = "mac-notification-sys" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51fca4d74ff9dbaac16a01b924bc3693fa2bba0862c2c633abc73f9a8ea21f64" +checksum = "dce8f34f3717aa37177e723df6c1fc5fb02b2a1087374ea3fe0ea42316dc8f91" dependencies = [ "cc", "dirs-next", @@ -2104,15 +2237,6 @@ dependencies = [ "tendril", ] -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - [[package]] name = "matches" version = "0.1.10" @@ -2134,15 +2258,6 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.9.1" @@ -2152,6 +2267,12 @@ 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" @@ -2169,15 +2290,49 @@ dependencies = [ ] [[package]] -name = "ndk" -version = "0.6.0" +name = "mio" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ - "bitflags 1.3.2", + "hermit-abi 0.3.9", + "libc", + "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.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.6.0", "jni-sys", + "log", "ndk-sys", "num_enum", + "raw-window-handle", "thiserror", ] @@ -2189,9 +2344,9 @@ checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" [[package]] name = "ndk-sys" -version = "0.3.0" +version = "0.6.0+11769913" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" dependencies = [ "jni-sys", ] @@ -2204,14 +2359,14 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nix" -version = "0.26.4" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "cfg-if", "libc", - "memoffset 0.7.1", + "memoffset", ] [[package]] @@ -2238,9 +2393,9 @@ checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" [[package]] name = "notify-rust" -version = "4.10.0" +version = "4.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "827c5edfa80235ded4ab3fe8e9dc619b4f866ef16fe9b1c6b8a7f8692c0f2226" +checksum = "5134a72dc570b178bff81b01e81ab14a6fcc015391ed4b3b14853090658cd3a3" dependencies = [ "log", "mac-notification-sys", @@ -2249,16 +2404,6 @@ dependencies = [ "zbus", ] -[[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-bigint" version = "0.4.6" @@ -2317,23 +2462,23 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.5.11" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.11" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 2.0.2", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.72", ] [[package]] @@ -2343,7 +2488,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", - "objc_exception", ] [[package]] @@ -2358,14 +2502,224 @@ dependencies = [ ] [[package]] -name = "objc_exception" -version = "0.1.2" +name = "objc-sys" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" dependencies = [ "cc", ] +[[package]] +name = "objc2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2-app-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" +dependencies = [ + "bitflags 2.6.0", + "block2", + "libc", + "objc2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-image" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-core-location" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2", + "objc2", + "objc2-contacts", + "objc2-foundation", +] + +[[package]] +name = "objc2-encode" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" + +[[package]] +name = "objc2-foundation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.6.0", + "block2", + "dispatch", + "libc", + "objc2", +] + +[[package]] +name = "objc2-link-presentation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +dependencies = [ + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-symbols" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "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 = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68bc69301064cebefc6c4c90ce9cba69225239e4b8ff99d445a2b5563797da65" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + [[package]] name = "objc_id" version = "0.1.1" @@ -2390,6 +2744,12 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + [[package]] name = "ordered-stream" version = "0.2.0" @@ -2400,19 +2760,13 @@ dependencies = [ "pin-project-lite", ] -[[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 1.3.2", + "gio", "glib", "libc", "once_cell", @@ -2421,21 +2775,21 @@ 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.2.2", + "system-deps", ] [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" @@ -2455,7 +2809,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.3", + "redox_syscall", "smallvec", "windows-targets 0.52.6", ] @@ -2620,12 +2974,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.1.0", + "fastrand", "futures-io", ] @@ -2663,33 +3017,17 @@ dependencies = [ [[package]] name = "polling" -version = "2.8.0" +version = "3.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - -[[package]] -name = "polling" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3" +checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi", + "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.34", + "rustix", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2723,6 +3061,16 @@ dependencies = [ "toml_edit 0.19.15", ] +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime", + "toml_edit 0.20.2", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -2798,9 +3146,9 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quick-xml" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" dependencies = [ "memchr", ] @@ -2814,6 +3162,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "quick-xml" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" +dependencies = [ + "memchr", +] + [[package]] name = "quote" version = "1.0.36" @@ -2933,7 +3290,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "simd_helpers", - "system-deps 6.2.2", + "system-deps", "thiserror", "v_frame", "wasm-bindgen", @@ -2955,9 +3312,9 @@ dependencies = [ [[package]] name = "raw-window-handle" -version = "0.5.2" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" [[package]] name = "rayon" @@ -2979,15 +3336,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.5.3" @@ -3016,17 +3364,8 @@ checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] @@ -3037,15 +3376,9 @@ checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax", ] -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - [[package]] name = "regex-syntax" version = "0.8.4" @@ -3053,27 +3386,63 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] -name = "rfd" -version = "0.10.0" +name = "reqwest" +version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" dependencies = [ - "block", - "dispatch", + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "windows-registry", +] + +[[package]] +name = "rfd" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8af382a047821a08aa6bfc09ab0d80ff48d45d8726f7cd8e44891f7cb4a4278e" +dependencies = [ + "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]] @@ -3100,20 +3469,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rustix" -version = "0.37.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - [[package]] name = "rustix" version = "0.38.34" @@ -3123,16 +3478,10 @@ dependencies = [ "bitflags 2.6.0", "errno", "libc", - "linux-raw-sys 0.4.14", + "linux-raw-sys", "windows-sys 0.52.0", ] -[[package]] -name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - [[package]] name = "ryu" version = "1.0.18" @@ -3148,6 +3497,33 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.72", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -3198,6 +3574,17 @@ 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.204" @@ -3209,13 +3596,23 @@ dependencies = [ "syn 2.0.72", ] +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "serde_json" version = "1.0.121" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" dependencies = [ - "indexmap 2.2.6", "itoa 1.0.11", "memchr", "ryu", @@ -3242,6 +3639,18 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.11", + "ryu", + "serde", +] + [[package]] name = "serde_with" version = "3.9.0" @@ -3326,15 +3735,6 @@ dependencies = [ "digest", ] -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -3382,40 +3782,60 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.4.10" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "winapi", + "windows-sys 0.52.0", ] [[package]] -name = "soup2" -version = "0.2.1" +name = "softbuffer" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" dependencies = [ - "bitflags 1.3.2", + "bytemuck", + "cfg_aliases", + "core-graphics", + "foreign-types", + "js-sys", + "log", + "objc2", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "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 = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "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 1.3.2", "gio-sys", "glib-sys", "gobject-sys", "libc", - "system-deps 5.0.0", + "system-deps", ] [[package]] @@ -3433,15 +3853,6 @@ 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 = "static_assertions" version = "1.1.0" @@ -3480,6 +3891,17 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + [[package]] name = "syn" version = "1.0.109" @@ -3503,16 +3925,12 @@ 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 0.5.11", - "version-compare 0.0.11", + "futures-core", ] [[package]] @@ -3521,37 +3939,30 @@ version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" dependencies = [ - "cfg-expr 0.15.8", + "cfg-expr", "heck 0.5.0", "pkg-config", - "toml 0.8.16", - "version-compare 0.2.0", + "toml 0.8.2", + "version-compare", ] [[package]] name = "tao" -version = "0.16.9" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575c856fc21e551074869dcfaad8f706412bd5b803dfa0fbf6881c4ff4bfafab" +checksum = "a0dbbebe82d02044dfa481adca1550d6dd7bd16e086bc34fa0fbecceb5a63751" dependencies = [ - "bitflags 1.3.2", - "cairo-rs", - "cc", + "bitflags 2.6.0", "cocoa", "core-foundation", "core-graphics", "crossbeam-channel", "dispatch", - "gdk", - "gdk-pixbuf", - "gdk-sys", + "dlopen2", + "dpi", "gdkwayland-sys", "gdkx11-sys", - "gio", - "glib", - "glib-sys", "gtk", - "image 0.24.9", "instant", "jni", "lazy_static", @@ -3563,15 +3974,14 @@ dependencies = [ "objc", "once_cell", "parking_lot", - "png", "raw-window-handle", "scopeguard", - "serde", "tao-macros", "unicode-segmentation", - "uuid", - "windows 0.39.0", - "windows-implement", + "url", + "windows 0.58.0", + "windows-core 0.58.0", + "windows-version", "x11-dl", ] @@ -3586,17 +3996,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "tar" -version = "0.4.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" -dependencies = [ - "filetime", - "libc", - "xattr", -] - [[package]] name = "target-lexicon" version = "0.12.15" @@ -3605,83 +4004,87 @@ checksum = "4873307b7c257eddcb50c9bedf158eb669578359fb28428bef438fec8e6ba7c2" [[package]] name = "tauri" -version = "1.7.1" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "336bc661a3f3250853fa83c6e5245449ed1c26dce5dcb28bdee7efedf6278806" +checksum = "d3889b392db6d32a105d3757230ea0220090b8f94c90d3e60b6c5eb91178ab1b" dependencies = [ "anyhow", - "cocoa", - "dirs-next", + "bytes", + "dirs", "dunce", "embed_plist", - "encoding_rs", - "flate2", "futures-util", "getrandom 0.2.15", - "glib", "glob", "gtk", "heck 0.5.0", "http", - "ignore", - "nix", - "notify-rust", - "objc", - "once_cell", + "http-range", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", "percent-encoding", - "rand 0.8.5", + "plist", "raw-window-handle", - "rfd", - "semver", + "reqwest", "serde", "serde_json", "serde_repr", "serialize-to-javascript", - "state", - "tar", + "swift-rs", + "tauri-build", "tauri-macros", "tauri-runtime", "tauri-runtime-wry", "tauri-utils", - "tempfile", "thiserror", "tokio", + "tray-icon", "url", - "uuid", + "urlpattern", "webkit2gtk", "webview2-com", - "windows 0.39.0", + "window-vibrancy", + "windows 0.58.0", ] [[package]] name = "tauri-build" -version = "1.5.3" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c6ec7a5c3296330c7818478948b422967ce4649094696c985f61d50076d29c" +checksum = "9f96827ccfb1aa40d55d0ded79562d18ba18566657a553f992a982d755148376" dependencies = [ "anyhow", "cargo_toml", - "dirs-next", + "dirs", + "glob", "heck 0.5.0", - "json-patch", + "json-patch 3.0.1", + "schemars", "semver", "serde", "serde_json", "tauri-utils", "tauri-winres", + "toml 0.8.2", "walkdir", ] [[package]] name = "tauri-codegen" -version = "1.4.4" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1aed706708ff1200ec12de9cfbf2582b5d8ec05f6a7293911091effbd22036b" +checksum = "8947f16f47becd9e9cd39b74ee337fd1981574d78819be18e4384d85e5a0b82f" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "brotli", "ico", - "json-patch", + "json-patch 2.0.0", "plist", "png", "proc-macro2", @@ -3690,96 +4093,193 @@ dependencies = [ "serde", "serde_json", "sha2", + "syn 2.0.72", "tauri-utils", "thiserror", "time", + "url", "uuid", "walkdir", ] [[package]] name = "tauri-macros" -version = "1.4.5" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b88f831d2973ae4f81a706a0004e67dac87f2e4439973bbe98efbd73825d8ede" +checksum = "8bd1c8d4a66799d3438747c3a79705cd665a95d6f24cb5f315413ff7a981fe2a" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.72", "tauri-codegen", "tauri-utils", ] [[package]] -name = "tauri-runtime" -version = "0.14.4" +name = "tauri-plugin" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3068ed62b63dedc705558f4248c7ecbd5561f0f8050949859ea0db2326f26012" +checksum = "6fa4e6c94cb1d635f65a770c69e23de1bc054b0e4c554fa037a7cc7676333d39" dependencies = [ + "anyhow", + "glob", + "plist", + "schemars", + "serde", + "serde_json", + "tauri-utils", + "toml 0.8.2", + "walkdir", +] + +[[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-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-process" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae06a00087c148962a52814a2d7265b1a0505bced5ffb74f8c284a5f96a4d03d" +dependencies = [ + "tauri", + "tauri-plugin", +] + +[[package]] +name = "tauri-runtime" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ef7363e7229ac8d04e8a5d405670dbd43dde8fc4bc3bc56105c35452d03784" +dependencies = [ + "dpi", "gtk", "http", - "http-range", - "rand 0.8.5", + "jni", "raw-window-handle", "serde", "serde_json", "tauri-utils", "thiserror", "url", - "uuid", - "webview2-com", - "windows 0.39.0", + "windows 0.58.0", ] [[package]] name = "tauri-runtime-wry" -version = "0.14.9" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c3db170233096aa30330feadcd895bf9317be97e624458560a20e814db7955" +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", + "url", "webkit2gtk", "webview2-com", - "windows 0.39.0", + "windows 0.58.0", "wry", ] [[package]] name = "tauri-utils" -version = "1.6.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2826db448309d382dac14d520f0c0a40839b87b57b977e59cf5f296b3ace6a93" +checksum = "1fc65d6f5c54e56b66258948a6d9e47a82ea41f4b5a7612bfbdd1634c2913ed0" dependencies = [ "brotli", + "cargo_metadata", "ctor", "dunce", "glob", - "heck 0.5.0", "html5ever", "infer", - "json-patch", + "json-patch 2.0.0", "kuchikiki", "log", "memchr", "phf 0.11.2", "proc-macro2", "quote", + "regex", + "schemars", "semver", "serde", + "serde-untagged", "serde_json", "serde_with", + "swift-rs", "thiserror", + "toml 0.8.2", "url", + "urlpattern", + "uuid", "walkdir", - "windows-version", ] [[package]] @@ -3794,24 +4294,26 @@ dependencies = [ [[package]] name = "tauri-winrt-notification" -version = "0.1.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006851c9ccefa3c38a7646b8cec804bb429def3da10497bfa977179869c3e8e2" +checksum = "f89f5fb70d6f62381f5d9b2ba9008196150b40b75f3068eb24faeddf1c686871" dependencies = [ - "quick-xml 0.30.0", - "windows 0.51.1", + "quick-xml 0.31.0", + "windows 0.56.0", + "windows-version", ] [[package]] name = "tempfile" -version = "3.10.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", - "fastrand 2.1.0", - "rustix 0.38.34", - "windows-sys 0.52.0", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", ] [[package]] @@ -3851,16 +4353,6 @@ dependencies = [ "syn 2.0.72", ] -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] - [[package]] name = "tiff" version = "0.9.1" @@ -3926,16 +4418,26 @@ checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", + "libc", + "mio", "pin-project-lite", + "signal-hook-registry", + "socket2", + "tracing", + "windows-sys 0.52.0", ] [[package]] -name = "toml" -version = "0.5.11" +name = "tokio-util" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ - "serde", + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", ] [[package]] @@ -3952,21 +4454,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.16" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81967dd0dd2c1ab0bc3468bd7caecc32b8a4aa47d0c8c695d8c2b2108168d62c" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.17", + "toml_edit 0.20.2", ] [[package]] name = "toml_datetime" -version = "0.6.7" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fb9f64314842840f1d940ac544da178732128f1c78c21772e876579e0da1db" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" dependencies = [ "serde", ] @@ -3981,22 +4483,28 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow 0.5.40", + "winnow", ] [[package]] name = "toml_edit" -version = "0.22.17" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9f8729f5aea9562aac1cc0441f5d6de3cff1ee0c5d67293eeca5eb36ee7c16" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.16", + "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.40" @@ -4026,37 +4534,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", - "valuable", ] [[package]] -name = "tracing-log" -version = "0.2.0" +name = "tray-icon" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +checksum = "7c92af36a182b46206723bdf8a7942e20838cde1cf062e5b97854d57eb01763b" dependencies = [ - "log", + "core-graphics", + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", "once_cell", - "tracing-core", + "png", + "serde", + "thiserror", + "windows-sys 0.59.0", ] [[package]] -name = "tracing-subscriber" -version = "0.3.18" +name = "try-lock" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" [[package]] name = "typenum" @@ -4070,11 +4581,52 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ - "memoffset 0.9.1", + "memoffset", "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.15" @@ -4114,6 +4666,18 @@ dependencies = [ "serde", ] +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + [[package]] name = "utf-8" version = "0.7.6" @@ -4127,6 +4691,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" dependencies = [ "getrandom 0.2.15", + "serde", ] [[package]] @@ -4140,18 +4705,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "version-compare" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" - [[package]] name = "version-compare" version = "0.2.0" @@ -4184,12 +4737,6 @@ dependencies = [ "libc", ] -[[package]] -name = "waker-fn" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" - [[package]] name = "walkdir" version = "2.5.0" @@ -4200,6 +4747,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" @@ -4278,6 +4834,79 @@ version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +[[package]] +name = "wasm-streams" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" +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.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3f45d1222915ef1fd2057220c1d9d9624b7654443ea35c3877f7a52bd0a5a2d" +dependencies = [ + "bitflags 2.6.0", + "rustix", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b5755d77ae9040bb872a25026555ce4cb0ae75fd923e90d25fba07d81057de0" +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 = "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.69" @@ -4290,9 +4919,9 @@ dependencies = [ [[package]] name = "webkit2gtk" -version = "0.18.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" +checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" dependencies = [ "bitflags 1.3.2", "cairo-rs", @@ -4308,20 +4937,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 1.3.2", "cairo-sys-rs", - "gdk-pixbuf-sys", "gdk-sys", "gio-sys", "glib-sys", @@ -4329,10 +4956,9 @@ dependencies = [ "gtk-sys", "javascriptcore-rs-sys", "libc", - "pango-sys", "pkg-config", - "soup2-sys", - "system-deps 6.2.2", + "soup3-sys", + "system-deps", ] [[package]] @@ -4341,46 +4967,44 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f53152f51fb5af0c08484c33d16cca96175881d1f3dec068c23b31a158c2d99" dependencies = [ - "image 0.25.2", + "image", "libwebp-sys", ] [[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 1.0.109", + "syn 2.0.72", ] [[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]] @@ -4421,68 +5045,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "windows" -version = "0.37.0" +name = "window-vibrancy" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +checksum = "3ea403deff7b51fff19e261330f71608ff2cdef5721d72b64180bb95be7c4150" 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", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", ] [[package]] name = "windows" -version = "0.39.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" +checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132" 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-core 0.56.0", + "windows-targets 0.52.6", ] [[package]] name = "windows" -version = "0.48.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" -dependencies = [ - "windows-core 0.51.1", - "windows-targets 0.48.5", -] - -[[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-core" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" -dependencies = [ - "windows-targets 0.48.5", + "windows-core 0.58.0", + "windows-targets 0.52.6", ] [[package]] @@ -4495,20 +5088,121 @@ dependencies = [ ] [[package]] -name = "windows-implement" -version = "0.39.0" +name = "windows-core" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" +checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6" dependencies = [ - "syn 1.0.109", - "windows-tokens", + "windows-implement 0.56.0", + "windows-interface 0.56.0", + "windows-result 0.1.2", + "windows-targets 0.52.6", ] [[package]] -name = "windows-metadata" -version = "0.39.0" +name = "windows-core" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "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-implement" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[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.72", +] + +[[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.72", +] + +[[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 = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result 0.2.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] [[package]] name = "windows-sys" @@ -4528,6 +5222,30 @@ 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" @@ -4559,12 +5277,6 @@ dependencies = [ "windows_x86_64_msvc 0.52.6", ] -[[package]] -name = "windows-tokens" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" - [[package]] name = "windows-version" version = "0.1.1" @@ -4574,6 +5286,12 @@ 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" @@ -4588,15 +5306,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[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" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" @@ -4612,15 +5324,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[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" - -[[package]] -name = "windows_i686_gnu" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" @@ -4642,15 +5348,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[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" - -[[package]] -name = "windows_i686_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" @@ -4666,15 +5366,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[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" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" @@ -4688,6 +5382,12 @@ 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" @@ -4702,15 +5402,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[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" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" @@ -4733,15 +5427,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winnow" -version = "0.6.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b480ae9340fc261e6be3e95a1ba86d54ae3f9171132a73ce8d4bbaf68339507c" -dependencies = [ - "memchr", -] - [[package]] name = "winreg" version = "0.52.0" @@ -4754,40 +5439,43 @@ dependencies = [ [[package]] name = "wry" -version = "0.24.10" +version = "0.46.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00711278ed357350d44c749c286786ecac644e044e4da410d466212152383b45" +checksum = "cd5cdf57c66813d97601181349c63b96994b3074fc3d7a31a8cce96e968e3bbd" dependencies = [ - "base64 0.13.1", - "block", - "cocoa", - "core-graphics", + "base64 0.22.1", + "block2", "crossbeam-channel", + "dpi", "dunce", - "gdk", - "gio", - "glib", + "gdkx11", "gtk", "html5ever", "http", + "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", - "soup2", - "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]] @@ -4811,62 +5499,50 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "xattr" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" -dependencies = [ - "libc", - "linux-raw-sys 0.4.14", - "rustix 0.38.34", -] - [[package]] name = "xdg-home" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e" +checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" dependencies = [ "libc", - "winapi", + "windows-sys 0.59.0", ] [[package]] name = "zbus" -version = "3.15.2" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6" +checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030" dependencies = [ "async-broadcast", "async-executor", "async-fs", - "async-io 1.13.0", - "async-lock 2.8.0", + "async-io", + "async-lock", "async-process", "async-recursion", "async-task", "async-trait", "blocking", - "byteorder", "derivative", "enumflags2", - "event-listener 2.5.3", + "event-listener", "futures-core", "futures-sink", "futures-util", "hex", "nix", - "once_cell", "ordered-stream", "rand 0.8.5", "serde", "serde_repr", "sha1", "static_assertions", + "tokio", "tracing", "uds_windows", - "winapi", + "windows-sys 0.52.0", "xdg-home", "zbus_macros", "zbus_names", @@ -4875,11 +5551,11 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "3.15.2" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5" +checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "regex", @@ -4889,9 +5565,9 @@ dependencies = [ [[package]] name = "zbus_names" -version = "2.6.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d" +checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" dependencies = [ "serde", "static_assertions", @@ -4945,25 +5621,25 @@ dependencies = [ [[package]] name = "zvariant" -version = "3.15.2" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db" +checksum = "4e09e8be97d44eeab994d752f341e67b3b0d80512a8b315a0671d47232ef1b65" dependencies = [ - "byteorder", + "endi", "enumflags2", - "libc", "serde", "static_assertions", + "url", "zvariant_derive", ] [[package]] name = "zvariant_derive" -version = "3.15.2" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9" +checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", @@ -4972,9 +5648,9 @@ dependencies = [ [[package]] name = "zvariant_utils" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172" dependencies = [ "proc-macro2", "quote", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index b9ca760..7476818 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -12,15 +12,19 @@ rust-version = "1.60" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [build-dependencies] -tauri-build = { version = "1.5.3", features = [] } +tauri-build = { version = "2", features = [] } [dependencies] serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } -tauri = { version = "1.7.0", features = [ "protocol-all", "fs-all", "path-all", "window-all", "process-all", "notification-all", "dialog-all"] } +tauri = { version = "2", features = ["protocol-asset"] } image = "0.25.2" webp = "0.3.0" gif = "0.13.1" +tauri-plugin-notification = "2" +tauri-plugin-process = "2" +tauri-plugin-dialog = "2" +tauri-plugin-fs = "2" [features] # this feature is used for production builds or when `devPath` points to the filesystem and the built-in dev server is disabled. diff --git a/src-tauri/capabilities/migrated.json b/src-tauri/capabilities/migrated.json new file mode 100644 index 0000000..ec85a5a --- /dev/null +++ b/src-tauri/capabilities/migrated.json @@ -0,0 +1,77 @@ +{ + "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", + { + "identifier": "fs:scope", + "allow": [ + "**", + "**/*", + "/**/*", + "$CONFIG/stort/", + "$CONFIG/stort/**", + "$HOME/.local/share/stort/*", + "$HOME/.local/share/stort/**" + ] + }, + "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", + "dialog:allow-open", + "dialog:allow-save", + "dialog:allow-message", + "dialog:allow-ask", + "dialog:allow-confirm", + "notification:default", + "process:allow-restart", + "process:allow-exit", + "notification:default", + "process:default", + "dialog:default", + "fs:default" + ] +} \ No newline at end of file diff --git a/src-tauri/gen/schemas/acl-manifests.json b/src-tauri/gen/schemas/acl-manifests.json new file mode 100644 index 0000000..7b31a95 --- /dev/null +++ b/src-tauri/gen/schemas/acl-manifests.json @@ -0,0 +1 @@ +{"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"}},"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},"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}} \ 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 0000000..d62c95a --- /dev/null +++ b/src-tauri/gen/schemas/capabilities.json @@ -0,0 +1 @@ +{"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",{"identifier":"fs:scope","allow":["**","**/*","/**/*","$CONFIG/stort/","$CONFIG/stort/**","$HOME/.local/share/stort/*","$HOME/.local/share/stort/**"]},"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","dialog:allow-open","dialog:allow-save","dialog:allow-message","dialog:allow-ask","dialog:allow-confirm","notification:default","process:allow-restart","process:allow-exit","notification:default","process:default","dialog:default","fs: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 0000000..4d79b96 --- /dev/null +++ b/src-tauri/gen/schemas/desktop-schema.json @@ -0,0 +1,4933 @@ +{ + "$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" + } + ] + } + } + }, + { + "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": "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": "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\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" + } + ] + }, + "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" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/src-tauri/gen/schemas/linux-schema.json b/src-tauri/gen/schemas/linux-schema.json new file mode 100644 index 0000000..4d79b96 --- /dev/null +++ b/src-tauri/gen/schemas/linux-schema.json @@ -0,0 +1,4933 @@ +{ + "$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" + } + ] + } + } + }, + { + "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": "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": "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\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" + } + ] + }, + "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" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index c612ccd..7271fcc 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,80 +1,42 @@ { "$schema": "../node_modules/@tauri-apps/cli/schema.json", "build": { - "beforeBuildCommand": "bun run build", - "beforeDevCommand": "bun run dev", - "devPath": "http://localhost:3000", - "distDir": "../out" + "beforeBuildCommand": "npm run build", + "beforeDevCommand": "npm run dev", + "frontendDist": "../out", + "devUrl": "http://localhost:3000" }, - "package": { - "productName": "stort", - "version": "0.1.0" - }, - "tauri": { - "allowlist": { - "dialog": { - "all": true - }, - "fs": { - "all": true, - "scope": [ - "**", - "**/*", - "/**/*", - "$CONFIG/stort/", - "$CONFIG/stort/**", - "$HOME/.local/share/stort/*", - "$HOME/.local/share/stort/**" - ] - }, - "notification": { - "all": true - }, - "path": { - "all": true - }, - "process": { - "all": true - }, - "protocol": { - "all": true, - "asset": true, - "assetScope": [ - "$APPDATA/*", - "$APPDATA/**" - ] - }, - "window": { - "all": true - } - }, - "bundle": { - "active": true, - "category": "DeveloperTool", - "copyright": "", + "bundle": { + "active": true, + "category": "DeveloperTool", + "copyright": "", + "shortDescription": "Launcher for Steam Deck", + "externalBin": [], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "targets": [ + "appimage", + "deb" + ], + "longDescription": "Launcher for Steam Deck", + "resources": [], + "linux": { "deb": { "depends": [] - }, - "externalBin": [], - "icon": [ - "icons/32x32.png", - "icons/128x128.png", - "icons/128x128@2x.png", - "icons/icon.icns", - "icons/icon.ico" - ], - "identifier": "stort", - "longDescription": "Launcher for Steam Deck", - "resources": [], - "shortDescription": "Launcher for Steam Deck", - "targets": [ - "appimage", - "deb" - ] - }, - "security": { - "csp": null - }, + } + } + }, + "productName": "stort", + "mainBinaryName": "stort", + "version": "0.1.0", + "identifier": "stort", + "plugins": {}, + "app": { "windows": [ { "decorations": false, @@ -84,6 +46,16 @@ "title": "Stort", "width": 800 } - ] + ], + "security": { + "assetProtocol": { + "scope": [ + "$APPDATA/*", + "$APPDATA/**" + ], + "enable": true + }, + "csp": null + } } } \ No newline at end of file diff --git a/src/components/Generic/Layout.tsx b/src/components/Generic/Layout.tsx index 5bf2ad8..f4642b0 100644 --- a/src/components/Generic/Layout.tsx +++ b/src/components/Generic/Layout.tsx @@ -1,5 +1,5 @@ import { Box, Button, useTheme } from "@mui/material"; -import { convertFileSrc } from "@tauri-apps/api/tauri"; +import { convertFileSrc } from "@tauri-apps/api/core"; import { useEffect, useState } from "react"; import { useSettings } from "../../contexts/SettingsContext"; import { FooterBar } from "../FooterBar/FooterBar"; diff --git a/src/components/HeaderBar/Settings/SettingsTabs/Background.tsx b/src/components/HeaderBar/Settings/SettingsTabs/Background.tsx index 197376f..8dcb646 100644 --- a/src/components/HeaderBar/Settings/SettingsTabs/Background.tsx +++ b/src/components/HeaderBar/Settings/SettingsTabs/Background.tsx @@ -1,8 +1,8 @@ import { DeleteOutline, FileOpenOutlined } from "@mui/icons-material"; import { Box, Button, CircularProgress, LinearProgress, Stack, TextField, Typography } from "@mui/material"; -import { open } from "@tauri-apps/api/dialog"; -import { readBinaryFile } from "@tauri-apps/api/fs"; -import { invoke } from "@tauri-apps/api/tauri"; +import { open } from "@tauri-apps/plugin-dialog"; +import { readBinaryFile } from "@tauri-apps/plugin-fs"; +import { invoke } from "@tauri-apps/api/core"; import { useAtom } from "jotai"; import Image from "next/image"; import { FC, useEffect, useState } from "react"; diff --git a/src/components/HeaderBar/WindowButtons.tsx b/src/components/HeaderBar/WindowButtons.tsx index 673ef52..1266df6 100644 --- a/src/components/HeaderBar/WindowButtons.tsx +++ b/src/components/HeaderBar/WindowButtons.tsx @@ -1,6 +1,6 @@ import { Close, CloseFullscreen, Fullscreen, FullscreenExit, Minimize, WebAssetOutlined } from "@mui/icons-material"; import { Box, IconButton, Stack, useTheme } from "@mui/material"; -import { WebviewWindow } from "@tauri-apps/api/window"; +import { WebviewWindow } from "@tauri-apps/api/webviewWindow"; import { useEffect, useState } from "react"; import { useSettings } from "../../contexts/SettingsContext"; diff --git a/src/lib/testing.ts b/src/lib/testing.ts index 9b724ba..5539a1d 100644 --- a/src/lib/testing.ts +++ b/src/lib/testing.ts @@ -1,4 +1,4 @@ -import { createDir } from "@tauri-apps/api/fs"; +import { createDir } from "@tauri-apps/plugin-fs"; export const testing = async () => { await createDir("/home/vomitblood/.config/stort/"); diff --git a/src/lib/utils/json.ts b/src/lib/utils/json.ts index b442cae..36ad7ac 100644 --- a/src/lib/utils/json.ts +++ b/src/lib/utils/json.ts @@ -1,4 +1,4 @@ -import { readTextFile, writeTextFile } from "@tauri-apps/api/fs"; +import { readTextFile, writeTextFile } from "@tauri-apps/plugin-fs"; export const readJsonFile = async (path: string): Promise => { try { diff --git a/src/lib/utils/toml.ts b/src/lib/utils/toml.ts index f339efd..cb4d019 100644 --- a/src/lib/utils/toml.ts +++ b/src/lib/utils/toml.ts @@ -1,4 +1,4 @@ -import { readTextFile, writeTextFile } from "@tauri-apps/api/fs"; +import { readTextFile, writeTextFile } from "@tauri-apps/plugin-fs"; import { parse, stringify } from "smol-toml"; export const readTomlFile = async (path: string): Promise => {