From b352f8f049a668f720aafa1ab4e059209c5a6ce5 Mon Sep 17 00:00:00 2001 From: megaproxy Date: Fri, 22 May 2026 12:31:29 +0100 Subject: [PATCH] Initial scaffold from M1 spike (tiletopia) Tauri 2 + Svelte 5 + xterm.js + portable-pty. Single full-window WSL terminal pane with clickable distro picker. M1 verified manually on Windows: window opens, xterm.js renders, claude TUI works, resize reflows cleanly. Graduated from ~/claude/ideas/wsl-mux/ per the approved plan at ~/.claude/plans/imperative-coalescing-feigenbaum.md. See memory.md for decisions, open TODOs, and the M2-M5 roadmap. Co-Authored-By: Claude Opus 4.7 (1M context) --- .gitignore | 19 + CLAUDE.md | 26 + README.md | 75 + index.html | 12 + memory.md | 45 + package.json | 27 + pnpm-lock.yaml | 1054 +++++ pnpm-workspace.yaml | 2 + src-tauri/Cargo.lock | 4853 +++++++++++++++++++++ src-tauri/Cargo.toml | 40 + src-tauri/build.rs | 3 + src-tauri/capabilities/default.json | 11 + src-tauri/gen/schemas/acl-manifests.json | 1 + src-tauri/gen/schemas/capabilities.json | 1 + src-tauri/gen/schemas/desktop-schema.json | 2292 ++++++++++ src-tauri/gen/schemas/windows-schema.json | 2292 ++++++++++ src-tauri/icons/128x128.png | Bin 0 -> 10102 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 20609 bytes src-tauri/icons/32x32.png | Bin 0 -> 1945 bytes src-tauri/icons/icon.icns | Bin 0 -> 254987 bytes src-tauri/icons/icon.ico | Bin 0 -> 836 bytes src-tauri/icons/source.png | Bin 0 -> 22180 bytes src-tauri/src/commands.rs | 57 + src-tauri/src/lib.rs | 28 + src-tauri/src/main.rs | 6 + src-tauri/src/pty.rs | 229 + src-tauri/tauri.conf.json | 46 + src/App.svelte | 112 + src/components/XtermPane.svelte | 143 + src/ipc.ts | 32 + src/main.ts | 8 + src/styles.css | 65 + svelte.config.js | 5 + tsconfig.json | 20 + tsconfig.node.json | 11 + vite.config.ts | 19 + 36 files changed, 11534 insertions(+) create mode 100644 .gitignore create mode 100644 CLAUDE.md create mode 100644 README.md create mode 100644 index.html create mode 100644 memory.md create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml create mode 100644 src-tauri/Cargo.lock create mode 100644 src-tauri/Cargo.toml create mode 100644 src-tauri/build.rs create mode 100644 src-tauri/capabilities/default.json create mode 100644 src-tauri/gen/schemas/acl-manifests.json create mode 100644 src-tauri/gen/schemas/capabilities.json create mode 100644 src-tauri/gen/schemas/desktop-schema.json create mode 100644 src-tauri/gen/schemas/windows-schema.json create mode 100644 src-tauri/icons/128x128.png create mode 100644 src-tauri/icons/128x128@2x.png create mode 100644 src-tauri/icons/32x32.png create mode 100644 src-tauri/icons/icon.icns create mode 100644 src-tauri/icons/icon.ico create mode 100644 src-tauri/icons/source.png create mode 100644 src-tauri/src/commands.rs create mode 100644 src-tauri/src/lib.rs create mode 100644 src-tauri/src/main.rs create mode 100644 src-tauri/src/pty.rs create mode 100644 src-tauri/tauri.conf.json create mode 100644 src/App.svelte create mode 100644 src/components/XtermPane.svelte create mode 100644 src/ipc.ts create mode 100644 src/main.ts create mode 100644 src/styles.css create mode 100644 svelte.config.js create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5aa37de --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +# Node +node_modules/ +dist/ +.svelte-kit/ +.pnpm-store/ + +# Rust / Tauri +src-tauri/target/ + +# Editor / OS +.DS_Store +.vscode/ +.idea/ +*.swp + +# Env / secrets +.env +.env.* +!.env.example diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..22c765f --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,26 @@ +# Project: tiletopia + +A Windows desktop app for running and arranging many WSL terminals at once. Built primarily to manage multiple `claude` sessions across projects in parallel; works for any multi-shell workflow. + +## Working agreement + +- This is a git repo with `origin` on Forgejo at `https://git.rdx4.com/megaproxy/tiletopia.git` (private). HTTPS auth uses the token in `~/.git-credentials` — pushes are non-interactive. +- Commit after each logical change with a one-line imperative message; `git push` after each commit (or at minimum before ending the session). +- Read `memory.md` at session start. Update it before ending the session. +- Never commit secrets — see `.gitignore` and the rules in `~/claude/CLAUDE.md`. + +## Project-specific notes + +- **Stack:** Tauri 2 + Svelte 5 + TypeScript + Vite + pnpm + xterm.js + `portable-pty`. Mirrors `~/claude/projects/claude-usage-widget/` for toolchain choices. +- **Build target:** Windows `.exe` only. Rust toolchain lives on the Windows host, not WSL. +- **Source location:** `D:\dev\tiletopia\` (Windows-native NTFS). Symlinked into WSL at `~/claude/projects/tiletopia` for editing convenience, but **all pnpm and cargo commands must run on the Windows host** against the `D:\` path — never the `\\wsl.localhost\...` UNC path (pnpm 11.x crashes inside `isDriveExFat`, and the underlying error gets swallowed). +- **Run:** + ```powershell + cd D:\dev\tiletopia + pnpm install + pnpm tauri dev # iterate + pnpm tauri build # NSIS installer at src-tauri\target\release\bundle\nsis\ + ``` +- **Validate in WSL:** `pnpm check` (svelte-check) runs in WSL and validates the Svelte/TS side without needing the Rust toolchain. +- **Plan reference:** `~/.claude/plans/imperative-coalescing-feigenbaum.md` — the approved plan that drove the scaffold and the full M0–M5 milestone roadmap. +- **Archived idea history:** the brainstorm phase + full session log lives at `~/claude/archive/ideas/wsl-mux/plan.md`. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e2f0b8e --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# tiletopia + +A Windows desktop app for running and arranging many WSL terminals at once. Built primarily to manage multiple `claude` sessions across projects in parallel, but works for any multi-shell workflow. + +Status: **early — single-pane M1 works**. Tiling layout (M2), workspace persistence (M3), and cross-pane orchestration (M4) are the next milestones. See `memory.md`. + +## Stack + +- **Tauri 2** (Rust backend, WebView2 frontend) — small bundle, native Windows installer via NSIS. +- **Svelte 5** + TypeScript + Vite + pnpm. +- **xterm.js** + `@xterm/addon-fit` for terminal rendering. +- **`portable-pty`** (Rust crate) spawning `wsl.exe -d ` PTYs. + +## Run + +This project targets Windows. Dev requires: + +- Windows 10/11 + [WebView2 Runtime](https://developer.microsoft.com/microsoft-edge/webview2/) (preinstalled on Win11). +- [MSVC toolchain](https://v2.tauri.app/start/prerequisites/#windows) (VS Build Tools, "C++ build tools" workload). +- [Rust](https://rustup.rs/) on the Windows host. +- Node 20+ and pnpm (`corepack use pnpm@11.2.2`). +- WSL with at least one distro installed. + +**Location matters.** The source must live on a Windows-native drive (here: `D:\dev\tiletopia\`). Don't run pnpm against the `\\wsl.localhost\...` UNC path — pnpm 11.x crashes inside `isDriveExFat` and the actual error gets swallowed by the crashing error-hint formatter. + +From a Windows shell: + +```powershell +cd D:\dev\tiletopia +pnpm install +pnpm tauri dev # iterate +pnpm tauri build # NSIS installer at src-tauri\target\release\bundle\nsis\ +``` + +The WSL-side symlink at `~/claude/projects/tiletopia` points here for in-WSL editing. + +## How it works (current state) + +- **Backend (`src-tauri/src/pty.rs`):** a `PtyManager` holding a `Mutex>` of `portable-pty` children. Each spawned pane gets a background reader thread that emits `pane://{id}/data` events to the frontend (base64-encoded byte chunks). Counterparts: `write_to_pane`, `resize_pane`, `kill_pane`. Distro enumeration parses `wsl.exe -l -q` (UTF-16LE). +- **Frontend (`src/components/XtermPane.svelte`):** xterm.js + FitAddon mounted into a div. On mount, calls `spawn_pane`, subscribes to the pane's event stream, wires `term.onData` → `write_to_pane`, and uses a `ResizeObserver` to forward dimension changes to the PTY. +- **App (`src/App.svelte`):** titlebar with clickable distro buttons (auto-picks first non-docker-desktop distro; user can override). One XtermPane wrapped in `{#key selected}` so changing distro destroys + respawns the pane. + +## Layout + +``` +tiletopia/ +├── CLAUDE.md, memory.md, README.md +├── .gitignore, pnpm-workspace.yaml +├── package.json, vite.config.ts, svelte.config.js, tsconfig.json, tsconfig.node.json +├── index.html +├── src/ +│ ├── main.ts # mounts App, imports xterm.css +│ ├── App.svelte # titlebar + one XtermPane (M1) +│ ├── styles.css +│ ├── ipc.ts # typed Tauri command wrappers +│ └── components/ +│ └── XtermPane.svelte +└── src-tauri/ + ├── Cargo.toml, build.rs, tauri.conf.json + ├── capabilities/default.json + ├── icons/ # placeholder, copied from claude-usage-widget + └── src/ + ├── main.rs + ├── lib.rs # tauri builder, registers commands, manages PtyManager + ├── pty.rs # PtyManager + list_wsl_distros + └── commands.rs # #[tauri::command] surface +``` + +## Known gotchas (today) + +- **Don't `pnpm install` from a UNC path** (`\\wsl.localhost\...`). pnpm 11.x crashes in its `isDriveExFat` probe; the underlying error gets swallowed. +- **Console flash on `wsl.exe -l -q`:** suppressed via the `CREATE_NO_WINDOW` flag in `pty.rs`. The PTY itself doesn't allocate a console (portable-pty uses ConPTY directly). +- **base64 wire format:** xterm.js emits `string` from `onData`; we UTF-8 encode then base64. Not the fastest; switch to typed-array event payloads later if throughput is an issue. +- **No icons of our own:** copied from `claude-usage-widget`. Replace before any release. +- **Cargo build only works on Windows host** — Rust toolchain isn't installed in WSL. `pnpm check` runs in WSL and validates the Svelte/TS side. diff --git a/index.html b/index.html new file mode 100644 index 0000000..219b15e --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + + + + + tiletopia + + +
+ + + diff --git a/memory.md b/memory.md new file mode 100644 index 0000000..b1d3647 --- /dev/null +++ b/memory.md @@ -0,0 +1,45 @@ +# memory — tiletopia + +Durable memory for this project. Read at session start, update before session end. Date format: `YYYY-MM-DD`. + +## Decisions & rationale + +- **Stack: Tauri 2 + Svelte 5 + TypeScript + Vite + pnpm + xterm.js + `portable-pty`.** Mirrors `claude-usage-widget` so we reuse a known-good Windows-targeting toolchain (MSVC + WebView2 + NSIS installer). No new technology bets stacked on top of the new product bet. +- **Layout model: binary tree of splits, NOT free-form rectangles.** Same as i3 / tmux / Zellij. Each internal node is HSplit/VSplit + ratio; each leaf is a terminal. Dragging a gutter mutates one parent ratio; both sibling subtrees reflow; descendants get `resize`. Adaptive resize falls out automatically with no constraint solver. Preset layouts ("3 columns", "2×2") are pre-built trees. +- **PTY backend: `portable-pty` (same crate WezTerm uses).** Spawns `wsl.exe -d --cd ` on Windows. Manager is a `Mutex>` in Rust; each pane has a background reader thread that emits `pane://{id}/data` events. +- **Wire format: base64-encoded byte chunks via Tauri events.** xterm.js's `onData` emits strings; we UTF-8 encode then base64. Slower than a typed-array payload but trivially correct. Revisit if throughput matters. +- **Source on Windows-native disk (`D:\dev\tiletopia\`), symlinked into WSL.** Same pattern as `rimlike` (`D:\godot\rimlike`) and `tavernkeep`. Forced by pnpm 11.x's `isDriveExFat` crashing on `\\wsl.localhost\...` UNC paths. +- **Don't commit `node_modules`, `src-tauri/target`, or `.pnpm-store`. DO commit `Cargo.lock`** (binary project, reproducible builds). +- **Session awareness without an in-pane agent.** Plan: poll `/proc//cwd` of the shell's child + foreground process every ~2s. Sufficient to detect `cd` and whether `claude` is running. + +## Open questions / TODOs + +- [ ] **HMR distro picker reset.** After a Vite hot reload, the previously-selected distro persists in Svelte 5 `$state`, so the picker doesn't re-default. Workaround in place (clickable distro buttons in titlebar). Fix properly in M3 when workspace state lives in a separate persisted store. +- [ ] **M2 — splits-tree layout component.** Two panes side by side, draggable divider, both panes alive. Save/restore layout as JSON. +- [ ] **M3 — workspace persistence.** Save/restore layouts + per-pane (distro, cwd, label) in `%APPDATA%/tiletopia/workspaces.json`. Preset layouts (3 columns, 2×2 grid). Distro picker UX, pane labels. +- [ ] **M4 — orchestration.** Broadcast input groups, idle/finish notifications, Ctrl+K fuzzy palette. +- [ ] **M5 — Ship.** Replace placeholder icons, NSIS installer, Forgejo release. Copy `claude-usage-widget`'s release scripts. +- [ ] **Native Windows shells (cmd / pwsh)?** `portable-pty` supports them for free; keep the option open. Decide whether to expose in UI at M3. +- [ ] **Persistent scrollback across app restarts.** Would need an out-of-process mux daemon. Big scope creep; explicitly deferred past v1. +- [ ] **Keybinding philosophy.** Copy tmux, copy WezTerm, or invent? Decide at M3. + +## Session log + +### 2026-05-22 + +- Graduated from `ideas/wsl-mux/` to project. Renamed working name `wsl-mux` → final name `tiletopia` across Cargo/package/Tauri configs and source. +- Promoted spike contents from `D:\dev\wsl-mux\spike\` to `D:\dev\tiletopia\` (no more spike subdir; the project IS what was the spike). +- Initialized git, created private Forgejo repo `tiletopia`, pushed initial scaffold. +- M1 verified manually on the Windows host: window opens, xterm.js renders, `claude` TUI works inside the pane, resize reflows cleanly, `htop` renders. Distro auto-pick chose `docker-desktop` (Docker Desktop's BusyBox helper distro) on first try — added explicit clickable distro buttons in the titlebar as both a diagnostic and a manual override. Clicking `Ubuntu` works end-to-end. +- Old idea folder archived to `~/claude/archive/ideas/wsl-mux/` (preserves full brainstorm + session log). + +## External references + +- **Approved plan / roadmap:** `~/.claude/plans/imperative-coalescing-feigenbaum.md` (M0–M5 milestones with verification criteria for each) +- **Stack precedent:** `~/claude/projects/claude-usage-widget/` — same Tauri + Svelte + WebView2 toolchain, already ships a Windows installer via Forgejo releases. WSL distro-probing logic copied/adapted into `src-tauri/src/pty.rs`. +- **Archived idea history:** `~/claude/archive/ideas/wsl-mux/plan.md` +- **Forgejo repo:** https://git.rdx4.com/megaproxy/tiletopia +- **xterm.js docs:** https://xtermjs.org/ +- **portable-pty crate:** https://crates.io/crates/portable-pty +- **Tauri 2 docs:** https://v2.tauri.app/ +- **Prior art for splits-tree layout:** i3, tmux, Zellij, WezTerm diff --git a/package.json b/package.json new file mode 100644 index 0000000..b91dcd7 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "tiletopia", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-check --tsconfig ./tsconfig.json", + "tauri": "tauri" + }, + "dependencies": { + "@tauri-apps/api": "^2.0.0", + "@xterm/addon-fit": "^0.10.0", + "@xterm/xterm": "^5.5.0" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^4.0.0", + "@tauri-apps/cli": "^2.0.0", + "@tsconfig/svelte": "^5.0.4", + "svelte": "^5.0.0", + "svelte-check": "^4.0.0", + "typescript": "^5.6.0", + "vite": "^5.4.0" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..99dab6e --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1054 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@tauri-apps/api': + specifier: ^2.0.0 + version: 2.11.0 + '@xterm/addon-fit': + specifier: ^0.10.0 + version: 0.10.0(@xterm/xterm@5.5.0) + '@xterm/xterm': + specifier: ^5.5.0 + version: 5.5.0 + devDependencies: + '@sveltejs/vite-plugin-svelte': + specifier: ^4.0.0 + version: 4.0.4(svelte@5.55.9)(vite@5.4.21) + '@tauri-apps/cli': + specifier: ^2.0.0 + version: 2.11.2 + '@tsconfig/svelte': + specifier: ^5.0.4 + version: 5.0.8 + svelte: + specifier: ^5.0.0 + version: 5.55.9 + svelte-check: + specifier: ^4.0.0 + version: 4.4.8(svelte@5.55.9)(typescript@5.9.3) + typescript: + specifier: ^5.6.0 + version: 5.9.3 + vite: + specifier: ^5.4.0 + version: 5.4.21 + +packages: + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@rollup/rollup-android-arm-eabi@4.60.4': + resolution: {integrity: sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.60.4': + resolution: {integrity: sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.60.4': + resolution: {integrity: sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.60.4': + resolution: {integrity: sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.60.4': + resolution: {integrity: sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.60.4': + resolution: {integrity: sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.60.4': + resolution: {integrity: sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.60.4': + resolution: {integrity: sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.60.4': + resolution: {integrity: sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.60.4': + resolution: {integrity: sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.60.4': + resolution: {integrity: sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.60.4': + resolution: {integrity: sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.60.4': + resolution: {integrity: sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.60.4': + resolution: {integrity: sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.60.4': + resolution: {integrity: sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.60.4': + resolution: {integrity: sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.60.4': + resolution: {integrity: sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.60.4': + resolution: {integrity: sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.60.4': + resolution: {integrity: sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.60.4': + resolution: {integrity: sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.60.4': + resolution: {integrity: sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.60.4': + resolution: {integrity: sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.60.4': + resolution: {integrity: sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.60.4': + resolution: {integrity: sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.60.4': + resolution: {integrity: sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==} + cpu: [x64] + os: [win32] + + '@sveltejs/acorn-typescript@1.0.10': + resolution: {integrity: sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA==} + peerDependencies: + acorn: ^8.9.0 + + '@sveltejs/vite-plugin-svelte-inspector@3.0.1': + resolution: {integrity: sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^4.0.0-next.0||^4.0.0 + svelte: ^5.0.0-next.96 || ^5.0.0 + vite: ^5.0.0 + + '@sveltejs/vite-plugin-svelte@4.0.4': + resolution: {integrity: sha512-0ba1RQ/PHen5FGpdSrW7Y3fAMQjrXantECALeOiOdBdzR5+5vPP6HVZRLmZaQL+W8m++o+haIAKq5qT+MiZ7VA==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: + svelte: ^5.0.0-next.96 || ^5.0.0 + vite: ^5.0.0 + + '@tauri-apps/api@2.11.0': + resolution: {integrity: sha512-7CinYODhky9lmO23xHnUFv0Xt43fbtWMyxZcLcRBlFkcgXKuEirBvHpmtJ89YMhyeGcq20Wuc47Fa4XjyniywA==} + + '@tauri-apps/cli-darwin-arm64@2.11.2': + resolution: {integrity: sha512-+4UZzLt+eOAEQCwgd+TqKgyUJMrvx+BgdXLLaqJYmPqzP+nE6YZr/hY6CWLYGQb8jFn99jEkmC6uA3tNvamA1w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tauri-apps/cli-darwin-x64@2.11.2': + resolution: {integrity: sha512-VjYYtZUPqDMLutSfJEyxFE3Bz+DPi7c8wC3imckgvciLDZLq4qwKJxBicg0BXGhXjJsl8vKWgWRFNMPELQ+Xyg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tauri-apps/cli-linux-arm-gnueabihf@2.11.2': + resolution: {integrity: sha512-yMemD6f4i95AQriS8EazyOFzbE34yjnP16i3IOzpHGQvBoy2DjypFMFBq0NtPuITURv/cOGguRtHR5d79/9CSA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tauri-apps/cli-linux-arm64-gnu@2.11.2': + resolution: {integrity: sha512-cgI91D2wL8GSgoWwZXDqt+DwnuZCP2/bz03QAE4TrhgAKIsrB4hX26W/H1EONPUUNkqrsgeCD0wU6pcNjV/5kw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tauri-apps/cli-linux-arm64-musl@2.11.2': + resolution: {integrity: sha512-X1rm0BERqAAggtYTESSgXrS3sz4Sb/OiPiz54UqISlXW+GkR3vNIGnsy/lejNmoXGVqri3Q53BCfQiclOIyRPw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tauri-apps/cli-linux-riscv64-gnu@2.11.2': + resolution: {integrity: sha512-usbMLJbT3KtkOrBMDVeGYNM35aTHXx38SJSzTMSqqjeUIOQ+iVPjb2yAGNAE+KqmBbAx4FOFIyMeKXx2M/JKGQ==} + engines: {node: '>= 10'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@tauri-apps/cli-linux-x64-gnu@2.11.2': + resolution: {integrity: sha512-Ru4gwJKPG0ctVGchRGpRup4Y4lW2SSfFnrbQcyHhCliKy4g8Qz97TrUgCur4CbWyAgKxvGh3SjrkA0LDYzDGiw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tauri-apps/cli-linux-x64-musl@2.11.2': + resolution: {integrity: sha512-eUm7T6clN1MMmNSRQ9gaWsQdyehQx2Gmn5hht/QUlqZQI/qcP2OJK5dnaxqwFzCr2HdsEo9ydxaqcS1oJzMvUw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tauri-apps/cli-win32-arm64-msvc@2.11.2': + resolution: {integrity: sha512-HeeZW80jU+gVTOEX4X/hC6NVSAdDVXajwP5fxIZ/3z9WvUC7qrudX2GMTilYq6Dg0e0sk0XgsAJD1hZ5wPBXUA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tauri-apps/cli-win32-ia32-msvc@2.11.2': + resolution: {integrity: sha512-YhjQNZcXfbkCLyazSv1nPnJ9iRFE1wm6kc51FDbU10/Dk09io+6PAGMLjkxnX2GdM0qMnDmTjstY8mTDVvtKeA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@tauri-apps/cli-win32-x64-msvc@2.11.2': + resolution: {integrity: sha512-d2JchlFIpZevZVReyqhQOekJmb1UH3rhZ5VX6sH3ty9ETE0TKQavpihvoScUXfKKpW6HZC0MrFGRU0ZtD+w3gA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tauri-apps/cli@2.11.2': + resolution: {integrity: sha512-bk3HemqvGRoy+5D/dVMUQHKMYLglD0jVnMm/0iGMH6ufZ+p8r14m6BpIixwij3PBvZdvORUp1YifTD8QxVZ1Nw==} + engines: {node: '>= 10'} + hasBin: true + + '@tsconfig/svelte@5.0.8': + resolution: {integrity: sha512-UkNnw1/oFEfecR8ypyHIQuWYdkPvHiwcQ78sh+ymIiYoF+uc5H1UBetbjyqT+vgGJ3qQN6nhucJviX6HesWtKQ==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@xterm/addon-fit@0.10.0': + resolution: {integrity: sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==} + peerDependencies: + '@xterm/xterm': ^5.0.0 + + '@xterm/xterm@5.5.0': + resolution: {integrity: sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==} + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + aria-query@5.3.1: + resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==} + engines: {node: '>= 0.4'} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + devalue@5.8.1: + resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + esm-env@1.2.2: + resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} + + esrap@2.2.9: + resolution: {integrity: sha512-4KijP+NxCWthMCUC3qHbE6n4vCjqgJS1uAYKhuT/GWfFTf1Qyive2TgOjep+gzbSzRfnNyaN/UU9YmdOt8Eg0A==} + peerDependencies: + '@typescript-eslint/types': ^8.2.0 + peerDependenciesMeta: + '@typescript-eslint/types': + optional: true + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + engines: {node: ^10 || ^12 || >=14} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + rollup@4.60.4: + resolution: {integrity: sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + svelte-check@4.4.8: + resolution: {integrity: sha512-67adfgBox5eNSNIvIIwgFizKGdcRrGpiMoNO2obHcYuLz7iTa8Xgm/NGU3ntMFnNm8K1grFOIG6HhMLX/vcN8w==} + engines: {node: '>= 18.0.0'} + hasBin: true + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: '>=5.0.0' + + svelte@5.55.9: + resolution: {integrity: sha512-fTjjT8cHLDwigcu2j3pv7Jq04LklXevPB8uBgyHNiTXv+RMNvVnrjS4UEYrLMkhuq1vpCodHjiW+z/95SDs/fg==} + engines: {node: '>=18'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + vite@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vitefu@1.1.3: + resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + vite: + optional: true + + zimmerframe@1.1.4: + resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} + +snapshots: + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@rollup/rollup-android-arm-eabi@4.60.4': + optional: true + + '@rollup/rollup-android-arm64@4.60.4': + optional: true + + '@rollup/rollup-darwin-arm64@4.60.4': + optional: true + + '@rollup/rollup-darwin-x64@4.60.4': + optional: true + + '@rollup/rollup-freebsd-arm64@4.60.4': + optional: true + + '@rollup/rollup-freebsd-x64@4.60.4': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.60.4': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.60.4': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.60.4': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.60.4': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.60.4': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.60.4': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.60.4': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.60.4': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.60.4': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.60.4': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.60.4': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.60.4': + optional: true + + '@rollup/rollup-linux-x64-musl@4.60.4': + optional: true + + '@rollup/rollup-openbsd-x64@4.60.4': + optional: true + + '@rollup/rollup-openharmony-arm64@4.60.4': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.60.4': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.60.4': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.60.4': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.60.4': + optional: true + + '@sveltejs/acorn-typescript@1.0.10(acorn@8.16.0)': + dependencies: + acorn: 8.16.0 + + '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.55.9)(vite@5.4.21))(svelte@5.55.9)(vite@5.4.21)': + dependencies: + '@sveltejs/vite-plugin-svelte': 4.0.4(svelte@5.55.9)(vite@5.4.21) + debug: 4.4.3 + svelte: 5.55.9 + vite: 5.4.21 + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.55.9)(vite@5.4.21)': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.55.9)(vite@5.4.21))(svelte@5.55.9)(vite@5.4.21) + debug: 4.4.3 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.21 + svelte: 5.55.9 + vite: 5.4.21 + vitefu: 1.1.3(vite@5.4.21) + transitivePeerDependencies: + - supports-color + + '@tauri-apps/api@2.11.0': {} + + '@tauri-apps/cli-darwin-arm64@2.11.2': + optional: true + + '@tauri-apps/cli-darwin-x64@2.11.2': + optional: true + + '@tauri-apps/cli-linux-arm-gnueabihf@2.11.2': + optional: true + + '@tauri-apps/cli-linux-arm64-gnu@2.11.2': + optional: true + + '@tauri-apps/cli-linux-arm64-musl@2.11.2': + optional: true + + '@tauri-apps/cli-linux-riscv64-gnu@2.11.2': + optional: true + + '@tauri-apps/cli-linux-x64-gnu@2.11.2': + optional: true + + '@tauri-apps/cli-linux-x64-musl@2.11.2': + optional: true + + '@tauri-apps/cli-win32-arm64-msvc@2.11.2': + optional: true + + '@tauri-apps/cli-win32-ia32-msvc@2.11.2': + optional: true + + '@tauri-apps/cli-win32-x64-msvc@2.11.2': + optional: true + + '@tauri-apps/cli@2.11.2': + optionalDependencies: + '@tauri-apps/cli-darwin-arm64': 2.11.2 + '@tauri-apps/cli-darwin-x64': 2.11.2 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.11.2 + '@tauri-apps/cli-linux-arm64-gnu': 2.11.2 + '@tauri-apps/cli-linux-arm64-musl': 2.11.2 + '@tauri-apps/cli-linux-riscv64-gnu': 2.11.2 + '@tauri-apps/cli-linux-x64-gnu': 2.11.2 + '@tauri-apps/cli-linux-x64-musl': 2.11.2 + '@tauri-apps/cli-win32-arm64-msvc': 2.11.2 + '@tauri-apps/cli-win32-ia32-msvc': 2.11.2 + '@tauri-apps/cli-win32-x64-msvc': 2.11.2 + + '@tsconfig/svelte@5.0.8': {} + + '@types/estree@1.0.8': {} + + '@types/estree@1.0.9': {} + + '@types/trusted-types@2.0.7': {} + + '@xterm/addon-fit@0.10.0(@xterm/xterm@5.5.0)': + dependencies: + '@xterm/xterm': 5.5.0 + + '@xterm/xterm@5.5.0': {} + + acorn@8.16.0: {} + + aria-query@5.3.1: {} + + axobject-query@4.1.0: {} + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + clsx@2.1.1: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + deepmerge@4.3.1: {} + + devalue@5.8.1: {} + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + esm-env@1.2.2: {} + + esrap@2.2.9: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + fdir@6.5.0: {} + + fsevents@2.3.3: + optional: true + + is-reference@3.0.3: + dependencies: + '@types/estree': 1.0.9 + + kleur@4.1.5: {} + + locate-character@3.0.0: {} + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + mri@1.2.0: {} + + ms@2.1.3: {} + + nanoid@3.3.12: {} + + picocolors@1.1.1: {} + + postcss@8.5.15: + dependencies: + nanoid: 3.3.12 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + readdirp@4.1.2: {} + + rollup@4.60.4: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.60.4 + '@rollup/rollup-android-arm64': 4.60.4 + '@rollup/rollup-darwin-arm64': 4.60.4 + '@rollup/rollup-darwin-x64': 4.60.4 + '@rollup/rollup-freebsd-arm64': 4.60.4 + '@rollup/rollup-freebsd-x64': 4.60.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.4 + '@rollup/rollup-linux-arm-musleabihf': 4.60.4 + '@rollup/rollup-linux-arm64-gnu': 4.60.4 + '@rollup/rollup-linux-arm64-musl': 4.60.4 + '@rollup/rollup-linux-loong64-gnu': 4.60.4 + '@rollup/rollup-linux-loong64-musl': 4.60.4 + '@rollup/rollup-linux-ppc64-gnu': 4.60.4 + '@rollup/rollup-linux-ppc64-musl': 4.60.4 + '@rollup/rollup-linux-riscv64-gnu': 4.60.4 + '@rollup/rollup-linux-riscv64-musl': 4.60.4 + '@rollup/rollup-linux-s390x-gnu': 4.60.4 + '@rollup/rollup-linux-x64-gnu': 4.60.4 + '@rollup/rollup-linux-x64-musl': 4.60.4 + '@rollup/rollup-openbsd-x64': 4.60.4 + '@rollup/rollup-openharmony-arm64': 4.60.4 + '@rollup/rollup-win32-arm64-msvc': 4.60.4 + '@rollup/rollup-win32-ia32-msvc': 4.60.4 + '@rollup/rollup-win32-x64-gnu': 4.60.4 + '@rollup/rollup-win32-x64-msvc': 4.60.4 + fsevents: 2.3.3 + + sade@1.8.1: + dependencies: + mri: 1.2.0 + + source-map-js@1.2.1: {} + + svelte-check@4.4.8(svelte@5.55.9)(typescript@5.9.3): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + chokidar: 4.0.3 + fdir: 6.5.0 + picocolors: 1.1.1 + sade: 1.8.1 + svelte: 5.55.9 + typescript: 5.9.3 + transitivePeerDependencies: + - picomatch + + svelte@5.55.9: + dependencies: + '@jridgewell/remapping': 2.3.5 + '@jridgewell/sourcemap-codec': 1.5.5 + '@sveltejs/acorn-typescript': 1.0.10(acorn@8.16.0) + '@types/estree': 1.0.9 + '@types/trusted-types': 2.0.7 + acorn: 8.16.0 + aria-query: 5.3.1 + axobject-query: 4.1.0 + clsx: 2.1.1 + devalue: 5.8.1 + esm-env: 1.2.2 + esrap: 2.2.9 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.21 + zimmerframe: 1.1.4 + transitivePeerDependencies: + - '@typescript-eslint/types' + + typescript@5.9.3: {} + + vite@5.4.21: + dependencies: + esbuild: 0.21.5 + postcss: 8.5.15 + rollup: 4.60.4 + optionalDependencies: + fsevents: 2.3.3 + + vitefu@1.1.3(vite@5.4.21): + optionalDependencies: + vite: 5.4.21 + + zimmerframe@1.1.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..5ed0b5a --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +allowBuilds: + esbuild: true diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock new file mode 100644 index 0000000..6076e27 --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,4853 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[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 = "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 = "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 = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bit-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 = "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 = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +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 = "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 = "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 = "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 = "chrono" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link 0.2.1", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[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.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.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" +dependencies = [ + "bitflags 2.11.1", + "core-foundation", + "core-graphics-types", + "foreign-types", + "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", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[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-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[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 = "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 = "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 = "deranged" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +dependencies = [ + "powerfmt", + "serde_core", +] + +[[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", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[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", + "windows-sys 0.61.2", +] + +[[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 = "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 = "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 = "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 = "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 0.55.0", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[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 = "fastrand" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset 0.9.1", + "rustc_version", +] + +[[package]] +name = "filedescriptor" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" +dependencies = [ + "libc", + "thiserror 1.0.69", + "winapi", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[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 = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", +] + +[[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-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[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 = "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", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[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 = "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 = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.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 = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[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 = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[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-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 = "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 = "ioctl-rs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7970510895cee30b3e9128319f2cefd4bde883a39f38baa279567ba3a7eb97d" +dependencies = [ + "libc", +] + +[[package]] +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[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 = "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 = "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" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.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 = [ + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +dependencies = [ + "libc", +] + +[[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 = "markup5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" +dependencies = [ + "log", + "tendril", + "web_atoms", +] + +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.1" +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 = "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 = "muda" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a2e3dff89cd322c66647942668faee0a2b1f88ea6cbb4d374b4a8d7e92528c" +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 = "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.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.6.5", + "pin-utils", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "num-conv" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.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-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", + "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 = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[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_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", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[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 = "pkg-config" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[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", + "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 = "portable-pty" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "806ee80c2a03dbe1a9fb9534f8d19e4c0546b790cde8fd1fea9d6390644cb0be" +dependencies = [ + "anyhow", + "bitflags 1.3.2", + "downcast-rs", + "filedescriptor", + "lazy_static", + "libc", + "log", + "nix", + "serial", + "shared_library", + "shell-words", + "winapi", + "winreg 0.10.1", +] + +[[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 = "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 = "quick-xml" +version = "0.39.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e" +dependencies = [ + "memchr", +] + +[[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 = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[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_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 = "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 = "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 = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[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 = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[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", + "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.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +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_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 = "serial" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1237a96570fc377c13baa1b88c7589ab66edced652e43ffb17088f003db3e86" +dependencies = [ + "serial-core", + "serial-unix", + "serial-windows", +] + +[[package]] +name = "serial-core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f46209b345401737ae2125fe5b19a77acce90cd53e1658cda928e4fe9a64581" +dependencies = [ + "libc", +] + +[[package]] +name = "serial-unix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f03fbca4c9d866e24a459cbca71283f545a37f8e3e002ad8c70593871453cab7" +dependencies = [ + "ioctl-rs", + "libc", + "serial-core", + "termios", +] + +[[package]] +name = "serial-windows" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15c6d3b776267a75d31bbdfd5d36c0ca051251caafc285827052bc53bcdc8162" +dependencies = [ + "libc", + "serial-core", +] + +[[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 = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared_library" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11" +dependencies = [ + "lazy_static", + "libc", +] + +[[package]] +name = "shell-words" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" + +[[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 = "simd-adler32" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" + +[[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" + +[[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", + "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 = "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 = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "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", + "core-graphics", + "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", + "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 = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "437404997acf375d85f1177afa7e11bb971f274ed6a7b83a2a3e339015f4cc28" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "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", + "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", +] + +[[package]] +name = "tauri-build" +version = "2.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aa1f9055fc23919a54e4e125052bed16ed04aef0487086e758fe01a67b451c7" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a0319528a025a38c4078e7dae2c446f4e63620ddb0659a643ede1cb38f90e9" +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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6cb4e3896c21d2f6da5b31251d2faea0153bba56ed0e970f918115dbee4924" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.117", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-runtime" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48222d7116c8807eaa6fe2f372e023fae125084e61e6eca6d70b7961cdf129ef" +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", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b83849ee63ecb27a8e8d0fe51915ca215076914aca43f96db1179f0f415f6cd9" +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", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "092379df9a707631978e6c56b1bc2401d387f01e2d4a3c123360d167bbb9aa95" +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 = "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 = "termios" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5d9cf598a6d7ce700a4e6a9199da127e6819a61e64b68609683cc9a01b5683a" +dependencies = [ + "libc", +] + +[[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 = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + +[[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 = "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", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "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-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.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +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 = [ + "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", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tray-icon" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15edbb0d80583e85ee8df283410038e17314df5cba30da2087a54a85216c0773" +dependencies = [ + "crossbeam-channel", + "dirs", + "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 = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[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 = "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-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[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 = "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_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 = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[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 = "wasm-bindgen" +version = "0.2.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "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 = "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_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 = "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", + "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", + "windows-core 0.61.2", +] + +[[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.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.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.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.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.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-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.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[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.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[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.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[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.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[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.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[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.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "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.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] + +[[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 = "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", + "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", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "wsl-mux-spike" +version = "0.0.1" +dependencies = [ + "anyhow", + "base64 0.22.1", + "once_cell", + "parking_lot", + "portable-pty", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[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 = "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 = "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 = "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 = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 0000000..0a3a136 --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,40 @@ +[package] +name = "tiletopia" +version = "0.0.1" +description = "Tiling multi-terminal manager for WSL" +authors = ["megaproxy"] +edition = "2021" +rust-version = "1.77" + +[lib] +name = "tiletopia_lib" +crate-type = ["staticlib", "cdylib", "rlib"] + +[build-dependencies] +tauri-build = { version = "2", features = [] } + +[dependencies] +tauri = { version = "2", features = [] } + +serde = { version = "1", features = ["derive"] } +serde_json = "1" + +portable-pty = "0.8" +anyhow = "1" +tokio = { version = "1", features = ["full"] } +once_cell = "1" +parking_lot = "0.12" +tracing = "0.1" +tracing-subscriber = { version = "0.3", features = ["env-filter"] } +base64 = "0.22" + +[features] +default = ["custom-protocol"] +custom-protocol = ["tauri/custom-protocol"] + +[profile.release] +panic = "abort" +codegen-units = 1 +lto = true +opt-level = "s" +strip = true diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 0000000..d860e1e --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json new file mode 100644 index 0000000..3547edf --- /dev/null +++ b/src-tauri/capabilities/default.json @@ -0,0 +1,11 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "Default capability set for wsl-mux spike", + "windows": ["main"], + "permissions": [ + "core:default", + "core:event:default", + "core:window:default" + ] +} diff --git a/src-tauri/gen/schemas/acl-manifests.json b/src-tauri/gen/schemas/acl-manifests.json new file mode 100644 index 0000000..0eebfc4 --- /dev/null +++ b/src-tauri/gen/schemas/acl-manifests.json @@ -0,0 +1 @@ +{"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}} \ No newline at end of file diff --git a/src-tauri/gen/schemas/capabilities.json b/src-tauri/gen/schemas/capabilities.json new file mode 100644 index 0000000..ee925c2 --- /dev/null +++ b/src-tauri/gen/schemas/capabilities.json @@ -0,0 +1 @@ +{"default":{"identifier":"default","description":"Default capability set for wsl-mux spike","local":true,"windows":["main"],"permissions":["core:default","core:event:default","core:window:default"]}} \ No newline at end of file diff --git a/src-tauri/gen/schemas/desktop-schema.json b/src-tauri/gen/schemas/desktop-schema.json new file mode 100644 index 0000000..3286645 --- /dev/null +++ b/src-tauri/gen/schemas/desktop-schema.json @@ -0,0 +1,2292 @@ +{ + "$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": [ + { + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + "allow": { + "description": "Data that defines what is allowed by the scope.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + }, + "deny": { + "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + } + } + } + ], + "required": [ + "identifier" + ] + } + ] + }, + "Identifier": { + "description": "Permission identifier", + "oneOf": [ + { + "description": "Default core plugins set.\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." + } + ] + }, + "Value": { + "description": "All supported ACL values.", + "anyOf": [ + { + "description": "Represents a null JSON value.", + "type": "null" + }, + { + "description": "Represents a [`bool`].", + "type": "boolean" + }, + { + "description": "Represents a valid ACL [`Number`].", + "allOf": [ + { + "$ref": "#/definitions/Number" + } + ] + }, + { + "description": "Represents a [`String`].", + "type": "string" + }, + { + "description": "Represents a list of other [`Value`]s.", + "type": "array", + "items": { + "$ref": "#/definitions/Value" + } + }, + { + "description": "Represents a map of [`String`] keys to [`Value`]s.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Value" + } + } + ] + }, + "Number": { + "description": "A valid ACL number.", + "anyOf": [ + { + "description": "Represents an [`i64`].", + "type": "integer", + "format": "int64" + }, + { + "description": "Represents a [`f64`].", + "type": "number", + "format": "double" + } + ] + }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/src-tauri/gen/schemas/windows-schema.json b/src-tauri/gen/schemas/windows-schema.json new file mode 100644 index 0000000..3286645 --- /dev/null +++ b/src-tauri/gen/schemas/windows-schema.json @@ -0,0 +1,2292 @@ +{ + "$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": [ + { + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + "allow": { + "description": "Data that defines what is allowed by the scope.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + }, + "deny": { + "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + } + } + } + ], + "required": [ + "identifier" + ] + } + ] + }, + "Identifier": { + "description": "Permission identifier", + "oneOf": [ + { + "description": "Default core plugins set.\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." + } + ] + }, + "Value": { + "description": "All supported ACL values.", + "anyOf": [ + { + "description": "Represents a null JSON value.", + "type": "null" + }, + { + "description": "Represents a [`bool`].", + "type": "boolean" + }, + { + "description": "Represents a valid ACL [`Number`].", + "allOf": [ + { + "$ref": "#/definitions/Number" + } + ] + }, + { + "description": "Represents a [`String`].", + "type": "string" + }, + { + "description": "Represents a list of other [`Value`]s.", + "type": "array", + "items": { + "$ref": "#/definitions/Value" + } + }, + { + "description": "Represents a map of [`String`] keys to [`Value`]s.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Value" + } + } + ] + }, + "Number": { + "description": "A valid ACL number.", + "anyOf": [ + { + "description": "Represents an [`i64`].", + "type": "integer", + "format": "int64" + }, + { + "description": "Represents a [`f64`].", + "type": "number", + "format": "double" + } + ] + }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..1e87f29f695e49ff9b2aa7853633c4b241a5ce93 GIT binary patch literal 10102 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 O2(q!Xw#4I*+j4)p1{8X zk)6F=9s54$PYQnopsKq5F;S{n1g!liZYKrFk7>=ebgHfyUNsW{8VIVY>wl>n-E4v& z$bTvyY3ApewIC>^9p41M>P;QL5zqoqU0uHvrCztzcz^>_hTRl?0*HuGQed^#Vy&5y z0`NstD6nQ_Z|eA71z<#O$gkDuB`MZ9ATJ^ZL|af}Fa-e<@dF-E=UgyyvJJy_Se4j zC|xqU-&4h()FqfdH)4rvaw00MI3o@T*%kZTj|x4bAPFH$Sqd zyrTA&{(*r@X4THEO(tqe%M&wcoV8Rwz3|IieaRY@G<=rF+ivB}_BP^?WN`=z>s?u0 z_o7nzN^4C(epf&t>?M)#-V?`;tOl}8i!a`oPN!R}wWSjSctMUJ@CX8*vUnw{mbI{E zWeb6^Yb8LTUBfr>n8(Im?*E~W^MI+;0wx}?R0a!q0&#v8k>xS0$rbWx{ z9vmFJ9`Fk9oJ=O8W3ia3xuAw@c7)-PA+!#WjL+o7H@EWKo=2&vC}s7Ejd=bzQe<;Y z24KjG?%g*I?0M$4+rQtGN_XE{Xm`t`^k4%KL0A}W_*&IH!^7yiUE*FBwm?yK~4JCzj^w4uo1v$t);)epVrn}ShT2# z_3K+`X=!Em?iYCMv7ZwTyZC{RAJ!VQa%t~8z_m8g?IBJgcZzD>mQJgTd!@O_U=CPOqD#TY|08fEL&C+X|!!*Lv} zwP@uqFx*Wx2g$??937hUn4VOG)*5D(H%%|EC>`*E(Omwlw`i>y8XCrRUBclo##kK3 zVSId?6)RQ{jYbKA|L%EPm~k-yo&%tiCObBuu2{0puDfjWBfGW?-an(fA>;=hAh@o} zsZ*yocI+7I)_t8!Z<yqq!lJIBFu?_uO+YO-)TavGqxQ@S`7c=bd+O-+lL!&5okA zMi2rsPGjv-!Y*`l9V~?Z+(F(}f?b@$#@x{xCL?Ue8{xs=ynnWUwF&6NMN6NW$;aBJ%vK;EzL&zyPKMfcgP#Ue| zz20_t?a&`}V{MImVOc9fqZzbzFb2Y57p*lfzx)c%Kfjy){(j=|ymLo8436}2)zTI& zteee&!+)kD^><1_vGW(9u>m0`%+7reaH?m3H7nQixletQ%wQMR8kA_1(v+1=Bbh8G z6mk(1V8{%1@tGy-xbCu6Qkh|P?7bgHg-#3dya22$&3y~5ChoFB54jgV{$KEY;cK?&u zGw9Yl#j>rj5gz%K~5 zgjl!~Tj*27tO(Xvj>1GusLb!IRo?}%6l#HUdRc=7+)$JfH;%<(3%3_>1wk;@U_P`g zw-yj(?K2b{X&|VaQMXMi=O$wUzrgUZT}*<&|7}nD#9BZ*6l%YoRQ=6WGfs$zy76PX zngPa|?UmDG-{?u_4~~gh=F=TeU0rv%Mb=oMQLGIy^)2aq%vuo-;iv?%qr1D~FK7GY f0}cQ8>-m2G0FzpyEBt^R00000NkvXXu0mjfDlfOQ literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..c8e09bbed2f77e48118be1dc2db22804d6e35452 GIT binary patch literal 254987 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­lj`UWvvxo^zFKwb(Y^h` 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

51;q=JE??)Q6T=o0i}!rKDDXm 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 O00004hDT<^ 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 literal 0 HcmV?d00001 diff --git a/src-tauri/src/commands.rs b/src-tauri/src/commands.rs new file mode 100644 index 0000000..e4cb3bf --- /dev/null +++ b/src-tauri/src/commands.rs @@ -0,0 +1,57 @@ +//! Tauri command surface. Every JS-callable function lives here. + +use base64::{engine::general_purpose::STANDARD as B64, Engine as _}; +use tauri::AppHandle; + +use crate::pty::{list_wsl_distros, PaneId, PtyManager}; + +#[tauri::command] +pub async fn list_distros() -> Result, String> { + list_wsl_distros().map_err(|e| e.to_string()) +} + +#[tauri::command] +pub async fn spawn_pane( + app: AppHandle, + manager: tauri::State<'_, PtyManager>, + distro: Option, + cwd: Option, + cols: u16, + rows: u16, +) -> Result { + manager + .spawn_wsl(app, distro, cwd, cols, rows) + .map_err(|e| e.to_string()) +} + +/// `data_b64` is base64-encoded UTF-8 bytes (xterm.js's `onData` emits +/// strings; the frontend encodes before sending). +#[tauri::command] +pub async fn write_to_pane( + manager: tauri::State<'_, PtyManager>, + id: PaneId, + data_b64: String, +) -> Result<(), String> { + let bytes = B64 + .decode(data_b64.as_bytes()) + .map_err(|e| format!("base64 decode: {e}"))?; + manager.write(id, &bytes).map_err(|e| e.to_string()) +} + +#[tauri::command] +pub async fn resize_pane( + manager: tauri::State<'_, PtyManager>, + id: PaneId, + cols: u16, + rows: u16, +) -> Result<(), String> { + manager.resize(id, cols, rows).map_err(|e| e.to_string()) +} + +#[tauri::command] +pub async fn kill_pane( + manager: tauri::State<'_, PtyManager>, + id: PaneId, +) -> Result<(), String> { + manager.kill(id).map_err(|e| e.to_string()) +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs new file mode 100644 index 0000000..4e7e3ac --- /dev/null +++ b/src-tauri/src/lib.rs @@ -0,0 +1,28 @@ +//! Library entry point. `main.rs` calls `run()`. + +mod commands; +mod pty; + +use crate::pty::PtyManager; + +pub fn run() { + let _ = tracing_subscriber::fmt() + .with_env_filter( + tracing_subscriber::EnvFilter::try_from_default_env() + .unwrap_or_else(|_| tracing_subscriber::EnvFilter::new("info")), + ) + .with_writer(std::io::stderr) + .try_init(); + + tauri::Builder::default() + .manage(PtyManager::new()) + .invoke_handler(tauri::generate_handler![ + commands::list_distros, + commands::spawn_pane, + commands::write_to_pane, + commands::resize_pane, + commands::kill_pane, + ]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 0000000..567ba51 --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,6 @@ +// Hide the console window in release builds; keep it in debug for log output. +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + tiletopia_lib::run(); +} diff --git a/src-tauri/src/pty.rs b/src-tauri/src/pty.rs new file mode 100644 index 0000000..fb45a9f --- /dev/null +++ b/src-tauri/src/pty.rs @@ -0,0 +1,229 @@ +//! PTY backend. Spawns `wsl.exe` (or any command) through portable-pty, +//! reads its output on a background thread, and forwards chunks to the +//! frontend as `pane://{id}/data` events. + +use std::collections::HashMap; +use std::io::{Read, Write}; +use std::sync::atomic::{AtomicU64, Ordering}; + +use anyhow::{anyhow, Context, Result}; +use base64::{engine::general_purpose::STANDARD as B64, Engine as _}; +use parking_lot::Mutex; +use portable_pty::{CommandBuilder, MasterPty, PtySize, native_pty_system}; +use serde::Serialize; +use tauri::{AppHandle, Emitter}; + +pub type PaneId = u64; + +/// What we keep alive for each spawned PTY. +/// +/// `master` stays in scope to keep the PTY alive; we never write through it +/// directly (we use `writer` instead) and we never read through it directly +/// (the reader thread holds its own clone via `try_clone_reader`). +struct PaneHandle { + #[allow(dead_code)] + master: Box, + writer: Box, + #[allow(dead_code)] + child: Box, +} + +pub struct PtyManager { + panes: Mutex>, + next_id: AtomicU64, +} + +impl PtyManager { + pub fn new() -> Self { + Self { + panes: Mutex::new(HashMap::new()), + next_id: AtomicU64::new(1), + } + } + + /// Spawn `wsl.exe` (optionally `-d `, optionally `--cd `). + /// Returns the new pane id. A background thread starts reading the PTY + /// immediately and emits `pane://{id}/data` events. + pub fn spawn_wsl( + &self, + app: AppHandle, + distro: Option, + cwd: Option, + cols: u16, + rows: u16, + ) -> Result { + let pty_system = native_pty_system(); + let pair = pty_system + .openpty(PtySize { + rows, + cols, + pixel_width: 0, + pixel_height: 0, + }) + .context("openpty failed")?; + + let mut cmd = CommandBuilder::new("wsl.exe"); + if let Some(d) = distro.as_deref() { + cmd.arg("-d"); + cmd.arg(d); + } + if let Some(c) = cwd.as_deref() { + cmd.arg("--cd"); + cmd.arg(c); + } + // Force a login shell so .bashrc etc. run and PATH is populated. + // wsl.exe without an explicit command launches the default shell + // interactively, which is exactly what we want. + + let child = pair + .slave + .spawn_command(cmd) + .context("failed to spawn wsl.exe; is WSL installed?")?; + + // We need to keep the master alive (drop = close the PTY), but we + // also need the reader and writer split from it. + let mut reader = pair + .master + .try_clone_reader() + .context("try_clone_reader failed")?; + let writer = pair + .master + .take_writer() + .context("take_writer failed")?; + + let id = self.next_id.fetch_add(1, Ordering::Relaxed); + + self.panes.lock().insert( + id, + PaneHandle { + master: pair.master, + writer, + child, + }, + ); + + // Reader thread: pump bytes -> base64 -> emit. + let app_for_reader = app.clone(); + let event_name = format!("pane://{id}/data"); + std::thread::spawn(move || { + let mut buf = [0u8; 8192]; + loop { + match reader.read(&mut buf) { + Ok(0) => { + tracing::info!("pane {id}: EOF"); + let _ = app_for_reader.emit(&format!("pane://{id}/exit"), ()); + break; + } + Ok(n) => { + let chunk_b64 = B64.encode(&buf[..n]); + if let Err(e) = + app_for_reader.emit(&event_name, DataChunk { b64: chunk_b64 }) + { + tracing::warn!("emit failed for pane {id}: {e}"); + } + } + Err(e) => { + tracing::warn!("pane {id} read error: {e}"); + let _ = app_for_reader.emit(&format!("pane://{id}/exit"), ()); + break; + } + } + } + }); + + Ok(id) + } + + pub fn write(&self, id: PaneId, bytes: &[u8]) -> Result<()> { + let mut panes = self.panes.lock(); + let pane = panes + .get_mut(&id) + .ok_or_else(|| anyhow!("no pane with id {id}"))?; + pane.writer.write_all(bytes).context("pty write failed")?; + pane.writer.flush().ok(); + Ok(()) + } + + pub fn resize(&self, id: PaneId, cols: u16, rows: u16) -> Result<()> { + let panes = self.panes.lock(); + let pane = panes + .get(&id) + .ok_or_else(|| anyhow!("no pane with id {id}"))?; + pane.master + .resize(PtySize { + rows, + cols, + pixel_width: 0, + pixel_height: 0, + }) + .context("pty resize failed")?; + Ok(()) + } + + pub fn kill(&self, id: PaneId) -> Result<()> { + let mut panes = self.panes.lock(); + if let Some(mut pane) = panes.remove(&id) { + // Best-effort: ask the child to die. Dropping `master` after this + // closes the PTY which will unblock the reader thread. + let _ = pane.child.kill(); + } + Ok(()) + } +} + +#[derive(Serialize, Clone)] +struct DataChunk { + b64: String, +} + +// ---- distro enumeration ----------------------------------------------------- + +/// Run a process without flashing a console window on Windows. +fn quiet_command(program: &str) -> std::process::Command { + let mut c = std::process::Command::new(program); + #[cfg(windows)] + { + use std::os::windows::process::CommandExt; + const CREATE_NO_WINDOW: u32 = 0x08000000; + c.creation_flags(CREATE_NO_WINDOW); + } + c +} + +/// `wsl.exe -l -q` lists installed distros (one per line, UTF-16LE). +/// Returns Ok(empty) on non-Windows or when wsl.exe isn't on PATH. +pub fn list_wsl_distros() -> Result> { + if !cfg!(windows) { + return Ok(Vec::new()); + } + + let out = match quiet_command("wsl.exe").args(["-l", "-q"]).output() { + Ok(o) => o, + Err(e) => { + tracing::debug!("wsl.exe not available: {e}"); + return Ok(Vec::new()); + } + }; + + if !out.status.success() { + return Ok(Vec::new()); + } + + let raw_u16: Vec = out + .stdout + .chunks_exact(2) + .map(|b| u16::from_le_bytes([b[0], b[1]])) + .collect(); + let decoded = String::from_utf16_lossy(&raw_u16); + + let distros: Vec = decoded + .lines() + .map(|l| { + l.trim_matches(|c: char| c == '\u{FEFF}' || c.is_whitespace()) + .to_string() + }) + .filter(|l| !l.is_empty()) + .collect(); + + Ok(distros) +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 0000000..fa0ce7b --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "productName": "tiletopia", + "version": "0.0.1", + "identifier": "com.megaproxy.tiletopia", + "build": { + "beforeDevCommand": "pnpm dev", + "beforeBuildCommand": "pnpm build", + "devUrl": "http://localhost:1420", + "frontendDist": "../dist" + }, + "app": { + "windows": [ + { + "label": "main", + "title": "tiletopia", + "width": 1100, + "height": 700, + "minWidth": 480, + "minHeight": 320, + "resizable": true, + "decorations": true, + "center": true, + "visible": true + } + ], + "security": { + "csp": "default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'; connect-src 'self' ipc: http://ipc.localhost" + } + }, + "plugins": {}, + "bundle": { + "active": true, + "targets": ["nsis"], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "category": "DeveloperTool", + "shortDescription": "Tiling multi-terminal manager for WSL", + "longDescription": "A Windows desktop app for managing many WSL terminals at once. Tile them with a splits-tree layout, save and restore workspaces, broadcast input across panes, get notified when a Claude session finishes. Built primarily for running multiple Claude Code sessions across projects in parallel." + } +} diff --git a/src/App.svelte b/src/App.svelte new file mode 100644 index 0000000..f937082 --- /dev/null +++ b/src/App.svelte @@ -0,0 +1,112 @@ + + +
+
+ tiletopia + + + {#if distros.length === 0} + no distros enumerated + {:else} + {#each distros as d} + + {/each} + {/if} + + + {status} +
+ +
+ {#if loadError} +
listDistros failed: {loadError}
+ {:else if selected !== undefined || distros.length === 0} + {#key selected} + { + status = msg; + statusOk = ok; + }} + /> + {/key} + {/if} +
+
+ + diff --git a/src/components/XtermPane.svelte b/src/components/XtermPane.svelte new file mode 100644 index 0000000..e9fe79e --- /dev/null +++ b/src/components/XtermPane.svelte @@ -0,0 +1,143 @@ + + +
+ + diff --git a/src/ipc.ts b/src/ipc.ts new file mode 100644 index 0000000..141c343 --- /dev/null +++ b/src/ipc.ts @@ -0,0 +1,32 @@ +import { invoke } from "@tauri-apps/api/core"; +import { listen, type UnlistenFn } from "@tauri-apps/api/event"; + +export type PaneId = number; + +export const listDistros = (): Promise => invoke("list_distros"); + +export const spawnPane = (args: { + distro?: string; + cwd?: string; + cols: number; + rows: number; +}): Promise => invoke("spawn_pane", args); + +export const writeToPane = (id: PaneId, dataB64: string): Promise => + invoke("write_to_pane", { id, dataB64 }); + +export const resizePane = (id: PaneId, cols: number, rows: number): Promise => + invoke("resize_pane", { id, cols, rows }); + +export const killPane = (id: PaneId): Promise => invoke("kill_pane", { id }); + +export const onPaneData = ( + id: PaneId, + cb: (b64: string) => void, +): Promise => + listen<{ b64: string }>(`pane://${id}/data`, (e) => cb(e.payload.b64)); + +export const onPaneExit = ( + id: PaneId, + cb: () => void, +): Promise => listen(`pane://${id}/exit`, () => cb()); diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..0a47e0c --- /dev/null +++ b/src/main.ts @@ -0,0 +1,8 @@ +import { mount } from "svelte"; +import App from "./App.svelte"; +import "@xterm/xterm/css/xterm.css"; +import "./styles.css"; + +const app = mount(App, { target: document.getElementById("app")! }); + +export default app; diff --git a/src/styles.css b/src/styles.css new file mode 100644 index 0000000..27653f3 --- /dev/null +++ b/src/styles.css @@ -0,0 +1,65 @@ +:root { + color-scheme: dark; + font-family: system-ui, -apple-system, "Segoe UI", sans-serif; + font-size: 13px; + background: #0c0c0c; + color: #e6e6e6; +} + +html, +body, +#app { + margin: 0; + padding: 0; + height: 100%; + width: 100%; + overflow: hidden; +} + +.app { + display: flex; + flex-direction: column; + height: 100vh; + background: #0c0c0c; +} + +.titlebar { + flex: 0 0 auto; + display: flex; + align-items: center; + gap: 12px; + padding: 6px 12px; + background: #1a1a1a; + border-bottom: 1px solid #2a2a2a; + font-size: 12px; + color: #aaa; + user-select: none; +} + +.titlebar .label { + font-weight: 600; + color: #ddd; +} + +.titlebar .distro { + font-family: "Cascadia Mono", "JetBrains Mono", "Consolas", monospace; + color: #88c; +} + +.titlebar .status { + margin-left: auto; + font-family: "Cascadia Mono", "JetBrains Mono", "Consolas", monospace; +} + +.titlebar .status.ok { + color: #6c6; +} +.titlebar .status.err { + color: #d66; +} + +.pane-wrap { + flex: 1 1 auto; + min-height: 0; + position: relative; +} diff --git a/svelte.config.js b/svelte.config.js new file mode 100644 index 0000000..d0e6448 --- /dev/null +++ b/svelte.config.js @@ -0,0 +1,5 @@ +import { vitePreprocess } from "@sveltejs/vite-plugin-svelte"; + +export default { + preprocess: vitePreprocess(), +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..4091665 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "moduleResolution": "Bundler", + "strict": true, + "isolatedModules": true, + "skipLibCheck": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "verbatimModuleSyntax": true + }, + "include": ["src/**/*.ts", "src/**/*.svelte"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..cbd2a63 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "allowSyntheticDefaultImports": true, + "strict": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..415c23a --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,19 @@ +import { defineConfig } from "vite"; +import { svelte } from "@sveltejs/vite-plugin-svelte"; + +export default defineConfig(async () => ({ + plugins: [svelte()], + clearScreen: false, + server: { + port: 1420, + strictPort: true, + host: "127.0.0.1", + hmr: { protocol: "ws", host: "127.0.0.1", port: 1421 }, + watch: { ignored: ["**/src-tauri/**"] }, + }, + build: { + target: "esnext", + minify: "esbuild", + sourcemap: false, + }, +}));