From 5fd1c1b243261d5a758c39fda6d3b3daafe6c145 Mon Sep 17 00:00:00 2001 From: Rob Howley Date: Tue, 4 Aug 2026 22:28:44 -0400 Subject: [PATCH] chore(pi-session-deck)!: retire desktop app --- .github/CONTRIBUTING.md | 1 - .github/release-please-config.json | 5 +- .github/workflows/release-please.yml | 197 +- .github/workflows/session-deck-desktop.yml | 120 - .gitignore | 1 - README.md | 2 +- apps/session-deck-desktop/README.md | 30 - apps/session-deck-desktop/RELEASE.md | 94 - .../__tests__/ci-workflow.test.ts | 61 - .../__tests__/launch-branch.test.ts | 28 - .../__tests__/release-artifacts.test.ts | 142 - .../__tests__/release-workflow.test.ts | 174 - .../__tests__/sync-web-assets.test.ts | 75 - .../__tests__/tauri-config.test.ts | 223 - .../__tests__/tauri-host.test.ts | 168 - .../fixtures/runtime-layout-v1.json | 8 - apps/session-deck-desktop/package.json | 29 - .../scripts/build-macos-artifacts.js | 392 -- .../scripts/launch-branch.js | 403 -- .../session-deck-desktop/scripts/run-cargo.js | 116 - .../session-deck-desktop/scripts/run-tauri.js | 37 - .../scripts/sync-web-assets.js | 61 - .../session-deck-desktop/src-tauri/Cargo.lock | 4825 ----------------- .../session-deck-desktop/src-tauri/Cargo.toml | 30 - .../session-deck-desktop/src-tauri/Info.plist | 8 - apps/session-deck-desktop/src-tauri/build.rs | 3 - .../src-tauri/capabilities/default.json | 7 - .../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/macOS-schema.json | 2292 -------- .../src-tauri/icons/icon.icns | Bin 780629 -> 0 bytes .../src-tauri/icons/icon.png | Bin 417641 -> 0 bytes .../src-tauri/icons/tray-icon.png | Bin 321 -> 0 bytes .../src-tauri/icons/tray-icon.svg | 15 - .../src-tauri/src/commands.rs | 621 --- .../src-tauri/src/doctor.rs | 5 - .../src-tauri/src/helper_runner.rs | 968 ---- .../session-deck-desktop/src-tauri/src/lib.rs | 69 - .../src-tauri/src/main.rs | 5 - .../src-tauri/src/runtime.rs | 1850 ------- .../src-tauri/tauri.conf.json | 49 - apps/session-deck-desktop/tsconfig.json | 12 - apps/session-deck-desktop/web/app.js | 88 - apps/session-deck-desktop/web/index.html | 48 - .../web/session-deck-ui.js | 3389 ------------ apps/session-deck-desktop/web/style.css | 1353 ----- apps/session-deck-desktop/web/tauri-host.js | 128 - packages/pi-session-deck/README.md | 24 +- .../session-deck/desktop-artifact.test.ts | 188 - .../session-deck/desktop-command.test.ts | 167 - .../session-deck/desktop-install.test.ts | 794 --- .../desktop-open-doctor-uninstall.test.ts | 369 -- .../session-deck/desktop-state.test.ts | 160 - .../session-deck/identity-command.test.ts | 31 +- .../session-deck/iterm2-web-ui.test.ts | 2 +- .../session-deck/session-deck-ui.test.ts | 2 +- .../session-deck/desktop/artifact.ts | 193 - .../extensions/session-deck/desktop/bundle.ts | 215 - .../session-deck/desktop/command.ts | 358 -- .../extensions/session-deck/desktop/doctor.ts | 197 - .../session-deck/desktop/install.ts | 690 --- .../extensions/session-deck/desktop/open.ts | 146 - .../extensions/session-deck/desktop/paths.ts | 145 - .../extensions/session-deck/desktop/state.ts | 313 -- .../session-deck/desktop/uninstall.ts | 210 - .../session-deck/identity/command.ts | 25 +- packages/pi-session-deck/package.json | 5 +- packages/pi-session-deck/tsconfig.build.json | 4 +- pnpm-lock.yaml | 141 - 70 files changed, 17 insertions(+), 24788 deletions(-) delete mode 100644 .github/workflows/session-deck-desktop.yml delete mode 100644 apps/session-deck-desktop/README.md delete mode 100644 apps/session-deck-desktop/RELEASE.md delete mode 100644 apps/session-deck-desktop/__tests__/ci-workflow.test.ts delete mode 100644 apps/session-deck-desktop/__tests__/launch-branch.test.ts delete mode 100644 apps/session-deck-desktop/__tests__/release-artifacts.test.ts delete mode 100644 apps/session-deck-desktop/__tests__/release-workflow.test.ts delete mode 100644 apps/session-deck-desktop/__tests__/sync-web-assets.test.ts delete mode 100644 apps/session-deck-desktop/__tests__/tauri-config.test.ts delete mode 100644 apps/session-deck-desktop/__tests__/tauri-host.test.ts delete mode 100644 apps/session-deck-desktop/fixtures/runtime-layout-v1.json delete mode 100644 apps/session-deck-desktop/package.json delete mode 100644 apps/session-deck-desktop/scripts/build-macos-artifacts.js delete mode 100644 apps/session-deck-desktop/scripts/launch-branch.js delete mode 100644 apps/session-deck-desktop/scripts/run-cargo.js delete mode 100644 apps/session-deck-desktop/scripts/run-tauri.js delete mode 100644 apps/session-deck-desktop/scripts/sync-web-assets.js delete mode 100644 apps/session-deck-desktop/src-tauri/Cargo.lock delete mode 100644 apps/session-deck-desktop/src-tauri/Cargo.toml delete mode 100644 apps/session-deck-desktop/src-tauri/Info.plist delete mode 100644 apps/session-deck-desktop/src-tauri/build.rs delete mode 100644 apps/session-deck-desktop/src-tauri/capabilities/default.json delete mode 100644 apps/session-deck-desktop/src-tauri/gen/schemas/acl-manifests.json delete mode 100644 apps/session-deck-desktop/src-tauri/gen/schemas/capabilities.json delete mode 100644 apps/session-deck-desktop/src-tauri/gen/schemas/desktop-schema.json delete mode 100644 apps/session-deck-desktop/src-tauri/gen/schemas/macOS-schema.json delete mode 100644 apps/session-deck-desktop/src-tauri/icons/icon.icns delete mode 100644 apps/session-deck-desktop/src-tauri/icons/icon.png delete mode 100644 apps/session-deck-desktop/src-tauri/icons/tray-icon.png delete mode 100644 apps/session-deck-desktop/src-tauri/icons/tray-icon.svg delete mode 100644 apps/session-deck-desktop/src-tauri/src/commands.rs delete mode 100644 apps/session-deck-desktop/src-tauri/src/doctor.rs delete mode 100644 apps/session-deck-desktop/src-tauri/src/helper_runner.rs delete mode 100644 apps/session-deck-desktop/src-tauri/src/lib.rs delete mode 100644 apps/session-deck-desktop/src-tauri/src/main.rs delete mode 100644 apps/session-deck-desktop/src-tauri/src/runtime.rs delete mode 100644 apps/session-deck-desktop/src-tauri/tauri.conf.json delete mode 100644 apps/session-deck-desktop/tsconfig.json delete mode 100644 apps/session-deck-desktop/web/app.js delete mode 100644 apps/session-deck-desktop/web/index.html delete mode 100644 apps/session-deck-desktop/web/session-deck-ui.js delete mode 100644 apps/session-deck-desktop/web/style.css delete mode 100644 apps/session-deck-desktop/web/tauri-host.js delete mode 100644 packages/pi-session-deck/__tests__/session-deck/desktop-artifact.test.ts delete mode 100644 packages/pi-session-deck/__tests__/session-deck/desktop-command.test.ts delete mode 100644 packages/pi-session-deck/__tests__/session-deck/desktop-install.test.ts delete mode 100644 packages/pi-session-deck/__tests__/session-deck/desktop-open-doctor-uninstall.test.ts delete mode 100644 packages/pi-session-deck/__tests__/session-deck/desktop-state.test.ts delete mode 100644 packages/pi-session-deck/extensions/session-deck/desktop/artifact.ts delete mode 100644 packages/pi-session-deck/extensions/session-deck/desktop/bundle.ts delete mode 100644 packages/pi-session-deck/extensions/session-deck/desktop/command.ts delete mode 100644 packages/pi-session-deck/extensions/session-deck/desktop/doctor.ts delete mode 100644 packages/pi-session-deck/extensions/session-deck/desktop/install.ts delete mode 100644 packages/pi-session-deck/extensions/session-deck/desktop/open.ts delete mode 100644 packages/pi-session-deck/extensions/session-deck/desktop/paths.ts delete mode 100644 packages/pi-session-deck/extensions/session-deck/desktop/state.ts delete mode 100644 packages/pi-session-deck/extensions/session-deck/desktop/uninstall.ts diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 67f9fbef..dc2c081b 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -13,7 +13,6 @@ All PR titles must follow conventional commits with a **package scope**: | Scope | Meaning | | ---------------------- | ---------------------------------------------------------------- | | `[pi-package-name]` | Changes to `packages/[pi-package-name]` | -| `session-deck-desktop` | Changes to `apps/session-deck-desktop` | | `root` | Root-level changes (CI, workflows, configs, shared tooling) | | _omit scope_ | Changes affecting all packages equally | diff --git a/.github/release-please-config.json b/.github/release-please-config.json index 54439934..93620489 100644 --- a/.github/release-please-config.json +++ b/.github/release-please-config.json @@ -2,10 +2,7 @@ "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", "packages": { "packages/pi-merge-ready": {}, - "packages/pi-session-deck": { - "draft": true, - "force-tag-creation": true - }, + "packages/pi-session-deck": {}, "packages/pi-openrouter": {}, "packages/pi-session-hygiene": {}, "packages/pi-spinner-verbs": {}, diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 94cde539..e8cc60e4 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -18,9 +18,6 @@ jobs: runs-on: ubuntu-latest outputs: paths_released: ${{ steps.release.outputs.paths_released }} - pi_session_deck_released: ${{ steps.release.outputs['packages/pi-session-deck--release_created'] }} - pi_session_deck_tag_name: ${{ steps.release.outputs['packages/pi-session-deck--tag_name'] }} - pi_session_deck_version: ${{ steps.release.outputs['packages/pi-session-deck--version'] }} steps: - uses: googleapis/release-please-action@v4 id: release @@ -56,203 +53,11 @@ jobs: if: steps.release.outputs.releases_created == 'true' run: pnpm -r --filter './packages/*' --if-present build - - name: Publish changed packages except pi-session-deck + - name: Publish changed packages if: steps.release.outputs.releases_created == 'true' run: | echo "Released packages: ${{ steps.release.outputs.paths_released }}" echo '${{ steps.release.outputs.paths_released }}' | jq -r '.[]' | while read -r pkg; do - if [ "$pkg" = "packages/pi-session-deck" ]; then - echo "Deferring $pkg until its desktop release is public" - continue - fi echo "Publishing $pkg" (cd "$pkg" && npm publish) done - - session-deck-desktop-build: - needs: release - if: needs.release.outputs.pi_session_deck_released == 'true' - name: Session Deck desktop (${{ matrix.arch }}) - strategy: - fail-fast: true - matrix: - include: - - runner: macos-15 - target: aarch64-apple-darwin - arch: arm64 - - runner: macos-15-intel - target: x86_64-apple-darwin - arch: x64 - runs-on: ${{ matrix.runner }} - permissions: - contents: read - steps: - - name: Checkout pi-session-deck release tag - uses: actions/checkout@v4 - with: - ref: ${{ needs.release.outputs.pi_session_deck_tag_name }} - - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 10 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - cache: 'pnpm' - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Install native Rust target - run: rustup target add "${{ matrix.target }}" - - - name: Build and verify desktop app ZIP - run: | - pnpm --filter ./apps/session-deck-desktop artifact:macos \ - --version "${{ needs.release.outputs.pi_session_deck_version }}" \ - --target "${{ matrix.target }}" \ - --artifact-dir "dist/artifacts-${{ matrix.arch }}" - - - name: Stage architecture artifacts - uses: actions/upload-artifact@v4 - with: - name: session-deck-desktop-${{ matrix.arch }} - path: | - apps/session-deck-desktop/dist/artifacts-${{ matrix.arch }}/session-deck-desktop-v${{ needs.release.outputs.pi_session_deck_version }}-macos-${{ matrix.arch }}.zip - apps/session-deck-desktop/dist/artifacts-${{ matrix.arch }}/session-deck-desktop-v${{ needs.release.outputs.pi_session_deck_version }}-macos-${{ matrix.arch }}.zip.sha256 - if-no-files-found: error - retention-days: 7 - - session-deck-publish: - needs: [release, session-deck-desktop-build] - if: needs.release.outputs.pi_session_deck_released == 'true' - runs-on: ubuntu-latest - permissions: - actions: read - contents: write - id-token: write - steps: - - name: Checkout pi-session-deck release tag - uses: actions/checkout@v4 - with: - ref: ${{ needs.release.outputs.pi_session_deck_tag_name }} - - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 10 - - - name: Setup Node.js and npm trusted publishing - uses: actions/setup-node@v4 - with: - node-version: '22.14' - cache: 'pnpm' - registry-url: 'https://registry.npmjs.org' - - - name: Install npm 11 - run: npm install -g npm@11 - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Merge native architecture artifacts - uses: actions/download-artifact@v4 - with: - pattern: session-deck-desktop-* - path: apps/session-deck-desktop/dist/release-artifacts - merge-multiple: true - - - name: Validate four desktop release files - env: - SESSION_DECK_RELEASE_TAG: ${{ needs.release.outputs.pi_session_deck_tag_name }} - SESSION_DECK_VERSION: ${{ needs.release.outputs.pi_session_deck_version }} - run: | - set -euo pipefail - artifact_dir="apps/session-deck-desktop/dist/release-artifacts" - stem="session-deck-desktop-v${SESSION_DECK_VERSION}-macos" - expected_tag="pi-session-deck-v${SESSION_DECK_VERSION}" - - test "$SESSION_DECK_RELEASE_TAG" = "$expected_tag" || { - echo "Release tag $SESSION_DECK_RELEASE_TAG does not match version $SESSION_DECK_VERSION" >&2 - exit 1 - } - test "$(node -p "require('./packages/pi-session-deck/package.json').version")" = "$SESSION_DECK_VERSION" || { - echo "Package version does not match release version $SESSION_DECK_VERSION" >&2 - exit 1 - } - - printf '%s\n' \ - "${stem}-arm64.zip" \ - "${stem}-arm64.zip.sha256" \ - "${stem}-x64.zip" \ - "${stem}-x64.zip.sha256" \ - | LC_ALL=C sort > "$RUNNER_TEMP/expected-assets.txt" - find "$artifact_dir" -mindepth 1 -maxdepth 1 -exec basename {} \; \ - | LC_ALL=C sort > "$RUNNER_TEMP/actual-assets.txt" - diff -u "$RUNNER_TEMP/expected-assets.txt" "$RUNNER_TEMP/actual-assets.txt" - - while IFS= read -r name; do - test -f "$artifact_dir/$name" && test ! -L "$artifact_dir/$name" && test -s "$artifact_dir/$name" || { - echo "Expected a non-empty regular file: $name" >&2 - exit 1 - } - done < "$RUNNER_TEMP/expected-assets.txt" - - ( - cd "$artifact_dir" - sha256sum "${stem}-arm64.zip" | cmp - "${stem}-arm64.zip.sha256" - sha256sum "${stem}-x64.zip" | cmp - "${stem}-x64.zip.sha256" - ) - - - name: Require an empty draft and prepare release notes - env: - GH_TOKEN: ${{ github.token }} - SESSION_DECK_RELEASE_TAG: ${{ needs.release.outputs.pi_session_deck_tag_name }} - run: | - set -euo pipefail - gh release view "$SESSION_DECK_RELEASE_TAG" --json isDraft,assets,body \ - > "$RUNNER_TEMP/release-before.json" - test "$(jq -r '.isDraft' "$RUNNER_TEMP/release-before.json")" = true || { - echo "Session Deck release must still be a draft" >&2 - exit 1 - } - test "$(jq '.assets | length' "$RUNNER_TEMP/release-before.json")" = 0 || { - echo "Refusing to overwrite preexisting release assets" >&2 - exit 1 - } - - jq -r '.body // ""' "$RUNNER_TEMP/release-before.json" \ - > "$RUNNER_TEMP/release-notes.md" - cat >> "$RUNNER_TEMP/release-notes.md" <<'EOF' - - ## macOS desktop build notice - - The macOS desktop ZIPs are ad-hoc signed. They are not Developer ID signed and are not notarized. macOS may block the first launch. First try to open the app, then, only if you trust this release, use **System Settings → Privacy & Security → Open Anyway** and confirm **Open**. The ad-hoc signature does not verify the publisher. - EOF - - - name: Upload four desktop assets to draft release - env: - GH_TOKEN: ${{ github.token }} - SESSION_DECK_RELEASE_TAG: ${{ needs.release.outputs.pi_session_deck_tag_name }} - SESSION_DECK_VERSION: ${{ needs.release.outputs.pi_session_deck_version }} - run: | - set -euo pipefail - artifact_dir="apps/session-deck-desktop/dist/release-artifacts" - stem="session-deck-desktop-v${SESSION_DECK_VERSION}-macos" - gh release upload "$SESSION_DECK_RELEASE_TAG" \ - "$artifact_dir/${stem}-arm64.zip" \ - "$artifact_dir/${stem}-arm64.zip.sha256" \ - "$artifact_dir/${stem}-x64.zip" \ - "$artifact_dir/${stem}-x64.zip.sha256" - - - name: Publish GitHub release - env: - GH_TOKEN: ${{ github.token }} - SESSION_DECK_RELEASE_TAG: ${{ needs.release.outputs.pi_session_deck_tag_name }} - run: gh release edit "$SESSION_DECK_RELEASE_TAG" --notes-file "$RUNNER_TEMP/release-notes.md" --draft=false - - - name: Publish pi-session-deck after public release - run: cd packages/pi-session-deck && npm publish diff --git a/.github/workflows/session-deck-desktop.yml b/.github/workflows/session-deck-desktop.yml deleted file mode 100644 index b4366c06..00000000 --- a/.github/workflows/session-deck-desktop.yml +++ /dev/null @@ -1,120 +0,0 @@ -name: Session Deck Desktop CI - -on: - push: - branches: - - main - pull_request: - paths: - - apps/session-deck-desktop/** - - packages/pi-session-deck/extensions/** - - packages/pi-session-deck/package.json - - packages/pi-session-deck/tsconfig*.json - - .github/workflows/** - - package.json - - pnpm-lock.yaml - - pnpm-workspace.yaml - - tsconfig.base.json - - eslint.config.js - - .prettierrc - - .prettierignore - -permissions: - contents: read - -concurrency: - group: session-deck-desktop-ci-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('run-{0}-{1}', github.run_id, github.run_attempt) }} - cancel-in-progress: ${{ github.event_name == 'pull_request' }} - -jobs: - desktop-checks: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 10 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Install Tauri Linux system dependencies - run: | - sudo apt-get update - sudo apt-get install -y --no-install-recommends \ - pkg-config \ - libglib2.0-dev \ - libgtk-3-dev \ - libwebkit2gtk-4.1-dev \ - libayatana-appindicator3-dev \ - librsvg2-dev \ - libxdo-dev \ - libssl-dev - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Build publishable packages - run: pnpm -r --filter './packages/*' --if-present build - - - name: Verify Session Deck web assets are synchronized - run: | - pnpm --filter ./apps/session-deck-desktop sync:web - git diff --exit-code -- \ - apps/session-deck-desktop/web/index.html \ - apps/session-deck-desktop/web/style.css \ - apps/session-deck-desktop/web/session-deck-ui.js - - - name: Build Session Deck desktop app - run: pnpm --filter ./apps/session-deck-desktop build - - - name: Run Session Deck desktop lint - run: pnpm --filter ./apps/session-deck-desktop lint - - - name: Run Session Deck desktop format check - run: pnpm --filter ./apps/session-deck-desktop format:check - - - name: Run Session Deck desktop typecheck - run: pnpm --filter ./apps/session-deck-desktop typecheck - - desktop-tests: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 10 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Install Tauri Linux system dependencies - run: | - sudo apt-get update - sudo apt-get install -y --no-install-recommends \ - pkg-config \ - libglib2.0-dev \ - libgtk-3-dev \ - libwebkit2gtk-4.1-dev \ - libayatana-appindicator3-dev \ - librsvg2-dev \ - libxdo-dev \ - libssl-dev - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Run Session Deck desktop tests - run: pnpm --filter ./apps/session-deck-desktop test diff --git a/.gitignore b/.gitignore index e2c226bd..8f94151f 100644 --- a/.gitignore +++ b/.gitignore @@ -65,7 +65,6 @@ benchmarks/test-runners/dotnet/obj/ # Rust / Cargo benchmarks/test-runners/cargo/target/ benchmarks/test-runners/cargo-build/target/ -apps/session-deck-desktop/src-tauri/target/ # PHPUnit / Pest benchmarks/test-runners/phpunit/vendor/ diff --git a/README.md b/README.md index c5a953d8..908d6edf 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Small, focused packages to augment your Pi environment without adding unnecessar | Package | Description | | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| [`pi-session-deck`](packages/pi-session-deck/README.md) | The full Pi session lifecycle in one place: create and organize sessions across repos and worktrees, see what each agent is doing or waiting on, and reopen or end them from a TUI, desktop app, or iTerm2 Toolbelt. | +| [`pi-session-deck`](packages/pi-session-deck/README.md) | The full Pi session lifecycle in one place: create and organize sessions across repos and worktrees, see what each agent is doing or waiting on, and reopen or end them from a TUI or iTerm2 Toolbelt. | | [`pi-merge-ready`](packages/pi-merge-ready/README.md) | Pull requests that explain and repair their own blockers. Give your agents the context they need to take your PR all the way to green. | | [`pi-openrouter`](packages/pi-openrouter/README.md) | OpenRouter usage/account overlays, model sync, api key management, and session tagging for Pi. | | [`pi-session-hygiene`](packages/pi-session-hygiene/README.md) | Status bar indicator for session cost, context, and cache rate to track session health | diff --git a/apps/session-deck-desktop/README.md b/apps/session-deck-desktop/README.md deleted file mode 100644 index 92ae0152..00000000 --- a/apps/session-deck-desktop/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Session Deck Desktop app - -Private Tauri desktop companion for Session Deck. This app lives under `apps/` so the `packages/*` tree remains limited to independently installable Pi packages. - -## What it does - -- Loads Session Deck snapshots through the installed Node helper. -- Reuses the existing open-terminal and worktree helper CLIs. -- Exposes the shared, generation-safe Restart Session action for eligible Session Deck-managed tmux sessions without sending private launch recipes to the webview. -- Prefers `~/.pi/session-deck/desktop/install.json` for desktop runtime metadata. -- Falls back to `~/.pi/session-deck/iterm2/install.json` only for development/back-compat. -- Rebuilds a safe helper `PATH` for Finder-launched app processes. - -## Commands - -- `pnpm --filter ./apps/session-deck-desktop sync:web` -- `pnpm --filter ./apps/session-deck-desktop typecheck` -- `pnpm --filter ./apps/session-deck-desktop test` -- `pnpm --filter ./apps/session-deck-desktop build` -- `pnpm --filter ./apps/session-deck-desktop dev:isolated` — build the local helper and launch from temporary checkout-specific metadata without replacing the installed app -- `pnpm --filter ./apps/session-deck-desktop tauri dev` -- `pnpm --filter ./apps/session-deck-desktop artifact:macos --version --target ` - -## Release artifacts - -`artifact:macos` builds one native Tauri `.app`, verifies that its executable contains only the target architecture, and packages the app with `ditto`. It emits one deterministic `session-deck-desktop-v-macos-.zip` and its `.sha256` sidecar. - -The app is ad-hoc signed with Tauri's `-` identity. It is not Developer ID signed and is not notarized. No Apple credentials are required. macOS may block the first launch; leave the app installed at the initial warning, then, only if you trust the release, use **System Settings → Privacy & Security → Open Anyway**. - -See [RELEASE.md](./RELEASE.md) for the dual-architecture release and publication contract. diff --git a/apps/session-deck-desktop/RELEASE.md b/apps/session-deck-desktop/RELEASE.md deleted file mode 100644 index 37f6d6e3..00000000 --- a/apps/session-deck-desktop/RELEASE.md +++ /dev/null @@ -1,94 +0,0 @@ -# Session Deck Desktop release runbook - -The release workflow is `.github/workflows/release-please.yml`. It publishes two prebuilt native macOS app ZIPs for `@robhowley/pi-session-deck` before publishing the npm package. - -## Native builds - -| GitHub runner | Rust target | Artifact architecture | -| ---------------- | ---------------------- | --------------------- | -| `macos-15` | `aarch64-apple-darwin` | `arm64` | -| `macos-15-intel` | `x86_64-apple-darwin` | `x64` | - -Each matrix leg builds only the Tauri `.app` bundle for its explicit target. The builder checks that the app's executable is non-empty, executable, and contains only the expected architecture. It then creates the ZIP with: - -```sh -/usr/bin/ditto -c -k --keepParent --sequesterRsrc --zlibCompressionLevel 9 \ - "Session Deck Desktop.app" .zip -``` - -This preserves the bundle structure, resource forks, and executable modes. Do not pass the `.app` directory directly to `actions/upload-artifact`. - -## Signing and first launch - -Both builds are ad-hoc signed with Tauri's free identity `-`. They are **not Developer ID signed** and **not notarized**. The ad-hoc signature does not verify the publisher, and no Apple credentials are required. - -macOS may block the first launch. Users should: - -1. Verify the downloaded ZIP against its published `.sha256` sidecar. -2. Extract the ZIP, move **Session Deck Desktop.app** to `/Applications`, and try to open it once; leave it installed at the initial warning. -3. Only if they trust the release, use **System Settings → Privacy & Security → Open Anyway**. -4. Confirm **Open** and authenticate if macOS asks. - -Do not remove quarantine attributes or recommend disabling Gatekeeper. - -## Four-file release contract - -For package version ``, the public `pi-session-deck-v` GitHub release contains exactly: - -```text -session-deck-desktop-v-macos-arm64.zip -session-deck-desktop-v-macos-arm64.zip.sha256 -session-deck-desktop-v-macos-x64.zip -session-deck-desktop-v-macos-x64.zip.sha256 -``` - -Each sidecar is one lowercase SHA-256 followed by two spaces and the ZIP basename. `/session-deck desktop install` selects the matching ZIP and sidecar for the host architecture. - -## Publication order and failure behavior - -1. Release Please creates the `pi-session-deck-v` draft and release tag. -2. The arm64 and x64 jobs build and stage one ZIP plus one sidecar each. -3. The fan-in job requires package, tag, and artifact versions to agree. It rejects anything except the exact four expected non-empty regular files and verifies both checksums. -4. The job requires the GitHub release to remain a draft with zero assets. -5. It appends the signing and first-launch notice, uploads four explicit paths without clobbering, and publishes the GitHub release. -6. Only after GitHub publication does `npm publish` run. - -A failed native leg prevents publication. A partial draft upload intentionally blocks an automatic retry because the release no longer has zero assets; inspect it rather than replacing uploaded bytes. GitHub and npm publication cannot be one transaction. If GitHub publication succeeds but npm publication fails, fix trusted-publisher access and publish the same package version from the original tag without changing the GitHub assets. - -## npm trusted publishing - -Configure an npm trusted publisher for `@robhowley/pi-session-deck` with: - -- provider: GitHub Actions; -- organization/user: `robhowley`; -- repository: `pi-userland`; -- workflow filename: `release-please.yml`; -- allowed action: `npm publish`; -- no environment restriction. - -The publication jobs use Node 22.14+, npm 11.5.1+, npm's registry setup, and `id-token: write`. Do not add a long-lived npm token. - -## Local checks - -```sh -pnpm exec vitest run \ - apps/session-deck-desktop/__tests__/release-artifacts.test.ts \ - apps/session-deck-desktop/__tests__/release-workflow.test.ts \ - apps/session-deck-desktop/__tests__/tauri-config.test.ts \ - packages/pi-session-deck/__tests__/session-deck/desktop-artifact.test.ts -pnpm --filter ./apps/session-deck-desktop typecheck -pnpm --filter ./apps/session-deck-desktop lint -pnpm --filter ./apps/session-deck-desktop format:check -pnpm --filter @robhowley/pi-session-deck typecheck -``` - -On an arm64 Mac, smoke-build the local target with: - -```sh -pnpm --filter ./apps/session-deck-desktop artifact:macos \ - --version 0.0.0 \ - --target aarch64-apple-darwin \ - --artifact-dir dist/smoke-arm64 -``` - -Extract the ZIP with `ditto`, confirm the executable mode and `lipo -archs` output, and inspect `codesign -dv --verbose=4` for `Signature=adhoc`. CI remains responsible for the equivalent x64 evidence on `macos-15-intel`. diff --git a/apps/session-deck-desktop/__tests__/ci-workflow.test.ts b/apps/session-deck-desktop/__tests__/ci-workflow.test.ts deleted file mode 100644 index b382d876..00000000 --- a/apps/session-deck-desktop/__tests__/ci-workflow.test.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { readFileSync } from 'node:fs'; -import { describe, expect, it } from 'vitest'; - -const WORKFLOWS_ROOT = new URL('../../../.github/workflows/', import.meta.url); -const packageWorkflow = readFileSync(new URL('ci.yml', WORKFLOWS_ROOT), 'utf8'); -const desktopWorkflow = readFileSync(new URL('session-deck-desktop.yml', WORKFLOWS_ROOT), 'utf8'); - -const packageTrigger = `on: - push: - branches: - - main - pull_request: - -permissions:`; - -const desktopTrigger = `on: - push: - branches: - - main - pull_request: - paths: - - apps/session-deck-desktop/** - - packages/pi-session-deck/extensions/** - - packages/pi-session-deck/package.json - - packages/pi-session-deck/tsconfig*.json - - .github/workflows/** - - package.json - - pnpm-lock.yaml - - pnpm-workspace.yaml - - tsconfig.base.json - - eslint.config.js - - .prettierrc - - .prettierignore - -permissions:`; - -const pullRequestCancellation = " cancel-in-progress: ${{ github.event_name == 'pull_request' }}"; -const packageConcurrencyGroup = - " group: packages-ci-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('run-{0}-{1}', github.run_id, github.run_attempt) }}"; -const desktopConcurrencyGroup = - " group: session-deck-desktop-ci-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('run-{0}-{1}', github.run_id, github.run_attempt) }}"; - -describe('Session Deck CI workflow contract', () => { - it('keeps the repository-owned CI policy', () => { - expect(packageWorkflow).toContain(packageTrigger); - expect(desktopWorkflow).toContain(desktopTrigger); - - expect(packageWorkflow).toContain('jobs:\n package-checks:\n'); - expect(packageWorkflow).toContain('\n package-tests:\n'); - expect(desktopWorkflow).toContain('jobs:\n desktop-checks:\n'); - expect(desktopWorkflow).toContain('\n desktop-tests:\n'); - - for (const workflow of [packageWorkflow, desktopWorkflow]) { - expect(workflow).not.toMatch(/^ {4}(?:if|needs):/mu); - expect(workflow).toContain(pullRequestCancellation); - } - - expect(packageWorkflow).toContain(packageConcurrencyGroup); - expect(desktopWorkflow).toContain(desktopConcurrencyGroup); - }); -}); diff --git a/apps/session-deck-desktop/__tests__/launch-branch.test.ts b/apps/session-deck-desktop/__tests__/launch-branch.test.ts deleted file mode 100644 index 1a9aa4e1..00000000 --- a/apps/session-deck-desktop/__tests__/launch-branch.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { describe, expect, it } from 'vitest'; -import { createBranchState } from '../scripts/launch-branch.js'; - -describe('launch-branch development metadata', () => { - it('uses the development discriminator without persisting derived helper paths', () => { - const state = createBranchState('1.2.3', '2026-07-28T00:00:00.000Z'); - - expect(state).toMatchObject({ - schemaVersion: 1, - product: 'session-deck-desktop-development', - packageName: '@robhowley/pi-session-deck', - packageVersion: '1.2.3', - installedAt: '2026-07-28T00:00:00.000Z', - runtime: { - nodeExecutablePath: process.execPath, - helperPackageVersion: '1.2.3', - }, - }); - expect(Object.keys(state.runtime).sort()).toEqual([ - 'helperPackageVersion', - 'nodeExecutablePath', - 'packageRoot', - ]); - expect(state).not.toHaveProperty('app'); - expect(state).not.toHaveProperty('source'); - expect(state).not.toHaveProperty('ownedPaths'); - }); -}); diff --git a/apps/session-deck-desktop/__tests__/release-artifacts.test.ts b/apps/session-deck-desktop/__tests__/release-artifacts.test.ts deleted file mode 100644 index 062f0503..00000000 --- a/apps/session-deck-desktop/__tests__/release-artifacts.test.ts +++ /dev/null @@ -1,142 +0,0 @@ -import { createHash } from 'node:crypto'; -import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'; -import { tmpdir } from 'node:os'; -import { join } from 'node:path'; -import { afterEach, describe, expect, it } from 'vitest'; -import { - applyDesktopReleaseVersion, - artifactArchForTarget, - assertAdHocSignature, - assertExecutableArchitecture, - bundleRootForTarget, - macosArtifactStem, - normalizeArtifactArch, - normalizeReleaseVersion, - parseMacosArtifactArgs, - tauriBuildArgsForOptions, - writeArtifactChecksum, -} from '../scripts/build-macos-artifacts.js'; - -const temporaryDirectories: string[] = []; - -afterEach(async () => { - await Promise.all( - temporaryDirectories - .splice(0) - .map((directory) => rm(directory, { recursive: true, force: true })), - ); -}); - -describe('release artifact builder contract', () => { - it('derives exact native artifact names and target-specific bundle roots', () => { - expect(normalizeReleaseVersion('v0.9.0')).toBe('0.9.0'); - expect(normalizeArtifactArch('aarch64')).toBe('arm64'); - expect(artifactArchForTarget('x86_64-apple-darwin')).toBe('x64'); - expect(macosArtifactStem('v0.9.0', 'aarch64')).toBe('session-deck-desktop-v0.9.0-macos-arm64'); - expect(macosArtifactStem('0.9.0', 'x86_64')).toBe('session-deck-desktop-v0.9.0-macos-x64'); - expect(bundleRootForTarget('aarch64-apple-darwin')).toMatch( - /src-tauri\/target\/aarch64-apple-darwin\/release\/bundle$/u, - ); - expect(bundleRootForTarget('x86_64-apple-darwin')).toMatch( - /src-tauri\/target\/x86_64-apple-darwin\/release\/bundle$/u, - ); - }); - - it('requires an explicit supported target and derives its architecture', () => { - expect( - parseMacosArtifactArgs([ - '--version', - '0.9.0', - '--target', - 'x86_64-apple-darwin', - '--artifact-dir', - 'dist/test-artifacts', - ]), - ).toMatchObject({ - version: '0.9.0', - arch: 'x64', - target: 'x86_64-apple-darwin', - }); - expect(() => parseMacosArtifactArgs(['--version', '0.9.0'])).toThrow('Missing --target'); - expect(() => - parseMacosArtifactArgs(['--version', '0.9.0', '--target', 'universal-apple-darwin']), - ).toThrow('Unsupported macOS release target'); - }); - - it.each([ - ['arm64', 'arm64'], - ['x64', 'x86_64'], - ] as const)('accepts only one %s executable architecture', (arch, lipoOutput) => { - expect(() => assertExecutableArchitecture(lipoOutput, arch)).not.toThrow(); - expect(() => assertExecutableArchitecture(`${lipoOutput} x86_64 arm64`, arch)).toThrow( - 'expected only', - ); - }); - - it('requires an ad-hoc signature without an authenticated authority', () => { - expect(() => assertAdHocSignature('Executable=/tmp/app\nSignature=adhoc')).not.toThrow(); - expect(() => assertAdHocSignature('Signature=adhoc\nAuthority=Example')).toThrow( - 'authenticated signing authority', - ); - expect(() => assertAdHocSignature('Signature=CMS')).toThrow('ad-hoc signature'); - }); - - it('builds only the app for the explicit target and does not disable signing', () => { - const options = parseMacosArtifactArgs([ - '--version', - '0.9.0', - '--target', - 'aarch64-apple-darwin', - ]); - expect(tauriBuildArgsForOptions(options)).toEqual([ - 'build', - '--bundles', - 'app', - '--ci', - '--target', - 'aarch64-apple-darwin', - ]); - }); - - it('writes release versions into Tauri and Cargo metadata', () => { - const tauriConfig = JSON.stringify({ - productName: 'Session Deck Desktop', - version: '0.0.0', - bundle: { active: true, macOS: { minimumSystemVersion: '11.0', signingIdentity: '-' } }, - }); - const cargoToml = `[package]\nname = "pi-session-deck-desktop"\nversion = "0.0.0"\n`; - - const next = applyDesktopReleaseVersion(tauriConfig, cargoToml, '0.9.0'); - const nextTauriConfig = JSON.parse(next.tauriConfigText) as { - version: string; - bundle: { - macOS: { - bundleVersion: string; - minimumSystemVersion: string; - signingIdentity: string; - }; - }; - }; - expect(nextTauriConfig.version).toBe('0.9.0'); - expect(nextTauriConfig.bundle.macOS).toEqual({ - bundleVersion: '0.9.0', - minimumSystemVersion: '11.0', - signingIdentity: '-', - }); - expect(next.cargoTomlText).toContain('version = "0.9.0"'); - }); - - it('writes a lowercase SHA-256 sidecar for the ZIP basename', async () => { - const root = await mkdtemp(join(tmpdir(), 'session-deck-release-artifacts-')); - temporaryDirectories.push(root); - const name = 'session-deck-desktop-v0.9.0-macos-arm64.zip'; - const path = join(root, name); - const payload = Buffer.from('zip payload'); - await writeFile(path, payload); - - const result = await writeArtifactChecksum(path); - const expectedHash = createHash('sha256').update(payload).digest('hex'); - expect(result.sha256).toBe(expectedHash); - await expect(readFile(result.checksumPath, 'utf8')).resolves.toBe(`${expectedHash} ${name}\n`); - }); -}); diff --git a/apps/session-deck-desktop/__tests__/release-workflow.test.ts b/apps/session-deck-desktop/__tests__/release-workflow.test.ts deleted file mode 100644 index 06674bf3..00000000 --- a/apps/session-deck-desktop/__tests__/release-workflow.test.ts +++ /dev/null @@ -1,174 +0,0 @@ -import { readFileSync } from 'node:fs'; -import { describe, expect, it } from 'vitest'; - -const workflow = readFileSync( - new URL('../../../.github/workflows/release-please.yml', import.meta.url), - 'utf8', -); -const trigger = workflow.slice(workflow.indexOf('on:\n'), workflow.indexOf('\n\nconcurrency:')); -const builder = readFileSync( - new URL('../scripts/build-macos-artifacts.js', import.meta.url), - 'utf8', -); -const runbook = readFileSync(new URL('../RELEASE.md', import.meta.url), 'utf8'); -const releaseJob = workflow.slice( - workflow.indexOf(' release:\n'), - workflow.indexOf(' session-deck-desktop-build:\n'), -); -const buildJob = workflow.slice( - workflow.indexOf(' session-deck-desktop-build:\n'), - workflow.indexOf(' session-deck-publish:\n'), -); -const publicationJob = workflow.slice(workflow.indexOf(' session-deck-publish:\n')); -const buildHeader = buildJob.slice(0, buildJob.indexOf(' strategy:\n')); -const publicationHeader = publicationJob.slice(0, publicationJob.indexOf(' steps:\n')); - -describe('Session Deck release workflow contract', () => { - it('runs only for pushes to main', () => { - expect(trigger).toBe(['on:', ' push:', ' branches: [main]'].join('\n')); - expect(workflow).not.toMatch( - /^ {2}(?:pull_request|pull_request_target|workflow_dispatch|schedule|merge_group):/mu, - ); - }); - - it('keeps the desktop build and publication behind the exact release-created condition', () => { - expect(buildHeader.match(/^ {4}needs:.*$/gmu)).toEqual([' needs: release']); - expect(buildHeader.match(/^ {4}if:.*$/gmu)).toEqual([ - " if: needs.release.outputs.pi_session_deck_released == 'true'", - ]); - expect(publicationHeader.match(/^ {4}needs:.*$/gmu)).toEqual([ - ' needs: [release, session-deck-desktop-build]', - ]); - expect(publicationHeader.match(/^ {4}if:.*$/gmu)).toEqual([ - " if: needs.release.outputs.pi_session_deck_released == 'true'", - ]); - }); - - it('keeps exactly one unconditional arm64/x64 build matrix', () => { - const matrix = buildJob.slice( - buildJob.indexOf(' strategy:\n'), - buildJob.indexOf(' runs-on: '), - ); - - expect(matrix).toBe( - [ - ' strategy:', - ' fail-fast: true', - ' matrix:', - ' include:', - ' - runner: macos-15', - ' target: aarch64-apple-darwin', - ' arch: arm64', - ' - runner: macos-15-intel', - ' target: x86_64-apple-darwin', - ' arch: x64', - '', - ].join('\n'), - ); - expect(matrix).not.toMatch(/\b(?:if|exclude|paths?|labels?|changed-files?)\b/iu); - }); - - it('keeps release jobs isolated from classifier and selective path logic', () => { - const selectionReferences = - /classifier|selective|run_(?:desktop|web_sync|desktop_js|native)|changed-files|path-filter|paths-ignore/iu; - - expect(buildJob).not.toMatch(selectionReferences); - expect(publicationJob).not.toMatch(selectionReferences); - }); - - it('has no credential-backed desktop release inputs or alternate release mode', () => { - const secretNames = [...workflow.matchAll(/\$\{\{\s*secrets\.([A-Z0-9_]+)\s*\}\}/gu)].map( - (match) => match[1], - ); - const variableNames = [...workflow.matchAll(/\$\{\{\s*vars\.([A-Z0-9_]+)\s*\}\}/gu)].map( - (match) => match[1], - ); - - expect(secretNames).toEqual([]); - expect(variableNames).toEqual([]); - expect(builder).not.toMatch(/process\.env\[[^\]]+\]/u); - expect(buildJob).not.toMatch(/^\s+environment:/mu); - }); - - it('skips pi-session-deck before the generic npm publish loop reaches publish', () => { - const skipCondition = 'if [ "$pkg" = "packages/pi-session-deck" ]; then'; - const continuePosition = releaseJob.indexOf('continue', releaseJob.indexOf(skipCondition)); - const publishPosition = releaseJob.indexOf('(cd "$pkg" && npm publish)'); - - expect(releaseJob).toContain(skipCondition); - expect(continuePosition).toBeGreaterThan(releaseJob.indexOf(skipCondition)); - expect(publishPosition).toBeGreaterThan(continuePosition); - }); - - it('builds and stages one native app ZIP and checksum per architecture', () => { - expect(buildJob).toContain('runner: macos-15\n target: aarch64-apple-darwin'); - expect(buildJob).toContain('runner: macos-15-intel\n target: x86_64-apple-darwin'); - expect(buildJob).toContain('--target "${{ matrix.target }}"'); - expect(buildJob).toContain('--artifact-dir "dist/artifacts-${{ matrix.arch }}"'); - expect(buildJob).toContain('-macos-${{ matrix.arch }}.zip'); - expect(buildJob).toContain('-macos-${{ matrix.arch }}.zip.sha256'); - expect(buildJob).not.toContain('dist/artifacts-${{ matrix.arch }}/*'); - }); - - it('fans in and validates exactly four named non-empty files and both checksums', () => { - for (const suffix of [ - '${stem}-arm64.zip', - '${stem}-arm64.zip.sha256', - '${stem}-x64.zip', - '${stem}-x64.zip.sha256', - ]) { - expect(publicationJob).toContain(`"${suffix}"`); - } - expect(publicationJob).toContain('diff -u "$RUNNER_TEMP/expected-assets.txt"'); - expect(publicationJob).toContain('test -f "$artifact_dir/$name"'); - expect(publicationJob).toContain('test ! -L "$artifact_dir/$name"'); - expect(publicationJob).toContain('test -s "$artifact_dir/$name"'); - expect(publicationJob.match(/sha256sum "\$\{stem\}/gu)).toHaveLength(2); - expect(publicationJob.match(/\| cmp -/gu)).toHaveLength(2); - expect(publicationJob).toContain('expected_tag="pi-session-deck-v${SESSION_DECK_VERSION}"'); - expect(publicationJob).toContain("require('./packages/pi-session-deck/package.json').version"); - }); - - it('requires an empty draft, uploads without clobbering, and publishes GitHub first', () => { - expect(publicationJob).toContain('\'.isDraft\' "$RUNNER_TEMP/release-before.json")" = true'); - expect(publicationJob).toContain( - '\'.assets | length\' "$RUNNER_TEMP/release-before.json")" = 0', - ); - expect(publicationJob).toContain('Refusing to overwrite preexisting release assets'); - expect(publicationJob).not.toContain('--clobber'); - expect(publicationJob).not.toContain('npm view'); - expect(publicationJob).not.toContain('npm pack'); - - const orderedMarkers = [ - 'name: Validate four desktop release files', - 'name: Require an empty draft and prepare release notes', - 'gh release upload', - 'gh release edit', - 'name: Publish pi-session-deck after public release', - 'npm publish', - ]; - const positions = orderedMarkers.map((marker) => publicationJob.indexOf(marker)); - expect(positions.every((position) => position >= 0)).toBe(true); - expect(positions).toEqual([...positions].sort((left, right) => left - right)); - }); - - it('discloses the ad-hoc trust model and safe first-launch override', () => { - for (const text of [workflow, runbook]) { - expect(text).toContain('ad-hoc signed'); - expect(text).toContain('not Developer ID signed'); - expect(text).toContain('not notarized'); - expect(text).toContain('System Settings → Privacy & Security → Open Anyway'); - } - expect(`${workflow}\n${runbook}`).not.toMatch(/xattr|spctl\s+--master-disable/iu); - }); - - it('keeps npm trusted publishing runtime and OIDC permissions', () => { - expect(workflow.match(/npm publish/gu)).toHaveLength(2); - expect(releaseJob).toContain("node-version: '22.14'"); - expect(publicationJob).toContain("node-version: '22.14'"); - expect(releaseJob).toContain('npm install -g npm@11'); - expect(publicationJob).toContain('npm install -g npm@11'); - expect(publicationJob).toContain('id-token: write'); - expect(workflow).not.toMatch(/NPM_TOKEN|NODE_AUTH_TOKEN/u); - }); -}); diff --git a/apps/session-deck-desktop/__tests__/sync-web-assets.test.ts b/apps/session-deck-desktop/__tests__/sync-web-assets.test.ts deleted file mode 100644 index 3a1c5771..00000000 --- a/apps/session-deck-desktop/__tests__/sync-web-assets.test.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { mkdtemp, mkdir, readFile, writeFile } from 'node:fs/promises'; -import { tmpdir } from 'node:os'; -import { join } from 'node:path'; -import { describe, expect, it } from 'vitest'; -import { buildDesktopIndex, syncWebAssets } from '../scripts/sync-web-assets.js'; - -const CANONICAL_INDEX = ` - - - - - Session Deck - - - -
- - - - - -`; - -describe('sync-web-assets', () => { - it('rewrites the canonical index for the desktop host', () => { - const rewritten = buildDesktopIndex(CANONICAL_INDEX); - - expect(rewritten).not.toContain('session-deck-action-token'); - expect(rewritten).toContain('href="./style.css"'); - expect(rewritten).toContain(''); - expect(rewritten).toContain(''); - expect(rewritten).not.toContain('iterm2-host.js'); - }); - - it('copies the required canonical shared UI byte-for-byte', async () => { - const root = await mkdtemp(join(tmpdir(), 'session-deck-sync-web-')); - const sourceWebRoot = join(root, 'source'); - const destinationWebRoot = join(root, 'destination'); - const sharedUi = Buffer.from([0, 1, 2, 10, 13, 255]); - await mkdir(sourceWebRoot); - await Promise.all([ - writeFile(join(sourceWebRoot, 'index.html'), CANONICAL_INDEX), - writeFile(join(sourceWebRoot, 'style.css'), 'body { color: red; }\n'), - writeFile(join(sourceWebRoot, 'session-deck-ui.js'), sharedUi), - ]); - - await syncWebAssets({ sourceWebRoot, destinationWebRoot }); - - await expect(readFile(join(destinationWebRoot, 'session-deck-ui.js'))).resolves.toEqual( - sharedUi, - ); - }); - - it('rejects sync when the canonical shared UI is missing', async () => { - const root = await mkdtemp(join(tmpdir(), 'session-deck-sync-web-')); - const sourceWebRoot = join(root, 'source'); - const destinationWebRoot = join(root, 'destination'); - await mkdir(sourceWebRoot); - await Promise.all([ - writeFile(join(sourceWebRoot, 'index.html'), CANONICAL_INDEX), - writeFile(join(sourceWebRoot, 'style.css'), 'body {}\n'), - ]); - - await expect(syncWebAssets({ sourceWebRoot, destinationWebRoot })).rejects.toThrow( - 'session-deck-ui.js', - ); - await expect(readFile(join(destinationWebRoot, 'session-deck-ui.js'))).rejects.toMatchObject({ - code: 'ENOENT', - }); - }); -}); diff --git a/apps/session-deck-desktop/__tests__/tauri-config.test.ts b/apps/session-deck-desktop/__tests__/tauri-config.test.ts deleted file mode 100644 index e0311083..00000000 --- a/apps/session-deck-desktop/__tests__/tauri-config.test.ts +++ /dev/null @@ -1,223 +0,0 @@ -import { createHash } from 'node:crypto'; -import { readFileSync } from 'node:fs'; -import { fileURLToPath } from 'node:url'; -import { inflateSync } from 'node:zlib'; -import { describe, expect, it } from 'vitest'; - -type TauriConfig = { - productName: string; - app: { - trayIcon: { - id: string; - iconPath: string; - iconAsTemplate: boolean; - tooltip: string; - showMenuOnLeftClick: boolean; - }; - windows: Array<{ - title: string; - theme?: string; - }>; - }; - bundle: { - icon: string[]; - targets: string[]; - macOS: { - bundleName: string; - signingIdentity?: string; - }; - }; -}; - -type PngMetadata = { - width: number; - height: number; - bitDepth: number; - colorType: number; -}; - -const TAURI_ROOT = new URL('../src-tauri/', import.meta.url); -const TAURI_CONFIG_PATH = fileURLToPath(new URL('tauri.conf.json', TAURI_ROOT)); -const INFO_PLIST_PATH = fileURLToPath(new URL('Info.plist', TAURI_ROOT)); -const CARGO_MANIFEST_PATH = fileURLToPath(new URL('Cargo.toml', TAURI_ROOT)); -const APP_ICON_PATH = fileURLToPath(new URL('icons/icon.png', TAURI_ROOT)); -const ICNS_ICON_PATH = fileURLToPath(new URL('icons/icon.icns', TAURI_ROOT)); -const TRAY_ICON_PATH = fileURLToPath(new URL('icons/tray-icon.png', TAURI_ROOT)); -const TRAY_SVG_PATH = fileURLToPath(new URL('icons/tray-icon.svg', TAURI_ROOT)); -const PNG_SIGNATURE = Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]); - -function pngMetadata(png: Buffer): PngMetadata { - if (!png.subarray(0, PNG_SIGNATURE.length).equals(PNG_SIGNATURE)) { - throw new Error('Invalid PNG signature'); - } - - return { - width: png.readUInt32BE(16), - height: png.readUInt32BE(20), - bitDepth: png.readUInt8(24), - colorType: png.readUInt8(25), - }; -} - -function paethPredictor(left: number, above: number, upperLeft: number): number { - const estimate = left + above - upperLeft; - const leftDistance = Math.abs(estimate - left); - const aboveDistance = Math.abs(estimate - above); - const upperLeftDistance = Math.abs(estimate - upperLeft); - - if (leftDistance <= aboveDistance && leftDistance <= upperLeftDistance) return left; - if (aboveDistance <= upperLeftDistance) return above; - return upperLeft; -} - -function decodePngAlpha(png: Buffer): (x: number, y: number) => number { - const { width, height, bitDepth, colorType } = pngMetadata(png); - if (bitDepth !== 8 || colorType !== 6) throw new Error('Expected an 8-bit RGBA PNG'); - - const idatChunks: Buffer[] = []; - for (let offset = PNG_SIGNATURE.length; offset < png.length; ) { - const length = png.readUInt32BE(offset); - const type = png.subarray(offset + 4, offset + 8).toString('ascii'); - if (type === 'IDAT') idatChunks.push(png.subarray(offset + 8, offset + 8 + length)); - offset += length + 12; - } - - const filtered = inflateSync(Buffer.concat(idatChunks)); - const stride = width * 4; - const rgba = Buffer.alloc(stride * height); - let inputOffset = 0; - - for (let y = 0; y < height; y += 1) { - const filter = filtered.readUInt8(inputOffset++); - for (let x = 0; x < stride; x += 1) { - const outputOffset = y * stride + x; - const left = x >= 4 ? rgba.readUInt8(outputOffset - 4) : 0; - const above = y > 0 ? rgba.readUInt8(outputOffset - stride) : 0; - const upperLeft = x >= 4 && y > 0 ? rgba.readUInt8(outputOffset - stride - 4) : 0; - let predictor: number; - - switch (filter) { - case 0: - predictor = 0; - break; - case 1: - predictor = left; - break; - case 2: - predictor = above; - break; - case 3: - predictor = Math.floor((left + above) / 2); - break; - case 4: - predictor = paethPredictor(left, above, upperLeft); - break; - default: - throw new Error(`Unsupported PNG filter: ${filter}`); - } - - rgba.writeUInt8((filtered.readUInt8(inputOffset++) + predictor) & 0xff, outputOffset); - } - } - - return (x, y) => rgba.readUInt8(y * stride + x * 4 + 3); -} - -describe('Tauri configuration', () => { - it('keeps the product name distinct from the macOS bundle and display names', () => { - const config = JSON.parse(readFileSync(TAURI_CONFIG_PATH, 'utf8')) as TauriConfig; - const infoPlist = readFileSync(INFO_PLIST_PATH, 'utf8'); - const displayName = infoPlist.match( - /CFBundleDisplayName<\/key>\s*([^<]+)<\/string>/u, - )?.[1]; - - expect({ - productName: config.productName, - bundleName: config.bundle.macOS.bundleName, - displayName, - }).toEqual({ - productName: 'Session Deck Desktop', - bundleName: 'Session Deck', - displayName: 'Session Deck', - }); - }); - - it('keeps the Session Deck title and uses a dark native appearance', () => { - const config = JSON.parse(readFileSync(TAURI_CONFIG_PATH, 'utf8')) as TauriConfig; - const [mainWindow] = config.app.windows; - - expect(mainWindow).toMatchObject({ - title: 'Session Deck', - theme: 'Dark', - }); - }); - - it('configures the template tray icon without an automatic left-click menu', () => { - const config = JSON.parse(readFileSync(TAURI_CONFIG_PATH, 'utf8')) as TauriConfig; - - expect(config.app.trayIcon).toEqual({ - id: 'session-deck', - iconPath: 'icons/tray-icon.png', - iconAsTemplate: true, - tooltip: 'Session Deck', - showMenuOnLeftClick: false, - }); - }); - - it('builds only the app with both icons and Tauri ad-hoc signing', () => { - const config = JSON.parse(readFileSync(TAURI_CONFIG_PATH, 'utf8')) as TauriConfig; - - expect(config.bundle.targets).toEqual(['app']); - expect(config.bundle.icon).toEqual(['icons/icon.png', 'icons/icon.icns']); - expect(config.bundle.macOS.signingIdentity).toBe('-'); - }); - - it('commits the confirmed app icon and valid macOS icon resources', () => { - const appIcon = readFileSync(APP_ICON_PATH); - const icnsIcon = readFileSync(ICNS_ICON_PATH); - - expect(createHash('sha256').update(appIcon).digest('hex')).toBe( - 'dce6b5ffc66207c0a53da18b170738ac67d51ca856c2ed3b855ae75306456177', - ); - expect(pngMetadata(appIcon)).toEqual({ - width: 1024, - height: 1024, - bitDepth: 8, - colorType: 6, - }); - expect(icnsIcon.subarray(0, 4).toString('ascii')).toBe('icns'); - expect(icnsIcon.readUInt32BE(4)).toBe(icnsIcon.length); - expect(icnsIcon.length).toBeGreaterThan(0); - }); - - it('keeps the exact tray geometry and transparent dot cutouts', () => { - const svg = readFileSync(TRAY_SVG_PATH, 'utf8'); - const trayIcon = readFileSync(TRAY_ICON_PATH); - - expect(svg.match(/'); - expect(svg).toContain(''); - expect(svg).toContain(''); - expect(svg.match(/'); - expect(svg).toContain(''); - expect(svg).toContain(''); - expect(svg).toContain(''); - - expect(pngMetadata(trayIcon)).toEqual({ width: 36, height: 36, bitDepth: 8, colorType: 6 }); - const alphaAt = decodePngAlpha(trayIcon); - expect({ - exterior: alphaAt(0, 0), - holes: [alphaAt(8, 8), alphaAt(8, 18), alphaAt(8, 28)], - rows: [alphaAt(18, 8), alphaAt(18, 18), alphaAt(18, 28)], - }).toEqual({ exterior: 0, holes: [0, 0, 0], rows: [255, 255, 255] }); - }); - - it('enables only the Tauri tray icon feature', () => { - const cargoManifest = readFileSync(CARGO_MANIFEST_PATH, 'utf8'); - - expect(cargoManifest.match(/^tauri = .*$/mu)?.[0]).toBe( - 'tauri = { version = "2", features = ["tray-icon"] }', - ); - }); -}); diff --git a/apps/session-deck-desktop/__tests__/tauri-host.test.ts b/apps/session-deck-desktop/__tests__/tauri-host.test.ts deleted file mode 100644 index 517996e5..00000000 --- a/apps/session-deck-desktop/__tests__/tauri-host.test.ts +++ /dev/null @@ -1,168 +0,0 @@ -import { describe, expect, it, vi } from 'vitest'; -import { createTauriSessionDeckHost, resolveTauriInvoke } from '../web/tauri-host.js'; - -describe('tauri-host', () => { - it('resolves the global Tauri invoke bridge', async () => { - const invoke = vi.fn(async () => ({ ok: true })); - const resolved = resolveTauriInvoke({ - __TAURI__: { - core: { - invoke, - }, - }, - } as unknown as Window & typeof globalThis); - - await resolved('load_snapshot'); - - expect(invoke).toHaveBeenCalledWith('load_snapshot'); - }); - - it('maps the desktop host contract to the expected command names and payloads', async () => { - const invoke = vi.fn(async () => ({ ok: true })); - const host = createTauriSessionDeckHost({ - window: { - __TAURI__: { - core: { - invoke, - }, - }, - } as unknown as Window & typeof globalThis, - }); - - expect(host.doctorCommand).toBe( - 'Open desktop diagnostics or run /session-deck desktop doctor.', - ); - - await host.loadSnapshot(); - await host.previewWorktreeBaseRef({ repoIntent: { repoName: 'pi-userland' } }); - await host.previewWorktreeLaunchContext({ - launch: { mode: 'tmux-detached', agentDir: { mode: 'ambient' } }, - }); - await host.createWorktree({ - repoIntent: { repoName: 'pi-userland' }, - branchName: 'feat/desktop-shell', - baseRef: 'origin/main', - launch: { mode: 'tmux-detached', agentDir: { mode: 'ambient' } }, - }); - await host.createSession({ - action: 'create-session', - cwd: '~/scratch', - launch: { mode: 'tmux-detached', agentDir: { mode: 'ambient' } }, - }); - await host.openTerminal('runtime-1'); - await host.killSession('runtime-1'); - await host.restartSession({ - runtimeId: 'runtime-1', - generation: 'generation-1', - operationId: 'operation-1', - }); - await host.openExternal('https://example.com'); - await host.copyText('copied'); - await host.doctorStatus(); - - expect(invoke.mock.calls).toEqual([ - ['load_snapshot'], - ['preview_worktree_base_ref', { request: { repoIntent: { repoName: 'pi-userland' } } }], - [ - 'preview_worktree_launch_context', - { - request: { - launch: { mode: 'tmux-detached', agentDir: { mode: 'ambient' } }, - }, - }, - ], - [ - 'create_worktree', - { - request: { - repoIntent: { repoName: 'pi-userland' }, - branchName: 'feat/desktop-shell', - baseRef: 'origin/main', - launch: { mode: 'tmux-detached', agentDir: { mode: 'ambient' } }, - }, - }, - ], - [ - 'create_session', - { - request: { - action: 'create-session', - cwd: '~/scratch', - launch: { mode: 'tmux-detached', agentDir: { mode: 'ambient' } }, - }, - }, - ], - ['open_terminal', { request: { runtimeId: 'runtime-1' } }], - ['kill_session', { request: { runtimeId: 'runtime-1' } }], - [ - 'restart_session', - { - request: { - runtimeId: 'runtime-1', - generation: 'generation-1', - operationId: 'operation-1', - }, - }, - ], - ['open_external', { url: 'https://example.com' }], - ['copy_text', { text: 'copied' }], - ['doctor_status'], - ]); - }); - - it('preserves structured Tauri rejection fields on an Error', async () => { - const invoke = vi.fn(async () => { - throw { - code: 'mutating-helper-timeout', - message: - 'The desktop helper timed out before Session Deck could confirm whether the action completed.', - outcomeUnknown: true, - }; - }); - const host = createTauriSessionDeckHost({ - window: { - __TAURI__: { core: { invoke } }, - } as unknown as Window & typeof globalThis, - }); - - const error = await host - .createSession({ action: 'create-session', cwd: '~/scratch' }) - .catch((rejection: unknown) => rejection); - - expect(error).toBeInstanceOf(Error); - expect(error).toMatchObject({ - code: 'mutating-helper-timeout', - message: - 'The desktop helper timed out before Session Deck could confirm whether the action completed.', - outcomeUnknown: true, - }); - }); - - it.each([ - ['a string rejection', 'desktop unavailable'], - ['an Error rejection', new Error('desktop unavailable')], - ])('preserves %s handling', async (_label, rejection) => { - const invoke = vi.fn(async () => { - throw rejection; - }); - const host = createTauriSessionDeckHost({ - window: { - __TAURI__: { core: { invoke } }, - } as unknown as Window & typeof globalThis, - }); - - const error = await host.loadSnapshot().catch((caught: unknown) => caught); - - expect(error).toBeInstanceOf(Error); - expect((error as Error).message).toBe('desktop unavailable'); - if (rejection instanceof Error) { - expect(error).toBe(rejection); - } - }); - - it('fails clearly when the global Tauri bridge is unavailable', () => { - expect(() => resolveTauriInvoke(undefined)).toThrow( - 'Tauri invoke bridge is unavailable. Ensure app.withGlobalTauri is enabled.', - ); - }); -}); diff --git a/apps/session-deck-desktop/fixtures/runtime-layout-v1.json b/apps/session-deck-desktop/fixtures/runtime-layout-v1.json deleted file mode 100644 index c128bd3a..00000000 --- a/apps/session-deck-desktop/fixtures/runtime-layout-v1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": 1, - "snapshotHelperRelativePath": "dist/extensions/session-deck/iterm2/snapshot-cli.js", - "openActionHelperRelativePath": "dist/extensions/session-deck/iterm2/open-action-cli.js", - "killActionHelperRelativePath": "dist/extensions/session-deck/iterm2/kill-action-cli.js", - "worktreeActionHelperRelativePath": "dist/extensions/session-deck/worktree/action-cli.js", - "webRootRelativePath": "extensions/session-deck/iterm2/web" -} diff --git a/apps/session-deck-desktop/package.json b/apps/session-deck-desktop/package.json deleted file mode 100644 index d96e18bd..00000000 --- a/apps/session-deck-desktop/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "@robhowley/pi-session-deck-desktop", - "version": "0.0.0", - "private": true, - "type": "module", - "description": "Tauri desktop companion for Session Deck using installed desktop runtime metadata.", - "scripts": { - "sync:web": "node ./scripts/sync-web-assets.js", - "dev": "pnpm run sync:web && node ./scripts/run-tauri.js dev", - "dev:isolated": "node ./scripts/launch-branch.js dev", - "launch:branch": "node ./scripts/launch-branch.js", - "build": "pnpm run sync:web && node ./scripts/run-tauri.js build --no-bundle --ci", - "bundle:macos": "node ./scripts/run-tauri.js build --bundles app --ci", - "artifact:macos": "node ./scripts/build-macos-artifacts.js", - "tauri": "node ./scripts/run-tauri.js", - "test": "vitest run __tests__ && node ./scripts/run-cargo.js test --manifest-path src-tauri/Cargo.toml", - "typecheck": "tsc --noEmit -p tsconfig.json && node ./scripts/run-cargo.js check --manifest-path src-tauri/Cargo.toml", - "lint": "eslint web/ scripts/ __tests__/", - "format:check": "prettier --check README.md RELEASE.md package.json tsconfig.json web/ scripts/ __tests__/ src-tauri/tauri.conf.json src-tauri/capabilities/default.json && node ./scripts/run-cargo.js fmt --check --manifest-path src-tauri/Cargo.toml", - "format:write": "prettier --write README.md RELEASE.md package.json tsconfig.json web/ scripts/ __tests__/ src-tauri/tauri.conf.json src-tauri/capabilities/default.json && node ./scripts/run-cargo.js fmt --manifest-path src-tauri/Cargo.toml" - }, - "dependencies": { - "@tauri-apps/api": "^2.0.0" - }, - "devDependencies": { - "@tauri-apps/cli": "^2.0.0", - "@types/node": "^22.15.17" - } -} diff --git a/apps/session-deck-desktop/scripts/build-macos-artifacts.js b/apps/session-deck-desktop/scripts/build-macos-artifacts.js deleted file mode 100644 index fef25854..00000000 --- a/apps/session-deck-desktop/scripts/build-macos-artifacts.js +++ /dev/null @@ -1,392 +0,0 @@ -#!/usr/bin/env node -/* global process, console */ -import { createHash } from 'node:crypto'; -import { createReadStream } from 'node:fs'; -import { mkdir, readFile, rm, stat, writeFile } from 'node:fs/promises'; -import { platform as hostPlatform } from 'node:os'; -import { basename, dirname, join, resolve } from 'node:path'; -import { spawn } from 'node:child_process'; -import { fileURLToPath, pathToFileURL } from 'node:url'; -import { runTauri } from './run-tauri.js'; - -const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url)); -const PACKAGE_ROOT = resolve(SCRIPT_DIR, '..'); -const TAURI_CONF_PATH = resolve(PACKAGE_ROOT, 'src-tauri/tauri.conf.json'); -const CARGO_TOML_PATH = resolve(PACKAGE_ROOT, 'src-tauri/Cargo.toml'); -const DEFAULT_ARTIFACT_DIR = resolve(PACKAGE_ROOT, 'dist/artifacts'); -const PRODUCT_NAME = 'Session Deck Desktop'; -const ARTIFACT_PREFIX = 'session-deck-desktop'; - -/** - * @typedef {{ - * version: string, - * arch: 'arm64' | 'x64', - * target: 'aarch64-apple-darwin' | 'x86_64-apple-darwin', - * artifactDir: string, - * }} MacosArtifactOptions - */ - -/** - * @param {string[]} argv - * @returns {MacosArtifactOptions} - */ -export function parseMacosArtifactArgs(argv = process.argv.slice(2)) { - let version = null; - let target = null; - let artifactDir = DEFAULT_ARTIFACT_DIR; - - for (let index = 0; index < argv.length; index += 1) { - const arg = argv[index]; - if (typeof arg !== 'string') continue; - - if (arg === '--version') { - version = readOptionValue(argv, index, arg); - index += 1; - continue; - } - if (arg.startsWith('--version=')) { - version = readEqualsOptionValue(arg, '--version='); - continue; - } - if (arg === '--target') { - target = readOptionValue(argv, index, arg); - index += 1; - continue; - } - if (arg.startsWith('--target=')) { - target = readEqualsOptionValue(arg, '--target='); - continue; - } - if (arg === '--artifact-dir') { - artifactDir = resolve(PACKAGE_ROOT, readOptionValue(argv, index, arg)); - index += 1; - continue; - } - if (arg.startsWith('--artifact-dir=')) { - artifactDir = resolve(PACKAGE_ROOT, readEqualsOptionValue(arg, '--artifact-dir=')); - continue; - } - throw new Error(`Unknown option: ${arg}`); - } - - if (version === null) { - throw new Error('Missing --version for desktop artifact naming.'); - } - if (target === null) { - throw new Error('Missing --target .'); - } - - const arch = artifactArchForTarget(target); - const releaseTarget = /** @type {'aarch64-apple-darwin' | 'x86_64-apple-darwin'} */ (target); - return { - version: normalizeReleaseVersion(version), - arch, - target: releaseTarget, - artifactDir, - }; -} - -/** @param {string[]} argv @param {number} index @param {string} optionName */ -function readOptionValue(argv, index, optionName) { - const value = argv[index + 1]; - if (typeof value !== 'string' || value.length === 0) { - throw new Error(`Missing value for ${optionName}.`); - } - return value; -} - -/** @param {string} arg @param {string} prefix */ -function readEqualsOptionValue(arg, prefix) { - const value = arg.slice(prefix.length); - if (value.length === 0) throw new Error(`Missing value for ${prefix.slice(0, -1)}.`); - return value; -} - -/** @param {string} rawVersion */ -export function normalizeReleaseVersion(rawVersion) { - const version = rawVersion.trim().replace(/^v/u, ''); - if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u.test(version)) { - throw new Error(`Invalid pi-session-deck release version: ${rawVersion}`); - } - return version; -} - -/** @param {string} rawArch @returns {'arm64' | 'x64'} */ -export function normalizeArtifactArch(rawArch) { - switch (rawArch) { - case 'aarch64': - case 'arm64': - return 'arm64'; - case 'amd64': - case 'x64': - case 'x86_64': - return 'x64'; - default: - throw new Error(`Unsupported macOS artifact architecture: ${rawArch}`); - } -} - -/** - * @param {string} target - * @returns {'arm64' | 'x64'} - */ -export function artifactArchForTarget(target) { - switch (target) { - case 'aarch64-apple-darwin': - return 'arm64'; - case 'x86_64-apple-darwin': - return 'x64'; - default: - throw new Error(`Unsupported macOS release target: ${target}`); - } -} - -/** @param {string} target */ -export function bundleRootForTarget(target) { - return resolve(PACKAGE_ROOT, 'src-tauri/target', target, 'release/bundle'); -} - -/** @param {string} version @param {string} arch */ -export function macosArtifactStem(version, arch) { - return `${ARTIFACT_PREFIX}-v${normalizeReleaseVersion(version)}-macos-${normalizeArtifactArch(arch)}`; -} - -/** @param {unknown} value @returns {value is Record} */ -function isRecord(value) { - return typeof value === 'object' && value !== null && !Array.isArray(value); -} - -/** @param {string} tauriConfigText @param {string} cargoTomlText @param {string} version */ -export function applyDesktopReleaseVersion(tauriConfigText, cargoTomlText, version) { - const normalizedVersion = normalizeReleaseVersion(version); - const tauriConfig = /** @type {Record} */ (JSON.parse(tauriConfigText)); - const bundle = isRecord(tauriConfig['bundle']) ? tauriConfig['bundle'] : {}; - const macOS = isRecord(bundle['macOS']) ? bundle['macOS'] : {}; - - tauriConfig['version'] = normalizedVersion; - macOS['bundleVersion'] = normalizedVersion; - bundle['macOS'] = macOS; - tauriConfig['bundle'] = bundle; - - const nextCargoTomlText = cargoTomlText.replace( - /(^\[package\][\s\S]*?^version = ").*?("$)/mu, - `$1${normalizedVersion}$2`, - ); - if ( - nextCargoTomlText === cargoTomlText && - !cargoTomlText.includes(`version = "${normalizedVersion}"`) - ) { - throw new Error('Could not find [package] version in src-tauri/Cargo.toml.'); - } - - return { - tauriConfigText: `${JSON.stringify(tauriConfig, null, 2)}\n`, - cargoTomlText: nextCargoTomlText, - }; -} - -/** @param {string} version */ -async function writeDesktopReleaseVersion(version) { - const [tauriConfigText, cargoTomlText] = await Promise.all([ - readFile(TAURI_CONF_PATH, 'utf8'), - readFile(CARGO_TOML_PATH, 'utf8'), - ]); - const next = applyDesktopReleaseVersion(tauriConfigText, cargoTomlText, version); - await Promise.all([ - writeFile(TAURI_CONF_PATH, next.tauriConfigText, 'utf8'), - writeFile(CARGO_TOML_PATH, next.cargoTomlText, 'utf8'), - ]); -} - -/** @param {string} command @param {string[]} args */ -async function runCommand(command, args) { - await new Promise((resolvePromise, reject) => { - const child = spawn(command, args, { cwd: PACKAGE_ROOT, stdio: 'inherit' }); - child.on('error', reject); - child.on('exit', (code, signal) => { - if (signal !== null) return reject(new Error(`${command} exited from signal ${signal}`)); - if (code !== 0) return reject(new Error(`${command} exited with code ${code ?? 1}`)); - resolvePromise(undefined); - }); - }); -} - -/** @param {string} command @param {string[]} args */ -async function runCommandOutput(command, args) { - return await new Promise((resolvePromise, reject) => { - const child = spawn(command, args, { - cwd: PACKAGE_ROOT, - stdio: ['ignore', 'pipe', 'pipe'], - }); - let output = ''; - child.stdout.on('data', (chunk) => (output += chunk.toString())); - child.stderr.on('data', (chunk) => (output += chunk.toString())); - child.on('error', reject); - child.on('exit', (code, signal) => { - if (signal !== null) return reject(new Error(`${command} exited from signal ${signal}`)); - if (code !== 0) { - return reject(new Error(`${command} exited with code ${code ?? 1}: ${output.trim()}`)); - } - resolvePromise(output.trim()); - }); - }); -} - -/** - * @param {string} output - * @param {'arm64' | 'x64'} arch - * @param {string} [path] - */ -export function assertExecutableArchitecture(output, arch, path = 'Desktop executable') { - const actualArchitectures = output.trim() === '' ? [] : output.trim().split(/\s+/u); - const expectedArchitecture = arch === 'arm64' ? 'arm64' : 'x86_64'; - if (actualArchitectures.length !== 1 || actualArchitectures[0] !== expectedArchitecture) { - throw new Error( - `${path} architecture is ${actualArchitectures.join(', ') || 'unknown'}, expected only ${expectedArchitecture}.`, - ); - } -} - -/** @param {string} details @param {string} [path] */ -export function assertAdHocSignature(details, path = 'Desktop app') { - if (!/^Signature=adhoc$/mu.test(details)) { - throw new Error(`${path} does not have an ad-hoc signature.`); - } - if (/^Authority=/mu.test(details)) { - throw new Error(`${path} unexpectedly has an authenticated signing authority.`); - } -} - -/** - * @param {string} appBundlePath - * @param {'arm64' | 'x64'} arch - */ -async function verifyAppBundle(appBundlePath, arch) { - const appStats = await stat(appBundlePath); - if (!appStats.isDirectory()) throw new Error(`Expected an app bundle: ${appBundlePath}`); - - const executableName = await runCommandOutput('/usr/libexec/PlistBuddy', [ - '-c', - 'Print :CFBundleExecutable', - join(appBundlePath, 'Contents/Info.plist'), - ]); - if (executableName.length === 0 || executableName.includes('/')) { - throw new Error(`Invalid CFBundleExecutable in ${appBundlePath}.`); - } - - const executablePath = join(appBundlePath, 'Contents/MacOS', executableName); - const executableStats = await stat(executablePath); - if ( - !executableStats.isFile() || - executableStats.size <= 0 || - (executableStats.mode & 0o111) === 0 - ) { - throw new Error(`Expected a non-empty executable file: ${executablePath}`); - } - - const architectures = await runCommandOutput('/usr/bin/lipo', ['-archs', executablePath]); - assertExecutableArchitecture(architectures, arch, executablePath); - - await runCommand('/usr/bin/codesign', [ - '--verify', - '--deep', - '--strict', - '--verbose=2', - appBundlePath, - ]); - const signatureDetails = await runCommandOutput('/usr/bin/codesign', [ - '-dv', - '--verbose=4', - appBundlePath, - ]); - assertAdHocSignature(signatureDetails, appBundlePath); -} - -/** @param {string} appBundlePath @param {string} zipPath */ -async function zipAppBundle(appBundlePath, zipPath) { - await runCommand('/usr/bin/ditto', [ - '-c', - '-k', - '--keepParent', - '--sequesterRsrc', - '--zlibCompressionLevel', - '9', - appBundlePath, - zipPath, - ]); -} - -/** @param {string} filePath */ -async function sha256File(filePath) { - const hash = createHash('sha256'); - await new Promise((resolvePromise, reject) => { - const stream = createReadStream(filePath); - stream.on('data', (chunk) => hash.update(chunk)); - stream.on('error', reject); - stream.on('end', () => resolvePromise(undefined)); - }); - return hash.digest('hex'); -} - -/** @param {string} artifactPath */ -export async function writeArtifactChecksum(artifactPath) { - const artifactStats = await stat(artifactPath); - if (!artifactStats.isFile() || artifactStats.size <= 0) { - throw new Error(`Artifact is not a non-empty regular file: ${artifactPath}`); - } - - const sha256 = await sha256File(artifactPath); - const checksumPath = `${artifactPath}.sha256`; - await writeFile(checksumPath, `${sha256} ${basename(artifactPath)}\n`, 'utf8'); - return { checksumPath, sha256 }; -} - -/** @param {MacosArtifactOptions} options */ -export function tauriBuildArgsForOptions(options) { - return ['build', '--bundles', 'app', '--ci', '--target', options.target]; -} - -/** @param {MacosArtifactOptions} options */ -export async function buildMacosArtifactsFromOptions(options) { - if (hostPlatform() !== 'darwin') { - throw new Error('macOS desktop artifacts must be built and verified on a macOS runner.'); - } - if (artifactArchForTarget(options.target) !== options.arch) { - throw new Error( - `Target ${options.target} does not match artifact architecture ${options.arch}.`, - ); - } - - await writeDesktopReleaseVersion(options.version); - const exitCode = await runTauri(tauriBuildArgsForOptions(options)); - if (exitCode !== 0) throw new Error(`tauri build exited with code ${exitCode}`); - - const appBundlePath = join(bundleRootForTarget(options.target), 'macos', `${PRODUCT_NAME}.app`); - await verifyAppBundle(appBundlePath, options.arch); - - await rm(options.artifactDir, { recursive: true, force: true }); - await mkdir(options.artifactDir, { recursive: true }); - const zipPath = join( - options.artifactDir, - `${macosArtifactStem(options.version, options.arch)}.zip`, - ); - await zipAppBundle(appBundlePath, zipPath); - const checksum = await writeArtifactChecksum(zipPath); - - return { version: options.version, arch: options.arch, zipPath, ...checksum }; -} - -/** @param {string[]} argv */ -export async function buildMacosArtifacts(argv = process.argv.slice(2)) { - return buildMacosArtifactsFromOptions(parseMacosArtifactArgs(argv)); -} - -if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { - try { - const result = await buildMacosArtifacts(); - console.log(`Prepared ${basename(result.zipPath)} and its SHA-256 sidecar.`); - } catch (error) { - console.error(error instanceof Error ? error.message : String(error)); - process.exitCode = 1; - } -} diff --git a/apps/session-deck-desktop/scripts/launch-branch.js b/apps/session-deck-desktop/scripts/launch-branch.js deleted file mode 100644 index 0938fec5..00000000 --- a/apps/session-deck-desktop/scripts/launch-branch.js +++ /dev/null @@ -1,403 +0,0 @@ -#!/usr/bin/env node -/* global process, console */ -import { spawn } from 'node:child_process'; -import { createHash, randomUUID } from 'node:crypto'; -import { access, chmod, mkdir, readFile, rename, writeFile } from 'node:fs/promises'; -import { homedir, tmpdir } from 'node:os'; -import { dirname, join, resolve } from 'node:path'; -import { fileURLToPath, pathToFileURL } from 'node:url'; - -const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url)); -const DESKTOP_ROOT = resolve(SCRIPT_DIR, '..'); -const REPO_ROOT = resolve(DESKTOP_ROOT, '../..'); -const PACKAGE_NAME = '@robhowley/pi-session-deck'; -const PACKAGE_ROOT = resolve(REPO_ROOT, 'packages/pi-session-deck'); -const DESKTOP_FILTER = './apps/session-deck-desktop'; -const APP_BUNDLE_NAME = 'Session Deck Desktop.app'; -const APP_BUNDLE_PATH = resolve( - DESKTOP_ROOT, - `src-tauri/target/release/bundle/macos/${APP_BUNDLE_NAME}`, -); -const DEV_APP_PATH = resolve(DESKTOP_ROOT, 'src-tauri/target/debug/pi-session-deck-desktop'); -const INSTALLED_APP_PATH = join(homedir(), 'Applications', APP_BUNDLE_NAME); -const INSTALLED_STATE_PATH = join(homedir(), '.pi/session-deck/desktop/install.json'); -const STATE_ENV = 'PI_SESSION_DECK_DESKTOP_STATE_PATH'; - -/** - * @typedef {'dev' | 'bundle'} LaunchMode - * - * @typedef {{ - * mode: LaunchMode, - * openBundle: boolean, - * help: boolean, - * }} LaunchOptions - * - * @typedef {{ code: number }} CommandResult - * - * @typedef {{ - * cwd: string, - * env?: NodeJS.ProcessEnv, - * label: string, - * allowFailure?: boolean, - * }} RunOptions - * - * @typedef {{ level: string, message: string }} CommandMessage - */ - -/** - * @param {string[]} argv - * @returns {Promise} - */ -async function main(argv = process.argv.slice(2)) { - const options = parseArgs(argv); - if (options.help) { - console.log(usage()); - return 0; - } - - const [branch, version] = await Promise.all([branchSummary(), packageVersion()]); - - console.log('Session Deck Desktop branch launcher'); - console.log(`branch: ${branch}`); - console.log(`packageRoot: ${PACKAGE_ROOT}`); - console.log(`packageVersion: ${version}`); - console.log(''); - - await run('pnpm', ['--filter', PACKAGE_NAME, 'build'], { - cwd: REPO_ROOT, - label: `build ${PACKAGE_NAME}`, - }); - - return options.mode === 'bundle' ? bundleMode(options) : devMode(version); -} - -/** - * @param {string[]} argv - * @returns {LaunchOptions} - */ -function parseArgs(argv) { - /** @type {LaunchOptions} */ - const options = { mode: 'dev', openBundle: true, help: false }; - for (const arg of argv) { - switch (arg) { - case '-h': - case '--help': - options.help = true; - break; - case 'dev': - case '--dev': - case '--mode=dev': - options.mode = 'dev'; - break; - case 'bundle': - case 'app-bundle': - case 'release': - case '--bundle': - case '--mode=bundle': - case '--mode=app-bundle': - case '--mode=release': - options.mode = 'bundle'; - break; - case '--no-open': - options.openBundle = false; - break; - default: - throw new Error(`Unknown argument: ${arg}\n${usage()}`); - } - } - return options; -} - -function usage() { - return [ - 'Usage: pnpm --filter ./apps/session-deck-desktop dev:isolated', - ' pnpm --filter ./apps/session-deck-desktop launch:branch [dev]', - ' pnpm --filter ./apps/session-deck-desktop launch:branch bundle [--no-open]', - '', - 'Isolated dev mode builds @robhowley/pi-session-deck, writes temporary branch runtime', - 'metadata, and runs the local Tauri dev app. Bundle mode builds bundle:macos,', - 'installs the .app with branch package metadata, and opens it unless --no-open is set.', - ].join('\n'); -} - -/** - * @param {string} version - * @returns {Promise} - */ -async function devMode(version) { - const statePath = await writeBranchState(version); - const command = ['--filter', DESKTOP_FILTER, 'dev']; - - console.log('mode: dev'); - console.log(`statePath: ${statePath}`); - console.log(`stateEnv: ${STATE_ENV}=${statePath}`); - console.log(`devApp: ${DEV_APP_PATH}`); - console.log(`command: ${formatCommand('pnpm', command)}`); - console.log('stop: press Ctrl-C in this terminal to stop the Tauri dev process.'); - console.log(''); - - const result = await run('pnpm', command, { - cwd: REPO_ROOT, - env: { ...process.env, [STATE_ENV]: statePath }, - label: 'launch Tauri dev app', - }); - return result.code; -} - -/** - * @param {LaunchOptions} options - * @returns {Promise} - */ -async function bundleMode(options) { - if (process.platform !== 'darwin') { - console.error(`Bundle mode is only supported on macOS, not ${process.platform}.`); - return 1; - } - - console.log('mode: bundle'); - console.log(`appBundle: ${APP_BUNDLE_PATH}`); - console.log(`installedApp: ${INSTALLED_APP_PATH}`); - console.log(`installedState: ${INSTALLED_STATE_PATH}`); - console.log(''); - - const bundle = await run('pnpm', ['--filter', DESKTOP_FILTER, 'bundle:macos'], { - cwd: REPO_ROOT, - label: 'build macOS app bundle', - allowFailure: true, - }); - if (bundle.code !== 0) { - if (!(await exists(APP_BUNDLE_PATH))) { - console.error(`bundle:macos failed and no app bundle was found at ${APP_BUNDLE_PATH}.`); - return bundle.code; - } - console.warn(`bundle:macos exited ${bundle.code}; continuing because the .app exists.`); - } - - const { installSessionDeckDesktop } = await importDist('desktop/install.js'); - const install = await installSessionDeckDesktop({ fromPath: APP_BUNDLE_PATH }); - printResult('install', install); - if (install.level === 'error') { - return 1; - } - - console.log(`packageRoot: ${PACKAGE_ROOT}`); - console.log(`appPath: ${INSTALLED_APP_PATH}`); - console.log(`statePath: ${INSTALLED_STATE_PATH}`); - console.log( - 'signing: this branch bundle is ad-hoc signed, not Developer ID signed or notarized; macOS may require System Settings → Privacy & Security → Open Anyway.', - ); - - if (!options.openBundle) { - console.log('open: skipped (--no-open).'); - return 0; - } - - const { openSessionDeckDesktop } = await importDist('desktop/open.js'); - const opened = await openSessionDeckDesktop({}); - printResult('open', opened); - return opened.level === 'error' ? 1 : 0; -} - -/** - * @param {string} relativePath - * @returns {Promise} - */ -async function importDist(relativePath) { - return import( - pathToFileURL(resolve(PACKAGE_ROOT, 'dist/extensions/session-deck', relativePath)).href - ); -} - -/** - * @param {string} version - * @returns {Promise} - */ -async function writeBranchState(version) { - const dir = join( - tmpdir(), - `session-deck-desktop-branch-launcher-${process.getuid?.() ?? 'user'}`, - ); - const file = `${hash(REPO_ROOT).slice(0, 16)}.install.json`; - const path = join(dir, file); - const tempPath = join(dir, `.${file}.${process.pid}.${randomUUID()}.tmp`); - const state = createBranchState(version, new Date().toISOString()); - - try { - await mkdir(dir, { recursive: true, mode: 0o700 }); - await chmod(dir, 0o700); - await writeFile(tempPath, `${JSON.stringify(state, null, 2)}\n`, { - encoding: 'utf8', - mode: 0o600, - }); - await chmod(tempPath, 0o600); - await rename(tempPath, path); - await chmod(path, 0o600); - return path; - } catch (error) { - throw new Error(`Could not write branch runtime state at ${path}: ${message(error)}`); - } -} - -/** - * @param {string} version - * @param {string} installedAt - */ -export function createBranchState(version, installedAt) { - return { - schemaVersion: 1, - product: 'session-deck-desktop-development', - packageName: PACKAGE_NAME, - packageVersion: version, - installedAt, - runtime: { - nodeExecutablePath: process.execPath, - packageRoot: PACKAGE_ROOT, - helperPackageVersion: version, - }, - }; -} - -async function branchSummary() { - const [branch, head] = await Promise.all([ - capture('git', ['branch', '--show-current']), - capture('git', ['rev-parse', '--short', 'HEAD']), - ]); - if (branch !== null && branch.length > 0) { - return head === null ? branch : `${branch} (${head})`; - } - return head === null ? 'unknown' : `detached (${head})`; -} - -async function packageVersion() { - const path = resolve(PACKAGE_ROOT, 'package.json'); - const packageJson = JSON.parse(await readFile(path, 'utf8')); - if (typeof packageJson.version !== 'string' || packageJson.version.trim().length === 0) { - throw new Error(`Could not determine package version from ${path}.`); - } - return packageJson.version; -} - -/** - * @param {string} command - * @param {string[]} args - * @param {RunOptions} options - * @returns {Promise} - */ -async function run(command, args, options) { - console.log(`$ ${formatCommand(command, args)}`); - return new Promise((resolvePromise, reject) => { - const child = spawn(command, args, { - cwd: options.cwd, - env: options.env ?? process.env, - stdio: 'inherit', - }); - child.on('error', reject); - child.on('exit', (code, signal) => { - if (signal !== null) { - if (options.allowFailure === true) { - resolvePromise({ code: 1 }); - return; - } - reject(new Error(`${options.label} stopped after signal ${signal}.`)); - return; - } - const exitCode = code ?? 1; - if (exitCode !== 0 && options.allowFailure !== true) { - reject(new Error(`${options.label} failed with exit code ${exitCode}.`)); - return; - } - resolvePromise({ code: exitCode }); - }); - }); -} - -/** - * @param {string} command - * @param {string[]} args - * @returns {Promise} - */ -async function capture(command, args) { - return new Promise((resolvePromise) => { - let stdout = ''; - const child = spawn(command, args, { cwd: REPO_ROOT, stdio: ['ignore', 'pipe', 'ignore'] }); - child.stdout.on('data', (chunk) => { - stdout += chunk; - }); - child.on('error', () => resolvePromise(null)); - child.on('exit', (code) => { - const output = stdout.trim(); - resolvePromise(code === 0 && output.length > 0 ? output : null); - }); - }); -} - -/** - * @param {string} path - * @returns {Promise} - */ -async function exists(path) { - try { - await access(path); - return true; - } catch { - return false; - } -} - -/** - * @param {string} text - * @returns {string} - */ -function hash(text) { - return createHash('sha256').update(text).digest('hex'); -} - -/** - * @param {string} command - * @param {string[]} args - * @returns {string} - */ -function formatCommand(command, args) { - return [command, ...args.map(quoteArg)].join(' '); -} - -/** - * @param {string} arg - * @returns {string} - */ -function quoteArg(arg) { - return /^[A-Za-z0-9_./:=@-]+$/u.test(arg) ? arg : JSON.stringify(arg); -} - -/** - * @param {string} label - * @param {CommandMessage} result - * @returns {void} - */ -function printResult(label, result) { - const text = `${label}: ${result.message}`; - if (result.level === 'error') { - console.error(text); - } else if (result.level === 'warning') { - console.warn(text); - } else { - console.log(text); - } -} - -/** - * @param {unknown} error - * @returns {string} - */ -function message(error) { - return error instanceof Error ? error.message : String(error); -} - -if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { - try { - process.exitCode = await main(); - } catch (error) { - console.error(message(error)); - process.exitCode = 1; - } -} diff --git a/apps/session-deck-desktop/scripts/run-cargo.js b/apps/session-deck-desktop/scripts/run-cargo.js deleted file mode 100644 index 67ed085e..00000000 --- a/apps/session-deck-desktop/scripts/run-cargo.js +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/env node -/* global process */ -import { constants } from 'node:fs'; -import { access } from 'node:fs/promises'; -import { homedir } from 'node:os'; -import { delimiter, dirname, join, resolve } from 'node:path'; -import { spawn } from 'node:child_process'; -import { fileURLToPath, pathToFileURL } from 'node:url'; - -const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url)); -const PACKAGE_ROOT = resolve(SCRIPT_DIR, '..'); - -/** - * @param {NodeJS.ProcessEnv} env - * @param {string} homeDirectory - * @returns {Promise<{ cargoPath: string, env: NodeJS.ProcessEnv }>} - */ -export async function buildCargoExecutionContext(env = process.env, homeDirectory = homedir()) { - const cargoHomeBin = join(homeDirectory, '.cargo', 'bin'); - const cargoPath = - (await findExecutableOnPath('cargo', env['PATH'])) ?? - ((await isExecutable(join(cargoHomeBin, 'cargo'))) ? join(cargoHomeBin, 'cargo') : null); - - if (cargoPath === null) { - throw new Error( - 'Could not find cargo. Install Rust with rustup and ensure cargo is available.', - ); - } - - return { - cargoPath, - env: { - ...env, - PATH: prependPathEntry(env['PATH'], cargoHomeBin), - }, - }; -} - -/** - * @param {string[]} argv - * @returns {Promise} - */ -export async function runCargo(argv = process.argv.slice(2)) { - const { cargoPath, env } = await buildCargoExecutionContext(); - return await new Promise((resolve, reject) => { - const child = spawn(cargoPath, argv, { - cwd: PACKAGE_ROOT, - env, - stdio: 'inherit', - }); - - child.on('error', reject); - child.on('exit', (code, signal) => { - if (signal !== null) { - reject(new Error(`cargo exited from signal ${signal}`)); - return; - } - resolve(code ?? 1); - }); - }); -} - -/** - * @param {string | undefined} currentPath - * @param {string} entry - * @returns {string} - */ -function prependPathEntry(currentPath, entry) { - if (typeof currentPath !== 'string' || currentPath.length === 0) { - return entry; - } - - const entries = currentPath.split(delimiter); - return entries.includes(entry) ? currentPath : [entry, ...entries].join(delimiter); -} - -/** - * @param {string} command - * @param {string | undefined} currentPath - * @returns {Promise} - */ -async function findExecutableOnPath(command, currentPath) { - if (typeof currentPath !== 'string' || currentPath.length === 0) { - return null; - } - - for (const entry of currentPath.split(delimiter)) { - if (entry.length === 0) { - continue; - } - - const candidate = join(entry, command); - if (await isExecutable(candidate)) { - return candidate; - } - } - - return null; -} - -/** - * @param {string} path - * @returns {Promise} - */ -async function isExecutable(path) { - try { - await access(path, constants.X_OK); - return true; - } catch { - return false; - } -} - -if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { - process.exitCode = await runCargo(); -} diff --git a/apps/session-deck-desktop/scripts/run-tauri.js b/apps/session-deck-desktop/scripts/run-tauri.js deleted file mode 100644 index 1509a39f..00000000 --- a/apps/session-deck-desktop/scripts/run-tauri.js +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env node -/* global process */ -import { spawn } from 'node:child_process'; -import { dirname, resolve } from 'node:path'; -import { fileURLToPath, pathToFileURL } from 'node:url'; -import { buildCargoExecutionContext } from './run-cargo.js'; - -const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url)); -const PACKAGE_ROOT = resolve(SCRIPT_DIR, '..'); - -/** - * @param {string[]} argv - * @returns {Promise} - */ -export async function runTauri(argv = process.argv.slice(2)) { - const { env } = await buildCargoExecutionContext(); - return await new Promise((resolve, reject) => { - const child = spawn('pnpm', ['exec', 'tauri', ...argv], { - cwd: PACKAGE_ROOT, - env, - stdio: 'inherit', - }); - - child.on('error', reject); - child.on('exit', (code, signal) => { - if (signal !== null) { - reject(new Error(`tauri exited from signal ${signal}`)); - return; - } - resolve(code ?? 1); - }); - }); -} - -if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { - process.exitCode = await runTauri(); -} diff --git a/apps/session-deck-desktop/scripts/sync-web-assets.js b/apps/session-deck-desktop/scripts/sync-web-assets.js deleted file mode 100644 index bb14cb96..00000000 --- a/apps/session-deck-desktop/scripts/sync-web-assets.js +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env node -/* global process */ -import { mkdir, readFile, writeFile } from 'node:fs/promises'; -import { dirname, resolve } from 'node:path'; -import { fileURLToPath, pathToFileURL } from 'node:url'; - -const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url)); -const PACKAGE_ROOT = resolve(SCRIPT_DIR, '..'); -const SOURCE_WEB_ROOT = resolve( - PACKAGE_ROOT, - '../../packages/pi-session-deck/extensions/session-deck/iterm2/web', -); -const DESTINATION_WEB_ROOT = resolve(PACKAGE_ROOT, 'web'); -const ACTION_TOKEN_META_PATTERN = /\n\s*/u; -const CANONICAL_SCRIPT_TAGS_PATTERN = - /\n\s*', - '', -].join('\n '); - -/** - * @param {string} sourceIndex - * @returns {string} - */ -export function buildDesktopIndex(sourceIndex) { - if (!CANONICAL_SCRIPT_TAGS_PATTERN.test(sourceIndex)) { - throw new Error( - 'Canonical Session Deck index.html no longer has the expected shared-ui/iTerm2/app script tags.', - ); - } - - return sourceIndex - .replace(ACTION_TOKEN_META_PATTERN, '') - .replaceAll('href="/style.css"', 'href="./style.css"') - .replace(CANONICAL_SCRIPT_TAGS_PATTERN, `\n ${DESKTOP_SCRIPT_TAGS}`); -} - -/** - * @param {{ sourceWebRoot?: string, destinationWebRoot?: string }} [options] - */ -export async function syncWebAssets(options = {}) { - const sourceWebRoot = options.sourceWebRoot ?? SOURCE_WEB_ROOT; - const destinationWebRoot = options.destinationWebRoot ?? DESTINATION_WEB_ROOT; - const [sourceIndex, sourceStyle, sourceSharedUi] = await Promise.all([ - readFile(resolve(sourceWebRoot, 'index.html'), 'utf8'), - readFile(resolve(sourceWebRoot, 'style.css'), 'utf8'), - readFile(resolve(sourceWebRoot, 'session-deck-ui.js')), - ]); - - await mkdir(destinationWebRoot, { recursive: true }); - await Promise.all([ - writeFile(resolve(destinationWebRoot, 'index.html'), buildDesktopIndex(sourceIndex), 'utf8'), - writeFile(resolve(destinationWebRoot, 'style.css'), sourceStyle, 'utf8'), - writeFile(resolve(destinationWebRoot, 'session-deck-ui.js'), sourceSharedUi), - ]); -} - -if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { - await syncWebAssets(); -} diff --git a/apps/session-deck-desktop/src-tauri/Cargo.lock b/apps/session-deck-desktop/src-tauri/Cargo.lock deleted file mode 100644 index a880e389..00000000 --- a/apps/session-deck-desktop/src-tauri/Cargo.lock +++ /dev/null @@ -1,4825 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[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.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" -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.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" - -[[package]] -name = "arboard" -version = "3.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0348a1c054491f4bfe6ab86a7b6ab1e44e45d899005de92f58b3df180b36ddaf" -dependencies = [ - "clipboard-win", - "image", - "log", - "objc2", - "objc2-app-kit", - "objc2-core-foundation", - "objc2-core-graphics", - "objc2-foundation", - "parking_lot", - "percent-encoding", - "windows-sys 0.60.2", - "x11rb", -] - -[[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.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" -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.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "5.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" -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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" - -[[package]] -name = "bytemuck" -version = "1.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6aedf8ae72766347502cf3cb4f41cf5e9cc37d28bee90f1fdaaae15f9cf9424" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "byteorder-lite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" - -[[package]] -name = "bytes" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" -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.13.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.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f2d30e4173c4026932d51d31d6b0613b1fd3014bf3f9f8943d4ba139c437ba0" -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.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17dd265a7d0f31ef544e1b20e03add05d3b45b491b633b10d67145d2acc1a38" -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.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" -dependencies = [ - "iana-time-zone", - "num-traits", - "serde", - "windows-link 0.2.1", -] - -[[package]] -name = "clipboard-win" -version = "5.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4" -dependencies = [ - "error-code", -] - -[[package]] -name = "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.13.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.13.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.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d85363c37faeca707aef026efa9f3b34d077bce547e48f770770625c6013679e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" - -[[package]] -name = "crunchy" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" - -[[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.119", -] - -[[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.119", -] - -[[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.119", -] - -[[package]] -name = "dbus" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab69f03cc8c4340c9c8e315114e1658e6775a9b16a04357973aa21cec22b32e" -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 = [ - "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.119", -] - -[[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 = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys 0.4.1", -] - -[[package]] -name = "dirs" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" -dependencies = [ - "dirs-sys 0.5.0", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users 0.4.6", - "windows-sys 0.48.0", -] - -[[package]] -name = "dirs-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" -dependencies = [ - "libc", - "option-ext", - "redox_users 0.5.2", - "windows-sys 0.61.2", -] - -[[package]] -name = "dispatch2" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" -dependencies = [ - "bitflags 2.13.1", - "block2", - "libc", - "objc2", -] - -[[package]] -name = "displaydoc" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - -[[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.119", -] - -[[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", - "html5ever", - "precomputed-hash", - "selectors", - "tendril", -] - -[[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.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbfdaacccebec3b28e4866b8973543c7647797db5ada1bdab552e48fe665fbbd" -dependencies = [ - "cc", - "memchr", - "rustc_version", - "toml 1.1.3+spec-1.1.0", - "vswhom", - "winreg", -] - -[[package]] -name = "embed_plist" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "erased-serde" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" -dependencies = [ - "serde", - "serde_core", - "typeid", -] - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "error-code" -version = "3.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" - -[[package]] -name = "fastrand" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" - -[[package]] -name = "fax" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf1079563223d5d59d83c85886a56e586cfd5c1a26292e971a0fa266531ac5a" - -[[package]] -name = "fdeflate" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" -dependencies = [ - "simd-adler32", -] - -[[package]] -name = "field-offset" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" -dependencies = [ - "memoffset", - "rustc_version", -] - -[[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.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.119", -] - -[[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.119", -] - -[[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 = "gethostname" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" -dependencies = [ - "rustix", - "windows-link 0.2.1", -] - -[[package]] -name = "getrandom" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" -dependencies = [ - "cfg-if", - "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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" -dependencies = [ - "cfg-if", - "libc", - "r-efi 6.0.0", -] - -[[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.13.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.119", -] - -[[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.119", -] - -[[package]] -name = "half" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" -dependencies = [ - "cfg-if", - "crunchy", - "zerocopy", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[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.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425" -dependencies = [ - "bytes", - "itoa", -] - -[[package]] -name = "http-body" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f41fd6a08e4d4ec69df65976da761afd5ad5e58a9d4acb46bd1c953a9e3ff2" -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.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498" -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 = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "image" -version = "0.25.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104" -dependencies = [ - "bytemuck", - "byteorder-lite", - "moxcms", - "num-traits", - "png 0.18.1", - "tiff", -] - -[[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 = "ipnet" -version = "2.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" - -[[package]] -name = "is-docker" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" -dependencies = [ - "once_cell", -] - -[[package]] -name = "is-wsl" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" -dependencies = [ - "is-docker", - "once_cell", -] - -[[package]] -name = "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.119", -] - -[[package]] -name = "js-sys" -version = "0.3.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" -dependencies = [ - "cfg-if", - "futures-util", - "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.13.1", - "serde", - "unicode-segmentation", -] - -[[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.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" -dependencies = [ - "libc", -] - -[[package]] -name = "linux-raw-sys" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" - -[[package]] -name = "litemap" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" - -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" - -[[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 = "memchr" -version = "2.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" - -[[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.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.61.2", -] - -[[package]] -name = "moxcms" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b" -dependencies = [ - "num-traits", - "pxfm", -] - -[[package]] -name = "muda" -version = "0.19.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878" -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.13.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 = "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.119", -] - -[[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.13.1", - "block2", - "objc2", - "objc2-core-foundation", - "objc2-core-graphics", - "objc2-foundation", -] - -[[package]] -name = "objc2-cloud-kit" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" -dependencies = [ - "bitflags 2.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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 = "open" -version = "5.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b3d059e795d52b8a72fef45658620edd4d9c359b338564aa14391ffa511ed5" -dependencies = [ - "is-wsl", - "libc", -] - -[[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.119", -] - -[[package]] -name = "phf_shared" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pi-session-deck-desktop" -version = "0.0.0" -dependencies = [ - "arboard", - "dirs 5.0.1", - "libc", - "open", - "serde", - "serde_json", - "tauri", - "tauri-build", - "tempfile", - "url", - "wait-timeout", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" - -[[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.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da1d65da6dd5d1e44199ac0f58712d241c0f439f80adea8924d832384087f85" -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.13.1", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide", -] - -[[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 = "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.13+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 = "pxfm" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea" - -[[package]] -name = "quick-error" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" - -[[package]] -name = "quick-xml" -version = "0.41.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" -dependencies = [ - "memchr", -] - -[[package]] -name = "quote" -version = "1.0.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" -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.13.1", -] - -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.17", - "libredox", - "thiserror 1.0.69", -] - -[[package]] -name = "redox_users" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" -dependencies = [ - "getrandom 0.2.17", - "libredox", - "thiserror 2.0.18", -] - -[[package]] -name = "ref-cast" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - -[[package]] -name = "regex" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" - -[[package]] -name = "reqwest" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" -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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" -dependencies = [ - "bitflags 2.13.1", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustversion" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" - -[[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.119", -] - -[[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.13.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.119", -] - -[[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.119", -] - -[[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.119", -] - -[[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.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" -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.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.119", -] - -[[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.119", -] - -[[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 = "shlex" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" - -[[package]] -name = "simd-adler32" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" - -[[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.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" - -[[package]] -name = "socket2" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" -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.119" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" -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.119", -] - -[[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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1c93047acf68669466a34690ac58cca7010bd1b201e1ec86f1fd0a75d3dd4a9" -dependencies = [ - "bitflags 2.13.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.119", -] - -[[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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "667b20e2726d572dea2de7370da16e188eb06008faf9a92fab7cdc46791190b5" -dependencies = [ - "anyhow", - "bytes", - "cookie", - "dirs 6.0.0", - "dunce", - "embed_plist", - "getrandom 0.3.4", - "glob", - "gtk", - "heck 0.5.0", - "http", - "jni", - "libc", - "log", - "mime", - "muda", - "objc2", - "objc2-app-kit", - "objc2-foundation", - "objc2-ui-kit", - "objc2-web-kit", - "percent-encoding", - "plist", - "raw-window-handle", - "reqwest", - "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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9ce40b16101cb6ea63d3e221567affd1c3a9205f95d7bc574941a10636b632" -dependencies = [ - "anyhow", - "cargo_toml", - "dirs 6.0.0", - "glob", - "heck 0.5.0", - "json-patch", - "schemars 0.8.22", - "semver", - "serde", - "serde_json", - "tauri-utils", - "tauri-winres", - "walkdir", -] - -[[package]] -name = "tauri-codegen" -version = "2.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08279169ff42f8fc45a1dbc9dcae888893ba95288142e5880c59b93a26d2cfc5" -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.119", - "tauri-utils", - "thiserror 2.0.18", - "time", - "url", - "uuid", - "walkdir", -] - -[[package]] -name = "tauri-macros" -version = "2.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8b394794f399a421811d06966343e7933fcae92d59f5180b9388d1174497a45" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.119", - "tauri-codegen", - "tauri-utils", -] - -[[package]] -name = "tauri-runtime" -version = "2.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0b4bc95aed361b0019067d189a1174a603d460d0f6c72606512d59fc9c12ec8" -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.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e6fac707727b7a2f48e4ded90976324267371073edbb415ffb73bb0458d203f" -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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e176a18e67764923c4f1ce66f25ae4abe5f688384d5eb1a0fa6c77f3d90f887" -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.3+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.3+spec-1.1.0", -] - -[[package]] -name = "tempfile" -version = "3.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" -dependencies = [ - "fastrand", - "getrandom 0.4.3", - "once_cell", - "rustix", - "windows-sys 0.61.2", -] - -[[package]] -name = "tendril" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fed54709c5b3a53d09bb1c113ea4f5ceafd1e772ddcb0030a82e1d56c087b08" -dependencies = [ - "new_debug_unreachable", -] - -[[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.119", -] - -[[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.119", -] - -[[package]] -name = "tiff" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b63feaf3343d35b6ca4d50483f94843803b0f51634937cc2ec519fc32232bc52" -dependencies = [ - "fax", - "flate2", - "half", - "quick-error", - "weezl", - "zune-jpeg", -] - -[[package]] -name = "time" -version = "0.3.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18dfaaeddcb932337b5e7866ee7d0ce9b76d2fd092997146f187ec09b4558a50" -dependencies = [ - "deranged", - "num-conv", - "powerfmt", - "serde_core", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" - -[[package]] -name = "time-macros" -version = "0.2.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c431b87111666e491a90baa837f914fb45cd5dc3c268591b0220ff5057f2085f" -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.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f" -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.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317fafbbe3f02fc663dad00ea6186197de963cd4190e86a26d8d0fae095539af" -dependencies = [ - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.61.2", -] - -[[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.3+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53c96ecdfa941c8fc4fcaed14f99ada8ebed502eef533015095a07e3301d4c3c" -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.4", -] - -[[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.13+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" -dependencies = [ - "indexmap 2.14.0", - "toml_datetime 1.1.1+spec-1.1.0", - "toml_parser", - "winnow 1.0.4", -] - -[[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.4", -] - -[[package]] -name = "toml_writer" -version = "1.1.2+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" - -[[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.13.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-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" -dependencies = [ - "once_cell", -] - -[[package]] -name = "tray-icon" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65ba1e5f6b9ef9fd87e21b9c6f351554dbd717960089168fcfdef854686961dc" -dependencies = [ - "crossbeam-channel", - "dirs 6.0.0", - "libappindicator", - "muda", - "objc2", - "objc2-app-kit", - "objc2-core-foundation", - "objc2-core-graphics", - "objc2-foundation", - "once_cell", - "png 0.18.1", - "serde", - "thiserror 2.0.18", - "windows-sys 0.61.2", -] - -[[package]] -name = "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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" - -[[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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" - -[[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 = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239" -dependencies = [ - "getrandom 0.4.3", - "js-sys", - "serde_core", - "wasm-bindgen", -] - -[[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 = "wait-timeout" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" -dependencies = [ - "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.4+wasi-0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.126" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.126" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.126" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn 2.0.119", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.126" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" -dependencies = [ - "unicode-ident", -] - -[[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 = "web-sys" -version = "0.3.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "web_atoms" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "075474b12bcb3d2e3d4546580e9de478eeeead668a1761e2a8860c836b7ef297" -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.119", -] - -[[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 = "weezl" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" - -[[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.119", -] - -[[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.119", -] - -[[package]] -name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - -[[package]] -name = "windows-numerics" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" -dependencies = [ - "windows-core 0.61.2", - "windows-link 0.1.3", -] - -[[package]] -name = "windows-result" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link 0.2.1", -] - -[[package]] -name = "windows-strings" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link 0.2.1", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", -] - -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link 0.2.1", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link 0.2.1", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", -] - -[[package]] -name = "windows-threading" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-version" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" -dependencies = [ - "windows-link 0.2.1", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" - -[[package]] -name = "winnow" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.55.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" -dependencies = [ - "cfg-if", - "windows-sys 0.59.0", -] - -[[package]] -name = "wit-bindgen" -version = "0.57.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" - -[[package]] -name = "writeable" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" - -[[package]] -name = "wry" -version = "0.55.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186f9871daa55fd9c016578b810d149de58367113db7fb72b462d2323ce19514" -dependencies = [ - "base64 0.22.1", - "block2", - "cookie", - "crossbeam-channel", - "dirs 6.0.0", - "dom_query", - "dpi", - "dunce", - "gdkx11", - "gtk", - "http", - "javascriptcore-rs", - "jni", - "libc", - "ndk", - "objc2", - "objc2-app-kit", - "objc2-core-foundation", - "objc2-foundation", - "objc2-ui-kit", - "objc2-web-kit", - "once_cell", - "percent-encoding", - "raw-window-handle", - "sha2", - "soup3", - "tao-macros", - "thiserror 2.0.18", - "url", - "webkit2gtk", - "webkit2gtk-sys", - "webview2-com", - "windows", - "windows-core 0.61.2", - "windows-version", - "x11-dl", -] - -[[package]] -name = "x11" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" -dependencies = [ - "libc", - "pkg-config", -] - -[[package]] -name = "x11-dl" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" -dependencies = [ - "libc", - "once_cell", - "pkg-config", -] - -[[package]] -name = "x11rb" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" -dependencies = [ - "gethostname", - "rustix", - "x11rb-protocol", -] - -[[package]] -name = "x11rb-protocol" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" - -[[package]] -name = "yoke" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" -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.119", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.8.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7cbbc0a705a0fd05cc3676525980d2bf5a9bc4adac6d6475209a7887cf59d19" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e817b7b52d0c7358d3246da9d69935ebb18116b2b102b4230dac079b4862f5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - -[[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.119", - "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.119", -] - -[[package]] -name = "zmij" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" - -[[package]] -name = "zune-core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9" - -[[package]] -name = "zune-jpeg" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296" -dependencies = [ - "zune-core", -] diff --git a/apps/session-deck-desktop/src-tauri/Cargo.toml b/apps/session-deck-desktop/src-tauri/Cargo.toml deleted file mode 100644 index 7dd2ac97..00000000 --- a/apps/session-deck-desktop/src-tauri/Cargo.toml +++ /dev/null @@ -1,30 +0,0 @@ -[package] -name = "pi-session-deck-desktop" -version = "0.0.0" -description = "Tauri desktop companion for Session Deck" -edition = "2021" - -[lib] -name = "pi_session_deck_desktop" -path = "src/lib.rs" - -[[bin]] -name = "pi-session-deck-desktop" -path = "src/main.rs" - -[build-dependencies] -tauri-build = { version = "2", features = [] } - -[dependencies] -arboard = "3" -dirs = "5" -libc = "0.2" -open = "5" -serde = { version = "1", features = ["derive"] } -serde_json = "1" -tauri = { version = "2", features = ["tray-icon"] } -url = "2" -wait-timeout = "0.2" - -[dev-dependencies] -tempfile = "3" diff --git a/apps/session-deck-desktop/src-tauri/Info.plist b/apps/session-deck-desktop/src-tauri/Info.plist deleted file mode 100644 index 48dd8fd1..00000000 --- a/apps/session-deck-desktop/src-tauri/Info.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - CFBundleDisplayName - Session Deck - - diff --git a/apps/session-deck-desktop/src-tauri/build.rs b/apps/session-deck-desktop/src-tauri/build.rs deleted file mode 100644 index d860e1e6..00000000 --- a/apps/session-deck-desktop/src-tauri/build.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - tauri_build::build() -} diff --git a/apps/session-deck-desktop/src-tauri/capabilities/default.json b/apps/session-deck-desktop/src-tauri/capabilities/default.json deleted file mode 100644 index 63836c10..00000000 --- a/apps/session-deck-desktop/src-tauri/capabilities/default.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "../gen/schemas/desktop-schema.json", - "identifier": "default", - "description": "Default capability for the Session Deck desktop window.", - "windows": ["main"], - "permissions": ["core:default"] -} diff --git a/apps/session-deck-desktop/src-tauri/gen/schemas/acl-manifests.json b/apps/session-deck-desktop/src-tauri/gen/schemas/acl-manifests.json deleted file mode 100644 index 0eebfc46..00000000 --- a/apps/session-deck-desktop/src-tauri/gen/schemas/acl-manifests.json +++ /dev/null @@ -1 +0,0 @@ -{"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/apps/session-deck-desktop/src-tauri/gen/schemas/capabilities.json b/apps/session-deck-desktop/src-tauri/gen/schemas/capabilities.json deleted file mode 100644 index f023237b..00000000 --- a/apps/session-deck-desktop/src-tauri/gen/schemas/capabilities.json +++ /dev/null @@ -1 +0,0 @@ -{"default":{"identifier":"default","description":"Default capability for the Session Deck desktop window.","local":true,"windows":["main"],"permissions":["core:default"]}} \ No newline at end of file diff --git a/apps/session-deck-desktop/src-tauri/gen/schemas/desktop-schema.json b/apps/session-deck-desktop/src-tauri/gen/schemas/desktop-schema.json deleted file mode 100644 index 32866459..00000000 --- a/apps/session-deck-desktop/src-tauri/gen/schemas/desktop-schema.json +++ /dev/null @@ -1,2292 +0,0 @@ -{ - "$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/apps/session-deck-desktop/src-tauri/gen/schemas/macOS-schema.json b/apps/session-deck-desktop/src-tauri/gen/schemas/macOS-schema.json deleted file mode 100644 index 32866459..00000000 --- a/apps/session-deck-desktop/src-tauri/gen/schemas/macOS-schema.json +++ /dev/null @@ -1,2292 +0,0 @@ -{ - "$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/apps/session-deck-desktop/src-tauri/icons/icon.icns b/apps/session-deck-desktop/src-tauri/icons/icon.icns deleted file mode 100644 index e83265c50966680325b1d7aafd99d05edcaa4ca9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780629 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 z 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

5Kg+eQKHJ2qqM6DK1~keAv;fWA;r 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≤8 zAY@sBL<|qQ2jNgFrndM%_n8cLT0ElrzWlxCgv-7?U5iE{hIKggnx{@g4fjI8lgs?@cw%R`t?eD{(HYvY=mc4ka{5n$vDYEO7k96Joc|MXb6Iv8>+?CdO@JQ@UV>|8Yid!E)eDczVA3k{Ld%oxV=5+xO zR|^7kbo2wq4<0*nAf%Vidt8TKkj<90JH@yM^i?Y_ZmpCi-C8 zmTa~y?r5h8U_%*ikdpQuxs7FrdXn2tye7!oXG~YiA2h(FM$@AUS8bnnvkXGA+4J6G z7OUD`Wp$dssEVwCP*G2Y{yOOO>id&>-2~S@86@&mI$4tzNb7Z+u}M&A0#=x7f;HjN zJQ6CT-AIrD!R7LBM`pc`^_qA(W)pDg@q6oLYyv%E(6y2d6qCS`$Oi!~>ipIjYiLRe zeUI8PSnul%WHW7c;(A}v*#%4F_AGh`wr=M7zUMB{abJAz#~V|D1U+7az+Wh%fEQkP zaUp{)U?GagP6W=-j$Q&IZAC^NA=F4?dXKD)RoRDtNq~_O8Htv%S_Ole9c^wdwr6R# z#?wz6{Ppso-`fG8 zJjc!zyk_hpt!>-gs6+9Y%&9lkcJOf5AZ=4!hn?P@Y^NcKbIlLrx;$N!*8lCBcj7aj z{Xzl%JYHJ=0f~emvl^*Q$2xyA-S#ABF^B+-wrIBPoTdbCC&wII1Y7xIU>;UamQTV% z7TdazLR`@7q>n48?2PJ%Og!_xQF^yBU>F;BEVX;8R)txeGu6DRlzBMp4xE zecMx14TJ*}yaC)OAou$)H*;(&W*@K=(rs&coiNfRnY(vkt`jCWGQ=73_~FBN>801= zwKqSrSOq6c#`S;{oYXL=-0qjd6G!u_Ljrp?Zy%8L4Vj#cp@1~fSX3#C8;NqBbBYCb z;L+Pp9-X}W_`#zW%a0ph`N~(W3xKQiecr#1TTf3Pzj}Ih`bN1W?(P$5_hqAISnrJi zDWnBC$OU6{lbm!RdoffopX^N|kQHVFJDY)HW-yC}?i_g*gl+%FILqlNml zoaQsQgDuLmw#krzq*US;!GC6(I=kAqe; z71nDV694&ZMNkerO9dgKo)81RF>D{$T<<46ea`LYwG-5|06y~RK|xyuQM*WD5e?GY zvQQhSXd0k|Ib`a)XGL^!Jh_$#(OIYv)ps`YF0${Lu5!#rAW?cf80*cWM`3Ww#wFeZ<}mlAjmo} zqru0v&Z638+qGp1rb7MqE(_%1VlKg7uP-`*eJC1M`*1i8Tc5OQ4V5TlOrz@5pHAui z#UO~2I5hSXl4G`KY}ej+8=k*F4O(kd!0GYn`SHh3o*eJuVSf3SXq?QIhy70|1B)X)n>3%ny4;W!Y?#?lsed;I+kO{{B?WZqOe}%xn$+ z*-lhbit7{w@$Na?seWI5w8HO|TVJZIPvHbj+YthNU+2#5eSjvtZ&Jq)v%N*ha+$ zx6L_?jU?!XN%!F%r`(@dH&6P42U)10KqGYKu~wAHRZxOq-6+_^co1S8G^B?V4#bw= zwqljB-M_3XcI40}Eln_GgR77r<@%<=qRx6bMo5Dp$#Sg7UQ2YQc?=A*dYNOA@6G)0Oi&t@*+}Bj_lddrE=<3~jEMYitR?y(DzV>?Dxp#Nb z0vzACk@62H6vAzY4jD_rpLxB$+D$nGED8;g-WHi)4;rDi@2RE zKs$j(ilS#{b{f10dw2j%@_<3Tocmjt_ z!-(Fc!2vL9H|)451<;4z{jeO8;<+gTo*Ngy$q8_IeqKK0izNfkp956yH{dp{F7dSH z$ww37$#%Les91$U`*xUQ@yTp(38$dClVF=~xA{l1fDID%QW)#n?msGFAooi?`1vC4 z*}^W`%y_cQ60XssoA^xI%v-e_nFhG=1|rh*9&KToWHFF}BBTA)b+=i`j9iD-0$eOS z^$0q(&jan`y9F=J%H^kvq_pD85w0Oc3rOP-sOZR<<&J4~tLDZaXbN^F)q53g)zmUt z3tJobm?`5KZ8L8*6nZ%Y+X*Pdaycc%{IWTSz)B%2TEORUsTPf#I1jUGQl@rjpzCBp z))~{_bex3b!(VeappnAz2-bR8uFJID2g^G;+W-BPVKAwPcX|6S0g$cIy5tv7X^L?v4(3i_YK24|_D$PI3HC1%`ow@n7{qYq$ zqC+=HPfJFw+7*2)!A1cLGXhl3Q9#=sDgllk#^ zMjB$zY8@wU=Mt)N7H?7@apEP3koHnesocJ%`0|m)2X)jy&z%pMZDZXKdc&VH8&E@$ z9Fk9UKA6{AIs_D3=)^!XYVO0l?ewG!deJDaZ>~$?37~W#)h}>{c+4k1Y3MP2>@;6GH@b2)i zd)AiK;7IM9qt2tBDj9uZAC&Ju=o4CWl7x;y4h;}UQe*x1dW;tPfUZl>^jPgPoz{2$ z^z7n#1aLKfJY7<+_BZqae|bt`gAurBiuE@3N@1djj;8HpCWku)mgz{R93DsvQ}Gsn z4%@n~c-MchpXoSDH031Avj#&o+vp(gY!bLkJ@%IVg<9 zkliAAbOnbmQIHH&u_ik&z2DcOlOQ{wm2=wt{rd;fu(Itlw5k)JqGEU z0(er(W{L@@MM<_6zwdb-12IHOIfY^Kz(y^xjG`e!{M zhGR>`2aHr|1M16X%(i|`%Re1L6%hY4T96CEXmRzl3OTvf%@k|E(ZxR4Cz?lG=e8Om zLMBf9*5ch1{;6u%Z#i>aOtMW!@tk$3X7ku1huIKjaYWEg9M#Jn?4U=K{8>K3I9DeI z+o{q{L#b^HB$TV$+^9&_8eY<893T<;qAJQ$eDOw(1QUN9(khpYGzJNTbgjx9qnv;? zY_G40X{=okWj`u1ZGo3buC@XWe_cC4+CtJwsaNaynk;h z-1Gn-131}P6sGlXt*_YBKoh8LoetCY=-giC_Z0RJ1qdX*c6kiz7B)E*to^!-M%oC* zJ4t5!9OOFee!k`wpl;+da^(xlWIGkWQq68zkv3wc&(Zj>H3EFo0VgVB-Ya?dWs z`m{uJF9#hHO*TPj;||PHKyR16%t-_Ho<4p0`h0YL|K*qe;P`of0UbXl`~QA%Dk2XH zRuM1!JmSSO>++EfEwpx(s#(?F?5$&+Yo+{jX;tR-Tw6~Md1y_WYt8xHGrY6)93Ayq zC2Qg{4q|}o{ExjYXB(9Oc`i7nB{E}*<3KzP1~8v=N>WQ=!-OU~CN%Fp`f&jL^NIu? zib!3aVCRI$t#$)_J>y&#O}b zwUVGPKTSNDF>OrywJ1h5nOj5P(=%yLEYqADjU5w!`@`6aauGD3=@3-mhnz0 zCW!QW0!BG(CwtheNawup{)l^d;Og-D=e2;>dnU6f>iyGRkK34ReV!o^xp}mvkq;H3 zl&&GPoe}NNKu#MRI0EXu7ADU~PM0~XCAoD!cPHtcGXNp$9lWB3$0Q;V6|?%kAIZp6 zhpiGBs zgYy=mk36F;-YGSWbu^&!|7~4{7azzQ7R=}Fn=>ko*@T5@7z;UBs(5hw`nC8{zqAF_ zv{UzPah^1jy}t7)HtG!I&u@imEAH43$J_lw%9h;LWX9fQ!OFRnP1}kUR(%LfI@f#N zO?aytxUuUu1UG6J6Xol-$CS~9bJl0D30tMIvsrR`&D9Uj2Jtax1rn~9s0DB>x@2tC z=G1ieKox%u3X;uPM3MGFo^w_5C4nHqMaiteVeCD{B5tN-5NzuCa(|VMcwN2Vb!ZDQ zYV3`?e(3=Sl&u+kXGpaZG}Ua5J4-Y)@#~-Z&MM97cB5R z?W~a38h|VG;}&o6vgBRwkXc~wp>3yBSMU=|c-6GeGP=_!MG$Doc}e9Ol3bU2b=I~u zaZ3seLc+RWki1dFSt{rm5Cd&)uMga80xxuE&xkb2v?9Rma!j(rVbJ-&78KcRnMUnM zNqYy{!rKX_riqQQw$JkOV}yQ1`u+O(&h46_IRj|%ygi)9z$qBe&@jNK+9J!LkQ3pb zyDivBf!_8c_uq36@}kkdLsg*p{T-;oPYlkAP7jiC(fMjL0v%m9A6KrKqv z^V!AGuF3<@sj>I)R{971A=A z0c-o2-F$kxhD@*?#9-{-PWn{QDs5z?@yr$rEA48X!BX!9fhhF_6)Spo5CPZO-$I(d z%wrxy1!`slT8{hysIWqk$d=fr3i$dNY#V9~wb}xhq89m9Bykn!arWATaC{bNP%fqv zJnvqG`{t7)iB?Eut8&jB+lLRy^Or2W%m3Cy6{Ley9hK(!J`>tFXa_2$F)HBWp3RL! z(=M#9U3nR^L@vWan)JCuis3GQzw8r*6|>VnJh(0ZuF8+EzW@GIY^}G8y!D0hIp16% zygi{UGykzP!xD8%KsVb%zTss^u^@5fY42sRo3(9w@TV*b81GNHkkRRH$BA+6L z+bu^fA}@uW68 z-^i?a$`!(68x@jpYA^DvIqHTTlSd6 zqUAHoSvp0trZ3N72w-(~Kvh_}#jgeGTxb05KB!%b-1=gJ^H}t(&AUC$wWDrg?>sP# zP3WS$McqQ&E6Tozs^|_X<2^%-RXMIm8Ky2;Bpji44(4UEzFf5)VdIF*NPv!$Qg^MR zWjaU4vMw}ES=kX*d{kJ}+=>ut9^jn9xtt!A82YXlWDLT9Zgfd>45c9!RQl!afxg&&|G&R30OATn0hfQ> zeDL7%)w8&Kvn(brm7Dx{AS^#5UQTDp=+2nxHxHTrH&IjHa?Q+Hj+h#V)S}G${Ii;T znQITz0ob{l(Wi=GoaENQG`b)pSMXB&+jXwI`)7w^#$H*@5#+^Io_;_C!q>e6=uQ(GNb9Y2N-eE1@#;G3-Bf5J4G3Ycz>T=}377s%i#n*Gt z%^?QAM@QM}qMpbAohLj7nMY(K@Xc1z!duny`NaW}n@UhD1bA@7GmLi1mCr?#eFic^ zX{Xz{T^kEY@`2O*EPiY_^PmEKnD3zx!8c_G5bb^C&zy4aW*$K92ElEq2CjTfyNb_<+#F0}Dh7-r?R;p6-*-vsW6VF^@OndGo>JS{5US2 zoRwcL5YwAC0ymEL3f{|D@tw2{3Tr+f1p3nAP9bXTHQR_eo>UVOGx1Q#vicb}v8RrT zHs!Ge%pkS&H(YcYR`0*1sUf7-pQ~VtgGp~~Geg}5F!jD?(u;$`#usx-UF?FNAOTmj zE}B~QAWA);oyfEMWZ%7kkCrO~fb!=>Y>5UF+D`9tdXHKNY@#}@&(s{V-`7@?`$%uE zqva~x6^6bRUK(Kw!%S77BP`Pv)(u*tx#WBD7-1djgn8n{HPHNqZLES+C{}SNy23pW zgJet908P%s2tfqoO_xc`tD_4xZo=l20D9749aqsm3+>fuuvLJ4MIDF4I#3^@jgv}R zY&?AUAnxD4e_a4vl^?fHPj}DP&2k@=U1muFbk#nj0leOr^vo0CdWW1oHeid-1(hVK z>k+aGUKR&O52Fj6;nwcn{MA-3V>-_q)(p2#e46>>AN4s`M2JV z^FRE9m>)eUg~IK{+SnAx&Em7A&Kbg%$wp`JmM~kDsj2B{M@`4bbgEXQu>O@PS;)du z3VSWHwT*+i8BhvNxr0d8Kd@Z`ihz%*lDF2jrm{hbLTOzi%;m6s>{}7gvMe;&jb0cI z67~!civbQBl1M070Qoc6cp9~MB`S(`v#oI;BvXKvu`Ytvu~TuGetwqrDW(s%yoRXT z+viKmp=f^>7-WqS9cLg$qr2sGW?`J{zndubH&aul%VQ3DwB3U(e#lr3@|x&W z=koRCWZ%9O*M{hEvWxG|uW3Xo$b21sD!0#I-2R3Lb`8QcW@y`nnx)Vj0jJm{Di5D| zjB-9Tl9(>Or_sKIdq9ug)?h7NZ!?2{&ph=HaNZfJzU#(Z?uvljf#rGxaAkfxd>HZS zt2>Lw>I>b8^ERBR#g?|VJY{HFXO5zThw*s0zMexlmY>ZD+OgSK*xKo8ovV@=^C0IC z6hC!ps18j7w&l64rAt*9qs_`078j~&X%!kl2Z%s-dV~llm)9;&(vGe2q=K&wMW8Cw?S8 z{wMz|PJZj(#Lb%}v8>2BcIvlDe87{Q#&iL$Gu3I2O_e=IzcriTOL~;i^AhN&j+6vH zYS%-U_0(j@$`^p0_#y4*dcK|AWq?YtL(;7E^Xgj6t*5UEY10OcF)`E8_NeTM{omEx zdj;e$r)e=q@AksEIg#$XBb5?4B`_!8MHRFKF8p}N_yxK-3h4_WEQf`q04ca3X_V6A zVnaGt_QDpRwH07c2r%(Os8>f zS{e2J&$B!ec|S!DE8Au@KuQK=4ns)AiH7^k{kSaBSP7BfUv7`ikp-sRD(hC6P{xfL z*9E{8`*FFltvNg|9TMRwdepmAiG0REHXa??u`RR^i;pvFAaBq4W%{NvDAP{5BWho` zl{(0DddjJ1?uIa8TxJX;C{K+K-EID5j{m5@mtOememhs2$KN9(nThVkZ(jJ3lR(efbh!_;kGX-~3nc-CzDB5cJ-imG0SR zV`Tbfj!=)TxU>%=T^kP8ywv;$hTVtE=V)nOs6}sd-LrPRx96?w5~TyMJEA5h}c_3J$fSFn7iBC=TvQiU`VX&3rz#>)!O5C)9a`KdR+=yj9>~t~Bn)iQy z$ph4Jglz5=S*mk;L*5E}g&da6a9RE$uwv<-p{V$uluh~dpZ_~?_doloc(4=wJt~5} zod|F`l36mgzbK0yEYM^BJ?!7_`Qx)VD}Vi!pZ$8=diCY_;1~aX(RiE{fnXUYl+dGC zZDkE?)8>Ee6e}mo>@`p(VUK0T}Qm2kj(6J-h-|Nug(JT8Ao_4wX zk(pu(Y(&J4L&Ajk?d&I!v^RMekUB}-J)ROM=S@hN?WR3|EprmIRZ0oFnlBk~9S3~H zMgZl1ySdITXg2c-Yj zvfQeG(B~Q!^pabxq^ElcUd=lwlcl#c0iNZZ;{m3Oi6BB-1Lc@KK8boE$MH)D-T zMY7AOx4y9tko}ILs`nyzg67u`ENax)RrK8qw6Cd;gaVz^t~S$)7G&(?AnzU+q}|ce za5##27BV0($OmEc_~{fS+KORRclp2LDT==`&Mz2m{OsS1mwx8QkXAt6GmyATgOmR2Y1a;~D-?ygK--^PkUwPWhnPb*31-ftrn&Ha5aD#$T}RZ{R!78I>O+y)c)*vBryy^ z;=ypro{pNkR{JExYZt&3{js*mW<`y%*NUQ3-gP!53&`j=KRL;-uLL-1jiTR|5u*n- z1-{Vdv`{5-aFCj{HWJZ?hFA=1igI)DvSxdijrsUSTs(LfFZ{(Hj@SP4ugAkj=W%l` z9{wX#unZJ9BcVoh0W;N;hxQmuX#FE6PcGu6um5N~ed`->_ACD~Zr!_A+IW}6Q3w-1 zxj#CMVZx(<>2m&N{}cv1q#aB}%aYYrs=wa;i$hL&8!yahUP~ts=IB$IJ-DS%*z4Mz z(4d(-PO{t_c1rF%7C_pZl+woo8>v>a8Wa;L%gsI^9`KdR6YhteKk6io?My|R*AqL_P(>~!qo=2Ed$U#+Dj~Q`Y0K`>N z0hG25VzwM?t(1o>D>L)^LeP?^Fq~ClMAOT(N)AGZst{jsAKT20HqUFD5xT{SYPU+K zS=L#hfL|~;0l{b7-V$yt#pQ|?pbv_&|LFBM;*G!c*W$En`aEac*eUfH`!v89rieO- zh9io9BI=hnbF@NqVn-1y3)Gu`{jbKi|L7aR_r6n@0yp>0fKU$jHg9vo#o`qNbVc^IjK~^jsTQJ?b$3k z(jAJK?2OWp|EAtukhDxZsBq>mt#gz@X8Gu{H8MRs$e7|ZgG5GoLV{V)B2?`>$z)kV zQzY+zAj?-N!oSyk>c`{wb8p1ycTeKhjiUvtJ!Pnis`G8xW<6m{-c^)-8`sDIA$IOyWnu5TeoZ2xPgb7Tz!VDjz79krrg5M zs9Yv*KV4j&4uh7Y2{p_`mjyAtZhnd$jYzyuO9cSNbv1?iu?b$M9RzC`ZNbBOhG6F{ zRTA?2x*w?PqM#2&^zJ084Vu;+;NXKrE8I=Bj})UFse`9*G}s!&^bsKGBf6+@yJ1{O z5~g>Ft_W0{u*>VPphi%rbF7AW_OegQn z^N+AoLCbJQmn%!kxfuhIPdDFHBrR)3dx(b^iTJg>@7+eco5{y=`hO)}_=z7XIL*sN z3oxhCn4R_zlD#hFl+5wa4X7cQWE#BbvV6@KzxK6w{Oi9FDC9ugzFpqjd5oeCnP)CB zj)cbGNW0M%cR^3Pe{PpZy72Ed{b|~t{-+6D@n$qTjuPo85zVGS9LqkD zHser7L9NsTZbcJn&8kSppbh^C!f1BIG6oxCIx2V2A$ClQXXbRoIIfr7$vKC=PESvl(4ynxBf;NNx;QWdZY`LD z9T$Owlc{RwX;tzkuY7|FNaXDG;ry8g&044MMj-W%=xhjlLP6b9e?wLoju zQe7k0!V}}9&zZ`c@N`CUqzi%V70*E!;PYbxw5|@D%AO)h8++gz2f&>5UHcBbss#Q&J>j?^(4rcZ#Czv*fca z_izC)=P?6X#)cL8Q;+Fk`dNhoJtN#m-z{oE$JUZxZ-AXU>AcWq9zA*-@4xqcJbCgs zj&~#)3Y|0>*eL4g9R?0+gv0fEP6G5XEkY(3_JviQi+5G1)!}_Ji4Ft{C~7^~kOiU! zc5|yn-)yH3i9}AB3wdZj3}U$bwV541+wWaU7~n5l7XVkL0+=r^tx;wRCP#-9dPPba zM;wxW4oLQO%0joJd8cuORHTpxqp$4U=FK>GOhcPL4tSK{%n z{A%Fo#S-u7DsEbigRk-IZC)0VvIe)5V&d-I+wsNk{X*O;g2VGN_Bg+|OoY1q1)J6g z+7>z5C(aS>PVq92jn89TbawN3rrv;EU1V-R{{AIvAmzU2uGr=Y*OOR1p`s_yPH^Gc zaH61|cWY*`D@HJ)45W*}ER-D(^c4y1eU-y1T&6BGl1P?a{{Ukyf^>IkgR+dQUVZhY zcX! zv;O&Mt+FTVf4wQT*Y5?I?Y`uyEit~wFTWJ=nU_oZe@|7r8ZWj4I z5tZ%l7@J`I=`K&;=u?I&tV{$57eccI^!c}Sq!qEd z(a`StOzS^O5KZX=62xWj-jkW zOx+ep%sDLliV|kl%Fii7%*+ZbqoTEyUmZ%@hdDun+cHLg1ZBxRWNS8L4NiwM514KR z`qA^n0eZeT0Oo%+`7;s^1>K^^ge-|v(Z+frrV0KeWFs7|)BNP@z#G%L;Av~zTol`jpIyZK>TB`z_KQp2!aQNcYI1P^>>s{4LOjUq zM%j=JFvXG*BlmlkQ(t(%CG)XhfnRxTb$!5ycf<3t6#kP1+~lHgPYHYdjo0Ia7hYU8 z|7o4~FD>HNLaQvzFNueAMk#u5 zyNg<0G%om%L7!aH0X3AuH_QIs&QO_EU5-}aqC=SqbuW;>GtsLV>uXP))zIg}h@6>2 zxYaN0L2W+9xorAJpZ{!JmV~~GvVdJo`v=M4hj71f=*bg)3KLQt=ml33skLHj#vT=X zv3oCN^lNTWvA^Nn#92cz}GfFWEBWQ*a zA7kIix?4I-x9;94E|Xc{I8!Zze1szf8ez{itZ1_1%>iTrt?*__(AzpAOkq-u;*18z z3Z+)k$eCdQR%m!&Awq6lDuzZ4w>66zdNhJNsuO|9@nNLOIB*z?YZ2g8835dg0l8z+ z29nN}*2qjABm{_}6gCSrd~Z&n?C5SSW>$3rBR7)b&|4I-3twuRa}^mWU!2wABkiwE zlm|^b+-x~Crg*kMDwBRW(cZaHPX3$ccx{8H-L0|>= z%e8=d@m^f)0*83HoN!3zzt+!n8`pp)5F1cp7rWn`GW$QialB|rR8QcW3VZ`h%>1CM z_LxLfBa0qov*KXG<^iuh22@9+@Rl$zkRYOmvJEA{F$UJ`&eM*}kl4O&=FDp;Ksl!a zAZ%>J&M!OkxYOp*(Y?FTNVTrAdi`r*q1usza}rUBz>Zi?{18o* zIs#yD0)c0#rFC-zh&Wr<6n$;_(Vj#xS@dR}6YWZ1$YtP~d=J%7tgS{hnVz>34JZgXR9+NYUh6ZE>t~y?z5n=Xc^;@B!K6w12Byl`Wrg8n=ixTWTEuYT8X+J!88!mgfyhN zt{qhlaKz`eptvaFsf+TyZp`}*KvXCT^60;_C1y(9b`55QE(KHEX%;#iAdsU^gUllh z^T{ z@U*Cwm(jehrC>2qkc;rJTgw^3wig|P2p$)=!1-K>!XndZa2(rFcwp3~vp{-colKm! zR;X$Kwh6{E^Diy>{p|m8-=Ix%aLq%|?^V_F(+2Zd#eLHfa&%sbiwoN%s_K68EU&G_ z=~<9IQR+7gWt*$&#DeK`qz5No@bZb2a<8=ez#Nr?so#-5YdfQ&4)Jh-7IC2A!J_ZBKv(yoyfq zu^=1E*y+5XqEm=b)2L{{u>Jn*ihrg|2@E=-hXSSsDmo_2aJCl?Lk;zN$O=JMje6k^ z$5SH{CXon|^vV)K9&K(D3^UcX7dm>5N`U7~1n7$V&`4fu3q_A<-5xlk6PhsCU3WK& zASl!4Mw>i4UwVhfPR514JuX7V$*b-OJyTsVp&mLT0Hl1HvT^RRQ|^nLCr_3lYlr5o z7N2M*Z*3L>qe2MdbstF$ys4=xvYhSoU*5|_@#UX=`@MZuKq@rYjaI@08&eY3YxiYW z5S*Tz#?vQHm+!GI{%rRUwaskG?W_`SS9+RM7$q&-ZS$H3HvpYDmlfiA;c`>9*$iQh zD2Q;YiRj>7?p0r6G`)3K1DfZ5B)at?Ff06H&_oxnx``gWsO-v;w5fOzi8SKN9S^uw zmji`AWM&O-C8^ZTM>sHHVkCqzY?ULo(%>e*K=%ZAMVsi4NUo+4rn;Zo(b^$^I#9HX;wW`_8)iON z9f0HKYx^H0(xCmi2c<}hT|BXn%y4@t4h(8(_GQ$r)EZ_&!=amVGl{^Mz@@Oop@+6l z!+23eW_HBE5i;&|TpJ(GJJj*?1+jmKXv$>MT=Xi{zml!N(m#!g?3o#6fVJD(I|5%V%U7be((- z1d`}g_#;7OS92-}G7NqqJQ#cL*R!gqz?uiR|n^fh`$vWp<*EnD!I`4jY*iw77ZslkN%83ugH& zy@(31HSlU1v!JIpZ|k|=cJrQ^IN`aP0X%nMK){ID|4H2O=%P#wUn+5=jltibLCsBY zs3+l?cyx>E_&qYu5I9*XC98?ypTQ_5V|2u(?KaQi<-i+fy z;hSYP$h@csB9uYz#EkH+#wZNSM6V&ZYun@K;e)vG@dpb9u&RMGf;d`oSx6LcQ%R2% z?NcdqKK}S&yz|cc@#)XLxrhPhnLU-Uv)xk?7!&n>W`_B%@8~jy=y~87cPi`3X=R2uRAquu2IO!47&AC>~(<0WHbe{aw3I7)?V)5O6$5OR-i z(chYP;bB}MS_m@;yI?+T`7m2Ooqm|QT`rR9-5bcE(C90-&3>$|fqgcM7}HxJpF;25ouRNgNuZdw}g-0UdNZl=*%;YP#5C)GnyDw^0?o`MJ>&z=Apo z5LRq=gq~|P3=e#j#YC8#!ui}d0LvzYrbVE#@^}Atvrx-EdJyr}dvW8_ZyHgVqm`#dVq!%u$acVj9W^wI7;ttSekd{Cqg&(;ON z;HYRBNZ6kc-ud>sg#|Fjr#}5g+$bFnuI<@Qp)WiDc5_u)XQu6oNPC~g;^xy&(=1S# z@!{F<*)w28C&Ka{RKG%@Ox8@J#DYbaV~@lQ5G*d-4Z{(;h$@C_Cr$O{GfTKI0(hlS z$a>#GJ`8L7=W=R&mbv!9tv4`9#D5QOgb-shOv4{R`PdXs%er1#pXNe^@|wKA?3xTW}B(Z^T+ez%ca$ zNlt9zlRmmD^{3!#IoUcjWG7(dnj7=rx&XLpKQ4RG&wweeHk#VTOQ3bB-7HJA zcyI*J-Ol?zIQ2YqxS!Qdy!kZ-C5FM&jaaBD>XWGY*)}M}>;^he(FP!CFqm~FT*zfd z7bh|Q_P>v#AO32I;w?AUyiYsZItY_e$JfG%N)yvQ9-DP+)R|}*469&o!#b1}{n@|& zy+9G_;m+Ni^+D3Yo?-Li=5L;cB8{zOIM1xb!aGH0@bKZ2c7%qj=t0v*nQ^k5lD`y^`v7dO3!cuTmpfftk-E;x+$3v%K98qGD>ndk0#%F)1_vO(1VL??15ETTQh^E zI`Uu~lI^tXq+#0Kh>}b?pcMWTuIfiVry~z_eXOA(PioeIxNW?xp(4qx_jYmJ0f?(e z0wDZEXyg^hyl-F+*5t1)3`O86To+r#mkPKC8k#{`^=yxVShL!xMHJZ>%{g76eCQ;o zQFFbvyMb%wni-HNUSKAxo>n81(;SmA_H%a~ zLcn56j5}8r${S@25pTa2mw)iB(vY|<6tn|Ldg<$uVVr$;Y&2@%*0SHZ10Fqm7>^%4 zT9Vst>P0F+?$_Uwh1T&O?H&1S0IKSZx`@!7*);A7X~RnnKL2xga|4k zmkt$D{lrS2WCjmuG7x8Pqbt`vxAjNmPra9BMR|4FnV^P$VW@wr8yCEokC9z8vp^Nopj!A=e3o#K3eM*k|6~JUu|?MV+(ryp3?_asZNMJDaLdf4nQp- z;vVXZkhINXX5w|Nn+Y{iSSs~xM!#2odrB7t<+;1Aymc$0%q<`N%CE)!|N7_Rv>eNi zmBn38*%_DG+m1X-L1%+0{&quXy`vimf457a!T_WJtJpm5rd+1IBc52UPpdgqq zv*Se!EIIUArP~`xXBq^h-M-jNj~1~XYJ9Kg)n`f|l1Fp1!#*_fU;DWVX4~8XOnMZA z%J>?RywQAuyA0MSb1OB?Ma+V#F@UN>|AI z(Gs@W>{xx|4JHHw9p%EAnLe^9@Jro%bo+LE^#A)Zj+2j0;>Hf0yKJoc z)8K4q-#l|pa=)(2fg0LV=f`D%ym9Yloc``NEz)?Fq_`31dv6ikeNR)t z?_QS8J{~@e2mkQ@h+dE1$G$VB(89MML(nLt|@CsgRsoU+fOZ_W=c^ZGiyDeid76L zlr%o+)SjFGHdnQoffDED7@_x4KT1U?=|kZ`FUsb=AO^D?NE#vAND2^9mWbs1wBJHy zy1e@CdLelpQjwE<=LpX}7=3r-!IJmjI7x?7RW}42Floq9LUwpyveZzWpZmZDp0fdV zg$IR?PoSTrcipx`-^(D$fqSa83B*MMnN;QO7Lr}reL4H@ahe3^G%p7SBR4`sjVczT zYLrsf&?4ZaD++dTXGxkXp zL^ahDp)psGg_e%$o9VdH@SO7wB*L6eFbn8rZVF`POSb>ByV==X+Tbi3@Yx^yalHLM z|8H?zB6H`mK`#-fyE!O0P#iet90Q8pk}VHZ(9E(%l%eWT>HF`bcOU$tUyAwnz7fae z^uKWWvjGxJ#5f&$(id&%ns5Lp2_r5#l@B((fwOV~7Sf1=Jb!fP9!*K?kIt0EzO`*F zUF`-TQVL}1aGVVQg#3|a476e?(W_FKk563*+xgu zje3?*rQ|N`o_~Z}kS*{ldN9#ClZZ%d@fmTD)1i(KyQQ{!0qj)vlucNHQ-DWUQ+%Wx zkdF%#XP`z-p;#OQtt;^h`M(`!r3g4VIV(3?nVC=9cTz-8Gc*>wMgPJVl+cvM-AuG- z4yHTDF_p#gga7rH;`CqrdK?!K;Kj~t$k}`U+bJAvwq4T?t8cssK3YIoM;?$FHo8_e zCxN87fjB~SRwxqr~a)h?l`$1gG2cZ>EI*3s% zz=$SLh0aJ|pOl2iP4zjfz!JpJdt7T-R(j8Fgk-wM3) za-8kZrk5)yru^S!#=fc-9^n9%d7nGHJD}XSS3LfYpTu|m(Lar|U-?%>jCZTV0k50? zW_3*Pl_sK-Yb`Q{rkqx{(d@=cHuuLQrTPX)B9}WH(KOo z3WUd`XC!YA29H`4xlqeN@9l@z3&05GE&sn10%&16+hRV8{$YcM?Ea$&?RNA2olELzY4?BdkN;`Rzx#)A>&ERO z?wm_E;L^S5Y4I5A+vxl;K@;nOLg}nv5EUIMEzf7m9CjSrffzQv?`HohRweq80kUYV z3B16uNG+1cF^j+qCd2W})?FFsf@VOE%SLCra%!C4|4h7jw2>P;!n+P};mLZCNN%j^ zH3ml!c#Z;QbU{6BhD;Z%cI3fGsgoiYmbD_!s7=IYZR?aHy=hA}tg{8*Om#Fsx4hVA zsM-Wb@$WSZT=17<8%QEhWfS-UxUCuJ{;uCk{y>57`%U*~s!mIaQD7k07VI(mHPu0p zu#A=a*CN2Uk|MwkcMgq@q<~qhL*EwHNl$6XCp|a_)RP;92&X+KwI3=G2uPM!nu32M zKVXhat9*U~h4D@eX-*!iG3z3|4L7N5D>-Na*Of>JBJA^6DxO;S{CKZ15JaYq@XG$M37rO4-ukLf5M! z0C`PY0>l<)*Gq;-a${8S>GI`f>6);kM0$qtsN<7TC|CO7lx&9z6pLZ@N)stExB8Gi zSQAbAsDg0-r_RyA3f;Ha?*A5gmFd|ORopcR@T&bN%J4b&N0CH3Y3AHg(AZgVT!BB* z2P4_HdTJUH|J@-cbb+6>z5K+(PPXg8>sv;>TJT&E;H_n+y~4&H^yHerNE^S=_2#`M z059B$n`amC^q>99IQgxA7k3LS@ZMK{AdWuwxl(GsQ0~GTdk?e}U%MANFMsFa(Ss81 z^In|)zyB^S%0K+zLEO1nv;=pG-EX(~&$Fj|%{dIG&$wSQKXSB;o#R zFu*zLLcFsKcY5K#q&$b|L2RE&?~xVG(~zz1c()CoN!Xed?n@EnZEkDi6Mm~E5Rslf z?ax5+AEG}oyY@w%r?e^e6v6b2}i8Cjdh>MQ2ycPK)aBaNtgB`-c-C)e>pr zCJM#dX+PAjP3M##6Evfzn)dk!r5-i0EsRp;RUQTE=f5o09W`2RHf>Hs+;n+&5D|Lo^;y~x*`+ZrrnjP zNi6_%K#IScH_difONnG;Un!4r(Q>GUaRnx6yE1L!BZhb4v?JTQ=wpk-j%%L#b>Y9b zEEd6{*uQl@`0z9y{h$B5=mUN=rZ?Y+qtAafZhiJMas1*7ak=a7&wDlW{NyAazV%j| zeXEcKzw<#HJ$_IKfAmj+AfcAPD%L_LwUBjIi;bQ$F@pb8twI*zrPndQjGVq1jS}hN$-U5SUW<;3 zJ+5IjK23u7v?;bD=2k7OrQwTuWyz0n<6-WH7<34RgaIZ|B?oz0+VC-5gCF!;cLUxw zv{t-~H3)xqNZm-L;XEU0Dzdt_ZF7X`H1xUk?Tu6z zULbW;YJWx=rg%VwfIMsAV<3AzM0B0?A3z*fx33F;tM!9U<-(waj(i^G;q)lr85wHb zSRIk?S_TJd$b~-69lb;!y*>}Fz86vlB7S#^Qf9GGyjYE zG;p&J@^9XYd3U=1*0&?R`F5O?_){(pg2owGSODdH-zsl@DyUuDzrVL8T|8a-k<-?K zo<|DuREQC#;_gwxZRSC%xmt2zURT;-5S6r#B--jIX^gG~%N#>(s&Ay%b3tPcHC-%W zljXFv&kLToIM>-UWmB3hqh4q7WDFB0xrsryv_GPYs*c&){((W1u-;d49p-^M2T8%k zPUtXB5X`o|-gz_b)I|)se}eF4cjz7j1klS(U_kklKQl;mmY18;{VObnyxv){KULih zhxD*8fkmc1Ap7s&p96+TduUZ355Sd%ML-1U!!*o6&ZEbvKIHZ90XWKi#{xy!NJfKd!~Z`gK>~ z)`CObX$2tEz?s$`XXmj_G%>QHnze$5)!)9MQa2K!*|RLWydQgPCok<9)i~Jodz@>E zWG_POa*6~fMX`=`0!BMgxi!=TYtZWggIPs7H4=j&IGu2t0CW}r3@yZo&o+?TOq>V! z(6uOG0%33Y?PQXrp@#s~`zqNdw_igVYf$~;u1x1BRLb_kB;rK(tD(#d_Il$3?dmiF z0IS+R>v>GsKCpr6=&RN~*~-{`58F}|LFYii)e~SOmN*yQB}T+Wp4-V znWh?Z%$arq-jV*qz>wy(H1U@U=-Lc1M)9C&ry=Cipjw8))#V(GY_{8q(zYISGyzXu zOp|!++#s{g^%N)Rcr|nehfwRzMQ?czjRB!PYK}hd=wo+7?59u`e&h|T?{4hWaNgn0~`DPT5|Cvv15C{TzKR&{tb6m1x}JX-~86%P?rTImH2~b7>KxzsgK$^ z4NW*ScPIDg(*DrpIxt_?E;v*;{}T9QSZEvJ^exUBZOXoF%wAbqPi$M!!~qy8*xLt@ zvxeAUOw1sQtcsRsYYbWq=0ztQ#)Je-7A$Mk3)J>3Qm3UYjL1aY5}CeM-JjqITQ?yI8RoBw0K8F#N zZpL)fY=WuKtK%6o8>pL=*aV}3>8{U>0)=E;#^f}iIz*%(w~mYyU5b2e4v=1sP*LQ| zi1PW`3a967?>{uBA2)<(4^yT9lB4}Qwb0TkQ!PrlBOsezrhPe0tIfEEJnOBEy)Bli z{Nter1ZjyOQ`;5ALKx-Y1sxo z-`xEA-T+{4%Y)*d{B)8}F+oqDMEaWU5TR>5q9w-VBBL*c)WU@d8;aT8E6~Q0I5{H4 z!<$|0KoXz|(1=`QayuarnLI09K*gS-=eDpu$HV+P>=OYq*$~kO zA2ZVinFYLTlt6RnBID}E&vW$mr-tl`o82=eglMPtO!w<4Ep+C*Jabh3zO^Fz!ig!` zT)$Bax}oT<>E<{=C+LH8T!unl`TUTsPoGHn35lEf_+30dB!K6r0Jw<$SivR^S|1Li z@{p^{oCEvPcIs@KdUR*6KCdioc8G2xaZrCdd({l7r3PetWPHRPsT)26;k8PdBU^Gm(UC>A7WsWLdhN;(O)(%WMP% zjmz~6#z44>`g+XKJcIS7Ie=Q1g9&1<);_DdB#XccU=E!Fw)t<`i|JXZ(R7im(m`cj z@9X3NIwxZ&qIKOrB)ycTqv|`S(Z-i{&pSz>6>yhpU;O^{2q3Ol7$9QqTK$J8Y@1-p zmH`bO3D24jpi8*(4VgBRv>pIt)+k;x<7~4Jw3v|8!Gb}p=vq1I5p71P%5Wsb?ADT; zw$|Ac2b9pB)CETOItZt}aUh4(wtMtW^>lKg`F3p_Aut_Z#M~24W+r`N$&3Dg?E4Km ze{6|$?wR*vqpS0ox=3v{4hI2oK)pk2kD3NV719_m<_XUPFiRtx5^LimM#r&cOZaP| zPgvNMLVFPGx?W7r-=@sAPriOO&9tSC07{Y^&1yIB??bJA&K_n$EOr6E31^%?KRxoo z3RYUTr~-l#j+}IvAWT>om8+pl2NeXShsRm`gU$zXX^};)^-#n?$H#LKG?zi4XG9(g z!o<%A#j5+gYPjEk1Jl4RI=qRvIrL}Sn2UW2m^yaDbUgyNl0S~d!vG{A)69OujR zMmfC>Q?9iwl~aXc9wM8$3!Xg4bgb&FbnMBE?C^T-+=#G*JuN2qEHN~ASb3V(qyf6e zGLIrdTA13!!PE VhKG%VIZyza7r=207b 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