diff --git a/.gitattributes b/.gitattributes
index 8cb192841658b0a3935ca5d6a4a249dbada0cc15..f32588da55995b50c195d4a15c8afd5a17750faf 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,36 +1,36 @@
-*.7z filter=lfs diff=lfs merge=lfs -text
-*.arrow filter=lfs diff=lfs merge=lfs -text
-*.bin filter=lfs diff=lfs merge=lfs -text
-*.bz2 filter=lfs diff=lfs merge=lfs -text
-*.ckpt filter=lfs diff=lfs merge=lfs -text
-*.ftz filter=lfs diff=lfs merge=lfs -text
-*.gz filter=lfs diff=lfs merge=lfs -text
-*.h5 filter=lfs diff=lfs merge=lfs -text
-*.joblib filter=lfs diff=lfs merge=lfs -text
-*.lfs.* filter=lfs diff=lfs merge=lfs -text
-*.mlmodel filter=lfs diff=lfs merge=lfs -text
-*.model filter=lfs diff=lfs merge=lfs -text
-*.msgpack filter=lfs diff=lfs merge=lfs -text
-*.npy filter=lfs diff=lfs merge=lfs -text
-*.npz filter=lfs diff=lfs merge=lfs -text
-*.onnx filter=lfs diff=lfs merge=lfs -text
-*.ot filter=lfs diff=lfs merge=lfs -text
-*.parquet filter=lfs diff=lfs merge=lfs -text
-*.pb filter=lfs diff=lfs merge=lfs -text
-*.pickle filter=lfs diff=lfs merge=lfs -text
-*.pkl filter=lfs diff=lfs merge=lfs -text
-*.pt filter=lfs diff=lfs merge=lfs -text
-*.pth filter=lfs diff=lfs merge=lfs -text
-*.rar filter=lfs diff=lfs merge=lfs -text
-*.safetensors filter=lfs diff=lfs merge=lfs -text
-saved_model/**/* filter=lfs diff=lfs merge=lfs -text
-*.tar.* filter=lfs diff=lfs merge=lfs -text
-*.tar filter=lfs diff=lfs merge=lfs -text
-*.tflite filter=lfs diff=lfs merge=lfs -text
-*.tgz filter=lfs diff=lfs merge=lfs -text
-*.wasm filter=lfs diff=lfs merge=lfs -text
-*.xz filter=lfs diff=lfs merge=lfs -text
-*.zip filter=lfs diff=lfs merge=lfs -text
-*.zst filter=lfs diff=lfs merge=lfs -text
-*tfevents* filter=lfs diff=lfs merge=lfs -text
-uiprototype2/doc/Refstudio_SRS_v1.0.pdf filter=lfs diff=lfs merge=lfs -text
+*.7z filter=lfs diff=lfs merge=lfs -text
+*.arrow filter=lfs diff=lfs merge=lfs -text
+*.bin filter=lfs diff=lfs merge=lfs -text
+*.bz2 filter=lfs diff=lfs merge=lfs -text
+*.ckpt filter=lfs diff=lfs merge=lfs -text
+*.ftz filter=lfs diff=lfs merge=lfs -text
+*.gz filter=lfs diff=lfs merge=lfs -text
+*.h5 filter=lfs diff=lfs merge=lfs -text
+*.joblib filter=lfs diff=lfs merge=lfs -text
+*.lfs.* filter=lfs diff=lfs merge=lfs -text
+*.mlmodel filter=lfs diff=lfs merge=lfs -text
+*.model filter=lfs diff=lfs merge=lfs -text
+*.msgpack filter=lfs diff=lfs merge=lfs -text
+*.npy filter=lfs diff=lfs merge=lfs -text
+*.npz filter=lfs diff=lfs merge=lfs -text
+*.onnx filter=lfs diff=lfs merge=lfs -text
+*.ot filter=lfs diff=lfs merge=lfs -text
+*.parquet filter=lfs diff=lfs merge=lfs -text
+*.pb filter=lfs diff=lfs merge=lfs -text
+*.pickle filter=lfs diff=lfs merge=lfs -text
+*.pkl filter=lfs diff=lfs merge=lfs -text
+*.pt filter=lfs diff=lfs merge=lfs -text
+*.pth filter=lfs diff=lfs merge=lfs -text
+*.rar filter=lfs diff=lfs merge=lfs -text
+*.safetensors filter=lfs diff=lfs merge=lfs -text
+saved_model/**/* filter=lfs diff=lfs merge=lfs -text
+*.tar.* filter=lfs diff=lfs merge=lfs -text
+*.tar filter=lfs diff=lfs merge=lfs -text
+*.tflite filter=lfs diff=lfs merge=lfs -text
+*.tgz filter=lfs diff=lfs merge=lfs -text
+*.wasm filter=lfs diff=lfs merge=lfs -text
+*.xz filter=lfs diff=lfs merge=lfs -text
+*.zip filter=lfs diff=lfs merge=lfs -text
+*.zst filter=lfs diff=lfs merge=lfs -text
+*tfevents* filter=lfs diff=lfs merge=lfs -text
+uiprototype2/doc/Refstudio_SRS_v1.0.pdf filter=lfs diff=lfs merge=lfs -text
diff --git a/.gitignore b/.gitignore
index 737d3456fec45dd6fee6ead46857d13788d39312..4cdda4a84c86ef22600116e5c6e2ae6e1dd36c8c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
-node_modules/
-dist/
-src-tauri/target/
-src-tauri/gen/
-.DS_Store
-*.log
-.env
+node_modules/
+dist/
+src-tauri/target/
+src-tauri/gen/
+.DS_Store
+*.log
+.env
diff --git a/README.md b/README.md
index 64a6e79aa81c2f48c5cb35ee8225763ebb4648cf..257119018b25c13298a822fdf810921be5a5e31a 100644
--- a/README.md
+++ b/README.md
@@ -1,98 +1,98 @@
----
-tags:
-- ml-intern
----
-# MUSE Alpha — Creative Browser
-
-Tauri v2 + Rust + SolidJS · Phase 0–4 implementation.
-
-> *The browser that understands that getting the work done matters more than any single feature.*
-
-## Download
-
-**Latest project:** [`artifacts/musealpha-production.zip`](artifacts/musealpha-production.zip)
-
-## Run
-
-```bash
-deno install
-deno task tauri dev
-```
-
-## Architecture
-
-- **Shell:** SolidJS in main WebView (titlebar, sidebar, URL bar, library, board, study mode)
-- **Browser tabs:** Tauri child WebViews via `window.add_child()` (unstable feature)
-- **Ad-block:** `adblock-rust 0.12` + JS injection scripts (Layer 0-3)
-- **Privacy:** WebRTC protection, canvas fingerprint noise, cookie consent auto-deny
-- **Data:** SQLite (via tauri-plugin-sql) + JSON persistence + Stronghold vault
-- **Design:** 8 production-polished theme presets, tokenized design system
-
-## Implemented Phases
-
-### Phase 0 — Foundation ✓
-Custom titlebar, 8-theme system, onboarding, settings persistence, SQLite migrations.
-
-### Phase 1 — Browser ✓
-Multi-tab via child WebViews, vertical tab sidebar, URL navigation, back/forward/reload/zoom.
-
-### Phase 2 — Ad-Block & Privacy ✓
-adblock-rust engine, bundled filter lists, daily updater, JS injection scripts, cosmetic filtering, navigation blocking, per-domain shield controls, HTTPS-first, Stronghold vault.
-
-### Phase 3 — Library & Board ✓
-Library (add by URL, Blake3 hash, dimensions, palette extraction, grid, detail, search), Board (infinite canvas, pan/zoom, image/note/palette cards, drag from library), hover overlay, downloads, sessions.
-
-### Phase 4 — Artist Features ✓
-Quick Study Mode (timer, opacity, flip, notes), Command Palette (Ctrl+K), Session Manager, Color Export (HEX/CSS/GPL/ASE/Procreate), color search by hue.
-
-## Design System
-
-- **Tokens:** `src/styles/tokens.css` — spacing, radius, motion, z-index, per-theme colors
-- **Primitives:** `src/styles/primitives.css` — buttons, inputs, cards, badges, dividers
-- **Themes:** Dusk, Parchment, Midnight, Studio, Moss, Rose, Obsidian, Linen
-- **State:** `src/store/appStore.ts` — centralized SolidJS store
-
-## Keyboard Shortcuts
-
-| Shortcut | Action |
-|---|---|
-| `Ctrl+K` | Command Palette |
-| `Ctrl+Shift+Y` | Quick Study Mode |
-| `Escape` | Close palette/study |
-
-## Docs
-
-- [`docs/MUSE_SRS_v3.md`](docs/MUSE_SRS_v3.md) — Product requirements
-- [`docs/MUSE_SRS_v4.md`](docs/MUSE_SRS_v4.md) — Implementation guide
-
-## Known Limitations
-
-- Library/Board use JSON persistence, not full SQLite FTS5 yet
-- Password manager UI not implemented (vault backend ready)
-- Board annotations/overlays/export not implemented
-- Remote hover overlay IPC requires broad capabilities
-- No test suite
-
----
-
-Generated by [ML Intern](https://github.com/huggingface/ml-intern).
-
-
-## Generated by ML Intern
-
-This model repository was generated by [ML Intern](https://github.com/huggingface/ml-intern), an agent for machine learning research and development on the Hugging Face Hub.
-
-- Try ML Intern: https://smolagents-ml-intern.hf.space
-- Source code: https://github.com/huggingface/ml-intern
-
-## Usage
-
-```python
-from transformers import AutoModelForCausalLM, AutoTokenizer
-
-model_id = 'asdf98/musealpha'
-tokenizer = AutoTokenizer.from_pretrained(model_id)
-model = AutoModelForCausalLM.from_pretrained(model_id)
-```
-
-For non-causal architectures, replace `AutoModelForCausalLM` with the appropriate `AutoModel` class.
+---
+tags:
+- ml-intern
+---
+# MUSE Alpha — Creative Browser
+
+Tauri v2 + Rust + SolidJS · Phase 0–4 implementation.
+
+> *The browser that understands that getting the work done matters more than any single feature.*
+
+## Download
+
+**Latest project:** [`artifacts/musealpha-production.zip`](artifacts/musealpha-production.zip)
+
+## Run
+
+```bash
+deno install
+deno task tauri dev
+```
+
+## Architecture
+
+- **Shell:** SolidJS in main WebView (titlebar, sidebar, URL bar, library, board, study mode)
+- **Browser tabs:** Tauri child WebViews via `window.add_child()` (unstable feature)
+- **Ad-block:** `adblock-rust 0.12` + JS injection scripts (Layer 0-3)
+- **Privacy:** WebRTC protection, canvas fingerprint noise, cookie consent auto-deny
+- **Data:** SQLite (via tauri-plugin-sql) + JSON persistence + Stronghold vault
+- **Design:** 8 production-polished theme presets, tokenized design system
+
+## Implemented Phases
+
+### Phase 0 — Foundation ✓
+Custom titlebar, 8-theme system, onboarding, settings persistence, SQLite migrations.
+
+### Phase 1 — Browser ✓
+Multi-tab via child WebViews, vertical tab sidebar, URL navigation, back/forward/reload/zoom.
+
+### Phase 2 — Ad-Block & Privacy ✓
+adblock-rust engine, bundled filter lists, daily updater, JS injection scripts, cosmetic filtering, navigation blocking, per-domain shield controls, HTTPS-first, Stronghold vault.
+
+### Phase 3 — Library & Board ✓
+Library (add by URL, Blake3 hash, dimensions, palette extraction, grid, detail, search), Board (infinite canvas, pan/zoom, image/note/palette cards, drag from library), hover overlay, downloads, sessions.
+
+### Phase 4 — Artist Features ✓
+Quick Study Mode (timer, opacity, flip, notes), Command Palette (Ctrl+K), Session Manager, Color Export (HEX/CSS/GPL/ASE/Procreate), color search by hue.
+
+## Design System
+
+- **Tokens:** `src/styles/tokens.css` — spacing, radius, motion, z-index, per-theme colors
+- **Primitives:** `src/styles/primitives.css` — buttons, inputs, cards, badges, dividers
+- **Themes:** Dusk, Parchment, Midnight, Studio, Moss, Rose, Obsidian, Linen
+- **State:** `src/store/appStore.ts` — centralized SolidJS store
+
+## Keyboard Shortcuts
+
+| Shortcut | Action |
+|---|---|
+| `Ctrl+K` | Command Palette |
+| `Ctrl+Shift+Y` | Quick Study Mode |
+| `Escape` | Close palette/study |
+
+## Docs
+
+- [`docs/MUSE_SRS_v3.md`](docs/MUSE_SRS_v3.md) — Product requirements
+- [`docs/MUSE_SRS_v4.md`](docs/MUSE_SRS_v4.md) — Implementation guide
+
+## Known Limitations
+
+- Library/Board use JSON persistence, not full SQLite FTS5 yet
+- Password manager UI not implemented (vault backend ready)
+- Board annotations/overlays/export not implemented
+- Remote hover overlay IPC requires broad capabilities
+- No test suite
+
+---
+
+Generated by [ML Intern](https://github.com/huggingface/ml-intern).
+
+
+## Generated by ML Intern
+
+This model repository was generated by [ML Intern](https://github.com/huggingface/ml-intern), an agent for machine learning research and development on the Hugging Face Hub.
+
+- Try ML Intern: https://smolagents-ml-intern.hf.space
+- Source code: https://github.com/huggingface/ml-intern
+
+## Usage
+
+```python
+from transformers import AutoModelForCausalLM, AutoTokenizer
+
+model_id = 'asdf98/musealpha'
+tokenizer = AutoTokenizer.from_pretrained(model_id)
+model = AutoModelForCausalLM.from_pretrained(model_id)
+```
+
+For non-causal architectures, replace `AutoModelForCausalLM` with the appropriate `AutoModel` class.
diff --git a/deno.json b/deno.json
index ff3966c3965ae000fbcc4a920b9fccee27d959bf..04931a323a89657f1c5b5777f5879d72c3d84e49 100644
--- a/deno.json
+++ b/deno.json
@@ -1,19 +1,19 @@
-{
- "tasks": {
- "dev": "deno run -A npm:vite --port 1420 --host",
- "build": "deno run -A npm:vite build",
- "preview": "deno run -A npm:vite preview",
- "tauri": "deno run -A npm:@tauri-apps/cli"
- },
- "imports": {
- "react": "npm:react@^19",
- "react-dom": "npm:react-dom@^19",
- "react/jsx-runtime": "npm:react@^19/jsx-runtime"
- },
- "compilerOptions": {
- "jsx": "react-jsx",
- "jsxImportSource": "react",
- "lib": ["dom", "dom.iterable", "esnext"]
- },
- "nodeModulesDir": "auto"
-}
+{
+ "tasks": {
+ "dev": "deno run -A npm:vite --port 1420 --host",
+ "build": "deno run -A npm:vite build",
+ "preview": "deno run -A npm:vite preview",
+ "tauri": "deno run -A npm:@tauri-apps/cli"
+ },
+ "imports": {
+ "react": "npm:react@^19",
+ "react-dom": "npm:react-dom@^19",
+ "react/jsx-runtime": "npm:react@^19/jsx-runtime"
+ },
+ "compilerOptions": {
+ "jsx": "react-jsx",
+ "jsxImportSource": "react",
+ "lib": ["dom", "dom.iterable", "esnext"]
+ },
+ "nodeModulesDir": "auto"
+}
diff --git a/deno.lock b/deno.lock
new file mode 100644
index 0000000000000000000000000000000000000000..28f91bb690c263ecb564c1444e5885b3ac68f959
--- /dev/null
+++ b/deno.lock
@@ -0,0 +1,1128 @@
+{
+ "version": "5",
+ "specifiers": {
+ "npm:@tailwindcss/vite@4": "4.3.0_vite@6.4.2__picomatch@4.0.4",
+ "npm:@tauri-apps/api@2": "2.11.0",
+ "npm:@tauri-apps/cli@*": "2.11.1",
+ "npm:@tauri-apps/cli@2": "2.11.1",
+ "npm:@tauri-apps/plugin-clipboard-manager@2": "2.3.2",
+ "npm:@tauri-apps/plugin-fs@2": "2.5.1",
+ "npm:@tauri-apps/plugin-opener@2": "2.5.3",
+ "npm:@tauri-apps/plugin-store@2": "2.4.3",
+ "npm:@tauri-apps/plugin-stronghold@2": "2.3.1",
+ "npm:@types/react-dom@19": "19.2.3_@types+react@19.2.14",
+ "npm:@types/react@19": "19.2.14",
+ "npm:@vitejs/plugin-react@^4.3.0": "4.7.0_vite@6.4.2__picomatch@4.0.4_@babel+core@7.29.0",
+ "npm:autoprefixer@^10.4.20": "10.5.0_postcss@8.5.14",
+ "npm:lucide-react@0.468": "0.468.0_react@19.2.6",
+ "npm:motion@12": "12.38.0_react@19.2.6_react-dom@19.2.6__react@19.2.6",
+ "npm:postcss@^8.4.49": "8.5.14",
+ "npm:react-dom@19": "19.2.6_react@19.2.6",
+ "npm:react@19": "19.2.6",
+ "npm:tailwindcss@4": "4.3.0",
+ "npm:typescript@~5.6.2": "5.6.3",
+ "npm:vite@*": "6.4.2_picomatch@4.0.4",
+ "npm:vite@6": "6.4.2_picomatch@4.0.4"
+ },
+ "npm": {
+ "@babel/code-frame@7.29.0": {
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+ "dependencies": [
+ "@babel/helper-validator-identifier",
+ "js-tokens",
+ "picocolors"
+ ]
+ },
+ "@babel/compat-data@7.29.3": {
+ "integrity": "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg=="
+ },
+ "@babel/core@7.29.0": {
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
+ "dependencies": [
+ "@babel/code-frame",
+ "@babel/generator",
+ "@babel/helper-compilation-targets",
+ "@babel/helper-module-transforms",
+ "@babel/helpers",
+ "@babel/parser",
+ "@babel/template",
+ "@babel/traverse",
+ "@babel/types",
+ "@jridgewell/remapping",
+ "convert-source-map",
+ "debug",
+ "gensync",
+ "json5",
+ "semver"
+ ]
+ },
+ "@babel/generator@7.29.1": {
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+ "dependencies": [
+ "@babel/parser",
+ "@babel/types",
+ "@jridgewell/gen-mapping",
+ "@jridgewell/trace-mapping",
+ "jsesc"
+ ]
+ },
+ "@babel/helper-compilation-targets@7.28.6": {
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
+ "dependencies": [
+ "@babel/compat-data",
+ "@babel/helper-validator-option",
+ "browserslist",
+ "lru-cache",
+ "semver"
+ ]
+ },
+ "@babel/helper-globals@7.28.0": {
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="
+ },
+ "@babel/helper-module-imports@7.28.6": {
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+ "dependencies": [
+ "@babel/traverse",
+ "@babel/types"
+ ]
+ },
+ "@babel/helper-module-transforms@7.28.6_@babel+core@7.29.0": {
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+ "dependencies": [
+ "@babel/core",
+ "@babel/helper-module-imports",
+ "@babel/helper-validator-identifier",
+ "@babel/traverse"
+ ]
+ },
+ "@babel/helper-plugin-utils@7.28.6": {
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug=="
+ },
+ "@babel/helper-string-parser@7.27.1": {
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="
+ },
+ "@babel/helper-validator-identifier@7.28.5": {
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="
+ },
+ "@babel/helper-validator-option@7.27.1": {
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="
+ },
+ "@babel/helpers@7.29.2": {
+ "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
+ "dependencies": [
+ "@babel/template",
+ "@babel/types"
+ ]
+ },
+ "@babel/parser@7.29.3": {
+ "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==",
+ "dependencies": [
+ "@babel/types"
+ ],
+ "bin": true
+ },
+ "@babel/plugin-transform-react-jsx-self@7.27.1_@babel+core@7.29.0": {
+ "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
+ "dependencies": [
+ "@babel/core",
+ "@babel/helper-plugin-utils"
+ ]
+ },
+ "@babel/plugin-transform-react-jsx-source@7.27.1_@babel+core@7.29.0": {
+ "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
+ "dependencies": [
+ "@babel/core",
+ "@babel/helper-plugin-utils"
+ ]
+ },
+ "@babel/template@7.28.6": {
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+ "dependencies": [
+ "@babel/code-frame",
+ "@babel/parser",
+ "@babel/types"
+ ]
+ },
+ "@babel/traverse@7.29.0": {
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+ "dependencies": [
+ "@babel/code-frame",
+ "@babel/generator",
+ "@babel/helper-globals",
+ "@babel/parser",
+ "@babel/template",
+ "@babel/types",
+ "debug"
+ ]
+ },
+ "@babel/types@7.29.0": {
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+ "dependencies": [
+ "@babel/helper-string-parser",
+ "@babel/helper-validator-identifier"
+ ]
+ },
+ "@esbuild/aix-ppc64@0.25.12": {
+ "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
+ "os": ["aix"],
+ "cpu": ["ppc64"]
+ },
+ "@esbuild/android-arm64@0.25.12": {
+ "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
+ "os": ["android"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/android-arm@0.25.12": {
+ "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
+ "os": ["android"],
+ "cpu": ["arm"]
+ },
+ "@esbuild/android-x64@0.25.12": {
+ "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
+ "os": ["android"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/darwin-arm64@0.25.12": {
+ "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
+ "os": ["darwin"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/darwin-x64@0.25.12": {
+ "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
+ "os": ["darwin"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/freebsd-arm64@0.25.12": {
+ "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
+ "os": ["freebsd"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/freebsd-x64@0.25.12": {
+ "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
+ "os": ["freebsd"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/linux-arm64@0.25.12": {
+ "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
+ "os": ["linux"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/linux-arm@0.25.12": {
+ "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
+ "os": ["linux"],
+ "cpu": ["arm"]
+ },
+ "@esbuild/linux-ia32@0.25.12": {
+ "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
+ "os": ["linux"],
+ "cpu": ["ia32"]
+ },
+ "@esbuild/linux-loong64@0.25.12": {
+ "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
+ "os": ["linux"],
+ "cpu": ["loong64"]
+ },
+ "@esbuild/linux-mips64el@0.25.12": {
+ "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
+ "os": ["linux"],
+ "cpu": ["mips64el"]
+ },
+ "@esbuild/linux-ppc64@0.25.12": {
+ "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
+ "os": ["linux"],
+ "cpu": ["ppc64"]
+ },
+ "@esbuild/linux-riscv64@0.25.12": {
+ "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
+ "os": ["linux"],
+ "cpu": ["riscv64"]
+ },
+ "@esbuild/linux-s390x@0.25.12": {
+ "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
+ "os": ["linux"],
+ "cpu": ["s390x"]
+ },
+ "@esbuild/linux-x64@0.25.12": {
+ "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
+ "os": ["linux"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/netbsd-arm64@0.25.12": {
+ "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
+ "os": ["netbsd"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/netbsd-x64@0.25.12": {
+ "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
+ "os": ["netbsd"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/openbsd-arm64@0.25.12": {
+ "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
+ "os": ["openbsd"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/openbsd-x64@0.25.12": {
+ "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
+ "os": ["openbsd"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/openharmony-arm64@0.25.12": {
+ "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
+ "os": ["openharmony"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/sunos-x64@0.25.12": {
+ "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
+ "os": ["sunos"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/win32-arm64@0.25.12": {
+ "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
+ "os": ["win32"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/win32-ia32@0.25.12": {
+ "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
+ "os": ["win32"],
+ "cpu": ["ia32"]
+ },
+ "@esbuild/win32-x64@0.25.12": {
+ "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
+ "os": ["win32"],
+ "cpu": ["x64"]
+ },
+ "@jridgewell/gen-mapping@0.3.13": {
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "dependencies": [
+ "@jridgewell/sourcemap-codec",
+ "@jridgewell/trace-mapping"
+ ]
+ },
+ "@jridgewell/remapping@2.3.5": {
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "dependencies": [
+ "@jridgewell/gen-mapping",
+ "@jridgewell/trace-mapping"
+ ]
+ },
+ "@jridgewell/resolve-uri@3.1.2": {
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="
+ },
+ "@jridgewell/sourcemap-codec@1.5.5": {
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="
+ },
+ "@jridgewell/trace-mapping@0.3.31": {
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "dependencies": [
+ "@jridgewell/resolve-uri",
+ "@jridgewell/sourcemap-codec"
+ ]
+ },
+ "@rolldown/pluginutils@1.0.0-beta.27": {
+ "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA=="
+ },
+ "@rollup/rollup-android-arm-eabi@4.60.3": {
+ "integrity": "sha512-x35CNW/ANXG3hE/EZpRU8MXX1JDN86hBb2wMGAtltkz7pc6cxgjpy1OMMfDosOQ+2hWqIkag/fGok1Yady9nGw==",
+ "os": ["android"],
+ "cpu": ["arm"]
+ },
+ "@rollup/rollup-android-arm64@4.60.3": {
+ "integrity": "sha512-xw3xtkDApIOGayehp2+Rz4zimfkaX65r4t47iy+ymQB2G4iJCBBfj0ogVg5jpvjpn8UWn/+q9tprxleYeNp3Hw==",
+ "os": ["android"],
+ "cpu": ["arm64"]
+ },
+ "@rollup/rollup-darwin-arm64@4.60.3": {
+ "integrity": "sha512-vo6Y5Qfpx7/5EaamIwi0WqW2+zfiusVihKatLvtN1VFVy3D13uERk/6gZLU1UiHRL6fDXqj/ELIeVRGnvcTE1g==",
+ "os": ["darwin"],
+ "cpu": ["arm64"]
+ },
+ "@rollup/rollup-darwin-x64@4.60.3": {
+ "integrity": "sha512-D+0QGcZhBzTN82weOnsSlY7V7+RMmPuF1CkbxyMAGE8+ZHeUjyb76ZiWmBlCu//AQQONvxcqRbwZTajZKqjuOw==",
+ "os": ["darwin"],
+ "cpu": ["x64"]
+ },
+ "@rollup/rollup-freebsd-arm64@4.60.3": {
+ "integrity": "sha512-6HnvHCT7fDyj6R0Ph7A6x8dQS/S38MClRWeDLqc0MdfWkxjiu1HSDYrdPhqSILzjTIC/pnXbbJbo+ft+gy/9hQ==",
+ "os": ["freebsd"],
+ "cpu": ["arm64"]
+ },
+ "@rollup/rollup-freebsd-x64@4.60.3": {
+ "integrity": "sha512-KHLgC3WKlUYW3ShFKnnosZDOJ0xjg9zp7au3sIm2bs/tGBeC2ipmvRh/N7JKi0t9Ue20C0dpEshi8WUubg+cnA==",
+ "os": ["freebsd"],
+ "cpu": ["x64"]
+ },
+ "@rollup/rollup-linux-arm-gnueabihf@4.60.3": {
+ "integrity": "sha512-DV6fJoxEYWJOvaZIsok7KrYl0tPvga5OZ2yvKHNNYyk/2roMLqQAbGhr78EQ5YhHpnhLKJD3S1WFusAkmUuV5g==",
+ "os": ["linux"],
+ "cpu": ["arm"]
+ },
+ "@rollup/rollup-linux-arm-musleabihf@4.60.3": {
+ "integrity": "sha512-mQKoJAzvuOs6F+TZybQO4GOTSMUu7v0WdxEk24krQ/uUxXoPTtHjuaUuPmFhtBcM4K0ons8nrE3JyhTuCFtT/w==",
+ "os": ["linux"],
+ "cpu": ["arm"]
+ },
+ "@rollup/rollup-linux-arm64-gnu@4.60.3": {
+ "integrity": "sha512-Whjj2qoiJ6+OOJMGptTYazaJvjOJm+iKHpXQM1P3LzGjt7Ff++Tp7nH4N8J/BUA7R9IHfDyx4DJIflifwnbmIA==",
+ "os": ["linux"],
+ "cpu": ["arm64"]
+ },
+ "@rollup/rollup-linux-arm64-musl@4.60.3": {
+ "integrity": "sha512-4YTNHKqGng5+yiZt3mg77nmyuCfmNfX4fPmyUapBcIk+BdwSwmCWGXOUxhXbBEkFHtoN5boLj/5NON+u5QC9tg==",
+ "os": ["linux"],
+ "cpu": ["arm64"]
+ },
+ "@rollup/rollup-linux-loong64-gnu@4.60.3": {
+ "integrity": "sha512-SU3kNlhkpI4UqlUc2VXPGK9o886ZsSeGfMAX2ba2b8DKmMXq4AL7KUrkSWVbb7koVqx41Yczx6dx5PNargIrEA==",
+ "os": ["linux"],
+ "cpu": ["loong64"]
+ },
+ "@rollup/rollup-linux-loong64-musl@4.60.3": {
+ "integrity": "sha512-6lDLl5h4TXpB1mTf2rQWnAk/LcXrx9vBfu/DT5TIPhvMhRWaZ5MxkIc8u4lJAmBo6klTe1ywXIUHFjylW505sg==",
+ "os": ["linux"],
+ "cpu": ["loong64"]
+ },
+ "@rollup/rollup-linux-ppc64-gnu@4.60.3": {
+ "integrity": "sha512-BMo8bOw8evlup/8G+cj5xWtPyp93xPdyoSN16Zy90Q2QZ0ZYRhCt6ZJSwbrRzG9HApFabjwj2p25TUPDWrhzqQ==",
+ "os": ["linux"],
+ "cpu": ["ppc64"]
+ },
+ "@rollup/rollup-linux-ppc64-musl@4.60.3": {
+ "integrity": "sha512-E0L8X1dZN1/Rph+5VPF6Xj2G7JJvMACVXtamTJIDrVI44Y3K+G8gQaMEAavbqCGTa16InptiVrX6eM6pmJ+7qA==",
+ "os": ["linux"],
+ "cpu": ["ppc64"]
+ },
+ "@rollup/rollup-linux-riscv64-gnu@4.60.3": {
+ "integrity": "sha512-oZJ/WHaVfHUiRAtmTAeo3DcevNsVvH8mbvodjZy7D5QKvCefO371SiKRpxoDcCxB3PTRTLayWBkvmDQKTcX/sw==",
+ "os": ["linux"],
+ "cpu": ["riscv64"]
+ },
+ "@rollup/rollup-linux-riscv64-musl@4.60.3": {
+ "integrity": "sha512-Dhbyh7j9FybM3YaTgaHmVALwA8AkUwTPccyCQ79TG9AJUsMQqgN1DDEZNr4+QUfwiWvLDumW5vdwzoeUF+TNxQ==",
+ "os": ["linux"],
+ "cpu": ["riscv64"]
+ },
+ "@rollup/rollup-linux-s390x-gnu@4.60.3": {
+ "integrity": "sha512-cJd1X5XhHHlltkaypz1UcWLA8AcoIi1aWhsvaWDskD1oz2eKCypnqvTQ8ykMNI0RSmm7NkTdSqSSD7zM0xa6Ig==",
+ "os": ["linux"],
+ "cpu": ["s390x"]
+ },
+ "@rollup/rollup-linux-x64-gnu@4.60.3": {
+ "integrity": "sha512-DAZDBHQfG2oQuhY7mc6I3/qB4LU2fQCjRvxbDwd/Jdvb9fypP4IJ4qmtu6lNjes6B531AI8cg1aKC2di97bUxA==",
+ "os": ["linux"],
+ "cpu": ["x64"]
+ },
+ "@rollup/rollup-linux-x64-musl@4.60.3": {
+ "integrity": "sha512-cRxsE8c13mZOh3vP+wLDxpQBRrOHDIGOWyDL93Sy0Ga8y515fBcC2pjUfFwUe5T7tqvTvWbCpg1URM/AXdWIXA==",
+ "os": ["linux"],
+ "cpu": ["x64"]
+ },
+ "@rollup/rollup-openbsd-x64@4.60.3": {
+ "integrity": "sha512-QaWcIgRxqEdQdhJqW4DJctsH6HCmo5vHxY0krHSX4jMtOqfzC+dqDGuHM87bu4H8JBeibWx7jFz+h6/4C8wA5Q==",
+ "os": ["openbsd"],
+ "cpu": ["x64"]
+ },
+ "@rollup/rollup-openharmony-arm64@4.60.3": {
+ "integrity": "sha512-AaXwSvUi3QIPtroAUw1t5yHGIyqKEXwH54WUocFolZhpGDruJcs8c+xPNDRn4XiQsS7MEwnYsHW2l0MBLDMkWg==",
+ "os": ["openharmony"],
+ "cpu": ["arm64"]
+ },
+ "@rollup/rollup-win32-arm64-msvc@4.60.3": {
+ "integrity": "sha512-65LAKM/bAWDqKNEelHlcHvm2V+Vfb8C6INFxQXRHCvaVN1rJfwr4NvdP4FyzUaLqWfaCGaadf6UbTm8xJeYfEg==",
+ "os": ["win32"],
+ "cpu": ["arm64"]
+ },
+ "@rollup/rollup-win32-ia32-msvc@4.60.3": {
+ "integrity": "sha512-EEM2gyhBF5MFnI6vMKdX1LAosE627RGBzIoGMdLloPZkXrUN0Ckqgr2Qi8+J3zip/8NVVro3/FjB+tjhZUgUHA==",
+ "os": ["win32"],
+ "cpu": ["ia32"]
+ },
+ "@rollup/rollup-win32-x64-gnu@4.60.3": {
+ "integrity": "sha512-E5Eb5H/DpxaoXH++Qkv28RcUJboMopmdDUALBczvHMf7hNIxaDZqwY5lK12UK1BHacSmvupoEWGu+n993Z0y1A==",
+ "os": ["win32"],
+ "cpu": ["x64"]
+ },
+ "@rollup/rollup-win32-x64-msvc@4.60.3": {
+ "integrity": "sha512-hPt/bgL5cE+Qp+/TPHBqptcAgPzgj46mPcg/16zNUmbQk0j+mOEQV/+Lqu8QRtDV3Ek95Q6FeFITpuhl6OTsAA==",
+ "os": ["win32"],
+ "cpu": ["x64"]
+ },
+ "@tailwindcss/node@4.3.0": {
+ "integrity": "sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==",
+ "dependencies": [
+ "@jridgewell/remapping",
+ "enhanced-resolve",
+ "jiti",
+ "lightningcss",
+ "magic-string",
+ "source-map-js",
+ "tailwindcss"
+ ]
+ },
+ "@tailwindcss/oxide-android-arm64@4.3.0": {
+ "integrity": "sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==",
+ "os": ["android"],
+ "cpu": ["arm64"]
+ },
+ "@tailwindcss/oxide-darwin-arm64@4.3.0": {
+ "integrity": "sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==",
+ "os": ["darwin"],
+ "cpu": ["arm64"]
+ },
+ "@tailwindcss/oxide-darwin-x64@4.3.0": {
+ "integrity": "sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==",
+ "os": ["darwin"],
+ "cpu": ["x64"]
+ },
+ "@tailwindcss/oxide-freebsd-x64@4.3.0": {
+ "integrity": "sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==",
+ "os": ["freebsd"],
+ "cpu": ["x64"]
+ },
+ "@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0": {
+ "integrity": "sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==",
+ "os": ["linux"],
+ "cpu": ["arm"]
+ },
+ "@tailwindcss/oxide-linux-arm64-gnu@4.3.0": {
+ "integrity": "sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==",
+ "os": ["linux"],
+ "cpu": ["arm64"]
+ },
+ "@tailwindcss/oxide-linux-arm64-musl@4.3.0": {
+ "integrity": "sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==",
+ "os": ["linux"],
+ "cpu": ["arm64"]
+ },
+ "@tailwindcss/oxide-linux-x64-gnu@4.3.0": {
+ "integrity": "sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==",
+ "os": ["linux"],
+ "cpu": ["x64"]
+ },
+ "@tailwindcss/oxide-linux-x64-musl@4.3.0": {
+ "integrity": "sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==",
+ "os": ["linux"],
+ "cpu": ["x64"]
+ },
+ "@tailwindcss/oxide-wasm32-wasi@4.3.0": {
+ "integrity": "sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==",
+ "cpu": ["wasm32"]
+ },
+ "@tailwindcss/oxide-win32-arm64-msvc@4.3.0": {
+ "integrity": "sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==",
+ "os": ["win32"],
+ "cpu": ["arm64"]
+ },
+ "@tailwindcss/oxide-win32-x64-msvc@4.3.0": {
+ "integrity": "sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==",
+ "os": ["win32"],
+ "cpu": ["x64"]
+ },
+ "@tailwindcss/oxide@4.3.0": {
+ "integrity": "sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==",
+ "optionalDependencies": [
+ "@tailwindcss/oxide-android-arm64",
+ "@tailwindcss/oxide-darwin-arm64",
+ "@tailwindcss/oxide-darwin-x64",
+ "@tailwindcss/oxide-freebsd-x64",
+ "@tailwindcss/oxide-linux-arm-gnueabihf",
+ "@tailwindcss/oxide-linux-arm64-gnu",
+ "@tailwindcss/oxide-linux-arm64-musl",
+ "@tailwindcss/oxide-linux-x64-gnu",
+ "@tailwindcss/oxide-linux-x64-musl",
+ "@tailwindcss/oxide-wasm32-wasi",
+ "@tailwindcss/oxide-win32-arm64-msvc",
+ "@tailwindcss/oxide-win32-x64-msvc"
+ ]
+ },
+ "@tailwindcss/vite@4.3.0_vite@6.4.2__picomatch@4.0.4": {
+ "integrity": "sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw==",
+ "dependencies": [
+ "@tailwindcss/node",
+ "@tailwindcss/oxide",
+ "tailwindcss",
+ "vite"
+ ]
+ },
+ "@tauri-apps/api@2.11.0": {
+ "integrity": "sha512-7CinYODhky9lmO23xHnUFv0Xt43fbtWMyxZcLcRBlFkcgXKuEirBvHpmtJ89YMhyeGcq20Wuc47Fa4XjyniywA=="
+ },
+ "@tauri-apps/cli-darwin-arm64@2.11.1": {
+ "integrity": "sha512-6eEKMBXsQPCuM1EmvrjT2+aBuxWQuFdKdW8pzNuNQtpq45nEEpBlD5gr8pUeAyOU1DQKlkFaEc/MPBxb/Pfjtg==",
+ "os": ["darwin"],
+ "cpu": ["arm64"]
+ },
+ "@tauri-apps/cli-darwin-x64@2.11.1": {
+ "integrity": "sha512-LQUO7exfRWjWALNhetph5guWpMeHphRpokOLk0OIbTTExaNwJNFu3I4vb+CCM/4G/QGoZe/5XikZOJdNEFP1ig==",
+ "os": ["darwin"],
+ "cpu": ["x64"]
+ },
+ "@tauri-apps/cli-linux-arm-gnueabihf@2.11.1": {
+ "integrity": "sha512-5i/awiBCRRhOUG8yjn0fMHXIWD5Ez8eEk5LtvOxyQrKuJkRaZDvnbIjZbE183blAwkoA4xN3aO/prJiqscl02Q==",
+ "os": ["linux"],
+ "cpu": ["arm"]
+ },
+ "@tauri-apps/cli-linux-arm64-gnu@2.11.1": {
+ "integrity": "sha512-9LrwDw3S9Fygtw/Q6WDhOP+3svJRGAsejeE+GKrc0eO1ThMVhwi2LL6hw4dlKw93IfS7VY1G19sWGxJ/NcU4nA==",
+ "os": ["linux"],
+ "cpu": ["arm64"]
+ },
+ "@tauri-apps/cli-linux-arm64-musl@2.11.1": {
+ "integrity": "sha512-mNA5dbbqPqDUdTIwdUYYuhO2GvIe9UnB2r0VU2njxBOS3Opbx4gKNC5yP0Iu4rYmEmqdlwry9VzGZQ3wq9dyFg==",
+ "os": ["linux"],
+ "cpu": ["arm64"]
+ },
+ "@tauri-apps/cli-linux-riscv64-gnu@2.11.1": {
+ "integrity": "sha512-fZj3Gwq+6fUs305T5WQiD5iSGJw+j/4w/HGmk4sHDAcy+rp9zU5eaxB7nOyz5/I/nkNAuKPqfp6uIbiUBXkBCw==",
+ "os": ["linux"],
+ "cpu": ["riscv64"]
+ },
+ "@tauri-apps/cli-linux-x64-gnu@2.11.1": {
+ "integrity": "sha512-XFxGxOvHM7jjeD6ozCKdGfhzJ7lERYDGZl1/Kb4fsvchaJsfLJ981TlyTG8Qy/gFq+f5GitH3bfrX9JAkjPEyw==",
+ "os": ["linux"],
+ "cpu": ["x64"]
+ },
+ "@tauri-apps/cli-linux-x64-musl@2.11.1": {
+ "integrity": "sha512-d5C2/Zm+68v7R9wTuTCjRQEVrWjcdMkJBZ1+rXse+QdMMlTB9+u9PDNDLw9PQflWxYLaYZ7tjxxL9Nb9II6PbA==",
+ "os": ["linux"],
+ "cpu": ["x64"]
+ },
+ "@tauri-apps/cli-win32-arm64-msvc@2.11.1": {
+ "integrity": "sha512-YdeVWFAR1pTXzUU6NLstPq4G6OLxuDrXCXEBdmBH+5EZIDXUx0D2kJlz3+YjpazkKvAzYpgziTsyRagls0OfRQ==",
+ "os": ["win32"],
+ "cpu": ["arm64"]
+ },
+ "@tauri-apps/cli-win32-ia32-msvc@2.11.1": {
+ "integrity": "sha512-VBGkuH0eB9K9LLSMv361Gzr5Ou72sCS4+ztpmkWEQ+wd/amhcYOsf3X6qn1RJZDzIhiOYHJEOysZUC3baD01rA==",
+ "os": ["win32"],
+ "cpu": ["ia32"]
+ },
+ "@tauri-apps/cli-win32-x64-msvc@2.11.1": {
+ "integrity": "sha512-b3ORhIAKgp9ZYY+zBt7b7r0kLU2kjvyGF0+MS2SBym3emsweGPybEqocJcmtMuxyBhkOKHP4CiuEJEDuAlTx6A==",
+ "os": ["win32"],
+ "cpu": ["x64"]
+ },
+ "@tauri-apps/cli@2.11.1": {
+ "integrity": "sha512-rpEbaJ/HzNb6fwsquwoAbq29/Vt4gADhS423A8fdkwL4edJ0wZmoB8ar7O6JPDL834MUKOCm/rrJ7c9oAaEaYQ==",
+ "optionalDependencies": [
+ "@tauri-apps/cli-darwin-arm64",
+ "@tauri-apps/cli-darwin-x64",
+ "@tauri-apps/cli-linux-arm-gnueabihf",
+ "@tauri-apps/cli-linux-arm64-gnu",
+ "@tauri-apps/cli-linux-arm64-musl",
+ "@tauri-apps/cli-linux-riscv64-gnu",
+ "@tauri-apps/cli-linux-x64-gnu",
+ "@tauri-apps/cli-linux-x64-musl",
+ "@tauri-apps/cli-win32-arm64-msvc",
+ "@tauri-apps/cli-win32-ia32-msvc",
+ "@tauri-apps/cli-win32-x64-msvc"
+ ],
+ "bin": true
+ },
+ "@tauri-apps/plugin-clipboard-manager@2.3.2": {
+ "integrity": "sha512-CUlb5Hqi2oZbcZf4VUyUH53XWPPdtpw43EUpCza5HWZJwxEoDowFzNUDt1tRUXA8Uq+XPn17Ysfptip33sG4eQ==",
+ "dependencies": [
+ "@tauri-apps/api"
+ ]
+ },
+ "@tauri-apps/plugin-fs@2.5.1": {
+ "integrity": "sha512-9Lz+Jopp6QyeEWhlpkMx4R/+P9HgR+AVAI4vOZhlT8Xaymtz8iVI/Ov984/XTqgJz/5gz5NretqPB/XEMS3NhQ==",
+ "dependencies": [
+ "@tauri-apps/api"
+ ]
+ },
+ "@tauri-apps/plugin-opener@2.5.3": {
+ "integrity": "sha512-CCcUltXMOfUEArbf3db3kCE7Ggy1ExBEBl51Ko2ODJ6GDYHRp1nSNlQm5uNCFY5k7/ufaK5Ib3Du/Zir19IYQQ==",
+ "dependencies": [
+ "@tauri-apps/api"
+ ]
+ },
+ "@tauri-apps/plugin-store@2.4.3": {
+ "integrity": "sha512-9LWPj9yMphRi9czEtUv87XHbl1b6xgd9EXpPrUnq6nG7+nbtoF84d4Kwz9xhAv/Hf30sr58pq7EOlyI936y8qw==",
+ "dependencies": [
+ "@tauri-apps/api"
+ ]
+ },
+ "@tauri-apps/plugin-stronghold@2.3.1": {
+ "integrity": "sha512-zFbD1Apk/VFdWaoGaoKcouRrZnzLFiNY9b1KDeBaN47sMaMHRYIa+ZDhvbzMOyH314+OHCQBXfe8I/ph59Lp9g==",
+ "dependencies": [
+ "@tauri-apps/api"
+ ]
+ },
+ "@types/babel__core@7.20.5": {
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dependencies": [
+ "@babel/parser",
+ "@babel/types",
+ "@types/babel__generator",
+ "@types/babel__template",
+ "@types/babel__traverse"
+ ]
+ },
+ "@types/babel__generator@7.27.0": {
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
+ "dependencies": [
+ "@babel/types"
+ ]
+ },
+ "@types/babel__template@7.4.4": {
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dependencies": [
+ "@babel/parser",
+ "@babel/types"
+ ]
+ },
+ "@types/babel__traverse@7.28.0": {
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
+ "dependencies": [
+ "@babel/types"
+ ]
+ },
+ "@types/estree@1.0.8": {
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="
+ },
+ "@types/react-dom@19.2.3_@types+react@19.2.14": {
+ "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
+ "dependencies": [
+ "@types/react"
+ ]
+ },
+ "@types/react@19.2.14": {
+ "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
+ "dependencies": [
+ "csstype"
+ ]
+ },
+ "@vitejs/plugin-react@4.7.0_vite@6.4.2__picomatch@4.0.4_@babel+core@7.29.0": {
+ "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==",
+ "dependencies": [
+ "@babel/core",
+ "@babel/plugin-transform-react-jsx-self",
+ "@babel/plugin-transform-react-jsx-source",
+ "@rolldown/pluginutils",
+ "@types/babel__core",
+ "react-refresh",
+ "vite"
+ ]
+ },
+ "autoprefixer@10.5.0_postcss@8.5.14": {
+ "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==",
+ "dependencies": [
+ "browserslist",
+ "caniuse-lite",
+ "fraction.js",
+ "picocolors",
+ "postcss",
+ "postcss-value-parser"
+ ],
+ "bin": true
+ },
+ "baseline-browser-mapping@2.10.29": {
+ "integrity": "sha512-Asa2krT+XTPZINCS+2QcyS8WTkObE77RwkydwF7h6DmnKqbvlalz93m/dnphUyCa6SWSP51VgtEUf2FN+gelFQ==",
+ "bin": true
+ },
+ "browserslist@4.28.2": {
+ "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==",
+ "dependencies": [
+ "baseline-browser-mapping",
+ "caniuse-lite",
+ "electron-to-chromium",
+ "node-releases",
+ "update-browserslist-db"
+ ],
+ "bin": true
+ },
+ "caniuse-lite@1.0.30001792": {
+ "integrity": "sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw=="
+ },
+ "convert-source-map@2.0.0": {
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
+ },
+ "csstype@3.2.3": {
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="
+ },
+ "debug@4.4.3": {
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dependencies": [
+ "ms"
+ ]
+ },
+ "detect-libc@2.1.2": {
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="
+ },
+ "electron-to-chromium@1.5.353": {
+ "integrity": "sha512-kOrWphBi8TOZyiJZqsgqIle0lw+tzmnQK83pV9dZUd01Nm2POECSyFQMAuarzZdYqQW7FH9RaYOuaRo3h+bQ3w=="
+ },
+ "enhanced-resolve@5.21.2": {
+ "integrity": "sha512-xe9vQb5kReirPUxgQrXA3ihgbCqssmTiM7cOZ+Gzu+VeGWgpV98lLZvp0dl4yriyAePcewxGUs9UpKD8PET9KQ==",
+ "dependencies": [
+ "graceful-fs",
+ "tapable"
+ ]
+ },
+ "esbuild@0.25.12": {
+ "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
+ "optionalDependencies": [
+ "@esbuild/aix-ppc64",
+ "@esbuild/android-arm",
+ "@esbuild/android-arm64",
+ "@esbuild/android-x64",
+ "@esbuild/darwin-arm64",
+ "@esbuild/darwin-x64",
+ "@esbuild/freebsd-arm64",
+ "@esbuild/freebsd-x64",
+ "@esbuild/linux-arm",
+ "@esbuild/linux-arm64",
+ "@esbuild/linux-ia32",
+ "@esbuild/linux-loong64",
+ "@esbuild/linux-mips64el",
+ "@esbuild/linux-ppc64",
+ "@esbuild/linux-riscv64",
+ "@esbuild/linux-s390x",
+ "@esbuild/linux-x64",
+ "@esbuild/netbsd-arm64",
+ "@esbuild/netbsd-x64",
+ "@esbuild/openbsd-arm64",
+ "@esbuild/openbsd-x64",
+ "@esbuild/openharmony-arm64",
+ "@esbuild/sunos-x64",
+ "@esbuild/win32-arm64",
+ "@esbuild/win32-ia32",
+ "@esbuild/win32-x64"
+ ],
+ "scripts": true,
+ "bin": true
+ },
+ "escalade@3.2.0": {
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="
+ },
+ "fdir@6.5.0_picomatch@4.0.4": {
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dependencies": [
+ "picomatch"
+ ],
+ "optionalPeers": [
+ "picomatch"
+ ]
+ },
+ "fraction.js@5.3.4": {
+ "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ=="
+ },
+ "framer-motion@12.38.0_react@19.2.6_react-dom@19.2.6__react@19.2.6": {
+ "integrity": "sha512-rFYkY/pigbcswl1XQSb7q424kSTQ8q6eAC+YUsSKooHQYuLdzdHjrt6uxUC+PRAO++q5IS7+TamgIw1AphxR+g==",
+ "dependencies": [
+ "motion-dom",
+ "motion-utils",
+ "react",
+ "react-dom",
+ "tslib"
+ ],
+ "optionalPeers": [
+ "react",
+ "react-dom"
+ ]
+ },
+ "fsevents@2.3.3": {
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "os": ["darwin"],
+ "scripts": true
+ },
+ "gensync@1.0.0-beta.2": {
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
+ },
+ "graceful-fs@4.2.11": {
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+ },
+ "jiti@2.7.0": {
+ "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==",
+ "bin": true
+ },
+ "js-tokens@4.0.0": {
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "jsesc@3.1.0": {
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "bin": true
+ },
+ "json5@2.2.3": {
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "bin": true
+ },
+ "lightningcss-android-arm64@1.32.0": {
+ "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
+ "os": ["android"],
+ "cpu": ["arm64"]
+ },
+ "lightningcss-darwin-arm64@1.32.0": {
+ "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
+ "os": ["darwin"],
+ "cpu": ["arm64"]
+ },
+ "lightningcss-darwin-x64@1.32.0": {
+ "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
+ "os": ["darwin"],
+ "cpu": ["x64"]
+ },
+ "lightningcss-freebsd-x64@1.32.0": {
+ "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
+ "os": ["freebsd"],
+ "cpu": ["x64"]
+ },
+ "lightningcss-linux-arm-gnueabihf@1.32.0": {
+ "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
+ "os": ["linux"],
+ "cpu": ["arm"]
+ },
+ "lightningcss-linux-arm64-gnu@1.32.0": {
+ "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
+ "os": ["linux"],
+ "cpu": ["arm64"]
+ },
+ "lightningcss-linux-arm64-musl@1.32.0": {
+ "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
+ "os": ["linux"],
+ "cpu": ["arm64"]
+ },
+ "lightningcss-linux-x64-gnu@1.32.0": {
+ "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
+ "os": ["linux"],
+ "cpu": ["x64"]
+ },
+ "lightningcss-linux-x64-musl@1.32.0": {
+ "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
+ "os": ["linux"],
+ "cpu": ["x64"]
+ },
+ "lightningcss-win32-arm64-msvc@1.32.0": {
+ "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
+ "os": ["win32"],
+ "cpu": ["arm64"]
+ },
+ "lightningcss-win32-x64-msvc@1.32.0": {
+ "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
+ "os": ["win32"],
+ "cpu": ["x64"]
+ },
+ "lightningcss@1.32.0": {
+ "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
+ "dependencies": [
+ "detect-libc"
+ ],
+ "optionalDependencies": [
+ "lightningcss-android-arm64",
+ "lightningcss-darwin-arm64",
+ "lightningcss-darwin-x64",
+ "lightningcss-freebsd-x64",
+ "lightningcss-linux-arm-gnueabihf",
+ "lightningcss-linux-arm64-gnu",
+ "lightningcss-linux-arm64-musl",
+ "lightningcss-linux-x64-gnu",
+ "lightningcss-linux-x64-musl",
+ "lightningcss-win32-arm64-msvc",
+ "lightningcss-win32-x64-msvc"
+ ]
+ },
+ "lru-cache@5.1.1": {
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dependencies": [
+ "yallist"
+ ]
+ },
+ "lucide-react@0.468.0_react@19.2.6": {
+ "integrity": "sha512-6koYRhnM2N0GGZIdXzSeiNwguv1gt/FAjZOiPl76roBi3xKEXa4WmfpxgQwTTL4KipXjefrnf3oV4IsYhi4JFA==",
+ "dependencies": [
+ "react"
+ ]
+ },
+ "magic-string@0.30.21": {
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "dependencies": [
+ "@jridgewell/sourcemap-codec"
+ ]
+ },
+ "motion-dom@12.38.0": {
+ "integrity": "sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==",
+ "dependencies": [
+ "motion-utils"
+ ]
+ },
+ "motion-utils@12.36.0": {
+ "integrity": "sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg=="
+ },
+ "motion@12.38.0_react@19.2.6_react-dom@19.2.6__react@19.2.6": {
+ "integrity": "sha512-uYfXzeHlgThchzwz5Te47dlv5JOUC7OB4rjJ/7XTUgtBZD8CchMN8qEJ4ZVsUmTyYA44zjV0fBwsiktRuFnn+w==",
+ "dependencies": [
+ "framer-motion",
+ "react",
+ "react-dom",
+ "tslib"
+ ],
+ "optionalPeers": [
+ "react",
+ "react-dom"
+ ]
+ },
+ "ms@2.1.3": {
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "nanoid@3.3.12": {
+ "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==",
+ "bin": true
+ },
+ "node-releases@2.0.38": {
+ "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw=="
+ },
+ "picocolors@1.1.1": {
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
+ },
+ "picomatch@4.0.4": {
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="
+ },
+ "postcss-value-parser@4.2.0": {
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
+ },
+ "postcss@8.5.14": {
+ "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==",
+ "dependencies": [
+ "nanoid",
+ "picocolors",
+ "source-map-js"
+ ]
+ },
+ "react-dom@19.2.6_react@19.2.6": {
+ "integrity": "sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==",
+ "dependencies": [
+ "react",
+ "scheduler"
+ ]
+ },
+ "react-refresh@0.17.0": {
+ "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ=="
+ },
+ "react@19.2.6": {
+ "integrity": "sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q=="
+ },
+ "rollup@4.60.3": {
+ "integrity": "sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A==",
+ "dependencies": [
+ "@types/estree"
+ ],
+ "optionalDependencies": [
+ "@rollup/rollup-android-arm-eabi",
+ "@rollup/rollup-android-arm64",
+ "@rollup/rollup-darwin-arm64",
+ "@rollup/rollup-darwin-x64",
+ "@rollup/rollup-freebsd-arm64",
+ "@rollup/rollup-freebsd-x64",
+ "@rollup/rollup-linux-arm-gnueabihf",
+ "@rollup/rollup-linux-arm-musleabihf",
+ "@rollup/rollup-linux-arm64-gnu",
+ "@rollup/rollup-linux-arm64-musl",
+ "@rollup/rollup-linux-loong64-gnu",
+ "@rollup/rollup-linux-loong64-musl",
+ "@rollup/rollup-linux-ppc64-gnu",
+ "@rollup/rollup-linux-ppc64-musl",
+ "@rollup/rollup-linux-riscv64-gnu",
+ "@rollup/rollup-linux-riscv64-musl",
+ "@rollup/rollup-linux-s390x-gnu",
+ "@rollup/rollup-linux-x64-gnu",
+ "@rollup/rollup-linux-x64-musl",
+ "@rollup/rollup-openbsd-x64",
+ "@rollup/rollup-openharmony-arm64",
+ "@rollup/rollup-win32-arm64-msvc",
+ "@rollup/rollup-win32-ia32-msvc",
+ "@rollup/rollup-win32-x64-gnu",
+ "@rollup/rollup-win32-x64-msvc",
+ "fsevents"
+ ],
+ "bin": true
+ },
+ "scheduler@0.27.0": {
+ "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="
+ },
+ "semver@6.3.1": {
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "bin": true
+ },
+ "source-map-js@1.2.1": {
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="
+ },
+ "tailwindcss@4.3.0": {
+ "integrity": "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q=="
+ },
+ "tapable@2.3.3": {
+ "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="
+ },
+ "tinyglobby@0.2.16_picomatch@4.0.4": {
+ "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
+ "dependencies": [
+ "fdir",
+ "picomatch"
+ ]
+ },
+ "tslib@2.8.1": {
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
+ },
+ "typescript@5.6.3": {
+ "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
+ "bin": true
+ },
+ "update-browserslist-db@1.2.3_browserslist@4.28.2": {
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+ "dependencies": [
+ "browserslist",
+ "escalade",
+ "picocolors"
+ ],
+ "bin": true
+ },
+ "vite@6.4.2_picomatch@4.0.4": {
+ "integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==",
+ "dependencies": [
+ "esbuild",
+ "fdir",
+ "picomatch",
+ "postcss",
+ "rollup",
+ "tinyglobby"
+ ],
+ "optionalDependencies": [
+ "fsevents"
+ ],
+ "bin": true
+ },
+ "yallist@3.1.1": {
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ }
+ },
+ "workspace": {
+ "dependencies": [
+ "npm:react-dom@19",
+ "npm:react@19"
+ ],
+ "packageJson": {
+ "dependencies": [
+ "npm:@tailwindcss/vite@4",
+ "npm:@tauri-apps/api@2",
+ "npm:@tauri-apps/cli@2",
+ "npm:@tauri-apps/plugin-clipboard-manager@2",
+ "npm:@tauri-apps/plugin-fs@2",
+ "npm:@tauri-apps/plugin-opener@2",
+ "npm:@tauri-apps/plugin-store@2",
+ "npm:@tauri-apps/plugin-stronghold@2",
+ "npm:@types/react-dom@19",
+ "npm:@types/react@19",
+ "npm:@vitejs/plugin-react@^4.3.0",
+ "npm:autoprefixer@^10.4.20",
+ "npm:lucide-react@0.468",
+ "npm:motion@12",
+ "npm:postcss@^8.4.49",
+ "npm:react-dom@19",
+ "npm:react@19",
+ "npm:tailwindcss@4",
+ "npm:typescript@~5.6.2",
+ "npm:vite@6"
+ ]
+ }
+ }
+}
diff --git a/docs/ARCHITECTURE_PIVOT.md b/docs/ARCHITECTURE_PIVOT.md
index 17b6e4ff34844c6d7dad790eee91e5e52f72c921..4d879b59fd9f9c978aa6ee69748f6fff98c89518 100644
--- a/docs/ARCHITECTURE_PIVOT.md
+++ b/docs/ARCHITECTURE_PIVOT.md
@@ -1,43 +1,43 @@
-# Browser-First Era Archive
-
-This document marks the architectural pivot from **browser-first** (Muse Alpha v0.2) to **board-first** (RefStudio v1.0).
-
-## What was the browser-first approach?
-- Main workspace was a web browser with tabs
-- Sidebar navigation between Home/Browser/Library/Board/Settings views
-- Board was a secondary view accessed from the sidebar
-- Image hover overlay injected into browser tabs for saving references
-- Ad-blocking engine for browsing comfort
-
-## Why the pivot?
-The core use case is **reference organization**, not web browsing. Artists need:
-- An infinite canvas as the PRIMARY workspace (like PureRef)
-- Browser as a TOOL (embedded panel) to find references, not the main UI
-- Zero-friction image capture from browser → canvas
-- Always-on-top mode for overlaying references while working in art apps
-- Click-through transparency for tracing
-
-## What's preserved from browser-first era?
-- Rust adblock engine (`adblock/` module)
-- Tauri child webview architecture for embedded browser
-- Image download + library persistence (`library.rs`, `persistence.rs`)
-- Board item CRUD (`board.rs`)
-- SQLite migrations
-- Credentials/stronghold setup
-
-## New architecture (board-first / RefStudio)
-- Infinite canvas is the main and only workspace
-- Browser panel slides in from the right as a capture tool
-- Library panel slides in from the left for asset management
-- Three.js GPU-accelerated image rendering with shaders
-- Annotations (freehand drawing) directly on canvas
-- Text notes with rich formatting
-- Image cropping, flipping, grouping, desaturate
-- Minimap for navigation
-- StarterHub for project management
-- Always-on-top + click-through + opacity control
-
-## Files archived
-The previous `artifacts/musealpha-production.zip` contains the browser-first build.
-The `ui-prototype/` directory contains the browser-first prototype.
-The source in `src/` and `src-tauri/` is now being replaced with the board-first architecture from `uiprototype2/`.
+# Browser-First Era Archive
+
+This document marks the architectural pivot from **browser-first** (Muse Alpha v0.2) to **board-first** (RefStudio v1.0).
+
+## What was the browser-first approach?
+- Main workspace was a web browser with tabs
+- Sidebar navigation between Home/Browser/Library/Board/Settings views
+- Board was a secondary view accessed from the sidebar
+- Image hover overlay injected into browser tabs for saving references
+- Ad-blocking engine for browsing comfort
+
+## Why the pivot?
+The core use case is **reference organization**, not web browsing. Artists need:
+- An infinite canvas as the PRIMARY workspace (like PureRef)
+- Browser as a TOOL (embedded panel) to find references, not the main UI
+- Zero-friction image capture from browser → canvas
+- Always-on-top mode for overlaying references while working in art apps
+- Click-through transparency for tracing
+
+## What's preserved from browser-first era?
+- Rust adblock engine (`adblock/` module)
+- Tauri child webview architecture for embedded browser
+- Image download + library persistence (`library.rs`, `persistence.rs`)
+- Board item CRUD (`board.rs`)
+- SQLite migrations
+- Credentials/stronghold setup
+
+## New architecture (board-first / RefStudio)
+- Infinite canvas is the main and only workspace
+- Browser panel slides in from the right as a capture tool
+- Library panel slides in from the left for asset management
+- Three.js GPU-accelerated image rendering with shaders
+- Annotations (freehand drawing) directly on canvas
+- Text notes with rich formatting
+- Image cropping, flipping, grouping, desaturate
+- Minimap for navigation
+- StarterHub for project management
+- Always-on-top + click-through + opacity control
+
+## Files archived
+The previous `artifacts/musealpha-production.zip` contains the browser-first build.
+The `ui-prototype/` directory contains the browser-first prototype.
+The source in `src/` and `src-tauri/` is now being replaced with the board-first architecture from `uiprototype2/`.
diff --git a/docs/MUSE_SRS_v3.md b/docs/MUSE_SRS_v3.md
index 7bb3c6fb3f0634c44982f52c7eab81d2937e1944..4b43a1b5e12c10195e23d3eb9fdc683c5f5b76c1 100644
--- a/docs/MUSE_SRS_v3.md
+++ b/docs/MUSE_SRS_v3.md
@@ -1,205 +1,205 @@
-# MUSE — Master Software Requirements Specification v3.0
-### Creative Browser · Tauri v2 + Rust · Complete Product Definition
-
-> Canonical v3 requirements document supplied by the product owner in the implementation prompt.
-
-This document defines the full Muse product vision, architecture, browser fundamentals, ad-block v3, creative modules, artist-exclusive features, UI/UX system, business model, roadmap, and non-goals.
-
-## Document map
-
-Incorporates and supersedes:
-- SRS v1.0 (original vision + market research)
-- SRS v2.0 (deep UX/UI + themes + ad-block)
-- 01-DATABASE-ARCHITECTURE.md
-- 02-ADBLOCK-INTEGRATION.md
-- 03-RUST-ARCHITECTURE.md
-- 04-USER-RESEARCH.md
-- 05-PLATFORM-SPECIFIC.md
-- 06-MOBILE-TABLET-UX.md
-- 07-ALGORITHMS-THIRDPARTY.md
-- 08-UI-UX-COMPLETE.md
-
-## Core mission
-
-Muse is the first browser designed specifically for the visual artist's creative loop:
-
-```text
-Discover → Collect → Organize → Reference → Create → Repeat
-```
-
-Muse replaces the fragmented five-app workflow:
-- Chrome/Firefox: full browser
-- PureRef: Board module / infinite reference canvas
-- Eagle App: Library module
-- Pinterest/Are.na: Boards + Library without algorithm/account/subscription
-- Standalone color picker: integrated extraction, picker, search, export
-
-## Locked non-goals
-
-- No AI image generation
-- No subscription model
-- No hosted cloud storage
-- No social feed or algorithm
-- No drawing tools
-- No real-time collaboration for v1 scope
-- No telemetry without explicit consent
-- No bundled Chromium
-- No mandatory account
-
-## Architecture summary
-
-Stack:
-- Tauri v2 + Rust core
-- SolidJS shell frontend
-- System WebViews for browser tabs
-- SQLite + WAL for local data
-- Stronghold for encrypted credentials
-- `tauri-plugin-store` for settings
-- `brave/adblock-rust` for filter-rule engine
-
-Rust module plan:
-- `browser/` tab lifecycle, navigation, injection, tab sleep, find
-- `adblock/` engine, filter lists, user rules, subscriptions, stats, cosmetic injection
-- `library/` SQLite CRUD, thumbnails, color extraction, dedupe, FTS5 search, smart folders
-- `board/` infinite canvas, autosave, items, export, annotations
-- `credentials/` vault, autofill, generator
-- `downloads/`, `cookies/`, `sessions/`, `permissions/`, `privacy/`, `color/`, `workspace/`
-
-## Database summary
-
-SQLite with startup PRAGMAs:
-
-```sql
-PRAGMA journal_mode = WAL;
-PRAGMA synchronous = NORMAL;
-PRAGMA mmap_size = 268435456;
-PRAGMA cache_size = -16384;
-PRAGMA temp_store = MEMORY;
-PRAGMA foreign_keys = ON;
-PRAGMA busy_timeout = 5000;
-PRAGMA auto_vacuum = INCREMENTAL;
-```
-
-New v3 tables include:
-- `sessions`, `session_tabs`
-- `credentials` pointers to Stronghold keys
-- `downloads`
-- `cookie_rules`
-- `site_permissions`
-- `site_zoom`
-- `adblock_subscriptions`
-- `adblock_user_rules`
-- `board_annotations`
-- `study_sessions`
-
-## Browser fundamentals covered
-
-- Cookie management
-- Password and credential manager
-- Download manager
-- Tab sleep
-- Session management
-- Find in page
-- Per-site zoom memory
-- Permission system
-- HTTPS-first and safe browsing without Google URL API
-- DNS over HTTPS
-- Print
-- Autofill
-- WebRTC and fingerprint protection
-- Offline/error pages
-- Media autoplay policy
-- Certificate/security info
-
-## Ad-block v3
-
-Hybrid design in v3:
-- Navigation blocking
-- Native network blocking where available
-- Cosmetic filtering
-- Built-in multi-list subscriptions
-- Custom uBlock-syntax rules
-- Statistics and transparency
-- Cookie consent auto-denial
-
-Built-in lists:
-- EasyList
-- EasyPrivacy
-- uBlock filters
-- uBlock Unbreak
-- Fanboy Annoyances
-- Peter Lowe
-- Malware Domains
-- AdGuard Base
-- AdGuard Social
-- IndianList
-
-## Core creative modules
-
-- Home Page
-- URL Bar System
-- Sidebar & Tab System
-- Library Module
-- Board Module / PureRef replacement
-- Split View System
-- Color Tools
-- Image Hover Overlay
-
-## Artist-exclusive v3 modules
-
-- Quick Study Mode
-- Board annotations/markup
-- Rotation, flip, light table, overlays
-- Proportion and grid overlays
-- Source site intelligence profiles
-- Library timeline view
-- Color export for artist apps
-- Reference sheet export
-- Workspace sessions for projects
-
-## UI/UX system
-
-Theme presets:
-- Dusk
-- Parchment
-- Midnight
-- Studio
-- Moss
-- Rose
-- Obsidian
-- Linen
-
-Typography:
-- Geist UI
-- Lora reader body
-- Geist Mono for code/dimensions
-
-Onboarding:
-1. Welcome
-2. Make it yours (name + theme)
-3. Name first workspace
-
-Keyboard/command palette includes standard browser shortcuts plus Muse creative shortcuts.
-
-## Business model
-
-- Free tier forever
-- Muse one-time purchase
-- Muse Pro one-time upgrade
-- Pay-What-You-Want launch window
-- No subscription
-
-## Roadmap
-
-- Phase 0: Foundation
-- Phase 1: Browser basics
-- Phase 2: Browser fundamentals complete
-- Phase 3: Creative core
-- Phase 4: Power features
-- Phase 5: Ship Windows
-- Phase 6: Cross-platform
-- Phase 7: Ecosystem
-
-## Note
-
-The original full v3 text was supplied in-chat and is treated as the requirements source for this repository. Phase 0 implementation begins from the v4 implementation guide while preserving these v3 product requirements.
+# MUSE — Master Software Requirements Specification v3.0
+### Creative Browser · Tauri v2 + Rust · Complete Product Definition
+
+> Canonical v3 requirements document supplied by the product owner in the implementation prompt.
+
+This document defines the full Muse product vision, architecture, browser fundamentals, ad-block v3, creative modules, artist-exclusive features, UI/UX system, business model, roadmap, and non-goals.
+
+## Document map
+
+Incorporates and supersedes:
+- SRS v1.0 (original vision + market research)
+- SRS v2.0 (deep UX/UI + themes + ad-block)
+- 01-DATABASE-ARCHITECTURE.md
+- 02-ADBLOCK-INTEGRATION.md
+- 03-RUST-ARCHITECTURE.md
+- 04-USER-RESEARCH.md
+- 05-PLATFORM-SPECIFIC.md
+- 06-MOBILE-TABLET-UX.md
+- 07-ALGORITHMS-THIRDPARTY.md
+- 08-UI-UX-COMPLETE.md
+
+## Core mission
+
+Muse is the first browser designed specifically for the visual artist's creative loop:
+
+```text
+Discover → Collect → Organize → Reference → Create → Repeat
+```
+
+Muse replaces the fragmented five-app workflow:
+- Chrome/Firefox: full browser
+- PureRef: Board module / infinite reference canvas
+- Eagle App: Library module
+- Pinterest/Are.na: Boards + Library without algorithm/account/subscription
+- Standalone color picker: integrated extraction, picker, search, export
+
+## Locked non-goals
+
+- No AI image generation
+- No subscription model
+- No hosted cloud storage
+- No social feed or algorithm
+- No drawing tools
+- No real-time collaboration for v1 scope
+- No telemetry without explicit consent
+- No bundled Chromium
+- No mandatory account
+
+## Architecture summary
+
+Stack:
+- Tauri v2 + Rust core
+- SolidJS shell frontend
+- System WebViews for browser tabs
+- SQLite + WAL for local data
+- Stronghold for encrypted credentials
+- `tauri-plugin-store` for settings
+- `brave/adblock-rust` for filter-rule engine
+
+Rust module plan:
+- `browser/` tab lifecycle, navigation, injection, tab sleep, find
+- `adblock/` engine, filter lists, user rules, subscriptions, stats, cosmetic injection
+- `library/` SQLite CRUD, thumbnails, color extraction, dedupe, FTS5 search, smart folders
+- `board/` infinite canvas, autosave, items, export, annotations
+- `credentials/` vault, autofill, generator
+- `downloads/`, `cookies/`, `sessions/`, `permissions/`, `privacy/`, `color/`, `workspace/`
+
+## Database summary
+
+SQLite with startup PRAGMAs:
+
+```sql
+PRAGMA journal_mode = WAL;
+PRAGMA synchronous = NORMAL;
+PRAGMA mmap_size = 268435456;
+PRAGMA cache_size = -16384;
+PRAGMA temp_store = MEMORY;
+PRAGMA foreign_keys = ON;
+PRAGMA busy_timeout = 5000;
+PRAGMA auto_vacuum = INCREMENTAL;
+```
+
+New v3 tables include:
+- `sessions`, `session_tabs`
+- `credentials` pointers to Stronghold keys
+- `downloads`
+- `cookie_rules`
+- `site_permissions`
+- `site_zoom`
+- `adblock_subscriptions`
+- `adblock_user_rules`
+- `board_annotations`
+- `study_sessions`
+
+## Browser fundamentals covered
+
+- Cookie management
+- Password and credential manager
+- Download manager
+- Tab sleep
+- Session management
+- Find in page
+- Per-site zoom memory
+- Permission system
+- HTTPS-first and safe browsing without Google URL API
+- DNS over HTTPS
+- Print
+- Autofill
+- WebRTC and fingerprint protection
+- Offline/error pages
+- Media autoplay policy
+- Certificate/security info
+
+## Ad-block v3
+
+Hybrid design in v3:
+- Navigation blocking
+- Native network blocking where available
+- Cosmetic filtering
+- Built-in multi-list subscriptions
+- Custom uBlock-syntax rules
+- Statistics and transparency
+- Cookie consent auto-denial
+
+Built-in lists:
+- EasyList
+- EasyPrivacy
+- uBlock filters
+- uBlock Unbreak
+- Fanboy Annoyances
+- Peter Lowe
+- Malware Domains
+- AdGuard Base
+- AdGuard Social
+- IndianList
+
+## Core creative modules
+
+- Home Page
+- URL Bar System
+- Sidebar & Tab System
+- Library Module
+- Board Module / PureRef replacement
+- Split View System
+- Color Tools
+- Image Hover Overlay
+
+## Artist-exclusive v3 modules
+
+- Quick Study Mode
+- Board annotations/markup
+- Rotation, flip, light table, overlays
+- Proportion and grid overlays
+- Source site intelligence profiles
+- Library timeline view
+- Color export for artist apps
+- Reference sheet export
+- Workspace sessions for projects
+
+## UI/UX system
+
+Theme presets:
+- Dusk
+- Parchment
+- Midnight
+- Studio
+- Moss
+- Rose
+- Obsidian
+- Linen
+
+Typography:
+- Geist UI
+- Lora reader body
+- Geist Mono for code/dimensions
+
+Onboarding:
+1. Welcome
+2. Make it yours (name + theme)
+3. Name first workspace
+
+Keyboard/command palette includes standard browser shortcuts plus Muse creative shortcuts.
+
+## Business model
+
+- Free tier forever
+- Muse one-time purchase
+- Muse Pro one-time upgrade
+- Pay-What-You-Want launch window
+- No subscription
+
+## Roadmap
+
+- Phase 0: Foundation
+- Phase 1: Browser basics
+- Phase 2: Browser fundamentals complete
+- Phase 3: Creative core
+- Phase 4: Power features
+- Phase 5: Ship Windows
+- Phase 6: Cross-platform
+- Phase 7: Ecosystem
+
+## Note
+
+The original full v3 text was supplied in-chat and is treated as the requirements source for this repository. Phase 0 implementation begins from the v4 implementation guide while preserving these v3 product requirements.
diff --git a/docs/MUSE_SRS_v4.md b/docs/MUSE_SRS_v4.md
index 9dec1008e36c2b02e0dc382005619114c23c4cc9..d250f40dee8a48a91bb07675a2b6149a7eecd404 100644
--- a/docs/MUSE_SRS_v4.md
+++ b/docs/MUSE_SRS_v4.md
@@ -1,170 +1,170 @@
-# MUSE — Master SRS v4.0
-## Creative Browser · Tauri v2 + Rust · Complete Implementation Guide
-
-> One window. Multiple child webviews. One ad-block engine. All platforms.
-
-This implementation guide supersedes earlier architecture/code notes for v1.0 implementation sequencing.
-
-## Critical architecture decisions
-
-### 1. Single OS window + child webviews for tabs
-
-Muse is one OS window containing:
-- Shell WebView: SolidJS UI (titlebar, sidebar, URL bar, home, library, boards)
-- Child tab WebViews: one per browser tab
-
-Implemented later with `window.add_child()` behind Tauri's `unstable` feature. Phase 0 does **not** use child WebViews yet.
-
-### 2. Cross-platform ad-block = Rust engine + JS injection
-
-The v4 guide deliberately removes platform-native WebView2/WKContentRuleList/WebKitGTK-specific blocking from the v1 cross-platform plan.
-
-Ad-block layers:
-- Layer 0: Navigation handler in Rust
-- Layer 1: JS fetch/XHR override
-- Layer 2: DOM CSP injection
-- Layer 3: Cosmetic CSS injection
-- Layer 4: Scriptlet injection
-
-### 3. `unstable` feature is acceptable for desktop tabs
-
-`tauri = { version = "2", features = ["unstable"] }` is planned once Phase 1 implements child tab WebViews.
-
-### 4. Mobile tab model differs
-
-Mobile uses conceptual tab state plus `WebviewWindow` until Tauri supports child webviews on mobile. Desktop Windows remains v1 target.
-
-## Repository structure target
-
-```text
-muse/
-├── package.json
-├── vite.config.ts
-├── index.html
-├── src/
-│ ├── index.tsx
-│ ├── App.tsx
-│ ├── components/
-│ ├── store/
-│ └── styles/
-└── src-tauri/
- ├── Cargo.toml
- ├── build.rs
- ├── tauri.conf.json
- ├── capabilities/default.json
- ├── migrations/
- └── src/
- ├── main.rs
- ├── lib.rs
- ├── state.rs
- ├── settings.rs
- ├── browser/
- ├── adblock/
- ├── library/
- ├── board/
- ├── credentials/
- ├── downloads/
- ├── sessions/
- └── db/
-```
-
-## Phase 0 implementation scope
-
-Deliverable: running app with custom titlebar, theme, and sidebar navigation.
-
-User can:
-- Open Muse on Windows
-- See Dusk theme, custom titlebar, sidebar
-- Click sidebar icons (Library/Board placeholders)
-- See Home page with greeting and static URL bar
-- Switch all 8 themes
-- Complete onboarding in under 60 seconds
-
-Not included yet:
-- Real browser tabs
-- Ad-block
-- Library/Board functionality
-
-Phase 0 work items:
-- SolidJS Tauri app skeleton
-- Tauri v2 `Cargo.toml`
-- `tauri.conf.json` with undecorated window
-- Capabilities file
-- Custom titlebar with window controls
-- Sidebar shell
-- Home page shell
-- Theme token CSS for 8 themes
-- App state module
-- SQLite init and migration
-- Tauri Store settings
-- Onboarding flow
-
-## Phase 1 target
-
-Real multi-tab browser:
-- `TabManager`
-- `window.add_child()` child WebViews
-- tab create/close/switch/navigate
-- sidebar tab list
-- URL bar navigation
-- title/favicon observer
-- resize handling
-- per-site zoom
-
-## Phase 2 target
-
-Ad-block and privacy:
-- adblock-rust engine
-- 10 bundled lists
-- JS network-request interception
-- cookie consent scriptlet
-- WebRTC protection
-- canvas noise
-- navigation blocking
-- cosmetic injection
-- updater
-- allowlist
-- shield UI
-- tab sleep
-- HTTPS-first
-- Stronghold password vault basics
-
-## Phase 3 target
-
-Library + Board core:
-- image hover overlay
-- save-to-library
-- library search/grid/detail
-- board infinite canvas
-- board item CRUD/autosave
-- palette extraction
-- download manager
-- sessions auto-save
-
-## Phase 4 target
-
-Artist features and polish:
-- Quick Study Mode
-- annotations
-- rotate/flip/light table
-- overlays
-- timeline
-- source profiles
-- export formats
-- reference sheets
-- session manager UI
-- command palette
-- permissions/cert/offline/print/DoH
-
-## Phase 5 target
-
-Windows v1 shipping:
-- NSIS installer
-- updater
-- code signing
-- optional crash reporting
-- performance audit
-
-## Current implementation note
-
-The committed code implements the Phase 0 scope only. Phase 1+ modules are represented as directory placeholders and comments where useful, but no tab WebViews are created in Phase 0.
+# MUSE — Master SRS v4.0
+## Creative Browser · Tauri v2 + Rust · Complete Implementation Guide
+
+> One window. Multiple child webviews. One ad-block engine. All platforms.
+
+This implementation guide supersedes earlier architecture/code notes for v1.0 implementation sequencing.
+
+## Critical architecture decisions
+
+### 1. Single OS window + child webviews for tabs
+
+Muse is one OS window containing:
+- Shell WebView: SolidJS UI (titlebar, sidebar, URL bar, home, library, boards)
+- Child tab WebViews: one per browser tab
+
+Implemented later with `window.add_child()` behind Tauri's `unstable` feature. Phase 0 does **not** use child WebViews yet.
+
+### 2. Cross-platform ad-block = Rust engine + JS injection
+
+The v4 guide deliberately removes platform-native WebView2/WKContentRuleList/WebKitGTK-specific blocking from the v1 cross-platform plan.
+
+Ad-block layers:
+- Layer 0: Navigation handler in Rust
+- Layer 1: JS fetch/XHR override
+- Layer 2: DOM CSP injection
+- Layer 3: Cosmetic CSS injection
+- Layer 4: Scriptlet injection
+
+### 3. `unstable` feature is acceptable for desktop tabs
+
+`tauri = { version = "2", features = ["unstable"] }` is planned once Phase 1 implements child tab WebViews.
+
+### 4. Mobile tab model differs
+
+Mobile uses conceptual tab state plus `WebviewWindow` until Tauri supports child webviews on mobile. Desktop Windows remains v1 target.
+
+## Repository structure target
+
+```text
+muse/
+├── package.json
+├── vite.config.ts
+├── index.html
+├── src/
+│ ├── index.tsx
+│ ├── App.tsx
+│ ├── components/
+│ ├── store/
+│ └── styles/
+└── src-tauri/
+ ├── Cargo.toml
+ ├── build.rs
+ ├── tauri.conf.json
+ ├── capabilities/default.json
+ ├── migrations/
+ └── src/
+ ├── main.rs
+ ├── lib.rs
+ ├── state.rs
+ ├── settings.rs
+ ├── browser/
+ ├── adblock/
+ ├── library/
+ ├── board/
+ ├── credentials/
+ ├── downloads/
+ ├── sessions/
+ └── db/
+```
+
+## Phase 0 implementation scope
+
+Deliverable: running app with custom titlebar, theme, and sidebar navigation.
+
+User can:
+- Open Muse on Windows
+- See Dusk theme, custom titlebar, sidebar
+- Click sidebar icons (Library/Board placeholders)
+- See Home page with greeting and static URL bar
+- Switch all 8 themes
+- Complete onboarding in under 60 seconds
+
+Not included yet:
+- Real browser tabs
+- Ad-block
+- Library/Board functionality
+
+Phase 0 work items:
+- SolidJS Tauri app skeleton
+- Tauri v2 `Cargo.toml`
+- `tauri.conf.json` with undecorated window
+- Capabilities file
+- Custom titlebar with window controls
+- Sidebar shell
+- Home page shell
+- Theme token CSS for 8 themes
+- App state module
+- SQLite init and migration
+- Tauri Store settings
+- Onboarding flow
+
+## Phase 1 target
+
+Real multi-tab browser:
+- `TabManager`
+- `window.add_child()` child WebViews
+- tab create/close/switch/navigate
+- sidebar tab list
+- URL bar navigation
+- title/favicon observer
+- resize handling
+- per-site zoom
+
+## Phase 2 target
+
+Ad-block and privacy:
+- adblock-rust engine
+- 10 bundled lists
+- JS network-request interception
+- cookie consent scriptlet
+- WebRTC protection
+- canvas noise
+- navigation blocking
+- cosmetic injection
+- updater
+- allowlist
+- shield UI
+- tab sleep
+- HTTPS-first
+- Stronghold password vault basics
+
+## Phase 3 target
+
+Library + Board core:
+- image hover overlay
+- save-to-library
+- library search/grid/detail
+- board infinite canvas
+- board item CRUD/autosave
+- palette extraction
+- download manager
+- sessions auto-save
+
+## Phase 4 target
+
+Artist features and polish:
+- Quick Study Mode
+- annotations
+- rotate/flip/light table
+- overlays
+- timeline
+- source profiles
+- export formats
+- reference sheets
+- session manager UI
+- command palette
+- permissions/cert/offline/print/DoH
+
+## Phase 5 target
+
+Windows v1 shipping:
+- NSIS installer
+- updater
+- code signing
+- optional crash reporting
+- performance audit
+
+## Current implementation note
+
+The committed code implements the Phase 0 scope only. Phase 1+ modules are represented as directory placeholders and comments where useful, but no tab WebViews are created in Phase 0.
diff --git a/index.html b/index.html
index a7b918c73a01542072b33becbe63651e2fd73298..1a183f828f0c628a4622f593aa884726d4c2a4a1 100644
--- a/index.html
+++ b/index.html
@@ -1,12 +1,12 @@
-
-
-
-
-
- Refstudio
-
-
-
-
-
-
+
+
+
+
+
+ Refstudio
+
+
+
+
+
+
diff --git a/package.json b/package.json
index 5d01526ce7dcaf57c50acb78ccdb165bb55e70db..b1e8aec28d62116cce4ccadf261c7534646d610f 100644
--- a/package.json
+++ b/package.json
@@ -1,36 +1,36 @@
-{
- "name": "refstudio",
- "private": true,
- "version": "1.0.0-alpha",
- "type": "module",
- "scripts": {
- "dev": "vite --port 1420 --host",
- "build": "vite build",
- "preview": "vite preview",
- "tauri": "tauri"
- },
- "dependencies": {
- "@tauri-apps/api": "^2.9.0",
- "@tauri-apps/plugin-clipboard-manager": "^2.3.0",
- "@tauri-apps/plugin-fs": "^2.4.0",
- "@tauri-apps/plugin-opener": "^2.5.0",
- "@tauri-apps/plugin-store": "^2.4.0",
- "@tauri-apps/plugin-stronghold": "^2.3.0",
- "lucide-react": "^0.546.0",
- "motion": "^12.23.0",
- "react": "^19.0.0",
- "react-dom": "^19.0.0"
- },
- "devDependencies": {
- "@tauri-apps/cli": "^2.9.0",
- "@tailwindcss/vite": "^4.1.0",
- "@types/react": "^19.0.0",
- "@types/react-dom": "^19.0.0",
- "@vitejs/plugin-react": "^5.0.0",
- "autoprefixer": "^10.4.21",
- "postcss": "^8.5.0",
- "tailwindcss": "^4.1.0",
- "typescript": "~5.8.2",
- "vite": "^6.2.0"
- }
-}
+{
+ "name": "refstudio",
+ "private": true,
+ "version": "1.0.0-alpha",
+ "type": "module",
+ "scripts": {
+ "dev": "vite --port 1420 --host",
+ "build": "vite build",
+ "preview": "vite preview",
+ "tauri": "tauri"
+ },
+ "dependencies": {
+ "@tauri-apps/api": "^2",
+ "@tauri-apps/plugin-clipboard-manager": "^2",
+ "@tauri-apps/plugin-fs": "^2",
+ "@tauri-apps/plugin-opener": "^2",
+ "@tauri-apps/plugin-store": "^2",
+ "@tauri-apps/plugin-stronghold": "^2",
+ "lucide-react": "^0.468.0",
+ "motion": "^12.0.0",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0"
+ },
+ "devDependencies": {
+ "@tauri-apps/cli": "^2",
+ "@tailwindcss/vite": "^4.0.0",
+ "@types/react": "^19.0.0",
+ "@types/react-dom": "^19.0.0",
+ "@vitejs/plugin-react": "^4.3.0",
+ "autoprefixer": "^10.4.20",
+ "postcss": "^8.4.49",
+ "tailwindcss": "^4.0.0",
+ "typescript": "~5.6.2",
+ "vite": "^6.0.0"
+ }
+}
diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
new file mode 100644
index 0000000000000000000000000000000000000000..ebf330a693a8b768df8c2b71b0a415708f0e567f
--- /dev/null
+++ b/src-tauri/Cargo.lock
@@ -0,0 +1,8379 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 4
+
+[[package]]
+name = "adblock"
+version = "0.12.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db6fe7702c798519299bcbe011ff6f1dc9e3aedc1f3171178cddf71e1736bf95"
+dependencies = [
+ "addr",
+ "arrayvec",
+ "base64 0.22.1",
+ "bitflags 2.11.1",
+ "flatbuffers",
+ "idna",
+ "itertools",
+ "memchr",
+ "percent-encoding",
+ "precomputed-hash",
+ "regex",
+ "rustc-hash 1.1.0",
+ "seahash",
+ "serde",
+ "serde_json",
+ "thiserror 1.0.69",
+ "url",
+]
+
+[[package]]
+name = "addr"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a93b8a41dbe230ad5087cc721f8d41611de654542180586b315d9f4cf6b72bef"
+dependencies = [
+ "psl",
+ "psl-types",
+]
+
+[[package]]
+name = "adler2"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
+
+[[package]]
+name = "adler32"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+
+[[package]]
+name = "aead"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
+dependencies = [
+ "crypto-common",
+ "generic-array",
+]
+
+[[package]]
+name = "aes"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures 0.2.17",
+]
+
+[[package]]
+name = "aes-gcm"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
+dependencies = [
+ "aead",
+ "aes",
+ "cipher",
+ "ctr",
+ "ghash",
+ "subtle",
+]
+
+[[package]]
+name = "ahash"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+dependencies = [
+ "getrandom 0.2.17",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "alloc-no-stdlib"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+
+[[package]]
+name = "alloc-stdlib"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+dependencies = [
+ "alloc-no-stdlib",
+]
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.102"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
+
+[[package]]
+name = "arbitrary"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
+dependencies = [
+ "derive_arbitrary",
+]
+
+[[package]]
+name = "arboard"
+version = "3.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0348a1c054491f4bfe6ab86a7b6ab1e44e45d899005de92f58b3df180b36ddaf"
+dependencies = [
+ "clipboard-win",
+ "image 0.25.10",
+ "log",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-core-foundation",
+ "objc2-core-graphics",
+ "objc2-foundation",
+ "parking_lot",
+ "percent-encoding",
+ "windows-sys 0.60.2",
+ "wl-clipboard-rs",
+ "x11rb",
+]
+
+[[package]]
+name = "argon2"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072"
+dependencies = [
+ "base64ct",
+ "blake2",
+ "cpufeatures 0.2.17",
+ "password-hash",
+]
+
+[[package]]
+name = "arrayref"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
+
+[[package]]
+name = "async-broadcast"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
+dependencies = [
+ "event-listener",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-channel"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2"
+dependencies = [
+ "concurrent-queue",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a"
+dependencies = [
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "pin-project-lite",
+ "slab",
+]
+
+[[package]]
+name = "async-io"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite",
+ "parking",
+ "polling",
+ "rustix",
+ "slab",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311"
+dependencies = [
+ "event-listener",
+ "event-listener-strategy",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-process"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75"
+dependencies = [
+ "async-channel",
+ "async-io",
+ "async-lock",
+ "async-signal",
+ "async-task",
+ "blocking",
+ "cfg-if",
+ "event-listener",
+ "futures-lite",
+ "rustix",
+]
+
+[[package]]
+name = "async-recursion"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485"
+dependencies = [
+ "async-io",
+ "async-lock",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "async-task"
+version = "4.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
+
+[[package]]
+name = "async-trait"
+version = "0.1.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "atk"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b"
+dependencies = [
+ "atk-sys",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "atk-sys"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "atoi"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+[[package]]
+name = "autocfg"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
+
+[[package]]
+name = "base16ct"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
+
+[[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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
+[[package]]
+name = "base64ct"
+version = "1.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bit-set"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7"
+
+[[package]]
+name = "bit_field"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
+dependencies = [
+ "serde_core",
+]
+
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
+name = "blake2"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "blake2b_simd"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "constant_time_eq 0.4.2",
+]
+
+[[package]]
+name = "blake3"
+version = "1.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "cc",
+ "cfg-if",
+ "constant_time_eq 0.4.2",
+ "cpufeatures 0.3.0",
+]
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "block-padding"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "block2"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5"
+dependencies = [
+ "objc2",
+]
+
+[[package]]
+name = "blocking"
+version = "1.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21"
+dependencies = [
+ "async-channel",
+ "async-task",
+ "futures-io",
+ "futures-lite",
+ "piper",
+]
+
+[[package]]
+name = "borsh"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a"
+dependencies = [
+ "borsh-derive",
+ "bytes",
+ "cfg_aliases",
+]
+
+[[package]]
+name = "borsh-derive"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59"
+dependencies = [
+ "once_cell",
+ "proc-macro-crate 3.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "brotli"
+version = "8.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
+]
+
+[[package]]
+name = "brotli-decompressor"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+]
+
+[[package]]
+name = "bs58"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
+
+[[package]]
+name = "bytecheck"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
+dependencies = [
+ "bytecheck_derive",
+ "ptr_meta",
+ "simdutf8",
+]
+
+[[package]]
+name = "bytecheck_derive"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "bytemuck"
+version = "1.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "byteorder-lite"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
+
+[[package]]
+name = "bytes"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cairo-rs"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
+dependencies = [
+ "bitflags 2.11.1",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+ "once_cell",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "camino"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48"
+dependencies = [
+ "serde_core",
+]
+
+[[package]]
+name = "cargo-platform"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo_metadata"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba"
+dependencies = [
+ "camino",
+ "cargo-platform",
+ "semver",
+ "serde",
+ "serde_json",
+ "thiserror 2.0.18",
+]
+
+[[package]]
+name = "cargo_toml"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77"
+dependencies = [
+ "serde",
+ "toml 0.9.12+spec-1.1.0",
+]
+
+[[package]]
+name = "cc"
+version = "1.2.62"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98"
+dependencies = [
+ "find-msvc-tools",
+ "shlex",
+]
+
+[[package]]
+name = "cesu8"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+
+[[package]]
+name = "cfb"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f"
+dependencies = [
+ "byteorder",
+ "fnv",
+ "uuid",
+]
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
+
+[[package]]
+name = "chacha20"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures 0.2.17",
+]
+
+[[package]]
+name = "chacha20poly1305"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35"
+dependencies = [
+ "aead",
+ "chacha20",
+ "cipher",
+ "poly1305",
+ "zeroize",
+]
+
+[[package]]
+name = "chrono"
+version = "0.4.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0"
+dependencies = [
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "wasm-bindgen",
+ "windows-link 0.2.1",
+]
+
+[[package]]
+name = "cipher"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
+dependencies = [
+ "crypto-common",
+ "inout",
+ "zeroize",
+]
+
+[[package]]
+name = "clipboard-win"
+version = "5.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4"
+dependencies = [
+ "error-code",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+[[package]]
+name = "combine"
+version = "4.6.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
+dependencies = [
+ "bytes",
+ "memchr",
+]
+
+[[package]]
+name = "concurrent-queue"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "const-oid"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+
+[[package]]
+name = "constant_time_eq"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+
+[[package]]
+name = "constant_time_eq"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
+
+[[package]]
+name = "constant_time_eq"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
+
+[[package]]
+name = "cookie"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747"
+dependencies = [
+ "time",
+ "version_check",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
+
+[[package]]
+name = "core-graphics"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation 0.9.4",
+ "core-graphics-types 0.1.3",
+ "foreign-types 0.3.2",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics"
+version = "0.23.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation 0.9.4",
+ "core-graphics-types 0.1.3",
+ "foreign-types 0.5.0",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97"
+dependencies = [
+ "bitflags 2.11.1",
+ "core-foundation 0.10.1",
+ "core-graphics-types 0.2.0",
+ "foreign-types 0.5.0",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics-types"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation 0.9.4",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics-types"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb"
+dependencies = [
+ "bitflags 2.11.1",
+ "core-foundation 0.10.1",
+ "libc",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853"
+
+[[package]]
+name = "crc32fast"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
+
+[[package]]
+name = "crunchy"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
+
+[[package]]
+name = "crypto-bigint"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
+dependencies = [
+ "generic-array",
+ "rand_core 0.6.4",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "cssparser"
+version = "0.36.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2"
+dependencies = [
+ "cssparser-macros",
+ "dtoa-short",
+ "itoa",
+ "phf",
+ "smallvec",
+]
+
+[[package]]
+name = "cssparser-macros"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
+dependencies = [
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "ctor"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98"
+dependencies = [
+ "ctor-proc-macro",
+ "dtor",
+]
+
+[[package]]
+name = "ctor-proc-macro"
+version = "0.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1"
+
+[[package]]
+name = "ctr"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "curve25519-dalek"
+version = "4.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
+dependencies = [
+ "cfg-if",
+ "cpufeatures 0.2.17",
+ "curve25519-dalek-derive",
+ "digest",
+ "fiat-crypto",
+ "rustc_version",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "curve25519-dalek-derive"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "darling"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0"
+dependencies = [
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "dary_heap"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe"
+
+[[package]]
+name = "dbus"
+version = "0.9.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b942602992bb7acfd1f51c49811c58a610ef9181b6e66f3e519d79b540a3bf73"
+dependencies = [
+ "libc",
+ "libdbus-sys",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "der"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb"
+dependencies = [
+ "const-oid",
+ "pem-rfc7468",
+ "zeroize",
+]
+
+[[package]]
+name = "deranged"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c"
+dependencies = [
+ "powerfmt",
+ "serde_core",
+]
+
+[[package]]
+name = "derive_arbitrary"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "derive_more"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134"
+dependencies = [
+ "derive_more-impl",
+]
+
+[[package]]
+name = "derive_more-impl"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "const-oid",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "dirs"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+dependencies = [
+ "dirs-sys 0.3.7",
+]
+
+[[package]]
+name = "dirs"
+version = "6.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
+dependencies = [
+ "dirs-sys 0.5.0",
+]
+
+[[package]]
+name = "dirs-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+dependencies = [
+ "libc",
+ "redox_users 0.4.6",
+ "winapi",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users 0.5.2",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users 0.4.6",
+ "winapi",
+]
+
+[[package]]
+name = "dispatch2"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38"
+dependencies = [
+ "bitflags 2.11.1",
+ "block2",
+ "libc",
+ "objc2",
+]
+
+[[package]]
+name = "display-info"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ba4b5ddb26d674c9cd40b7a747e42658ffe1289843615b838532f660e0e3dd0"
+dependencies = [
+ "anyhow",
+ "core-graphics 0.23.2",
+ "fxhash",
+ "widestring",
+ "windows 0.52.0",
+ "xcb",
+]
+
+[[package]]
+name = "displaydoc"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "dlib"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a"
+dependencies = [
+ "libloading 0.8.9",
+]
+
+[[package]]
+name = "dlopen2"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4"
+dependencies = [
+ "dlopen2_derive",
+ "libc",
+ "once_cell",
+ "winapi",
+]
+
+[[package]]
+name = "dlopen2_derive"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "dom_query"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89"
+dependencies = [
+ "bit-set",
+ "cssparser",
+ "foldhash 0.2.0",
+ "html5ever",
+ "precomputed-hash",
+ "selectors",
+ "tendril",
+]
+
+[[package]]
+name = "dotenvy"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
+
+[[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.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "dtoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590"
+
+[[package]]
+name = "dtoa-short"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87"
+dependencies = [
+ "dtoa",
+]
+
+[[package]]
+name = "dtor"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4"
+dependencies = [
+ "dtor-proc-macro",
+]
+
+[[package]]
+name = "dtor-proc-macro"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5"
+
+[[package]]
+name = "dunce"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
+
+[[package]]
+name = "dyn-clone"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
+
+[[package]]
+name = "ecdsa"
+version = "0.16.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
+dependencies = [
+ "der",
+ "digest",
+ "elliptic-curve",
+ "rfc6979",
+ "signature",
+ "spki",
+]
+
+[[package]]
+name = "ed25519"
+version = "2.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
+dependencies = [
+ "signature",
+]
+
+[[package]]
+name = "ed25519-zebra"
+version = "4.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775765289f7c6336c18d3d66127527820dd45ffd9eb3b6b8ee4708590e6c20f5"
+dependencies = [
+ "curve25519-dalek",
+ "ed25519",
+ "rand_core 0.6.4",
+ "sha2",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "either"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "elliptic-curve"
+version = "0.13.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
+dependencies = [
+ "base16ct",
+ "crypto-bigint",
+ "digest",
+ "ff",
+ "generic-array",
+ "group",
+ "pkcs8",
+ "rand_core 0.6.4",
+ "sec1",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "embed-resource"
+version = "3.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31a88c8d26de40ed18fe748c547845aa39de1db3afd958f8cb91579f3644bcb"
+dependencies = [
+ "cc",
+ "memchr",
+ "rustc_version",
+ "toml 1.1.2+spec-1.1.0",
+ "vswhom",
+ "winreg",
+]
+
+[[package]]
+name = "embed_plist"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
+
+[[package]]
+name = "endi"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099"
+
+[[package]]
+name = "enumflags2"
+version = "0.7.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef"
+dependencies = [
+ "enumflags2_derive",
+ "serde",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
+
+[[package]]
+name = "erased-serde"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec"
+dependencies = [
+ "serde",
+ "serde_core",
+ "typeid",
+]
+
+[[package]]
+name = "errno"
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
+dependencies = [
+ "libc",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "error-code"
+version = "3.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59"
+
+[[package]]
+name = "etcetera"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943"
+dependencies = [
+ "cfg-if",
+ "home",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
+dependencies = [
+ "event-listener",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "exr"
+version = "1.74.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4300e043a56aa2cb633c01af81ca8f699a321879a7854d3896a0ba89056363be"
+dependencies = [
+ "bit_field",
+ "half",
+ "lebe",
+ "miniz_oxide",
+ "rayon-core",
+ "smallvec",
+ "zune-inflate",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
+
+[[package]]
+name = "fax"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caf1079563223d5d59d83c85886a56e586cfd5c1a26292e971a0fa266531ac5a"
+
+[[package]]
+name = "fdeflate"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c"
+dependencies = [
+ "simd-adler32",
+]
+
+[[package]]
+name = "ff"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393"
+dependencies = [
+ "rand_core 0.6.4",
+ "subtle",
+]
+
+[[package]]
+name = "fiat-crypto"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
+
+[[package]]
+name = "field-offset"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
+dependencies = [
+ "memoffset 0.9.1",
+ "rustc_version",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759"
+dependencies = [
+ "cfg-if",
+ "libc",
+]
+
+[[package]]
+name = "find-msvc-tools"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
+
+[[package]]
+name = "fixedbitset"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99"
+
+[[package]]
+name = "flatbuffers"
+version = "25.12.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35f6839d7b3b98adde531effaf34f0c2badc6f4735d26fe74709d8e513a96ef3"
+dependencies = [
+ "bitflags 2.11.1",
+ "rustc_version",
+]
+
+[[package]]
+name = "flate2"
+version = "1.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+ "zlib-rs",
+]
+
+[[package]]
+name = "flume"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "spin",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foldhash"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
+
+[[package]]
+name = "foldhash"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared 0.1.1",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
+dependencies = [
+ "foreign-types-macros",
+ "foreign-types-shared 0.3.1",
+]
+
+[[package]]
+name = "foreign-types-macros"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
+name = "futures-channel"
+version = "0.3.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-intrusive"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f"
+dependencies = [
+ "futures-core",
+ "lock_api",
+ "parking_lot",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718"
+
+[[package]]
+name = "futures-lite"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad"
+dependencies = [
+ "fastrand",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893"
+
+[[package]]
+name = "futures-task"
+version = "0.3.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
+
+[[package]]
+name = "futures-util"
+version = "0.3.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
+dependencies = [
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "slab",
+]
+
+[[package]]
+name = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "gdk"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691"
+dependencies = [
+ "cairo-rs",
+ "gdk-pixbuf",
+ "gdk-sys",
+ "gio",
+ "glib",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gdk-pixbuf"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec"
+dependencies = [
+ "gdk-pixbuf-sys",
+ "gio",
+ "glib",
+ "libc",
+ "once_cell",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gdk-sys"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "gdkwayland-sys"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69"
+dependencies = [
+ "gdk-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "gdkx11"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe"
+dependencies = [
+ "gdk",
+ "gdkx11-sys",
+ "gio",
+ "glib",
+ "libc",
+ "x11",
+]
+
+[[package]]
+name = "gdkx11-sys"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d"
+dependencies = [
+ "gdk-sys",
+ "glib-sys",
+ "libc",
+ "system-deps",
+ "x11",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+ "zeroize",
+]
+
+[[package]]
+name = "gethostname"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8"
+dependencies = [
+ "rustix",
+ "windows-link 0.2.1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "r-efi 5.3.0",
+ "wasip2",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "r-efi 6.0.0",
+ "wasip2",
+ "wasip3",
+]
+
+[[package]]
+name = "ghash"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1"
+dependencies = [
+ "opaque-debug",
+ "polyval",
+]
+
+[[package]]
+name = "gif"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
+name = "gif"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee8cfcc411d9adbbaba82fb72661cc1bcca13e8bba98b364e62b2dba8f960159"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
+name = "gio"
+version = "0.18.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "gio-sys",
+ "glib",
+ "libc",
+ "once_cell",
+ "pin-project-lite",
+ "smallvec",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "winapi",
+]
+
+[[package]]
+name = "glib"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
+dependencies = [
+ "bitflags 2.11.1",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "futures-util",
+ "gio-sys",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "memchr",
+ "once_cell",
+ "smallvec",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro-crate 2.0.2",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
+
+[[package]]
+name = "global-hotkey"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9247516746aa8e53411a0db9b62b0e24efbcf6a76e0ba73e5a91b512ddabed7"
+dependencies = [
+ "crossbeam-channel",
+ "keyboard-types",
+ "objc2",
+ "objc2-app-kit",
+ "once_cell",
+ "serde",
+ "thiserror 2.0.18",
+ "windows-sys 0.59.0",
+ "x11rb",
+ "xkeysym",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "group"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
+dependencies = [
+ "ff",
+ "rand_core 0.6.4",
+ "subtle",
+]
+
+[[package]]
+name = "gtk"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a"
+dependencies = [
+ "atk",
+ "cairo-rs",
+ "field-offset",
+ "futures-channel",
+ "gdk",
+ "gdk-pixbuf",
+ "gio",
+ "glib",
+ "gtk-sys",
+ "gtk3-macros",
+ "libc",
+ "pango",
+ "pkg-config",
+]
+
+[[package]]
+name = "gtk-sys"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "gtk3-macros"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d"
+dependencies = [
+ "proc-macro-crate 1.3.1",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "half"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+ "zerocopy",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+dependencies = [
+ "ahash",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.15.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
+dependencies = [
+ "allocator-api2",
+ "equivalent",
+ "foldhash 0.1.5",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
+dependencies = [
+ "allocator-api2",
+ "equivalent",
+ "foldhash 0.2.0",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
+
+[[package]]
+name = "hashlink"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1"
+dependencies = [
+ "hashbrown 0.15.5",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "hermit-abi"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hkdf"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
+dependencies = [
+ "hmac",
+]
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "home"
+version = "0.5.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d"
+dependencies = [
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "html5ever"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2"
+dependencies = [
+ "log",
+ "markup5ever",
+]
+
+[[package]]
+name = "http"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a"
+dependencies = [
+ "bytes",
+ "itoa",
+]
+
+[[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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "http",
+ "http-body",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
+
+[[package]]
+name = "hyper"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca"
+dependencies = [
+ "atomic-waker",
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "http",
+ "http-body",
+ "httparse",
+ "itoa",
+ "pin-project-lite",
+ "smallvec",
+ "tokio",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.27.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f"
+dependencies = [
+ "http",
+ "hyper",
+ "hyper-util",
+ "rustls",
+ "tokio",
+ "tokio-rustls",
+ "tower-service",
+ "webpki-roots",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0"
+dependencies = [
+ "base64 0.22.1",
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http",
+ "http-body",
+ "hyper",
+ "ipnet",
+ "libc",
+ "percent-encoding",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.65"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "log",
+ "wasm-bindgen",
+ "windows-core 0.62.2",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ico"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371"
+dependencies = [
+ "byteorder",
+ "png 0.17.16",
+]
+
+[[package]]
+name = "icu_collections"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c"
+dependencies = [
+ "displaydoc",
+ "potential_utf",
+ "utf8_iter",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locale_core"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29"
+dependencies = [
+ "displaydoc",
+ "litemap",
+ "tinystr",
+ "writeable",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_normalizer"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4"
+dependencies = [
+ "icu_collections",
+ "icu_normalizer_data",
+ "icu_properties",
+ "icu_provider",
+ "smallvec",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_normalizer_data"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38"
+
+[[package]]
+name = "icu_properties"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de"
+dependencies = [
+ "icu_collections",
+ "icu_locale_core",
+ "icu_properties_data",
+ "icu_provider",
+ "zerotrie",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_properties_data"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14"
+
+[[package]]
+name = "icu_provider"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421"
+dependencies = [
+ "displaydoc",
+ "icu_locale_core",
+ "writeable",
+ "yoke",
+ "zerofrom",
+ "zerotrie",
+ "zerovec",
+]
+
+[[package]]
+name = "id-arena"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
+dependencies = [
+ "idna_adapter",
+ "smallvec",
+ "utf8_iter",
+]
+
+[[package]]
+name = "idna_adapter"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714"
+dependencies = [
+ "icu_normalizer",
+ "icu_properties",
+]
+
+[[package]]
+name = "image"
+version = "0.24.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "color_quant",
+ "exr",
+ "gif 0.13.3",
+ "jpeg-decoder",
+ "num-traits",
+ "png 0.17.16",
+ "qoi",
+ "tiff 0.9.1",
+]
+
+[[package]]
+name = "image"
+version = "0.25.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104"
+dependencies = [
+ "bytemuck",
+ "byteorder-lite",
+ "color_quant",
+ "gif 0.14.2",
+ "image-webp",
+ "moxcms",
+ "num-traits",
+ "png 0.18.1",
+ "tiff 0.11.3",
+ "zune-core",
+ "zune-jpeg",
+]
+
+[[package]]
+name = "image-webp"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3"
+dependencies = [
+ "byteorder-lite",
+ "quick-error",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+ "serde",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.17.1",
+ "serde",
+ "serde_core",
+]
+
+[[package]]
+name = "infer"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7"
+dependencies = [
+ "cfb",
+]
+
+[[package]]
+name = "inout"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
+dependencies = [
+ "block-padding",
+ "generic-array",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi 0.3.9",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "iota-crypto"
+version = "0.23.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98a38db844c910d78825e173c083f2ef416b69cb091bba8ac1055763c6db065b"
+dependencies = [
+ "aead",
+ "aes",
+ "aes-gcm",
+ "autocfg",
+ "base64 0.21.7",
+ "blake2",
+ "chacha20poly1305",
+ "cipher",
+ "curve25519-dalek",
+ "digest",
+ "ed25519-zebra",
+ "generic-array",
+ "getrandom 0.2.17",
+ "hkdf",
+ "hmac",
+ "iterator-sorted",
+ "k256",
+ "pbkdf2",
+ "rand 0.8.6",
+ "scrypt",
+ "serde",
+ "sha2",
+ "tiny-keccak",
+ "unicode-normalization",
+ "x25519-dalek",
+ "zeroize",
+]
+
+[[package]]
+name = "iota_stronghold"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c0d301c7edbc31494d183b7d24c1bb51d3fb10fce2f3793df1baf45b6988e10"
+dependencies = [
+ "bincode",
+ "hkdf",
+ "iota-crypto",
+ "rust-argon2 1.0.0",
+ "serde",
+ "stronghold-derive",
+ "stronghold-utils",
+ "stronghold_engine",
+ "thiserror 1.0.69",
+ "zeroize",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2"
+
+[[package]]
+name = "is-docker"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "is-wsl"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
+dependencies = [
+ "is-docker",
+ "once_cell",
+]
+
+[[package]]
+name = "iterator-sorted"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d101775d2bc8f99f4ac18bf29b9ed70c0dd138b9a1e88d7b80179470cbbe8bd2"
+
+[[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
+
+[[package]]
+name = "javascriptcore-rs"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc"
+dependencies = [
+ "bitflags 1.3.2",
+ "glib",
+ "javascriptcore-rs-sys",
+]
+
+[[package]]
+name = "javascriptcore-rs-sys"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "jni"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
+dependencies = [
+ "cesu8",
+ "cfg-if",
+ "combine",
+ "jni-sys 0.3.1",
+ "log",
+ "thiserror 1.0.69",
+ "walkdir",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "jni-sys"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258"
+dependencies = [
+ "jni-sys 0.4.1",
+]
+
+[[package]]
+name = "jni-sys"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2"
+dependencies = [
+ "jni-sys-macros",
+]
+
+[[package]]
+name = "jni-sys-macros"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264"
+dependencies = [
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "jpeg-decoder"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07"
+dependencies = [
+ "rayon",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08"
+dependencies = [
+ "cfg-if",
+ "futures-util",
+ "once_cell",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "json-patch"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08"
+dependencies = [
+ "jsonptr",
+ "serde",
+ "serde_json",
+ "thiserror 1.0.69",
+]
+
+[[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 = "k256"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b"
+dependencies = [
+ "cfg-if",
+ "ecdsa",
+ "elliptic-curve",
+ "once_cell",
+ "sha2",
+]
+
+[[package]]
+name = "keyboard-types"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a"
+dependencies = [
+ "bitflags 2.11.1",
+ "serde",
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
+dependencies = [
+ "spin",
+]
+
+[[package]]
+name = "leb128fmt"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
+
+[[package]]
+name = "lebe"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8"
+
+[[package]]
+name = "libappindicator"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a"
+dependencies = [
+ "glib",
+ "gtk",
+ "gtk-sys",
+ "libappindicator-sys",
+ "log",
+]
+
+[[package]]
+name = "libappindicator-sys"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf"
+dependencies = [
+ "gtk-sys",
+ "libloading 0.7.4",
+ "once_cell",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.186"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
+
+[[package]]
+name = "libdbus-sys"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043"
+dependencies = [
+ "cc",
+ "pkg-config",
+]
+
+[[package]]
+name = "libflate"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd96e993e5f3368b0cb8497dae6c860c22af8ff18388c61c6c0b86c58d86b5df"
+dependencies = [
+ "adler32",
+ "crc32fast",
+ "dary_heap",
+ "libflate_lz77",
+ "no_std_io2",
+]
+
+[[package]]
+name = "libflate_lz77"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd"
+dependencies = [
+ "hashbrown 0.16.1",
+ "no_std_io2",
+ "rle-decode-fast",
+]
+
+[[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 = "libloading"
+version = "0.8.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
+dependencies = [
+ "cfg-if",
+ "windows-link 0.2.1",
+]
+
+[[package]]
+name = "libm"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
+
+[[package]]
+name = "libredox"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c"
+dependencies = [
+ "bitflags 2.11.1",
+ "libc",
+ "plain",
+ "redox_syscall 0.7.5",
+]
+
+[[package]]
+name = "libsodium-sys-stable"
+version = "1.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b04bf6da2c98b727af37ab62cb505f4d751b975b034a9b9ad491d333b0564e"
+dependencies = [
+ "cc",
+ "libc",
+ "libflate",
+ "minisign-verify",
+ "pkg-config",
+ "tar",
+ "ureq",
+ "vcpkg",
+ "zip 8.6.0",
+]
+
+[[package]]
+name = "libsqlite3-sys"
+version = "0.30.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149"
+dependencies = [
+ "cc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "libwayshot"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "896d0e594158b7f5188034836a6c4886492078352c39760786e54f1b796caaea"
+dependencies = [
+ "image 0.24.9",
+ "log",
+ "memmap2",
+ "nix 0.26.4",
+ "thiserror 1.0.69",
+ "wayland-client 0.30.2",
+ "wayland-protocols 0.30.1",
+ "wayland-protocols-wlr 0.1.0",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
+
+[[package]]
+name = "litemap"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0"
+
+[[package]]
+name = "lock_api"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
+dependencies = [
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
+
+[[package]]
+name = "lru-slab"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
+
+[[package]]
+name = "markup5ever"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862"
+dependencies = [
+ "log",
+ "tendril",
+ "web_atoms",
+]
+
+[[package]]
+name = "md-5"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+dependencies = [
+ "cfg-if",
+ "digest",
+]
+
+[[package]]
+name = "memchr"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
+
+[[package]]
+name = "memmap2"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "minisign-verify"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.8.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
+dependencies = [
+ "adler2",
+ "simd-adler32",
+]
+
+[[package]]
+name = "mio"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "moxcms"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b"
+dependencies = [
+ "num-traits",
+ "pxfm",
+]
+
+[[package]]
+name = "muda"
+version = "0.19.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ae8844f63b5b118e334e205585b8c5c17b984121dbdb179d44aeb087ffad3cb"
+dependencies = [
+ "crossbeam-channel",
+ "dpi",
+ "gtk",
+ "keyboard-types",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-core-foundation",
+ "objc2-foundation",
+ "once_cell",
+ "png 0.18.1",
+ "serde",
+ "thiserror 2.0.18",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "muse"
+version = "0.2.0"
+dependencies = [
+ "adblock",
+ "argon2",
+ "base64 0.22.1",
+ "blake3",
+ "chrono",
+ "image 0.25.10",
+ "once_cell",
+ "reqwest 0.12.28",
+ "screenshots",
+ "serde",
+ "serde_json",
+ "sha2",
+ "tauri",
+ "tauri-build",
+ "tauri-plugin-clipboard-manager",
+ "tauri-plugin-fs",
+ "tauri-plugin-global-shortcut",
+ "tauri-plugin-opener",
+ "tauri-plugin-sql",
+ "tauri-plugin-store",
+ "tauri-plugin-stronghold",
+ "tokio",
+ "uuid",
+ "zip 2.4.2",
+]
+
+[[package]]
+name = "ndk"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
+dependencies = [
+ "bitflags 2.11.1",
+ "jni-sys 0.3.1",
+ "log",
+ "ndk-sys",
+ "num_enum",
+ "raw-window-handle",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "ndk-sys"
+version = "0.6.0+11769913"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873"
+dependencies = [
+ "jni-sys 0.3.1",
+]
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
+
+[[package]]
+name = "nix"
+version = "0.24.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+ "memoffset 0.6.5",
+]
+
+[[package]]
+name = "nix"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+ "memoffset 0.7.1",
+ "pin-utils",
+]
+
+[[package]]
+name = "no_std_io2"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "nom"
+version = "8.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "num-bigint-dig"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7"
+dependencies = [
+ "lazy_static",
+ "libm",
+ "num-integer",
+ "num-iter",
+ "num-traits",
+ "rand 0.8.6",
+ "smallvec",
+ "zeroize",
+]
+
+[[package]]
+name = "num-conv"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967"
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+dependencies = [
+ "autocfg",
+ "libm",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26"
+dependencies = [
+ "num_enum_derive",
+ "rustversion",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8"
+dependencies = [
+ "proc-macro-crate 3.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "objc2"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f"
+dependencies = [
+ "objc2-encode",
+ "objc2-exception-helper",
+]
+
+[[package]]
+name = "objc2-app-kit"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c"
+dependencies = [
+ "bitflags 2.11.1",
+ "block2",
+ "objc2",
+ "objc2-core-foundation",
+ "objc2-core-graphics",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-cloud-kit"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c"
+dependencies = [
+ "bitflags 2.11.1",
+ "objc2",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-core-data"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa"
+dependencies = [
+ "objc2",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-core-foundation"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
+dependencies = [
+ "bitflags 2.11.1",
+ "dispatch2",
+ "objc2",
+]
+
+[[package]]
+name = "objc2-core-graphics"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807"
+dependencies = [
+ "bitflags 2.11.1",
+ "dispatch2",
+ "objc2",
+ "objc2-core-foundation",
+ "objc2-io-surface",
+]
+
+[[package]]
+name = "objc2-core-image"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006"
+dependencies = [
+ "objc2",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-core-location"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009"
+dependencies = [
+ "objc2",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-core-text"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d"
+dependencies = [
+ "bitflags 2.11.1",
+ "objc2",
+ "objc2-core-foundation",
+ "objc2-core-graphics",
+]
+
+[[package]]
+name = "objc2-encode"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
+
+[[package]]
+name = "objc2-exception-helper"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "objc2-foundation"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272"
+dependencies = [
+ "bitflags 2.11.1",
+ "block2",
+ "libc",
+ "objc2",
+ "objc2-core-foundation",
+]
+
+[[package]]
+name = "objc2-io-surface"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d"
+dependencies = [
+ "bitflags 2.11.1",
+ "objc2",
+ "objc2-core-foundation",
+]
+
+[[package]]
+name = "objc2-quartz-core"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f"
+dependencies = [
+ "bitflags 2.11.1",
+ "objc2",
+ "objc2-core-foundation",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-ui-kit"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22"
+dependencies = [
+ "bitflags 2.11.1",
+ "block2",
+ "objc2",
+ "objc2-cloud-kit",
+ "objc2-core-data",
+ "objc2-core-foundation",
+ "objc2-core-graphics",
+ "objc2-core-image",
+ "objc2-core-location",
+ "objc2-core-text",
+ "objc2-foundation",
+ "objc2-quartz-core",
+ "objc2-user-notifications",
+]
+
+[[package]]
+name = "objc2-user-notifications"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e"
+dependencies = [
+ "objc2",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-web-kit"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f"
+dependencies = [
+ "bitflags 2.11.1",
+ "block2",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-core-foundation",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.21.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
+
+[[package]]
+name = "opaque-debug"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
+
+[[package]]
+name = "open"
+version = "5.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fbaa89d2ddc8473c78a3adf69eea8cffa28c483b8e02a971ef31527cd0fc92c"
+dependencies = [
+ "dunce",
+ "is-wsl",
+ "libc",
+ "pathdiff",
+]
+
+[[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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "os_pipe"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967"
+dependencies = [
+ "libc",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "pango"
+version = "0.18.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
+dependencies = [
+ "gio",
+ "glib",
+ "libc",
+ "once_cell",
+ "pango-sys",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "parking"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.5.18",
+ "smallvec",
+ "windows-link 0.2.1",
+]
+
+[[package]]
+name = "password-hash"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
+dependencies = [
+ "base64ct",
+ "rand_core 0.6.4",
+ "subtle",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+
+[[package]]
+name = "pathdiff"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3"
+
+[[package]]
+name = "pbkdf2"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
+dependencies = [
+ "digest",
+ "hmac",
+]
+
+[[package]]
+name = "pem-rfc7468"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
+dependencies = [
+ "base64ct",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
+
+[[package]]
+name = "petgraph"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455"
+dependencies = [
+ "fixedbitset",
+ "hashbrown 0.15.5",
+ "indexmap 2.14.0",
+]
+
+[[package]]
+name = "phf"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+ "serde",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
+dependencies = [
+ "fastrand",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "piper"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1"
+dependencies = [
+ "atomic-waker",
+ "fastrand",
+ "futures-io",
+]
+
+[[package]]
+name = "pkcs1"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
+dependencies = [
+ "der",
+ "pkcs8",
+ "spki",
+]
+
+[[package]]
+name = "pkcs8"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
+dependencies = [
+ "der",
+ "spki",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e"
+
+[[package]]
+name = "plain"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
+
+[[package]]
+name = "plist"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "092791278e026273c1b65bbdcfbba3a300f2994c896bd01ab01da613c29c46f1"
+dependencies = [
+ "base64 0.22.1",
+ "indexmap 2.14.0",
+ "quick-xml 0.39.4",
+ "serde",
+ "time",
+]
+
+[[package]]
+name = "png"
+version = "0.17.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "png"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61"
+dependencies = [
+ "bitflags 2.11.1",
+ "crc32fast",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "polling"
+version = "3.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "hermit-abi 0.5.2",
+ "pin-project-lite",
+ "rustix",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "poly1305"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
+dependencies = [
+ "cpufeatures 0.2.17",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
+name = "polyval"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25"
+dependencies = [
+ "cfg-if",
+ "cpufeatures 0.2.17",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
+name = "potential_utf"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564"
+dependencies = [
+ "zerovec",
+]
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
+dependencies = [
+ "zerocopy",
+]
+
+[[package]]
+name = "precomputed-hash"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
+
+[[package]]
+name = "prettyplease"
+version = "0.2.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
+dependencies = [
+ "proc-macro2",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+dependencies = [
+ "once_cell",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24"
+dependencies = [
+ "toml_datetime 0.6.3",
+ "toml_edit 0.20.2",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f"
+dependencies = [
+ "toml_edit 0.25.11+spec-1.1.0",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.106"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "psl"
+version = "2.1.210"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27fbd4d9b2eb0b6e0cbd654bce70243f460cbc8dc92df6747e3fb911ce1cd4a8"
+dependencies = [
+ "psl-types",
+]
+
+[[package]]
+name = "psl-types"
+version = "2.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac"
+
+[[package]]
+name = "ptr_meta"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
+dependencies = [
+ "ptr_meta_derive",
+]
+
+[[package]]
+name = "ptr_meta_derive"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "pxfm"
+version = "0.1.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f"
+
+[[package]]
+name = "qoi"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "quick-error"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
+
+[[package]]
+name = "quick-xml"
+version = "0.28.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.39.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quinn"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20"
+dependencies = [
+ "bytes",
+ "cfg_aliases",
+ "pin-project-lite",
+ "quinn-proto",
+ "quinn-udp",
+ "rustc-hash 2.1.2",
+ "rustls",
+ "socket2",
+ "thiserror 2.0.18",
+ "tokio",
+ "tracing",
+ "web-time",
+]
+
+[[package]]
+name = "quinn-proto"
+version = "0.11.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098"
+dependencies = [
+ "bytes",
+ "getrandom 0.3.4",
+ "lru-slab",
+ "rand 0.9.4",
+ "ring",
+ "rustc-hash 2.1.2",
+ "rustls",
+ "rustls-pki-types",
+ "slab",
+ "thiserror 2.0.18",
+ "tinyvec",
+ "tracing",
+ "web-time",
+]
+
+[[package]]
+name = "quinn-udp"
+version = "0.5.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd"
+dependencies = [
+ "cfg_aliases",
+ "libc",
+ "once_cell",
+ "socket2",
+ "tracing",
+ "windows-sys 0.60.2",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "r-efi"
+version = "5.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
+
+[[package]]
+name = "r-efi"
+version = "6.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
+
+[[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
+name = "rand"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a"
+dependencies = [
+ "libc",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea"
+dependencies = [
+ "rand_chacha 0.9.0",
+ "rand_core 0.9.5",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.9.5",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom 0.2.17",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
+dependencies = [
+ "getrandom 0.3.4",
+]
+
+[[package]]
+name = "raw-window-handle"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
+
+[[package]]
+name = "rayon"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.5.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
+dependencies = [
+ "bitflags 2.11.1",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4666a1a60d8412eab19d94f6d13dcc9cea0a5ef4fdf6a5db306537413c661b1b"
+dependencies = [
+ "bitflags 2.11.1",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
+dependencies = [
+ "getrandom 0.2.17",
+ "libredox",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
+dependencies = [
+ "getrandom 0.2.17",
+ "libredox",
+ "thiserror 2.0.18",
+]
+
+[[package]]
+name = "ref-cast"
+version = "1.0.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d"
+dependencies = [
+ "ref-cast-impl",
+]
+
+[[package]]
+name = "ref-cast-impl"
+version = "1.0.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "regex"
+version = "1.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
+
+[[package]]
+name = "rend"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
+dependencies = [
+ "bytecheck",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.12.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147"
+dependencies = [
+ "base64 0.22.1",
+ "bytes",
+ "futures-core",
+ "http",
+ "http-body",
+ "http-body-util",
+ "hyper",
+ "hyper-rustls",
+ "hyper-util",
+ "js-sys",
+ "log",
+ "percent-encoding",
+ "pin-project-lite",
+ "quinn",
+ "rustls",
+ "rustls-pki-types",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "tokio",
+ "tokio-rustls",
+ "tower",
+ "tower-http",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "webpki-roots",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62e0021ea2c22aed41653bc7e1419abb2c97e038ff2c33d0e1309e49a97deec0"
+dependencies = [
+ "base64 0.22.1",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "http",
+ "http-body",
+ "http-body-util",
+ "hyper",
+ "hyper-util",
+ "js-sys",
+ "log",
+ "percent-encoding",
+ "pin-project-lite",
+ "serde",
+ "serde_json",
+ "sync_wrapper",
+ "tokio",
+ "tokio-util",
+ "tower",
+ "tower-http",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-streams",
+ "web-sys",
+]
+
+[[package]]
+name = "rfc6979"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
+dependencies = [
+ "hmac",
+ "subtle",
+]
+
+[[package]]
+name = "ring"
+version = "0.17.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "getrandom 0.2.17",
+ "libc",
+ "untrusted",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rkyv"
+version = "0.7.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1"
+dependencies = [
+ "bitvec",
+ "bytecheck",
+ "bytes",
+ "hashbrown 0.12.3",
+ "ptr_meta",
+ "rend",
+ "rkyv_derive",
+ "seahash",
+ "tinyvec",
+ "uuid",
+]
+
+[[package]]
+name = "rkyv_derive"
+version = "0.7.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "rle-decode-fast"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422"
+
+[[package]]
+name = "rsa"
+version = "0.9.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d"
+dependencies = [
+ "const-oid",
+ "digest",
+ "num-bigint-dig",
+ "num-integer",
+ "num-traits",
+ "pkcs1",
+ "pkcs8",
+ "rand_core 0.6.4",
+ "signature",
+ "spki",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rust-argon2"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b50162d19404029c1ceca6f6980fe40d45c8b369f6f44446fa14bb39573b5bb9"
+dependencies = [
+ "base64 0.13.1",
+ "blake2b_simd",
+ "constant_time_eq 0.1.5",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "rust-argon2"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d9848531d60c9cbbcf9d166c885316c24bc0e2a9d3eba0956bb6cbbd79bc6e8"
+dependencies = [
+ "base64 0.21.7",
+ "blake2b_simd",
+ "constant_time_eq 0.3.1",
+]
+
+[[package]]
+name = "rust_decimal"
+version = "1.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c5108e3d4d903e21aac27f12ba5377b6b34f9f44b325e4894c7924169d06995"
+dependencies = [
+ "arrayvec",
+ "borsh",
+ "bytes",
+ "num-traits",
+ "rand 0.8.6",
+ "rkyv",
+ "serde",
+ "serde_json",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc-hash"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
+dependencies = [
+ "bitflags 2.11.1",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "rustls"
+version = "0.23.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b"
+dependencies = [
+ "once_cell",
+ "ring",
+ "rustls-pki-types",
+ "rustls-webpki",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9"
+dependencies = [
+ "web-time",
+ "zeroize",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.103.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e"
+dependencies = [
+ "ring",
+ "rustls-pki-types",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
+
+[[package]]
+name = "ryu"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"
+
+[[package]]
+name = "salsa20"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "schemars"
+version = "0.8.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615"
+dependencies = [
+ "dyn-clone",
+ "indexmap 1.9.3",
+ "schemars_derive",
+ "serde",
+ "serde_json",
+ "url",
+ "uuid",
+]
+
+[[package]]
+name = "schemars"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f"
+dependencies = [
+ "dyn-clone",
+ "ref-cast",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "schemars"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc"
+dependencies = [
+ "dyn-clone",
+ "ref-cast",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "schemars_derive"
+version = "0.8.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde_derive_internals",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "screenshots"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "038df8746dbf7d8b70715d638470db956794e0f3d08608e4197f4053c2da1620"
+dependencies = [
+ "anyhow",
+ "core-graphics 0.22.3",
+ "dbus",
+ "display-info",
+ "fxhash",
+ "image 0.24.9",
+ "libwayshot",
+ "percent-encoding",
+ "widestring",
+ "windows 0.51.1",
+ "xcb",
+]
+
+[[package]]
+name = "scrypt"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f"
+dependencies = [
+ "pbkdf2",
+ "salsa20",
+ "sha2",
+]
+
+[[package]]
+name = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+[[package]]
+name = "sec1"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
+dependencies = [
+ "base16ct",
+ "der",
+ "generic-array",
+ "pkcs8",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "selectors"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c"
+dependencies = [
+ "bitflags 2.11.1",
+ "cssparser",
+ "derive_more",
+ "log",
+ "new_debug_unreachable",
+ "phf",
+ "phf_codegen",
+ "precomputed-hash",
+ "rustc-hash 2.1.2",
+ "servo_arc",
+ "smallvec",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
+dependencies = [
+ "serde",
+ "serde_core",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.228"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
+dependencies = [
+ "serde_core",
+ "serde_derive",
+]
+
+[[package]]
+name = "serde-untagged"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058"
+dependencies = [
+ "erased-serde",
+ "serde",
+ "serde_core",
+ "typeid",
+]
+
+[[package]]
+name = "serde_core"
+version = "1.0.228"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.228"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[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.117",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.149"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
+dependencies = [
+ "itoa",
+ "memchr",
+ "serde",
+ "serde_core",
+ "zmij",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
+dependencies = [
+ "serde_core",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_with"
+version = "3.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e72c1c2cb7b223fafb600a619537a871c2818583d619401b785e7c0b746ccde2"
+dependencies = [
+ "base64 0.22.1",
+ "bs58",
+ "chrono",
+ "hex",
+ "indexmap 1.9.3",
+ "indexmap 2.14.0",
+ "schemars 0.9.0",
+ "schemars 1.2.1",
+ "serde_core",
+ "serde_json",
+ "serde_with_macros",
+ "time",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b90c488738ecb4fb0262f41f43bc40efc5868d9fb744319ddf5f5317f417bfac"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "serialize-to-javascript"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5"
+dependencies = [
+ "serde",
+ "serde_json",
+ "serialize-to-javascript-impl",
+]
+
+[[package]]
+name = "serialize-to-javascript-impl"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "servo_arc"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930"
+dependencies = [
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if",
+ "cpufeatures 0.2.17",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
+dependencies = [
+ "cfg-if",
+ "cpufeatures 0.2.17",
+ "digest",
+]
+
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
+dependencies = [
+ "errno",
+ "libc",
+]
+
+[[package]]
+name = "signature"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
+dependencies = [
+ "digest",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
+
+[[package]]
+name = "simdutf8"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
+
+[[package]]
+name = "siphasher"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649"
+
+[[package]]
+name = "slab"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
+
+[[package]]
+name = "smallvec"
+version = "1.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "socket2"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e"
+dependencies = [
+ "libc",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "softbuffer"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3"
+dependencies = [
+ "bytemuck",
+ "js-sys",
+ "ndk",
+ "objc2",
+ "objc2-core-foundation",
+ "objc2-core-graphics",
+ "objc2-foundation",
+ "objc2-quartz-core",
+ "raw-window-handle",
+ "redox_syscall 0.5.18",
+ "tracing",
+ "wasm-bindgen",
+ "web-sys",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "soup3"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f"
+dependencies = [
+ "futures-channel",
+ "gio",
+ "glib",
+ "libc",
+ "soup3-sys",
+]
+
+[[package]]
+name = "soup3-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
+name = "spki"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
+dependencies = [
+ "base64ct",
+ "der",
+]
+
+[[package]]
+name = "sqlx"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc"
+dependencies = [
+ "sqlx-core",
+ "sqlx-macros",
+ "sqlx-mysql",
+ "sqlx-postgres",
+ "sqlx-sqlite",
+]
+
+[[package]]
+name = "sqlx-core"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6"
+dependencies = [
+ "base64 0.22.1",
+ "bytes",
+ "crc",
+ "crossbeam-queue",
+ "either",
+ "event-listener",
+ "futures-core",
+ "futures-intrusive",
+ "futures-io",
+ "futures-util",
+ "hashbrown 0.15.5",
+ "hashlink",
+ "indexmap 2.14.0",
+ "log",
+ "memchr",
+ "once_cell",
+ "percent-encoding",
+ "rust_decimal",
+ "serde",
+ "serde_json",
+ "sha2",
+ "smallvec",
+ "thiserror 2.0.18",
+ "time",
+ "tokio",
+ "tokio-stream",
+ "tracing",
+ "url",
+ "uuid",
+]
+
+[[package]]
+name = "sqlx-macros"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "sqlx-core",
+ "sqlx-macros-core",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "sqlx-macros-core"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b"
+dependencies = [
+ "dotenvy",
+ "either",
+ "heck 0.5.0",
+ "hex",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "serde_json",
+ "sha2",
+ "sqlx-core",
+ "sqlx-mysql",
+ "sqlx-postgres",
+ "sqlx-sqlite",
+ "syn 2.0.117",
+ "tokio",
+ "url",
+]
+
+[[package]]
+name = "sqlx-mysql"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526"
+dependencies = [
+ "atoi",
+ "base64 0.22.1",
+ "bitflags 2.11.1",
+ "byteorder",
+ "bytes",
+ "crc",
+ "digest",
+ "dotenvy",
+ "either",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "generic-array",
+ "hex",
+ "hkdf",
+ "hmac",
+ "itoa",
+ "log",
+ "md-5",
+ "memchr",
+ "once_cell",
+ "percent-encoding",
+ "rand 0.8.6",
+ "rsa",
+ "rust_decimal",
+ "serde",
+ "sha1",
+ "sha2",
+ "smallvec",
+ "sqlx-core",
+ "stringprep",
+ "thiserror 2.0.18",
+ "time",
+ "tracing",
+ "uuid",
+ "whoami",
+]
+
+[[package]]
+name = "sqlx-postgres"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46"
+dependencies = [
+ "atoi",
+ "base64 0.22.1",
+ "bitflags 2.11.1",
+ "byteorder",
+ "crc",
+ "dotenvy",
+ "etcetera",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "hex",
+ "hkdf",
+ "hmac",
+ "home",
+ "itoa",
+ "log",
+ "md-5",
+ "memchr",
+ "once_cell",
+ "rand 0.8.6",
+ "rust_decimal",
+ "serde",
+ "serde_json",
+ "sha2",
+ "smallvec",
+ "sqlx-core",
+ "stringprep",
+ "thiserror 2.0.18",
+ "time",
+ "tracing",
+ "uuid",
+ "whoami",
+]
+
+[[package]]
+name = "sqlx-sqlite"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea"
+dependencies = [
+ "atoi",
+ "flume",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-intrusive",
+ "futures-util",
+ "libsqlite3-sys",
+ "log",
+ "percent-encoding",
+ "serde",
+ "serde_urlencoded",
+ "sqlx-core",
+ "thiserror 2.0.18",
+ "time",
+ "tracing",
+ "url",
+ "uuid",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
+
+[[package]]
+name = "string_cache"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901"
+dependencies = [
+ "new_debug_unreachable",
+ "parking_lot",
+ "phf_shared",
+ "precomputed-hash",
+]
+
+[[package]]
+name = "string_cache_codegen"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "stringprep"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+ "unicode-properties",
+]
+
+[[package]]
+name = "stronghold-derive"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2835db23c4724c05a2f85b81c4681f4aa8ea158edc8a7f4ad791c916fb766c2e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "stronghold-runtime"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18db7cc51450cefdab5f4990e128dd02c98da6d2992b93ffef8992ac0d2f3ddf"
+dependencies = [
+ "dirs 4.0.0",
+ "iota-crypto",
+ "libc",
+ "libsodium-sys-stable",
+ "log",
+ "nix 0.24.3",
+ "rand 0.8.6",
+ "serde",
+ "thiserror 1.0.69",
+ "windows 0.36.1",
+ "zeroize",
+]
+
+[[package]]
+name = "stronghold-utils"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8300214898af5e153e7f66e49dbd1c6a21585f2d592d9f24f58b969792475ed6"
+dependencies = [
+ "rand 0.8.6",
+ "stronghold-derive",
+]
+
+[[package]]
+name = "stronghold_engine"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fd7371c42e557dd71a7f860bb2ec6b6fdb32f97a97987ccc2435fdd1f3a8615"
+dependencies = [
+ "anyhow",
+ "dirs-next",
+ "hex",
+ "iota-crypto",
+ "once_cell",
+ "paste",
+ "serde",
+ "stronghold-runtime",
+ "thiserror 1.0.69",
+ "zeroize",
+]
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "subtle"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
+
+[[package]]
+name = "swift-rs"
+version = "1.0.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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.117"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "synstructure"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
+dependencies = [
+ "cfg-expr",
+ "heck 0.5.0",
+ "pkg-config",
+ "toml 0.8.2",
+ "version-compare",
+]
+
+[[package]]
+name = "tao"
+version = "0.35.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a33f7f9e486ade65fcf1e45c440f9236c904f5c1002cdc7fc6ae582777345ce4"
+dependencies = [
+ "bitflags 2.11.1",
+ "block2",
+ "core-foundation 0.10.1",
+ "core-graphics 0.25.0",
+ "crossbeam-channel",
+ "dbus",
+ "dispatch2",
+ "dlopen2",
+ "dpi",
+ "gdkwayland-sys",
+ "gdkx11-sys",
+ "gtk",
+ "jni",
+ "libc",
+ "log",
+ "ndk",
+ "ndk-sys",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-foundation",
+ "objc2-ui-kit",
+ "once_cell",
+ "parking_lot",
+ "percent-encoding",
+ "raw-window-handle",
+ "tao-macros",
+ "unicode-segmentation",
+ "url",
+ "windows 0.61.3",
+ "windows-core 0.61.2",
+ "windows-version",
+ "x11-dl",
+]
+
+[[package]]
+name = "tao-macros"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "tar"
+version = "0.4.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22692a6476a21fa75fdfc11d452fda482af402c008cdbaf3476414e122040973"
+dependencies = [
+ "filetime",
+ "libc",
+ "xattr",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
+
+[[package]]
+name = "tauri"
+version = "2.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93bd86d231f0a8138f11a02a584769fe4b703dc36ae133d783228dbc4801405"
+dependencies = [
+ "anyhow",
+ "bytes",
+ "cookie",
+ "dirs 6.0.0",
+ "dunce",
+ "embed_plist",
+ "getrandom 0.3.4",
+ "glob",
+ "gtk",
+ "heck 0.5.0",
+ "http",
+ "jni",
+ "libc",
+ "log",
+ "mime",
+ "muda",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-foundation",
+ "objc2-ui-kit",
+ "objc2-web-kit",
+ "percent-encoding",
+ "plist",
+ "raw-window-handle",
+ "reqwest 0.13.3",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "serialize-to-javascript",
+ "swift-rs",
+ "tauri-build",
+ "tauri-macros",
+ "tauri-runtime",
+ "tauri-runtime-wry",
+ "tauri-utils",
+ "thiserror 2.0.18",
+ "tokio",
+ "tray-icon",
+ "url",
+ "webkit2gtk",
+ "webview2-com",
+ "window-vibrancy",
+ "windows 0.61.3",
+]
+
+[[package]]
+name = "tauri-build"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a318b234cc2dea65f575467bafcfb76286bce228ebc3778e337d61d03213007"
+dependencies = [
+ "anyhow",
+ "cargo_toml",
+ "dirs 6.0.0",
+ "glob",
+ "heck 0.5.0",
+ "json-patch",
+ "schemars 0.8.22",
+ "semver",
+ "serde",
+ "serde_json",
+ "tauri-utils",
+ "tauri-winres",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-codegen"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bd11644962add2549a60b7e7c6800f17d7020156e02f516021d8103e80cc528"
+dependencies = [
+ "base64 0.22.1",
+ "brotli",
+ "ico",
+ "json-patch",
+ "plist",
+ "png 0.17.16",
+ "proc-macro2",
+ "quote",
+ "semver",
+ "serde",
+ "serde_json",
+ "sha2",
+ "syn 2.0.117",
+ "tauri-utils",
+ "thiserror 2.0.18",
+ "time",
+ "url",
+ "uuid",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-macros"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fed9d3742a37a355d2e47c9af924e9fbc112abb76f9835d35d4780e318419502"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+ "tauri-codegen",
+ "tauri-utils",
+]
+
+[[package]]
+name = "tauri-plugin"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eefb2c18e8a605c23edb48fc56bb77381199e1a1e7f6ff0c9b970afe7b3cb8ee"
+dependencies = [
+ "anyhow",
+ "glob",
+ "plist",
+ "schemars 0.8.22",
+ "serde",
+ "serde_json",
+ "tauri-utils",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-plugin-clipboard-manager"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "206dc20af4ed210748ba945c2774e60fd0acd52b9a73a028402caf809e9b6ecf"
+dependencies = [
+ "arboard",
+ "log",
+ "serde",
+ "serde_json",
+ "tauri",
+ "tauri-plugin",
+ "thiserror 2.0.18",
+]
+
+[[package]]
+name = "tauri-plugin-fs"
+version = "2.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7ecc274121aca0c036a2b42d1cbe83d368d348f54e0bb8a735c2b1548e8f371"
+dependencies = [
+ "anyhow",
+ "dunce",
+ "glob",
+ "log",
+ "objc2-foundation",
+ "percent-encoding",
+ "schemars 0.8.22",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "tauri",
+ "tauri-plugin",
+ "tauri-utils",
+ "thiserror 2.0.18",
+ "toml 1.1.2+spec-1.1.0",
+ "url",
+]
+
+[[package]]
+name = "tauri-plugin-global-shortcut"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "424af23c7e88d05e4a1a6fc2c7be077912f8c76bd7900fd50aa2b7cbf5a2c405"
+dependencies = [
+ "global-hotkey",
+ "log",
+ "serde",
+ "serde_json",
+ "tauri",
+ "tauri-plugin",
+ "thiserror 2.0.18",
+]
+
+[[package]]
+name = "tauri-plugin-opener"
+version = "2.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17e1bea14edce6b793a04e2417e3fd924b9bc4faae83cdee7d714156cceeed29"
+dependencies = [
+ "dunce",
+ "glob",
+ "objc2-app-kit",
+ "objc2-foundation",
+ "open",
+ "schemars 0.8.22",
+ "serde",
+ "serde_json",
+ "tauri",
+ "tauri-plugin",
+ "thiserror 2.0.18",
+ "url",
+ "windows 0.61.3",
+ "zbus",
+]
+
+[[package]]
+name = "tauri-plugin-sql"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbbdb4f17a7984ef0aa425b11e543a44d11f2fddbdee3fc61970091f8adfb914"
+dependencies = [
+ "futures-core",
+ "indexmap 2.14.0",
+ "log",
+ "rust_decimal",
+ "serde",
+ "serde_json",
+ "sqlx",
+ "tauri",
+ "tauri-plugin",
+ "thiserror 2.0.18",
+ "time",
+ "tokio",
+ "uuid",
+]
+
+[[package]]
+name = "tauri-plugin-store"
+version = "2.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c72dda16786eb4a3f903e43a17b64d8d78dc0f00fe2aa4b757c28f617a8630b"
+dependencies = [
+ "dunce",
+ "serde",
+ "serde_json",
+ "tauri",
+ "tauri-plugin",
+ "thiserror 2.0.18",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "tauri-plugin-stronghold"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6307f47fcf548531743f6f12dbde075014bd8a22c5f8c14201e571de52cbd057"
+dependencies = [
+ "hex",
+ "iota-crypto",
+ "iota_stronghold",
+ "log",
+ "rand_chacha 0.9.0",
+ "rand_core 0.9.5",
+ "rust-argon2 2.1.0",
+ "serde",
+ "serde_json",
+ "tauri",
+ "tauri-plugin",
+ "thiserror 2.0.18",
+ "zeroize",
+]
+
+[[package]]
+name = "tauri-runtime"
+version = "2.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fef478ba1d2ac21c2d528740b24d0cb315e1e8b1111aae53fafac34804371fc"
+dependencies = [
+ "cookie",
+ "dpi",
+ "gtk",
+ "http",
+ "jni",
+ "objc2",
+ "objc2-ui-kit",
+ "objc2-web-kit",
+ "raw-window-handle",
+ "serde",
+ "serde_json",
+ "tauri-utils",
+ "thiserror 2.0.18",
+ "url",
+ "webkit2gtk",
+ "webview2-com",
+ "windows 0.61.3",
+]
+
+[[package]]
+name = "tauri-runtime-wry"
+version = "2.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3989df2ae1c476404fe0a2e8ffc4cfbde97e51efd613c2bb5355fbc9ab52cf0"
+dependencies = [
+ "gtk",
+ "http",
+ "jni",
+ "log",
+ "objc2",
+ "objc2-app-kit",
+ "once_cell",
+ "percent-encoding",
+ "raw-window-handle",
+ "softbuffer",
+ "tao",
+ "tauri-runtime",
+ "tauri-utils",
+ "url",
+ "webkit2gtk",
+ "webview2-com",
+ "windows 0.61.3",
+ "wry",
+]
+
+[[package]]
+name = "tauri-utils"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d57200389a2f82b4b0a40ae29ca19b6978116e8f4d4e974c3234ce40c0ffbdec"
+dependencies = [
+ "anyhow",
+ "brotli",
+ "cargo_metadata",
+ "ctor",
+ "dom_query",
+ "dunce",
+ "glob",
+ "http",
+ "infer",
+ "json-patch",
+ "log",
+ "memchr",
+ "phf",
+ "plist",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "schemars 0.8.22",
+ "semver",
+ "serde",
+ "serde-untagged",
+ "serde_json",
+ "serde_with",
+ "swift-rs",
+ "thiserror 2.0.18",
+ "toml 1.1.2+spec-1.1.0",
+ "url",
+ "urlpattern",
+ "uuid",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-winres"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6"
+dependencies = [
+ "dunce",
+ "embed-resource",
+ "toml 1.1.2+spec-1.1.0",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
+dependencies = [
+ "fastrand",
+ "getrandom 0.4.2",
+ "once_cell",
+ "rustix",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "tendril"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4790fc369d5a530f4b544b094e31388b9b3a37c0f4652ade4505945f5660d24"
+dependencies = [
+ "new_debug_unreachable",
+ "utf-8",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
+dependencies = [
+ "thiserror-impl 1.0.69",
+]
+
+[[package]]
+name = "thiserror"
+version = "2.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
+dependencies = [
+ "thiserror-impl 2.0.18",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "2.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "tiff"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
+dependencies = [
+ "flate2",
+ "jpeg-decoder",
+ "weezl",
+]
+
+[[package]]
+name = "tiff"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b63feaf3343d35b6ca4d50483f94843803b0f51634937cc2ec519fc32232bc52"
+dependencies = [
+ "fax",
+ "flate2",
+ "half",
+ "quick-error",
+ "weezl",
+ "zune-jpeg",
+]
+
+[[package]]
+name = "time"
+version = "0.3.47"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c"
+dependencies = [
+ "deranged",
+ "itoa",
+ "num-conv",
+ "powerfmt",
+ "serde_core",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
+
+[[package]]
+name = "time-macros"
+version = "0.2.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tinystr"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d"
+dependencies = [
+ "displaydoc",
+ "zerovec",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe"
+dependencies = [
+ "bytes",
+ "libc",
+ "mio",
+ "pin-project-lite",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61"
+dependencies = [
+ "rustls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-stream"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
+dependencies = [
+ "serde",
+ "serde_spanned 0.6.9",
+ "toml_datetime 0.6.3",
+ "toml_edit 0.20.2",
+]
+
+[[package]]
+name = "toml"
+version = "0.9.12+spec-1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863"
+dependencies = [
+ "indexmap 2.14.0",
+ "serde_core",
+ "serde_spanned 1.1.1",
+ "toml_datetime 0.7.5+spec-1.1.0",
+ "toml_parser",
+ "toml_writer",
+ "winnow 0.7.15",
+]
+
+[[package]]
+name = "toml"
+version = "1.1.2+spec-1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee"
+dependencies = [
+ "indexmap 2.14.0",
+ "serde_core",
+ "serde_spanned 1.1.1",
+ "toml_datetime 1.1.1+spec-1.1.0",
+ "toml_parser",
+ "toml_writer",
+ "winnow 1.0.3",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.7.5+spec-1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
+dependencies = [
+ "serde_core",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "1.1.1+spec-1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
+dependencies = [
+ "serde_core",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap 2.14.0",
+ "toml_datetime 0.6.3",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+dependencies = [
+ "indexmap 2.14.0",
+ "serde",
+ "serde_spanned 0.6.9",
+ "toml_datetime 0.6.3",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.25.11+spec-1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b"
+dependencies = [
+ "indexmap 2.14.0",
+ "toml_datetime 1.1.1+spec-1.1.0",
+ "toml_parser",
+ "winnow 1.0.3",
+]
+
+[[package]]
+name = "toml_parser"
+version = "1.1.2+spec-1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
+dependencies = [
+ "winnow 1.0.3",
+]
+
+[[package]]
+name = "toml_writer"
+version = "1.1.1+spec-1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db"
+
+[[package]]
+name = "tower"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project-lite",
+ "sync_wrapper",
+ "tokio",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "tower-http"
+version = "0.6.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68d6fdd9f81c2819c9a8b0e0cd91660e7746a8e6ea2ba7c6b2b057985f6bcb51"
+dependencies = [
+ "bitflags 2.11.1",
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "pin-project-lite",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "url",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
+
+[[package]]
+name = "tower-service"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
+
+[[package]]
+name = "tracing"
+version = "0.1.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
+dependencies = [
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "tray-icon"
+version = "0.23.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15edbb0d80583e85ee8df283410038e17314df5cba30da2087a54a85216c0773"
+dependencies = [
+ "crossbeam-channel",
+ "dirs 6.0.0",
+ "libappindicator",
+ "muda",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-core-foundation",
+ "objc2-core-graphics",
+ "objc2-foundation",
+ "once_cell",
+ "png 0.18.1",
+ "serde",
+ "thiserror 2.0.18",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "tree_magic_mini"
+version = "3.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8765b90061cba6c22b5831f675da109ae5561588290f9fa2317adab2714d5a6"
+dependencies = [
+ "memchr",
+ "nom",
+ "petgraph",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "typed-path"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e"
+
+[[package]]
+name = "typeid"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c"
+
+[[package]]
+name = "typenum"
+version = "1.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de"
+
+[[package]]
+name = "uds_windows"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e"
+dependencies = [
+ "memoffset 0.9.1",
+ "tempfile",
+ "windows-sys 0.61.2",
+]
+
+[[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.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-properties"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d"
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
+
+[[package]]
+name = "universal-hash"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
+dependencies = [
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "ureq"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0"
+dependencies = [
+ "base64 0.22.1",
+ "log",
+ "percent-encoding",
+ "ureq-proto",
+ "utf8-zero",
+]
+
+[[package]]
+name = "ureq-proto"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c"
+dependencies = [
+ "base64 0.22.1",
+ "http",
+ "httparse",
+ "log",
+]
+
+[[package]]
+name = "url"
+version = "2.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+ "serde_derive",
+]
+
+[[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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
+
+[[package]]
+name = "utf8-zero"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e"
+
+[[package]]
+name = "utf8_iter"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
+
+[[package]]
+name = "uuid"
+version = "1.23.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76"
+dependencies = [
+ "getrandom 0.4.2",
+ "js-sys",
+ "serde_core",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version-compare"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e"
+
+[[package]]
+name = "version_check"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
+
+[[package]]
+name = "vswhom"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b"
+dependencies = [
+ "libc",
+ "vswhom-sys",
+]
+
+[[package]]
+name = "vswhom-sys"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "walkdir"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "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.11.1+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
+
+[[package]]
+name = "wasip2"
+version = "1.0.3+wasi-0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6"
+dependencies = [
+ "wit-bindgen 0.57.1",
+]
+
+[[package]]
+name = "wasip3"
+version = "0.4.0+wasi-0.3.0-rc-2026-01-06"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
+dependencies = [
+ "wit-bindgen 0.51.0",
+]
+
+[[package]]
+name = "wasite"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.121"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "rustversion",
+ "serde",
+ "wasm-bindgen-macro",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.71"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.121"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.121"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2"
+dependencies = [
+ "bumpalo",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.121"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "wasm-encoder"
+version = "0.244.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
+dependencies = [
+ "leb128fmt",
+ "wasmparser",
+]
+
+[[package]]
+name = "wasm-metadata"
+version = "0.244.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
+dependencies = [
+ "anyhow",
+ "indexmap 2.14.0",
+ "wasm-encoder",
+ "wasmparser",
+]
+
+[[package]]
+name = "wasm-streams"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb"
+dependencies = [
+ "futures-util",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "wasmparser"
+version = "0.244.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
+dependencies = [
+ "bitflags 2.11.1",
+ "hashbrown 0.15.5",
+ "indexmap 2.14.0",
+ "semver",
+]
+
+[[package]]
+name = "wayland-backend"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41b48e27457e8da3b2260ac60d0a94512f5cba36448679f3747c0865b7893ed8"
+dependencies = [
+ "cc",
+ "downcast-rs",
+ "io-lifetimes",
+ "nix 0.26.4",
+ "scoped-tls",
+ "smallvec",
+ "wayland-sys 0.30.1",
+]
+
+[[package]]
+name = "wayland-backend"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2857dd20b54e916ec7253b3d6b4d5c4d7d4ca2c33c2e11c6c76a99bd8744755d"
+dependencies = [
+ "cc",
+ "downcast-rs",
+ "rustix",
+ "smallvec",
+ "wayland-sys 0.31.11",
+]
+
+[[package]]
+name = "wayland-client"
+version = "0.30.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "489c9654770f674fc7e266b3c579f4053d7551df0ceb392f153adb1f9ed06ac8"
+dependencies = [
+ "bitflags 1.3.2",
+ "nix 0.26.4",
+ "wayland-backend 0.1.2",
+ "wayland-scanner 0.30.1",
+]
+
+[[package]]
+name = "wayland-client"
+version = "0.31.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144"
+dependencies = [
+ "bitflags 2.11.1",
+ "rustix",
+ "wayland-backend 0.3.15",
+ "wayland-scanner 0.31.10",
+]
+
+[[package]]
+name = "wayland-protocols"
+version = "0.30.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b28101e5ca94f70461a6c2d610f76d85ad223d042dd76585ab23d3422dd9b4d"
+dependencies = [
+ "bitflags 1.3.2",
+ "wayland-backend 0.1.2",
+ "wayland-client 0.30.2",
+ "wayland-scanner 0.30.1",
+]
+
+[[package]]
+name = "wayland-protocols"
+version = "0.32.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "563a85523cade2429938e790815fd7319062103b9f4a2dc806e9b53b95982d8f"
+dependencies = [
+ "bitflags 2.11.1",
+ "wayland-backend 0.3.15",
+ "wayland-client 0.31.14",
+ "wayland-scanner 0.31.10",
+]
+
+[[package]]
+name = "wayland-protocols-wlr"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fce991093320e4a6a525876e6b629ab24da25f9baef0c2e0080ad173ec89588a"
+dependencies = [
+ "bitflags 1.3.2",
+ "wayland-backend 0.1.2",
+ "wayland-client 0.30.2",
+ "wayland-protocols 0.30.1",
+ "wayland-scanner 0.30.1",
+]
+
+[[package]]
+name = "wayland-protocols-wlr"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234"
+dependencies = [
+ "bitflags 2.11.1",
+ "wayland-backend 0.3.15",
+ "wayland-client 0.31.14",
+ "wayland-protocols 0.32.12",
+ "wayland-scanner 0.31.10",
+]
+
+[[package]]
+name = "wayland-scanner"
+version = "0.30.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9b873b257fbc32ec909c0eb80dea312076a67014e65e245f5eb69a6b8ab330e"
+dependencies = [
+ "proc-macro2",
+ "quick-xml 0.28.2",
+ "quote",
+]
+
+[[package]]
+name = "wayland-scanner"
+version = "0.31.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c324a910fd86ebdc364a3e61ec1f11737d3b1d6c273c0239ee8ff4bc0d24b4a"
+dependencies = [
+ "proc-macro2",
+ "quick-xml 0.39.4",
+ "quote",
+]
+
+[[package]]
+name = "wayland-sys"
+version = "0.30.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06"
+dependencies = [
+ "dlib",
+ "log",
+ "pkg-config",
+]
+
+[[package]]
+name = "wayland-sys"
+version = "0.31.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8eab23fefc9e41f8e841df4a9c707e8a8c4ed26e944ef69297184de2785e3be"
+dependencies = [
+ "pkg-config",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-time"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web_atoms"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7cff6eef815df1834fd250e3a2ff436044d82a9f1bc1980ca1dbdf07effc538"
+dependencies = [
+ "phf",
+ "phf_codegen",
+ "string_cache",
+ "string_cache_codegen",
+]
+
+[[package]]
+name = "webkit2gtk"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793"
+dependencies = [
+ "bitflags 1.3.2",
+ "cairo-rs",
+ "gdk",
+ "gdk-sys",
+ "gio",
+ "gio-sys",
+ "glib",
+ "glib-sys",
+ "gobject-sys",
+ "gtk",
+ "gtk-sys",
+ "javascriptcore-rs",
+ "libc",
+ "once_cell",
+ "soup3",
+ "webkit2gtk-sys",
+]
+
+[[package]]
+name = "webkit2gtk-sys"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5"
+dependencies = [
+ "bitflags 1.3.2",
+ "cairo-sys-rs",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "javascriptcore-rs-sys",
+ "libc",
+ "pkg-config",
+ "soup3-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d"
+dependencies = [
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "webview2-com"
+version = "0.38.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a"
+dependencies = [
+ "webview2-com-macros",
+ "webview2-com-sys",
+ "windows 0.61.3",
+ "windows-core 0.61.2",
+ "windows-implement",
+ "windows-interface",
+]
+
+[[package]]
+name = "webview2-com-macros"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "webview2-com-sys"
+version = "0.38.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c"
+dependencies = [
+ "thiserror 2.0.18",
+ "windows 0.61.3",
+ "windows-core 0.61.2",
+]
+
+[[package]]
+name = "weezl"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88"
+
+[[package]]
+name = "whoami"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d"
+dependencies = [
+ "libredox",
+ "wasite",
+]
+
+[[package]]
+name = "widestring"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
+dependencies = [
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "window-vibrancy"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c"
+dependencies = [
+ "objc2",
+ "objc2-app-kit",
+ "objc2-core-foundation",
+ "objc2-foundation",
+ "raw-window-handle",
+ "windows-sys 0.59.0",
+ "windows-version",
+]
+
+[[package]]
+name = "windows"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e53b97a83176b369b0eb2fd8158d4ae215357d02df9d40c1e1bf1879c5482c80"
+dependencies = [
+ "windows_aarch64_msvc 0.36.1",
+ "windows_i686_gnu 0.36.1",
+ "windows_i686_msvc 0.36.1",
+ "windows_x86_64_gnu 0.36.1",
+ "windows_x86_64_msvc 0.36.1",
+]
+
+[[package]]
+name = "windows"
+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"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core 0.52.0",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows"
+version = "0.61.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893"
+dependencies = [
+ "windows-collections",
+ "windows-core 0.61.2",
+ "windows-future",
+ "windows-link 0.1.3",
+ "windows-numerics",
+]
+
+[[package]]
+name = "windows-collections"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8"
+dependencies = [
+ "windows-core 0.61.2",
+]
+
+[[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",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.61.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
+dependencies = [
+ "windows-implement",
+ "windows-interface",
+ "windows-link 0.1.3",
+ "windows-result 0.3.4",
+ "windows-strings 0.4.2",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.62.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
+dependencies = [
+ "windows-implement",
+ "windows-interface",
+ "windows-link 0.2.1",
+ "windows-result 0.4.1",
+ "windows-strings 0.5.1",
+]
+
+[[package]]
+name = "windows-future"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e"
+dependencies = [
+ "windows-core 0.61.2",
+ "windows-link 0.1.3",
+ "windows-threading",
+]
+
+[[package]]
+name = "windows-implement"
+version = "0.60.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "windows-interface"
+version = "0.59.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "windows-link"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
+
+[[package]]
+name = "windows-link"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
+
+[[package]]
+name = "windows-numerics"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
+dependencies = [
+ "windows-core 0.61.2",
+ "windows-link 0.1.3",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
+dependencies = [
+ "windows-link 0.1.3",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
+dependencies = [
+ "windows-link 0.2.1",
+]
+
+[[package]]
+name = "windows-strings"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
+dependencies = [
+ "windows-link 0.1.3",
+]
+
+[[package]]
+name = "windows-strings"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
+dependencies = [
+ "windows-link 0.2.1",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.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-sys"
+version = "0.60.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
+dependencies = [
+ "windows-targets 0.53.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.61.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
+dependencies = [
+ "windows-link 0.2.1",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.6",
+ "windows_aarch64_msvc 0.52.6",
+ "windows_i686_gnu 0.52.6",
+ "windows_i686_gnullvm 0.52.6",
+ "windows_i686_msvc 0.52.6",
+ "windows_x86_64_gnu 0.52.6",
+ "windows_x86_64_gnullvm 0.52.6",
+ "windows_x86_64_msvc 0.52.6",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.53.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
+dependencies = [
+ "windows-link 0.2.1",
+ "windows_aarch64_gnullvm 0.53.1",
+ "windows_aarch64_msvc 0.53.1",
+ "windows_i686_gnu 0.53.1",
+ "windows_i686_gnullvm 0.53.1",
+ "windows_i686_msvc 0.53.1",
+ "windows_x86_64_gnu 0.53.1",
+ "windows_x86_64_gnullvm 0.53.1",
+ "windows_x86_64_msvc 0.53.1",
+]
+
+[[package]]
+name = "windows-threading"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6"
+dependencies = [
+ "windows-link 0.1.3",
+]
+
+[[package]]
+name = "windows-version"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631"
+dependencies = [
+ "windows-link 0.2.1",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.7.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
+
+[[package]]
+name = "winnow"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winreg"
+version = "0.55.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "wit-bindgen"
+version = "0.51.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
+dependencies = [
+ "wit-bindgen-rust-macro",
+]
+
+[[package]]
+name = "wit-bindgen"
+version = "0.57.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
+
+[[package]]
+name = "wit-bindgen-core"
+version = "0.51.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
+dependencies = [
+ "anyhow",
+ "heck 0.5.0",
+ "wit-parser",
+]
+
+[[package]]
+name = "wit-bindgen-rust"
+version = "0.51.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
+dependencies = [
+ "anyhow",
+ "heck 0.5.0",
+ "indexmap 2.14.0",
+ "prettyplease",
+ "syn 2.0.117",
+ "wasm-metadata",
+ "wit-bindgen-core",
+ "wit-component",
+]
+
+[[package]]
+name = "wit-bindgen-rust-macro"
+version = "0.51.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"
+dependencies = [
+ "anyhow",
+ "prettyplease",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+ "wit-bindgen-core",
+ "wit-bindgen-rust",
+]
+
+[[package]]
+name = "wit-component"
+version = "0.244.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
+dependencies = [
+ "anyhow",
+ "bitflags 2.11.1",
+ "indexmap 2.14.0",
+ "log",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "wasm-encoder",
+ "wasm-metadata",
+ "wasmparser",
+ "wit-parser",
+]
+
+[[package]]
+name = "wit-parser"
+version = "0.244.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
+dependencies = [
+ "anyhow",
+ "id-arena",
+ "indexmap 2.14.0",
+ "log",
+ "semver",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "unicode-xid",
+ "wasmparser",
+]
+
+[[package]]
+name = "wl-clipboard-rs"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9651471a32e87d96ef3a127715382b2d11cc7c8bb9822ded8a7cc94072eb0a3"
+dependencies = [
+ "libc",
+ "log",
+ "os_pipe",
+ "rustix",
+ "thiserror 2.0.18",
+ "tree_magic_mini",
+ "wayland-backend 0.3.15",
+ "wayland-client 0.31.14",
+ "wayland-protocols 0.32.12",
+ "wayland-protocols-wlr 0.3.12",
+]
+
+[[package]]
+name = "writeable"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4"
+
+[[package]]
+name = "wry"
+version = "0.55.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "186f9871daa55fd9c016578b810d149de58367113db7fb72b462d2323ce19514"
+dependencies = [
+ "base64 0.22.1",
+ "block2",
+ "cookie",
+ "crossbeam-channel",
+ "dirs 6.0.0",
+ "dom_query",
+ "dpi",
+ "dunce",
+ "gdkx11",
+ "gtk",
+ "http",
+ "javascriptcore-rs",
+ "jni",
+ "libc",
+ "ndk",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-core-foundation",
+ "objc2-foundation",
+ "objc2-ui-kit",
+ "objc2-web-kit",
+ "once_cell",
+ "percent-encoding",
+ "raw-window-handle",
+ "sha2",
+ "soup3",
+ "tao-macros",
+ "thiserror 2.0.18",
+ "url",
+ "webkit2gtk",
+ "webkit2gtk-sys",
+ "webview2-com",
+ "windows 0.61.3",
+ "windows-core 0.61.2",
+ "windows-version",
+ "x11-dl",
+]
+
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
+name = "x11"
+version = "2.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e"
+dependencies = [
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "x11-dl"
+version = "2.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
+dependencies = [
+ "libc",
+ "once_cell",
+ "pkg-config",
+]
+
+[[package]]
+name = "x11rb"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414"
+dependencies = [
+ "gethostname",
+ "rustix",
+ "x11rb-protocol",
+]
+
+[[package]]
+name = "x11rb-protocol"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd"
+
+[[package]]
+name = "x25519-dalek"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277"
+dependencies = [
+ "curve25519-dalek",
+ "rand_core 0.6.4",
+ "zeroize",
+]
+
+[[package]]
+name = "xattr"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156"
+dependencies = [
+ "libc",
+ "rustix",
+]
+
+[[package]]
+name = "xcb"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee4c580d8205abb0a5cf4eb7e927bd664e425b6c3263f9c5310583da96970cf6"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+ "quick-xml 0.30.0",
+]
+
+[[package]]
+name = "xkeysym"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56"
+
+[[package]]
+name = "yoke"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca"
+dependencies = [
+ "stable_deref_trait",
+ "yoke-derive",
+ "zerofrom",
+]
+
+[[package]]
+name = "yoke-derive"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+ "synstructure",
+]
+
+[[package]]
+name = "zbus"
+version = "5.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3bcbf15c8708d7fc1be0c993622e0a5cbd5e8b52bfa40afa4c3e0cd8d724ac1"
+dependencies = [
+ "async-broadcast",
+ "async-executor",
+ "async-io",
+ "async-lock",
+ "async-process",
+ "async-recursion",
+ "async-task",
+ "async-trait",
+ "blocking",
+ "enumflags2",
+ "event-listener",
+ "futures-core",
+ "futures-lite",
+ "hex",
+ "libc",
+ "ordered-stream",
+ "rustix",
+ "serde",
+ "serde_repr",
+ "tracing",
+ "uds_windows",
+ "uuid",
+ "windows-sys 0.61.2",
+ "winnow 1.0.3",
+ "zbus_macros",
+ "zbus_names",
+ "zvariant",
+]
+
+[[package]]
+name = "zbus_macros"
+version = "5.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51fa5406ad9175a8c825a931f8cf347116b531b3634fcb0b627c290f1f2516ff"
+dependencies = [
+ "proc-macro-crate 3.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+ "zbus_names",
+ "zvariant",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zbus_names"
+version = "4.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d"
+dependencies = [
+ "serde",
+ "winnow 1.0.3",
+ "zvariant",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.8.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.8.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "zerofrom"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272"
+dependencies = [
+ "zerofrom-derive",
+]
+
+[[package]]
+name = "zerofrom-derive"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+ "synstructure",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
+dependencies = [
+ "serde",
+ "zeroize_derive",
+]
+
+[[package]]
+name = "zeroize_derive"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "zerotrie"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf"
+dependencies = [
+ "displaydoc",
+ "yoke",
+ "zerofrom",
+]
+
+[[package]]
+name = "zerovec"
+version = "0.11.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239"
+dependencies = [
+ "yoke",
+ "zerofrom",
+ "zerovec-derive",
+]
+
+[[package]]
+name = "zerovec-derive"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+]
+
+[[package]]
+name = "zip"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50"
+dependencies = [
+ "arbitrary",
+ "crc32fast",
+ "crossbeam-utils",
+ "displaydoc",
+ "flate2",
+ "indexmap 2.14.0",
+ "memchr",
+ "thiserror 2.0.18",
+ "zopfli",
+]
+
+[[package]]
+name = "zip"
+version = "8.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b"
+dependencies = [
+ "crc32fast",
+ "flate2",
+ "indexmap 2.14.0",
+ "memchr",
+ "typed-path",
+ "zopfli",
+]
+
+[[package]]
+name = "zlib-rs"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3be3d40e40a133f9c916ee3f9f4fa2d9d63435b5fbe1bfc6d9dae0aa0ada1513"
+
+[[package]]
+name = "zmij"
+version = "1.0.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
+
+[[package]]
+name = "zopfli"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249"
+dependencies = [
+ "bumpalo",
+ "crc32fast",
+ "log",
+ "simd-adler32",
+]
+
+[[package]]
+name = "zune-core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9"
+
+[[package]]
+name = "zune-inflate"
+version = "0.2.54"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02"
+dependencies = [
+ "simd-adler32",
+]
+
+[[package]]
+name = "zune-jpeg"
+version = "0.5.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296"
+dependencies = [
+ "zune-core",
+]
+
+[[package]]
+name = "zvariant"
+version = "5.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c1567a6ec68df868cbbfde844cfc6d81649fe5109a62b116b19fabd53e618ee"
+dependencies = [
+ "endi",
+ "enumflags2",
+ "serde",
+ "winnow 1.0.3",
+ "zvariant_derive",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zvariant_derive"
+version = "5.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7d5b780599bbde114e39d9a0799577fad1ced5105d38515745f7b3099d8ceda"
+dependencies = [
+ "proc-macro-crate 3.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.117",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zvariant_utils"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d464f5733ffa07a3164d656f18533caace9d0638596721355d73256a410d691"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde",
+ "syn 2.0.117",
+ "winnow 1.0.3",
+]
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
index 25e0167ae148b22fbf2983ea1dc53e4fdab55efc..299bdffee13a2079753517df58e3bb1c9b3f0907 100644
--- a/src-tauri/Cargo.toml
+++ b/src-tauri/Cargo.toml
@@ -39,6 +39,8 @@ base64 = "0.22"
uuid = { version = "1", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
screenshots = "0.8"
+sha2 = "0.10"
+zip = { version = "2.4", default-features = false, features = ["deflate"] }
[target."cfg(not(any(target_os = \"android\", target_os = \"ios\")))".dependencies]
tauri-plugin-global-shortcut = "2"
diff --git a/src-tauri/build.rs b/src-tauri/build.rs
index d860e1e6a7cac333c3cc0bc9cb67faf286b07d69..2ba80a8bff12786f28420a30260b9949355066b4 100644
--- a/src-tauri/build.rs
+++ b/src-tauri/build.rs
@@ -1,3 +1,3 @@
-fn main() {
- tauri_build::build()
-}
+fn main() {
+ tauri_build::build()
+}
diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json
index d198b3190de9fc30e2fd80eec539d7697a289e7c..780afac780efadbe7dc1f4b360e76a6d02ecccb6 100644
--- a/src-tauri/capabilities/default.json
+++ b/src-tauri/capabilities/default.json
@@ -1,29 +1,29 @@
-{
- "$schema": "../gen/schemas/desktop-schema.json",
- "identifier": "default",
- "description": "MUSE Alpha Phase 3 production capabilities",
- "windows": ["main"],
- "remote": {
- "urls": ["https://*"]
- },
- "permissions": [
- "core:default",
- "opener:default",
- "core:window:allow-start-dragging",
- "core:window:allow-minimize",
- "core:window:allow-toggle-maximize",
- "core:window:allow-close",
- "core:window:allow-inner-size",
- "store:default",
- "sql:default",
- "sql:allow-execute",
- "fs:default",
- "clipboard-manager:allow-read-text",
- "clipboard-manager:allow-write-text",
- "global-shortcut:allow-register",
- "global-shortcut:allow-unregister",
- "global-shortcut:allow-unregister-all",
- "global-shortcut:allow-is-registered",
- "stronghold:default"
- ]
-}
+{
+ "$schema": "../gen/schemas/desktop-schema.json",
+ "identifier": "default",
+ "description": "MUSE Alpha Phase 3 production capabilities",
+ "windows": ["main"],
+ "remote": {
+ "urls": ["https://*"]
+ },
+ "permissions": [
+ "core:default",
+ "opener:default",
+ "core:window:allow-start-dragging",
+ "core:window:allow-minimize",
+ "core:window:allow-toggle-maximize",
+ "core:window:allow-close",
+ "core:window:allow-inner-size",
+ "store:default",
+ "sql:default",
+ "sql:allow-execute",
+ "fs:default",
+ "clipboard-manager:allow-read-text",
+ "clipboard-manager:allow-write-text",
+ "global-shortcut:allow-register",
+ "global-shortcut:allow-unregister",
+ "global-shortcut:allow-unregister-all",
+ "global-shortcut:allow-is-registered",
+ "stronghold:default"
+ ]
+}
diff --git a/src-tauri/gen/schemas/acl-manifests.json b/src-tauri/gen/schemas/acl-manifests.json
new file mode 100644
index 0000000000000000000000000000000000000000..cfc023f46b76436585d84e9e0f18d4a62ac2278b
--- /dev/null
+++ b/src-tauri/gen/schemas/acl-manifests.json
@@ -0,0 +1 @@
+{"clipboard-manager":{"default_permission":{"identifier":"default","description":"No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n","permissions":[]},"permissions":{"allow-clear":{"identifier":"allow-clear","description":"Enables the clear command without any pre-configured scope.","commands":{"allow":["clear"],"deny":[]}},"allow-read-image":{"identifier":"allow-read-image","description":"Enables the read_image command without any pre-configured scope.","commands":{"allow":["read_image"],"deny":[]}},"allow-read-text":{"identifier":"allow-read-text","description":"Enables the read_text command without any pre-configured scope.","commands":{"allow":["read_text"],"deny":[]}},"allow-write-html":{"identifier":"allow-write-html","description":"Enables the write_html command without any pre-configured scope.","commands":{"allow":["write_html"],"deny":[]}},"allow-write-image":{"identifier":"allow-write-image","description":"Enables the write_image command without any pre-configured scope.","commands":{"allow":["write_image"],"deny":[]}},"allow-write-text":{"identifier":"allow-write-text","description":"Enables the write_text command without any pre-configured scope.","commands":{"allow":["write_text"],"deny":[]}},"deny-clear":{"identifier":"deny-clear","description":"Denies the clear command without any pre-configured scope.","commands":{"allow":[],"deny":["clear"]}},"deny-read-image":{"identifier":"deny-read-image","description":"Denies the read_image command without any pre-configured scope.","commands":{"allow":[],"deny":["read_image"]}},"deny-read-text":{"identifier":"deny-read-text","description":"Denies the read_text command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text"]}},"deny-write-html":{"identifier":"deny-write-html","description":"Denies the write_html command without any pre-configured scope.","commands":{"allow":[],"deny":["write_html"]}},"deny-write-image":{"identifier":"deny-write-image","description":"Denies the write_image command without any pre-configured scope.","commands":{"allow":[],"deny":["write_image"]}},"deny-write-text":{"identifier":"deny-write-text","description":"Denies the write_text command without any pre-configured scope.","commands":{"allow":[],"deny":["write_text"]}}},"permission_sets":{},"global_scope_schema":null},"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","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","allow-identifier","allow-bundle-type","allow-register-listener","allow-remove-listener","allow-supports-multiple-windows"]},"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-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"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-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"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-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-remove-listener":{"identifier":"allow-remove-listener","description":"Enables the remove_listener command without any pre-configured scope.","commands":{"allow":["remove_listener"],"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-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-supports-multiple-windows":{"identifier":"allow-supports-multiple-windows","description":"Enables the supports_multiple_windows command without any pre-configured scope.","commands":{"allow":["supports_multiple_windows"],"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-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"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-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"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-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-remove-listener":{"identifier":"deny-remove-listener","description":"Denies the remove_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_listener"]}},"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-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-supports-multiple-windows":{"identifier":"deny-supports-multiple-windows","description":"Denies the supports_multiple_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["supports_multiple_windows"]}},"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, which enables all commands.","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, which enables all commands.","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, which enables all commands.","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, which enables all commands.","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, which enables all commands.","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, which enables all commands.","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-icon-with-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-icon-with-as-template":{"identifier":"allow-set-icon-with-as-template","description":"Enables the set_icon_with_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_with_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-icon-with-as-template":{"identifier":"deny-set-icon-with-as-template","description":"Denies the set_icon_with_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_with_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-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"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-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"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-is-always-on-top","allow-activity-name","allow-scene-identifier","allow-internal-toggle-maximize"]},"permissions":{"allow-activity-name":{"identifier":"allow-activity-name","description":"Enables the activity_name command without any pre-configured scope.","commands":{"allow":["activity_name"],"deny":[]}},"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-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"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-scene-identifier":{"identifier":"allow-scene-identifier","description":"Enables the scene_identifier command without any pre-configured scope.","commands":{"allow":["scene_identifier"],"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-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"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-focusable":{"identifier":"allow-set-focusable","description":"Enables the set_focusable command without any pre-configured scope.","commands":{"allow":["set_focusable"],"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-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"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-simple-fullscreen":{"identifier":"allow-set-simple-fullscreen","description":"Enables the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":["set_simple_fullscreen"],"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-activity-name":{"identifier":"deny-activity-name","description":"Denies the activity_name command without any pre-configured scope.","commands":{"allow":[],"deny":["activity_name"]}},"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-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"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-scene-identifier":{"identifier":"deny-scene-identifier","description":"Denies the scene_identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["scene_identifier"]}},"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-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"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-focusable":{"identifier":"deny-set-focusable","description":"Denies the set_focusable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focusable"]}},"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-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"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-simple-fullscreen":{"identifier":"deny-set-simple-fullscreen","description":"Denies the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_simple_fullscreen"]}},"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},"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","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","read_text_file_lines_next"],"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-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"allow-start-accessing-security-scoped-resource":{"identifier":"allow-start-accessing-security-scoped-resource","description":"Enables the start_accessing_security_scoped_resource command without any pre-configured scope.","commands":{"allow":["start_accessing_security_scoped_resource"],"deny":[]}},"allow-stat":{"identifier":"allow-stat","description":"Enables the stat command without any pre-configured scope.","commands":{"allow":["stat"],"deny":[]}},"allow-stop-accessing-security-scoped-resource":{"identifier":"allow-stop-accessing-security-scoped-resource","description":"Enables the stop_accessing_security_scoped_resource command without any pre-configured scope.","commands":{"allow":["stop_accessing_security_scoped_resource"],"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","open","write"],"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-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}},"deny-start-accessing-security-scoped-resource":{"identifier":"deny-start-accessing-security-scoped-resource","description":"Denies the start_accessing_security_scoped_resource command without any pre-configured scope.","commands":{"allow":[],"deny":["start_accessing_security_scoped_resource"]}},"deny-stat":{"identifier":"deny-stat","description":"Denies the stat command without any pre-configured scope.","commands":{"allow":[],"deny":["stat"]}},"deny-stop-accessing-security-scoped-resource":{"identifier":"deny-stop-accessing-security-scoped-resource","description":"Denies the stop_accessing_security_scoped_resource command without any pre-configured scope.","commands":{"allow":[],"deny":["stop_accessing_security_scoped_resource"]}},"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","size"],"deny":[]}},"scope":{"identifier":"scope","description":"An empty permission you can use to modify the global scope.\n\n## Example\n\n```json\n{\n \"identifier\": \"read-documents\",\n \"windows\": [\"main\"],\n \"permissions\": [\n \"fs:allow-read\",\n {\n \"identifier\": \"fs:scope\",\n \"allow\": [\n \"$APPDATA/documents/**/*\"\n ],\n \"deny\": [\n \"$APPDATA/documents/secret.txt\"\n ]\n }\n ]\n}\n```\n","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":"A path that can be accessed by the webview when using the fs APIs. FS scope path pattern.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},{"properties":{"path":{"description":"A path that can be accessed by the webview when using the fs APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"}},"required":["path"],"type":"object"}],"description":"FS scope entry.","title":"FsScopeEntry"}},"global-shortcut":{"default_permission":{"identifier":"default","description":"No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n","permissions":[]},"permissions":{"allow-is-registered":{"identifier":"allow-is-registered","description":"Enables the is_registered command without any pre-configured scope.","commands":{"allow":["is_registered"],"deny":[]}},"allow-register":{"identifier":"allow-register","description":"Enables the register command without any pre-configured scope.","commands":{"allow":["register"],"deny":[]}},"allow-register-all":{"identifier":"allow-register-all","description":"Enables the register_all command without any pre-configured scope.","commands":{"allow":["register_all"],"deny":[]}},"allow-unregister":{"identifier":"allow-unregister","description":"Enables the unregister command without any pre-configured scope.","commands":{"allow":["unregister"],"deny":[]}},"allow-unregister-all":{"identifier":"allow-unregister-all","description":"Enables the unregister_all command without any pre-configured scope.","commands":{"allow":["unregister_all"],"deny":[]}},"deny-is-registered":{"identifier":"deny-is-registered","description":"Denies the is_registered command without any pre-configured scope.","commands":{"allow":[],"deny":["is_registered"]}},"deny-register":{"identifier":"deny-register","description":"Denies the register command without any pre-configured scope.","commands":{"allow":[],"deny":["register"]}},"deny-register-all":{"identifier":"deny-register-all","description":"Denies the register_all command without any pre-configured scope.","commands":{"allow":[],"deny":["register_all"]}},"deny-unregister":{"identifier":"deny-unregister","description":"Denies the unregister command without any pre-configured scope.","commands":{"allow":[],"deny":["unregister"]}},"deny-unregister-all":{"identifier":"deny-unregister-all","description":"Denies the unregister_all command without any pre-configured scope.","commands":{"allow":[],"deny":["unregister_all"]}}},"permission_sets":{},"global_scope_schema":null},"opener":{"default_permission":{"identifier":"default","description":"This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer","permissions":["allow-open-url","allow-reveal-item-in-dir","allow-default-urls"]},"permissions":{"allow-default-urls":{"identifier":"allow-default-urls","description":"This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"url":"mailto:*"},{"url":"tel:*"},{"url":"http://*"},{"url":"https://*"}]}},"allow-open-path":{"identifier":"allow-open-path","description":"Enables the open_path command without any pre-configured scope.","commands":{"allow":["open_path"],"deny":[]}},"allow-open-url":{"identifier":"allow-open-url","description":"Enables the open_url command without any pre-configured scope.","commands":{"allow":["open_url"],"deny":[]}},"allow-reveal-item-in-dir":{"identifier":"allow-reveal-item-in-dir","description":"Enables the reveal_item_in_dir command without any pre-configured scope.","commands":{"allow":["reveal_item_in_dir"],"deny":[]}},"deny-open-path":{"identifier":"deny-open-path","description":"Denies the open_path command without any pre-configured scope.","commands":{"allow":[],"deny":["open_path"]}},"deny-open-url":{"identifier":"deny-open-url","description":"Denies the open_url command without any pre-configured scope.","commands":{"allow":[],"deny":["open_url"]}},"deny-reveal-item-in-dir":{"identifier":"deny-reveal-item-in-dir","description":"Denies the reveal_item_in_dir command without any pre-configured scope.","commands":{"allow":[],"deny":["reveal_item_in_dir"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"properties":{"app":{"allOf":[{"$ref":"#/definitions/Application"}],"description":"An application to open this url with, for example: firefox."},"url":{"description":"A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"}},"required":["url"],"type":"object"},{"properties":{"app":{"allOf":[{"$ref":"#/definitions/Application"}],"description":"An application to open this path with, for example: xdg-open."},"path":{"description":"A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"}},"required":["path"],"type":"object"}],"definitions":{"Application":{"anyOf":[{"description":"Open in default application.","type":"null"},{"description":"If true, allow open with any application.","type":"boolean"},{"description":"Allow specific application to open with.","type":"string"}],"description":"Opener scope application."}},"description":"Opener scope entry.","title":"OpenerScopeEntry"}},"sql":{"default_permission":{"identifier":"default","description":"### Default Permissions\n\nThis permission set configures what kind of\ndatabase operations are available from the sql plugin.\n\n### Granted Permissions\n\nAll reading related operations are enabled.\nAlso allows to load or close a connection.\n\n","permissions":["allow-close","allow-load","allow-select"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-execute":{"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]}},"allow-load":{"identifier":"allow-load","description":"Enables the load command without any pre-configured scope.","commands":{"allow":["load"],"deny":[]}},"allow-select":{"identifier":"allow-select","description":"Enables the select command without any pre-configured scope.","commands":{"allow":["select"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-execute":{"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]}},"deny-load":{"identifier":"deny-load","description":"Denies the load command without any pre-configured scope.","commands":{"allow":[],"deny":["load"]}},"deny-select":{"identifier":"deny-select","description":"Denies the select command without any pre-configured scope.","commands":{"allow":[],"deny":["select"]}}},"permission_sets":{},"global_scope_schema":null},"store":{"default_permission":{"identifier":"default","description":"This permission set configures what kind of\noperations are available from the store plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n","permissions":["allow-load","allow-get-store","allow-set","allow-get","allow-has","allow-delete","allow-clear","allow-reset","allow-keys","allow-values","allow-entries","allow-length","allow-reload","allow-save"]},"permissions":{"allow-clear":{"identifier":"allow-clear","description":"Enables the clear command without any pre-configured scope.","commands":{"allow":["clear"],"deny":[]}},"allow-delete":{"identifier":"allow-delete","description":"Enables the delete command without any pre-configured scope.","commands":{"allow":["delete"],"deny":[]}},"allow-entries":{"identifier":"allow-entries","description":"Enables the entries command without any pre-configured scope.","commands":{"allow":["entries"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-get-store":{"identifier":"allow-get-store","description":"Enables the get_store command without any pre-configured scope.","commands":{"allow":["get_store"],"deny":[]}},"allow-has":{"identifier":"allow-has","description":"Enables the has command without any pre-configured scope.","commands":{"allow":["has"],"deny":[]}},"allow-keys":{"identifier":"allow-keys","description":"Enables the keys command without any pre-configured scope.","commands":{"allow":["keys"],"deny":[]}},"allow-length":{"identifier":"allow-length","description":"Enables the length command without any pre-configured scope.","commands":{"allow":["length"],"deny":[]}},"allow-load":{"identifier":"allow-load","description":"Enables the load command without any pre-configured scope.","commands":{"allow":["load"],"deny":[]}},"allow-reload":{"identifier":"allow-reload","description":"Enables the reload command without any pre-configured scope.","commands":{"allow":["reload"],"deny":[]}},"allow-reset":{"identifier":"allow-reset","description":"Enables the reset command without any pre-configured scope.","commands":{"allow":["reset"],"deny":[]}},"allow-save":{"identifier":"allow-save","description":"Enables the save command without any pre-configured scope.","commands":{"allow":["save"],"deny":[]}},"allow-set":{"identifier":"allow-set","description":"Enables the set command without any pre-configured scope.","commands":{"allow":["set"],"deny":[]}},"allow-values":{"identifier":"allow-values","description":"Enables the values command without any pre-configured scope.","commands":{"allow":["values"],"deny":[]}},"deny-clear":{"identifier":"deny-clear","description":"Denies the clear command without any pre-configured scope.","commands":{"allow":[],"deny":["clear"]}},"deny-delete":{"identifier":"deny-delete","description":"Denies the delete command without any pre-configured scope.","commands":{"allow":[],"deny":["delete"]}},"deny-entries":{"identifier":"deny-entries","description":"Denies the entries command without any pre-configured scope.","commands":{"allow":[],"deny":["entries"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-get-store":{"identifier":"deny-get-store","description":"Denies the get_store command without any pre-configured scope.","commands":{"allow":[],"deny":["get_store"]}},"deny-has":{"identifier":"deny-has","description":"Denies the has command without any pre-configured scope.","commands":{"allow":[],"deny":["has"]}},"deny-keys":{"identifier":"deny-keys","description":"Denies the keys command without any pre-configured scope.","commands":{"allow":[],"deny":["keys"]}},"deny-length":{"identifier":"deny-length","description":"Denies the length command without any pre-configured scope.","commands":{"allow":[],"deny":["length"]}},"deny-load":{"identifier":"deny-load","description":"Denies the load command without any pre-configured scope.","commands":{"allow":[],"deny":["load"]}},"deny-reload":{"identifier":"deny-reload","description":"Denies the reload command without any pre-configured scope.","commands":{"allow":[],"deny":["reload"]}},"deny-reset":{"identifier":"deny-reset","description":"Denies the reset command without any pre-configured scope.","commands":{"allow":[],"deny":["reset"]}},"deny-save":{"identifier":"deny-save","description":"Denies the save command without any pre-configured scope.","commands":{"allow":[],"deny":["save"]}},"deny-set":{"identifier":"deny-set","description":"Denies the set command without any pre-configured scope.","commands":{"allow":[],"deny":["set"]}},"deny-values":{"identifier":"deny-values","description":"Denies the values command without any pre-configured scope.","commands":{"allow":[],"deny":["values"]}}},"permission_sets":{},"global_scope_schema":null},"stronghold":{"default_permission":{"identifier":"default","description":"This permission set configures what kind of\noperations are available from the stronghold plugin.\n\n#### Granted Permissions\n\nAll non-destructive operations are enabled by default.\n\n","permissions":["allow-create-client","allow-get-store-record","allow-initialize","allow-execute-procedure","allow-load-client","allow-save-secret","allow-save-store-record","allow-save"]},"permissions":{"allow-create-client":{"identifier":"allow-create-client","description":"Enables the create_client command without any pre-configured scope.","commands":{"allow":["create_client"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-execute-procedure":{"identifier":"allow-execute-procedure","description":"Enables the execute_procedure command without any pre-configured scope.","commands":{"allow":["execute_procedure"],"deny":[]}},"allow-get-store-record":{"identifier":"allow-get-store-record","description":"Enables the get_store_record command without any pre-configured scope.","commands":{"allow":["get_store_record"],"deny":[]}},"allow-initialize":{"identifier":"allow-initialize","description":"Enables the initialize command without any pre-configured scope.","commands":{"allow":["initialize"],"deny":[]}},"allow-load-client":{"identifier":"allow-load-client","description":"Enables the load_client command without any pre-configured scope.","commands":{"allow":["load_client"],"deny":[]}},"allow-remove-secret":{"identifier":"allow-remove-secret","description":"Enables the remove_secret command without any pre-configured scope.","commands":{"allow":["remove_secret"],"deny":[]}},"allow-remove-store-record":{"identifier":"allow-remove-store-record","description":"Enables the remove_store_record command without any pre-configured scope.","commands":{"allow":["remove_store_record"],"deny":[]}},"allow-save":{"identifier":"allow-save","description":"Enables the save command without any pre-configured scope.","commands":{"allow":["save"],"deny":[]}},"allow-save-secret":{"identifier":"allow-save-secret","description":"Enables the save_secret command without any pre-configured scope.","commands":{"allow":["save_secret"],"deny":[]}},"allow-save-store-record":{"identifier":"allow-save-store-record","description":"Enables the save_store_record command without any pre-configured scope.","commands":{"allow":["save_store_record"],"deny":[]}},"deny-create-client":{"identifier":"deny-create-client","description":"Denies the create_client command without any pre-configured scope.","commands":{"allow":[],"deny":["create_client"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-execute-procedure":{"identifier":"deny-execute-procedure","description":"Denies the execute_procedure command without any pre-configured scope.","commands":{"allow":[],"deny":["execute_procedure"]}},"deny-get-store-record":{"identifier":"deny-get-store-record","description":"Denies the get_store_record command without any pre-configured scope.","commands":{"allow":[],"deny":["get_store_record"]}},"deny-initialize":{"identifier":"deny-initialize","description":"Denies the initialize command without any pre-configured scope.","commands":{"allow":[],"deny":["initialize"]}},"deny-load-client":{"identifier":"deny-load-client","description":"Denies the load_client command without any pre-configured scope.","commands":{"allow":[],"deny":["load_client"]}},"deny-remove-secret":{"identifier":"deny-remove-secret","description":"Denies the remove_secret command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_secret"]}},"deny-remove-store-record":{"identifier":"deny-remove-store-record","description":"Denies the remove_store_record command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_store_record"]}},"deny-save":{"identifier":"deny-save","description":"Denies the save command without any pre-configured scope.","commands":{"allow":[],"deny":["save"]}},"deny-save-secret":{"identifier":"deny-save-secret","description":"Denies the save_secret command without any pre-configured scope.","commands":{"allow":[],"deny":["save_secret"]}},"deny-save-store-record":{"identifier":"deny-save-store-record","description":"Denies the save_store_record command without any pre-configured scope.","commands":{"allow":[],"deny":["save_store_record"]}}},"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 0000000000000000000000000000000000000000..03f29fbfd10210cd095155207546ef5fe4dfe4d0
--- /dev/null
+++ b/src-tauri/gen/schemas/capabilities.json
@@ -0,0 +1 @@
+{"default":{"identifier":"default","description":"MUSE Alpha Phase 3 production capabilities","remote":{"urls":["https://*"]},"local":true,"windows":["main"],"permissions":["core:default","opener:default","core:window:allow-start-dragging","core:window:allow-minimize","core:window:allow-toggle-maximize","core:window:allow-close","core:window:allow-inner-size","store:default","sql:default","sql:allow-execute","fs:default","clipboard-manager:allow-read-text","clipboard-manager:allow-write-text","global-shortcut:allow-register","global-shortcut:allow-unregister","global-shortcut:allow-unregister-all","global-shortcut:allow-is-registered","stronghold: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 0000000000000000000000000000000000000000..5ba3bfc9ff4af3c4cfdfe2a03f085f25602ddc4b
--- /dev/null
+++ b/src-tauri/gen/schemas/desktop-schema.json
@@ -0,0 +1,6611 @@
+{
+ "$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' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its 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 programmatic 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 programmatic 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\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] 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\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\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#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`",
+ "type": "string",
+ "const": "fs:default",
+ "markdownDescription": "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#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`",
+ "type": "string",
+ "const": "fs:allow-app-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`",
+ "type": "string",
+ "const": "fs:allow-app-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`",
+ "type": "string",
+ "const": "fs:allow-app-read",
+ "markdownDescription": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`",
+ "type": "string",
+ "const": "fs:allow-app-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`",
+ "type": "string",
+ "const": "fs:allow-app-write",
+ "markdownDescription": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`",
+ "type": "string",
+ "const": "fs:allow-app-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`",
+ "type": "string",
+ "const": "fs:allow-appcache-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`",
+ "type": "string",
+ "const": "fs:allow-appcache-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`",
+ "type": "string",
+ "const": "fs:allow-appcache-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`",
+ "type": "string",
+ "const": "fs:allow-appcache-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`",
+ "type": "string",
+ "const": "fs:allow-appcache-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`",
+ "type": "string",
+ "const": "fs:allow-appcache-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`",
+ "type": "string",
+ "const": "fs:allow-appconfig-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`",
+ "type": "string",
+ "const": "fs:allow-appconfig-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`",
+ "type": "string",
+ "const": "fs:allow-appconfig-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`",
+ "type": "string",
+ "const": "fs:allow-appconfig-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`",
+ "type": "string",
+ "const": "fs:allow-appconfig-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`",
+ "type": "string",
+ "const": "fs:allow-appconfig-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`",
+ "type": "string",
+ "const": "fs:allow-appdata-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-appdata-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`",
+ "type": "string",
+ "const": "fs:allow-appdata-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-appdata-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`",
+ "type": "string",
+ "const": "fs:allow-appdata-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-appdata-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`",
+ "type": "string",
+ "const": "fs:allow-applog-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`",
+ "type": "string",
+ "const": "fs:allow-applog-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`",
+ "type": "string",
+ "const": "fs:allow-applog-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`",
+ "type": "string",
+ "const": "fs:allow-applog-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`",
+ "type": "string",
+ "const": "fs:allow-applog-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`",
+ "type": "string",
+ "const": "fs:allow-applog-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`",
+ "type": "string",
+ "const": "fs:allow-audio-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`",
+ "type": "string",
+ "const": "fs:allow-audio-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`",
+ "type": "string",
+ "const": "fs:allow-audio-read",
+ "markdownDescription": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`",
+ "type": "string",
+ "const": "fs:allow-audio-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`",
+ "type": "string",
+ "const": "fs:allow-audio-write",
+ "markdownDescription": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`",
+ "type": "string",
+ "const": "fs:allow-audio-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`",
+ "type": "string",
+ "const": "fs:allow-cache-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`",
+ "type": "string",
+ "const": "fs:allow-cache-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`",
+ "type": "string",
+ "const": "fs:allow-cache-read",
+ "markdownDescription": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`",
+ "type": "string",
+ "const": "fs:allow-cache-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`",
+ "type": "string",
+ "const": "fs:allow-cache-write",
+ "markdownDescription": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`",
+ "type": "string",
+ "const": "fs:allow-cache-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`",
+ "type": "string",
+ "const": "fs:allow-config-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`",
+ "type": "string",
+ "const": "fs:allow-config-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`",
+ "type": "string",
+ "const": "fs:allow-config-read",
+ "markdownDescription": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`",
+ "type": "string",
+ "const": "fs:allow-config-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`",
+ "type": "string",
+ "const": "fs:allow-config-write",
+ "markdownDescription": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`",
+ "type": "string",
+ "const": "fs:allow-config-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`",
+ "type": "string",
+ "const": "fs:allow-data-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`",
+ "type": "string",
+ "const": "fs:allow-data-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`",
+ "type": "string",
+ "const": "fs:allow-data-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`",
+ "type": "string",
+ "const": "fs:allow-data-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`",
+ "type": "string",
+ "const": "fs:allow-data-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`",
+ "type": "string",
+ "const": "fs:allow-data-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`",
+ "type": "string",
+ "const": "fs:allow-desktop-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`",
+ "type": "string",
+ "const": "fs:allow-desktop-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`",
+ "type": "string",
+ "const": "fs:allow-desktop-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`",
+ "type": "string",
+ "const": "fs:allow-desktop-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`",
+ "type": "string",
+ "const": "fs:allow-desktop-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`",
+ "type": "string",
+ "const": "fs:allow-desktop-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`",
+ "type": "string",
+ "const": "fs:allow-document-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`",
+ "type": "string",
+ "const": "fs:allow-document-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`",
+ "type": "string",
+ "const": "fs:allow-document-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`",
+ "type": "string",
+ "const": "fs:allow-document-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`",
+ "type": "string",
+ "const": "fs:allow-document-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`",
+ "type": "string",
+ "const": "fs:allow-document-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`",
+ "type": "string",
+ "const": "fs:allow-download-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`",
+ "type": "string",
+ "const": "fs:allow-download-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`",
+ "type": "string",
+ "const": "fs:allow-download-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`",
+ "type": "string",
+ "const": "fs:allow-download-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`",
+ "type": "string",
+ "const": "fs:allow-download-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`",
+ "type": "string",
+ "const": "fs:allow-download-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`",
+ "type": "string",
+ "const": "fs:allow-exe-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`",
+ "type": "string",
+ "const": "fs:allow-exe-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`",
+ "type": "string",
+ "const": "fs:allow-exe-read",
+ "markdownDescription": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`",
+ "type": "string",
+ "const": "fs:allow-exe-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`",
+ "type": "string",
+ "const": "fs:allow-exe-write",
+ "markdownDescription": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`",
+ "type": "string",
+ "const": "fs:allow-exe-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`",
+ "type": "string",
+ "const": "fs:allow-font-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`",
+ "type": "string",
+ "const": "fs:allow-font-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`",
+ "type": "string",
+ "const": "fs:allow-font-read",
+ "markdownDescription": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`",
+ "type": "string",
+ "const": "fs:allow-font-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`",
+ "type": "string",
+ "const": "fs:allow-font-write",
+ "markdownDescription": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`",
+ "type": "string",
+ "const": "fs:allow-font-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`",
+ "type": "string",
+ "const": "fs:allow-home-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`",
+ "type": "string",
+ "const": "fs:allow-home-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`",
+ "type": "string",
+ "const": "fs:allow-home-read",
+ "markdownDescription": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`",
+ "type": "string",
+ "const": "fs:allow-home-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`",
+ "type": "string",
+ "const": "fs:allow-home-write",
+ "markdownDescription": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`",
+ "type": "string",
+ "const": "fs:allow-home-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`",
+ "type": "string",
+ "const": "fs:allow-localdata-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-localdata-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`",
+ "type": "string",
+ "const": "fs:allow-localdata-read",
+ "markdownDescription": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-localdata-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`",
+ "type": "string",
+ "const": "fs:allow-localdata-write",
+ "markdownDescription": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-localdata-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`",
+ "type": "string",
+ "const": "fs:allow-log-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`",
+ "type": "string",
+ "const": "fs:allow-log-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`",
+ "type": "string",
+ "const": "fs:allow-log-read",
+ "markdownDescription": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`",
+ "type": "string",
+ "const": "fs:allow-log-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`",
+ "type": "string",
+ "const": "fs:allow-log-write",
+ "markdownDescription": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`",
+ "type": "string",
+ "const": "fs:allow-log-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`",
+ "type": "string",
+ "const": "fs:allow-picture-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`",
+ "type": "string",
+ "const": "fs:allow-picture-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`",
+ "type": "string",
+ "const": "fs:allow-picture-read",
+ "markdownDescription": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`",
+ "type": "string",
+ "const": "fs:allow-picture-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`",
+ "type": "string",
+ "const": "fs:allow-picture-write",
+ "markdownDescription": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`",
+ "type": "string",
+ "const": "fs:allow-picture-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`",
+ "type": "string",
+ "const": "fs:allow-public-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`",
+ "type": "string",
+ "const": "fs:allow-public-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`",
+ "type": "string",
+ "const": "fs:allow-public-read",
+ "markdownDescription": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`",
+ "type": "string",
+ "const": "fs:allow-public-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`",
+ "type": "string",
+ "const": "fs:allow-public-write",
+ "markdownDescription": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`",
+ "type": "string",
+ "const": "fs:allow-public-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`",
+ "type": "string",
+ "const": "fs:allow-resource-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`",
+ "type": "string",
+ "const": "fs:allow-resource-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`",
+ "type": "string",
+ "const": "fs:allow-resource-read",
+ "markdownDescription": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`",
+ "type": "string",
+ "const": "fs:allow-resource-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`",
+ "type": "string",
+ "const": "fs:allow-resource-write",
+ "markdownDescription": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`",
+ "type": "string",
+ "const": "fs:allow-resource-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`",
+ "type": "string",
+ "const": "fs:allow-runtime-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`",
+ "type": "string",
+ "const": "fs:allow-runtime-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`",
+ "type": "string",
+ "const": "fs:allow-runtime-read",
+ "markdownDescription": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`",
+ "type": "string",
+ "const": "fs:allow-runtime-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`",
+ "type": "string",
+ "const": "fs:allow-runtime-write",
+ "markdownDescription": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`",
+ "type": "string",
+ "const": "fs:allow-runtime-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`",
+ "type": "string",
+ "const": "fs:allow-temp-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`",
+ "type": "string",
+ "const": "fs:allow-temp-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`",
+ "type": "string",
+ "const": "fs:allow-temp-read",
+ "markdownDescription": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`",
+ "type": "string",
+ "const": "fs:allow-temp-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`",
+ "type": "string",
+ "const": "fs:allow-temp-write",
+ "markdownDescription": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`",
+ "type": "string",
+ "const": "fs:allow-temp-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`",
+ "type": "string",
+ "const": "fs:allow-template-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`",
+ "type": "string",
+ "const": "fs:allow-template-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`",
+ "type": "string",
+ "const": "fs:allow-template-read",
+ "markdownDescription": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`",
+ "type": "string",
+ "const": "fs:allow-template-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`",
+ "type": "string",
+ "const": "fs:allow-template-write",
+ "markdownDescription": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`",
+ "type": "string",
+ "const": "fs:allow-template-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`",
+ "type": "string",
+ "const": "fs:allow-video-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`",
+ "type": "string",
+ "const": "fs:allow-video-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`",
+ "type": "string",
+ "const": "fs:allow-video-read",
+ "markdownDescription": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`",
+ "type": "string",
+ "const": "fs:allow-video-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`",
+ "type": "string",
+ "const": "fs:allow-video-write",
+ "markdownDescription": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`",
+ "type": "string",
+ "const": "fs:allow-video-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`"
+ },
+ {
+ "description": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`",
+ "type": "string",
+ "const": "fs:deny-default",
+ "markdownDescription": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`"
+ },
+ {
+ "description": "Enables the copy_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-copy-file",
+ "markdownDescription": "Enables the copy_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the create command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-create",
+ "markdownDescription": "Enables the create command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the exists command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-exists",
+ "markdownDescription": "Enables the exists command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the fstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-fstat",
+ "markdownDescription": "Enables the fstat command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the ftruncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-ftruncate",
+ "markdownDescription": "Enables the ftruncate command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the lstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-lstat",
+ "markdownDescription": "Enables the lstat command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the mkdir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-mkdir",
+ "markdownDescription": "Enables the mkdir command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the open command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-open",
+ "markdownDescription": "Enables the open command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read",
+ "markdownDescription": "Enables the read command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-dir",
+ "markdownDescription": "Enables the read_dir command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-file",
+ "markdownDescription": "Enables the read_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-text-file",
+ "markdownDescription": "Enables the read_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text_file_lines command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-text-file-lines",
+ "markdownDescription": "Enables the read_text_file_lines command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text_file_lines_next command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-text-file-lines-next",
+ "markdownDescription": "Enables the read_text_file_lines_next command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-remove",
+ "markdownDescription": "Enables the remove command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the rename command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-rename",
+ "markdownDescription": "Enables the rename command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the seek command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-seek",
+ "markdownDescription": "Enables the seek command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the size command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-size",
+ "markdownDescription": "Enables the size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the start_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-start-accessing-security-scoped-resource",
+ "markdownDescription": "Enables the start_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the stat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-stat",
+ "markdownDescription": "Enables the stat command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the stop_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-stop-accessing-security-scoped-resource",
+ "markdownDescription": "Enables the stop_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the truncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-truncate",
+ "markdownDescription": "Enables the truncate command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unwatch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-unwatch",
+ "markdownDescription": "Enables the unwatch command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the watch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-watch",
+ "markdownDescription": "Enables the watch command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-write",
+ "markdownDescription": "Enables the write command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-write-file",
+ "markdownDescription": "Enables the write_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-write-text-file",
+ "markdownDescription": "Enables the write_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "This permissions allows to create the application specific directories.\n",
+ "type": "string",
+ "const": "fs:create-app-specific-dirs",
+ "markdownDescription": "This permissions allows to create the application specific directories.\n"
+ },
+ {
+ "description": "Denies the copy_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-copy-file",
+ "markdownDescription": "Denies the copy_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-create",
+ "markdownDescription": "Denies the create command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the exists command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-exists",
+ "markdownDescription": "Denies the exists command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the fstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-fstat",
+ "markdownDescription": "Denies the fstat command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the ftruncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-ftruncate",
+ "markdownDescription": "Denies the ftruncate command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the lstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-lstat",
+ "markdownDescription": "Denies the lstat command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the mkdir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-mkdir",
+ "markdownDescription": "Denies the mkdir command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the open command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-open",
+ "markdownDescription": "Denies the open command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read",
+ "markdownDescription": "Denies the read command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-dir",
+ "markdownDescription": "Denies the read_dir command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-file",
+ "markdownDescription": "Denies the read_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-text-file",
+ "markdownDescription": "Denies the read_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text_file_lines command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-text-file-lines",
+ "markdownDescription": "Denies the read_text_file_lines command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text_file_lines_next command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-text-file-lines-next",
+ "markdownDescription": "Denies the read_text_file_lines_next command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-remove",
+ "markdownDescription": "Denies the remove command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the rename command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-rename",
+ "markdownDescription": "Denies the rename command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the seek command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-seek",
+ "markdownDescription": "Denies the seek command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the size command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-size",
+ "markdownDescription": "Denies the size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the start_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-start-accessing-security-scoped-resource",
+ "markdownDescription": "Denies the start_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the stat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-stat",
+ "markdownDescription": "Denies the stat command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the stop_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-stop-accessing-security-scoped-resource",
+ "markdownDescription": "Denies the stop_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the truncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-truncate",
+ "markdownDescription": "Denies the truncate command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unwatch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-unwatch",
+ "markdownDescription": "Denies the unwatch command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the watch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-watch",
+ "markdownDescription": "Denies the watch command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "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."
+ },
+ {
+ "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",
+ "markdownDescription": "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."
+ },
+ {
+ "description": "Denies the write command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-write",
+ "markdownDescription": "Denies the write command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-write-file",
+ "markdownDescription": "Denies the write_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-write-text-file",
+ "markdownDescription": "Denies the write_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "This enables all read related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-all",
+ "markdownDescription": "This enables all read related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n",
+ "type": "string",
+ "const": "fs:read-app-specific-dirs-recursive",
+ "markdownDescription": "This permission allows recursive read functionality on the application\nspecific base directories. \n"
+ },
+ {
+ "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-dirs",
+ "markdownDescription": "This enables directory read and file metadata related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This enables file read related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-files",
+ "markdownDescription": "This enables file read related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This enables all index or metadata related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-meta",
+ "markdownDescription": "This enables all index or metadata related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "An empty permission you can use to modify the global scope.\n\n## Example\n\n```json\n{\n \"identifier\": \"read-documents\",\n \"windows\": [\"main\"],\n \"permissions\": [\n \"fs:allow-read\",\n {\n \"identifier\": \"fs:scope\",\n \"allow\": [\n \"$APPDATA/documents/**/*\"\n ],\n \"deny\": [\n \"$APPDATA/documents/secret.txt\"\n ]\n }\n ]\n}\n```\n",
+ "type": "string",
+ "const": "fs:scope",
+ "markdownDescription": "An empty permission you can use to modify the global scope.\n\n## Example\n\n```json\n{\n \"identifier\": \"read-documents\",\n \"windows\": [\"main\"],\n \"permissions\": [\n \"fs:allow-read\",\n {\n \"identifier\": \"fs:scope\",\n \"allow\": [\n \"$APPDATA/documents/**/*\"\n ],\n \"deny\": [\n \"$APPDATA/documents/secret.txt\"\n ]\n }\n ]\n}\n```\n"
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the application folders."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the application directories.",
+ "type": "string",
+ "const": "fs:scope-app-index",
+ "markdownDescription": "This scope permits to list all files and folders in the application directories."
+ },
+ {
+ "description": "This scope permits recursive access to the complete application folders, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-app-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete application folders, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.",
+ "type": "string",
+ "const": "fs:scope-appcache-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPCACHE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-appcache-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.",
+ "type": "string",
+ "const": "fs:scope-appconfig-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPCONFIG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-appconfig-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPDATA`folder.",
+ "type": "string",
+ "const": "fs:scope-appdata-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPDATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-appdata-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.",
+ "type": "string",
+ "const": "fs:scope-applocaldata-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-applocaldata-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPLOG`folder.",
+ "type": "string",
+ "const": "fs:scope-applog-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPLOG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-applog-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$AUDIO`folder.",
+ "type": "string",
+ "const": "fs:scope-audio-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$AUDIO`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-audio-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$CACHE`folder.",
+ "type": "string",
+ "const": "fs:scope-cache-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$CACHE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-cache-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$CONFIG`folder.",
+ "type": "string",
+ "const": "fs:scope-config-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$CONFIG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-config-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DATA`folder.",
+ "type": "string",
+ "const": "fs:scope-data-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-data-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.",
+ "type": "string",
+ "const": "fs:scope-desktop-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DESKTOP`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-desktop-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.",
+ "type": "string",
+ "const": "fs:scope-document-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DOCUMENT`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-document-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.",
+ "type": "string",
+ "const": "fs:scope-download-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DOWNLOAD`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-download-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$EXE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$EXE`folder.",
+ "type": "string",
+ "const": "fs:scope-exe-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$EXE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-exe-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$FONT` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$FONT`folder.",
+ "type": "string",
+ "const": "fs:scope-font-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$FONT`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-font-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$HOME` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$HOME`folder.",
+ "type": "string",
+ "const": "fs:scope-home-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$HOME`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-home-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.",
+ "type": "string",
+ "const": "fs:scope-localdata-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$LOCALDATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-localdata-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$LOG`folder.",
+ "type": "string",
+ "const": "fs:scope-log-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$LOG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-log-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$PICTURE`folder.",
+ "type": "string",
+ "const": "fs:scope-picture-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$PICTURE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-picture-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.",
+ "type": "string",
+ "const": "fs:scope-public-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$PUBLIC`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-public-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.",
+ "type": "string",
+ "const": "fs:scope-resource-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$RESOURCE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-resource-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.",
+ "type": "string",
+ "const": "fs:scope-runtime-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$RUNTIME`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-runtime-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$TEMP`folder.",
+ "type": "string",
+ "const": "fs:scope-temp-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$TEMP`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-temp-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.",
+ "type": "string",
+ "const": "fs:scope-template-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$TEMPLATE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-template-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$VIDEO`folder.",
+ "type": "string",
+ "const": "fs:scope-video-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$VIDEO`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-video-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files."
+ },
+ {
+ "description": "This enables all write related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:write-all",
+ "markdownDescription": "This enables all write related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This enables all file write related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:write-files",
+ "markdownDescription": "This enables all file write related commands without any pre-configured accessible paths."
+ }
+ ]
+ }
+ }
+ },
+ "then": {
+ "properties": {
+ "allow": {
+ "items": {
+ "title": "FsScopeEntry",
+ "description": "FS scope entry.",
+ "anyOf": [
+ {
+ "description": "A path that can be accessed by the webview when using the fs APIs. FS scope path pattern.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
+ "type": "string"
+ },
+ {
+ "type": "object",
+ "required": [
+ "path"
+ ],
+ "properties": {
+ "path": {
+ "description": "A path that can be accessed by the webview when using the fs APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deny": {
+ "items": {
+ "title": "FsScopeEntry",
+ "description": "FS scope entry.",
+ "anyOf": [
+ {
+ "description": "A path that can be accessed by the webview when using the fs APIs. FS scope path pattern.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
+ "type": "string"
+ },
+ {
+ "type": "object",
+ "required": [
+ "path"
+ ],
+ "properties": {
+ "path": {
+ "description": "A path that can be accessed by the webview when using the fs APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "properties": {
+ "identifier": {
+ "description": "Identifier of the permission or permission set.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Identifier"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "identifier": {
+ "anyOf": [
+ {
+ "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`",
+ "type": "string",
+ "const": "opener:default",
+ "markdownDescription": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`"
+ },
+ {
+ "description": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.",
+ "type": "string",
+ "const": "opener:allow-default-urls",
+ "markdownDescription": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application."
+ },
+ {
+ "description": "Enables the open_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:allow-open-path",
+ "markdownDescription": "Enables the open_path command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the open_url command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:allow-open-url",
+ "markdownDescription": "Enables the open_url command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the reveal_item_in_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:allow-reveal-item-in-dir",
+ "markdownDescription": "Enables the reveal_item_in_dir command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the open_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:deny-open-path",
+ "markdownDescription": "Denies the open_path command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the open_url command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:deny-open-url",
+ "markdownDescription": "Denies the open_url command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the reveal_item_in_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:deny-reveal-item-in-dir",
+ "markdownDescription": "Denies the reveal_item_in_dir command without any pre-configured scope."
+ }
+ ]
+ }
+ }
+ },
+ "then": {
+ "properties": {
+ "allow": {
+ "items": {
+ "title": "OpenerScopeEntry",
+ "description": "Opener scope entry.",
+ "anyOf": [
+ {
+ "type": "object",
+ "required": [
+ "url"
+ ],
+ "properties": {
+ "app": {
+ "description": "An application to open this url with, for example: firefox.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Application"
+ }
+ ]
+ },
+ "url": {
+ "description": "A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"",
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "path"
+ ],
+ "properties": {
+ "app": {
+ "description": "An application to open this path with, for example: xdg-open.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Application"
+ }
+ ]
+ },
+ "path": {
+ "description": "A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deny": {
+ "items": {
+ "title": "OpenerScopeEntry",
+ "description": "Opener scope entry.",
+ "anyOf": [
+ {
+ "type": "object",
+ "required": [
+ "url"
+ ],
+ "properties": {
+ "app": {
+ "description": "An application to open this url with, for example: firefox.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Application"
+ }
+ ]
+ },
+ "url": {
+ "description": "A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"",
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "path"
+ ],
+ "properties": {
+ "app": {
+ "description": "An application to open this path with, for example: xdg-open.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Application"
+ }
+ ]
+ },
+ "path": {
+ "description": "A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "properties": {
+ "identifier": {
+ "description": "Identifier of the permission or permission set.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Identifier"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "properties": {
+ "identifier": {
+ "description": "Identifier of the permission or permission set.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Identifier"
+ }
+ ]
+ },
+ "allow": {
+ "description": "Data that defines what is allowed by the scope.",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/definitions/Value"
+ }
+ },
+ "deny": {
+ "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/definitions/Value"
+ }
+ }
+ }
+ }
+ ],
+ "required": [
+ "identifier"
+ ]
+ }
+ ]
+ },
+ "Identifier": {
+ "description": "Permission identifier",
+ "oneOf": [
+ {
+ "description": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n",
+ "type": "string",
+ "const": "clipboard-manager:default",
+ "markdownDescription": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n"
+ },
+ {
+ "description": "Enables the clear command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:allow-clear",
+ "markdownDescription": "Enables the clear command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_image command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:allow-read-image",
+ "markdownDescription": "Enables the read_image command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:allow-read-text",
+ "markdownDescription": "Enables the read_text command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_html command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:allow-write-html",
+ "markdownDescription": "Enables the write_html command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_image command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:allow-write-image",
+ "markdownDescription": "Enables the write_image command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_text command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:allow-write-text",
+ "markdownDescription": "Enables the write_text command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the clear command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:deny-clear",
+ "markdownDescription": "Denies the clear command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_image command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:deny-read-image",
+ "markdownDescription": "Denies the read_image command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:deny-read-text",
+ "markdownDescription": "Denies the read_text command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_html command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:deny-write-html",
+ "markdownDescription": "Denies the write_html command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_image command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:deny-write-image",
+ "markdownDescription": "Denies the write_image command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_text command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:deny-write-text",
+ "markdownDescription": "Denies the write_text command without any pre-configured scope."
+ },
+ {
+ "description": "Default core plugins set.\n#### This default permission set includes:\n\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`",
+ "type": "string",
+ "const": "core:default",
+ "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\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`"
+ },
+ {
+ "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`",
+ "type": "string",
+ "const": "core:app:default",
+ "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`"
+ },
+ {
+ "description": "Enables the app_hide command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-app-hide",
+ "markdownDescription": "Enables the app_hide command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the app_show command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-app-show",
+ "markdownDescription": "Enables the app_show command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the bundle_type command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-bundle-type",
+ "markdownDescription": "Enables the bundle_type command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the default_window_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-default-window-icon",
+ "markdownDescription": "Enables the default_window_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-fetch-data-store-identifiers",
+ "markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the identifier command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-identifier",
+ "markdownDescription": "Enables the identifier command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the name command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-name",
+ "markdownDescription": "Enables the name command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the register_listener command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-register-listener",
+ "markdownDescription": "Enables the register_listener command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove_data_store command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-remove-data-store",
+ "markdownDescription": "Enables the remove_data_store command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove_listener command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-remove-listener",
+ "markdownDescription": "Enables the remove_listener command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_app_theme command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-set-app-theme",
+ "markdownDescription": "Enables the set_app_theme command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_dock_visibility command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-set-dock-visibility",
+ "markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the supports_multiple_windows command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-supports-multiple-windows",
+ "markdownDescription": "Enables the supports_multiple_windows command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the tauri_version command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-tauri-version",
+ "markdownDescription": "Enables the tauri_version command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the version command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-version",
+ "markdownDescription": "Enables the version command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the app_hide command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-app-hide",
+ "markdownDescription": "Denies the app_hide command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the app_show command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-app-show",
+ "markdownDescription": "Denies the app_show command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the bundle_type command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-bundle-type",
+ "markdownDescription": "Denies the bundle_type command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the default_window_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-default-window-icon",
+ "markdownDescription": "Denies the default_window_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-fetch-data-store-identifiers",
+ "markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the identifier command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-identifier",
+ "markdownDescription": "Denies the identifier command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the name command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-name",
+ "markdownDescription": "Denies the name command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the register_listener command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-register-listener",
+ "markdownDescription": "Denies the register_listener command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove_data_store command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-remove-data-store",
+ "markdownDescription": "Denies the remove_data_store command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove_listener command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-remove-listener",
+ "markdownDescription": "Denies the remove_listener command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_app_theme command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-set-app-theme",
+ "markdownDescription": "Denies the set_app_theme command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_dock_visibility command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-set-dock-visibility",
+ "markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the supports_multiple_windows command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-supports-multiple-windows",
+ "markdownDescription": "Denies the supports_multiple_windows command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the tauri_version command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-tauri-version",
+ "markdownDescription": "Denies the tauri_version command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the version command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-version",
+ "markdownDescription": "Denies the version command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`",
+ "type": "string",
+ "const": "core:event:default",
+ "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`"
+ },
+ {
+ "description": "Enables the emit command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:allow-emit",
+ "markdownDescription": "Enables the emit command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the emit_to command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:allow-emit-to",
+ "markdownDescription": "Enables the emit_to command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the listen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:allow-listen",
+ "markdownDescription": "Enables the listen command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unlisten command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:allow-unlisten",
+ "markdownDescription": "Enables the unlisten command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the emit command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:deny-emit",
+ "markdownDescription": "Denies the emit command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the emit_to command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:deny-emit-to",
+ "markdownDescription": "Denies the emit_to command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the listen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:deny-listen",
+ "markdownDescription": "Denies the listen command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unlisten command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:deny-unlisten",
+ "markdownDescription": "Denies the unlisten command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`",
+ "type": "string",
+ "const": "core:image:default",
+ "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`"
+ },
+ {
+ "description": "Enables the from_bytes command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:allow-from-bytes",
+ "markdownDescription": "Enables the from_bytes command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the from_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:allow-from-path",
+ "markdownDescription": "Enables the from_path command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the new command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:allow-new",
+ "markdownDescription": "Enables the new command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the rgba command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:allow-rgba",
+ "markdownDescription": "Enables the rgba command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:allow-size",
+ "markdownDescription": "Enables the size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the from_bytes command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:deny-from-bytes",
+ "markdownDescription": "Denies the from_bytes command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the from_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:deny-from-path",
+ "markdownDescription": "Denies the from_path command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the new command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:deny-new",
+ "markdownDescription": "Denies the new command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the rgba command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:deny-rgba",
+ "markdownDescription": "Denies the rgba command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:deny-size",
+ "markdownDescription": "Denies the size command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`",
+ "type": "string",
+ "const": "core:menu:default",
+ "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`"
+ },
+ {
+ "description": "Enables the append command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-append",
+ "markdownDescription": "Enables the append command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the create_default command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-create-default",
+ "markdownDescription": "Enables the create_default command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the get command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-get",
+ "markdownDescription": "Enables the get command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the insert command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-insert",
+ "markdownDescription": "Enables the insert command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_checked command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-is-checked",
+ "markdownDescription": "Enables the is_checked command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-is-enabled",
+ "markdownDescription": "Enables the is_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the items command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-items",
+ "markdownDescription": "Enables the items command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the new command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-new",
+ "markdownDescription": "Enables the new command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the popup command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-popup",
+ "markdownDescription": "Enables the popup command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the prepend command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-prepend",
+ "markdownDescription": "Enables the prepend command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-remove",
+ "markdownDescription": "Enables the remove command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove_at command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-remove-at",
+ "markdownDescription": "Enables the remove_at command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_accelerator command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-accelerator",
+ "markdownDescription": "Enables the set_accelerator command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_as_app_menu command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-as-app-menu",
+ "markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_as_window_menu command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-as-window-menu",
+ "markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_checked command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-checked",
+ "markdownDescription": "Enables the set_checked command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-enabled",
+ "markdownDescription": "Enables the set_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-icon",
+ "markdownDescription": "Enables the set_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_text command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-text",
+ "markdownDescription": "Enables the set_text command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the text command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-text",
+ "markdownDescription": "Enables the text command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the append command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-append",
+ "markdownDescription": "Denies the append command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create_default command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-create-default",
+ "markdownDescription": "Denies the create_default command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-get",
+ "markdownDescription": "Denies the get command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the insert command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-insert",
+ "markdownDescription": "Denies the insert command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_checked command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-is-checked",
+ "markdownDescription": "Denies the is_checked command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-is-enabled",
+ "markdownDescription": "Denies the is_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the items command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-items",
+ "markdownDescription": "Denies the items command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the new command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-new",
+ "markdownDescription": "Denies the new command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the popup command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-popup",
+ "markdownDescription": "Denies the popup command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the prepend command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-prepend",
+ "markdownDescription": "Denies the prepend command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-remove",
+ "markdownDescription": "Denies the remove command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove_at command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-remove-at",
+ "markdownDescription": "Denies the remove_at command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_accelerator command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-accelerator",
+ "markdownDescription": "Denies the set_accelerator command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_as_app_menu command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-as-app-menu",
+ "markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_as_window_menu command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-as-window-menu",
+ "markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_checked command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-checked",
+ "markdownDescription": "Denies the set_checked command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-enabled",
+ "markdownDescription": "Denies the set_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-icon",
+ "markdownDescription": "Denies the set_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_text command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-text",
+ "markdownDescription": "Denies the set_text command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the text command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-text",
+ "markdownDescription": "Denies the text command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`",
+ "type": "string",
+ "const": "core:path:default",
+ "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`"
+ },
+ {
+ "description": "Enables the basename command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-basename",
+ "markdownDescription": "Enables the basename command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the dirname command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-dirname",
+ "markdownDescription": "Enables the dirname command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the extname command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-extname",
+ "markdownDescription": "Enables the extname command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_absolute command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-is-absolute",
+ "markdownDescription": "Enables the is_absolute command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the join command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-join",
+ "markdownDescription": "Enables the join command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the normalize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-normalize",
+ "markdownDescription": "Enables the normalize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the resolve command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-resolve",
+ "markdownDescription": "Enables the resolve command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the resolve_directory command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-resolve-directory",
+ "markdownDescription": "Enables the resolve_directory command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the basename command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-basename",
+ "markdownDescription": "Denies the basename command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the dirname command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-dirname",
+ "markdownDescription": "Denies the dirname command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the extname command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-extname",
+ "markdownDescription": "Denies the extname command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_absolute command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-is-absolute",
+ "markdownDescription": "Denies the is_absolute command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the join command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-join",
+ "markdownDescription": "Denies the join command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the normalize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-normalize",
+ "markdownDescription": "Denies the normalize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the resolve command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-resolve",
+ "markdownDescription": "Denies the resolve command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the resolve_directory command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-resolve-directory",
+ "markdownDescription": "Denies the resolve_directory command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`",
+ "type": "string",
+ "const": "core:resources:default",
+ "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`"
+ },
+ {
+ "description": "Enables the close command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:resources:allow-close",
+ "markdownDescription": "Enables the close command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the close command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:resources:deny-close",
+ "markdownDescription": "Denies the close command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`",
+ "type": "string",
+ "const": "core:tray:default",
+ "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`"
+ },
+ {
+ "description": "Enables the get_by_id command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-get-by-id",
+ "markdownDescription": "Enables the get_by_id command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the new command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-new",
+ "markdownDescription": "Enables the new command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove_by_id command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-remove-by-id",
+ "markdownDescription": "Enables the remove_by_id command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-icon",
+ "markdownDescription": "Enables the set_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_icon_as_template command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-icon-as-template",
+ "markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_icon_with_as_template command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-icon-with-as-template",
+ "markdownDescription": "Enables the set_icon_with_as_template command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_menu command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-menu",
+ "markdownDescription": "Enables the set_menu command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_temp_dir_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-temp-dir-path",
+ "markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_title command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-title",
+ "markdownDescription": "Enables the set_title command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_tooltip command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-tooltip",
+ "markdownDescription": "Enables the set_tooltip command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_visible command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-visible",
+ "markdownDescription": "Enables the set_visible command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get_by_id command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-get-by-id",
+ "markdownDescription": "Denies the get_by_id command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the new command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-new",
+ "markdownDescription": "Denies the new command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove_by_id command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-remove-by-id",
+ "markdownDescription": "Denies the remove_by_id command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-icon",
+ "markdownDescription": "Denies the set_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_icon_as_template command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-icon-as-template",
+ "markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_icon_with_as_template command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-icon-with-as-template",
+ "markdownDescription": "Denies the set_icon_with_as_template command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_menu command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-menu",
+ "markdownDescription": "Denies the set_menu command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_temp_dir_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-temp-dir-path",
+ "markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_title command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-title",
+ "markdownDescription": "Denies the set_title command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_tooltip command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-tooltip",
+ "markdownDescription": "Denies the set_tooltip command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_visible command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-visible",
+ "markdownDescription": "Denies the set_visible command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`",
+ "type": "string",
+ "const": "core:webview:default",
+ "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`"
+ },
+ {
+ "description": "Enables the clear_all_browsing_data command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-clear-all-browsing-data",
+ "markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the create_webview command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-create-webview",
+ "markdownDescription": "Enables the create_webview command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the create_webview_window command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-create-webview-window",
+ "markdownDescription": "Enables the create_webview_window command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the get_all_webviews command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-get-all-webviews",
+ "markdownDescription": "Enables the get_all_webviews command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the internal_toggle_devtools command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-internal-toggle-devtools",
+ "markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the print command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-print",
+ "markdownDescription": "Enables the print command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the reparent command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-reparent",
+ "markdownDescription": "Enables the reparent command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_webview_auto_resize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-set-webview-auto-resize",
+ "markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_webview_background_color command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-set-webview-background-color",
+ "markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_webview_focus command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-set-webview-focus",
+ "markdownDescription": "Enables the set_webview_focus command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_webview_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-set-webview-position",
+ "markdownDescription": "Enables the set_webview_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_webview_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-set-webview-size",
+ "markdownDescription": "Enables the set_webview_size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_webview_zoom command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-set-webview-zoom",
+ "markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the webview_close command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-webview-close",
+ "markdownDescription": "Enables the webview_close command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the webview_hide command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-webview-hide",
+ "markdownDescription": "Enables the webview_hide command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the webview_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-webview-position",
+ "markdownDescription": "Enables the webview_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the webview_show command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-webview-show",
+ "markdownDescription": "Enables the webview_show command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the webview_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-webview-size",
+ "markdownDescription": "Enables the webview_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the clear_all_browsing_data command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-clear-all-browsing-data",
+ "markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create_webview command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-create-webview",
+ "markdownDescription": "Denies the create_webview command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create_webview_window command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-create-webview-window",
+ "markdownDescription": "Denies the create_webview_window command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get_all_webviews command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-get-all-webviews",
+ "markdownDescription": "Denies the get_all_webviews command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the internal_toggle_devtools command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-internal-toggle-devtools",
+ "markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the print command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-print",
+ "markdownDescription": "Denies the print command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the reparent command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-reparent",
+ "markdownDescription": "Denies the reparent command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_webview_auto_resize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-set-webview-auto-resize",
+ "markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_webview_background_color command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-set-webview-background-color",
+ "markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_webview_focus command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-set-webview-focus",
+ "markdownDescription": "Denies the set_webview_focus command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_webview_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-set-webview-position",
+ "markdownDescription": "Denies the set_webview_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_webview_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-set-webview-size",
+ "markdownDescription": "Denies the set_webview_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_webview_zoom command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-set-webview-zoom",
+ "markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the webview_close command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-webview-close",
+ "markdownDescription": "Denies the webview_close command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the webview_hide command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-webview-hide",
+ "markdownDescription": "Denies the webview_hide command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the webview_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-webview-position",
+ "markdownDescription": "Denies the webview_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the webview_show command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-webview-show",
+ "markdownDescription": "Denies the webview_show command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the webview_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-webview-size",
+ "markdownDescription": "Denies the webview_size command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`",
+ "type": "string",
+ "const": "core:window:default",
+ "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`"
+ },
+ {
+ "description": "Enables the activity_name command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-activity-name",
+ "markdownDescription": "Enables the activity_name command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the available_monitors command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-available-monitors",
+ "markdownDescription": "Enables the available_monitors command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the center command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-center",
+ "markdownDescription": "Enables the center command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the close command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-close",
+ "markdownDescription": "Enables the close command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the create command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-create",
+ "markdownDescription": "Enables the create command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the current_monitor command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-current-monitor",
+ "markdownDescription": "Enables the current_monitor command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the cursor_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-cursor-position",
+ "markdownDescription": "Enables the cursor_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the destroy command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-destroy",
+ "markdownDescription": "Enables the destroy command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the get_all_windows command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-get-all-windows",
+ "markdownDescription": "Enables the get_all_windows command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the hide command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-hide",
+ "markdownDescription": "Enables the hide command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the inner_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-inner-position",
+ "markdownDescription": "Enables the inner_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the inner_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-inner-size",
+ "markdownDescription": "Enables the inner_size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the internal_toggle_maximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-internal-toggle-maximize",
+ "markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_always_on_top command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-always-on-top",
+ "markdownDescription": "Enables the is_always_on_top command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_closable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-closable",
+ "markdownDescription": "Enables the is_closable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_decorated command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-decorated",
+ "markdownDescription": "Enables the is_decorated command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-enabled",
+ "markdownDescription": "Enables the is_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_focused command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-focused",
+ "markdownDescription": "Enables the is_focused command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_fullscreen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-fullscreen",
+ "markdownDescription": "Enables the is_fullscreen command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_maximizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-maximizable",
+ "markdownDescription": "Enables the is_maximizable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_maximized command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-maximized",
+ "markdownDescription": "Enables the is_maximized command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_minimizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-minimizable",
+ "markdownDescription": "Enables the is_minimizable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_minimized command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-minimized",
+ "markdownDescription": "Enables the is_minimized command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_resizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-resizable",
+ "markdownDescription": "Enables the is_resizable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_visible command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-visible",
+ "markdownDescription": "Enables the is_visible command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the maximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-maximize",
+ "markdownDescription": "Enables the maximize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the minimize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-minimize",
+ "markdownDescription": "Enables the minimize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the monitor_from_point command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-monitor-from-point",
+ "markdownDescription": "Enables the monitor_from_point command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the outer_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-outer-position",
+ "markdownDescription": "Enables the outer_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the outer_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-outer-size",
+ "markdownDescription": "Enables the outer_size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the primary_monitor command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-primary-monitor",
+ "markdownDescription": "Enables the primary_monitor command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the request_user_attention command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-request-user-attention",
+ "markdownDescription": "Enables the request_user_attention command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the scale_factor command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-scale-factor",
+ "markdownDescription": "Enables the scale_factor command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the scene_identifier command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-scene-identifier",
+ "markdownDescription": "Enables the scene_identifier command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_always_on_bottom command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-always-on-bottom",
+ "markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_always_on_top command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-always-on-top",
+ "markdownDescription": "Enables the set_always_on_top command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_background_color command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-background-color",
+ "markdownDescription": "Enables the set_background_color command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_badge_count command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-badge-count",
+ "markdownDescription": "Enables the set_badge_count command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_badge_label command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-badge-label",
+ "markdownDescription": "Enables the set_badge_label command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_closable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-closable",
+ "markdownDescription": "Enables the set_closable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_content_protected command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-content-protected",
+ "markdownDescription": "Enables the set_content_protected command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_cursor_grab command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-cursor-grab",
+ "markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_cursor_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-cursor-icon",
+ "markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_cursor_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-cursor-position",
+ "markdownDescription": "Enables the set_cursor_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_cursor_visible command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-cursor-visible",
+ "markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_decorations command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-decorations",
+ "markdownDescription": "Enables the set_decorations command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_effects command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-effects",
+ "markdownDescription": "Enables the set_effects command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-enabled",
+ "markdownDescription": "Enables the set_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_focus command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-focus",
+ "markdownDescription": "Enables the set_focus command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_focusable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-focusable",
+ "markdownDescription": "Enables the set_focusable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_fullscreen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-fullscreen",
+ "markdownDescription": "Enables the set_fullscreen command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-icon",
+ "markdownDescription": "Enables the set_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-ignore-cursor-events",
+ "markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_max_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-max-size",
+ "markdownDescription": "Enables the set_max_size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_maximizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-maximizable",
+ "markdownDescription": "Enables the set_maximizable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_min_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-min-size",
+ "markdownDescription": "Enables the set_min_size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_minimizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-minimizable",
+ "markdownDescription": "Enables the set_minimizable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_overlay_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-overlay-icon",
+ "markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-position",
+ "markdownDescription": "Enables the set_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_progress_bar command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-progress-bar",
+ "markdownDescription": "Enables the set_progress_bar command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_resizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-resizable",
+ "markdownDescription": "Enables the set_resizable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_shadow command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-shadow",
+ "markdownDescription": "Enables the set_shadow command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_simple_fullscreen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-simple-fullscreen",
+ "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-size",
+ "markdownDescription": "Enables the set_size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_size_constraints command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-size-constraints",
+ "markdownDescription": "Enables the set_size_constraints command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_skip_taskbar command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-skip-taskbar",
+ "markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_theme command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-theme",
+ "markdownDescription": "Enables the set_theme command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_title command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-title",
+ "markdownDescription": "Enables the set_title command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_title_bar_style command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-title-bar-style",
+ "markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the show command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-show",
+ "markdownDescription": "Enables the show command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the start_dragging command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-start-dragging",
+ "markdownDescription": "Enables the start_dragging command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the start_resize_dragging command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-start-resize-dragging",
+ "markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the theme command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-theme",
+ "markdownDescription": "Enables the theme command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the title command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-title",
+ "markdownDescription": "Enables the title command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the toggle_maximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-toggle-maximize",
+ "markdownDescription": "Enables the toggle_maximize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unmaximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-unmaximize",
+ "markdownDescription": "Enables the unmaximize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unminimize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-unminimize",
+ "markdownDescription": "Enables the unminimize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the activity_name command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-activity-name",
+ "markdownDescription": "Denies the activity_name command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the available_monitors command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-available-monitors",
+ "markdownDescription": "Denies the available_monitors command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the center command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-center",
+ "markdownDescription": "Denies the center command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the close command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-close",
+ "markdownDescription": "Denies the close command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-create",
+ "markdownDescription": "Denies the create command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the current_monitor command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-current-monitor",
+ "markdownDescription": "Denies the current_monitor command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the cursor_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-cursor-position",
+ "markdownDescription": "Denies the cursor_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the destroy command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-destroy",
+ "markdownDescription": "Denies the destroy command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get_all_windows command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-get-all-windows",
+ "markdownDescription": "Denies the get_all_windows command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the hide command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-hide",
+ "markdownDescription": "Denies the hide command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the inner_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-inner-position",
+ "markdownDescription": "Denies the inner_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the inner_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-inner-size",
+ "markdownDescription": "Denies the inner_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the internal_toggle_maximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-internal-toggle-maximize",
+ "markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_always_on_top command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-always-on-top",
+ "markdownDescription": "Denies the is_always_on_top command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_closable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-closable",
+ "markdownDescription": "Denies the is_closable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_decorated command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-decorated",
+ "markdownDescription": "Denies the is_decorated command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-enabled",
+ "markdownDescription": "Denies the is_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_focused command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-focused",
+ "markdownDescription": "Denies the is_focused command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_fullscreen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-fullscreen",
+ "markdownDescription": "Denies the is_fullscreen command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_maximizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-maximizable",
+ "markdownDescription": "Denies the is_maximizable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_maximized command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-maximized",
+ "markdownDescription": "Denies the is_maximized command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_minimizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-minimizable",
+ "markdownDescription": "Denies the is_minimizable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_minimized command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-minimized",
+ "markdownDescription": "Denies the is_minimized command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_resizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-resizable",
+ "markdownDescription": "Denies the is_resizable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_visible command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-visible",
+ "markdownDescription": "Denies the is_visible command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the maximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-maximize",
+ "markdownDescription": "Denies the maximize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the minimize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-minimize",
+ "markdownDescription": "Denies the minimize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the monitor_from_point command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-monitor-from-point",
+ "markdownDescription": "Denies the monitor_from_point command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the outer_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-outer-position",
+ "markdownDescription": "Denies the outer_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the outer_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-outer-size",
+ "markdownDescription": "Denies the outer_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the primary_monitor command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-primary-monitor",
+ "markdownDescription": "Denies the primary_monitor command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the request_user_attention command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-request-user-attention",
+ "markdownDescription": "Denies the request_user_attention command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the scale_factor command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-scale-factor",
+ "markdownDescription": "Denies the scale_factor command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the scene_identifier command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-scene-identifier",
+ "markdownDescription": "Denies the scene_identifier command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_always_on_bottom command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-always-on-bottom",
+ "markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_always_on_top command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-always-on-top",
+ "markdownDescription": "Denies the set_always_on_top command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_background_color command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-background-color",
+ "markdownDescription": "Denies the set_background_color command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_badge_count command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-badge-count",
+ "markdownDescription": "Denies the set_badge_count command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_badge_label command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-badge-label",
+ "markdownDescription": "Denies the set_badge_label command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_closable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-closable",
+ "markdownDescription": "Denies the set_closable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_content_protected command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-content-protected",
+ "markdownDescription": "Denies the set_content_protected command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_cursor_grab command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-cursor-grab",
+ "markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_cursor_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-cursor-icon",
+ "markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_cursor_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-cursor-position",
+ "markdownDescription": "Denies the set_cursor_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_cursor_visible command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-cursor-visible",
+ "markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_decorations command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-decorations",
+ "markdownDescription": "Denies the set_decorations command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_effects command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-effects",
+ "markdownDescription": "Denies the set_effects command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-enabled",
+ "markdownDescription": "Denies the set_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_focus command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-focus",
+ "markdownDescription": "Denies the set_focus command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_focusable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-focusable",
+ "markdownDescription": "Denies the set_focusable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_fullscreen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-fullscreen",
+ "markdownDescription": "Denies the set_fullscreen command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-icon",
+ "markdownDescription": "Denies the set_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-ignore-cursor-events",
+ "markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_max_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-max-size",
+ "markdownDescription": "Denies the set_max_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_maximizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-maximizable",
+ "markdownDescription": "Denies the set_maximizable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_min_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-min-size",
+ "markdownDescription": "Denies the set_min_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_minimizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-minimizable",
+ "markdownDescription": "Denies the set_minimizable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_overlay_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-overlay-icon",
+ "markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-position",
+ "markdownDescription": "Denies the set_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_progress_bar command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-progress-bar",
+ "markdownDescription": "Denies the set_progress_bar command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_resizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-resizable",
+ "markdownDescription": "Denies the set_resizable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_shadow command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-shadow",
+ "markdownDescription": "Denies the set_shadow command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_simple_fullscreen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-simple-fullscreen",
+ "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-size",
+ "markdownDescription": "Denies the set_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_size_constraints command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-size-constraints",
+ "markdownDescription": "Denies the set_size_constraints command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_skip_taskbar command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-skip-taskbar",
+ "markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_theme command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-theme",
+ "markdownDescription": "Denies the set_theme command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_title command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-title",
+ "markdownDescription": "Denies the set_title command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_title_bar_style command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-title-bar-style",
+ "markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the show command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-show",
+ "markdownDescription": "Denies the show command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the start_dragging command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-start-dragging",
+ "markdownDescription": "Denies the start_dragging command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the start_resize_dragging command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-start-resize-dragging",
+ "markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the theme command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-theme",
+ "markdownDescription": "Denies the theme command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the title command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-title",
+ "markdownDescription": "Denies the title command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the toggle_maximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-toggle-maximize",
+ "markdownDescription": "Denies the toggle_maximize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unmaximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-unmaximize",
+ "markdownDescription": "Denies the unmaximize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unminimize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-unminimize",
+ "markdownDescription": "Denies the unminimize command without any pre-configured scope."
+ },
+ {
+ "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#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`",
+ "type": "string",
+ "const": "fs:default",
+ "markdownDescription": "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#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`",
+ "type": "string",
+ "const": "fs:allow-app-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`",
+ "type": "string",
+ "const": "fs:allow-app-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`",
+ "type": "string",
+ "const": "fs:allow-app-read",
+ "markdownDescription": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`",
+ "type": "string",
+ "const": "fs:allow-app-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`",
+ "type": "string",
+ "const": "fs:allow-app-write",
+ "markdownDescription": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`",
+ "type": "string",
+ "const": "fs:allow-app-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`",
+ "type": "string",
+ "const": "fs:allow-appcache-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`",
+ "type": "string",
+ "const": "fs:allow-appcache-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`",
+ "type": "string",
+ "const": "fs:allow-appcache-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`",
+ "type": "string",
+ "const": "fs:allow-appcache-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`",
+ "type": "string",
+ "const": "fs:allow-appcache-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`",
+ "type": "string",
+ "const": "fs:allow-appcache-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`",
+ "type": "string",
+ "const": "fs:allow-appconfig-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`",
+ "type": "string",
+ "const": "fs:allow-appconfig-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`",
+ "type": "string",
+ "const": "fs:allow-appconfig-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`",
+ "type": "string",
+ "const": "fs:allow-appconfig-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`",
+ "type": "string",
+ "const": "fs:allow-appconfig-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`",
+ "type": "string",
+ "const": "fs:allow-appconfig-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`",
+ "type": "string",
+ "const": "fs:allow-appdata-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-appdata-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`",
+ "type": "string",
+ "const": "fs:allow-appdata-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-appdata-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`",
+ "type": "string",
+ "const": "fs:allow-appdata-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-appdata-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`",
+ "type": "string",
+ "const": "fs:allow-applog-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`",
+ "type": "string",
+ "const": "fs:allow-applog-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`",
+ "type": "string",
+ "const": "fs:allow-applog-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`",
+ "type": "string",
+ "const": "fs:allow-applog-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`",
+ "type": "string",
+ "const": "fs:allow-applog-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`",
+ "type": "string",
+ "const": "fs:allow-applog-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`",
+ "type": "string",
+ "const": "fs:allow-audio-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`",
+ "type": "string",
+ "const": "fs:allow-audio-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`",
+ "type": "string",
+ "const": "fs:allow-audio-read",
+ "markdownDescription": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`",
+ "type": "string",
+ "const": "fs:allow-audio-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`",
+ "type": "string",
+ "const": "fs:allow-audio-write",
+ "markdownDescription": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`",
+ "type": "string",
+ "const": "fs:allow-audio-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`",
+ "type": "string",
+ "const": "fs:allow-cache-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`",
+ "type": "string",
+ "const": "fs:allow-cache-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`",
+ "type": "string",
+ "const": "fs:allow-cache-read",
+ "markdownDescription": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`",
+ "type": "string",
+ "const": "fs:allow-cache-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`",
+ "type": "string",
+ "const": "fs:allow-cache-write",
+ "markdownDescription": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`",
+ "type": "string",
+ "const": "fs:allow-cache-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`",
+ "type": "string",
+ "const": "fs:allow-config-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`",
+ "type": "string",
+ "const": "fs:allow-config-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`",
+ "type": "string",
+ "const": "fs:allow-config-read",
+ "markdownDescription": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`",
+ "type": "string",
+ "const": "fs:allow-config-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`",
+ "type": "string",
+ "const": "fs:allow-config-write",
+ "markdownDescription": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`",
+ "type": "string",
+ "const": "fs:allow-config-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`",
+ "type": "string",
+ "const": "fs:allow-data-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`",
+ "type": "string",
+ "const": "fs:allow-data-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`",
+ "type": "string",
+ "const": "fs:allow-data-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`",
+ "type": "string",
+ "const": "fs:allow-data-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`",
+ "type": "string",
+ "const": "fs:allow-data-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`",
+ "type": "string",
+ "const": "fs:allow-data-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`",
+ "type": "string",
+ "const": "fs:allow-desktop-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`",
+ "type": "string",
+ "const": "fs:allow-desktop-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`",
+ "type": "string",
+ "const": "fs:allow-desktop-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`",
+ "type": "string",
+ "const": "fs:allow-desktop-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`",
+ "type": "string",
+ "const": "fs:allow-desktop-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`",
+ "type": "string",
+ "const": "fs:allow-desktop-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`",
+ "type": "string",
+ "const": "fs:allow-document-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`",
+ "type": "string",
+ "const": "fs:allow-document-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`",
+ "type": "string",
+ "const": "fs:allow-document-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`",
+ "type": "string",
+ "const": "fs:allow-document-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`",
+ "type": "string",
+ "const": "fs:allow-document-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`",
+ "type": "string",
+ "const": "fs:allow-document-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`",
+ "type": "string",
+ "const": "fs:allow-download-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`",
+ "type": "string",
+ "const": "fs:allow-download-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`",
+ "type": "string",
+ "const": "fs:allow-download-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`",
+ "type": "string",
+ "const": "fs:allow-download-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`",
+ "type": "string",
+ "const": "fs:allow-download-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`",
+ "type": "string",
+ "const": "fs:allow-download-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`",
+ "type": "string",
+ "const": "fs:allow-exe-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`",
+ "type": "string",
+ "const": "fs:allow-exe-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`",
+ "type": "string",
+ "const": "fs:allow-exe-read",
+ "markdownDescription": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`",
+ "type": "string",
+ "const": "fs:allow-exe-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`",
+ "type": "string",
+ "const": "fs:allow-exe-write",
+ "markdownDescription": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`",
+ "type": "string",
+ "const": "fs:allow-exe-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`",
+ "type": "string",
+ "const": "fs:allow-font-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`",
+ "type": "string",
+ "const": "fs:allow-font-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`",
+ "type": "string",
+ "const": "fs:allow-font-read",
+ "markdownDescription": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`",
+ "type": "string",
+ "const": "fs:allow-font-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`",
+ "type": "string",
+ "const": "fs:allow-font-write",
+ "markdownDescription": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`",
+ "type": "string",
+ "const": "fs:allow-font-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`",
+ "type": "string",
+ "const": "fs:allow-home-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`",
+ "type": "string",
+ "const": "fs:allow-home-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`",
+ "type": "string",
+ "const": "fs:allow-home-read",
+ "markdownDescription": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`",
+ "type": "string",
+ "const": "fs:allow-home-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`",
+ "type": "string",
+ "const": "fs:allow-home-write",
+ "markdownDescription": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`",
+ "type": "string",
+ "const": "fs:allow-home-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`",
+ "type": "string",
+ "const": "fs:allow-localdata-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-localdata-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`",
+ "type": "string",
+ "const": "fs:allow-localdata-read",
+ "markdownDescription": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-localdata-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`",
+ "type": "string",
+ "const": "fs:allow-localdata-write",
+ "markdownDescription": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-localdata-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`",
+ "type": "string",
+ "const": "fs:allow-log-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`",
+ "type": "string",
+ "const": "fs:allow-log-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`",
+ "type": "string",
+ "const": "fs:allow-log-read",
+ "markdownDescription": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`",
+ "type": "string",
+ "const": "fs:allow-log-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`",
+ "type": "string",
+ "const": "fs:allow-log-write",
+ "markdownDescription": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`",
+ "type": "string",
+ "const": "fs:allow-log-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`",
+ "type": "string",
+ "const": "fs:allow-picture-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`",
+ "type": "string",
+ "const": "fs:allow-picture-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`",
+ "type": "string",
+ "const": "fs:allow-picture-read",
+ "markdownDescription": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`",
+ "type": "string",
+ "const": "fs:allow-picture-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`",
+ "type": "string",
+ "const": "fs:allow-picture-write",
+ "markdownDescription": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`",
+ "type": "string",
+ "const": "fs:allow-picture-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`",
+ "type": "string",
+ "const": "fs:allow-public-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`",
+ "type": "string",
+ "const": "fs:allow-public-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`",
+ "type": "string",
+ "const": "fs:allow-public-read",
+ "markdownDescription": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`",
+ "type": "string",
+ "const": "fs:allow-public-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`",
+ "type": "string",
+ "const": "fs:allow-public-write",
+ "markdownDescription": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`",
+ "type": "string",
+ "const": "fs:allow-public-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`",
+ "type": "string",
+ "const": "fs:allow-resource-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`",
+ "type": "string",
+ "const": "fs:allow-resource-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`",
+ "type": "string",
+ "const": "fs:allow-resource-read",
+ "markdownDescription": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`",
+ "type": "string",
+ "const": "fs:allow-resource-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`",
+ "type": "string",
+ "const": "fs:allow-resource-write",
+ "markdownDescription": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`",
+ "type": "string",
+ "const": "fs:allow-resource-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`",
+ "type": "string",
+ "const": "fs:allow-runtime-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`",
+ "type": "string",
+ "const": "fs:allow-runtime-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`",
+ "type": "string",
+ "const": "fs:allow-runtime-read",
+ "markdownDescription": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`",
+ "type": "string",
+ "const": "fs:allow-runtime-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`",
+ "type": "string",
+ "const": "fs:allow-runtime-write",
+ "markdownDescription": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`",
+ "type": "string",
+ "const": "fs:allow-runtime-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`",
+ "type": "string",
+ "const": "fs:allow-temp-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`",
+ "type": "string",
+ "const": "fs:allow-temp-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`",
+ "type": "string",
+ "const": "fs:allow-temp-read",
+ "markdownDescription": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`",
+ "type": "string",
+ "const": "fs:allow-temp-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`",
+ "type": "string",
+ "const": "fs:allow-temp-write",
+ "markdownDescription": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`",
+ "type": "string",
+ "const": "fs:allow-temp-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`",
+ "type": "string",
+ "const": "fs:allow-template-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`",
+ "type": "string",
+ "const": "fs:allow-template-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`",
+ "type": "string",
+ "const": "fs:allow-template-read",
+ "markdownDescription": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`",
+ "type": "string",
+ "const": "fs:allow-template-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`",
+ "type": "string",
+ "const": "fs:allow-template-write",
+ "markdownDescription": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`",
+ "type": "string",
+ "const": "fs:allow-template-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`",
+ "type": "string",
+ "const": "fs:allow-video-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`",
+ "type": "string",
+ "const": "fs:allow-video-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`",
+ "type": "string",
+ "const": "fs:allow-video-read",
+ "markdownDescription": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`",
+ "type": "string",
+ "const": "fs:allow-video-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`",
+ "type": "string",
+ "const": "fs:allow-video-write",
+ "markdownDescription": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`",
+ "type": "string",
+ "const": "fs:allow-video-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`"
+ },
+ {
+ "description": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`",
+ "type": "string",
+ "const": "fs:deny-default",
+ "markdownDescription": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`"
+ },
+ {
+ "description": "Enables the copy_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-copy-file",
+ "markdownDescription": "Enables the copy_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the create command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-create",
+ "markdownDescription": "Enables the create command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the exists command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-exists",
+ "markdownDescription": "Enables the exists command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the fstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-fstat",
+ "markdownDescription": "Enables the fstat command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the ftruncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-ftruncate",
+ "markdownDescription": "Enables the ftruncate command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the lstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-lstat",
+ "markdownDescription": "Enables the lstat command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the mkdir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-mkdir",
+ "markdownDescription": "Enables the mkdir command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the open command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-open",
+ "markdownDescription": "Enables the open command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read",
+ "markdownDescription": "Enables the read command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-dir",
+ "markdownDescription": "Enables the read_dir command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-file",
+ "markdownDescription": "Enables the read_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-text-file",
+ "markdownDescription": "Enables the read_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text_file_lines command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-text-file-lines",
+ "markdownDescription": "Enables the read_text_file_lines command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text_file_lines_next command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-text-file-lines-next",
+ "markdownDescription": "Enables the read_text_file_lines_next command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-remove",
+ "markdownDescription": "Enables the remove command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the rename command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-rename",
+ "markdownDescription": "Enables the rename command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the seek command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-seek",
+ "markdownDescription": "Enables the seek command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the size command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-size",
+ "markdownDescription": "Enables the size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the start_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-start-accessing-security-scoped-resource",
+ "markdownDescription": "Enables the start_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the stat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-stat",
+ "markdownDescription": "Enables the stat command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the stop_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-stop-accessing-security-scoped-resource",
+ "markdownDescription": "Enables the stop_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the truncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-truncate",
+ "markdownDescription": "Enables the truncate command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unwatch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-unwatch",
+ "markdownDescription": "Enables the unwatch command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the watch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-watch",
+ "markdownDescription": "Enables the watch command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-write",
+ "markdownDescription": "Enables the write command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-write-file",
+ "markdownDescription": "Enables the write_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-write-text-file",
+ "markdownDescription": "Enables the write_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "This permissions allows to create the application specific directories.\n",
+ "type": "string",
+ "const": "fs:create-app-specific-dirs",
+ "markdownDescription": "This permissions allows to create the application specific directories.\n"
+ },
+ {
+ "description": "Denies the copy_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-copy-file",
+ "markdownDescription": "Denies the copy_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-create",
+ "markdownDescription": "Denies the create command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the exists command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-exists",
+ "markdownDescription": "Denies the exists command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the fstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-fstat",
+ "markdownDescription": "Denies the fstat command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the ftruncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-ftruncate",
+ "markdownDescription": "Denies the ftruncate command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the lstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-lstat",
+ "markdownDescription": "Denies the lstat command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the mkdir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-mkdir",
+ "markdownDescription": "Denies the mkdir command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the open command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-open",
+ "markdownDescription": "Denies the open command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read",
+ "markdownDescription": "Denies the read command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-dir",
+ "markdownDescription": "Denies the read_dir command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-file",
+ "markdownDescription": "Denies the read_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-text-file",
+ "markdownDescription": "Denies the read_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text_file_lines command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-text-file-lines",
+ "markdownDescription": "Denies the read_text_file_lines command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text_file_lines_next command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-text-file-lines-next",
+ "markdownDescription": "Denies the read_text_file_lines_next command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-remove",
+ "markdownDescription": "Denies the remove command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the rename command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-rename",
+ "markdownDescription": "Denies the rename command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the seek command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-seek",
+ "markdownDescription": "Denies the seek command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the size command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-size",
+ "markdownDescription": "Denies the size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the start_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-start-accessing-security-scoped-resource",
+ "markdownDescription": "Denies the start_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the stat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-stat",
+ "markdownDescription": "Denies the stat command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the stop_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-stop-accessing-security-scoped-resource",
+ "markdownDescription": "Denies the stop_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the truncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-truncate",
+ "markdownDescription": "Denies the truncate command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unwatch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-unwatch",
+ "markdownDescription": "Denies the unwatch command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the watch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-watch",
+ "markdownDescription": "Denies the watch command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "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."
+ },
+ {
+ "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",
+ "markdownDescription": "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."
+ },
+ {
+ "description": "Denies the write command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-write",
+ "markdownDescription": "Denies the write command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-write-file",
+ "markdownDescription": "Denies the write_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-write-text-file",
+ "markdownDescription": "Denies the write_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "This enables all read related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-all",
+ "markdownDescription": "This enables all read related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n",
+ "type": "string",
+ "const": "fs:read-app-specific-dirs-recursive",
+ "markdownDescription": "This permission allows recursive read functionality on the application\nspecific base directories. \n"
+ },
+ {
+ "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-dirs",
+ "markdownDescription": "This enables directory read and file metadata related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This enables file read related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-files",
+ "markdownDescription": "This enables file read related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This enables all index or metadata related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-meta",
+ "markdownDescription": "This enables all index or metadata related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "An empty permission you can use to modify the global scope.\n\n## Example\n\n```json\n{\n \"identifier\": \"read-documents\",\n \"windows\": [\"main\"],\n \"permissions\": [\n \"fs:allow-read\",\n {\n \"identifier\": \"fs:scope\",\n \"allow\": [\n \"$APPDATA/documents/**/*\"\n ],\n \"deny\": [\n \"$APPDATA/documents/secret.txt\"\n ]\n }\n ]\n}\n```\n",
+ "type": "string",
+ "const": "fs:scope",
+ "markdownDescription": "An empty permission you can use to modify the global scope.\n\n## Example\n\n```json\n{\n \"identifier\": \"read-documents\",\n \"windows\": [\"main\"],\n \"permissions\": [\n \"fs:allow-read\",\n {\n \"identifier\": \"fs:scope\",\n \"allow\": [\n \"$APPDATA/documents/**/*\"\n ],\n \"deny\": [\n \"$APPDATA/documents/secret.txt\"\n ]\n }\n ]\n}\n```\n"
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the application folders."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the application directories.",
+ "type": "string",
+ "const": "fs:scope-app-index",
+ "markdownDescription": "This scope permits to list all files and folders in the application directories."
+ },
+ {
+ "description": "This scope permits recursive access to the complete application folders, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-app-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete application folders, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.",
+ "type": "string",
+ "const": "fs:scope-appcache-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPCACHE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-appcache-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.",
+ "type": "string",
+ "const": "fs:scope-appconfig-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPCONFIG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-appconfig-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPDATA`folder.",
+ "type": "string",
+ "const": "fs:scope-appdata-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPDATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-appdata-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.",
+ "type": "string",
+ "const": "fs:scope-applocaldata-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-applocaldata-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPLOG`folder.",
+ "type": "string",
+ "const": "fs:scope-applog-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPLOG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-applog-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$AUDIO`folder.",
+ "type": "string",
+ "const": "fs:scope-audio-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$AUDIO`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-audio-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$CACHE`folder.",
+ "type": "string",
+ "const": "fs:scope-cache-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$CACHE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-cache-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$CONFIG`folder.",
+ "type": "string",
+ "const": "fs:scope-config-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$CONFIG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-config-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DATA`folder.",
+ "type": "string",
+ "const": "fs:scope-data-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-data-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.",
+ "type": "string",
+ "const": "fs:scope-desktop-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DESKTOP`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-desktop-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.",
+ "type": "string",
+ "const": "fs:scope-document-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DOCUMENT`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-document-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.",
+ "type": "string",
+ "const": "fs:scope-download-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DOWNLOAD`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-download-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$EXE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$EXE`folder.",
+ "type": "string",
+ "const": "fs:scope-exe-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$EXE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-exe-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$FONT` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$FONT`folder.",
+ "type": "string",
+ "const": "fs:scope-font-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$FONT`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-font-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$HOME` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$HOME`folder.",
+ "type": "string",
+ "const": "fs:scope-home-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$HOME`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-home-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.",
+ "type": "string",
+ "const": "fs:scope-localdata-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$LOCALDATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-localdata-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$LOG`folder.",
+ "type": "string",
+ "const": "fs:scope-log-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$LOG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-log-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$PICTURE`folder.",
+ "type": "string",
+ "const": "fs:scope-picture-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$PICTURE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-picture-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.",
+ "type": "string",
+ "const": "fs:scope-public-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$PUBLIC`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-public-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.",
+ "type": "string",
+ "const": "fs:scope-resource-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$RESOURCE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-resource-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.",
+ "type": "string",
+ "const": "fs:scope-runtime-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$RUNTIME`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-runtime-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$TEMP`folder.",
+ "type": "string",
+ "const": "fs:scope-temp-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$TEMP`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-temp-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.",
+ "type": "string",
+ "const": "fs:scope-template-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$TEMPLATE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-template-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$VIDEO`folder.",
+ "type": "string",
+ "const": "fs:scope-video-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$VIDEO`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-video-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files."
+ },
+ {
+ "description": "This enables all write related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:write-all",
+ "markdownDescription": "This enables all write related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This enables all file write related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:write-files",
+ "markdownDescription": "This enables all file write related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n",
+ "type": "string",
+ "const": "global-shortcut:default",
+ "markdownDescription": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n"
+ },
+ {
+ "description": "Enables the is_registered command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:allow-is-registered",
+ "markdownDescription": "Enables the is_registered command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the register command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:allow-register",
+ "markdownDescription": "Enables the register command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the register_all command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:allow-register-all",
+ "markdownDescription": "Enables the register_all command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unregister command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:allow-unregister",
+ "markdownDescription": "Enables the unregister command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unregister_all command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:allow-unregister-all",
+ "markdownDescription": "Enables the unregister_all command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_registered command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:deny-is-registered",
+ "markdownDescription": "Denies the is_registered command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the register command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:deny-register",
+ "markdownDescription": "Denies the register command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the register_all command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:deny-register-all",
+ "markdownDescription": "Denies the register_all command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unregister command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:deny-unregister",
+ "markdownDescription": "Denies the unregister command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unregister_all command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:deny-unregister-all",
+ "markdownDescription": "Denies the unregister_all command without any pre-configured scope."
+ },
+ {
+ "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`",
+ "type": "string",
+ "const": "opener:default",
+ "markdownDescription": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`"
+ },
+ {
+ "description": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.",
+ "type": "string",
+ "const": "opener:allow-default-urls",
+ "markdownDescription": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application."
+ },
+ {
+ "description": "Enables the open_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:allow-open-path",
+ "markdownDescription": "Enables the open_path command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the open_url command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:allow-open-url",
+ "markdownDescription": "Enables the open_url command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the reveal_item_in_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:allow-reveal-item-in-dir",
+ "markdownDescription": "Enables the reveal_item_in_dir command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the open_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:deny-open-path",
+ "markdownDescription": "Denies the open_path command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the open_url command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:deny-open-url",
+ "markdownDescription": "Denies the open_url command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the reveal_item_in_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:deny-reveal-item-in-dir",
+ "markdownDescription": "Denies the reveal_item_in_dir command without any pre-configured scope."
+ },
+ {
+ "description": "### Default Permissions\n\nThis permission set configures what kind of\ndatabase operations are available from the sql plugin.\n\n### Granted Permissions\n\nAll reading related operations are enabled.\nAlso allows to load or close a connection.\n\n\n#### This default permission set includes:\n\n- `allow-close`\n- `allow-load`\n- `allow-select`",
+ "type": "string",
+ "const": "sql:default",
+ "markdownDescription": "### Default Permissions\n\nThis permission set configures what kind of\ndatabase operations are available from the sql plugin.\n\n### Granted Permissions\n\nAll reading related operations are enabled.\nAlso allows to load or close a connection.\n\n\n#### This default permission set includes:\n\n- `allow-close`\n- `allow-load`\n- `allow-select`"
+ },
+ {
+ "description": "Enables the close command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:allow-close",
+ "markdownDescription": "Enables the close command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the execute command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:allow-execute",
+ "markdownDescription": "Enables the execute command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the load command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:allow-load",
+ "markdownDescription": "Enables the load command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the select command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:allow-select",
+ "markdownDescription": "Enables the select command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the close command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:deny-close",
+ "markdownDescription": "Denies the close command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the execute command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:deny-execute",
+ "markdownDescription": "Denies the execute command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the load command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:deny-load",
+ "markdownDescription": "Denies the load command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the select command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:deny-select",
+ "markdownDescription": "Denies the select command without any pre-configured scope."
+ },
+ {
+ "description": "This permission set configures what kind of\noperations are available from the store plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n\n#### This default permission set includes:\n\n- `allow-load`\n- `allow-get-store`\n- `allow-set`\n- `allow-get`\n- `allow-has`\n- `allow-delete`\n- `allow-clear`\n- `allow-reset`\n- `allow-keys`\n- `allow-values`\n- `allow-entries`\n- `allow-length`\n- `allow-reload`\n- `allow-save`",
+ "type": "string",
+ "const": "store:default",
+ "markdownDescription": "This permission set configures what kind of\noperations are available from the store plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n\n#### This default permission set includes:\n\n- `allow-load`\n- `allow-get-store`\n- `allow-set`\n- `allow-get`\n- `allow-has`\n- `allow-delete`\n- `allow-clear`\n- `allow-reset`\n- `allow-keys`\n- `allow-values`\n- `allow-entries`\n- `allow-length`\n- `allow-reload`\n- `allow-save`"
+ },
+ {
+ "description": "Enables the clear command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-clear",
+ "markdownDescription": "Enables the clear command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the delete command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-delete",
+ "markdownDescription": "Enables the delete command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the entries command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-entries",
+ "markdownDescription": "Enables the entries command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the get command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-get",
+ "markdownDescription": "Enables the get command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the get_store command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-get-store",
+ "markdownDescription": "Enables the get_store command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the has command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-has",
+ "markdownDescription": "Enables the has command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the keys command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-keys",
+ "markdownDescription": "Enables the keys command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the length command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-length",
+ "markdownDescription": "Enables the length command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the load command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-load",
+ "markdownDescription": "Enables the load command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the reload command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-reload",
+ "markdownDescription": "Enables the reload command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the reset command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-reset",
+ "markdownDescription": "Enables the reset command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the save command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-save",
+ "markdownDescription": "Enables the save command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-set",
+ "markdownDescription": "Enables the set command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the values command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-values",
+ "markdownDescription": "Enables the values command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the clear command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-clear",
+ "markdownDescription": "Denies the clear command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the delete command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-delete",
+ "markdownDescription": "Denies the delete command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the entries command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-entries",
+ "markdownDescription": "Denies the entries command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-get",
+ "markdownDescription": "Denies the get command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get_store command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-get-store",
+ "markdownDescription": "Denies the get_store command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the has command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-has",
+ "markdownDescription": "Denies the has command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the keys command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-keys",
+ "markdownDescription": "Denies the keys command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the length command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-length",
+ "markdownDescription": "Denies the length command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the load command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-load",
+ "markdownDescription": "Denies the load command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the reload command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-reload",
+ "markdownDescription": "Denies the reload command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the reset command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-reset",
+ "markdownDescription": "Denies the reset command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the save command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-save",
+ "markdownDescription": "Denies the save command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-set",
+ "markdownDescription": "Denies the set command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the values command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-values",
+ "markdownDescription": "Denies the values command without any pre-configured scope."
+ },
+ {
+ "description": "This permission set configures what kind of\noperations are available from the stronghold plugin.\n\n#### Granted Permissions\n\nAll non-destructive operations are enabled by default.\n\n\n#### This default permission set includes:\n\n- `allow-create-client`\n- `allow-get-store-record`\n- `allow-initialize`\n- `allow-execute-procedure`\n- `allow-load-client`\n- `allow-save-secret`\n- `allow-save-store-record`\n- `allow-save`",
+ "type": "string",
+ "const": "stronghold:default",
+ "markdownDescription": "This permission set configures what kind of\noperations are available from the stronghold plugin.\n\n#### Granted Permissions\n\nAll non-destructive operations are enabled by default.\n\n\n#### This default permission set includes:\n\n- `allow-create-client`\n- `allow-get-store-record`\n- `allow-initialize`\n- `allow-execute-procedure`\n- `allow-load-client`\n- `allow-save-secret`\n- `allow-save-store-record`\n- `allow-save`"
+ },
+ {
+ "description": "Enables the create_client command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-create-client",
+ "markdownDescription": "Enables the create_client command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the destroy command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-destroy",
+ "markdownDescription": "Enables the destroy command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the execute_procedure command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-execute-procedure",
+ "markdownDescription": "Enables the execute_procedure command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the get_store_record command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-get-store-record",
+ "markdownDescription": "Enables the get_store_record command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the initialize command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-initialize",
+ "markdownDescription": "Enables the initialize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the load_client command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-load-client",
+ "markdownDescription": "Enables the load_client command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove_secret command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-remove-secret",
+ "markdownDescription": "Enables the remove_secret command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove_store_record command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-remove-store-record",
+ "markdownDescription": "Enables the remove_store_record command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the save command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-save",
+ "markdownDescription": "Enables the save command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the save_secret command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-save-secret",
+ "markdownDescription": "Enables the save_secret command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the save_store_record command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-save-store-record",
+ "markdownDescription": "Enables the save_store_record command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create_client command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-create-client",
+ "markdownDescription": "Denies the create_client command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the destroy command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-destroy",
+ "markdownDescription": "Denies the destroy command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the execute_procedure command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-execute-procedure",
+ "markdownDescription": "Denies the execute_procedure command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get_store_record command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-get-store-record",
+ "markdownDescription": "Denies the get_store_record command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the initialize command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-initialize",
+ "markdownDescription": "Denies the initialize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the load_client command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-load-client",
+ "markdownDescription": "Denies the load_client command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove_secret command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-remove-secret",
+ "markdownDescription": "Denies the remove_secret command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove_store_record command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-remove-store-record",
+ "markdownDescription": "Denies the remove_store_record command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the save command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-save",
+ "markdownDescription": "Denies the save command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the save_secret command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-save-secret",
+ "markdownDescription": "Denies the save_secret command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the save_store_record command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-save-store-record",
+ "markdownDescription": "Denies the save_store_record command without any pre-configured scope."
+ }
+ ]
+ },
+ "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"
+ ]
+ }
+ ]
+ },
+ "Application": {
+ "description": "Opener scope application.",
+ "anyOf": [
+ {
+ "description": "Open in default application.",
+ "type": "null"
+ },
+ {
+ "description": "If true, allow open with any application.",
+ "type": "boolean"
+ },
+ {
+ "description": "Allow specific application to open with.",
+ "type": "string"
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/src-tauri/gen/schemas/windows-schema.json b/src-tauri/gen/schemas/windows-schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..5ba3bfc9ff4af3c4cfdfe2a03f085f25602ddc4b
--- /dev/null
+++ b/src-tauri/gen/schemas/windows-schema.json
@@ -0,0 +1,6611 @@
+{
+ "$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' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its 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 programmatic 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 programmatic 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\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] 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\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\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#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`",
+ "type": "string",
+ "const": "fs:default",
+ "markdownDescription": "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#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`",
+ "type": "string",
+ "const": "fs:allow-app-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`",
+ "type": "string",
+ "const": "fs:allow-app-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`",
+ "type": "string",
+ "const": "fs:allow-app-read",
+ "markdownDescription": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`",
+ "type": "string",
+ "const": "fs:allow-app-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`",
+ "type": "string",
+ "const": "fs:allow-app-write",
+ "markdownDescription": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`",
+ "type": "string",
+ "const": "fs:allow-app-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`",
+ "type": "string",
+ "const": "fs:allow-appcache-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`",
+ "type": "string",
+ "const": "fs:allow-appcache-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`",
+ "type": "string",
+ "const": "fs:allow-appcache-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`",
+ "type": "string",
+ "const": "fs:allow-appcache-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`",
+ "type": "string",
+ "const": "fs:allow-appcache-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`",
+ "type": "string",
+ "const": "fs:allow-appcache-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`",
+ "type": "string",
+ "const": "fs:allow-appconfig-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`",
+ "type": "string",
+ "const": "fs:allow-appconfig-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`",
+ "type": "string",
+ "const": "fs:allow-appconfig-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`",
+ "type": "string",
+ "const": "fs:allow-appconfig-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`",
+ "type": "string",
+ "const": "fs:allow-appconfig-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`",
+ "type": "string",
+ "const": "fs:allow-appconfig-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`",
+ "type": "string",
+ "const": "fs:allow-appdata-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-appdata-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`",
+ "type": "string",
+ "const": "fs:allow-appdata-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-appdata-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`",
+ "type": "string",
+ "const": "fs:allow-appdata-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-appdata-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`",
+ "type": "string",
+ "const": "fs:allow-applog-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`",
+ "type": "string",
+ "const": "fs:allow-applog-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`",
+ "type": "string",
+ "const": "fs:allow-applog-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`",
+ "type": "string",
+ "const": "fs:allow-applog-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`",
+ "type": "string",
+ "const": "fs:allow-applog-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`",
+ "type": "string",
+ "const": "fs:allow-applog-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`",
+ "type": "string",
+ "const": "fs:allow-audio-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`",
+ "type": "string",
+ "const": "fs:allow-audio-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`",
+ "type": "string",
+ "const": "fs:allow-audio-read",
+ "markdownDescription": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`",
+ "type": "string",
+ "const": "fs:allow-audio-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`",
+ "type": "string",
+ "const": "fs:allow-audio-write",
+ "markdownDescription": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`",
+ "type": "string",
+ "const": "fs:allow-audio-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`",
+ "type": "string",
+ "const": "fs:allow-cache-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`",
+ "type": "string",
+ "const": "fs:allow-cache-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`",
+ "type": "string",
+ "const": "fs:allow-cache-read",
+ "markdownDescription": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`",
+ "type": "string",
+ "const": "fs:allow-cache-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`",
+ "type": "string",
+ "const": "fs:allow-cache-write",
+ "markdownDescription": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`",
+ "type": "string",
+ "const": "fs:allow-cache-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`",
+ "type": "string",
+ "const": "fs:allow-config-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`",
+ "type": "string",
+ "const": "fs:allow-config-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`",
+ "type": "string",
+ "const": "fs:allow-config-read",
+ "markdownDescription": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`",
+ "type": "string",
+ "const": "fs:allow-config-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`",
+ "type": "string",
+ "const": "fs:allow-config-write",
+ "markdownDescription": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`",
+ "type": "string",
+ "const": "fs:allow-config-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`",
+ "type": "string",
+ "const": "fs:allow-data-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`",
+ "type": "string",
+ "const": "fs:allow-data-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`",
+ "type": "string",
+ "const": "fs:allow-data-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`",
+ "type": "string",
+ "const": "fs:allow-data-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`",
+ "type": "string",
+ "const": "fs:allow-data-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`",
+ "type": "string",
+ "const": "fs:allow-data-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`",
+ "type": "string",
+ "const": "fs:allow-desktop-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`",
+ "type": "string",
+ "const": "fs:allow-desktop-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`",
+ "type": "string",
+ "const": "fs:allow-desktop-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`",
+ "type": "string",
+ "const": "fs:allow-desktop-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`",
+ "type": "string",
+ "const": "fs:allow-desktop-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`",
+ "type": "string",
+ "const": "fs:allow-desktop-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`",
+ "type": "string",
+ "const": "fs:allow-document-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`",
+ "type": "string",
+ "const": "fs:allow-document-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`",
+ "type": "string",
+ "const": "fs:allow-document-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`",
+ "type": "string",
+ "const": "fs:allow-document-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`",
+ "type": "string",
+ "const": "fs:allow-document-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`",
+ "type": "string",
+ "const": "fs:allow-document-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`",
+ "type": "string",
+ "const": "fs:allow-download-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`",
+ "type": "string",
+ "const": "fs:allow-download-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`",
+ "type": "string",
+ "const": "fs:allow-download-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`",
+ "type": "string",
+ "const": "fs:allow-download-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`",
+ "type": "string",
+ "const": "fs:allow-download-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`",
+ "type": "string",
+ "const": "fs:allow-download-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`",
+ "type": "string",
+ "const": "fs:allow-exe-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`",
+ "type": "string",
+ "const": "fs:allow-exe-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`",
+ "type": "string",
+ "const": "fs:allow-exe-read",
+ "markdownDescription": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`",
+ "type": "string",
+ "const": "fs:allow-exe-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`",
+ "type": "string",
+ "const": "fs:allow-exe-write",
+ "markdownDescription": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`",
+ "type": "string",
+ "const": "fs:allow-exe-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`",
+ "type": "string",
+ "const": "fs:allow-font-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`",
+ "type": "string",
+ "const": "fs:allow-font-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`",
+ "type": "string",
+ "const": "fs:allow-font-read",
+ "markdownDescription": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`",
+ "type": "string",
+ "const": "fs:allow-font-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`",
+ "type": "string",
+ "const": "fs:allow-font-write",
+ "markdownDescription": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`",
+ "type": "string",
+ "const": "fs:allow-font-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`",
+ "type": "string",
+ "const": "fs:allow-home-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`",
+ "type": "string",
+ "const": "fs:allow-home-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`",
+ "type": "string",
+ "const": "fs:allow-home-read",
+ "markdownDescription": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`",
+ "type": "string",
+ "const": "fs:allow-home-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`",
+ "type": "string",
+ "const": "fs:allow-home-write",
+ "markdownDescription": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`",
+ "type": "string",
+ "const": "fs:allow-home-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`",
+ "type": "string",
+ "const": "fs:allow-localdata-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-localdata-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`",
+ "type": "string",
+ "const": "fs:allow-localdata-read",
+ "markdownDescription": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-localdata-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`",
+ "type": "string",
+ "const": "fs:allow-localdata-write",
+ "markdownDescription": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-localdata-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`",
+ "type": "string",
+ "const": "fs:allow-log-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`",
+ "type": "string",
+ "const": "fs:allow-log-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`",
+ "type": "string",
+ "const": "fs:allow-log-read",
+ "markdownDescription": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`",
+ "type": "string",
+ "const": "fs:allow-log-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`",
+ "type": "string",
+ "const": "fs:allow-log-write",
+ "markdownDescription": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`",
+ "type": "string",
+ "const": "fs:allow-log-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`",
+ "type": "string",
+ "const": "fs:allow-picture-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`",
+ "type": "string",
+ "const": "fs:allow-picture-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`",
+ "type": "string",
+ "const": "fs:allow-picture-read",
+ "markdownDescription": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`",
+ "type": "string",
+ "const": "fs:allow-picture-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`",
+ "type": "string",
+ "const": "fs:allow-picture-write",
+ "markdownDescription": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`",
+ "type": "string",
+ "const": "fs:allow-picture-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`",
+ "type": "string",
+ "const": "fs:allow-public-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`",
+ "type": "string",
+ "const": "fs:allow-public-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`",
+ "type": "string",
+ "const": "fs:allow-public-read",
+ "markdownDescription": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`",
+ "type": "string",
+ "const": "fs:allow-public-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`",
+ "type": "string",
+ "const": "fs:allow-public-write",
+ "markdownDescription": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`",
+ "type": "string",
+ "const": "fs:allow-public-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`",
+ "type": "string",
+ "const": "fs:allow-resource-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`",
+ "type": "string",
+ "const": "fs:allow-resource-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`",
+ "type": "string",
+ "const": "fs:allow-resource-read",
+ "markdownDescription": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`",
+ "type": "string",
+ "const": "fs:allow-resource-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`",
+ "type": "string",
+ "const": "fs:allow-resource-write",
+ "markdownDescription": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`",
+ "type": "string",
+ "const": "fs:allow-resource-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`",
+ "type": "string",
+ "const": "fs:allow-runtime-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`",
+ "type": "string",
+ "const": "fs:allow-runtime-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`",
+ "type": "string",
+ "const": "fs:allow-runtime-read",
+ "markdownDescription": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`",
+ "type": "string",
+ "const": "fs:allow-runtime-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`",
+ "type": "string",
+ "const": "fs:allow-runtime-write",
+ "markdownDescription": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`",
+ "type": "string",
+ "const": "fs:allow-runtime-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`",
+ "type": "string",
+ "const": "fs:allow-temp-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`",
+ "type": "string",
+ "const": "fs:allow-temp-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`",
+ "type": "string",
+ "const": "fs:allow-temp-read",
+ "markdownDescription": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`",
+ "type": "string",
+ "const": "fs:allow-temp-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`",
+ "type": "string",
+ "const": "fs:allow-temp-write",
+ "markdownDescription": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`",
+ "type": "string",
+ "const": "fs:allow-temp-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`",
+ "type": "string",
+ "const": "fs:allow-template-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`",
+ "type": "string",
+ "const": "fs:allow-template-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`",
+ "type": "string",
+ "const": "fs:allow-template-read",
+ "markdownDescription": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`",
+ "type": "string",
+ "const": "fs:allow-template-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`",
+ "type": "string",
+ "const": "fs:allow-template-write",
+ "markdownDescription": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`",
+ "type": "string",
+ "const": "fs:allow-template-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`",
+ "type": "string",
+ "const": "fs:allow-video-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`",
+ "type": "string",
+ "const": "fs:allow-video-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`",
+ "type": "string",
+ "const": "fs:allow-video-read",
+ "markdownDescription": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`",
+ "type": "string",
+ "const": "fs:allow-video-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`",
+ "type": "string",
+ "const": "fs:allow-video-write",
+ "markdownDescription": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`",
+ "type": "string",
+ "const": "fs:allow-video-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`"
+ },
+ {
+ "description": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`",
+ "type": "string",
+ "const": "fs:deny-default",
+ "markdownDescription": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`"
+ },
+ {
+ "description": "Enables the copy_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-copy-file",
+ "markdownDescription": "Enables the copy_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the create command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-create",
+ "markdownDescription": "Enables the create command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the exists command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-exists",
+ "markdownDescription": "Enables the exists command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the fstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-fstat",
+ "markdownDescription": "Enables the fstat command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the ftruncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-ftruncate",
+ "markdownDescription": "Enables the ftruncate command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the lstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-lstat",
+ "markdownDescription": "Enables the lstat command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the mkdir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-mkdir",
+ "markdownDescription": "Enables the mkdir command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the open command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-open",
+ "markdownDescription": "Enables the open command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read",
+ "markdownDescription": "Enables the read command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-dir",
+ "markdownDescription": "Enables the read_dir command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-file",
+ "markdownDescription": "Enables the read_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-text-file",
+ "markdownDescription": "Enables the read_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text_file_lines command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-text-file-lines",
+ "markdownDescription": "Enables the read_text_file_lines command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text_file_lines_next command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-text-file-lines-next",
+ "markdownDescription": "Enables the read_text_file_lines_next command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-remove",
+ "markdownDescription": "Enables the remove command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the rename command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-rename",
+ "markdownDescription": "Enables the rename command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the seek command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-seek",
+ "markdownDescription": "Enables the seek command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the size command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-size",
+ "markdownDescription": "Enables the size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the start_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-start-accessing-security-scoped-resource",
+ "markdownDescription": "Enables the start_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the stat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-stat",
+ "markdownDescription": "Enables the stat command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the stop_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-stop-accessing-security-scoped-resource",
+ "markdownDescription": "Enables the stop_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the truncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-truncate",
+ "markdownDescription": "Enables the truncate command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unwatch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-unwatch",
+ "markdownDescription": "Enables the unwatch command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the watch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-watch",
+ "markdownDescription": "Enables the watch command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-write",
+ "markdownDescription": "Enables the write command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-write-file",
+ "markdownDescription": "Enables the write_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-write-text-file",
+ "markdownDescription": "Enables the write_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "This permissions allows to create the application specific directories.\n",
+ "type": "string",
+ "const": "fs:create-app-specific-dirs",
+ "markdownDescription": "This permissions allows to create the application specific directories.\n"
+ },
+ {
+ "description": "Denies the copy_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-copy-file",
+ "markdownDescription": "Denies the copy_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-create",
+ "markdownDescription": "Denies the create command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the exists command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-exists",
+ "markdownDescription": "Denies the exists command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the fstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-fstat",
+ "markdownDescription": "Denies the fstat command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the ftruncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-ftruncate",
+ "markdownDescription": "Denies the ftruncate command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the lstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-lstat",
+ "markdownDescription": "Denies the lstat command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the mkdir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-mkdir",
+ "markdownDescription": "Denies the mkdir command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the open command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-open",
+ "markdownDescription": "Denies the open command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read",
+ "markdownDescription": "Denies the read command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-dir",
+ "markdownDescription": "Denies the read_dir command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-file",
+ "markdownDescription": "Denies the read_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-text-file",
+ "markdownDescription": "Denies the read_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text_file_lines command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-text-file-lines",
+ "markdownDescription": "Denies the read_text_file_lines command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text_file_lines_next command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-text-file-lines-next",
+ "markdownDescription": "Denies the read_text_file_lines_next command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-remove",
+ "markdownDescription": "Denies the remove command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the rename command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-rename",
+ "markdownDescription": "Denies the rename command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the seek command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-seek",
+ "markdownDescription": "Denies the seek command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the size command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-size",
+ "markdownDescription": "Denies the size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the start_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-start-accessing-security-scoped-resource",
+ "markdownDescription": "Denies the start_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the stat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-stat",
+ "markdownDescription": "Denies the stat command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the stop_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-stop-accessing-security-scoped-resource",
+ "markdownDescription": "Denies the stop_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the truncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-truncate",
+ "markdownDescription": "Denies the truncate command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unwatch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-unwatch",
+ "markdownDescription": "Denies the unwatch command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the watch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-watch",
+ "markdownDescription": "Denies the watch command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "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."
+ },
+ {
+ "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",
+ "markdownDescription": "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."
+ },
+ {
+ "description": "Denies the write command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-write",
+ "markdownDescription": "Denies the write command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-write-file",
+ "markdownDescription": "Denies the write_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-write-text-file",
+ "markdownDescription": "Denies the write_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "This enables all read related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-all",
+ "markdownDescription": "This enables all read related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n",
+ "type": "string",
+ "const": "fs:read-app-specific-dirs-recursive",
+ "markdownDescription": "This permission allows recursive read functionality on the application\nspecific base directories. \n"
+ },
+ {
+ "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-dirs",
+ "markdownDescription": "This enables directory read and file metadata related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This enables file read related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-files",
+ "markdownDescription": "This enables file read related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This enables all index or metadata related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-meta",
+ "markdownDescription": "This enables all index or metadata related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "An empty permission you can use to modify the global scope.\n\n## Example\n\n```json\n{\n \"identifier\": \"read-documents\",\n \"windows\": [\"main\"],\n \"permissions\": [\n \"fs:allow-read\",\n {\n \"identifier\": \"fs:scope\",\n \"allow\": [\n \"$APPDATA/documents/**/*\"\n ],\n \"deny\": [\n \"$APPDATA/documents/secret.txt\"\n ]\n }\n ]\n}\n```\n",
+ "type": "string",
+ "const": "fs:scope",
+ "markdownDescription": "An empty permission you can use to modify the global scope.\n\n## Example\n\n```json\n{\n \"identifier\": \"read-documents\",\n \"windows\": [\"main\"],\n \"permissions\": [\n \"fs:allow-read\",\n {\n \"identifier\": \"fs:scope\",\n \"allow\": [\n \"$APPDATA/documents/**/*\"\n ],\n \"deny\": [\n \"$APPDATA/documents/secret.txt\"\n ]\n }\n ]\n}\n```\n"
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the application folders."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the application directories.",
+ "type": "string",
+ "const": "fs:scope-app-index",
+ "markdownDescription": "This scope permits to list all files and folders in the application directories."
+ },
+ {
+ "description": "This scope permits recursive access to the complete application folders, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-app-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete application folders, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.",
+ "type": "string",
+ "const": "fs:scope-appcache-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPCACHE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-appcache-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.",
+ "type": "string",
+ "const": "fs:scope-appconfig-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPCONFIG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-appconfig-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPDATA`folder.",
+ "type": "string",
+ "const": "fs:scope-appdata-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPDATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-appdata-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.",
+ "type": "string",
+ "const": "fs:scope-applocaldata-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-applocaldata-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPLOG`folder.",
+ "type": "string",
+ "const": "fs:scope-applog-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPLOG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-applog-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$AUDIO`folder.",
+ "type": "string",
+ "const": "fs:scope-audio-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$AUDIO`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-audio-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$CACHE`folder.",
+ "type": "string",
+ "const": "fs:scope-cache-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$CACHE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-cache-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$CONFIG`folder.",
+ "type": "string",
+ "const": "fs:scope-config-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$CONFIG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-config-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DATA`folder.",
+ "type": "string",
+ "const": "fs:scope-data-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-data-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.",
+ "type": "string",
+ "const": "fs:scope-desktop-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DESKTOP`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-desktop-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.",
+ "type": "string",
+ "const": "fs:scope-document-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DOCUMENT`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-document-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.",
+ "type": "string",
+ "const": "fs:scope-download-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DOWNLOAD`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-download-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$EXE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$EXE`folder.",
+ "type": "string",
+ "const": "fs:scope-exe-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$EXE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-exe-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$FONT` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$FONT`folder.",
+ "type": "string",
+ "const": "fs:scope-font-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$FONT`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-font-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$HOME` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$HOME`folder.",
+ "type": "string",
+ "const": "fs:scope-home-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$HOME`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-home-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.",
+ "type": "string",
+ "const": "fs:scope-localdata-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$LOCALDATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-localdata-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$LOG`folder.",
+ "type": "string",
+ "const": "fs:scope-log-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$LOG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-log-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$PICTURE`folder.",
+ "type": "string",
+ "const": "fs:scope-picture-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$PICTURE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-picture-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.",
+ "type": "string",
+ "const": "fs:scope-public-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$PUBLIC`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-public-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.",
+ "type": "string",
+ "const": "fs:scope-resource-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$RESOURCE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-resource-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.",
+ "type": "string",
+ "const": "fs:scope-runtime-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$RUNTIME`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-runtime-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$TEMP`folder.",
+ "type": "string",
+ "const": "fs:scope-temp-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$TEMP`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-temp-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.",
+ "type": "string",
+ "const": "fs:scope-template-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$TEMPLATE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-template-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$VIDEO`folder.",
+ "type": "string",
+ "const": "fs:scope-video-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$VIDEO`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-video-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files."
+ },
+ {
+ "description": "This enables all write related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:write-all",
+ "markdownDescription": "This enables all write related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This enables all file write related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:write-files",
+ "markdownDescription": "This enables all file write related commands without any pre-configured accessible paths."
+ }
+ ]
+ }
+ }
+ },
+ "then": {
+ "properties": {
+ "allow": {
+ "items": {
+ "title": "FsScopeEntry",
+ "description": "FS scope entry.",
+ "anyOf": [
+ {
+ "description": "A path that can be accessed by the webview when using the fs APIs. FS scope path pattern.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
+ "type": "string"
+ },
+ {
+ "type": "object",
+ "required": [
+ "path"
+ ],
+ "properties": {
+ "path": {
+ "description": "A path that can be accessed by the webview when using the fs APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deny": {
+ "items": {
+ "title": "FsScopeEntry",
+ "description": "FS scope entry.",
+ "anyOf": [
+ {
+ "description": "A path that can be accessed by the webview when using the fs APIs. FS scope path pattern.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
+ "type": "string"
+ },
+ {
+ "type": "object",
+ "required": [
+ "path"
+ ],
+ "properties": {
+ "path": {
+ "description": "A path that can be accessed by the webview when using the fs APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "properties": {
+ "identifier": {
+ "description": "Identifier of the permission or permission set.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Identifier"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "identifier": {
+ "anyOf": [
+ {
+ "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`",
+ "type": "string",
+ "const": "opener:default",
+ "markdownDescription": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`"
+ },
+ {
+ "description": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.",
+ "type": "string",
+ "const": "opener:allow-default-urls",
+ "markdownDescription": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application."
+ },
+ {
+ "description": "Enables the open_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:allow-open-path",
+ "markdownDescription": "Enables the open_path command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the open_url command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:allow-open-url",
+ "markdownDescription": "Enables the open_url command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the reveal_item_in_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:allow-reveal-item-in-dir",
+ "markdownDescription": "Enables the reveal_item_in_dir command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the open_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:deny-open-path",
+ "markdownDescription": "Denies the open_path command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the open_url command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:deny-open-url",
+ "markdownDescription": "Denies the open_url command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the reveal_item_in_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:deny-reveal-item-in-dir",
+ "markdownDescription": "Denies the reveal_item_in_dir command without any pre-configured scope."
+ }
+ ]
+ }
+ }
+ },
+ "then": {
+ "properties": {
+ "allow": {
+ "items": {
+ "title": "OpenerScopeEntry",
+ "description": "Opener scope entry.",
+ "anyOf": [
+ {
+ "type": "object",
+ "required": [
+ "url"
+ ],
+ "properties": {
+ "app": {
+ "description": "An application to open this url with, for example: firefox.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Application"
+ }
+ ]
+ },
+ "url": {
+ "description": "A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"",
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "path"
+ ],
+ "properties": {
+ "app": {
+ "description": "An application to open this path with, for example: xdg-open.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Application"
+ }
+ ]
+ },
+ "path": {
+ "description": "A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deny": {
+ "items": {
+ "title": "OpenerScopeEntry",
+ "description": "Opener scope entry.",
+ "anyOf": [
+ {
+ "type": "object",
+ "required": [
+ "url"
+ ],
+ "properties": {
+ "app": {
+ "description": "An application to open this url with, for example: firefox.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Application"
+ }
+ ]
+ },
+ "url": {
+ "description": "A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"",
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "path"
+ ],
+ "properties": {
+ "app": {
+ "description": "An application to open this path with, for example: xdg-open.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Application"
+ }
+ ]
+ },
+ "path": {
+ "description": "A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "properties": {
+ "identifier": {
+ "description": "Identifier of the permission or permission set.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Identifier"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "properties": {
+ "identifier": {
+ "description": "Identifier of the permission or permission set.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Identifier"
+ }
+ ]
+ },
+ "allow": {
+ "description": "Data that defines what is allowed by the scope.",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/definitions/Value"
+ }
+ },
+ "deny": {
+ "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/definitions/Value"
+ }
+ }
+ }
+ }
+ ],
+ "required": [
+ "identifier"
+ ]
+ }
+ ]
+ },
+ "Identifier": {
+ "description": "Permission identifier",
+ "oneOf": [
+ {
+ "description": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n",
+ "type": "string",
+ "const": "clipboard-manager:default",
+ "markdownDescription": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n"
+ },
+ {
+ "description": "Enables the clear command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:allow-clear",
+ "markdownDescription": "Enables the clear command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_image command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:allow-read-image",
+ "markdownDescription": "Enables the read_image command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:allow-read-text",
+ "markdownDescription": "Enables the read_text command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_html command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:allow-write-html",
+ "markdownDescription": "Enables the write_html command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_image command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:allow-write-image",
+ "markdownDescription": "Enables the write_image command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_text command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:allow-write-text",
+ "markdownDescription": "Enables the write_text command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the clear command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:deny-clear",
+ "markdownDescription": "Denies the clear command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_image command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:deny-read-image",
+ "markdownDescription": "Denies the read_image command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:deny-read-text",
+ "markdownDescription": "Denies the read_text command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_html command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:deny-write-html",
+ "markdownDescription": "Denies the write_html command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_image command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:deny-write-image",
+ "markdownDescription": "Denies the write_image command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_text command without any pre-configured scope.",
+ "type": "string",
+ "const": "clipboard-manager:deny-write-text",
+ "markdownDescription": "Denies the write_text command without any pre-configured scope."
+ },
+ {
+ "description": "Default core plugins set.\n#### This default permission set includes:\n\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`",
+ "type": "string",
+ "const": "core:default",
+ "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\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`"
+ },
+ {
+ "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`",
+ "type": "string",
+ "const": "core:app:default",
+ "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`"
+ },
+ {
+ "description": "Enables the app_hide command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-app-hide",
+ "markdownDescription": "Enables the app_hide command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the app_show command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-app-show",
+ "markdownDescription": "Enables the app_show command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the bundle_type command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-bundle-type",
+ "markdownDescription": "Enables the bundle_type command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the default_window_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-default-window-icon",
+ "markdownDescription": "Enables the default_window_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-fetch-data-store-identifiers",
+ "markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the identifier command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-identifier",
+ "markdownDescription": "Enables the identifier command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the name command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-name",
+ "markdownDescription": "Enables the name command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the register_listener command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-register-listener",
+ "markdownDescription": "Enables the register_listener command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove_data_store command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-remove-data-store",
+ "markdownDescription": "Enables the remove_data_store command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove_listener command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-remove-listener",
+ "markdownDescription": "Enables the remove_listener command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_app_theme command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-set-app-theme",
+ "markdownDescription": "Enables the set_app_theme command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_dock_visibility command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-set-dock-visibility",
+ "markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the supports_multiple_windows command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-supports-multiple-windows",
+ "markdownDescription": "Enables the supports_multiple_windows command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the tauri_version command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-tauri-version",
+ "markdownDescription": "Enables the tauri_version command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the version command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:allow-version",
+ "markdownDescription": "Enables the version command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the app_hide command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-app-hide",
+ "markdownDescription": "Denies the app_hide command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the app_show command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-app-show",
+ "markdownDescription": "Denies the app_show command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the bundle_type command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-bundle-type",
+ "markdownDescription": "Denies the bundle_type command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the default_window_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-default-window-icon",
+ "markdownDescription": "Denies the default_window_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-fetch-data-store-identifiers",
+ "markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the identifier command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-identifier",
+ "markdownDescription": "Denies the identifier command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the name command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-name",
+ "markdownDescription": "Denies the name command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the register_listener command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-register-listener",
+ "markdownDescription": "Denies the register_listener command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove_data_store command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-remove-data-store",
+ "markdownDescription": "Denies the remove_data_store command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove_listener command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-remove-listener",
+ "markdownDescription": "Denies the remove_listener command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_app_theme command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-set-app-theme",
+ "markdownDescription": "Denies the set_app_theme command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_dock_visibility command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-set-dock-visibility",
+ "markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the supports_multiple_windows command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-supports-multiple-windows",
+ "markdownDescription": "Denies the supports_multiple_windows command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the tauri_version command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-tauri-version",
+ "markdownDescription": "Denies the tauri_version command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the version command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:app:deny-version",
+ "markdownDescription": "Denies the version command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`",
+ "type": "string",
+ "const": "core:event:default",
+ "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`"
+ },
+ {
+ "description": "Enables the emit command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:allow-emit",
+ "markdownDescription": "Enables the emit command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the emit_to command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:allow-emit-to",
+ "markdownDescription": "Enables the emit_to command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the listen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:allow-listen",
+ "markdownDescription": "Enables the listen command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unlisten command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:allow-unlisten",
+ "markdownDescription": "Enables the unlisten command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the emit command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:deny-emit",
+ "markdownDescription": "Denies the emit command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the emit_to command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:deny-emit-to",
+ "markdownDescription": "Denies the emit_to command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the listen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:deny-listen",
+ "markdownDescription": "Denies the listen command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unlisten command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:event:deny-unlisten",
+ "markdownDescription": "Denies the unlisten command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`",
+ "type": "string",
+ "const": "core:image:default",
+ "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`"
+ },
+ {
+ "description": "Enables the from_bytes command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:allow-from-bytes",
+ "markdownDescription": "Enables the from_bytes command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the from_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:allow-from-path",
+ "markdownDescription": "Enables the from_path command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the new command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:allow-new",
+ "markdownDescription": "Enables the new command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the rgba command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:allow-rgba",
+ "markdownDescription": "Enables the rgba command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:allow-size",
+ "markdownDescription": "Enables the size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the from_bytes command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:deny-from-bytes",
+ "markdownDescription": "Denies the from_bytes command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the from_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:deny-from-path",
+ "markdownDescription": "Denies the from_path command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the new command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:deny-new",
+ "markdownDescription": "Denies the new command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the rgba command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:deny-rgba",
+ "markdownDescription": "Denies the rgba command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:image:deny-size",
+ "markdownDescription": "Denies the size command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`",
+ "type": "string",
+ "const": "core:menu:default",
+ "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`"
+ },
+ {
+ "description": "Enables the append command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-append",
+ "markdownDescription": "Enables the append command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the create_default command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-create-default",
+ "markdownDescription": "Enables the create_default command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the get command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-get",
+ "markdownDescription": "Enables the get command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the insert command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-insert",
+ "markdownDescription": "Enables the insert command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_checked command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-is-checked",
+ "markdownDescription": "Enables the is_checked command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-is-enabled",
+ "markdownDescription": "Enables the is_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the items command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-items",
+ "markdownDescription": "Enables the items command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the new command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-new",
+ "markdownDescription": "Enables the new command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the popup command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-popup",
+ "markdownDescription": "Enables the popup command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the prepend command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-prepend",
+ "markdownDescription": "Enables the prepend command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-remove",
+ "markdownDescription": "Enables the remove command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove_at command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-remove-at",
+ "markdownDescription": "Enables the remove_at command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_accelerator command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-accelerator",
+ "markdownDescription": "Enables the set_accelerator command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_as_app_menu command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-as-app-menu",
+ "markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_as_window_menu command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-as-window-menu",
+ "markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_checked command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-checked",
+ "markdownDescription": "Enables the set_checked command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-enabled",
+ "markdownDescription": "Enables the set_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-icon",
+ "markdownDescription": "Enables the set_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_text command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-set-text",
+ "markdownDescription": "Enables the set_text command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the text command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:allow-text",
+ "markdownDescription": "Enables the text command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the append command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-append",
+ "markdownDescription": "Denies the append command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create_default command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-create-default",
+ "markdownDescription": "Denies the create_default command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-get",
+ "markdownDescription": "Denies the get command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the insert command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-insert",
+ "markdownDescription": "Denies the insert command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_checked command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-is-checked",
+ "markdownDescription": "Denies the is_checked command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-is-enabled",
+ "markdownDescription": "Denies the is_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the items command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-items",
+ "markdownDescription": "Denies the items command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the new command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-new",
+ "markdownDescription": "Denies the new command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the popup command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-popup",
+ "markdownDescription": "Denies the popup command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the prepend command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-prepend",
+ "markdownDescription": "Denies the prepend command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-remove",
+ "markdownDescription": "Denies the remove command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove_at command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-remove-at",
+ "markdownDescription": "Denies the remove_at command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_accelerator command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-accelerator",
+ "markdownDescription": "Denies the set_accelerator command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_as_app_menu command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-as-app-menu",
+ "markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_as_window_menu command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-as-window-menu",
+ "markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_checked command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-checked",
+ "markdownDescription": "Denies the set_checked command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-enabled",
+ "markdownDescription": "Denies the set_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-icon",
+ "markdownDescription": "Denies the set_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_text command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-set-text",
+ "markdownDescription": "Denies the set_text command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the text command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:menu:deny-text",
+ "markdownDescription": "Denies the text command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`",
+ "type": "string",
+ "const": "core:path:default",
+ "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`"
+ },
+ {
+ "description": "Enables the basename command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-basename",
+ "markdownDescription": "Enables the basename command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the dirname command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-dirname",
+ "markdownDescription": "Enables the dirname command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the extname command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-extname",
+ "markdownDescription": "Enables the extname command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_absolute command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-is-absolute",
+ "markdownDescription": "Enables the is_absolute command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the join command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-join",
+ "markdownDescription": "Enables the join command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the normalize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-normalize",
+ "markdownDescription": "Enables the normalize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the resolve command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-resolve",
+ "markdownDescription": "Enables the resolve command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the resolve_directory command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:allow-resolve-directory",
+ "markdownDescription": "Enables the resolve_directory command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the basename command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-basename",
+ "markdownDescription": "Denies the basename command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the dirname command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-dirname",
+ "markdownDescription": "Denies the dirname command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the extname command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-extname",
+ "markdownDescription": "Denies the extname command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_absolute command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-is-absolute",
+ "markdownDescription": "Denies the is_absolute command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the join command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-join",
+ "markdownDescription": "Denies the join command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the normalize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-normalize",
+ "markdownDescription": "Denies the normalize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the resolve command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-resolve",
+ "markdownDescription": "Denies the resolve command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the resolve_directory command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:path:deny-resolve-directory",
+ "markdownDescription": "Denies the resolve_directory command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`",
+ "type": "string",
+ "const": "core:resources:default",
+ "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`"
+ },
+ {
+ "description": "Enables the close command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:resources:allow-close",
+ "markdownDescription": "Enables the close command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the close command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:resources:deny-close",
+ "markdownDescription": "Denies the close command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`",
+ "type": "string",
+ "const": "core:tray:default",
+ "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`"
+ },
+ {
+ "description": "Enables the get_by_id command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-get-by-id",
+ "markdownDescription": "Enables the get_by_id command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the new command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-new",
+ "markdownDescription": "Enables the new command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove_by_id command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-remove-by-id",
+ "markdownDescription": "Enables the remove_by_id command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-icon",
+ "markdownDescription": "Enables the set_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_icon_as_template command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-icon-as-template",
+ "markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_icon_with_as_template command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-icon-with-as-template",
+ "markdownDescription": "Enables the set_icon_with_as_template command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_menu command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-menu",
+ "markdownDescription": "Enables the set_menu command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_temp_dir_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-temp-dir-path",
+ "markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_title command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-title",
+ "markdownDescription": "Enables the set_title command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_tooltip command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-tooltip",
+ "markdownDescription": "Enables the set_tooltip command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_visible command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:allow-set-visible",
+ "markdownDescription": "Enables the set_visible command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get_by_id command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-get-by-id",
+ "markdownDescription": "Denies the get_by_id command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the new command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-new",
+ "markdownDescription": "Denies the new command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove_by_id command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-remove-by-id",
+ "markdownDescription": "Denies the remove_by_id command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-icon",
+ "markdownDescription": "Denies the set_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_icon_as_template command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-icon-as-template",
+ "markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_icon_with_as_template command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-icon-with-as-template",
+ "markdownDescription": "Denies the set_icon_with_as_template command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_menu command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-menu",
+ "markdownDescription": "Denies the set_menu command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_temp_dir_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-temp-dir-path",
+ "markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_title command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-title",
+ "markdownDescription": "Denies the set_title command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_tooltip command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-tooltip",
+ "markdownDescription": "Denies the set_tooltip command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_visible command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:tray:deny-set-visible",
+ "markdownDescription": "Denies the set_visible command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`",
+ "type": "string",
+ "const": "core:webview:default",
+ "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`"
+ },
+ {
+ "description": "Enables the clear_all_browsing_data command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-clear-all-browsing-data",
+ "markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the create_webview command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-create-webview",
+ "markdownDescription": "Enables the create_webview command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the create_webview_window command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-create-webview-window",
+ "markdownDescription": "Enables the create_webview_window command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the get_all_webviews command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-get-all-webviews",
+ "markdownDescription": "Enables the get_all_webviews command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the internal_toggle_devtools command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-internal-toggle-devtools",
+ "markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the print command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-print",
+ "markdownDescription": "Enables the print command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the reparent command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-reparent",
+ "markdownDescription": "Enables the reparent command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_webview_auto_resize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-set-webview-auto-resize",
+ "markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_webview_background_color command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-set-webview-background-color",
+ "markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_webview_focus command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-set-webview-focus",
+ "markdownDescription": "Enables the set_webview_focus command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_webview_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-set-webview-position",
+ "markdownDescription": "Enables the set_webview_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_webview_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-set-webview-size",
+ "markdownDescription": "Enables the set_webview_size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_webview_zoom command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-set-webview-zoom",
+ "markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the webview_close command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-webview-close",
+ "markdownDescription": "Enables the webview_close command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the webview_hide command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-webview-hide",
+ "markdownDescription": "Enables the webview_hide command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the webview_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-webview-position",
+ "markdownDescription": "Enables the webview_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the webview_show command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-webview-show",
+ "markdownDescription": "Enables the webview_show command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the webview_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:allow-webview-size",
+ "markdownDescription": "Enables the webview_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the clear_all_browsing_data command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-clear-all-browsing-data",
+ "markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create_webview command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-create-webview",
+ "markdownDescription": "Denies the create_webview command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create_webview_window command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-create-webview-window",
+ "markdownDescription": "Denies the create_webview_window command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get_all_webviews command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-get-all-webviews",
+ "markdownDescription": "Denies the get_all_webviews command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the internal_toggle_devtools command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-internal-toggle-devtools",
+ "markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the print command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-print",
+ "markdownDescription": "Denies the print command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the reparent command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-reparent",
+ "markdownDescription": "Denies the reparent command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_webview_auto_resize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-set-webview-auto-resize",
+ "markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_webview_background_color command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-set-webview-background-color",
+ "markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_webview_focus command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-set-webview-focus",
+ "markdownDescription": "Denies the set_webview_focus command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_webview_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-set-webview-position",
+ "markdownDescription": "Denies the set_webview_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_webview_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-set-webview-size",
+ "markdownDescription": "Denies the set_webview_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_webview_zoom command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-set-webview-zoom",
+ "markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the webview_close command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-webview-close",
+ "markdownDescription": "Denies the webview_close command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the webview_hide command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-webview-hide",
+ "markdownDescription": "Denies the webview_hide command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the webview_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-webview-position",
+ "markdownDescription": "Denies the webview_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the webview_show command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-webview-show",
+ "markdownDescription": "Denies the webview_show command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the webview_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:webview:deny-webview-size",
+ "markdownDescription": "Denies the webview_size command without any pre-configured scope."
+ },
+ {
+ "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`",
+ "type": "string",
+ "const": "core:window:default",
+ "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`"
+ },
+ {
+ "description": "Enables the activity_name command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-activity-name",
+ "markdownDescription": "Enables the activity_name command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the available_monitors command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-available-monitors",
+ "markdownDescription": "Enables the available_monitors command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the center command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-center",
+ "markdownDescription": "Enables the center command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the close command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-close",
+ "markdownDescription": "Enables the close command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the create command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-create",
+ "markdownDescription": "Enables the create command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the current_monitor command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-current-monitor",
+ "markdownDescription": "Enables the current_monitor command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the cursor_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-cursor-position",
+ "markdownDescription": "Enables the cursor_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the destroy command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-destroy",
+ "markdownDescription": "Enables the destroy command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the get_all_windows command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-get-all-windows",
+ "markdownDescription": "Enables the get_all_windows command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the hide command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-hide",
+ "markdownDescription": "Enables the hide command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the inner_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-inner-position",
+ "markdownDescription": "Enables the inner_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the inner_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-inner-size",
+ "markdownDescription": "Enables the inner_size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the internal_toggle_maximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-internal-toggle-maximize",
+ "markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_always_on_top command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-always-on-top",
+ "markdownDescription": "Enables the is_always_on_top command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_closable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-closable",
+ "markdownDescription": "Enables the is_closable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_decorated command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-decorated",
+ "markdownDescription": "Enables the is_decorated command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-enabled",
+ "markdownDescription": "Enables the is_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_focused command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-focused",
+ "markdownDescription": "Enables the is_focused command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_fullscreen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-fullscreen",
+ "markdownDescription": "Enables the is_fullscreen command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_maximizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-maximizable",
+ "markdownDescription": "Enables the is_maximizable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_maximized command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-maximized",
+ "markdownDescription": "Enables the is_maximized command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_minimizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-minimizable",
+ "markdownDescription": "Enables the is_minimizable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_minimized command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-minimized",
+ "markdownDescription": "Enables the is_minimized command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_resizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-resizable",
+ "markdownDescription": "Enables the is_resizable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the is_visible command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-is-visible",
+ "markdownDescription": "Enables the is_visible command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the maximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-maximize",
+ "markdownDescription": "Enables the maximize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the minimize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-minimize",
+ "markdownDescription": "Enables the minimize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the monitor_from_point command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-monitor-from-point",
+ "markdownDescription": "Enables the monitor_from_point command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the outer_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-outer-position",
+ "markdownDescription": "Enables the outer_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the outer_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-outer-size",
+ "markdownDescription": "Enables the outer_size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the primary_monitor command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-primary-monitor",
+ "markdownDescription": "Enables the primary_monitor command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the request_user_attention command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-request-user-attention",
+ "markdownDescription": "Enables the request_user_attention command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the scale_factor command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-scale-factor",
+ "markdownDescription": "Enables the scale_factor command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the scene_identifier command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-scene-identifier",
+ "markdownDescription": "Enables the scene_identifier command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_always_on_bottom command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-always-on-bottom",
+ "markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_always_on_top command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-always-on-top",
+ "markdownDescription": "Enables the set_always_on_top command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_background_color command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-background-color",
+ "markdownDescription": "Enables the set_background_color command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_badge_count command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-badge-count",
+ "markdownDescription": "Enables the set_badge_count command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_badge_label command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-badge-label",
+ "markdownDescription": "Enables the set_badge_label command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_closable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-closable",
+ "markdownDescription": "Enables the set_closable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_content_protected command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-content-protected",
+ "markdownDescription": "Enables the set_content_protected command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_cursor_grab command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-cursor-grab",
+ "markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_cursor_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-cursor-icon",
+ "markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_cursor_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-cursor-position",
+ "markdownDescription": "Enables the set_cursor_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_cursor_visible command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-cursor-visible",
+ "markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_decorations command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-decorations",
+ "markdownDescription": "Enables the set_decorations command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_effects command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-effects",
+ "markdownDescription": "Enables the set_effects command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-enabled",
+ "markdownDescription": "Enables the set_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_focus command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-focus",
+ "markdownDescription": "Enables the set_focus command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_focusable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-focusable",
+ "markdownDescription": "Enables the set_focusable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_fullscreen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-fullscreen",
+ "markdownDescription": "Enables the set_fullscreen command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-icon",
+ "markdownDescription": "Enables the set_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-ignore-cursor-events",
+ "markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_max_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-max-size",
+ "markdownDescription": "Enables the set_max_size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_maximizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-maximizable",
+ "markdownDescription": "Enables the set_maximizable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_min_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-min-size",
+ "markdownDescription": "Enables the set_min_size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_minimizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-minimizable",
+ "markdownDescription": "Enables the set_minimizable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_overlay_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-overlay-icon",
+ "markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-position",
+ "markdownDescription": "Enables the set_position command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_progress_bar command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-progress-bar",
+ "markdownDescription": "Enables the set_progress_bar command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_resizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-resizable",
+ "markdownDescription": "Enables the set_resizable command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_shadow command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-shadow",
+ "markdownDescription": "Enables the set_shadow command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_simple_fullscreen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-simple-fullscreen",
+ "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-size",
+ "markdownDescription": "Enables the set_size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_size_constraints command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-size-constraints",
+ "markdownDescription": "Enables the set_size_constraints command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_skip_taskbar command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-skip-taskbar",
+ "markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_theme command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-theme",
+ "markdownDescription": "Enables the set_theme command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_title command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-title",
+ "markdownDescription": "Enables the set_title command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set_title_bar_style command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-set-title-bar-style",
+ "markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the show command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-show",
+ "markdownDescription": "Enables the show command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the start_dragging command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-start-dragging",
+ "markdownDescription": "Enables the start_dragging command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the start_resize_dragging command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-start-resize-dragging",
+ "markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the theme command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-theme",
+ "markdownDescription": "Enables the theme command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the title command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-title",
+ "markdownDescription": "Enables the title command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the toggle_maximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-toggle-maximize",
+ "markdownDescription": "Enables the toggle_maximize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unmaximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-unmaximize",
+ "markdownDescription": "Enables the unmaximize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unminimize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:allow-unminimize",
+ "markdownDescription": "Enables the unminimize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the activity_name command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-activity-name",
+ "markdownDescription": "Denies the activity_name command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the available_monitors command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-available-monitors",
+ "markdownDescription": "Denies the available_monitors command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the center command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-center",
+ "markdownDescription": "Denies the center command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the close command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-close",
+ "markdownDescription": "Denies the close command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-create",
+ "markdownDescription": "Denies the create command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the current_monitor command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-current-monitor",
+ "markdownDescription": "Denies the current_monitor command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the cursor_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-cursor-position",
+ "markdownDescription": "Denies the cursor_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the destroy command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-destroy",
+ "markdownDescription": "Denies the destroy command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get_all_windows command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-get-all-windows",
+ "markdownDescription": "Denies the get_all_windows command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the hide command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-hide",
+ "markdownDescription": "Denies the hide command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the inner_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-inner-position",
+ "markdownDescription": "Denies the inner_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the inner_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-inner-size",
+ "markdownDescription": "Denies the inner_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the internal_toggle_maximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-internal-toggle-maximize",
+ "markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_always_on_top command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-always-on-top",
+ "markdownDescription": "Denies the is_always_on_top command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_closable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-closable",
+ "markdownDescription": "Denies the is_closable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_decorated command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-decorated",
+ "markdownDescription": "Denies the is_decorated command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-enabled",
+ "markdownDescription": "Denies the is_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_focused command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-focused",
+ "markdownDescription": "Denies the is_focused command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_fullscreen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-fullscreen",
+ "markdownDescription": "Denies the is_fullscreen command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_maximizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-maximizable",
+ "markdownDescription": "Denies the is_maximizable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_maximized command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-maximized",
+ "markdownDescription": "Denies the is_maximized command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_minimizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-minimizable",
+ "markdownDescription": "Denies the is_minimizable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_minimized command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-minimized",
+ "markdownDescription": "Denies the is_minimized command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_resizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-resizable",
+ "markdownDescription": "Denies the is_resizable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_visible command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-is-visible",
+ "markdownDescription": "Denies the is_visible command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the maximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-maximize",
+ "markdownDescription": "Denies the maximize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the minimize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-minimize",
+ "markdownDescription": "Denies the minimize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the monitor_from_point command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-monitor-from-point",
+ "markdownDescription": "Denies the monitor_from_point command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the outer_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-outer-position",
+ "markdownDescription": "Denies the outer_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the outer_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-outer-size",
+ "markdownDescription": "Denies the outer_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the primary_monitor command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-primary-monitor",
+ "markdownDescription": "Denies the primary_monitor command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the request_user_attention command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-request-user-attention",
+ "markdownDescription": "Denies the request_user_attention command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the scale_factor command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-scale-factor",
+ "markdownDescription": "Denies the scale_factor command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the scene_identifier command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-scene-identifier",
+ "markdownDescription": "Denies the scene_identifier command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_always_on_bottom command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-always-on-bottom",
+ "markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_always_on_top command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-always-on-top",
+ "markdownDescription": "Denies the set_always_on_top command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_background_color command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-background-color",
+ "markdownDescription": "Denies the set_background_color command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_badge_count command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-badge-count",
+ "markdownDescription": "Denies the set_badge_count command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_badge_label command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-badge-label",
+ "markdownDescription": "Denies the set_badge_label command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_closable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-closable",
+ "markdownDescription": "Denies the set_closable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_content_protected command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-content-protected",
+ "markdownDescription": "Denies the set_content_protected command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_cursor_grab command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-cursor-grab",
+ "markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_cursor_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-cursor-icon",
+ "markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_cursor_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-cursor-position",
+ "markdownDescription": "Denies the set_cursor_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_cursor_visible command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-cursor-visible",
+ "markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_decorations command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-decorations",
+ "markdownDescription": "Denies the set_decorations command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_effects command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-effects",
+ "markdownDescription": "Denies the set_effects command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_enabled command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-enabled",
+ "markdownDescription": "Denies the set_enabled command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_focus command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-focus",
+ "markdownDescription": "Denies the set_focus command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_focusable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-focusable",
+ "markdownDescription": "Denies the set_focusable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_fullscreen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-fullscreen",
+ "markdownDescription": "Denies the set_fullscreen command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-icon",
+ "markdownDescription": "Denies the set_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-ignore-cursor-events",
+ "markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_max_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-max-size",
+ "markdownDescription": "Denies the set_max_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_maximizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-maximizable",
+ "markdownDescription": "Denies the set_maximizable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_min_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-min-size",
+ "markdownDescription": "Denies the set_min_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_minimizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-minimizable",
+ "markdownDescription": "Denies the set_minimizable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_overlay_icon command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-overlay-icon",
+ "markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_position command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-position",
+ "markdownDescription": "Denies the set_position command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_progress_bar command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-progress-bar",
+ "markdownDescription": "Denies the set_progress_bar command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_resizable command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-resizable",
+ "markdownDescription": "Denies the set_resizable command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_shadow command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-shadow",
+ "markdownDescription": "Denies the set_shadow command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_simple_fullscreen command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-simple-fullscreen",
+ "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_size command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-size",
+ "markdownDescription": "Denies the set_size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_size_constraints command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-size-constraints",
+ "markdownDescription": "Denies the set_size_constraints command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_skip_taskbar command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-skip-taskbar",
+ "markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_theme command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-theme",
+ "markdownDescription": "Denies the set_theme command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_title command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-title",
+ "markdownDescription": "Denies the set_title command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set_title_bar_style command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-set-title-bar-style",
+ "markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the show command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-show",
+ "markdownDescription": "Denies the show command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the start_dragging command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-start-dragging",
+ "markdownDescription": "Denies the start_dragging command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the start_resize_dragging command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-start-resize-dragging",
+ "markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the theme command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-theme",
+ "markdownDescription": "Denies the theme command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the title command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-title",
+ "markdownDescription": "Denies the title command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the toggle_maximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-toggle-maximize",
+ "markdownDescription": "Denies the toggle_maximize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unmaximize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-unmaximize",
+ "markdownDescription": "Denies the unmaximize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unminimize command without any pre-configured scope.",
+ "type": "string",
+ "const": "core:window:deny-unminimize",
+ "markdownDescription": "Denies the unminimize command without any pre-configured scope."
+ },
+ {
+ "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#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`",
+ "type": "string",
+ "const": "fs:default",
+ "markdownDescription": "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#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`",
+ "type": "string",
+ "const": "fs:allow-app-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`",
+ "type": "string",
+ "const": "fs:allow-app-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`",
+ "type": "string",
+ "const": "fs:allow-app-read",
+ "markdownDescription": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`",
+ "type": "string",
+ "const": "fs:allow-app-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`",
+ "type": "string",
+ "const": "fs:allow-app-write",
+ "markdownDescription": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`",
+ "type": "string",
+ "const": "fs:allow-app-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`",
+ "type": "string",
+ "const": "fs:allow-appcache-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`",
+ "type": "string",
+ "const": "fs:allow-appcache-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`",
+ "type": "string",
+ "const": "fs:allow-appcache-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`",
+ "type": "string",
+ "const": "fs:allow-appcache-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`",
+ "type": "string",
+ "const": "fs:allow-appcache-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`",
+ "type": "string",
+ "const": "fs:allow-appcache-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`",
+ "type": "string",
+ "const": "fs:allow-appconfig-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`",
+ "type": "string",
+ "const": "fs:allow-appconfig-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`",
+ "type": "string",
+ "const": "fs:allow-appconfig-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`",
+ "type": "string",
+ "const": "fs:allow-appconfig-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`",
+ "type": "string",
+ "const": "fs:allow-appconfig-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`",
+ "type": "string",
+ "const": "fs:allow-appconfig-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`",
+ "type": "string",
+ "const": "fs:allow-appdata-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-appdata-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`",
+ "type": "string",
+ "const": "fs:allow-appdata-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-appdata-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`",
+ "type": "string",
+ "const": "fs:allow-appdata-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-appdata-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`",
+ "type": "string",
+ "const": "fs:allow-applocaldata-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`",
+ "type": "string",
+ "const": "fs:allow-applog-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`",
+ "type": "string",
+ "const": "fs:allow-applog-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`",
+ "type": "string",
+ "const": "fs:allow-applog-read",
+ "markdownDescription": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`",
+ "type": "string",
+ "const": "fs:allow-applog-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`",
+ "type": "string",
+ "const": "fs:allow-applog-write",
+ "markdownDescription": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`",
+ "type": "string",
+ "const": "fs:allow-applog-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`",
+ "type": "string",
+ "const": "fs:allow-audio-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`",
+ "type": "string",
+ "const": "fs:allow-audio-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`",
+ "type": "string",
+ "const": "fs:allow-audio-read",
+ "markdownDescription": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`",
+ "type": "string",
+ "const": "fs:allow-audio-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`",
+ "type": "string",
+ "const": "fs:allow-audio-write",
+ "markdownDescription": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`",
+ "type": "string",
+ "const": "fs:allow-audio-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`",
+ "type": "string",
+ "const": "fs:allow-cache-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`",
+ "type": "string",
+ "const": "fs:allow-cache-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`",
+ "type": "string",
+ "const": "fs:allow-cache-read",
+ "markdownDescription": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`",
+ "type": "string",
+ "const": "fs:allow-cache-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`",
+ "type": "string",
+ "const": "fs:allow-cache-write",
+ "markdownDescription": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`",
+ "type": "string",
+ "const": "fs:allow-cache-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`",
+ "type": "string",
+ "const": "fs:allow-config-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`",
+ "type": "string",
+ "const": "fs:allow-config-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`",
+ "type": "string",
+ "const": "fs:allow-config-read",
+ "markdownDescription": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`",
+ "type": "string",
+ "const": "fs:allow-config-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`",
+ "type": "string",
+ "const": "fs:allow-config-write",
+ "markdownDescription": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`",
+ "type": "string",
+ "const": "fs:allow-config-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`",
+ "type": "string",
+ "const": "fs:allow-data-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`",
+ "type": "string",
+ "const": "fs:allow-data-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`",
+ "type": "string",
+ "const": "fs:allow-data-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`",
+ "type": "string",
+ "const": "fs:allow-data-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`",
+ "type": "string",
+ "const": "fs:allow-data-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`",
+ "type": "string",
+ "const": "fs:allow-data-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`",
+ "type": "string",
+ "const": "fs:allow-desktop-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`",
+ "type": "string",
+ "const": "fs:allow-desktop-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`",
+ "type": "string",
+ "const": "fs:allow-desktop-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`",
+ "type": "string",
+ "const": "fs:allow-desktop-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`",
+ "type": "string",
+ "const": "fs:allow-desktop-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`",
+ "type": "string",
+ "const": "fs:allow-desktop-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`",
+ "type": "string",
+ "const": "fs:allow-document-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`",
+ "type": "string",
+ "const": "fs:allow-document-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`",
+ "type": "string",
+ "const": "fs:allow-document-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`",
+ "type": "string",
+ "const": "fs:allow-document-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`",
+ "type": "string",
+ "const": "fs:allow-document-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`",
+ "type": "string",
+ "const": "fs:allow-document-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`",
+ "type": "string",
+ "const": "fs:allow-download-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`",
+ "type": "string",
+ "const": "fs:allow-download-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`",
+ "type": "string",
+ "const": "fs:allow-download-read",
+ "markdownDescription": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`",
+ "type": "string",
+ "const": "fs:allow-download-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`",
+ "type": "string",
+ "const": "fs:allow-download-write",
+ "markdownDescription": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`",
+ "type": "string",
+ "const": "fs:allow-download-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`",
+ "type": "string",
+ "const": "fs:allow-exe-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`",
+ "type": "string",
+ "const": "fs:allow-exe-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`",
+ "type": "string",
+ "const": "fs:allow-exe-read",
+ "markdownDescription": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`",
+ "type": "string",
+ "const": "fs:allow-exe-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`",
+ "type": "string",
+ "const": "fs:allow-exe-write",
+ "markdownDescription": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`",
+ "type": "string",
+ "const": "fs:allow-exe-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`",
+ "type": "string",
+ "const": "fs:allow-font-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`",
+ "type": "string",
+ "const": "fs:allow-font-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`",
+ "type": "string",
+ "const": "fs:allow-font-read",
+ "markdownDescription": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`",
+ "type": "string",
+ "const": "fs:allow-font-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`",
+ "type": "string",
+ "const": "fs:allow-font-write",
+ "markdownDescription": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`",
+ "type": "string",
+ "const": "fs:allow-font-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`",
+ "type": "string",
+ "const": "fs:allow-home-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`",
+ "type": "string",
+ "const": "fs:allow-home-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`",
+ "type": "string",
+ "const": "fs:allow-home-read",
+ "markdownDescription": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`",
+ "type": "string",
+ "const": "fs:allow-home-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`",
+ "type": "string",
+ "const": "fs:allow-home-write",
+ "markdownDescription": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`",
+ "type": "string",
+ "const": "fs:allow-home-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`",
+ "type": "string",
+ "const": "fs:allow-localdata-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-localdata-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`",
+ "type": "string",
+ "const": "fs:allow-localdata-read",
+ "markdownDescription": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-localdata-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`",
+ "type": "string",
+ "const": "fs:allow-localdata-write",
+ "markdownDescription": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`",
+ "type": "string",
+ "const": "fs:allow-localdata-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`",
+ "type": "string",
+ "const": "fs:allow-log-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`",
+ "type": "string",
+ "const": "fs:allow-log-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`",
+ "type": "string",
+ "const": "fs:allow-log-read",
+ "markdownDescription": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`",
+ "type": "string",
+ "const": "fs:allow-log-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`",
+ "type": "string",
+ "const": "fs:allow-log-write",
+ "markdownDescription": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`",
+ "type": "string",
+ "const": "fs:allow-log-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`",
+ "type": "string",
+ "const": "fs:allow-picture-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`",
+ "type": "string",
+ "const": "fs:allow-picture-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`",
+ "type": "string",
+ "const": "fs:allow-picture-read",
+ "markdownDescription": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`",
+ "type": "string",
+ "const": "fs:allow-picture-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`",
+ "type": "string",
+ "const": "fs:allow-picture-write",
+ "markdownDescription": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`",
+ "type": "string",
+ "const": "fs:allow-picture-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`",
+ "type": "string",
+ "const": "fs:allow-public-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`",
+ "type": "string",
+ "const": "fs:allow-public-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`",
+ "type": "string",
+ "const": "fs:allow-public-read",
+ "markdownDescription": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`",
+ "type": "string",
+ "const": "fs:allow-public-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`",
+ "type": "string",
+ "const": "fs:allow-public-write",
+ "markdownDescription": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`",
+ "type": "string",
+ "const": "fs:allow-public-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`",
+ "type": "string",
+ "const": "fs:allow-resource-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`",
+ "type": "string",
+ "const": "fs:allow-resource-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`",
+ "type": "string",
+ "const": "fs:allow-resource-read",
+ "markdownDescription": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`",
+ "type": "string",
+ "const": "fs:allow-resource-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`",
+ "type": "string",
+ "const": "fs:allow-resource-write",
+ "markdownDescription": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`",
+ "type": "string",
+ "const": "fs:allow-resource-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`",
+ "type": "string",
+ "const": "fs:allow-runtime-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`",
+ "type": "string",
+ "const": "fs:allow-runtime-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`",
+ "type": "string",
+ "const": "fs:allow-runtime-read",
+ "markdownDescription": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`",
+ "type": "string",
+ "const": "fs:allow-runtime-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`",
+ "type": "string",
+ "const": "fs:allow-runtime-write",
+ "markdownDescription": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`",
+ "type": "string",
+ "const": "fs:allow-runtime-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`",
+ "type": "string",
+ "const": "fs:allow-temp-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`",
+ "type": "string",
+ "const": "fs:allow-temp-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`",
+ "type": "string",
+ "const": "fs:allow-temp-read",
+ "markdownDescription": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`",
+ "type": "string",
+ "const": "fs:allow-temp-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`",
+ "type": "string",
+ "const": "fs:allow-temp-write",
+ "markdownDescription": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`",
+ "type": "string",
+ "const": "fs:allow-temp-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`",
+ "type": "string",
+ "const": "fs:allow-template-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`",
+ "type": "string",
+ "const": "fs:allow-template-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`",
+ "type": "string",
+ "const": "fs:allow-template-read",
+ "markdownDescription": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`",
+ "type": "string",
+ "const": "fs:allow-template-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`",
+ "type": "string",
+ "const": "fs:allow-template-write",
+ "markdownDescription": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`",
+ "type": "string",
+ "const": "fs:allow-template-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`",
+ "type": "string",
+ "const": "fs:allow-video-meta",
+ "markdownDescription": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`"
+ },
+ {
+ "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`",
+ "type": "string",
+ "const": "fs:allow-video-meta-recursive",
+ "markdownDescription": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`"
+ },
+ {
+ "description": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`",
+ "type": "string",
+ "const": "fs:allow-video-read",
+ "markdownDescription": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`"
+ },
+ {
+ "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`",
+ "type": "string",
+ "const": "fs:allow-video-read-recursive",
+ "markdownDescription": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`"
+ },
+ {
+ "description": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`",
+ "type": "string",
+ "const": "fs:allow-video-write",
+ "markdownDescription": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`"
+ },
+ {
+ "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`",
+ "type": "string",
+ "const": "fs:allow-video-write-recursive",
+ "markdownDescription": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`"
+ },
+ {
+ "description": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`",
+ "type": "string",
+ "const": "fs:deny-default",
+ "markdownDescription": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`"
+ },
+ {
+ "description": "Enables the copy_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-copy-file",
+ "markdownDescription": "Enables the copy_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the create command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-create",
+ "markdownDescription": "Enables the create command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the exists command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-exists",
+ "markdownDescription": "Enables the exists command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the fstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-fstat",
+ "markdownDescription": "Enables the fstat command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the ftruncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-ftruncate",
+ "markdownDescription": "Enables the ftruncate command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the lstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-lstat",
+ "markdownDescription": "Enables the lstat command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the mkdir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-mkdir",
+ "markdownDescription": "Enables the mkdir command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the open command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-open",
+ "markdownDescription": "Enables the open command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read",
+ "markdownDescription": "Enables the read command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-dir",
+ "markdownDescription": "Enables the read_dir command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-file",
+ "markdownDescription": "Enables the read_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-text-file",
+ "markdownDescription": "Enables the read_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text_file_lines command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-text-file-lines",
+ "markdownDescription": "Enables the read_text_file_lines command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the read_text_file_lines_next command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-read-text-file-lines-next",
+ "markdownDescription": "Enables the read_text_file_lines_next command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-remove",
+ "markdownDescription": "Enables the remove command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the rename command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-rename",
+ "markdownDescription": "Enables the rename command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the seek command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-seek",
+ "markdownDescription": "Enables the seek command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the size command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-size",
+ "markdownDescription": "Enables the size command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the start_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-start-accessing-security-scoped-resource",
+ "markdownDescription": "Enables the start_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the stat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-stat",
+ "markdownDescription": "Enables the stat command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the stop_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-stop-accessing-security-scoped-resource",
+ "markdownDescription": "Enables the stop_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the truncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-truncate",
+ "markdownDescription": "Enables the truncate command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unwatch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-unwatch",
+ "markdownDescription": "Enables the unwatch command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the watch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-watch",
+ "markdownDescription": "Enables the watch command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-write",
+ "markdownDescription": "Enables the write command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-write-file",
+ "markdownDescription": "Enables the write_file command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the write_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:allow-write-text-file",
+ "markdownDescription": "Enables the write_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "This permissions allows to create the application specific directories.\n",
+ "type": "string",
+ "const": "fs:create-app-specific-dirs",
+ "markdownDescription": "This permissions allows to create the application specific directories.\n"
+ },
+ {
+ "description": "Denies the copy_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-copy-file",
+ "markdownDescription": "Denies the copy_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-create",
+ "markdownDescription": "Denies the create command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the exists command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-exists",
+ "markdownDescription": "Denies the exists command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the fstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-fstat",
+ "markdownDescription": "Denies the fstat command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the ftruncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-ftruncate",
+ "markdownDescription": "Denies the ftruncate command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the lstat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-lstat",
+ "markdownDescription": "Denies the lstat command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the mkdir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-mkdir",
+ "markdownDescription": "Denies the mkdir command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the open command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-open",
+ "markdownDescription": "Denies the open command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read",
+ "markdownDescription": "Denies the read command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-dir",
+ "markdownDescription": "Denies the read_dir command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-file",
+ "markdownDescription": "Denies the read_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-text-file",
+ "markdownDescription": "Denies the read_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text_file_lines command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-text-file-lines",
+ "markdownDescription": "Denies the read_text_file_lines command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the read_text_file_lines_next command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-read-text-file-lines-next",
+ "markdownDescription": "Denies the read_text_file_lines_next command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-remove",
+ "markdownDescription": "Denies the remove command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the rename command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-rename",
+ "markdownDescription": "Denies the rename command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the seek command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-seek",
+ "markdownDescription": "Denies the seek command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the size command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-size",
+ "markdownDescription": "Denies the size command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the start_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-start-accessing-security-scoped-resource",
+ "markdownDescription": "Denies the start_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the stat command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-stat",
+ "markdownDescription": "Denies the stat command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the stop_accessing_security_scoped_resource command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-stop-accessing-security-scoped-resource",
+ "markdownDescription": "Denies the stop_accessing_security_scoped_resource command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the truncate command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-truncate",
+ "markdownDescription": "Denies the truncate command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unwatch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-unwatch",
+ "markdownDescription": "Denies the unwatch command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the watch command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-watch",
+ "markdownDescription": "Denies the watch command without any pre-configured scope."
+ },
+ {
+ "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",
+ "markdownDescription": "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."
+ },
+ {
+ "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",
+ "markdownDescription": "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."
+ },
+ {
+ "description": "Denies the write command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-write",
+ "markdownDescription": "Denies the write command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-write-file",
+ "markdownDescription": "Denies the write_file command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the write_text_file command without any pre-configured scope.",
+ "type": "string",
+ "const": "fs:deny-write-text-file",
+ "markdownDescription": "Denies the write_text_file command without any pre-configured scope."
+ },
+ {
+ "description": "This enables all read related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-all",
+ "markdownDescription": "This enables all read related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n",
+ "type": "string",
+ "const": "fs:read-app-specific-dirs-recursive",
+ "markdownDescription": "This permission allows recursive read functionality on the application\nspecific base directories. \n"
+ },
+ {
+ "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-dirs",
+ "markdownDescription": "This enables directory read and file metadata related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This enables file read related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-files",
+ "markdownDescription": "This enables file read related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This enables all index or metadata related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:read-meta",
+ "markdownDescription": "This enables all index or metadata related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "An empty permission you can use to modify the global scope.\n\n## Example\n\n```json\n{\n \"identifier\": \"read-documents\",\n \"windows\": [\"main\"],\n \"permissions\": [\n \"fs:allow-read\",\n {\n \"identifier\": \"fs:scope\",\n \"allow\": [\n \"$APPDATA/documents/**/*\"\n ],\n \"deny\": [\n \"$APPDATA/documents/secret.txt\"\n ]\n }\n ]\n}\n```\n",
+ "type": "string",
+ "const": "fs:scope",
+ "markdownDescription": "An empty permission you can use to modify the global scope.\n\n## Example\n\n```json\n{\n \"identifier\": \"read-documents\",\n \"windows\": [\"main\"],\n \"permissions\": [\n \"fs:allow-read\",\n {\n \"identifier\": \"fs:scope\",\n \"allow\": [\n \"$APPDATA/documents/**/*\"\n ],\n \"deny\": [\n \"$APPDATA/documents/secret.txt\"\n ]\n }\n ]\n}\n```\n"
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the application folders."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the application directories.",
+ "type": "string",
+ "const": "fs:scope-app-index",
+ "markdownDescription": "This scope permits to list all files and folders in the application directories."
+ },
+ {
+ "description": "This scope permits recursive access to the complete application folders, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-app-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete application folders, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.",
+ "type": "string",
+ "const": "fs:scope-appcache-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPCACHE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-appcache-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.",
+ "type": "string",
+ "const": "fs:scope-appconfig-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPCONFIG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-appconfig-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPDATA`folder.",
+ "type": "string",
+ "const": "fs:scope-appdata-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPDATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-appdata-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.",
+ "type": "string",
+ "const": "fs:scope-applocaldata-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-applocaldata-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$APPLOG`folder.",
+ "type": "string",
+ "const": "fs:scope-applog-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$APPLOG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-applog-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$AUDIO`folder.",
+ "type": "string",
+ "const": "fs:scope-audio-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$AUDIO`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-audio-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$CACHE`folder.",
+ "type": "string",
+ "const": "fs:scope-cache-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$CACHE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-cache-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$CONFIG`folder.",
+ "type": "string",
+ "const": "fs:scope-config-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$CONFIG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-config-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DATA`folder.",
+ "type": "string",
+ "const": "fs:scope-data-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-data-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.",
+ "type": "string",
+ "const": "fs:scope-desktop-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DESKTOP`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-desktop-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.",
+ "type": "string",
+ "const": "fs:scope-document-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DOCUMENT`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-document-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.",
+ "type": "string",
+ "const": "fs:scope-download-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$DOWNLOAD`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-download-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$EXE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$EXE`folder.",
+ "type": "string",
+ "const": "fs:scope-exe-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$EXE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-exe-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$FONT` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$FONT`folder.",
+ "type": "string",
+ "const": "fs:scope-font-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$FONT`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-font-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$HOME` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$HOME`folder.",
+ "type": "string",
+ "const": "fs:scope-home-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$HOME`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-home-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.",
+ "type": "string",
+ "const": "fs:scope-localdata-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$LOCALDATA`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-localdata-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOG` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$LOG`folder.",
+ "type": "string",
+ "const": "fs:scope-log-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$LOG`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-log-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$PICTURE`folder.",
+ "type": "string",
+ "const": "fs:scope-picture-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$PICTURE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-picture-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.",
+ "type": "string",
+ "const": "fs:scope-public-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$PUBLIC`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-public-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.",
+ "type": "string",
+ "const": "fs:scope-resource-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$RESOURCE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-resource-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.",
+ "type": "string",
+ "const": "fs:scope-runtime-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$RUNTIME`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-runtime-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$TEMP`folder.",
+ "type": "string",
+ "const": "fs:scope-temp-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$TEMP`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-temp-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.",
+ "type": "string",
+ "const": "fs:scope-template-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$TEMPLATE`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-template-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files."
+ },
+ {
+ "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",
+ "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder."
+ },
+ {
+ "description": "This scope permits to list all files and folders in the `$VIDEO`folder.",
+ "type": "string",
+ "const": "fs:scope-video-index",
+ "markdownDescription": "This scope permits to list all files and folders in the `$VIDEO`folder."
+ },
+ {
+ "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.",
+ "type": "string",
+ "const": "fs:scope-video-recursive",
+ "markdownDescription": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files."
+ },
+ {
+ "description": "This enables all write related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:write-all",
+ "markdownDescription": "This enables all write related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "This enables all file write related commands without any pre-configured accessible paths.",
+ "type": "string",
+ "const": "fs:write-files",
+ "markdownDescription": "This enables all file write related commands without any pre-configured accessible paths."
+ },
+ {
+ "description": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n",
+ "type": "string",
+ "const": "global-shortcut:default",
+ "markdownDescription": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n"
+ },
+ {
+ "description": "Enables the is_registered command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:allow-is-registered",
+ "markdownDescription": "Enables the is_registered command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the register command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:allow-register",
+ "markdownDescription": "Enables the register command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the register_all command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:allow-register-all",
+ "markdownDescription": "Enables the register_all command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unregister command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:allow-unregister",
+ "markdownDescription": "Enables the unregister command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the unregister_all command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:allow-unregister-all",
+ "markdownDescription": "Enables the unregister_all command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the is_registered command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:deny-is-registered",
+ "markdownDescription": "Denies the is_registered command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the register command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:deny-register",
+ "markdownDescription": "Denies the register command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the register_all command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:deny-register-all",
+ "markdownDescription": "Denies the register_all command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unregister command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:deny-unregister",
+ "markdownDescription": "Denies the unregister command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the unregister_all command without any pre-configured scope.",
+ "type": "string",
+ "const": "global-shortcut:deny-unregister-all",
+ "markdownDescription": "Denies the unregister_all command without any pre-configured scope."
+ },
+ {
+ "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`",
+ "type": "string",
+ "const": "opener:default",
+ "markdownDescription": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`"
+ },
+ {
+ "description": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.",
+ "type": "string",
+ "const": "opener:allow-default-urls",
+ "markdownDescription": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application."
+ },
+ {
+ "description": "Enables the open_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:allow-open-path",
+ "markdownDescription": "Enables the open_path command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the open_url command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:allow-open-url",
+ "markdownDescription": "Enables the open_url command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the reveal_item_in_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:allow-reveal-item-in-dir",
+ "markdownDescription": "Enables the reveal_item_in_dir command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the open_path command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:deny-open-path",
+ "markdownDescription": "Denies the open_path command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the open_url command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:deny-open-url",
+ "markdownDescription": "Denies the open_url command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the reveal_item_in_dir command without any pre-configured scope.",
+ "type": "string",
+ "const": "opener:deny-reveal-item-in-dir",
+ "markdownDescription": "Denies the reveal_item_in_dir command without any pre-configured scope."
+ },
+ {
+ "description": "### Default Permissions\n\nThis permission set configures what kind of\ndatabase operations are available from the sql plugin.\n\n### Granted Permissions\n\nAll reading related operations are enabled.\nAlso allows to load or close a connection.\n\n\n#### This default permission set includes:\n\n- `allow-close`\n- `allow-load`\n- `allow-select`",
+ "type": "string",
+ "const": "sql:default",
+ "markdownDescription": "### Default Permissions\n\nThis permission set configures what kind of\ndatabase operations are available from the sql plugin.\n\n### Granted Permissions\n\nAll reading related operations are enabled.\nAlso allows to load or close a connection.\n\n\n#### This default permission set includes:\n\n- `allow-close`\n- `allow-load`\n- `allow-select`"
+ },
+ {
+ "description": "Enables the close command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:allow-close",
+ "markdownDescription": "Enables the close command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the execute command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:allow-execute",
+ "markdownDescription": "Enables the execute command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the load command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:allow-load",
+ "markdownDescription": "Enables the load command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the select command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:allow-select",
+ "markdownDescription": "Enables the select command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the close command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:deny-close",
+ "markdownDescription": "Denies the close command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the execute command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:deny-execute",
+ "markdownDescription": "Denies the execute command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the load command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:deny-load",
+ "markdownDescription": "Denies the load command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the select command without any pre-configured scope.",
+ "type": "string",
+ "const": "sql:deny-select",
+ "markdownDescription": "Denies the select command without any pre-configured scope."
+ },
+ {
+ "description": "This permission set configures what kind of\noperations are available from the store plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n\n#### This default permission set includes:\n\n- `allow-load`\n- `allow-get-store`\n- `allow-set`\n- `allow-get`\n- `allow-has`\n- `allow-delete`\n- `allow-clear`\n- `allow-reset`\n- `allow-keys`\n- `allow-values`\n- `allow-entries`\n- `allow-length`\n- `allow-reload`\n- `allow-save`",
+ "type": "string",
+ "const": "store:default",
+ "markdownDescription": "This permission set configures what kind of\noperations are available from the store plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n\n#### This default permission set includes:\n\n- `allow-load`\n- `allow-get-store`\n- `allow-set`\n- `allow-get`\n- `allow-has`\n- `allow-delete`\n- `allow-clear`\n- `allow-reset`\n- `allow-keys`\n- `allow-values`\n- `allow-entries`\n- `allow-length`\n- `allow-reload`\n- `allow-save`"
+ },
+ {
+ "description": "Enables the clear command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-clear",
+ "markdownDescription": "Enables the clear command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the delete command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-delete",
+ "markdownDescription": "Enables the delete command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the entries command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-entries",
+ "markdownDescription": "Enables the entries command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the get command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-get",
+ "markdownDescription": "Enables the get command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the get_store command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-get-store",
+ "markdownDescription": "Enables the get_store command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the has command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-has",
+ "markdownDescription": "Enables the has command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the keys command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-keys",
+ "markdownDescription": "Enables the keys command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the length command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-length",
+ "markdownDescription": "Enables the length command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the load command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-load",
+ "markdownDescription": "Enables the load command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the reload command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-reload",
+ "markdownDescription": "Enables the reload command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the reset command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-reset",
+ "markdownDescription": "Enables the reset command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the save command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-save",
+ "markdownDescription": "Enables the save command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the set command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-set",
+ "markdownDescription": "Enables the set command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the values command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:allow-values",
+ "markdownDescription": "Enables the values command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the clear command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-clear",
+ "markdownDescription": "Denies the clear command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the delete command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-delete",
+ "markdownDescription": "Denies the delete command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the entries command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-entries",
+ "markdownDescription": "Denies the entries command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-get",
+ "markdownDescription": "Denies the get command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get_store command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-get-store",
+ "markdownDescription": "Denies the get_store command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the has command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-has",
+ "markdownDescription": "Denies the has command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the keys command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-keys",
+ "markdownDescription": "Denies the keys command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the length command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-length",
+ "markdownDescription": "Denies the length command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the load command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-load",
+ "markdownDescription": "Denies the load command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the reload command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-reload",
+ "markdownDescription": "Denies the reload command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the reset command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-reset",
+ "markdownDescription": "Denies the reset command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the save command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-save",
+ "markdownDescription": "Denies the save command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the set command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-set",
+ "markdownDescription": "Denies the set command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the values command without any pre-configured scope.",
+ "type": "string",
+ "const": "store:deny-values",
+ "markdownDescription": "Denies the values command without any pre-configured scope."
+ },
+ {
+ "description": "This permission set configures what kind of\noperations are available from the stronghold plugin.\n\n#### Granted Permissions\n\nAll non-destructive operations are enabled by default.\n\n\n#### This default permission set includes:\n\n- `allow-create-client`\n- `allow-get-store-record`\n- `allow-initialize`\n- `allow-execute-procedure`\n- `allow-load-client`\n- `allow-save-secret`\n- `allow-save-store-record`\n- `allow-save`",
+ "type": "string",
+ "const": "stronghold:default",
+ "markdownDescription": "This permission set configures what kind of\noperations are available from the stronghold plugin.\n\n#### Granted Permissions\n\nAll non-destructive operations are enabled by default.\n\n\n#### This default permission set includes:\n\n- `allow-create-client`\n- `allow-get-store-record`\n- `allow-initialize`\n- `allow-execute-procedure`\n- `allow-load-client`\n- `allow-save-secret`\n- `allow-save-store-record`\n- `allow-save`"
+ },
+ {
+ "description": "Enables the create_client command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-create-client",
+ "markdownDescription": "Enables the create_client command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the destroy command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-destroy",
+ "markdownDescription": "Enables the destroy command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the execute_procedure command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-execute-procedure",
+ "markdownDescription": "Enables the execute_procedure command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the get_store_record command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-get-store-record",
+ "markdownDescription": "Enables the get_store_record command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the initialize command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-initialize",
+ "markdownDescription": "Enables the initialize command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the load_client command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-load-client",
+ "markdownDescription": "Enables the load_client command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove_secret command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-remove-secret",
+ "markdownDescription": "Enables the remove_secret command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the remove_store_record command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-remove-store-record",
+ "markdownDescription": "Enables the remove_store_record command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the save command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-save",
+ "markdownDescription": "Enables the save command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the save_secret command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-save-secret",
+ "markdownDescription": "Enables the save_secret command without any pre-configured scope."
+ },
+ {
+ "description": "Enables the save_store_record command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:allow-save-store-record",
+ "markdownDescription": "Enables the save_store_record command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the create_client command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-create-client",
+ "markdownDescription": "Denies the create_client command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the destroy command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-destroy",
+ "markdownDescription": "Denies the destroy command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the execute_procedure command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-execute-procedure",
+ "markdownDescription": "Denies the execute_procedure command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the get_store_record command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-get-store-record",
+ "markdownDescription": "Denies the get_store_record command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the initialize command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-initialize",
+ "markdownDescription": "Denies the initialize command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the load_client command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-load-client",
+ "markdownDescription": "Denies the load_client command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove_secret command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-remove-secret",
+ "markdownDescription": "Denies the remove_secret command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the remove_store_record command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-remove-store-record",
+ "markdownDescription": "Denies the remove_store_record command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the save command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-save",
+ "markdownDescription": "Denies the save command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the save_secret command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-save-secret",
+ "markdownDescription": "Denies the save_secret command without any pre-configured scope."
+ },
+ {
+ "description": "Denies the save_store_record command without any pre-configured scope.",
+ "type": "string",
+ "const": "stronghold:deny-save-store-record",
+ "markdownDescription": "Denies the save_store_record command without any pre-configured scope."
+ }
+ ]
+ },
+ "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"
+ ]
+ }
+ ]
+ },
+ "Application": {
+ "description": "Opener scope application.",
+ "anyOf": [
+ {
+ "description": "Open in default application.",
+ "type": "null"
+ },
+ {
+ "description": "If true, allow open with any application.",
+ "type": "boolean"
+ },
+ {
+ "description": "Allow specific application to open with.",
+ "type": "string"
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/src-tauri/icons/README.md b/src-tauri/icons/README.md
index d3d208236317ea243ce90342121e085ae6f95170..481c9be5eb8f153cd94154245718cf6edd46d5dc 100644
--- a/src-tauri/icons/README.md
+++ b/src-tauri/icons/README.md
@@ -1 +1 @@
-Add generated Tauri icon assets here before packaging (`pnpm tauri icon`).
+Add generated Tauri icon assets here before packaging (`pnpm tauri icon`).
diff --git a/src-tauri/migrations/001_phase0_init.sql b/src-tauri/migrations/001_phase0_init.sql
index dafc084a373f5b3d681752fcb53f4a54ac2cc447..15e4402230abcb8891c9a871d97c7a04128bdba5 100644
--- a/src-tauri/migrations/001_phase0_init.sql
+++ b/src-tauri/migrations/001_phase0_init.sql
@@ -1,21 +1,21 @@
-CREATE TABLE IF NOT EXISTS app_meta (
- key TEXT PRIMARY KEY NOT NULL,
- value TEXT NOT NULL,
- updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
-);
-
-CREATE TABLE IF NOT EXISTS settings (
- key TEXT PRIMARY KEY NOT NULL,
- value_json TEXT NOT NULL,
- updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
-);
-
-CREATE TABLE IF NOT EXISTS workspaces (
- id TEXT PRIMARY KEY NOT NULL,
- name TEXT NOT NULL,
- accent TEXT NOT NULL DEFAULT '#C49A3C',
- created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
- updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
-);
-
-INSERT OR IGNORE INTO app_meta (key, value) VALUES ('schema_version', '1');
+CREATE TABLE IF NOT EXISTS app_meta (
+ key TEXT PRIMARY KEY NOT NULL,
+ value TEXT NOT NULL,
+ updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE TABLE IF NOT EXISTS settings (
+ key TEXT PRIMARY KEY NOT NULL,
+ value_json TEXT NOT NULL,
+ updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE TABLE IF NOT EXISTS workspaces (
+ id TEXT PRIMARY KEY NOT NULL,
+ name TEXT NOT NULL,
+ accent TEXT NOT NULL DEFAULT '#C49A3C',
+ created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+INSERT OR IGNORE INTO app_meta (key, value) VALUES ('schema_version', '1');
diff --git a/src-tauri/migrations/002_phase3_tables.sql b/src-tauri/migrations/002_phase3_tables.sql
index dcf06ead29bed3c6a979f70f3685f2a398dc7418..a89370cf22039c7adc4f9c62107652960cf1a829 100644
--- a/src-tauri/migrations/002_phase3_tables.sql
+++ b/src-tauri/migrations/002_phase3_tables.sql
@@ -1,94 +1,94 @@
--- Library items table
-CREATE TABLE IF NOT EXISTS library_items (
- id TEXT PRIMARY KEY NOT NULL,
- url TEXT NOT NULL,
- source_url TEXT NOT NULL DEFAULT '',
- title TEXT NOT NULL DEFAULT 'Untitled',
- hash TEXT NOT NULL,
- width INTEGER NOT NULL DEFAULT 0,
- height INTEGER NOT NULL DEFAULT 0,
- colors TEXT NOT NULL DEFAULT '[]',
- tags TEXT NOT NULL DEFAULT '[]',
- notes TEXT NOT NULL DEFAULT '',
- created_at INTEGER NOT NULL DEFAULT 0
-);
-
-CREATE UNIQUE INDEX IF NOT EXISTS idx_library_hash ON library_items(hash);
-
--- FTS5 for library search
-CREATE VIRTUAL TABLE IF NOT EXISTS library_fts USING fts5(
- title, tags, notes, source_url,
- content='library_items',
- content_rowid='rowid'
-);
-
--- Board items table
-CREATE TABLE IF NOT EXISTS board_items (
- id TEXT PRIMARY KEY NOT NULL,
- kind TEXT NOT NULL DEFAULT 'image',
- library_id TEXT,
- text TEXT,
- colors TEXT NOT NULL DEFAULT '[]',
- x REAL NOT NULL DEFAULT 0,
- y REAL NOT NULL DEFAULT 0,
- w REAL NOT NULL DEFAULT 200,
- h REAL NOT NULL DEFAULT 200,
- z INTEGER NOT NULL DEFAULT 0
-);
-
--- Sessions
-CREATE TABLE IF NOT EXISTS sessions (
- id TEXT PRIMARY KEY NOT NULL,
- name TEXT NOT NULL,
- tabs TEXT NOT NULL DEFAULT '[]',
- created_at INTEGER NOT NULL DEFAULT 0
-);
-
--- Downloads
-CREATE TABLE IF NOT EXISTS downloads (
- id TEXT PRIMARY KEY NOT NULL,
- url TEXT NOT NULL,
- filename TEXT NOT NULL DEFAULT '',
- status TEXT NOT NULL DEFAULT 'pending',
- saved_to_library INTEGER NOT NULL DEFAULT 0,
- created_at INTEGER NOT NULL DEFAULT 0
-);
-
--- Credentials index (passwords stored in Stronghold, only metadata here)
-CREATE TABLE IF NOT EXISTS credentials (
- id TEXT PRIMARY KEY NOT NULL,
- domain TEXT NOT NULL,
- username TEXT NOT NULL,
- vault_key TEXT NOT NULL,
- label TEXT NOT NULL DEFAULT '',
- last_used INTEGER NOT NULL DEFAULT 0,
- created_at INTEGER NOT NULL DEFAULT 0
-);
-
-CREATE INDEX IF NOT EXISTS idx_credentials_domain ON credentials(domain);
-
--- Adblock user rules
-CREATE TABLE IF NOT EXISTS adblock_user_rules (
- id TEXT PRIMARY KEY NOT NULL,
- rule_text TEXT NOT NULL,
- enabled INTEGER NOT NULL DEFAULT 1,
- comment TEXT NOT NULL DEFAULT '',
- created_at INTEGER NOT NULL DEFAULT 0
-);
-
--- Adblock subscriptions
-CREATE TABLE IF NOT EXISTS adblock_subscriptions (
- id TEXT PRIMARY KEY NOT NULL,
- name TEXT NOT NULL,
- url TEXT NOT NULL UNIQUE,
- enabled INTEGER NOT NULL DEFAULT 1,
- last_updated INTEGER NOT NULL DEFAULT 0,
- is_builtin INTEGER NOT NULL DEFAULT 0
-);
-
-INSERT OR IGNORE INTO adblock_subscriptions (id, name, url, enabled, is_builtin) VALUES
-('easylist', 'EasyList', 'https://easylist.to/easylist/easylist.txt', 1, 1),
-('easyprivacy', 'EasyPrivacy', 'https://easylist.to/easylist/easyprivacy.txt', 1, 1),
-('fanboy', 'Fanboy Annoyances', 'https://secure.fanboy.co.nz/fanboy-annoyance.txt', 1, 1),
-('ublock', 'uBlock Filters', 'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt', 1, 1),
-('peter-lowe', 'Peter Lowe', 'https://pgl.yoyo.org/adservers/serverlist.php?mimetype=plaintext', 1, 1);
+-- Library items table
+CREATE TABLE IF NOT EXISTS library_items (
+ id TEXT PRIMARY KEY NOT NULL,
+ url TEXT NOT NULL,
+ source_url TEXT NOT NULL DEFAULT '',
+ title TEXT NOT NULL DEFAULT 'Untitled',
+ hash TEXT NOT NULL,
+ width INTEGER NOT NULL DEFAULT 0,
+ height INTEGER NOT NULL DEFAULT 0,
+ colors TEXT NOT NULL DEFAULT '[]',
+ tags TEXT NOT NULL DEFAULT '[]',
+ notes TEXT NOT NULL DEFAULT '',
+ created_at INTEGER NOT NULL DEFAULT 0
+);
+
+CREATE UNIQUE INDEX IF NOT EXISTS idx_library_hash ON library_items(hash);
+
+-- FTS5 for library search
+CREATE VIRTUAL TABLE IF NOT EXISTS library_fts USING fts5(
+ title, tags, notes, source_url,
+ content='library_items',
+ content_rowid='rowid'
+);
+
+-- Board items table
+CREATE TABLE IF NOT EXISTS board_items (
+ id TEXT PRIMARY KEY NOT NULL,
+ kind TEXT NOT NULL DEFAULT 'image',
+ library_id TEXT,
+ text TEXT,
+ colors TEXT NOT NULL DEFAULT '[]',
+ x REAL NOT NULL DEFAULT 0,
+ y REAL NOT NULL DEFAULT 0,
+ w REAL NOT NULL DEFAULT 200,
+ h REAL NOT NULL DEFAULT 200,
+ z INTEGER NOT NULL DEFAULT 0
+);
+
+-- Sessions
+CREATE TABLE IF NOT EXISTS sessions (
+ id TEXT PRIMARY KEY NOT NULL,
+ name TEXT NOT NULL,
+ tabs TEXT NOT NULL DEFAULT '[]',
+ created_at INTEGER NOT NULL DEFAULT 0
+);
+
+-- Downloads
+CREATE TABLE IF NOT EXISTS downloads (
+ id TEXT PRIMARY KEY NOT NULL,
+ url TEXT NOT NULL,
+ filename TEXT NOT NULL DEFAULT '',
+ status TEXT NOT NULL DEFAULT 'pending',
+ saved_to_library INTEGER NOT NULL DEFAULT 0,
+ created_at INTEGER NOT NULL DEFAULT 0
+);
+
+-- Credentials index (passwords stored in Stronghold, only metadata here)
+CREATE TABLE IF NOT EXISTS credentials (
+ id TEXT PRIMARY KEY NOT NULL,
+ domain TEXT NOT NULL,
+ username TEXT NOT NULL,
+ vault_key TEXT NOT NULL,
+ label TEXT NOT NULL DEFAULT '',
+ last_used INTEGER NOT NULL DEFAULT 0,
+ created_at INTEGER NOT NULL DEFAULT 0
+);
+
+CREATE INDEX IF NOT EXISTS idx_credentials_domain ON credentials(domain);
+
+-- Adblock user rules
+CREATE TABLE IF NOT EXISTS adblock_user_rules (
+ id TEXT PRIMARY KEY NOT NULL,
+ rule_text TEXT NOT NULL,
+ enabled INTEGER NOT NULL DEFAULT 1,
+ comment TEXT NOT NULL DEFAULT '',
+ created_at INTEGER NOT NULL DEFAULT 0
+);
+
+-- Adblock subscriptions
+CREATE TABLE IF NOT EXISTS adblock_subscriptions (
+ id TEXT PRIMARY KEY NOT NULL,
+ name TEXT NOT NULL,
+ url TEXT NOT NULL UNIQUE,
+ enabled INTEGER NOT NULL DEFAULT 1,
+ last_updated INTEGER NOT NULL DEFAULT 0,
+ is_builtin INTEGER NOT NULL DEFAULT 0
+);
+
+INSERT OR IGNORE INTO adblock_subscriptions (id, name, url, enabled, is_builtin) VALUES
+('easylist', 'EasyList', 'https://easylist.to/easylist/easylist.txt', 1, 1),
+('easyprivacy', 'EasyPrivacy', 'https://easylist.to/easylist/easyprivacy.txt', 1, 1),
+('fanboy', 'Fanboy Annoyances', 'https://secure.fanboy.co.nz/fanboy-annoyance.txt', 1, 1),
+('ublock', 'uBlock Filters', 'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt', 1, 1),
+('peter-lowe', 'Peter Lowe', 'https://pgl.yoyo.org/adservers/serverlist.php?mimetype=plaintext', 1, 1);
diff --git a/src-tauri/resources/filters/annoyances_mini.txt b/src-tauri/resources/filters/annoyances_mini.txt
index 1e8420504fd8158874ba3667769cb603f0ac3218..309f9f25ab0da320024fcf3de78c2fef5bf91197 100644
--- a/src-tauri/resources/filters/annoyances_mini.txt
+++ b/src-tauri/resources/filters/annoyances_mini.txt
@@ -1,20 +1,20 @@
-! Title: Muse Annoyances Mini (bundled subset)
-! Cookie consent auto-dismiss
-||onetrust.com^$third-party
-||cookielaw.org^$third-party
-||trustarc.com^$third-party
-||consensu.org^$third-party
-||cookiebot.com^$third-party
-||cookiepro.com^$third-party
-||iubenda.com^$third-party
-||termly.io^$third-party
-! Newsletter/signup popups
-||sumo.com^$third-party
-||privy.com^$third-party
-||optinmonster.com^$third-party
-||mailchimp.com^$third-party,image
-||convertkit.com^$third-party
-! Social widgets
-||platform.twitter.com/widgets^$third-party
-||connect.facebook.net/*/sdk.js^$third-party
-||apis.google.com/js/plusone^$third-party
+! Title: Muse Annoyances Mini (bundled subset)
+! Cookie consent auto-dismiss
+||onetrust.com^$third-party
+||cookielaw.org^$third-party
+||trustarc.com^$third-party
+||consensu.org^$third-party
+||cookiebot.com^$third-party
+||cookiepro.com^$third-party
+||iubenda.com^$third-party
+||termly.io^$third-party
+! Newsletter/signup popups
+||sumo.com^$third-party
+||privy.com^$third-party
+||optinmonster.com^$third-party
+||mailchimp.com^$third-party,image
+||convertkit.com^$third-party
+! Social widgets
+||platform.twitter.com/widgets^$third-party
+||connect.facebook.net/*/sdk.js^$third-party
+||apis.google.com/js/plusone^$third-party
diff --git a/src-tauri/resources/filters/easylist_mini.txt b/src-tauri/resources/filters/easylist_mini.txt
index 899a6744c257c37bd9116a4a7b2799652729f36a..3ea3a5139826d55cfa77ac1b90d427001659574d 100644
--- a/src-tauri/resources/filters/easylist_mini.txt
+++ b/src-tauri/resources/filters/easylist_mini.txt
@@ -1,51 +1,51 @@
-! Title: Muse EasyList Mini (bundled subset)
-! Compact version for instant startup. Full lists loaded via daily updater.
-||googlesyndication.com^
-||doubleclick.net^
-||google-analytics.com^
-||googletagmanager.com/gtag^$third-party
-||amazon-adsystem.com^
-||facebook.net/tr^
-||connect.facebook.net^$third-party
-||adnxs.com^
-||criteo.com^
-||outbrain.com^
-||taboola.com^
-||rubiconproject.com^
-||pubmatic.com^
-||openx.net^
-||moatads.com^
-||2mdn.net^
-||adsymptotic.com^
-||advertising.com^
-||scorecardresearch.com^
-||quantserve.com^
-||bluekai.com^
-||turn.com^
-||serving-sys.com^
-||bidswitch.net^
-||media.net^
-||casalemedia.com^
-||indexexchange.com^
-||mathtag.com^
-||adform.net^
-||eyeota.net^
-||sharethrough.com^
-||smartadserver.com^
-||rlcdn.com^
-||demdex.net^
-||agkn.com^
-||3lift.com^
-||33across.com^
-||liadm.com^
-||adsrvr.org^
-||contextweb.com^
-||everesttech.net^
-||krxd.net^
-||yieldmo.com^
-! Popular site-specific
-||pagead2.googlesyndication.com^
-||tpc.googlesyndication.com^
-||securepubads.g.doubleclick.net^
-||ad.doubleclick.net^
-||stats.g.doubleclick.net^
+! Title: Muse EasyList Mini (bundled subset)
+! Compact version for instant startup. Full lists loaded via daily updater.
+||googlesyndication.com^
+||doubleclick.net^
+||google-analytics.com^
+||googletagmanager.com/gtag^$third-party
+||amazon-adsystem.com^
+||facebook.net/tr^
+||connect.facebook.net^$third-party
+||adnxs.com^
+||criteo.com^
+||outbrain.com^
+||taboola.com^
+||rubiconproject.com^
+||pubmatic.com^
+||openx.net^
+||moatads.com^
+||2mdn.net^
+||adsymptotic.com^
+||advertising.com^
+||scorecardresearch.com^
+||quantserve.com^
+||bluekai.com^
+||turn.com^
+||serving-sys.com^
+||bidswitch.net^
+||media.net^
+||casalemedia.com^
+||indexexchange.com^
+||mathtag.com^
+||adform.net^
+||eyeota.net^
+||sharethrough.com^
+||smartadserver.com^
+||rlcdn.com^
+||demdex.net^
+||agkn.com^
+||3lift.com^
+||33across.com^
+||liadm.com^
+||adsrvr.org^
+||contextweb.com^
+||everesttech.net^
+||krxd.net^
+||yieldmo.com^
+! Popular site-specific
+||pagead2.googlesyndication.com^
+||tpc.googlesyndication.com^
+||securepubads.g.doubleclick.net^
+||ad.doubleclick.net^
+||stats.g.doubleclick.net^
diff --git a/src-tauri/resources/filters/easyprivacy_mini.txt b/src-tauri/resources/filters/easyprivacy_mini.txt
index 6b635dd6891789e20a310dfb87645545f9548a03..47e65b90bada9d222e464e9fa0b1e3d8fcc43ccc 100644
--- a/src-tauri/resources/filters/easyprivacy_mini.txt
+++ b/src-tauri/resources/filters/easyprivacy_mini.txt
@@ -1,28 +1,28 @@
-! Title: Muse EasyPrivacy Mini (bundled subset)
-||hotjar.com^
-||mixpanel.com^
-||segment.io^
-||segment.com^
-||amplitude.com^
-||fullstory.com^
-||heap-analytics.com^
-||crazyegg.com^
-||mouseflow.com^
-||clarity.ms^
-||newrelic.com^
-||nr-data.net^
-||sentry.io^$third-party
-||bugsnag.com^$third-party
-||rollbar.com^$third-party
-||optimizely.com^$third-party
-||branch.io^$third-party
-||appsflyer.com^
-||adjust.com^$third-party
-||app.link^$third-party
-||tealiumiq.com^
-||omtrdc.net^
-||2o7.net^
-||hit.gemius.pl^
-||chartbeat.com^$third-party
-||parsely.com^$third-party
-||pixel.wp.com^$third-party
+! Title: Muse EasyPrivacy Mini (bundled subset)
+||hotjar.com^
+||mixpanel.com^
+||segment.io^
+||segment.com^
+||amplitude.com^
+||fullstory.com^
+||heap-analytics.com^
+||crazyegg.com^
+||mouseflow.com^
+||clarity.ms^
+||newrelic.com^
+||nr-data.net^
+||sentry.io^$third-party
+||bugsnag.com^$third-party
+||rollbar.com^$third-party
+||optimizely.com^$third-party
+||branch.io^$third-party
+||appsflyer.com^
+||adjust.com^$third-party
+||app.link^$third-party
+||tealiumiq.com^
+||omtrdc.net^
+||2o7.net^
+||hit.gemius.pl^
+||chartbeat.com^$third-party
+||parsely.com^$third-party
+||pixel.wp.com^$third-party
diff --git a/src-tauri/resources/scriptlets/muse_ubo_compatible_scriptlets.js b/src-tauri/resources/scriptlets/muse_ubo_compatible_scriptlets.js
index d342bda6b53702fef82d03f6d1e648884946886b..3d49e4005fb529463c83d406dd5ba5add5a248d9 100644
--- a/src-tauri/resources/scriptlets/muse_ubo_compatible_scriptlets.js
+++ b/src-tauri/resources/scriptlets/muse_ubo_compatible_scriptlets.js
@@ -1,105 +1,105 @@
-/// json-prune.js
-(function() {
- 'use strict';
- const args = Array.from(arguments);
- const prunePaths = (args[0] || '').split(/\s+/).filter(Boolean);
- if (prunePaths.length === 0) return;
- function prune(obj, path) {
- if (!obj || typeof obj !== 'object') return;
- const parts = path.split('.');
- let target = obj;
- for (let i = 0; i < parts.length - 1; i++) {
- const part = parts[i];
- if (part.endsWith('[]')) {
- const key = part.slice(0, -2);
- if (Array.isArray(target[key])) {
- target[key].forEach(item => prune(item, parts.slice(i + 1).join('.')));
- }
- return;
- }
- if (!target[part]) return;
- target = target[part];
- }
- delete target[parts[parts.length - 1]];
- }
- function pruneAll(obj) { for (const p of prunePaths) prune(obj, p); return obj; }
- const jp = JSON.parse;
- JSON.parse = function() { return pruneAll(jp.apply(this, arguments)); };
- const rj = Response.prototype.json;
- Response.prototype.json = function() { return rj.apply(this, arguments).then(pruneAll); };
-})();
-
-/// set-constant.js
-(function() {
- 'use strict';
- const prop = arguments[0];
- const raw = arguments[1];
- if (!prop) return;
- let value;
- if (raw === 'undefined') value = undefined;
- else if (raw === 'false') value = false;
- else if (raw === 'true') value = true;
- else if (raw === 'null') value = null;
- else value = raw;
- const parts = prop.split('.');
- let obj = window;
- for (let i = 0; i < parts.length - 1; i++) {
- obj = obj[parts[i]] = obj[parts[i]] || {};
- }
- try {
- Object.defineProperty(obj, parts[parts.length - 1], { get: () => value, set: () => {}, configurable: true });
- } catch {}
-})();
-
-/// abort-current-script.js
-(function() {
- 'use strict';
- const needle = arguments[0] || '';
- const prop = arguments[1] || '';
- if (!needle && !prop) return;
- const re = new RegExp(needle);
- const oe = document.createElement.bind(document);
- document.createElement = function(tag) {
- const el = oe(tag);
- if (String(tag).toLowerCase() === 'script') {
- const set = el.setAttribute.bind(el);
- el.setAttribute = function(name, value) {
- if (name === 'src' && re.test(String(value))) return;
- return set(name, value);
- };
- }
- return el;
- };
-})();
-
-/// prevent-fetch.js
-(function() {
- 'use strict';
- const needle = arguments[0] || '';
- if (!needle) return;
- const re = new RegExp(needle);
- const of = window.fetch;
- window.fetch = function(input, init) {
- const url = typeof input === 'string' ? input : input && input.url || '';
- if (re.test(url)) return Promise.resolve(new Response('', { status: 204 }));
- return of.apply(this, arguments);
- };
-})();
-
-/// m3u8-prune.js
-(function() {
- 'use strict';
- const needle = arguments[0] || 'stitched-ad|advertisement|DATERANGE';
- const re = new RegExp(needle);
- const of = window.fetch;
- window.fetch = function(input, init) {
- const url = typeof input === 'string' ? input : input && input.url || '';
- return of.apply(this, arguments).then(resp => {
- if (!String(url).includes('.m3u8')) return resp;
- return resp.clone().text().then(text => {
- const out = text.split('\n').filter(line => !re.test(line)).join('\n');
- return new Response(out, { status: resp.status, headers: resp.headers });
- }).catch(() => resp);
- });
- };
-})();
+/// json-prune.js
+(function() {
+ 'use strict';
+ const args = Array.from(arguments);
+ const prunePaths = (args[0] || '').split(/\s+/).filter(Boolean);
+ if (prunePaths.length === 0) return;
+ function prune(obj, path) {
+ if (!obj || typeof obj !== 'object') return;
+ const parts = path.split('.');
+ let target = obj;
+ for (let i = 0; i < parts.length - 1; i++) {
+ const part = parts[i];
+ if (part.endsWith('[]')) {
+ const key = part.slice(0, -2);
+ if (Array.isArray(target[key])) {
+ target[key].forEach(item => prune(item, parts.slice(i + 1).join('.')));
+ }
+ return;
+ }
+ if (!target[part]) return;
+ target = target[part];
+ }
+ delete target[parts[parts.length - 1]];
+ }
+ function pruneAll(obj) { for (const p of prunePaths) prune(obj, p); return obj; }
+ const jp = JSON.parse;
+ JSON.parse = function() { return pruneAll(jp.apply(this, arguments)); };
+ const rj = Response.prototype.json;
+ Response.prototype.json = function() { return rj.apply(this, arguments).then(pruneAll); };
+})();
+
+/// set-constant.js
+(function() {
+ 'use strict';
+ const prop = arguments[0];
+ const raw = arguments[1];
+ if (!prop) return;
+ let value;
+ if (raw === 'undefined') value = undefined;
+ else if (raw === 'false') value = false;
+ else if (raw === 'true') value = true;
+ else if (raw === 'null') value = null;
+ else value = raw;
+ const parts = prop.split('.');
+ let obj = window;
+ for (let i = 0; i < parts.length - 1; i++) {
+ obj = obj[parts[i]] = obj[parts[i]] || {};
+ }
+ try {
+ Object.defineProperty(obj, parts[parts.length - 1], { get: () => value, set: () => {}, configurable: true });
+ } catch {}
+})();
+
+/// abort-current-script.js
+(function() {
+ 'use strict';
+ const needle = arguments[0] || '';
+ const prop = arguments[1] || '';
+ if (!needle && !prop) return;
+ const re = new RegExp(needle);
+ const oe = document.createElement.bind(document);
+ document.createElement = function(tag) {
+ const el = oe(tag);
+ if (String(tag).toLowerCase() === 'script') {
+ const set = el.setAttribute.bind(el);
+ el.setAttribute = function(name, value) {
+ if (name === 'src' && re.test(String(value))) return;
+ return set(name, value);
+ };
+ }
+ return el;
+ };
+})();
+
+/// prevent-fetch.js
+(function() {
+ 'use strict';
+ const needle = arguments[0] || '';
+ if (!needle) return;
+ const re = new RegExp(needle);
+ const of = window.fetch;
+ window.fetch = function(input, init) {
+ const url = typeof input === 'string' ? input : input && input.url || '';
+ if (re.test(url)) return Promise.resolve(new Response('', { status: 204 }));
+ return of.apply(this, arguments);
+ };
+})();
+
+/// m3u8-prune.js
+(function() {
+ 'use strict';
+ const needle = arguments[0] || 'stitched-ad|advertisement|DATERANGE';
+ const re = new RegExp(needle);
+ const of = window.fetch;
+ window.fetch = function(input, init) {
+ const url = typeof input === 'string' ? input : input && input.url || '';
+ return of.apply(this, arguments).then(resp => {
+ if (!String(url).includes('.m3u8')) return resp;
+ return resp.clone().text().then(text => {
+ const out = text.split('\n').filter(line => !re.test(line)).join('\n');
+ return new Response(out, { status: resp.status, headers: resp.headers });
+ }).catch(() => resp);
+ });
+ };
+})();
diff --git a/src-tauri/resources/scripts/adblock_layer1.js b/src-tauri/resources/scripts/adblock_layer1.js
index b191cfe3c069d7ee16d21f251a00d3928c7c55f2..a662350a15211ae2511938936fb4641ecbd18aa5 100644
--- a/src-tauri/resources/scripts/adblock_layer1.js
+++ b/src-tauri/resources/scripts/adblock_layer1.js
@@ -1,141 +1,141 @@
-(function() {
-'use strict';
-
-const blocked = new Set(window.__MUSE_BLOCKED_DOMAINS__ || []);
-
-function extractDomain(url) {
- try {
- const absolute = String(url || '').startsWith('http') ? String(url) : location.origin + String(url || '');
- return new URL(absolute).hostname.replace(/^www\./, '');
- } catch { return null; }
-}
-
-function isDomainBlocked(url) {
- if (!url || typeof url !== 'string') return false;
- const domain = extractDomain(url);
- if (!domain) return false;
- const parts = domain.split('.');
- for (let i = 0; i < parts.length - 1; i++) {
- if (blocked.has(parts.slice(i).join('.'))) return true;
- }
- return false;
-}
-
-function emptyResponseFor(url) {
- const type = String(url || '').toLowerCase();
- if (type.includes('.json') || type.includes('/api/') || type.includes('youtubei')) {
- return new Response('{}', { status: 200, headers: { 'Content-Type': 'application/json' } });
- }
- if (type.includes('.js')) {
- return new Response('/* blocked by Muse Shield */', { status: 200, headers: { 'Content-Type': 'application/javascript' } });
- }
- return new Response('', { status: 204 });
-}
-
-// Patch fetch
-const _fetch = window.fetch;
-window.fetch = function(input, init) {
- const url = typeof input === 'string' ? input : (input instanceof Request ? input.url : '');
- if (isDomainBlocked(url)) {
- return Promise.resolve(emptyResponseFor(url));
- }
- return _fetch.apply(this, arguments);
-};
-
-// Patch XMLHttpRequest
-const _xhrOpen = XMLHttpRequest.prototype.open;
-XMLHttpRequest.prototype.open = function(method, url) {
- this.__muse_blocked = isDomainBlocked(url);
- return _xhrOpen.apply(this, arguments);
-};
-const _xhrSend = XMLHttpRequest.prototype.send;
-XMLHttpRequest.prototype.send = function() {
- if (this.__muse_blocked) {
- Object.defineProperty(this, 'readyState', { get: () => 4 });
- Object.defineProperty(this, 'status', { get: () => 204 });
- Object.defineProperty(this, 'responseText', { get: () => '' });
- Object.defineProperty(this, 'response', { get: () => '' });
- if (typeof this.onload === 'function') setTimeout(() => this.onload(new Event('load')), 0);
- if (typeof this.onreadystatechange === 'function') setTimeout(() => this.onreadystatechange(new Event('readystatechange')), 0);
- return;
- }
- return _xhrSend.apply(this, arguments);
-};
-
-// Patch WebSocket
-const _WS = window.WebSocket;
-if (_WS) {
- window.WebSocket = function(url, protocols) {
- if (isDomainBlocked(url)) {
- return { readyState: 3, send() {}, close() {}, addEventListener() {}, removeEventListener() {} };
- }
- return new _WS(url, protocols);
- };
- Object.setPrototypeOf(window.WebSocket, _WS);
-}
-
-const placeholderSelectors = [
- '[id^="google_ads_iframe"]', '[id*="google_ads"]', '[id*="googleads"]',
- '[id*="doubleclick"]', '[id*="div-gpt-ad"]', '[id*="gpt_unit"]',
- '[class*="ad-slot"]', '[class*="adSlot"]', '[class*="ads-slot"]',
- '[class*="advert"]', '[class*="sponsor"]', '[class*="promoted"]',
- '[class*="ad-container"]', '[class*="ad_wrapper"]', '[class*="ad-wrapper"]',
- '[aria-label*="advertisement" i]', '[data-ad]', '[data-ad-unit]', '[data-ad-slot]',
- 'iframe[src*="doubleclick"]', 'iframe[src*="googlesyndication"]',
- 'iframe[src*="adnxs"]', 'iframe[src*="taboola"]', 'iframe[src*="outbrain"]',
- '.ytp-ad-module', '.ytp-ad-overlay-container', '#player-ads', '#masthead-ad',
- 'ytd-ad-slot-renderer', 'ytd-promoted-sparkles-web-renderer', 'ytd-display-ad-renderer',
- 'ytd-promoted-video-renderer', 'ytd-in-feed-ad-layout-renderer'
-];
-
-function hidePlaceholders(root = document) {
- try {
- for (const sel of placeholderSelectors) {
- root.querySelectorAll(sel).forEach(el => {
- el.style.setProperty('display', 'none', 'important');
- el.style.setProperty('visibility', 'hidden', 'important');
- el.setAttribute('data-muse-hidden-ad', 'true');
- });
- }
- // Collapse empty ad-shaped containers
- root.querySelectorAll('div, section, aside').forEach(el => {
- const id = (el.id || '').toLowerCase();
- const cls = (el.className || '').toString().toLowerCase();
- if ((/\bads?\b|advert|sponsor|promoted|dfp|gpt|taboola|outbrain/.test(id + ' ' + cls)) && el.offsetHeight < 260) {
- el.style.setProperty('display', 'none', 'important');
- }
- });
- } catch (_) {}
-}
-
-// Initial cosmetic cleanup
-if (document.documentElement) {
- const style = document.createElement('style');
- style.id = '__muse_generic_cosmetic';
- style.textContent = placeholderSelectors.join(',') + '{display:none!important;visibility:hidden!important;min-height:0!important;height:0!important}';
- document.documentElement.appendChild(style);
-}
-
-// Block tracking images/scripts/iframes added dynamically + cleanup placeholders
-const observer = new MutationObserver((mutations) => {
- for (const mutation of mutations) {
- for (const node of mutation.addedNodes) {
- if (node.nodeType !== 1) continue;
- if (node.tagName === 'SCRIPT' && node.src && isDomainBlocked(node.src)) { node.remove(); continue; }
- if (node.tagName === 'IMG' && node.src && isDomainBlocked(node.src)) {
- node.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';
- node.style.display = 'none'; continue;
- }
- if (node.tagName === 'IFRAME' && node.src && isDomainBlocked(node.src)) { node.remove(); continue; }
- hidePlaceholders(node);
- }
- }
-});
-
-function start() {
- hidePlaceholders();
- observer.observe(document.documentElement, { childList: true, subtree: true });
- setInterval(hidePlaceholders, 2000);
-}
-if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start, { once: true }); else start();
-})();
+(function() {
+'use strict';
+
+const blocked = new Set(window.__MUSE_BLOCKED_DOMAINS__ || []);
+
+function extractDomain(url) {
+ try {
+ const absolute = String(url || '').startsWith('http') ? String(url) : location.origin + String(url || '');
+ return new URL(absolute).hostname.replace(/^www\./, '');
+ } catch { return null; }
+}
+
+function isDomainBlocked(url) {
+ if (!url || typeof url !== 'string') return false;
+ const domain = extractDomain(url);
+ if (!domain) return false;
+ const parts = domain.split('.');
+ for (let i = 0; i < parts.length - 1; i++) {
+ if (blocked.has(parts.slice(i).join('.'))) return true;
+ }
+ return false;
+}
+
+function emptyResponseFor(url) {
+ const type = String(url || '').toLowerCase();
+ if (type.includes('.json') || type.includes('/api/') || type.includes('youtubei')) {
+ return new Response('{}', { status: 200, headers: { 'Content-Type': 'application/json' } });
+ }
+ if (type.includes('.js')) {
+ return new Response('/* blocked by Muse Shield */', { status: 200, headers: { 'Content-Type': 'application/javascript' } });
+ }
+ return new Response('', { status: 204 });
+}
+
+// Patch fetch
+const _fetch = window.fetch;
+window.fetch = function(input, init) {
+ const url = typeof input === 'string' ? input : (input instanceof Request ? input.url : '');
+ if (isDomainBlocked(url)) {
+ return Promise.resolve(emptyResponseFor(url));
+ }
+ return _fetch.apply(this, arguments);
+};
+
+// Patch XMLHttpRequest
+const _xhrOpen = XMLHttpRequest.prototype.open;
+XMLHttpRequest.prototype.open = function(method, url) {
+ this.__muse_blocked = isDomainBlocked(url);
+ return _xhrOpen.apply(this, arguments);
+};
+const _xhrSend = XMLHttpRequest.prototype.send;
+XMLHttpRequest.prototype.send = function() {
+ if (this.__muse_blocked) {
+ Object.defineProperty(this, 'readyState', { get: () => 4 });
+ Object.defineProperty(this, 'status', { get: () => 204 });
+ Object.defineProperty(this, 'responseText', { get: () => '' });
+ Object.defineProperty(this, 'response', { get: () => '' });
+ if (typeof this.onload === 'function') setTimeout(() => this.onload(new Event('load')), 0);
+ if (typeof this.onreadystatechange === 'function') setTimeout(() => this.onreadystatechange(new Event('readystatechange')), 0);
+ return;
+ }
+ return _xhrSend.apply(this, arguments);
+};
+
+// Patch WebSocket
+const _WS = window.WebSocket;
+if (_WS) {
+ window.WebSocket = function(url, protocols) {
+ if (isDomainBlocked(url)) {
+ return { readyState: 3, send() {}, close() {}, addEventListener() {}, removeEventListener() {} };
+ }
+ return new _WS(url, protocols);
+ };
+ Object.setPrototypeOf(window.WebSocket, _WS);
+}
+
+const placeholderSelectors = [
+ '[id^="google_ads_iframe"]', '[id*="google_ads"]', '[id*="googleads"]',
+ '[id*="doubleclick"]', '[id*="div-gpt-ad"]', '[id*="gpt_unit"]',
+ '[class*="ad-slot"]', '[class*="adSlot"]', '[class*="ads-slot"]',
+ '[class*="advert"]', '[class*="sponsor"]', '[class*="promoted"]',
+ '[class*="ad-container"]', '[class*="ad_wrapper"]', '[class*="ad-wrapper"]',
+ '[aria-label*="advertisement" i]', '[data-ad]', '[data-ad-unit]', '[data-ad-slot]',
+ 'iframe[src*="doubleclick"]', 'iframe[src*="googlesyndication"]',
+ 'iframe[src*="adnxs"]', 'iframe[src*="taboola"]', 'iframe[src*="outbrain"]',
+ '.ytp-ad-module', '.ytp-ad-overlay-container', '#player-ads', '#masthead-ad',
+ 'ytd-ad-slot-renderer', 'ytd-promoted-sparkles-web-renderer', 'ytd-display-ad-renderer',
+ 'ytd-promoted-video-renderer', 'ytd-in-feed-ad-layout-renderer'
+];
+
+function hidePlaceholders(root = document) {
+ try {
+ for (const sel of placeholderSelectors) {
+ root.querySelectorAll(sel).forEach(el => {
+ el.style.setProperty('display', 'none', 'important');
+ el.style.setProperty('visibility', 'hidden', 'important');
+ el.setAttribute('data-muse-hidden-ad', 'true');
+ });
+ }
+ // Collapse empty ad-shaped containers
+ root.querySelectorAll('div, section, aside').forEach(el => {
+ const id = (el.id || '').toLowerCase();
+ const cls = (el.className || '').toString().toLowerCase();
+ if ((/\bads?\b|advert|sponsor|promoted|dfp|gpt|taboola|outbrain/.test(id + ' ' + cls)) && el.offsetHeight < 260) {
+ el.style.setProperty('display', 'none', 'important');
+ }
+ });
+ } catch (_) {}
+}
+
+// Initial cosmetic cleanup
+if (document.documentElement) {
+ const style = document.createElement('style');
+ style.id = '__muse_generic_cosmetic';
+ style.textContent = placeholderSelectors.join(',') + '{display:none!important;visibility:hidden!important;min-height:0!important;height:0!important}';
+ document.documentElement.appendChild(style);
+}
+
+// Block tracking images/scripts/iframes added dynamically + cleanup placeholders
+const observer = new MutationObserver((mutations) => {
+ for (const mutation of mutations) {
+ for (const node of mutation.addedNodes) {
+ if (node.nodeType !== 1) continue;
+ if (node.tagName === 'SCRIPT' && node.src && isDomainBlocked(node.src)) { node.remove(); continue; }
+ if (node.tagName === 'IMG' && node.src && isDomainBlocked(node.src)) {
+ node.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';
+ node.style.display = 'none'; continue;
+ }
+ if (node.tagName === 'IFRAME' && node.src && isDomainBlocked(node.src)) { node.remove(); continue; }
+ hidePlaceholders(node);
+ }
+ }
+});
+
+function start() {
+ hidePlaceholders();
+ observer.observe(document.documentElement, { childList: true, subtree: true });
+ setInterval(hidePlaceholders, 2000);
+}
+if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start, { once: true }); else start();
+})();
diff --git a/src-tauri/resources/scripts/autofill_suppress.js b/src-tauri/resources/scripts/autofill_suppress.js
index fee9242683a1dfea76f033d6533aff5c924de3f4..0ccb110cf7cdc594ebd968c71d3a027ddc0769e1 100644
--- a/src-tauri/resources/scripts/autofill_suppress.js
+++ b/src-tauri/resources/scripts/autofill_suppress.js
@@ -1,71 +1,71 @@
-/**
- * Muse Autofill Suppression
- *
- * Disables native browser autofill (WebView2/WKWebView/WebKitGTK) so that
- * the Muse password vault is the only credential source for form fields.
- *
- * Why: System WebView engines may show their own password save/autofill UIs
- * which conflict with our Stronghold-backed vault. We suppress them by:
- * 1. Setting autocomplete="off" on all form/input elements
- * 2. Using autocomplete="new-password" on password fields (tells browsers not to autofill)
- * 3. Adding data-* attributes that third-party password managers check
- * 4. Intercepting dynamically created inputs via MutationObserver
- *
- * Platform notes:
- * - Windows WebView2: general_autofill_enabled(false) is also set via Rust builder.
- * Password save is already off by default (IsPasswordAutosaveEnabled=false).
- * - macOS WKWebView: No public API exists. This JS approach + the Rust
- * .general_autofill_enabled(false) builder call (noop on mac but future-proof).
- * - Linux WebKitGTK: No built-in password manager UI — this is purely defensive.
- */
-(function() {
- if (window.__museAutofillSuppressed) return;
- window.__museAutofillSuppressed = true;
-
- function suppress(el) {
- if (!el || !el.setAttribute) return;
- var tag = el.tagName;
- if (tag === 'FORM') {
- el.setAttribute('autocomplete', 'off');
- } else if (tag === 'INPUT') {
- var type = (el.type || '').toLowerCase();
- if (type === 'password') {
- // "new-password" tells browsers: don't autofill existing passwords
- el.setAttribute('autocomplete', 'new-password');
- } else if (type === 'email' || type === 'text' || type === 'tel') {
- el.setAttribute('autocomplete', 'off');
- }
- // Suppress third-party password managers too
- el.setAttribute('data-lpignore', 'true'); // LastPass
- el.setAttribute('data-form-type', 'other'); // Dashlane
- el.setAttribute('data-1p-ignore', 'true'); // 1Password
- }
- }
-
- function suppressAll() {
- document.querySelectorAll('form, input').forEach(suppress);
- }
-
- // Initial pass
- if (document.readyState === 'loading') {
- document.addEventListener('DOMContentLoaded', suppressAll);
- } else {
- suppressAll();
- }
-
- // Watch for dynamically added forms/inputs (SPAs)
- var observer = new MutationObserver(function(mutations) {
- for (var i = 0; i < mutations.length; i++) {
- var added = mutations[i].addedNodes;
- for (var j = 0; j < added.length; j++) {
- var node = added[j];
- if (node.nodeType !== 1) continue;
- suppress(node);
- if (node.querySelectorAll) {
- node.querySelectorAll('form, input').forEach(suppress);
- }
- }
- }
- });
- observer.observe(document.documentElement, { childList: true, subtree: true });
-})();
+/**
+ * Muse Autofill Suppression
+ *
+ * Disables native browser autofill (WebView2/WKWebView/WebKitGTK) so that
+ * the Muse password vault is the only credential source for form fields.
+ *
+ * Why: System WebView engines may show their own password save/autofill UIs
+ * which conflict with our Stronghold-backed vault. We suppress them by:
+ * 1. Setting autocomplete="off" on all form/input elements
+ * 2. Using autocomplete="new-password" on password fields (tells browsers not to autofill)
+ * 3. Adding data-* attributes that third-party password managers check
+ * 4. Intercepting dynamically created inputs via MutationObserver
+ *
+ * Platform notes:
+ * - Windows WebView2: general_autofill_enabled(false) is also set via Rust builder.
+ * Password save is already off by default (IsPasswordAutosaveEnabled=false).
+ * - macOS WKWebView: No public API exists. This JS approach + the Rust
+ * .general_autofill_enabled(false) builder call (noop on mac but future-proof).
+ * - Linux WebKitGTK: No built-in password manager UI — this is purely defensive.
+ */
+(function() {
+ if (window.__museAutofillSuppressed) return;
+ window.__museAutofillSuppressed = true;
+
+ function suppress(el) {
+ if (!el || !el.setAttribute) return;
+ var tag = el.tagName;
+ if (tag === 'FORM') {
+ el.setAttribute('autocomplete', 'off');
+ } else if (tag === 'INPUT') {
+ var type = (el.type || '').toLowerCase();
+ if (type === 'password') {
+ // "new-password" tells browsers: don't autofill existing passwords
+ el.setAttribute('autocomplete', 'new-password');
+ } else if (type === 'email' || type === 'text' || type === 'tel') {
+ el.setAttribute('autocomplete', 'off');
+ }
+ // Suppress third-party password managers too
+ el.setAttribute('data-lpignore', 'true'); // LastPass
+ el.setAttribute('data-form-type', 'other'); // Dashlane
+ el.setAttribute('data-1p-ignore', 'true'); // 1Password
+ }
+ }
+
+ function suppressAll() {
+ document.querySelectorAll('form, input').forEach(suppress);
+ }
+
+ // Initial pass
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', suppressAll);
+ } else {
+ suppressAll();
+ }
+
+ // Watch for dynamically added forms/inputs (SPAs)
+ var observer = new MutationObserver(function(mutations) {
+ for (var i = 0; i < mutations.length; i++) {
+ var added = mutations[i].addedNodes;
+ for (var j = 0; j < added.length; j++) {
+ var node = added[j];
+ if (node.nodeType !== 1) continue;
+ suppress(node);
+ if (node.querySelectorAll) {
+ node.querySelectorAll('form, input').forEach(suppress);
+ }
+ }
+ }
+ });
+ observer.observe(document.documentElement, { childList: true, subtree: true });
+})();
diff --git a/src-tauri/resources/scripts/canvas_noise.js b/src-tauri/resources/scripts/canvas_noise.js
index 3fe112c3e5f3fb084279c9c1ecc3835e1fb6b764..cf5bbb95480d4229a91230c149f18d2c9e5eb801 100644
--- a/src-tauri/resources/scripts/canvas_noise.js
+++ b/src-tauri/resources/scripts/canvas_noise.js
@@ -1,42 +1,42 @@
-(function() {
-'use strict';
-
-// Add imperceptible noise to canvas fingerprinting attempts
-const origToDataURL = HTMLCanvasElement.prototype.toDataURL;
-const origToBlob = HTMLCanvasElement.prototype.toBlob;
-const origGetImageData = CanvasRenderingContext2D.prototype.getImageData;
-
-function addNoise(ctx, canvas) {
- try {
- const w = Math.min(canvas.width, 2);
- const h = Math.min(canvas.height, 2);
- const imageData = ctx.getImageData.call(ctx, 0, 0, w, h);
- // Modify one sub-pixel by ±1
- const idx = Math.floor(Math.random() * imageData.data.length);
- imageData.data[idx] = Math.max(0, Math.min(255, imageData.data[idx] + (Math.random() > 0.5 ? 1 : -1)));
- ctx.putImageData(imageData, 0, 0);
- } catch(e) { /* cross-origin or tainted canvas */ }
-}
-
-HTMLCanvasElement.prototype.toDataURL = function() {
- const ctx = this.getContext('2d');
- if (ctx) addNoise(ctx, this);
- return origToDataURL.apply(this, arguments);
-};
-
-HTMLCanvasElement.prototype.toBlob = function() {
- const ctx = this.getContext('2d');
- if (ctx) addNoise(ctx, this);
- return origToBlob.apply(this, arguments);
-};
-
-CanvasRenderingContext2D.prototype.getImageData = function() {
- const result = origGetImageData.apply(this, arguments);
- // Add noise to returned data for fingerprint resistance
- if (result.data.length > 4) {
- const idx = Math.floor(Math.random() * result.data.length);
- result.data[idx] = Math.max(0, Math.min(255, result.data[idx] + (Math.random() > 0.5 ? 1 : -1)));
- }
- return result;
-};
-})();
+(function() {
+'use strict';
+
+// Add imperceptible noise to canvas fingerprinting attempts
+const origToDataURL = HTMLCanvasElement.prototype.toDataURL;
+const origToBlob = HTMLCanvasElement.prototype.toBlob;
+const origGetImageData = CanvasRenderingContext2D.prototype.getImageData;
+
+function addNoise(ctx, canvas) {
+ try {
+ const w = Math.min(canvas.width, 2);
+ const h = Math.min(canvas.height, 2);
+ const imageData = ctx.getImageData.call(ctx, 0, 0, w, h);
+ // Modify one sub-pixel by ±1
+ const idx = Math.floor(Math.random() * imageData.data.length);
+ imageData.data[idx] = Math.max(0, Math.min(255, imageData.data[idx] + (Math.random() > 0.5 ? 1 : -1)));
+ ctx.putImageData(imageData, 0, 0);
+ } catch(e) { /* cross-origin or tainted canvas */ }
+}
+
+HTMLCanvasElement.prototype.toDataURL = function() {
+ const ctx = this.getContext('2d');
+ if (ctx) addNoise(ctx, this);
+ return origToDataURL.apply(this, arguments);
+};
+
+HTMLCanvasElement.prototype.toBlob = function() {
+ const ctx = this.getContext('2d');
+ if (ctx) addNoise(ctx, this);
+ return origToBlob.apply(this, arguments);
+};
+
+CanvasRenderingContext2D.prototype.getImageData = function() {
+ const result = origGetImageData.apply(this, arguments);
+ // Add noise to returned data for fingerprint resistance
+ if (result.data.length > 4) {
+ const idx = Math.floor(Math.random() * result.data.length);
+ result.data[idx] = Math.max(0, Math.min(255, result.data[idx] + (Math.random() > 0.5 ? 1 : -1)));
+ }
+ return result;
+};
+})();
diff --git a/src-tauri/resources/scripts/cookie_consent.js b/src-tauri/resources/scripts/cookie_consent.js
index e22eae5700ca646f0e0ba956ab1524e16438e7f2..9a0a56a6dc80e8892759e69e82961c38eed9b711 100644
--- a/src-tauri/resources/scripts/cookie_consent.js
+++ b/src-tauri/resources/scripts/cookie_consent.js
@@ -1,72 +1,72 @@
-(function() {
-'use strict';
-
-const rejectSelectors = [
- '[id*="reject"]', '[class*="reject"]',
- '[id*="decline"]', '[class*="decline"]',
- 'button[aria-label*="Reject"]', 'button[aria-label*="reject"]',
- '#onetrust-reject-all-handler',
- '.js-cookie-decline',
- '[data-testid="cookie-policy-dialog-reject-button"]',
- '[class*="cookie"] [class*="reject"]',
- '[class*="consent"] [class*="reject"]',
- '[id*="consent"] button[class*="secondary"]',
- '.fc-cta-do-not-consent',
- '#CybotCookiebotDialogBodyButtonDecline',
- '[class*="CookieConsent"] button:last-child',
-];
-
-const bannerSelectors = [
- '[class*="cookie-banner"]', '[class*="cookie-notice"]',
- '[class*="consent-banner"]', '[class*="consent-modal"]',
- '[id*="cookie-banner"]', '[id*="cookie-notice"]',
- '#onetrust-banner-sdk', '.fc-consent-root',
- '#CybotCookiebotDialog', '[class*="CookieConsent"]',
- '[class*="gdpr"]', '[id*="gdpr"]',
-];
-
-function clickReject() {
- for (const selector of rejectSelectors) {
- const btn = document.querySelector(selector);
- if (btn && btn.offsetParent !== null) {
- btn.click();
- return true;
- }
- }
- return false;
-}
-
-function hideBanners() {
- for (const selector of bannerSelectors) {
- const el = document.querySelector(selector);
- if (el && el.offsetParent !== null) {
- el.style.display = 'none';
- }
- }
-}
-
-function attempt() {
- if (clickReject()) return true;
- hideBanners();
- return false;
-}
-
-// Try immediately
-if (!attempt()) {
- // Watch for dynamically added consent banners
- const obs = new MutationObserver(() => {
- if (attempt()) obs.disconnect();
- });
- if (document.body) {
- obs.observe(document.body, { childList: true, subtree: true });
- } else {
- document.addEventListener('DOMContentLoaded', () => {
- if (!attempt()) {
- obs.observe(document.body, { childList: true, subtree: true });
- }
- });
- }
- // Safety timeout
- setTimeout(() => { attempt(); obs.disconnect(); }, 8000);
-}
-})();
+(function() {
+'use strict';
+
+const rejectSelectors = [
+ '[id*="reject"]', '[class*="reject"]',
+ '[id*="decline"]', '[class*="decline"]',
+ 'button[aria-label*="Reject"]', 'button[aria-label*="reject"]',
+ '#onetrust-reject-all-handler',
+ '.js-cookie-decline',
+ '[data-testid="cookie-policy-dialog-reject-button"]',
+ '[class*="cookie"] [class*="reject"]',
+ '[class*="consent"] [class*="reject"]',
+ '[id*="consent"] button[class*="secondary"]',
+ '.fc-cta-do-not-consent',
+ '#CybotCookiebotDialogBodyButtonDecline',
+ '[class*="CookieConsent"] button:last-child',
+];
+
+const bannerSelectors = [
+ '[class*="cookie-banner"]', '[class*="cookie-notice"]',
+ '[class*="consent-banner"]', '[class*="consent-modal"]',
+ '[id*="cookie-banner"]', '[id*="cookie-notice"]',
+ '#onetrust-banner-sdk', '.fc-consent-root',
+ '#CybotCookiebotDialog', '[class*="CookieConsent"]',
+ '[class*="gdpr"]', '[id*="gdpr"]',
+];
+
+function clickReject() {
+ for (const selector of rejectSelectors) {
+ const btn = document.querySelector(selector);
+ if (btn && btn.offsetParent !== null) {
+ btn.click();
+ return true;
+ }
+ }
+ return false;
+}
+
+function hideBanners() {
+ for (const selector of bannerSelectors) {
+ const el = document.querySelector(selector);
+ if (el && el.offsetParent !== null) {
+ el.style.display = 'none';
+ }
+ }
+}
+
+function attempt() {
+ if (clickReject()) return true;
+ hideBanners();
+ return false;
+}
+
+// Try immediately
+if (!attempt()) {
+ // Watch for dynamically added consent banners
+ const obs = new MutationObserver(() => {
+ if (attempt()) obs.disconnect();
+ });
+ if (document.body) {
+ obs.observe(document.body, { childList: true, subtree: true });
+ } else {
+ document.addEventListener('DOMContentLoaded', () => {
+ if (!attempt()) {
+ obs.observe(document.body, { childList: true, subtree: true });
+ }
+ });
+ }
+ // Safety timeout
+ setTimeout(() => { attempt(); obs.disconnect(); }, 8000);
+}
+})();
diff --git a/src-tauri/resources/scripts/hover_overlay.js b/src-tauri/resources/scripts/hover_overlay.js
index 552ee9a40012a79d41deebc007ad7d2e4bb218d4..06697c9992323830fcd51b6c4657fafb1c400b78 100644
--- a/src-tauri/resources/scripts/hover_overlay.js
+++ b/src-tauri/resources/scripts/hover_overlay.js
@@ -1,144 +1,144 @@
-/* Refstudio hover overlay: + ADD button. Prevents click-through to underlying links. */
-(function () {
- if (window.__muse_hover_v7) return;
- window.__muse_hover_v7 = true;
-
- var MIN = 90;
- var activeImg = null;
- var badge = null;
- var showTimer = 0;
- var hideTimer = 0;
-
- function injectCSS() {
- if (document.getElementById('__muse_badge_css')) return;
- var s = document.createElement('style'); s.id = '__muse_badge_css';
- s.textContent = '#__muse_add_badge{all:initial;position:fixed;z-index:2147483647;display:flex;align-items:center;gap:4px;padding:7px 14px;background:rgba(255,255,255,0.97);color:#111;border-radius:999px;box-shadow:0 4px 20px rgba(0,0,0,0.3),0 0 0 1px rgba(0,0,0,0.05);font:700 11px/1 -apple-system,BlinkMacSystemFont,"Inter",sans-serif;cursor:pointer;opacity:0;transform:translateY(4px) scale(0.92);transition:opacity .15s,transform .15s;pointer-events:none;letter-spacing:0.02em;user-select:none}#__muse_add_badge.v{opacity:1;transform:none;pointer-events:auto}#__muse_add_badge:hover{background:#fff;box-shadow:0 6px 28px rgba(0,0,0,0.35),0 0 0 1px rgba(0,0,0,0.08);transform:scale(1.05)}#__muse_add_badge:active{transform:scale(0.94)}#__muse_add_badge svg{width:14px;height:14px;stroke-width:2.5}#__mt7{all:initial;position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(8px);z-index:2147483647;padding:9px 16px;border-radius:999px;background:rgba(20,20,20,.97);border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 36px rgba(0,0,0,.5);font:600 12px/1 -apple-system,sans-serif;color:#fff;opacity:0;transition:opacity .16s,transform .16s;pointer-events:none}#__mt7.s{opacity:1;transform:translateX(-50%) translateY(0)}';
- (document.head || document.documentElement).appendChild(s);
- }
-
- function enc(v) { return encodeURIComponent(v == null ? '' : String(v)); }
- function absUrl(s) { try { return new URL(s || '', location.href).href; } catch (_) { return s || ''; } }
-
- function toast(m) {
- var t = document.getElementById('__mt7');
- if (!t) { t = document.createElement('div'); t.id = '__mt7'; document.documentElement.appendChild(t); }
- t.textContent = m; t.classList.add('s');
- clearTimeout(t._t); t._t = setTimeout(function () { t.classList.remove('s'); }, 1500);
- }
-
- function addToBoard(url, title, w, h) {
- var u = 'muse-action://board?url=' + enc(url) + '&source=' + enc(location.href) + '&title=' + enc(title) + '&w=' + enc(w) + '&h=' + enc(h);
- // Use an iframe to trigger navigation without changing current page
- var frame = document.createElement('iframe');
- frame.style.cssText = 'display:none;width:0;height:0;border:none;position:absolute;';
- document.documentElement.appendChild(frame);
- try { frame.contentWindow.location.href = u; } catch (_) {
- // Fallback: direct navigation (Rust will block it via on_navigation returning false)
- try { window.location.href = u; } catch (_2) {}
- }
- setTimeout(function () { if (frame.parentNode) frame.parentNode.removeChild(frame); }, 200);
- }
-
- function pos(el, img) {
- var r = img.getBoundingClientRect();
- // Position at top-right corner of the image (where user expects action buttons)
- var x = r.right - 70;
- var y = r.top + 8;
- if (x < r.left + 8) x = r.left + 8;
- if (x > innerWidth - 80) x = innerWidth - 80;
- if (y < 4) y = 4;
- if (y > innerHeight - 40) y = innerHeight - 40;
- el.style.left = x + 'px';
- el.style.top = y + 'px';
- }
-
- function hide() {
- if (!badge) return;
- badge.classList.remove('v');
- activeImg = null;
- setTimeout(function () { if (badge && !badge.classList.contains('v')) badge.style.pointerEvents = 'none'; }, 160);
- }
-
- function show(img) {
- if (img === activeImg && badge && badge.classList.contains('v')) return;
- injectCSS();
- activeImg = img;
-
- if (!badge) {
- badge = document.createElement('div');
- badge.id = '__muse_add_badge';
- badge.innerHTML = ' ADD';
-
- // Use mousedown + prevent everything to ensure no link/image click passes through
- badge.addEventListener('mousedown', function (e) {
- e.preventDefault();
- e.stopPropagation();
- e.stopImmediatePropagation();
- }, true);
-
- badge.addEventListener('click', function (e) {
- e.preventDefault();
- e.stopPropagation();
- e.stopImmediatePropagation();
- if (!activeImg) return;
- var url = absUrl(activeImg.currentSrc || activeImg.src);
- var title = activeImg.alt || activeImg.title || document.title || 'Reference';
- var w = activeImg.naturalWidth || Math.round(activeImg.getBoundingClientRect().width);
- var h = activeImg.naturalHeight || Math.round(activeImg.getBoundingClientRect().height);
- addToBoard(url, title, w, h);
- toast('✓ Added to Board');
- }, true);
-
- // Prevent any pointer event from bubbling to parent links
- badge.addEventListener('pointerdown', function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- }, true);
-
- badge.addEventListener('pointerup', function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- }, true);
-
- badge.onmouseenter = function () { clearTimeout(hideTimer); };
- badge.onmouseleave = function () { hideTimer = setTimeout(hide, 300); };
-
- document.documentElement.appendChild(badge);
- }
-
- pos(badge, activeImg);
- badge.offsetHeight;
- badge.classList.add('v');
- }
-
- // Only show on IMG elements, not on elements inside links that happen to be images
- function isValidTarget(el) {
- if (!el || el.tagName !== 'IMG') return false;
- var r = el.getBoundingClientRect();
- return r.width >= MIN && r.height >= MIN;
- }
-
- document.addEventListener('mouseover', function (e) {
- var t = e.target;
- if (!isValidTarget(t)) return;
- if (t === activeImg) { clearTimeout(hideTimer); return; }
- clearTimeout(hideTimer); clearTimeout(showTimer);
- showTimer = setTimeout(function () { show(t); }, 250);
- }, true);
-
- document.addEventListener('mouseout', function (e) {
- var t = e.target;
- if (!t || t.tagName !== 'IMG' || t !== activeImg) return;
- var rel = e.relatedTarget;
- if (badge && (badge === rel || badge.contains && badge.contains(rel))) return;
- clearTimeout(showTimer);
- hideTimer = setTimeout(hide, 350);
- }, true);
-
- window.addEventListener('scroll', function () {
- if (!badge || !activeImg) return;
- var r = activeImg.getBoundingClientRect();
- if (r.bottom < -20 || r.top > innerHeight + 20) hide();
- else pos(badge, activeImg);
- }, { passive: true });
-})();
+/* Refstudio hover overlay: + ADD button. Prevents click-through to underlying links. */
+(function () {
+ if (window.__muse_hover_v7) return;
+ window.__muse_hover_v7 = true;
+
+ var MIN = 90;
+ var activeImg = null;
+ var badge = null;
+ var showTimer = 0;
+ var hideTimer = 0;
+
+ function injectCSS() {
+ if (document.getElementById('__muse_badge_css')) return;
+ var s = document.createElement('style'); s.id = '__muse_badge_css';
+ s.textContent = '#__muse_add_badge{all:initial;position:fixed;z-index:2147483647;display:flex;align-items:center;gap:4px;padding:7px 14px;background:rgba(255,255,255,0.97);color:#111;border-radius:999px;box-shadow:0 4px 20px rgba(0,0,0,0.3),0 0 0 1px rgba(0,0,0,0.05);font:700 11px/1 -apple-system,BlinkMacSystemFont,"Inter",sans-serif;cursor:pointer;opacity:0;transform:translateY(4px) scale(0.92);transition:opacity .15s,transform .15s;pointer-events:none;letter-spacing:0.02em;user-select:none}#__muse_add_badge.v{opacity:1;transform:none;pointer-events:auto}#__muse_add_badge:hover{background:#fff;box-shadow:0 6px 28px rgba(0,0,0,0.35),0 0 0 1px rgba(0,0,0,0.08);transform:scale(1.05)}#__muse_add_badge:active{transform:scale(0.94)}#__muse_add_badge svg{width:14px;height:14px;stroke-width:2.5}#__mt7{all:initial;position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(8px);z-index:2147483647;padding:9px 16px;border-radius:999px;background:rgba(20,20,20,.97);border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 36px rgba(0,0,0,.5);font:600 12px/1 -apple-system,sans-serif;color:#fff;opacity:0;transition:opacity .16s,transform .16s;pointer-events:none}#__mt7.s{opacity:1;transform:translateX(-50%) translateY(0)}';
+ (document.head || document.documentElement).appendChild(s);
+ }
+
+ function enc(v) { return encodeURIComponent(v == null ? '' : String(v)); }
+ function absUrl(s) { try { return new URL(s || '', location.href).href; } catch (_) { return s || ''; } }
+
+ function toast(m) {
+ var t = document.getElementById('__mt7');
+ if (!t) { t = document.createElement('div'); t.id = '__mt7'; document.documentElement.appendChild(t); }
+ t.textContent = m; t.classList.add('s');
+ clearTimeout(t._t); t._t = setTimeout(function () { t.classList.remove('s'); }, 1500);
+ }
+
+ function addToBoard(url, title, w, h) {
+ var u = 'muse-action://board?url=' + enc(url) + '&source=' + enc(location.href) + '&title=' + enc(title) + '&w=' + enc(w) + '&h=' + enc(h);
+ // Use an iframe to trigger navigation without changing current page
+ var frame = document.createElement('iframe');
+ frame.style.cssText = 'display:none;width:0;height:0;border:none;position:absolute;';
+ document.documentElement.appendChild(frame);
+ try { frame.contentWindow.location.href = u; } catch (_) {
+ // Fallback: direct navigation (Rust will block it via on_navigation returning false)
+ try { window.location.href = u; } catch (_2) {}
+ }
+ setTimeout(function () { if (frame.parentNode) frame.parentNode.removeChild(frame); }, 200);
+ }
+
+ function pos(el, img) {
+ var r = img.getBoundingClientRect();
+ // Position at top-right corner of the image (where user expects action buttons)
+ var x = r.right - 70;
+ var y = r.top + 8;
+ if (x < r.left + 8) x = r.left + 8;
+ if (x > innerWidth - 80) x = innerWidth - 80;
+ if (y < 4) y = 4;
+ if (y > innerHeight - 40) y = innerHeight - 40;
+ el.style.left = x + 'px';
+ el.style.top = y + 'px';
+ }
+
+ function hide() {
+ if (!badge) return;
+ badge.classList.remove('v');
+ activeImg = null;
+ setTimeout(function () { if (badge && !badge.classList.contains('v')) badge.style.pointerEvents = 'none'; }, 160);
+ }
+
+ function show(img) {
+ if (img === activeImg && badge && badge.classList.contains('v')) return;
+ injectCSS();
+ activeImg = img;
+
+ if (!badge) {
+ badge = document.createElement('div');
+ badge.id = '__muse_add_badge';
+ badge.innerHTML = ' ADD';
+
+ // Use mousedown + prevent everything to ensure no link/image click passes through
+ badge.addEventListener('mousedown', function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ e.stopImmediatePropagation();
+ }, true);
+
+ badge.addEventListener('click', function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ e.stopImmediatePropagation();
+ if (!activeImg) return;
+ var url = absUrl(activeImg.currentSrc || activeImg.src);
+ var title = activeImg.alt || activeImg.title || document.title || 'Reference';
+ var w = activeImg.naturalWidth || Math.round(activeImg.getBoundingClientRect().width);
+ var h = activeImg.naturalHeight || Math.round(activeImg.getBoundingClientRect().height);
+ addToBoard(url, title, w, h);
+ toast('✓ Added to Board');
+ }, true);
+
+ // Prevent any pointer event from bubbling to parent links
+ badge.addEventListener('pointerdown', function (e) {
+ e.stopPropagation();
+ e.stopImmediatePropagation();
+ }, true);
+
+ badge.addEventListener('pointerup', function (e) {
+ e.stopPropagation();
+ e.stopImmediatePropagation();
+ }, true);
+
+ badge.onmouseenter = function () { clearTimeout(hideTimer); };
+ badge.onmouseleave = function () { hideTimer = setTimeout(hide, 300); };
+
+ document.documentElement.appendChild(badge);
+ }
+
+ pos(badge, activeImg);
+ badge.offsetHeight;
+ badge.classList.add('v');
+ }
+
+ // Only show on IMG elements, not on elements inside links that happen to be images
+ function isValidTarget(el) {
+ if (!el || el.tagName !== 'IMG') return false;
+ var r = el.getBoundingClientRect();
+ return r.width >= MIN && r.height >= MIN;
+ }
+
+ document.addEventListener('mouseover', function (e) {
+ var t = e.target;
+ if (!isValidTarget(t)) return;
+ if (t === activeImg) { clearTimeout(hideTimer); return; }
+ clearTimeout(hideTimer); clearTimeout(showTimer);
+ showTimer = setTimeout(function () { show(t); }, 250);
+ }, true);
+
+ document.addEventListener('mouseout', function (e) {
+ var t = e.target;
+ if (!t || t.tagName !== 'IMG' || t !== activeImg) return;
+ var rel = e.relatedTarget;
+ if (badge && (badge === rel || badge.contains && badge.contains(rel))) return;
+ clearTimeout(showTimer);
+ hideTimer = setTimeout(hide, 350);
+ }, true);
+
+ window.addEventListener('scroll', function () {
+ if (!badge || !activeImg) return;
+ var r = activeImg.getBoundingClientRect();
+ if (r.bottom < -20 || r.top > innerHeight + 20) hide();
+ else pos(badge, activeImg);
+ }, { passive: true });
+})();
diff --git a/src-tauri/resources/scripts/vault_detector.js b/src-tauri/resources/scripts/vault_detector.js
index 4e9f23a61f8fa6f8a5f8efddfcb4497a007ebfa3..ea012d76f5d27728b0061f54e4b7c9c35dd083cd 100644
--- a/src-tauri/resources/scripts/vault_detector.js
+++ b/src-tauri/resources/scripts/vault_detector.js
@@ -1,159 +1,159 @@
-/**
- * Muse Password Vault — Form Detection & Autofill
- *
- * Injected into every child webview page via initialization_script.
- * Detects login forms and signals Rust via muse-action://vault beacon.
- * Autofill is triggered separately by Rust calling window.__museAutofill().
- *
- * ISOLATION: This runs inside the app's own WebView profile, completely
- * separate from the system browser (Edge/Safari/etc). No credential leakage.
- */
-(function() {
- 'use strict';
- if (window.__museVaultDetector) return;
- window.__museVaultDetector = true;
-
- // ─── Beacon to Rust via muse-action:// protocol ──────────────────────
- function beacon(action, data) {
- var params = [];
- data.action = action;
- for (var k in data) {
- if (data[k] != null) params.push(encodeURIComponent(k) + '=' + encodeURIComponent(data[k]));
- }
- var img = new Image();
- img.src = 'muse-action://vault?' + params.join('&');
- }
-
- // ─── Find password and username fields ───────────────────────────────
- function findPasswordFields() {
- return Array.from(document.querySelectorAll('input[type="password"]:not([disabled]):not([hidden])'));
- }
-
- function findUsernameFor(pwField) {
- var form = pwField.closest('form') || document;
- var inputs = Array.from(form.querySelectorAll('input'));
- var pwIdx = inputs.indexOf(pwField);
- var candidates = inputs.filter(function(el, idx) {
- if (idx >= pwIdx) return false;
- var t = (el.type || '').toLowerCase();
- if (t === 'hidden' || t === 'submit' || t === 'button' || t === 'checkbox' || t === 'radio') return false;
- var n = (el.name + el.id + el.autocomplete).toLowerCase();
- if (t === 'email' || t === 'text' || t === 'tel') return true;
- if (n.match(/user|email|login|acct|phone/)) return true;
- return false;
- });
- return candidates.pop() || null;
- }
-
- // ─── Capture credentials on form submission ──────────────────────────
- var lastCaptured = null;
-
- function captureFromField(pwField) {
- if (!pwField || !pwField.value) return null;
- var userField = findUsernameFor(pwField);
- return { origin: location.origin, username: userField ? userField.value : '', password: pwField.value };
- }
-
- function onFormSubmit(e) {
- var form = e.target || e.currentTarget;
- var pw = form.querySelector('input[type="password"]');
- var creds = captureFromField(pw);
- if (creds && creds.password) {
- lastCaptured = creds;
- beacon('save-prompt', creds);
- }
- }
-
- function attachFormListeners() {
- document.querySelectorAll('form').forEach(function(form) {
- if (form.__museVault) return;
- form.__museVault = true;
- form.addEventListener('submit', onFormSubmit, true);
- });
- }
-
- // ─── SPA detection: intercept network calls while password field has value
- var origFetch = window.fetch;
- window.fetch = function() {
- checkPendingCredentials();
- return origFetch.apply(this, arguments);
- };
- var origXHRSend = XMLHttpRequest.prototype.send;
- XMLHttpRequest.prototype.send = function() {
- checkPendingCredentials();
- return origXHRSend.apply(this, arguments);
- };
-
- function checkPendingCredentials() {
- var pwFields = findPasswordFields();
- for (var i = 0; i < pwFields.length; i++) {
- var creds = captureFromField(pwFields[i]);
- if (creds && creds.password && (!lastCaptured || lastCaptured.password !== creds.password)) {
- lastCaptured = creds;
- // Delay — if page navigates away or password field disappears, login likely succeeded
- setTimeout(function() {
- if (lastCaptured) beacon('save-prompt', lastCaptured);
- }, 2000);
- }
- }
- }
-
- // ─── Submit button click detection (for forms without