From adf914372f2b1e82e4bcd5d6b1573517ac50718b Mon Sep 17 00:00:00 2001 From: Christian Chiarulli Date: Thu, 27 Jun 2024 07:56:34 -0400 Subject: [PATCH] refactor: switch to wails --- .eslintrc.cjs | 42 - .github/workflows/publish-to-auto-release.yml | 72 - .gitignore | 166 +- .vscode/extensions.json | 3 - LICENSE | 21 - README.md | 83 +- Taskfile.yml | 449 ++ build/Info.dev.plist | 32 + build/Info.plist | 27 + build/appicon.png | Bin 0 -> 132625 bytes build/appimage/build.sh | 26 + build/devmode.config.yaml | 28 + build/icon.ico | Bin 0 -> 21677 bytes build/icons.icns | Bin 0 -> 356592 bytes build/info.json | 15 + build/nsis/project.nsi | 108 + build/nsis/wails_tools.nsh | 179 + build/wails.exe.manifest | 15 + db/db.go | 31 + db/models.go | 60 + db/notebooks.sql.go | 97 + db/notes.sql.go | 157 + db/settings.sql.go | 69 + db/tags.sql.go | 131 + db/trashed_notes.sql.go | 98 + frontend/bindings/changeme/greetservice.ts | 11 + frontend/bindings/changeme/index.ts | 7 + components.json => frontend/components.json | 2 +- index.html => frontend/index.html | 6 +- .../package-lock.json | 3328 +--------- frontend/package.json | 47 + .../postcss.config.js | 0 .../prettier.config.cjs | 0 frontend/public/Inter-Medium.ttf | Bin 0 -> 315132 bytes frontend/public/react.svg | 1 + frontend/public/style.css | 160 + frontend/public/wails.png | Bin 0 -> 9057 bytes frontend/src/App.tsx | 34 + .../src/components/sidebar/AllNotesButton.tsx | 35 + .../src/components/sidebar/Sidebar.tsx | 53 +- frontend/src/components/sidebar/TagItem.tsx | 0 .../src/components/sidebar/TrashNotes.tsx | 0 .../src/components/theme/theme-provider.tsx | 0 .../src}/components/ui/accordion.tsx | 2 +- .../src}/components/ui/button.tsx | 0 {src => frontend/src}/components/ui/input.tsx | 0 .../src}/components/ui/resizable.tsx | 0 .../src}/components/ui/scroll-area.tsx | 0 frontend/src/lib/utils.ts | 6 + frontend/src/main.tsx | 13 + frontend/src/styles/globals.css | 76 + {src => frontend/src}/vite-env.d.ts | 0 .../tailwind.config.js | 24 +- tsconfig.json => frontend/tsconfig.json | 38 +- .../tsconfig.node.json | 0 frontend/vite.config.ts | 12 + go.mod | 54 + greetservice.go | 7 + main.go | 65 + notes.db | Bin 0 -> 90112 bytes package.json | 84 - public/tauri.svg | 6 - public/vite.svg | 1 - service/noteservice.go | 0 sql/queries/note_tags.sql | 0 sql/queries/notebooks.sql | 24 + sql/queries/notes.sql | 23 + sql/queries/notes_fts.sql | 0 sql/queries/settings.sql | 20 + sql/queries/tags.sql | 24 + sql/queries/trashed_notes.sql | 19 + sql/schema.sql | 67 + sqlc.yml | 9 + src-tauri/.gitignore | 4 - src-tauri/Cargo.lock | 5721 ----------------- src-tauri/Cargo.toml | 28 - src-tauri/build.rs | 3 - src-tauri/capabilities/main.json | 18 - src-tauri/gen/schemas/acl-manifests.json | 1 - src-tauri/gen/schemas/capabilities.json | 1 - src-tauri/gen/schemas/desktop-schema.json | 2373 ------- src-tauri/gen/schemas/linux-schema.json | 2373 ------- src-tauri/gen/schemas/macOS-schema.json | 2373 ------- src-tauri/gen/schemas/plugin-manifests.json | 1 - src-tauri/icons/128x128.png | Bin 3512 -> 0 bytes src-tauri/icons/128x128@2x.png | Bin 7012 -> 0 bytes src-tauri/icons/32x32.png | Bin 974 -> 0 bytes src-tauri/icons/Square107x107Logo.png | Bin 2863 -> 0 bytes src-tauri/icons/Square142x142Logo.png | Bin 3858 -> 0 bytes src-tauri/icons/Square150x150Logo.png | Bin 3966 -> 0 bytes src-tauri/icons/Square284x284Logo.png | Bin 7737 -> 0 bytes src-tauri/icons/Square30x30Logo.png | Bin 903 -> 0 bytes src-tauri/icons/Square310x310Logo.png | Bin 8591 -> 0 bytes src-tauri/icons/Square44x44Logo.png | Bin 1299 -> 0 bytes src-tauri/icons/Square71x71Logo.png | Bin 2011 -> 0 bytes src-tauri/icons/Square89x89Logo.png | Bin 2468 -> 0 bytes src-tauri/icons/StoreLogo.png | Bin 1523 -> 0 bytes src-tauri/icons/icon.icns | Bin 98451 -> 0 bytes src-tauri/icons/icon.ico | Bin 86642 -> 0 bytes src-tauri/icons/icon.png | Bin 14183 -> 0 bytes src-tauri/src/db/mod.rs | 158 - src-tauri/src/db/notes.rs | 214 - src-tauri/src/db/notes_tags.rs | 39 - src-tauri/src/db/queries.rs | 38 - src-tauri/src/db/settings.rs | 75 - src-tauri/src/db/tags.rs | 115 - src-tauri/src/main.rs | 342 - src-tauri/src/models.rs | 199 - .../src/services/context_menu_service.rs | 95 - src-tauri/src/services/mod.rs | 12 - src-tauri/src/services/note_service.rs | 76 - src-tauri/src/services/note_tag_service.rs | 33 - src-tauri/src/services/settings_service.rs | 42 - src-tauri/src/services/tag_service.rs | 74 - src-tauri/src/utils.rs | 8 - src-tauri/tauri.conf.json | 39 - src/App.tsx | 48 - src/api/index.ts | 110 - src/components/context/AllNotes.tsx | 33 - src/components/context/Login.tsx | 33 - src/components/context/TagItem.tsx | 65 - src/components/context/TrashedNotes.tsx | 28 - src/components/editor/AssociatedTags.tsx | 13 - src/components/editor/Editor.tsx | 52 - src/components/editor/EditorControls.tsx | 46 - src/components/editor/EditorWrapper.tsx | 47 - src/components/editor/NoteTag.tsx | 49 - src/components/editor/Preview.tsx | 23 - src/components/editor/TagInput.tsx | 90 - src/components/editor/editor-themes.ts | 71 - src/components/notes/NoteCard.tsx | 143 - src/components/notes/NoteFeed.tsx | 162 - src/components/notes/NoteFeedHeader.tsx | 87 - src/components/notes/SearchFeed.tsx | 127 - src/components/notes/SearchNotes.tsx | 31 - src/components/settings/EditorSettings.tsx | 514 -- src/components/settings/GeneralSettings.tsx | 70 - src/components/settings/ProfileSettings.tsx | 106 - src/components/settings/RelaySettings.tsx | 99 - src/components/settings/ThemeSettings.tsx | 71 - src/components/tags/DeleteTagDialog.tsx | 73 - src/components/theme/ModeToggle.tsx | 37 - src/components/ui/avatar.tsx | 48 - src/components/ui/badge.tsx | 36 - src/components/ui/card.tsx | 76 - src/components/ui/command.tsx | 153 - src/components/ui/context-menu.tsx | 202 - src/components/ui/dialog.tsx | 120 - src/components/ui/dropdown-menu.tsx | 203 - src/components/ui/form.tsx | 176 - src/components/ui/label.tsx | 24 - src/components/ui/popover.tsx | 31 - src/components/ui/select.tsx | 162 - src/components/ui/separator.tsx | 29 - src/components/ui/sonner.tsx | 29 - src/components/ui/switch.tsx | 27 - src/hooks/useCM6Editor.ts | 180 - src/hooks/useContextMenuEvent.ts | 119 - src/hooks/useGetCachedQueryData.ts | 7 - src/hooks/useThemeChange.tsx | 40 - src/layouts/Layout.tsx | 9 - src/lib/editor/compartments.ts | 11 - src/lib/editor/utils.ts | 30 - src/lib/settings/constants.ts | 29 - src/lib/settings/utils.ts | 14 - src/lib/utils.ts | 17 - src/main.tsx | 19 - src/pages/HomePage.tsx | 41 - src/pages/Settings.tsx | 67 - src/store/index.ts | 99 - src/styles/globals.css | 128 - src/types/contextMenuTypes.ts | 54 - src/types/index.ts | 102 - src/types/settings.ts | 3 - src/validation/schemas.ts | 18 - vite.config.ts | 27 - 176 files changed, 2796 insertions(+), 22384 deletions(-) delete mode 100644 .eslintrc.cjs delete mode 100644 .github/workflows/publish-to-auto-release.yml delete mode 100644 .vscode/extensions.json delete mode 100644 LICENSE create mode 100644 Taskfile.yml create mode 100644 build/Info.dev.plist create mode 100644 build/Info.plist create mode 100644 build/appicon.png create mode 100644 build/appimage/build.sh create mode 100644 build/devmode.config.yaml create mode 100644 build/icon.ico create mode 100644 build/icons.icns create mode 100644 build/info.json create mode 100644 build/nsis/project.nsi create mode 100644 build/nsis/wails_tools.nsh create mode 100644 build/wails.exe.manifest create mode 100644 db/db.go create mode 100644 db/models.go create mode 100644 db/notebooks.sql.go create mode 100644 db/notes.sql.go create mode 100644 db/settings.sql.go create mode 100644 db/tags.sql.go create mode 100644 db/trashed_notes.sql.go create mode 100644 frontend/bindings/changeme/greetservice.ts create mode 100644 frontend/bindings/changeme/index.ts rename components.json => frontend/components.json (99%) rename index.html => frontend/index.html (62%) rename package-lock.json => frontend/package-lock.json (59%) create mode 100644 frontend/package.json rename postcss.config.js => frontend/postcss.config.js (100%) rename prettier.config.cjs => frontend/prettier.config.cjs (100%) create mode 100644 frontend/public/Inter-Medium.ttf create mode 100644 frontend/public/react.svg create mode 100644 frontend/public/style.css create mode 100644 frontend/public/wails.png create mode 100644 frontend/src/App.tsx create mode 100644 frontend/src/components/sidebar/AllNotesButton.tsx rename src/components/context/ContextSidebar.tsx => frontend/src/components/sidebar/Sidebar.tsx (52%) create mode 100644 frontend/src/components/sidebar/TagItem.tsx create mode 100644 frontend/src/components/sidebar/TrashNotes.tsx rename src/components/theme/ThemeProvider.tsx => frontend/src/components/theme/theme-provider.tsx (100%) rename {src => frontend/src}/components/ui/accordion.tsx (96%) rename {src => frontend/src}/components/ui/button.tsx (100%) rename {src => frontend/src}/components/ui/input.tsx (100%) rename {src => frontend/src}/components/ui/resizable.tsx (100%) rename {src => frontend/src}/components/ui/scroll-area.tsx (100%) create mode 100644 frontend/src/lib/utils.ts create mode 100644 frontend/src/main.tsx create mode 100644 frontend/src/styles/globals.css rename {src => frontend/src}/vite-env.d.ts (100%) rename tailwind.config.js => frontend/tailwind.config.js (88%) rename tsconfig.json => frontend/tsconfig.json (58%) rename tsconfig.node.json => frontend/tsconfig.node.json (100%) create mode 100644 frontend/vite.config.ts create mode 100644 go.mod create mode 100644 greetservice.go create mode 100644 main.go create mode 100644 notes.db delete mode 100644 package.json delete mode 100644 public/tauri.svg delete mode 100644 public/vite.svg create mode 100644 service/noteservice.go create mode 100644 sql/queries/note_tags.sql create mode 100644 sql/queries/notebooks.sql create mode 100644 sql/queries/notes.sql create mode 100644 sql/queries/notes_fts.sql create mode 100644 sql/queries/settings.sql create mode 100644 sql/queries/tags.sql create mode 100644 sql/queries/trashed_notes.sql create mode 100644 sql/schema.sql create mode 100644 sqlc.yml delete mode 100644 src-tauri/.gitignore delete mode 100644 src-tauri/Cargo.lock delete mode 100644 src-tauri/Cargo.toml delete mode 100644 src-tauri/build.rs delete mode 100644 src-tauri/capabilities/main.json delete mode 100644 src-tauri/gen/schemas/acl-manifests.json delete mode 100644 src-tauri/gen/schemas/capabilities.json delete mode 100644 src-tauri/gen/schemas/desktop-schema.json delete mode 100644 src-tauri/gen/schemas/linux-schema.json delete mode 100644 src-tauri/gen/schemas/macOS-schema.json delete mode 100644 src-tauri/gen/schemas/plugin-manifests.json delete mode 100644 src-tauri/icons/128x128.png delete mode 100644 src-tauri/icons/128x128@2x.png delete mode 100644 src-tauri/icons/32x32.png delete mode 100644 src-tauri/icons/Square107x107Logo.png delete mode 100644 src-tauri/icons/Square142x142Logo.png delete mode 100644 src-tauri/icons/Square150x150Logo.png delete mode 100644 src-tauri/icons/Square284x284Logo.png delete mode 100644 src-tauri/icons/Square30x30Logo.png delete mode 100644 src-tauri/icons/Square310x310Logo.png delete mode 100644 src-tauri/icons/Square44x44Logo.png delete mode 100644 src-tauri/icons/Square71x71Logo.png delete mode 100644 src-tauri/icons/Square89x89Logo.png delete mode 100644 src-tauri/icons/StoreLogo.png delete mode 100644 src-tauri/icons/icon.icns delete mode 100644 src-tauri/icons/icon.ico delete mode 100644 src-tauri/icons/icon.png delete mode 100644 src-tauri/src/db/mod.rs delete mode 100644 src-tauri/src/db/notes.rs delete mode 100644 src-tauri/src/db/notes_tags.rs delete mode 100644 src-tauri/src/db/queries.rs delete mode 100644 src-tauri/src/db/settings.rs delete mode 100644 src-tauri/src/db/tags.rs delete mode 100644 src-tauri/src/main.rs delete mode 100644 src-tauri/src/models.rs delete mode 100644 src-tauri/src/services/context_menu_service.rs delete mode 100644 src-tauri/src/services/mod.rs delete mode 100644 src-tauri/src/services/note_service.rs delete mode 100644 src-tauri/src/services/note_tag_service.rs delete mode 100644 src-tauri/src/services/settings_service.rs delete mode 100644 src-tauri/src/services/tag_service.rs delete mode 100644 src-tauri/src/utils.rs delete mode 100644 src-tauri/tauri.conf.json delete mode 100644 src/App.tsx delete mode 100644 src/api/index.ts delete mode 100644 src/components/context/AllNotes.tsx delete mode 100644 src/components/context/Login.tsx delete mode 100644 src/components/context/TagItem.tsx delete mode 100644 src/components/context/TrashedNotes.tsx delete mode 100644 src/components/editor/AssociatedTags.tsx delete mode 100644 src/components/editor/Editor.tsx delete mode 100644 src/components/editor/EditorControls.tsx delete mode 100644 src/components/editor/EditorWrapper.tsx delete mode 100644 src/components/editor/NoteTag.tsx delete mode 100644 src/components/editor/Preview.tsx delete mode 100644 src/components/editor/TagInput.tsx delete mode 100644 src/components/editor/editor-themes.ts delete mode 100644 src/components/notes/NoteCard.tsx delete mode 100644 src/components/notes/NoteFeed.tsx delete mode 100644 src/components/notes/NoteFeedHeader.tsx delete mode 100644 src/components/notes/SearchFeed.tsx delete mode 100644 src/components/notes/SearchNotes.tsx delete mode 100644 src/components/settings/EditorSettings.tsx delete mode 100644 src/components/settings/GeneralSettings.tsx delete mode 100644 src/components/settings/ProfileSettings.tsx delete mode 100644 src/components/settings/RelaySettings.tsx delete mode 100644 src/components/settings/ThemeSettings.tsx delete mode 100644 src/components/tags/DeleteTagDialog.tsx delete mode 100644 src/components/theme/ModeToggle.tsx delete mode 100644 src/components/ui/avatar.tsx delete mode 100644 src/components/ui/badge.tsx delete mode 100644 src/components/ui/card.tsx delete mode 100644 src/components/ui/command.tsx delete mode 100644 src/components/ui/context-menu.tsx delete mode 100644 src/components/ui/dialog.tsx delete mode 100644 src/components/ui/dropdown-menu.tsx delete mode 100644 src/components/ui/form.tsx delete mode 100644 src/components/ui/label.tsx delete mode 100644 src/components/ui/popover.tsx delete mode 100644 src/components/ui/select.tsx delete mode 100644 src/components/ui/separator.tsx delete mode 100644 src/components/ui/sonner.tsx delete mode 100644 src/components/ui/switch.tsx delete mode 100644 src/hooks/useCM6Editor.ts delete mode 100644 src/hooks/useContextMenuEvent.ts delete mode 100644 src/hooks/useGetCachedQueryData.ts delete mode 100644 src/hooks/useThemeChange.tsx delete mode 100644 src/layouts/Layout.tsx delete mode 100644 src/lib/editor/compartments.ts delete mode 100644 src/lib/editor/utils.ts delete mode 100644 src/lib/settings/constants.ts delete mode 100644 src/lib/settings/utils.ts delete mode 100644 src/lib/utils.ts delete mode 100644 src/main.tsx delete mode 100644 src/pages/HomePage.tsx delete mode 100644 src/pages/Settings.tsx delete mode 100644 src/store/index.ts delete mode 100644 src/styles/globals.css delete mode 100644 src/types/contextMenuTypes.ts delete mode 100644 src/types/index.ts delete mode 100644 src/types/settings.ts delete mode 100644 src/validation/schemas.ts delete mode 100644 vite.config.ts diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index bd7983da..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,42 +0,0 @@ -/** @type {import("eslint").Linter.Config} */ -const config = { - parser: "@typescript-eslint/parser", - parserOptions: { - project: true, - }, - plugins: ["@typescript-eslint", "react-hooks"], - extends: [ - "plugin:@typescript-eslint/recommended-type-checked", - "plugin:@typescript-eslint/stylistic-type-checked", - "plugin:react-hooks/recommended", - ], - rules: { - // These opinionated rules are enabled in stylistic-type-checked above. - // Feel free to reconfigure them to your own preference. - "@typescript-eslint/array-type": "off", - "@typescript-eslint/consistent-type-definitions": "off", - "@typescript-eslint/prefer-nullish-coalescing": "warn", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-empty-interface": "off", - "@typescript-eslint/non-nullable-type-assertion-style": "off", - // "@typescript-eslint/ban-ts-comment": "off", - - "@typescript-eslint/consistent-type-imports": [ - "warn", - { - prefer: "type-imports", - fixStyle: "inline-type-imports", - }, - ], - "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }], - "@typescript-eslint/require-await": "off", - "@typescript-eslint/no-misused-promises": [ - "error", - { - checksVoidReturn: { attributes: false }, - }, - ], - }, -}; - -module.exports = config; diff --git a/.github/workflows/publish-to-auto-release.yml b/.github/workflows/publish-to-auto-release.yml deleted file mode 100644 index 3d2e5e94..00000000 --- a/.github/workflows/publish-to-auto-release.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: "publish" - -on: - workflow_dispatch: - push: - branches: - - master - paths-ignore: - - "README.md" - - ".github/**" - -# On each push to the `release` branch it will create or update a GitHub release, build your app, and upload the artifacts to the release. - -jobs: - publish-tauri: - permissions: - contents: write - strategy: - fail-fast: false - matrix: - include: - - platform: "macos-latest" # for Arm based macs (M1 and above). - args: "--target aarch64-apple-darwin" - - platform: "macos-latest" # for Intel based macs. - args: "--target x86_64-apple-darwin" - - platform: "ubuntu-22.04" # for Tauri v1 you could replace this with ubuntu-20.04. - args: "" - # - platform: "windows-latest" - # args: "" - - runs-on: ${{ matrix.platform }} - steps: - - uses: actions/checkout@v4 - - - name: setup node - uses: actions/setup-node@v4 - with: - node-version: lts/* - - - name: install Rust stable - uses: dtolnay/rust-toolchain@stable - with: - # Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds. - targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} - - - name: install dependencies (ubuntu only) - if: matrix.platform == 'ubuntu-22.04' # This must match the platform value defined above. - run: | - sudo apt-get update - sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf - # webkitgtk 4.0 is for Tauri v1 - webkitgtk 4.1 is for Tauri v2. - # You can remove the one that doesn't apply to your app to speed up the workflow a bit. - - - name: install frontend dependencies - run: npm install # change this to npm, pnpm or bun depending on which one you use. - - - uses: tauri-apps/tauri-action@v0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} - APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} - APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} - APPLE_ID: ${{ secrets.APPLE_ID }} - APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} - APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} - with: - tagName: app-v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version. - releaseName: "App v__VERSION__" - releaseBody: "See the assets to download this version and install." - releaseDraft: true - prerelease: false - args: ${{ matrix.args }} diff --git a/.gitignore b/.gitignore index a547bf36..da5be843 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,162 @@ +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib +*.test + +# Go workspace file +go.work +go.work.sum + +# Go module files +go.sum + +# IDE and editor specific files +.vscode/ +.idea/ +*.swp +*~ + +# Log files +*.log + +# System specific files +.DS_Store +Thumbs.db + +bin +build/bin + # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* -pnpm-debug.log* lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo -node_modules +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt dist -dist-ssr -*.local -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* +.task/checksum diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 24d7cc6d..00000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"] -} diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 9ed52b6c..00000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Christian Chiarulli - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index 6dd1dc61..afb871b4 100644 --- a/README.md +++ b/README.md @@ -1,56 +1,59 @@ -

-

Captain's Log 📝

- - Latest release - - - Last commit - - - Stars - - - Issues - - - Repo Size - +# Welcome to Your New Wails3 Project! -
+Congratulations on generating your Wails3 application! This README will guide you through the next steps to get your project up and running. -Captain's Log is a note-taking app for nostr. +## Getting Started -![demo](https://private-user-images.githubusercontent.com/29136904/342766691-5ccfc513-665d-4231-9962-52443a00639c.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkzMjUyMzUsIm5iZiI6MTcxOTMyNDkzNSwicGF0aCI6Ii8yOTEzNjkwNC8zNDI3NjY2OTEtNWNjZmM1MTMtNjY1ZC00MjMxLTk5NjItNTI0NDNhMDA2MzljLmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI1VDE0MTUzNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFmOGEwMGQwZDEyYzlhY2RhN2YxMmYyMzc4ZWE5YmJkZGFjMDE3ZDIxMzYzYTY1ZGViODg3NzMyNTBhNDJjOWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.5Pm88ki38an7dQEtapIrtuP33YgB0vsz4N32mCGCVIc) +1. Navigate to your project directory in the terminal. -## For Developers +2. To run your application in development mode, use the following command: -To get started, clone the repository and run the following commands: + ``` + wails3 dev + ``` -To install the dependencies: + This will start your application and enable hot-reloading for both frontend and backend changes. -```bash -npm install -``` +3. To build your application for production, use: -To run the application: + ``` + wails3 build + ``` -```bash -npm run tauri dev -``` + This will create a production-ready executable in the `build` directory. -## Note on Mac OS +## Exploring Wails3 Features -If you are using Mac OS you might notice that the app says it's damaged, you may need to remove the extended attributes from the application bundle. To do this, run the following command: +Now that you have your project set up, it's time to explore the features that Wails3 offers: -```bash -xattr -cr /Applications/captains-log.app -``` +1. **Check out the examples**: The best way to learn is by example. Visit the `examples` directory in the `v3/examples` directory to see various sample applications. -## Some notes on Mac OS code signing +2. **Run an example**: To run any of the examples, navigate to the example's directory and use: -```bash -security find-identity -v -p codesigning -``` + ``` + go run . + ``` -https://developer.apple.com + Note: Some examples may be under development during the alpha phase. +3. **Explore the documentation**: Visit the [Wails3 documentation](https://v3alpha.wails.io/) for in-depth guides and API references. + +4. **Join the community**: Have questions or want to share your progress? Join the [Wails Discord](https://discord.gg/JDdSxwjhGf) or visit the [Wails discussions on GitHub](https://github.com/wailsapp/wails/discussions). + +## Project Structure + +Take a moment to familiarize yourself with your project structure: + +- `frontend/`: Contains your frontend code (HTML, CSS, JavaScript/TypeScript) +- `main.go`: The entry point of your Go backend +- `app.go`: Define your application structure and methods here +- `wails.json`: Configuration file for your Wails project + +## Next Steps + +1. Modify the frontend in the `frontend/` directory to create your desired UI. +2. Add backend functionality in `main.go`. +3. Use `wails3 dev` to see your changes in real-time. +4. When ready, build your application with `wails3 build`. + +Happy coding with Wails3! If you encounter any issues or have questions, don't hesitate to consult the documentation or reach out to the Wails community. diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 00000000..b67db2c8 --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,449 @@ +version: '3' + +vars: + APP_NAME: "captains-log" + BIN_DIR: "bin" + VITE_PORT: '{{.WAILS_VITE_PORT | default 9245}}' + +tasks: + + ## -------------------------- Build -------------------------- ## + + build: + summary: Builds the application + cmds: + # Build for current OS + - task: build:{{OS}} + + # Uncomment to build for specific OSes + # - task: build:linux + # - task: build:windows + # - task: build:darwin + + + ## ------> Windows <------- + + build:windows: + summary: Builds the application for Windows + deps: + - task: go:mod:tidy + - task: build:frontend + vars: + BUILD_FLAGS: '{{.BUILD_FLAGS}}' + - task: generate:icons + - task: generate:syso + vars: + ARCH: '{{.ARCH}}' + cmds: + - go build {{.BUILD_FLAGS}} -o {{.BIN_DIR}}/captains-log.exe + vars: + BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -trimpath -ldflags="-w -s -H windowsgui"{{else}}-gcflags=all="-l"{{end}}' + env: + GOOS: windows + CGO_ENABLED: 0 + GOARCH: '{{.ARCH | default ARCH}}' + PRODUCTION: '{{.PRODUCTION | default "false"}}' + + build:windows:prod:arm64: + summary: Creates a production build of the application + cmds: + - task: build:windows + vars: + ARCH: arm64 + PRODUCTION: "true" + + build:windows:prod:amd64: + summary: Creates a production build of the application + cmds: + - task: build:windows + vars: + ARCH: amd64 + PRODUCTION: "true" + + build:windows:debug:arm64: + summary: Creates a debug build of the application + cmds: + - task: build:windows + vars: + ARCH: arm64 + + build:windows:debug:amd64: + summary: Creates a debug build of the application + cmds: + - task: build:windows + vars: + ARCH: amd64 + + ## ------> Darwin <------- + + build:darwin: + summary: Creates a production build of the application + deps: + - task: go:mod:tidy + - task: build:frontend + vars: + BUILD_FLAGS: '{{.BUILD_FLAGS}}' + - task: generate:icons + cmds: + - go build {{.BUILD_FLAGS}} -o {{.BIN_DIR}}/{{.APP_NAME}} + vars: + BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -trimpath -ldflags="-w -s"{{else}}-gcflags=all="-l"{{end}}' + env: + GOOS: darwin + CGO_ENABLED: 1 + GOARCH: '{{.ARCH | default ARCH}}' + CGO_CFLAGS: "-mmacosx-version-min=10.15" + CGO_LDFLAGS: "-mmacosx-version-min=10.15" + MACOSX_DEPLOYMENT_TARGET: "10.15" + PRODUCTION: '{{.PRODUCTION | default "false"}}' + + build:darwin:prod:arm64: + summary: Creates a production build of the application + cmds: + - task: build:darwin + vars: + ARCH: arm64 + PRODUCTION: "true" + + build:darwin:prod:amd64: + summary: Creates a production build of the application + cmds: + - task: build:darwin + vars: + ARCH: amd64 + PRODUCTION: "true" + + build:darwin:debug:arm64: + summary: Creates a debug build of the application + cmds: + - task: build:darwin + vars: + ARCH: arm64 + + build:darwin:debug:amd64: + summary: Creates a debug build of the application + cmds: + - task: build:darwin + vars: + ARCH: amd64 + + + ## ------> Linux <------- + + build:linux: + summary: Builds the application for Linux + deps: + - task: go:mod:tidy + - task: build:frontend + vars: + BUILD_FLAGS: '{{.BUILD_FLAGS}}' + - task: generate:icons + vars: + ARCH: '{{.ARCH}}' + cmds: + - go build {{.BUILD_FLAGS}} -o {{.BIN_DIR}}/captains-log + vars: + BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -trimpath -ldflags="-w -s"{{else}}-gcflags=all="-l"{{end}}' + env: + GOOS: linux + CGO_ENABLED: 1 + GOARCH: '{{.ARCH | default ARCH}}' + PRODUCTION: '{{.PRODUCTION | default "false"}}' + + build:linux:prod:arm64: + summary: Creates a production build of the application + cmds: + - task: build:linux + vars: + ARCH: arm64 + PRODUCTION: "true" + + build:linux:prod:amd64: + summary: Creates a production build of the application + cmds: + - task: build:linux + vars: + ARCH: amd64 + PRODUCTION: "true" + + build:linux:debug:arm64: + summary: Creates a debug build of the application + cmds: + - task: build:linux + vars: + ARCH: arm64 + + build:linux:debug:amd64: + summary: Creates a debug build of the application + cmds: + - task: build:linux + vars: + ARCH: amd64 + + ## -------------------------- Package -------------------------- ## + + package: + summary: Packages a production build of the application into a bundle + cmds: + + # Package for current OS + - task: package:{{OS}} + + # Package for specific os/arch + # - task: package:darwin:arm64 + # - task: package:darwin:amd64 + # - task: package:windows:arm64 + # - task: package:windows:amd64 + + ## ------> Windows <------ + + package:windows: + summary: Packages a production build of the application into a `.exe` bundle + cmds: + - task: create:nsis:installer + vars: + ARCH: '{{.ARCH}}' + vars: + ARCH: '{{.ARCH | default ARCH}}' + + package:windows:arm64: + summary: Packages a production build of the application into a `.exe` bundle + cmds: + - task: package:windows + vars: + ARCH: arm64 + + package:windows:amd64: + summary: Packages a production build of the application into a `.exe` bundle + cmds: + - task: package:windows + vars: + ARCH: amd64 + + generate:syso: + summary: Generates Windows `.syso` file + dir: build + cmds: + - wails3 generate syso -arch {{.ARCH}} -icon icon.ico -manifest wails.exe.manifest -info info.json -out ../wails.syso + vars: + ARCH: '{{.ARCH | default ARCH}}' + + create:nsis:installer: + summary: Creates an NSIS installer + label: "NSIS Installer ({{.ARCH}})" + dir: build/nsis + sources: + - "{{.ROOT_DIR}}\\bin\\{{.APP_NAME}}.exe" + generates: + - "{{.ROOT_DIR}}\\bin\\{{.APP_NAME}}-{{.ARCH}}-installer.exe" + deps: + - task: build:windows + vars: + PRODUCTION: "true" + ARCH: '{{.ARCH}}' + cmds: + - makensis -DARG_WAILS_'{{.ARG_FLAG}}'_BINARY="{{.ROOT_DIR}}\{{.BIN_DIR}}\{{.APP_NAME}}.exe" project.nsi + vars: + ARCH: '{{.ARCH | default ARCH}}' + ARG_FLAG: '{{if eq .ARCH "amd64"}}AMD64{{else}}ARM64{{end}}' + + ## ------> Darwin <------ + + package:darwin: + summary: Packages a production build of the application into a `.app` bundle + platforms: [ darwin ] + deps: + - task: build:darwin + vars: + PRODUCTION: "true" + cmds: + - task: create:app:bundle + + package:darwin:arm64: + summary: Packages a production build of the application into a `.app` bundle + platforms: [ darwin/arm64 ] + deps: + - task: package:darwin + vars: + ARCH: arm64 + + package:darwin:amd64: + summary: Packages a production build of the application into a `.app` bundle + platforms: [ darwin/amd64 ] + deps: + - task: package:darwin + vars: + ARCH: amd64 + + create:app:bundle: + summary: Creates an `.app` bundle + cmds: + - mkdir -p {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/{MacOS,Resources} + - cp build/icons.icns {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/Resources + - cp {{.BIN_DIR}}/{{.APP_NAME}} {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/MacOS + - cp build/Info.plist {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents + + ## ------> Linux <------ + + package:linux: + summary: Packages a production build of the application for Linux + platforms: [ linux ] + deps: + - task: build:linux + vars: + PRODUCTION: "true" + cmds: + - task: create:appimage + + create:appimage: + summary: Creates an AppImage + dir: build/appimage + platforms: [ linux ] + deps: + - task: build:linux + vars: + PRODUCTION: "true" + - task: generate:linux:dotdesktop + cmds: + # Copy binary + icon to appimage dir + - cp {{.APP_BINARY}} {{.APP_NAME}} + - cp ../appicon.png appicon.png + # Generate AppImage + - wails3 generate appimage -binary {{.APP_NAME}} -icon {{.ICON}} -desktopfile {{.DESKTOP_FILE}} -outputdir {{.OUTPUT_DIR}} -builddir {{.ROOT_DIR}}/build/appimage + vars: + APP_NAME: '{{.APP_NAME}}' + APP_BINARY: '../../bin/{{.APP_NAME}}' + ICON: '../appicon.png' + DESKTOP_FILE: '{{.APP_NAME}}.desktop' + OUTPUT_DIR: '../../bin' + + generate:linux:dotdesktop: + summary: Generates a `.desktop` file + dir: build + sources: + - "appicon.png" + generates: + - '{{.ROOT_DIR}}/build/appimage/{{.APP_NAME}}.desktop' + cmds: + - mkdir -p {{.ROOT_DIR}}/build/appimage + # Run `wails3 generate .desktop -help` for all the options + - wails3 generate .desktop -name "{{.APP_NAME}}" -exec "{{.EXEC}}" -icon "{{.ICON}}" -outputfile {{.ROOT_DIR}}/build/appimage/{{.APP_NAME}}.desktop -categories "{{.CATEGORIES}}" + # -comment "A comment" + # -terminal "true" + # -version "1.0" + # -genericname "Generic Name" + # -keywords "keyword1;keyword2;" + # -startupnotify "true" + # -mimetype "application/x-extension1;application/x-extension2;" + + vars: + APP_NAME: '{{.APP_NAME}}' + EXEC: '{{.APP_NAME}}' + ICON: 'appicon' + CATEGORIES: 'Development;' + OUTPUTFILE: '{{.ROOT_DIR}}/build/appimage/{{.APP_NAME}}.desktop' + + ## -------------------------- Misc -------------------------- ## + + + generate:icons: + summary: Generates Windows `.ico` and Mac `.icns` files from an image + dir: build + sources: + - "appicon.png" + generates: + - "icons.icns" + - "icons.ico" + cmds: + # Generates both .ico and .icns files + - wails3 generate icons -input appicon.png + + install:frontend:deps: + summary: Install frontend dependencies + dir: frontend + sources: + - package.json + - package-lock.json + generates: + - node_modules/* + preconditions: + - sh: npm version + msg: "Looks like npm isn't installed. Npm is part of the Node installer: https://nodejs.org/en/download/" + cmds: + # - npm install --silent --no-progress + - npm install + + build:frontend: + summary: Build the frontend project + dir: frontend + sources: + - "**/*" + generates: + - dist/* + deps: + - install:frontend:deps + - task: generate:bindings + vars: + BUILD_FLAGS: '{{.BUILD_FLAGS}}' + cmds: + - npm run build -q + + generate:bindings: + summary: Generates bindings for the frontend + sources: + - "**/*.go" + - go.mod + - go.sum + generates: + - "frontend/bindings/**/*" + cmds: + # For a complete list of options, run `wails3 generate bindings -help` + - wails3 generate bindings -f '{{.BUILD_FLAGS}}' -ts + + go:mod:tidy: + summary: Runs `go mod tidy` + internal: true + generates: + - go.sum + sources: + - go.mod + cmds: + - go mod tidy + +# ----------------------- dev ----------------------- # + + + run: + summary: Runs the application + cmds: + - task: run:{{OS}} + + run:windows: + cmds: + - '{{.BIN_DIR}}\\{{.APP_NAME}}.exe' + + run:linux: + cmds: + - '{{.BIN_DIR}}/{{.APP_NAME}}' + + run:darwin: + cmds: + - '{{.BIN_DIR}}/{{.APP_NAME}}' + + dev:frontend: + summary: Runs the frontend in development mode + dir: frontend + deps: + - task: install:frontend:deps + cmds: + - npm run dev -- --port {{.VITE_PORT}} --strictPort + + dev: + summary: Runs the application in development mode + cmds: + - wails3 dev -config ./build/devmode.config.yaml -port {{.VITE_PORT}} + + dev:reload: + summary: Reloads the application + cmds: + - task: run diff --git a/build/Info.dev.plist b/build/Info.dev.plist new file mode 100644 index 00000000..947590e9 --- /dev/null +++ b/build/Info.dev.plist @@ -0,0 +1,32 @@ + + + + CFBundlePackageType + APPL + CFBundleName + My Product + CFBundleExecutable + captains-log + CFBundleIdentifier + com.wails.captains-log + CFBundleVersion + 0.1.0 + CFBundleGetInfoString + This is a comment + CFBundleShortVersionString + 0.1.0 + CFBundleIconFile + icons + LSMinimumSystemVersion + 10.13.0 + NSHighResolutionCapable + true + NSHumanReadableCopyright + © now, My Company + NSAppTransportSecurity + + NSAllowsLocalNetworking + + + + \ No newline at end of file diff --git a/build/Info.plist b/build/Info.plist new file mode 100644 index 00000000..a2505602 --- /dev/null +++ b/build/Info.plist @@ -0,0 +1,27 @@ + + + + CFBundlePackageType + APPL + CFBundleName + My Product + CFBundleExecutable + captains-log + CFBundleIdentifier + com.wails.captains-log + CFBundleVersion + 0.1.0 + CFBundleGetInfoString + This is a comment + CFBundleShortVersionString + 0.1.0 + CFBundleIconFile + icons + LSMinimumSystemVersion + 10.13.0 + NSHighResolutionCapable + true + NSHumanReadableCopyright + © now, My Company + + \ No newline at end of file diff --git a/build/appicon.png b/build/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..63617fe4f746b8a878bd5f44725f4f317b9d9850 GIT binary patch literal 132625 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 z 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 DB$9&s literal 0 HcmV?d00001 diff --git a/build/appimage/build.sh b/build/appimage/build.sh new file mode 100644 index 00000000..fcba535e --- /dev/null +++ b/build/appimage/build.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# Copyright (c) 2018-Present Lea Anthony +# SPDX-License-Identifier: MIT + +# Fail script on any error +set -euxo pipefail + +# Define variables +APP_DIR="${APP_NAME}.AppDir" + +# Create AppDir structure +mkdir -p "${APP_DIR}/usr/bin" +cp -r "${APP_BINARY}" "${APP_DIR}/usr/bin/" +cp "${ICON_PATH}" "${APP_DIR}/" +cp "${DESKTOP_FILE}" "${APP_DIR}/" + +# Download linuxdeploy and make it executable +wget -q -4 -N https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage +chmod +x linuxdeploy-x86_64.AppImage + +# Run linuxdeploy to bundle the application +./linuxdeploy-x86_64.AppImage --appdir "${APP_DIR}" --output appimage + +# Rename the generated AppImage +mv "${APP_NAME}*.AppImage" "${APP_NAME}.AppImage" + diff --git a/build/devmode.config.yaml b/build/devmode.config.yaml new file mode 100644 index 00000000..1a441f24 --- /dev/null +++ b/build/devmode.config.yaml @@ -0,0 +1,28 @@ +config: + root_path: . + log_level: warn + debounce: 1000 + ignore: + dir: + - .git + - node_modules + - frontend + - bin + file: + - .DS_Store + - .gitignore + - .gitkeep + watched_extension: + - "*.go" + git_ignore: true + executes: + - cmd: wails3 task install:frontend:deps + type: once + - cmd: wails3 task dev:frontend + type: background + - cmd: go mod tidy + type: blocking + - cmd: wails3 task build + type: blocking + - cmd: wails3 task run + type: primary diff --git a/build/icon.ico b/build/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..bfa0690b7f8aea8d793026b51f9fc4eed2e00af7 GIT binary patch literal 21677 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 ou5=8}@A^#05^yFjv{|%CV0m?W0y8r+H literal 0 HcmV?d00001 diff --git a/build/icons.icns b/build/icons.icns new file mode 100644 index 0000000000000000000000000000000000000000..1b5bd4c86c4533471d6044c5edc0c8c86b87e612 GIT binary patch literal 356592 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

^Lg7K@^M66wF^U#m6$MQA`NxZ%~uf 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 KmPKi1yf9{GFYLn7< wails build --target windows/amd64 --nsis +## Then you can call makensis on this file with specifying the path to your binary: +## For a AMD64 only installer: +## > makensis -DARG_WAILS_AMD64_BINARY=..\..\bin\app.exe +## For a ARM64 only installer: +## > makensis -DARG_WAILS_ARM64_BINARY=..\..\bin\app.exe +## For a installer with both architectures: +## > makensis -DARG_WAILS_AMD64_BINARY=..\..\bin\app-amd64.exe -DARG_WAILS_ARM64_BINARY=..\..\bin\app-arm64.exe +#### +## The following information is taken from the wails_tools.nsh file, but they can be overwritten here. +#### +## !define INFO_PROJECTNAME "my-project" # Default "captains-log" +## !define INFO_COMPANYNAME "My Company" # Default "My Company" +## !define INFO_PRODUCTNAME "My Product Name" # Default "My Product" +## !define INFO_PRODUCTVERSION "1.0.0" # Default "0.1.0" +## !define INFO_COPYRIGHT "(c) Now, My Company" # Default "© now, My Company" +### +## !define PRODUCT_EXECUTABLE "Application.exe" # Default "${INFO_PROJECTNAME}.exe" +## !define UNINST_KEY_NAME "UninstKeyInRegistry" # Default "${INFO_COMPANYNAME}${INFO_PRODUCTNAME}" +#### +## !define REQUEST_EXECUTION_LEVEL "admin" # Default "admin" see also https://nsis.sourceforge.io/Docs/Chapter4.html +#### +## Include the wails tools +#### +!include "wails_tools.nsh" + +# The version information for this two must consist of 4 parts +VIProductVersion "${INFO_PRODUCTVERSION}.0" +VIFileVersion "${INFO_PRODUCTVERSION}.0" + +VIAddVersionKey "CompanyName" "${INFO_COMPANYNAME}" +VIAddVersionKey "FileDescription" "${INFO_PRODUCTNAME} Installer" +VIAddVersionKey "ProductVersion" "${INFO_PRODUCTVERSION}" +VIAddVersionKey "FileVersion" "${INFO_PRODUCTVERSION}" +VIAddVersionKey "LegalCopyright" "${INFO_COPYRIGHT}" +VIAddVersionKey "ProductName" "${INFO_PRODUCTNAME}" + +# Enable HiDPI support. https://nsis.sourceforge.io/Reference/ManifestDPIAware +ManifestDPIAware true + +!include "MUI.nsh" + +!define MUI_ICON "..\icon.ico" +!define MUI_UNICON "..\icon.ico" +# !define MUI_WELCOMEFINISHPAGE_BITMAP "resources\leftimage.bmp" #Include this to add a bitmap on the left side of the Welcome Page. Must be a size of 164x314 +!define MUI_FINISHPAGE_NOAUTOCLOSE # Wait on the INSTFILES page so the user can take a look into the details of the installation steps +!define MUI_ABORTWARNING # This will warn the user if they exit from the installer. + +!insertmacro MUI_PAGE_WELCOME # Welcome to the installer page. +# !insertmacro MUI_PAGE_LICENSE "resources\eula.txt" # Adds a EULA page to the installer +!insertmacro MUI_PAGE_DIRECTORY # In which folder install page. +!insertmacro MUI_PAGE_INSTFILES # Installing page. +!insertmacro MUI_PAGE_FINISH # Finished installation page. + +!insertmacro MUI_UNPAGE_INSTFILES # Uninstalling page + +!insertmacro MUI_LANGUAGE "English" # Set the Language of the installer + +## The following two statements can be used to sign the installer and the uninstaller. The path to the binaries are provided in %1 +#!uninstfinalize 'signtool --file "%1"' +#!finalize 'signtool --file "%1"' + +Name "${INFO_PRODUCTNAME}" +OutFile "..\..\bin\${INFO_PROJECTNAME}-${ARCH}-installer.exe" # Name of the installer's file. +InstallDir "$PROGRAMFILES64\${INFO_COMPANYNAME}\${INFO_PRODUCTNAME}" # Default installing folder ($PROGRAMFILES is Program Files folder). +ShowInstDetails show # This will always show the installation details. + +Function .onInit + !insertmacro wails.checkArchitecture +FunctionEnd + +Section + !insertmacro wails.setShellContext + + !insertmacro wails.webview2runtime + + SetOutPath $INSTDIR + + !insertmacro wails.files + + CreateShortcut "$SMPROGRAMS\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${PRODUCT_EXECUTABLE}" + CreateShortCut "$DESKTOP\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${PRODUCT_EXECUTABLE}" + + !insertmacro wails.writeUninstaller +SectionEnd + +Section "uninstall" + !insertmacro wails.setShellContext + + RMDir /r "$AppData\${PRODUCT_EXECUTABLE}" # Remove the WebView2 DataPath + + RMDir /r $INSTDIR + + Delete "$SMPROGRAMS\${INFO_PRODUCTNAME}.lnk" + Delete "$DESKTOP\${INFO_PRODUCTNAME}.lnk" + + !insertmacro wails.deleteUninstaller +SectionEnd diff --git a/build/nsis/wails_tools.nsh b/build/nsis/wails_tools.nsh new file mode 100644 index 00000000..78986b77 --- /dev/null +++ b/build/nsis/wails_tools.nsh @@ -0,0 +1,179 @@ +# DO NOT EDIT - Generated automatically by `wails build` + +!include "x64.nsh" +!include "WinVer.nsh" +!include "FileFunc.nsh" + +!ifndef INFO_PROJECTNAME + !define INFO_PROJECTNAME "captains-log" +!endif +!ifndef INFO_COMPANYNAME + !define INFO_COMPANYNAME "My Company" +!endif +!ifndef INFO_PRODUCTNAME + !define INFO_PRODUCTNAME "My Product" +!endif +!ifndef INFO_PRODUCTVERSION + !define INFO_PRODUCTVERSION "0.1.0" +!endif +!ifndef INFO_COPYRIGHT + !define INFO_COPYRIGHT "© now, My Company" +!endif +!ifndef PRODUCT_EXECUTABLE + !define PRODUCT_EXECUTABLE "${INFO_PROJECTNAME}.exe" +!endif +!ifndef UNINST_KEY_NAME + !define UNINST_KEY_NAME "${INFO_COMPANYNAME}${INFO_PRODUCTNAME}" +!endif +!define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${UNINST_KEY_NAME}" + +!ifndef REQUEST_EXECUTION_LEVEL + !define REQUEST_EXECUTION_LEVEL "admin" +!endif + +RequestExecutionLevel "${REQUEST_EXECUTION_LEVEL}" + +!ifdef ARG_WAILS_AMD64_BINARY + !define SUPPORTS_AMD64 +!endif + +!ifdef ARG_WAILS_ARM64_BINARY + !define SUPPORTS_ARM64 +!endif + +!ifdef SUPPORTS_AMD64 + !ifdef SUPPORTS_ARM64 + !define ARCH "amd64_arm64" + !else + !define ARCH "amd64" + !endif +!else + !ifdef SUPPORTS_ARM64 + !define ARCH "arm64" + !else + !error "Wails: Undefined ARCH, please provide at least one of ARG_WAILS_AMD64_BINARY or ARG_WAILS_ARM64_BINARY" + !endif +!endif + +!macro wails.checkArchitecture + !ifndef WAILS_WIN10_REQUIRED + !define WAILS_WIN10_REQUIRED "This product is only supported on Windows 10 (Server 2016) and later." + !endif + + !ifndef WAILS_ARCHITECTURE_NOT_SUPPORTED + !define WAILS_ARCHITECTURE_NOT_SUPPORTED "This product can't be installed on the current Windows architecture. Supports: ${ARCH}" + !endif + + ${If} ${AtLeastWin10} + !ifdef SUPPORTS_AMD64 + ${if} ${IsNativeAMD64} + Goto ok + ${EndIf} + !endif + + !ifdef SUPPORTS_ARM64 + ${if} ${IsNativeARM64} + Goto ok + ${EndIf} + !endif + + IfSilent silentArch notSilentArch + silentArch: + SetErrorLevel 65 + Abort + notSilentArch: + MessageBox MB_OK "${WAILS_ARCHITECTURE_NOT_SUPPORTED}" + Quit + ${else} + IfSilent silentWin notSilentWin + silentWin: + SetErrorLevel 64 + Abort + notSilentWin: + MessageBox MB_OK "${WAILS_WIN10_REQUIRED}" + Quit + ${EndIf} + + ok: +!macroend + +!macro wails.files + !ifdef SUPPORTS_AMD64 + ${if} ${IsNativeAMD64} + File "/oname=${PRODUCT_EXECUTABLE}" "${ARG_WAILS_AMD64_BINARY}" + ${EndIf} + !endif + + !ifdef SUPPORTS_ARM64 + ${if} ${IsNativeARM64} + File "/oname=${PRODUCT_EXECUTABLE}" "${ARG_WAILS_ARM64_BINARY}" + ${EndIf} + !endif +!macroend + +!macro wails.writeUninstaller + WriteUninstaller "$INSTDIR\uninstall.exe" + + SetRegView 64 + WriteRegStr HKLM "${UNINST_KEY}" "Publisher" "${INFO_COMPANYNAME}" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayName" "${INFO_PRODUCTNAME}" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayVersion" "${INFO_PRODUCTVERSION}" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayIcon" "$INSTDIR\${PRODUCT_EXECUTABLE}" + WriteRegStr HKLM "${UNINST_KEY}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" + WriteRegStr HKLM "${UNINST_KEY}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" + + ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 + IntFmt $0 "0x%08X" $0 + WriteRegDWORD HKLM "${UNINST_KEY}" "EstimatedSize" "$0" +!macroend + +!macro wails.deleteUninstaller + Delete "$INSTDIR\uninstall.exe" + + SetRegView 64 + DeleteRegKey HKLM "${UNINST_KEY}" +!macroend + +!macro wails.setShellContext + ${If} ${REQUEST_EXECUTION_LEVEL} == "admin" + SetShellVarContext all + ${else} + SetShellVarContext current + ${EndIf} +!macroend + +# Install webview2 by launching the bootstrapper +# See https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#online-only-deployment +!macro wails.webview2runtime + !ifndef WAILS_INSTALL_WEBVIEW_DETAILPRINT + !define WAILS_INSTALL_WEBVIEW_DETAILPRINT "Installing: WebView2 Runtime" + !endif + + SetRegView 64 + # If the admin key exists and is not empty then webview2 is already installed + ReadRegStr $0 HKLM "SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv" + ${If} $0 != "" + Goto ok + ${EndIf} + + ${If} ${REQUEST_EXECUTION_LEVEL} == "user" + # If the installer is run in user level, check the user specific key exists and is not empty then webview2 is already installed + ReadRegStr $0 HKCU "Software\Microsoft\EdgeUpdate\Clients{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv" + ${If} $0 != "" + Goto ok + ${EndIf} + ${EndIf} + + SetDetailsPrint both + DetailPrint "${WAILS_INSTALL_WEBVIEW_DETAILPRINT}" + SetDetailsPrint listonly + + InitPluginsDir + CreateDirectory "$pluginsdir\webview2bootstrapper" + SetOutPath "$pluginsdir\webview2bootstrapper" + File "MicrosoftEdgeWebview2Setup.exe" + ExecWait '"$pluginsdir\webview2bootstrapper\MicrosoftEdgeWebview2Setup.exe" /silent /install' + + SetDetailsPrint both + ok: +!macroend \ No newline at end of file diff --git a/build/wails.exe.manifest b/build/wails.exe.manifest new file mode 100644 index 00000000..167e1ad2 --- /dev/null +++ b/build/wails.exe.manifest @@ -0,0 +1,15 @@ + + + + + + + + + + + true/pm + permonitorv2,permonitor + + + \ No newline at end of file diff --git a/db/db.go b/db/db.go new file mode 100644 index 00000000..17d86e93 --- /dev/null +++ b/db/db.go @@ -0,0 +1,31 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.26.0 + +package db + +import ( + "context" + "database/sql" +) + +type DBTX interface { + ExecContext(context.Context, string, ...interface{}) (sql.Result, error) + PrepareContext(context.Context, string) (*sql.Stmt, error) + QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error) + QueryRowContext(context.Context, string, ...interface{}) *sql.Row +} + +func New(db DBTX) *Queries { + return &Queries{db: db} +} + +type Queries struct { + db DBTX +} + +func (q *Queries) WithTx(tx *sql.Tx) *Queries { + return &Queries{ + db: tx, + } +} diff --git a/db/models.go b/db/models.go new file mode 100644 index 00000000..e29db6aa --- /dev/null +++ b/db/models.go @@ -0,0 +1,60 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.26.0 + +package db + +import ( + "database/sql" +) + +type Note struct { + ID int64 + StatusID sql.NullInt64 + NotebookID sql.NullInt64 + Content string + Title string + CreatedAt string + ModifiedAt string + PublishedAt sql.NullString + PublishedID sql.NullString +} + +type NoteTag struct { + NoteID sql.NullInt64 + TagID sql.NullInt64 +} + +type Notebook struct { + ID int64 + Name string + CreatedAt string +} + +type NotesFt struct { + Content string + NotebookID string + CreatedAt string + ModifiedAt string +} + +type Setting struct { + Key string + Value sql.NullString +} + +type Tag struct { + ID int64 + Name string + Color sql.NullString + Icon sql.NullString + CreatedAt string +} + +type TrashedNote struct { + ID int64 + NoteID sql.NullInt64 + Content string + CreatedAt string + TrashedAt string +} diff --git a/db/notebooks.sql.go b/db/notebooks.sql.go new file mode 100644 index 00000000..2ed50892 --- /dev/null +++ b/db/notebooks.sql.go @@ -0,0 +1,97 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.26.0 +// source: notebooks.sql + +package db + +import ( + "context" +) + +const createNotebook = `-- name: CreateNotebook :one + +INSERT INTO notebooks (name, created_at) +VALUES (?, ?) +RETURNING id, name, created_at +` + +type CreateNotebookParams struct { + Name string + CreatedAt string +} + +// Notebook Queries +func (q *Queries) CreateNotebook(ctx context.Context, arg CreateNotebookParams) (Notebook, error) { + row := q.db.QueryRowContext(ctx, createNotebook, arg.Name, arg.CreatedAt) + var i Notebook + err := row.Scan(&i.ID, &i.Name, &i.CreatedAt) + return i, err +} + +const deleteNotebook = `-- name: DeleteNotebook :exec +DELETE FROM notebooks WHERE id = ? +` + +func (q *Queries) DeleteNotebook(ctx context.Context, id int64) error { + _, err := q.db.ExecContext(ctx, deleteNotebook, id) + return err +} + +const getNotebook = `-- name: GetNotebook :one +SELECT id, name, created_at +FROM notebooks +WHERE id = ? +` + +func (q *Queries) GetNotebook(ctx context.Context, id int64) (Notebook, error) { + row := q.db.QueryRowContext(ctx, getNotebook, id) + var i Notebook + err := row.Scan(&i.ID, &i.Name, &i.CreatedAt) + return i, err +} + +const listNotebooks = `-- name: ListNotebooks :many +SELECT id, name, created_at +FROM notebooks +` + +func (q *Queries) ListNotebooks(ctx context.Context) ([]Notebook, error) { + rows, err := q.db.QueryContext(ctx, listNotebooks) + if err != nil { + return nil, err + } + defer rows.Close() + var items []Notebook + for rows.Next() { + var i Notebook + if err := rows.Scan(&i.ID, &i.Name, &i.CreatedAt); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const updateNotebook = `-- name: UpdateNotebook :exec +UPDATE notebooks +SET name = ?, created_at = ? +WHERE id = ? +` + +type UpdateNotebookParams struct { + Name string + CreatedAt string + ID int64 +} + +func (q *Queries) UpdateNotebook(ctx context.Context, arg UpdateNotebookParams) error { + _, err := q.db.ExecContext(ctx, updateNotebook, arg.Name, arg.CreatedAt, arg.ID) + return err +} diff --git a/db/notes.sql.go b/db/notes.sql.go new file mode 100644 index 00000000..35c41739 --- /dev/null +++ b/db/notes.sql.go @@ -0,0 +1,157 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.26.0 +// source: notes.sql + +package db + +import ( + "context" + "database/sql" +) + +const createNote = `-- name: CreateNote :one + +INSERT INTO notes (status_id, notebook_id, content, title, created_at, modified_at, published_at, published_id) +VALUES (?, ?, ?, ?, ?, ?, ?, ?) +RETURNING id, status_id, notebook_id, content, title, created_at, modified_at, published_at, published_id +` + +type CreateNoteParams struct { + StatusID sql.NullInt64 + NotebookID sql.NullInt64 + Content string + Title string + CreatedAt string + ModifiedAt string + PublishedAt sql.NullString + PublishedID sql.NullString +} + +// Note Queries +func (q *Queries) CreateNote(ctx context.Context, arg CreateNoteParams) (Note, error) { + row := q.db.QueryRowContext(ctx, createNote, + arg.StatusID, + arg.NotebookID, + arg.Content, + arg.Title, + arg.CreatedAt, + arg.ModifiedAt, + arg.PublishedAt, + arg.PublishedID, + ) + var i Note + err := row.Scan( + &i.ID, + &i.StatusID, + &i.NotebookID, + &i.Content, + &i.Title, + &i.CreatedAt, + &i.ModifiedAt, + &i.PublishedAt, + &i.PublishedID, + ) + return i, err +} + +const deleteNote = `-- name: DeleteNote :exec +DELETE FROM notes WHERE id = ? +` + +func (q *Queries) DeleteNote(ctx context.Context, id int64) error { + _, err := q.db.ExecContext(ctx, deleteNote, id) + return err +} + +const getNote = `-- name: GetNote :one +SELECT id, status_id, notebook_id, content, title, created_at, modified_at, published_at, published_id +FROM notes +WHERE id = ? +` + +func (q *Queries) GetNote(ctx context.Context, id int64) (Note, error) { + row := q.db.QueryRowContext(ctx, getNote, id) + var i Note + err := row.Scan( + &i.ID, + &i.StatusID, + &i.NotebookID, + &i.Content, + &i.Title, + &i.CreatedAt, + &i.ModifiedAt, + &i.PublishedAt, + &i.PublishedID, + ) + return i, err +} + +const listNotes = `-- name: ListNotes :many +SELECT id, status_id, notebook_id, content, title, created_at, modified_at, published_at, published_id +FROM notes +` + +func (q *Queries) ListNotes(ctx context.Context) ([]Note, error) { + rows, err := q.db.QueryContext(ctx, listNotes) + if err != nil { + return nil, err + } + defer rows.Close() + var items []Note + for rows.Next() { + var i Note + if err := rows.Scan( + &i.ID, + &i.StatusID, + &i.NotebookID, + &i.Content, + &i.Title, + &i.CreatedAt, + &i.ModifiedAt, + &i.PublishedAt, + &i.PublishedID, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const updateNote = `-- name: UpdateNote :exec +UPDATE notes +SET status_id = ?, notebook_id = ?, content = ?, title = ?, modified_at = ?, published_at = ?, published_id = ? +WHERE id = ? +` + +type UpdateNoteParams struct { + StatusID sql.NullInt64 + NotebookID sql.NullInt64 + Content string + Title string + ModifiedAt string + PublishedAt sql.NullString + PublishedID sql.NullString + ID int64 +} + +func (q *Queries) UpdateNote(ctx context.Context, arg UpdateNoteParams) error { + _, err := q.db.ExecContext(ctx, updateNote, + arg.StatusID, + arg.NotebookID, + arg.Content, + arg.Title, + arg.ModifiedAt, + arg.PublishedAt, + arg.PublishedID, + arg.ID, + ) + return err +} diff --git a/db/settings.sql.go b/db/settings.sql.go new file mode 100644 index 00000000..eda69b42 --- /dev/null +++ b/db/settings.sql.go @@ -0,0 +1,69 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.26.0 +// source: settings.sql + +package db + +import ( + "context" + "database/sql" +) + +const createSetting = `-- name: CreateSetting :one + +INSERT INTO settings (key, value) +VALUES (?, ?) +RETURNING key, value +` + +type CreateSettingParams struct { + Key string + Value sql.NullString +} + +// Settings Queries +func (q *Queries) CreateSetting(ctx context.Context, arg CreateSettingParams) (Setting, error) { + row := q.db.QueryRowContext(ctx, createSetting, arg.Key, arg.Value) + var i Setting + err := row.Scan(&i.Key, &i.Value) + return i, err +} + +const deleteSetting = `-- name: DeleteSetting :exec +DELETE FROM settings WHERE key = ? +` + +func (q *Queries) DeleteSetting(ctx context.Context, key string) error { + _, err := q.db.ExecContext(ctx, deleteSetting, key) + return err +} + +const getSetting = `-- name: GetSetting :one +SELECT key, value +FROM settings +WHERE key = ? +` + +func (q *Queries) GetSetting(ctx context.Context, key string) (Setting, error) { + row := q.db.QueryRowContext(ctx, getSetting, key) + var i Setting + err := row.Scan(&i.Key, &i.Value) + return i, err +} + +const updateSetting = `-- name: UpdateSetting :exec +UPDATE settings +SET value = ? +WHERE key = ? +` + +type UpdateSettingParams struct { + Value sql.NullString + Key string +} + +func (q *Queries) UpdateSetting(ctx context.Context, arg UpdateSettingParams) error { + _, err := q.db.ExecContext(ctx, updateSetting, arg.Value, arg.Key) + return err +} diff --git a/db/tags.sql.go b/db/tags.sql.go new file mode 100644 index 00000000..f4c6febe --- /dev/null +++ b/db/tags.sql.go @@ -0,0 +1,131 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.26.0 +// source: tags.sql + +package db + +import ( + "context" + "database/sql" +) + +const createTag = `-- name: CreateTag :one + +INSERT INTO tags (name, color, icon, created_at) +VALUES (?, ?, ?, ?) +RETURNING id, name, color, icon, created_at +` + +type CreateTagParams struct { + Name string + Color sql.NullString + Icon sql.NullString + CreatedAt string +} + +// Tag Queries +func (q *Queries) CreateTag(ctx context.Context, arg CreateTagParams) (Tag, error) { + row := q.db.QueryRowContext(ctx, createTag, + arg.Name, + arg.Color, + arg.Icon, + arg.CreatedAt, + ) + var i Tag + err := row.Scan( + &i.ID, + &i.Name, + &i.Color, + &i.Icon, + &i.CreatedAt, + ) + return i, err +} + +const deleteTag = `-- name: DeleteTag :exec +DELETE FROM tags WHERE id = ? +` + +func (q *Queries) DeleteTag(ctx context.Context, id int64) error { + _, err := q.db.ExecContext(ctx, deleteTag, id) + return err +} + +const getTag = `-- name: GetTag :one +SELECT id, name, color, icon, created_at +FROM tags +WHERE id = ? +` + +func (q *Queries) GetTag(ctx context.Context, id int64) (Tag, error) { + row := q.db.QueryRowContext(ctx, getTag, id) + var i Tag + err := row.Scan( + &i.ID, + &i.Name, + &i.Color, + &i.Icon, + &i.CreatedAt, + ) + return i, err +} + +const listTags = `-- name: ListTags :many +SELECT id, name, color, icon, created_at +FROM tags +` + +func (q *Queries) ListTags(ctx context.Context) ([]Tag, error) { + rows, err := q.db.QueryContext(ctx, listTags) + if err != nil { + return nil, err + } + defer rows.Close() + var items []Tag + for rows.Next() { + var i Tag + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Color, + &i.Icon, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const updateTag = `-- name: UpdateTag :exec +UPDATE tags +SET name = ?, color = ?, icon = ?, created_at = ? +WHERE id = ? +` + +type UpdateTagParams struct { + Name string + Color sql.NullString + Icon sql.NullString + CreatedAt string + ID int64 +} + +func (q *Queries) UpdateTag(ctx context.Context, arg UpdateTagParams) error { + _, err := q.db.ExecContext(ctx, updateTag, + arg.Name, + arg.Color, + arg.Icon, + arg.CreatedAt, + arg.ID, + ) + return err +} diff --git a/db/trashed_notes.sql.go b/db/trashed_notes.sql.go new file mode 100644 index 00000000..505e8738 --- /dev/null +++ b/db/trashed_notes.sql.go @@ -0,0 +1,98 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.26.0 +// source: trashed_notes.sql + +package db + +import ( + "context" + "database/sql" +) + +const deleteTrashedNote = `-- name: DeleteTrashedNote :exec +DELETE FROM trashed_notes WHERE id = ? +` + +func (q *Queries) DeleteTrashedNote(ctx context.Context, id int64) error { + _, err := q.db.ExecContext(ctx, deleteTrashedNote, id) + return err +} + +const getTrashedNote = `-- name: GetTrashedNote :one +SELECT id, note_id, content, created_at, trashed_at +FROM trashed_notes +WHERE id = ? +` + +func (q *Queries) GetTrashedNote(ctx context.Context, id int64) (TrashedNote, error) { + row := q.db.QueryRowContext(ctx, getTrashedNote, id) + var i TrashedNote + err := row.Scan( + &i.ID, + &i.NoteID, + &i.Content, + &i.CreatedAt, + &i.TrashedAt, + ) + return i, err +} + +const listTrashedNotes = `-- name: ListTrashedNotes :many +SELECT id, note_id, content, created_at, trashed_at +FROM trashed_notes +` + +func (q *Queries) ListTrashedNotes(ctx context.Context) ([]TrashedNote, error) { + rows, err := q.db.QueryContext(ctx, listTrashedNotes) + if err != nil { + return nil, err + } + defer rows.Close() + var items []TrashedNote + for rows.Next() { + var i TrashedNote + if err := rows.Scan( + &i.ID, + &i.NoteID, + &i.Content, + &i.CreatedAt, + &i.TrashedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const trashNote = `-- name: TrashNote :exec + +INSERT INTO trashed_notes (note_id, content, created_at, trashed_at) +VALUES (?, ?, ?, ?) +RETURNING id, note_id, content, created_at, trashed_at +` + +type TrashNoteParams struct { + NoteID sql.NullInt64 + Content string + CreatedAt string + TrashedAt string +} + +// Trashed Note Queries +func (q *Queries) TrashNote(ctx context.Context, arg TrashNoteParams) error { + _, err := q.db.ExecContext(ctx, trashNote, + arg.NoteID, + arg.Content, + arg.CreatedAt, + arg.TrashedAt, + ) + return err +} diff --git a/frontend/bindings/changeme/greetservice.ts b/frontend/bindings/changeme/greetservice.ts new file mode 100644 index 00000000..27eef2be --- /dev/null +++ b/frontend/bindings/changeme/greetservice.ts @@ -0,0 +1,11 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "@wailsio/runtime"; + +export function Greet(name: string): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(1411160069, name) as any; + return $resultPromise; +} diff --git a/frontend/bindings/changeme/index.ts b/frontend/bindings/changeme/index.ts new file mode 100644 index 00000000..50e3f043 --- /dev/null +++ b/frontend/bindings/changeme/index.ts @@ -0,0 +1,7 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as GreetService from "./greetservice.js"; +export { + GreetService +}; diff --git a/components.json b/frontend/components.json similarity index 99% rename from components.json rename to frontend/components.json index f6096fb7..2844d716 100644 --- a/components.json +++ b/frontend/components.json @@ -14,4 +14,4 @@ "components": "~/components", "utils": "~/lib/utils" } -} \ No newline at end of file +} diff --git a/index.html b/frontend/index.html similarity index 62% rename from index.html rename to frontend/index.html index bc30a7c4..ee39f01b 100644 --- a/index.html +++ b/frontend/index.html @@ -3,12 +3,12 @@ - + - Resolvr + Wails + React + TS - +

diff --git a/package-lock.json b/frontend/package-lock.json similarity index 59% rename from package-lock.json rename to frontend/package-lock.json index 0de6c1fe..d8dcf2df 100644 --- a/package-lock.json +++ b/frontend/package-lock.json @@ -1,81 +1,46 @@ { - "name": "captains-log", - "version": "0.0.1", + "name": "react-ts-latest", + "version": "0.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "captains-log", - "version": "0.0.1", + "name": "react-ts-latest", + "version": "0.0.0", "dependencies": { - "@codemirror/commands": "^6.5.0", - "@codemirror/lang-markdown": "^6.2.5", - "@codemirror/language-data": "^6.5.1", - "@codemirror/state": "^6.4.1", - "@codemirror/view": "^6.28.2", - "@hookform/resolvers": "^3.5.0", "@radix-ui/react-accordion": "^1.2.0", - "@radix-ui/react-avatar": "^1.1.0", - "@radix-ui/react-context-menu": "^2.2.1", - "@radix-ui/react-dialog": "^1.1.1", - "@radix-ui/react-dropdown-menu": "^2.1.1", "@radix-ui/react-icons": "^1.3.0", - "@radix-ui/react-label": "^2.1.0", - "@radix-ui/react-popover": "^1.1.1", "@radix-ui/react-scroll-area": "^1.1.0", - "@radix-ui/react-select": "^2.1.1", - "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-switch": "^1.1.0", - "@replit/codemirror-vim": "^6.2.1", - "@tanstack/react-query": "^5.45.1", - "@tanstack/react-query-devtools": "^5.45.1", - "@tauri-apps/api": "^2.0.0-beta.9", - "@tauri-apps/plugin-os": "^2.0.0-beta.2", - "@tauri-apps/plugin-shell": "^2.0.0-beta.2", - "@uiw/codemirror-themes": "^4.21.24", + "@tanstack/react-query": "^5.48.0", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", - "cmdk": "^1.0.0", - "codemirror": "^6.0.1", - "dayjs": "^1.11.10", - "lucide-react": "^0.396.0", - "mirrorshades": "^0.1.0", - "next-themes": "^0.3.0", - "nostr-tools": "^2.5.2", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-hook-form": "^7.52.0", - "react-intersection-observer": "^9.8.2", - "react-resizable-panels": "^2.0.13", - "react-router-dom": "^6.24.0", - "sonner": "^1.4.32", + "lucide-react": "^0.397.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-resizable-panels": "^2.0.19", "tailwind-merge": "^2.3.0", - "tailwindcss-animate": "^1.0.7", - "usehooks-ts": "^3.1.0", - "zod": "^3.23.8", - "zustand": "^4.5.2" + "tailwindcss-animate": "^1.0.7" }, "devDependencies": { - "@ianvs/prettier-plugin-sort-imports": "^4.2.1", - "@tailwindcss/typography": "^0.5.12", - "@tauri-apps/cli": "^2.0.0-beta.13", - "@types/eslint": "^8.56.6", - "@types/node": "^20.14.8", - "@types/react": "^18.2.67", - "@types/react-dom": "^18.2.22", - "@typescript-eslint/eslint-plugin": "^7.3.1", - "@typescript-eslint/parser": "^7.3.1", + "@ianvs/prettier-plugin-sort-imports": "^4.3.0", + "@types/node": "^20.14.9", + "@types/react": "^18.2.43", + "@types/react-dom": "^18.2.17", + "@typescript-eslint/eslint-plugin": "^6.14.0", + "@typescript-eslint/parser": "^6.14.0", "@vitejs/plugin-react": "^4.2.1", - "autoprefixer": "^10.4.18", - "eslint": "^8.57.0", + "@wailsio/runtime": "latest", + "autoprefixer": "^10.4.19", + "eslint": "^8.55.0", "eslint-plugin-react-hooks": "^4.6.0", - "postcss": "^8.4.37", - "prettier": "^3.2.5", + "eslint-plugin-react-refresh": "^0.4.5", + "postcss": "^8.4.38", + "prettier": "^3.3.2", "prettier-plugin-tailwindcss": "^0.6.5", - "tailwindcss": "^3.4.3", - "typescript": "^5.5.2", - "vite": "^5.3.1" + "tailwindcss": "^3.4.4", + "typescript": "^5.2.2", + "vite": "^5.0.8" } }, "node_modules/@alloc/quick-lru": { @@ -463,362 +428,6 @@ "node": ">=6.9.0" } }, - "node_modules/@codemirror/autocomplete": { - "version": "6.16.2", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.16.2.tgz", - "integrity": "sha512-MjfDrHy0gHKlPWsvSsikhO1+BOh+eBHNgfH1OXs1+DAf30IonQldgMM3kxLDTG9ktE7kDLaA1j/l7KMPA4KNfw==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0" - }, - "peerDependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@codemirror/commands": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.6.0.tgz", - "integrity": "sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.4.0", - "@codemirror/view": "^6.27.0", - "@lezer/common": "^1.1.0" - } - }, - "node_modules/@codemirror/lang-angular": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@codemirror/lang-angular/-/lang-angular-0.1.3.tgz", - "integrity": "sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w==", - "dependencies": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-javascript": "^6.1.2", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.3" - } - }, - "node_modules/@codemirror/lang-cpp": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-cpp/-/lang-cpp-6.0.2.tgz", - "integrity": "sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/cpp": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-css": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.2.1.tgz", - "integrity": "sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/css": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-go": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-go/-/lang-go-6.0.1.tgz", - "integrity": "sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/go": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-html": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.9.tgz", - "integrity": "sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/css": "^1.1.0", - "@lezer/html": "^1.3.0" - } - }, - "node_modules/@codemirror/lang-java": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-java/-/lang-java-6.0.1.tgz", - "integrity": "sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/java": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-javascript": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz", - "integrity": "sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/javascript": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-json": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.1.tgz", - "integrity": "sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/json": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-less": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-less/-/lang-less-6.0.2.tgz", - "integrity": "sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==", - "dependencies": { - "@codemirror/lang-css": "^6.2.0", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-liquid": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-liquid/-/lang-liquid-6.2.1.tgz", - "integrity": "sha512-J1Mratcm6JLNEiX+U2OlCDTysGuwbHD76XwuL5o5bo9soJtSbz2g6RU3vGHFyS5DC8rgVmFSzi7i6oBftm7tnA==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.1" - } - }, - "node_modules/@codemirror/lang-markdown": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.2.5.tgz", - "integrity": "sha512-Hgke565YcO4fd9pe2uLYxnMufHO5rQwRr+AAhFq8ABuhkrjyX8R5p5s+hZUTdV60O0dMRjxKhBLxz8pu/MkUVA==", - "dependencies": { - "@codemirror/autocomplete": "^6.7.1", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.3.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/markdown": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-php": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-php/-/lang-php-6.0.1.tgz", - "integrity": "sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==", - "dependencies": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/php": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-python": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.1.6.tgz", - "integrity": "sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==", - "dependencies": { - "@codemirror/autocomplete": "^6.3.2", - "@codemirror/language": "^6.8.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/python": "^1.1.4" - } - }, - "node_modules/@codemirror/lang-rust": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-rust/-/lang-rust-6.0.1.tgz", - "integrity": "sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/rust": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-sass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-sass/-/lang-sass-6.0.2.tgz", - "integrity": "sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==", - "dependencies": { - "@codemirror/lang-css": "^6.2.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/sass": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-sql": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/@codemirror/lang-sql/-/lang-sql-6.6.4.tgz", - "integrity": "sha512-n+FVfKGut+frOvor9dU5pFUalcP614WBNQ9IT1kOUj1t6LFLjWHi2I9DdxXnJuxqFV9jTyYF79coDV3ilSJqCw==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-vue": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@codemirror/lang-vue/-/lang-vue-0.1.3.tgz", - "integrity": "sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==", - "dependencies": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-javascript": "^6.1.2", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.1" - } - }, - "node_modules/@codemirror/lang-wast": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-wast/-/lang-wast-6.0.2.tgz", - "integrity": "sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-xml": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz", - "integrity": "sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/xml": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-yaml": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-yaml/-/lang-yaml-6.1.1.tgz", - "integrity": "sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.2.0", - "@lezer/yaml": "^1.0.0" - } - }, - "node_modules/@codemirror/language": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.2.tgz", - "integrity": "sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.23.0", - "@lezer/common": "^1.1.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "node_modules/@codemirror/language-data": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@codemirror/language-data/-/language-data-6.5.1.tgz", - "integrity": "sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==", - "dependencies": { - "@codemirror/lang-angular": "^0.1.0", - "@codemirror/lang-cpp": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-go": "^6.0.0", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-java": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/lang-json": "^6.0.0", - "@codemirror/lang-less": "^6.0.0", - "@codemirror/lang-liquid": "^6.0.0", - "@codemirror/lang-markdown": "^6.0.0", - "@codemirror/lang-php": "^6.0.0", - "@codemirror/lang-python": "^6.0.0", - "@codemirror/lang-rust": "^6.0.0", - "@codemirror/lang-sass": "^6.0.0", - "@codemirror/lang-sql": "^6.0.0", - "@codemirror/lang-vue": "^0.1.1", - "@codemirror/lang-wast": "^6.0.0", - "@codemirror/lang-xml": "^6.0.0", - "@codemirror/lang-yaml": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/legacy-modes": "^6.4.0" - } - }, - "node_modules/@codemirror/legacy-modes": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.4.0.tgz", - "integrity": "sha512-5m/K+1A6gYR0e+h/dEde7LoGimMjRtWXZFg4Lo70cc8HzjSdHe3fLwjWMR0VRl5KFT1SxalSap7uMgPKF28wBA==", - "dependencies": { - "@codemirror/language": "^6.0.0" - } - }, - "node_modules/@codemirror/lint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.0.tgz", - "integrity": "sha512-lsFofvaw0lnPRJlQylNsC4IRt/1lI4OD/yYslrSGVndOJfStc58v+8p9dgGiD90ktOfL7OhBWns1ZETYgz0EJA==", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/search": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.6.tgz", - "integrity": "sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/state": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.1.tgz", - "integrity": "sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==" - }, - "node_modules/@codemirror/view": { - "version": "6.28.2", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.28.2.tgz", - "integrity": "sha512-A3DmyVfjgPsGIjiJqM/zvODUAPQdQl3ci0ghehYNnbt5x+o76xq+dL5+mMBuysDXnI3kapgOkoeJ0sbtL/3qPw==", - "dependencies": { - "@codemirror/state": "^6.4.0", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", @@ -1280,48 +889,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@floating-ui/core": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", - "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", - "dependencies": { - "@floating-ui/utils": "^0.2.0" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", - "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", - "dependencies": { - "@floating-ui/core": "^1.0.0", - "@floating-ui/utils": "^0.2.0" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.0.tgz", - "integrity": "sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==", - "dependencies": { - "@floating-ui/dom": "^1.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", - "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" - }, - "node_modules/@hookform/resolvers": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.6.0.tgz", - "integrity": "sha512-UBcpyOX3+RR+dNnqBd0lchXpoL8p4xC21XP8H6Meb8uve5Br1GCnmg0PcBoKKqPKgGu9GHQ/oygcmPrQhetwqw==", - "peerDependencies": { - "react-hook-form": "^7.0.0" - } - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -1380,9 +947,9 @@ "dev": true }, "node_modules/@ianvs/prettier-plugin-sort-imports": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@ianvs/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.2.1.tgz", - "integrity": "sha512-NKN1LVFWUDGDGr3vt+6Ey3qPeN/163uR1pOPAlkWpgvAqgxQ6kSdUf1F0it8aHUtKRUzEGcK38Wxd07O61d7+Q==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@ianvs/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz", + "integrity": "sha512-OOMtUcO4J3LoL63dOKAe7bn+lSRRPeit2DqNHpx+wvBp3Grejo2PMaK4Mp1mwy8pnat64ccSgk/lBZbsAdLErw==", "dev": true, "dependencies": { "@babel/core": "^7.24.0", @@ -1486,207 +1053,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@lezer/common": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", - "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==" - }, - "node_modules/@lezer/cpp": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@lezer/cpp/-/cpp-1.1.2.tgz", - "integrity": "sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/css": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.8.tgz", - "integrity": "sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/go": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@lezer/go/-/go-1.0.0.tgz", - "integrity": "sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/highlight": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.0.tgz", - "integrity": "sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lezer/html": { - "version": "1.3.10", - "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.10.tgz", - "integrity": "sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/java": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@lezer/java/-/java-1.1.2.tgz", - "integrity": "sha512-3j8X70JvYf0BZt8iSRLXLkt0Ry1hVUgH6wT32yBxH/Xi55nW2VMhc1Az4SKwu4YGSmxCm1fsqDDcHTuFjC8pmg==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/javascript": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.17.tgz", - "integrity": "sha512-bYW4ctpyGK+JMumDApeUzuIezX01H76R1foD6LcRX224FWfyYit/HYxiPGDjXXe/wQWASjCvVGoukTH68+0HIA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.1.3", - "@lezer/lr": "^1.3.0" - } - }, - "node_modules/@lezer/json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.2.tgz", - "integrity": "sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/lr": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.1.tgz", - "integrity": "sha512-CHsKq8DMKBf9b3yXPDIU4DbH+ZJd/sJdYOW2llbW/HudP5u0VS6Bfq1hLYfgU7uAYGFIyGGQIsSOXGPEErZiJw==", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lezer/markdown": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.3.0.tgz", - "integrity": "sha512-ErbEQ15eowmJUyT095e9NJc3BI9yZ894fjSDtHftD0InkfUBGgnKSU6dvan9jqsZuNHg2+ag/1oyDRxNsENupQ==", - "dependencies": { - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "node_modules/@lezer/php": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@lezer/php/-/php-1.0.2.tgz", - "integrity": "sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.1.0" - } - }, - "node_modules/@lezer/python": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@lezer/python/-/python-1.1.14.tgz", - "integrity": "sha512-ykDOb2Ti24n76PJsSa4ZoDF0zH12BSw1LGfQXCYJhJyOGiFTfGaX0Du66Ze72R+u/P35U+O6I9m8TFXov1JzsA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/rust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@lezer/rust/-/rust-1.0.2.tgz", - "integrity": "sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/sass": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@lezer/sass/-/sass-1.0.6.tgz", - "integrity": "sha512-w/RCO2dIzZH1To8p+xjs8cE+yfgGus8NZ/dXeWl/QzHyr+TeBs71qiE70KPImEwvTsmEjoWh0A5SxMzKd5BWBQ==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/xml": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@lezer/xml/-/xml-1.0.5.tgz", - "integrity": "sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/yaml": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@lezer/yaml/-/yaml-1.0.3.tgz", - "integrity": "sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.4.0" - } - }, - "node_modules/@noble/ciphers": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.5.3.tgz", - "integrity": "sha512-B0+6IIHiqEs3BPMT0hcRmHvEj2QHOLu+uwt+tqDDeVd0oyVzh7BPrDcPjRnV1PV/5LaknXJJQvOuRGR0zQJz+w==", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", - "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1768,12 +1134,19 @@ } } }, - "node_modules/@radix-ui/react-accordion/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.0.tgz", + "integrity": "sha512-zQY7Epa8sTL0mq4ajSJpjgn2YmCgyrG7RsQgLp3C0LQVkG7+Tf6Pv1CeNWZLyqMjhdPkBa5Lx7wYBeSu7uCSTA==", "dependencies": { - "@radix-ui/react-slot": "1.1.0" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -1790,12 +1163,15 @@ } } }, - "node_modules/@radix-ui/react-arrow": { + "node_modules/@radix-ui/react-collection": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", - "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", + "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -1812,1065 +1188,63 @@ } } }, - "node_modules/@radix-ui/react-arrow/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", "peerDependencies": { "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true - }, - "@types/react-dom": { - "optional": true } } }, - "node_modules/@radix-ui/react-avatar": { + "node_modules/@radix-ui/react-context": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.0.tgz", - "integrity": "sha512-Q/PbuSMk/vyAd/UoIShVGZ7StHHeRFYU7wXmi5GV+8cLXflZAEpHL/F697H1klrzxKXNtZ97vWiC0q3RKUH8UA==", - "dependencies": { - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", "peerDependencies": { "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true - }, - "@types/react-dom": { - "optional": true } } }, - "node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", "peerDependencies": { "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true - }, - "@types/react-dom": { - "optional": true } } }, - "node_modules/@radix-ui/react-collapsible": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.0.tgz", - "integrity": "sha512-zQY7Epa8sTL0mq4ajSJpjgn2YmCgyrG7RsQgLp3C0LQVkG7+Tf6Pv1CeNWZLyqMjhdPkBa5Lx7wYBeSu7uCSTA==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", - "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", - "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context-menu": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.1.tgz", - "integrity": "sha512-wvMKKIeb3eOrkJ96s722vcidZ+2ZNfcYZWBPRHIB1VWrF+fiF851Io6LX0kmK5wTDQFKdulCCKJk2c3SBaQHvA==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-menu": "2.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context-menu/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz", - "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", - "@radix-ui/react-focus-scope": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", - "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", - "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-escape-keydown": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.1.tgz", - "integrity": "sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-menu": "2.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz", - "integrity": "sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", - "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-icons": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz", - "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==", - "peerDependencies": { - "react": "^16.x || ^17.x || ^18.x" - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", - "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-label": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.0.tgz", - "integrity": "sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==", - "dependencies": { - "@radix-ui/react-primitive": "2.0.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-menu": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.1.tgz", - "integrity": "sha512-oa3mXRRVjHi6DZu/ghuzdylyjaMXLymx83irM7hTxutQbD+7IhPKdMdRHD26Rm+kHRrWcrUkkRPv5pd47a2xFQ==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collection": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", - "@radix-ui/react-focus-scope": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-roving-focus": "1.1.0", - "@radix-ui/react-slot": "1.1.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popover": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.1.tgz", - "integrity": "sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", - "@radix-ui/react-focus-scope": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popper": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", - "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", - "dependencies": { - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-use-rect": "1.1.0", - "@radix-ui/react-use-size": "1.1.0", - "@radix-ui/rect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", - "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", - "dependencies": { - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz", - "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", - "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "1.0.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", - "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", - "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", - "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collection": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, + "node_modules/@radix-ui/react-icons": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz", + "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==", "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "react": "^16.x || ^17.x || ^18.x" } }, - "node_modules/@radix-ui/react-scroll-area": { + "node_modules/@radix-ui/react-id": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.1.0.tgz", - "integrity": "sha512-9ArIZ9HWhsrfqS765h+GZuLoxaRHD/j0ZWOWilsCvYTpYJp8XwCqNG7Dt9Nu/TItKOdgLGkOPCodQvDc+UMwYg==", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", "dependencies": { - "@radix-ui/number": "1.1.0", - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-presence": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-select": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.1.tgz", - "integrity": "sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ==", - "dependencies": { - "@radix-ui/number": "1.1.0", - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collection": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", - "@radix-ui/react-focus-scope": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.0.tgz", - "integrity": "sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==", - "dependencies": { - "@radix-ui/react-primitive": "2.0.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", - "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0" - }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -2881,18 +1255,13 @@ } } }, - "node_modules/@radix-ui/react-switch": { + "node_modules/@radix-ui/react-presence": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.0.tgz", - "integrity": "sha512-OBzy5WAj641k0AOSpKQtreDMe+isX0MQJ1IVyF03ucdF3DunOnROVrjWs8zsXUxC3zfZ6JL9HFVCUlMghz9dJw==", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz", + "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==", "dependencies": { - "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-use-size": "1.1.0" + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -2909,7 +1278,7 @@ } } }, - "node_modules/@radix-ui/react-switch/node_modules/@radix-ui/react-primitive": { + "node_modules/@radix-ui/react-primitive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", @@ -2931,88 +1300,42 @@ } } }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", - "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", - "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", - "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", - "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-previous": { + "node_modules/@radix-ui/react-scroll-area": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", - "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.1.0.tgz", + "integrity": "sha512-9ArIZ9HWhsrfqS765h+GZuLoxaRHD/j0ZWOWilsCvYTpYJp8XwCqNG7Dt9Nu/TItKOdgLGkOPCodQvDc+UMwYg==", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true + }, + "@types/react-dom": { + "optional": true } } }, - "node_modules/@radix-ui/react-use-rect": { + "node_modules/@radix-ui/react-slot": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", - "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", "dependencies": { - "@radix-ui/rect": "1.1.0" + "@radix-ui/react-compose-refs": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -3024,13 +1347,10 @@ } } }, - "node_modules/@radix-ui/react-use-size": { + "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", - "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" - }, + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -3041,75 +1361,37 @@ } } }, - "node_modules/@radix-ui/react-visually-hidden": { + "node_modules/@radix-ui/react-use-controllable-state": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", - "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "@radix-ui/react-use-callback-ref": "1.1.0" }, "peerDependencies": { "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true - }, - "@types/react-dom": { - "optional": true } } }, - "node_modules/@radix-ui/react-visually-hidden/node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", "peerDependencies": { "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true - }, - "@types/react-dom": { - "optional": true } } }, - "node_modules/@radix-ui/rect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", - "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==" - }, - "node_modules/@remix-run/router": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.17.0.tgz", - "integrity": "sha512-2D6XaHEVvkCn682XBnipbJjgZUU7xjLtA4dGJRBVUKpEaDYOZMENZoZjAOSb7qirxt5RupjzZxz4fK2FO+EFPw==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@replit/codemirror-vim": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@replit/codemirror-vim/-/codemirror-vim-6.2.1.tgz", - "integrity": "sha512-qDAcGSHBYU5RrdO//qCmD8K9t6vbP327iCj/iqrkVnjbrpFhrjOt92weGXGHmTNRh16cUtkUZ7Xq7rZf+8HVow==", - "peerDependencies": { - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.1.0", - "@codemirror/search": "^6.2.0", - "@codemirror/state": "^6.0.1", - "@codemirror/view": "^6.0.3" - } - }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.18.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", @@ -3318,333 +1600,28 @@ "win32" ] }, - "node_modules/@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@scure/bip32": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz", - "integrity": "sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==", - "dependencies": { - "@noble/curves": "~1.1.0", - "@noble/hashes": "~1.3.1", - "@scure/base": "~1.1.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip32/node_modules/@noble/curves": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz", - "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==", - "dependencies": { - "@noble/hashes": "1.3.1" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", - "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@tailwindcss/typography": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.13.tgz", - "integrity": "sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw==", - "dev": true, - "dependencies": { - "lodash.castarray": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "postcss-selector-parser": "6.0.10" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, "node_modules/@tanstack/query-core": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.45.0.tgz", - "integrity": "sha512-RVfIZQmFUTdjhSAAblvueimfngYyfN6HlwaJUPK71PKd7yi43Vs1S/rdimmZedPWX/WGppcq/U1HOj7O7FwYxw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/query-devtools": { - "version": "5.37.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.37.1.tgz", - "integrity": "sha512-XcG4IIHIv0YQKrexTqo2zogQWR1Sz672tX2KsfE9kzB+9zhx44vRKH5si4WDILE1PIWQpStFs/NnrDQrBAUQpg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/react-query": { - "version": "5.45.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.45.1.tgz", - "integrity": "sha512-mYYfJujKg2kxmkRRjA6nn4YKG3ITsKuH22f1kteJ5IuVQqgKUgbaSQfYwVP0gBS05mhwxO03HVpD0t7BMN7WOA==", - "dependencies": { - "@tanstack/query-core": "5.45.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^18.0.0" - } - }, - "node_modules/@tanstack/react-query-devtools": { - "version": "5.45.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.45.1.tgz", - "integrity": "sha512-4mrbk1g5jqlqh0pifZNsKzy7FtgeqgwzMICL4d6IJGayrrcrKq9K4N/OzRNbgRWrTn6YTY63qcAcKo+NJU2QMw==", - "dependencies": { - "@tanstack/query-devtools": "5.37.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "@tanstack/react-query": "^5.45.1", - "react": "^18 || ^19" - } - }, - "node_modules/@tauri-apps/api": { - "version": "2.0.0-beta.13", - "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.0.0-beta.13.tgz", - "integrity": "sha512-Np1opKANzRMF3lgJ9gDquBCB9SxlE2lRmNpVx1+L6RyzAmigkuh0ZulT5jMnDA3JLsuSDU135r/s4t/Pmx4atg==", - "engines": { - "node": ">= 18", - "npm": ">= 6.6.0", - "yarn": ">= 1.19.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/tauri" - } - }, - "node_modules/@tauri-apps/cli": { - "version": "2.0.0-beta.20", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.0.0-beta.20.tgz", - "integrity": "sha512-707q9uIc2oNrYHd2dtMvxTrpZXVpart5EIktnRymNOpphkLlB6WUBjHD+ga45WqTU6cNGKbYvkKqTNfshNul9Q==", - "dev": true, - "bin": { - "tauri": "tauri.js" - }, - "engines": { - "node": ">= 10" - }, + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.48.0.tgz", + "integrity": "sha512-lZAfPPeVIqXCswE9SSbG33B6/91XOWt/Iq41bFeWb/mnHwQSIfFRbkS4bfs+WhIk9abRArF9Id2fp0Mgo+hq6Q==", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/tauri" - }, - "optionalDependencies": { - "@tauri-apps/cli-darwin-arm64": "2.0.0-beta.20", - "@tauri-apps/cli-darwin-x64": "2.0.0-beta.20", - "@tauri-apps/cli-linux-arm-gnueabihf": "2.0.0-beta.20", - "@tauri-apps/cli-linux-arm64-gnu": "2.0.0-beta.20", - "@tauri-apps/cli-linux-arm64-musl": "2.0.0-beta.20", - "@tauri-apps/cli-linux-x64-gnu": "2.0.0-beta.20", - "@tauri-apps/cli-linux-x64-musl": "2.0.0-beta.20", - "@tauri-apps/cli-win32-arm64-msvc": "2.0.0-beta.20", - "@tauri-apps/cli-win32-ia32-msvc": "2.0.0-beta.20", - "@tauri-apps/cli-win32-x64-msvc": "2.0.0-beta.20" - } - }, - "node_modules/@tauri-apps/cli-darwin-arm64": { - "version": "2.0.0-beta.20", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.0.0-beta.20.tgz", - "integrity": "sha512-oCJOCib7GuYkwkBXx+ekamR8NZZU+2i3MLP+DHpDxK5gS2uhCE+CBkamJkNt6y1x6xdVnwyqZOm5RvN4SRtyIA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-darwin-x64": { - "version": "2.0.0-beta.20", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.0.0-beta.20.tgz", - "integrity": "sha512-lC5QSnRExedYN4Ds6ZlSvC2PxP8qfIYBJQ5ktf+PJI5gQALdNeVtd6YnTG1ODCEklfLq9WKkGwp7JdALTU5wDA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { - "version": "2.0.0-beta.20", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.0.0-beta.20.tgz", - "integrity": "sha512-nZCeBMHHye5DLOJV5k2w658hnCS+LYaOZ8y/G9l3ei+g0L/HBjlSy6r4simsAT5TG8+l3oCZzLBngfTMdDS/YA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-arm64-gnu": { - "version": "2.0.0-beta.20", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.0.0-beta.20.tgz", - "integrity": "sha512-B79ISVLPVBgwnCchVqwTKU+vxnFYqxKomcR4rmsvxfs0NVtT5QuNzE1k4NUQnw3966yjwhYR3mnHsSJQSB4Eyw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-arm64-musl": { - "version": "2.0.0-beta.20", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.0.0-beta.20.tgz", - "integrity": "sha512-ojIkv/1uZHhcrgfIN8xgn4BBeo/Xg+bnV0wer6lD78zyxkUMWeEZ+u3mae1ejCJNhhaZOxNaUQ67MvDOiGyr5Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-x64-gnu": { - "version": "2.0.0-beta.20", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.0.0-beta.20.tgz", - "integrity": "sha512-xBy1FNbHKlc7T6pOmFQQPECxJaI5A9QWX7Kb9N64cNVusoOGlvc3xHYkXMS4PTr7xXOT0yiE1Ww2OwDRJ3lYsg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-x64-musl": { - "version": "2.0.0-beta.20", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.0.0-beta.20.tgz", - "integrity": "sha512-+O6zq5jmtUxA1FUAAwF2ywPysy4NRo2Y6G+ESZDkY9XosRwdt5OUjqAsYktZA3AxDMZVei8r9buwTqUwi9ny/g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-win32-arm64-msvc": { - "version": "2.0.0-beta.20", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.0.0-beta.20.tgz", - "integrity": "sha512-RswgMbWyOQcv53CHvIuiuhAh4kKDqaGyZfWD4VlxqX/XhkoF5gsNgr0MxzrY7pmoL+89oVI+fiGVJz4nOQE5vA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-win32-ia32-msvc": { - "version": "2.0.0-beta.20", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.0.0-beta.20.tgz", - "integrity": "sha512-5lgWmDVXhX3SBGbiv5SduM1yajiRnUEJClWhSdRrEEJeXdsxpCsBEhxYnUnDCEzPKxLLn5fdBv3VrVctJ03csQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-win32-x64-msvc": { - "version": "2.0.0-beta.20", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.0.0-beta.20.tgz", - "integrity": "sha512-SuSiiVQTQPSzWlsxQp/NMzWbzDS9TdVDOw7CCfgiG5wnT2GsxzrcIAVN6i7ILsVFLxrjr0bIgPldSJcdcH84Yw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/plugin-os": { - "version": "2.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-os/-/plugin-os-2.0.0-beta.5.tgz", - "integrity": "sha512-Qfs/clZ9R05J+OVOGkko+9OaYaL+xJaGICeQ1G5CnLFpUdTfMV10D+1nBBauxDdiLU4ay5I0iprJ5aG5GJBunQ==", - "dependencies": { - "@tauri-apps/api": "2.0.0-beta.13" + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/@tauri-apps/plugin-shell": { - "version": "2.0.0-beta.6", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-shell/-/plugin-shell-2.0.0-beta.6.tgz", - "integrity": "sha512-g3nM9cQQGl7Iv4MvyFuco/aPTiwOI/MixcoKso3VQIg5Aqd64NqR0r+GfsB0qx52txItqzSXwmeaj1eZjO9Q6Q==", + "node_modules/@tanstack/react-query": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.48.0.tgz", + "integrity": "sha512-GDExbjYWzvDokyRqMSWXdrPiYpp95Aig0oeMIrxTaruOJJgWiWfUP//OAaowm2RrRkGVsavSZdko/XmIrrV2Nw==", "dependencies": { - "@tauri-apps/api": "2.0.0-beta.13" + "@tanstack/query-core": "5.48.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18.0.0" } }, "node_modules/@types/babel__core": { @@ -3688,16 +1665,6 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/eslint": { - "version": "8.56.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", - "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -3711,9 +1678,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.14.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.8.tgz", - "integrity": "sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==", + "version": "20.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", + "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -3744,32 +1711,40 @@ "@types/react": "*" } }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.0.tgz", - "integrity": "sha512-FX1X6AF0w8MdVFLSdqwqN/me2hyhuQg4ykN6ZpVhh1ij/80pTvDKclX1sZB9iqex8SjQfVhwMKs3JtnnMLzG9w==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.13.0", - "@typescript-eslint/type-utils": "7.13.0", - "@typescript-eslint/utils": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.3.1", + "ignore": "^5.2.4", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3778,26 +1753,26 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.13.0.tgz", - "integrity": "sha512-EjMfl69KOS9awXXe83iRN7oIEXy9yYdqWfqdrFAYAAr6syP8eLEFI7ZE4939antx2mNgPRW/o1ybm2SFYkbTVA==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.13.0", - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/typescript-estree": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3806,16 +1781,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz", - "integrity": "sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3823,25 +1798,25 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.13.0.tgz", - "integrity": "sha512-xMEtMzxq9eRkZy48XuxlBFzpVMDurUAfDu5Rz16GouAtXm0TaAoTFzqWUFPPuQYXI/CDaH/Bgx/fk/84t/Bc9A==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.13.0", - "@typescript-eslint/utils": "7.13.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3850,12 +1825,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz", - "integrity": "sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3863,22 +1838,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.0.tgz", - "integrity": "sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3891,62 +1866,47 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.0.tgz", - "integrity": "sha512-jceD8RgdKORVnB4Y6BqasfIkFhl4pajB1wVxrF4akxD2QPM8GNYjgGwEzYS+437ewlqqrg7Dw+6dhdpjMpeBFQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.13.0", - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/typescript-estree": "7.13.0" + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^7.0.0 || ^8.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.0.tgz", - "integrity": "sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@uiw/codemirror-themes": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-themes/-/codemirror-themes-4.22.2.tgz", - "integrity": "sha512-gsLHn6SUuV5iboBvGrM7YimzLFHQmsNlkGIYs3UaVUJTo/A/ZrKoSJNyPziShLRjBXA2UwKdBTIU6VhHyyaChw==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@codemirror/language": ">=6.0.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/view": ">=6.0.0" - } - }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -3972,10 +1932,19 @@ "vite": "^4.2.0 || ^5.0.0" } }, + "node_modules/@wailsio/runtime": { + "version": "3.0.0-alpha.25", + "resolved": "https://registry.npmjs.org/@wailsio/runtime/-/runtime-3.0.0-alpha.25.tgz", + "integrity": "sha512-IVL5o2D+IojoEVZSuhWykRqIBfKLCv+YDe9aT/1jdh6z9rXVQJCwa8qMIFWJktKLTmvpdB+b7WH7p0SiDM1l+w==", + "dev": true, + "dependencies": { + "nanoid": "^5.0.7" + } + }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -4057,17 +2026,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/aria-hidden": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", - "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -4199,9 +2157,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001632", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz", - "integrity": "sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==", + "version": "1.0.30001637", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001637.tgz", + "integrity": "sha512-1x0qRI1mD1o9e+7mBI7XtzFAP4XszbHaVWsMiGbSPLYekKTJF7K+FNk6AsXH4sUpc+qrsI3pVgf1Jdl/uGkuSQ==", "dev": true, "funding": [ { @@ -4285,363 +2243,12 @@ "node": ">=6" } }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cmdk": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.0.0.tgz", - "integrity": "sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==", - "dependencies": { - "@radix-ui/react-dialog": "1.0.5", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", - "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", - "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-context": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", - "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-dialog": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", - "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-controllable-state": "1.0.1", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", - "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-escape-keydown": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-focus-guards": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", - "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-focus-scope": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", - "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", - "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-portal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", - "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-presence": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", - "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", - "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", - "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", - "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", - "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", - "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/react-remove-scroll": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", - "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", - "dependencies": { - "react-remove-scroll-bar": "^2.3.3", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/codemirror": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz", - "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" } }, "node_modules/color-convert": { @@ -4679,11 +2286,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -4714,11 +2316,6 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "devOptional": true }, - "node_modules/dayjs": { - "version": "1.11.11", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", - "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" - }, "node_modules/debug": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", @@ -4742,11 +2339,6 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" - }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -4787,9 +2379,9 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/electron-to-chromium": { - "version": "1.4.799", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.799.tgz", - "integrity": "sha512-3D3DwWkRTzrdEpntY0hMLYwj7SeBk1138CkPE8sBDSj3WzrzOiG2rHm3luw8jucpf+WiyLBCZyU9lMHyQI9M9Q==", + "version": "1.4.812", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.812.tgz", + "integrity": "sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg==", "dev": true }, "node_modules/emoji-regex": { @@ -4920,6 +2512,15 @@ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz", + "integrity": "sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", @@ -5238,9 +2839,9 @@ "dev": true }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -5301,14 +2902,6 @@ "node": ">=6.9.0" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "engines": { - "node": ">=6" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -5469,14 +3062,6 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -5489,11 +3074,14 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5682,23 +3270,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash.castarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", - "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -5726,11 +3297,11 @@ } }, "node_modules/lucide-react": { - "version": "0.396.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.396.0.tgz", - "integrity": "sha512-N/zP+9vEfEYHiMWMpjwH/M5diaV0e4UFe07BpgdzaRYce5QvXi87hixf7F0Xqdr3zuX/9u7H/2D4MVXIK22O0A==", + "version": "0.397.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.397.0.tgz", + "integrity": "sha512-rUcbRY5jFP/4za/OJvaRUUmdPsPb940Tw9zE1ehrRZmr9JnkDcW8OV3POR3XfEAAMDkssiTc5IWBFv8Y//pkDQ==", "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0" + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/merge2": { @@ -5754,9 +3325,10 @@ } }, "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5775,25 +3347,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/mirrorshades": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/mirrorshades/-/mirrorshades-0.1.0.tgz", - "integrity": "sha512-9ovRfPwrbqsCwcMqRbxpcrtBpTTO9YilPMLCwE7+1MLQi8Q7VqpYtT+JzHrni/E8tYCCidjfLX5yDcBB/Ef9fQ==", - "funding": [ - { - "type": "patreon", - "url": "https://www.patreon.com/chrisatmachine" - }, - "https://getalby.com/p/chrisatmachine" - ], - "peerDependencies": { - "@codemirror/language": "^6.10.1", - "@codemirror/state": "^6.4.1", - "@codemirror/view": "^6.24.1", - "@lezer/highlight": "^1.2.0", - "typescript": ">=5.0.0" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -5811,9 +3364,10 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", + "dev": true, "funding": [ { "type": "github", @@ -5821,10 +3375,10 @@ } ], "bin": { - "nanoid": "bin/nanoid.cjs" + "nanoid": "bin/nanoid.js" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "^18 || >=20" } }, "node_modules/natural-compare": { @@ -5833,15 +3387,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/next-themes": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.3.0.tgz", - "integrity": "sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==", - "peerDependencies": { - "react": "^16.8 || ^17 || ^18", - "react-dom": "^16.8 || ^17 || ^18" - } - }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", @@ -5865,36 +3410,6 @@ "node": ">=0.10.0" } }, - "node_modules/nostr-tools": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-2.7.0.tgz", - "integrity": "sha512-jJoL2J1CBiKDxaXZww27nY/Wsuxzx7AULxmGKFce4sskDu1tohNyfnzYQ8BvDyvkstU8kNZUAXPL32tre33uig==", - "dependencies": { - "@noble/ciphers": "^0.5.1", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.1", - "@scure/base": "1.1.1", - "@scure/bip32": "1.3.1", - "@scure/bip39": "1.2.1" - }, - "optionalDependencies": { - "nostr-wasm": "v0.1.0" - }, - "peerDependencies": { - "typescript": ">=5.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/nostr-wasm": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/nostr-wasm/-/nostr-wasm-0.1.0.tgz", - "integrity": "sha512-78BTryCLcLYv96ONU8Ws3Q1JzjlAt+43pWQhIl86xZmWeegYCNLPml7yQ+gG3vR6V5h4XGj+TxO+SS5dsThQIA==", - "optional": true - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -5967,6 +3482,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -6198,7 +3718,7 @@ "postcss": "^8.2.14" } }, - "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "node_modules/postcss-selector-parser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", @@ -6210,24 +3730,28 @@ "node": ">=4" } }, - "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -6377,35 +3901,6 @@ "react": "^18.3.1" } }, - "node_modules/react-hook-form": { - "version": "7.52.0", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.52.0.tgz", - "integrity": "sha512-mJX506Xc6mirzLsmXUJyqlAI3Kj9Ph2RhplYhUVffeOQSnubK2uVqBFOBJmvKikvbFV91pxVXmDiR+QMF19x6A==", - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/react-hook-form" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17 || ^18 || ^19" - } - }, - "node_modules/react-intersection-observer": { - "version": "9.10.3", - "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.10.3.tgz", - "integrity": "sha512-9NYfKwPZRovB6QJee7fDg0zz/SyYrqXtn5xTZU0vwLtLVBtfu9aZt1pVmr825REE49VPDZ7Lm5SNHjJBOTZHpA==", - "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -6415,51 +3910,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-remove-scroll": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", - "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", - "dependencies": { - "react-remove-scroll-bar": "^2.3.4", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", - "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", - "dependencies": { - "react-style-singleton": "^2.2.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/react-resizable-panels": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-2.0.19.tgz", @@ -6469,58 +3919,6 @@ "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/react-router": { - "version": "6.24.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.24.0.tgz", - "integrity": "sha512-sQrgJ5bXk7vbcC4BxQxeNa5UmboFm35we1AFK0VvQaz9g0LzxEIuLOhHIoZ8rnu9BO21ishGeL9no1WB76W/eg==", - "dependencies": { - "@remix-run/router": "1.17.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.24.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.24.0.tgz", - "integrity": "sha512-960sKuau6/yEwS8e+NVEidYQb1hNjAYM327gjEyXlc6r3Skf2vtwuJ2l7lssdegD2YjoKG5l8MsVyeTDlVeY8g==", - "dependencies": { - "@remix-run/router": "1.17.0", - "react-router": "6.24.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", - "dependencies": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -6711,15 +4109,6 @@ "node": ">=8" } }, - "node_modules/sonner": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sonner/-/sonner-1.5.0.tgz", - "integrity": "sha512-FBjhG/gnnbN6FY0jaNnqZOMmB73R+5IiyYAw8yBj7L54ER7HB3fOSE5OFiQiE2iXWxeXKvg6fIP4LtVppHEdJA==", - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, "node_modules/source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", @@ -6823,11 +4212,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/style-mod": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", - "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==" - }, "node_modules/sucrase": { "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", @@ -6850,14 +4234,15 @@ } }, "node_modules/sucrase/node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", + "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { @@ -6870,6 +4255,20 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -6949,18 +4348,6 @@ "tailwindcss": ">=3.0.0 || insiders" } }, - "node_modules/tailwindcss/node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -7023,11 +4410,6 @@ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, - "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -7056,6 +4438,7 @@ "version": "5.5.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz", "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==", + "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7109,69 +4492,6 @@ "punycode": "^2.1.0" } }, - "node_modules/use-callback-ref": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", - "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/usehooks-ts": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-3.1.0.tgz", - "integrity": "sha512-bBIa7yUyPhE1BCc0GmR96VU/15l/9gP1Ch5mYdLcFBaFGQsdmXkvjV0TtOqW1yUd6VjIwDunm+flSciCQXujiw==", - "dependencies": { - "lodash.debounce": "^4.0.8" - }, - "engines": { - "node": ">=16.15.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17 || ^18" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -7232,11 +4552,6 @@ } } }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -7411,41 +4726,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zod": { - "version": "3.23.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", - "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zustand": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.2.tgz", - "integrity": "sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==", - "dependencies": { - "use-sync-external-store": "1.2.0" - }, - "engines": { - "node": ">=12.7.0" - }, - "peerDependencies": { - "@types/react": ">=16.8", - "immer": ">=9.0.6", - "react": ">=16.8" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - } - } } } } diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 00000000..85f3fe5b --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,47 @@ +{ + "name": "react-ts-latest", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@radix-ui/react-accordion": "^1.2.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-scroll-area": "^1.1.0", + "@radix-ui/react-slot": "^1.1.0", + "@tanstack/react-query": "^5.48.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "lucide-react": "^0.397.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-resizable-panels": "^2.0.19", + "tailwind-merge": "^2.3.0", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@ianvs/prettier-plugin-sort-imports": "^4.3.0", + "@types/node": "^20.14.9", + "@types/react": "^18.2.43", + "@types/react-dom": "^18.2.17", + "@typescript-eslint/eslint-plugin": "^6.14.0", + "@typescript-eslint/parser": "^6.14.0", + "@vitejs/plugin-react": "^4.2.1", + "@wailsio/runtime": "latest", + "autoprefixer": "^10.4.19", + "eslint": "^8.55.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.5", + "postcss": "^8.4.38", + "prettier": "^3.3.2", + "prettier-plugin-tailwindcss": "^0.6.5", + "tailwindcss": "^3.4.4", + "typescript": "^5.2.2", + "vite": "^5.0.8" + } +} diff --git a/postcss.config.js b/frontend/postcss.config.js similarity index 100% rename from postcss.config.js rename to frontend/postcss.config.js diff --git a/prettier.config.cjs b/frontend/prettier.config.cjs similarity index 100% rename from prettier.config.cjs rename to frontend/prettier.config.cjs diff --git a/frontend/public/Inter-Medium.ttf b/frontend/public/Inter-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a01f3777a6fc284b7a720c0f8248a27066389ef9 GIT binary patch literal 315132 zcmd>{3Ajzw|M0(S?X!n-?sds<&AMdHJY`De%rlit*Gxz*k|ZQaMWm8sCL|H5Orgje zLX;sYN}^G@hWmcjK4)L_tKaY+-sgFr_ul8T*4k_QuJ8KpwfA0opS?wiNG6<+$lZ18 z)h}DV>>3eWoroNFw`kt_=)7a6M2)O0s^ph46$l{1e>k6gWyQwEyWNY9Gz_3HOX&vyAf z)S{Q>5MAJ8?;gqBOFo}`FX>%Kuhg4}e4BH=#y0Xu!QTA`56g7y>@Ol2dy5p=(eJ@- z$>AZbE{NPwf$hEhlZOqA#4CsVv?oaelKb~){O#aW5vPqvIP<^B5&SN zzrXqG{ycsElt;op`!QDN*v#5b&hDJC`frju&adR?&uep=z_GS14*mY-l@WRR#%E^J z5gn_;)b6n*lGS$$ihj6P@4+ggNJ_r}gHSL1OfsF!hHQL}O9s)M+nsb6q^Qx|dn(6vPA zI=TUFBi#nKoleH>rm-LWq<#hWRsAaNOuY_wquz}Bk=}y4L+`}htv|#4+^Q|gs%JIC zZDKuyJJ=e6`-n9Tcf7Rn$I0&?vs26| zhFiiZfm_XC?3_kUBivR_Pu$*4Z`=o*2XF^C18^U9hKc1o;ygllxHE$A80QJxxz0jS zuIEyxThJ|tTgUBy+u7}m`?&iA?o;klxKF!J<38g~!kywy!JX<(#hvD&2lrK%QFa%* zi*es@m*OsSm*cK3;-OD(xHp{e)}Vk zj}jgoW^}?YgkQj&9-fZ-es~?J8^W6i?+WiGygz&h_el5{?w4U|4u2c|7WaG@4Tpb< z&3F~`P%|^Jmxw&?#K*!)a@fDd!depS)3LB6rR?`&;m{3vY^h|U1HT@J_`b2QD{bt= zSlAQKPKbrWk`y{03&#=O6AQ=R5YC{ItYxwI1gT)5Z@>Ob60rux!na7g)jbx@d_A7& zF41ZhjaN$YSmk12Emid&v9Kle_1m#?vid~S~a&&R@fB%ch5h4XS)iH$F^BublD{H+{eYRAG!9CZrB!ugRWM=V@`kdUjN zBuh7WfLsk_FyVgEhwba}^<)_FgGi|@50cvbPdWcF{jc){v8|mem2h13VpUJrSMT9Ty>3?!}(7+ojH-SDu#-J4JfsYA$L->-WxHJI`PNg0eR zrk)%OnM*bDYd9+u%CMXc}>W)X;S;MZTi-o7KTVyUt%M{ zpqpyy=F2mb5@zI$)P2a=gfb8NwcIE}lbcEgd7JyvnwADob^xWW$D|N5?1t^0zAS_O zQtAi&vUMquf)xFc*ywzS->W{9Gc5#~G(9rbkmBnx1>HsEAMVR+MkEQ{8BLp>rLbir zGrCS9&XgYD_t!`p9oeqL4kG72YyWz`jLr6f!IZesh8y~=80{Nt9gJqGN@@O6kj9Lc zv5gcd1xCxI{5E@$-W-c)!v1aS(MVgL6eDkvv?kP((8K7#*oWzf$r0U;dyvc6hZ(zQ zpG@0PYchFTv)7wZyDs_ln$4cljk3`iN|37^TSfn*nUt7Tjja8l6mAc+*oxXs%n;lp+B0Ju?NN%a&mjNx zQA%QOYv@ZAwTBy1qIx#6N9RXVm)WNV`Ln4R6=O?*1lLQJyvZW|tkd#HTL!IG;ff$? zK_%HvmWsrckxH~t1`Xbrs}-Zz6sjSqu?f?oo7-qboY_;%TtDcBTuC=cQU@IjWS%m1 z7|f>SXw48EVPi4Z+enfY7y8oNVG@2$=8*Bb|Yth z#wE~FX<80?P)sDQpt&yPN^GUn|6ii|e_rpkJ?_f1l28#`I0oDP{d)d+`M8MGzY({b zoVDP42V>h{^2j=f$(R9Lo&d7Uiy12EF<#m^3% zk;mAc3tNaQ3?C4lt$)Av9sZ_hKH0z`#ŹD@)<7ltOtn$SSm;LMTrPEA?sR43d= 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�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 literal 0 HcmV?d00001 diff --git a/frontend/public/react.svg b/frontend/public/react.svg new file mode 100644 index 00000000..6c87de9b --- /dev/null +++ b/frontend/public/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/public/style.css b/frontend/public/style.css new file mode 100644 index 00000000..a36cce4f --- /dev/null +++ b/frontend/public/style.css @@ -0,0 +1,160 @@ +:root { + font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", + "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", + sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: rgba(27, 38, 54, 1); + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +* { + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; +} + +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 400; + src: local(""), + url("./Inter-Medium.ttf") format("truetype"); +} + +h3 { + font-size: 3em; + line-height: 1.1; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} + +a:hover { + color: #535bf2; +} + +button { + width: 60px; + height: 30px; + line-height: 30px; + border-radius: 3px; + border: none; + margin: 0 0 0 20px; + padding: 0 8px; + cursor: pointer; +} + +.result { + height: 20px; + line-height: 20px; +} + +body { + margin: 0; + display: flex; + place-items: center; + place-content: center; + min-width: 320px; + min-height: 100vh; +} + +.container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} + +.logo:hover { + filter: drop-shadow(0 0 2em #e80000aa); +} + +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +.result { + height: 20px; + line-height: 20px; + margin: 1.5rem auto; + text-align: center; +} + +.footer { + margin-top: 1rem; + align-content: center; + text-align: center; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + + a:hover { + color: #747bff; + } + + button { + background-color: #f9f9f9; + } +} + + +.input-box .btn:hover { + background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%); + color: #333333; +} + +.input-box .input { + border: none; + border-radius: 3px; + outline: none; + height: 30px; + line-height: 30px; + padding: 0 10px; + color: black; + background-color: rgba(240, 240, 240, 1); + -webkit-font-smoothing: antialiased; +} + +.input-box .input:hover { + border: none; + background-color: rgba(255, 255, 255, 1); +} + +.input-box .input:focus { + border: none; + background-color: rgba(255, 255, 255, 1); +} diff --git a/frontend/public/wails.png b/frontend/public/wails.png new file mode 100644 index 0000000000000000000000000000000000000000..8bdf424833bfb5b6b34a0807224e94533f738f2e GIT binary patch literal 9057 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 + + +
+ {/* One */} + + +
+
+ + +
+ Two +
+
+ + +
+ Three +
+
+
+ + ); +} diff --git a/frontend/src/components/sidebar/AllNotesButton.tsx b/frontend/src/components/sidebar/AllNotesButton.tsx new file mode 100644 index 00000000..a23ac45c --- /dev/null +++ b/frontend/src/components/sidebar/AllNotesButton.tsx @@ -0,0 +1,35 @@ +// import { useQueryClient } from "@tanstack/react-query"; +// import { useAppContext } from "~/store"; +import { NotepadText } from "lucide-react"; + +export default function AllNotes() { + const activeTag = undefined; + const filter = "all"; + // const { filter, activeTag, setFilter, setActiveTag, setCurrentNote, setCurrentTrashedNote } = useAppContext(); + // const queryClient = useQueryClient(); + + // const handleSetAllNotes = async ( + // e: React.MouseEvent, + // ) => { + // e.preventDefault(); + // + // if (filter === "trashed" || filter === "archived") { + // setCurrentNote(undefined); + // } + // + // setFilter("all"); + // setActiveTag(undefined); + // setCurrentTrashedNote(undefined); + // await queryClient.invalidateQueries({ queryKey: ["notes"] }); + // }; + + return ( +
+ + All Notes +
+ ); +} diff --git a/src/components/context/ContextSidebar.tsx b/frontend/src/components/sidebar/Sidebar.tsx similarity index 52% rename from src/components/context/ContextSidebar.tsx rename to frontend/src/components/sidebar/Sidebar.tsx index 692c0370..aa634ba5 100644 --- a/src/components/context/ContextSidebar.tsx +++ b/frontend/src/components/sidebar/Sidebar.tsx @@ -1,34 +1,33 @@ -import { useQuery } from "@tanstack/react-query"; -import { listTags } from "~/api"; +// import { useQuery } from "@tanstack/react-query"; +// import { listTags } from "~/api"; import { Accordion, - AccordionContent, + // AccordionContent, AccordionItem, AccordionTrigger, } from "~/components/ui/accordion"; import { ScrollArea } from "~/components/ui/scroll-area"; import { TagsIcon } from "lucide-react"; -import AllNotes from "./AllNotes"; -import Login from "./Login"; -import TagItem from "./TagItem"; -import TrashedNotes from "./TrashedNotes"; -import DeleteTagDialog from "../tags/DeleteTagDialog"; +// import DeleteTagDialog from "../tags/DeleteTagDialog"; +import AllNotesButton from "~/components/sidebar/AllNotesButton"; +// import Login from "./Login"; +// import TagItem from "./TagItem"; +// import TrashedNotes from "./TrashedNotes"; export default function ContextSidebar() { + // async function fetchTags() { + // const apiResponse = await listTags({}); + // if (apiResponse.data) { + // return apiResponse.data; + // } + // } - async function fetchTags() { - const apiResponse = await listTags({}); - if (apiResponse.data) { - return apiResponse.data; - } - } - - const { data } = useQuery({ - queryKey: ["tags"], - queryFn: fetchTags, - refetchOnWindowFocus: false, - }); + // const { data } = useQuery({ + // queryKey: ["tags"], + // queryFn: fetchTags, + // refetchOnWindowFocus: false, + // }); // const handleSettings = () => { // console.log("settings"); @@ -39,8 +38,8 @@ export default function ContextSidebar() {
{/* */} - - + + {/* */} @@ -49,15 +48,15 @@ export default function ContextSidebar() { Tags
- - - {data?.map((tag) => )} - + {/* */} + {/* */} + {/* {data?.map((tag) => )} */} + {/* */}
- + {/* */} ); } diff --git a/frontend/src/components/sidebar/TagItem.tsx b/frontend/src/components/sidebar/TagItem.tsx new file mode 100644 index 00000000..e69de29b diff --git a/frontend/src/components/sidebar/TrashNotes.tsx b/frontend/src/components/sidebar/TrashNotes.tsx new file mode 100644 index 00000000..e69de29b diff --git a/src/components/theme/ThemeProvider.tsx b/frontend/src/components/theme/theme-provider.tsx similarity index 100% rename from src/components/theme/ThemeProvider.tsx rename to frontend/src/components/theme/theme-provider.tsx diff --git a/src/components/ui/accordion.tsx b/frontend/src/components/ui/accordion.tsx similarity index 96% rename from src/components/ui/accordion.tsx rename to frontend/src/components/ui/accordion.tsx index 3e05513e..a211f3e3 100644 --- a/src/components/ui/accordion.tsx +++ b/frontend/src/components/ui/accordion.tsx @@ -26,7 +26,7 @@ const AccordionTrigger = React.forwardRef< svg]:rotate-180", + "flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180", className )} {...props} diff --git a/src/components/ui/button.tsx b/frontend/src/components/ui/button.tsx similarity index 100% rename from src/components/ui/button.tsx rename to frontend/src/components/ui/button.tsx diff --git a/src/components/ui/input.tsx b/frontend/src/components/ui/input.tsx similarity index 100% rename from src/components/ui/input.tsx rename to frontend/src/components/ui/input.tsx diff --git a/src/components/ui/resizable.tsx b/frontend/src/components/ui/resizable.tsx similarity index 100% rename from src/components/ui/resizable.tsx rename to frontend/src/components/ui/resizable.tsx diff --git a/src/components/ui/scroll-area.tsx b/frontend/src/components/ui/scroll-area.tsx similarity index 100% rename from src/components/ui/scroll-area.tsx rename to frontend/src/components/ui/scroll-area.tsx diff --git a/frontend/src/lib/utils.ts b/frontend/src/lib/utils.ts new file mode 100644 index 00000000..d084ccad --- /dev/null +++ b/frontend/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx new file mode 100644 index 00000000..8ef8aaea --- /dev/null +++ b/frontend/src/main.tsx @@ -0,0 +1,13 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import App from "./App"; +import "~/styles/globals.css"; +import { ThemeProvider } from "~/components/theme/theme-provider"; + +ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( + + + + + , +); diff --git a/frontend/src/styles/globals.css b/frontend/src/styles/globals.css new file mode 100644 index 00000000..c08012e0 --- /dev/null +++ b/frontend/src/styles/globals.css @@ -0,0 +1,76 @@ +@tailwind base; + @tailwind components; + @tailwind utilities; + + @layer base { + :root { + --background: 0 0% 100%; + --foreground: 0 0% 3.9%; + + --card: 0 0% 100%; + --card-foreground: 0 0% 3.9%; + + --popover: 0 0% 100%; + --popover-foreground: 0 0% 3.9%; + + --primary: 0 0% 9%; + --primary-foreground: 0 0% 98%; + + --secondary: 0 0% 96.1%; + --secondary-foreground: 0 0% 9%; + + --muted: 0 0% 96.1%; + --muted-foreground: 0 0% 45.1%; + + --accent: 0 0% 96.1%; + --accent-foreground: 0 0% 9%; + + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + + --border: 0 0% 89.8%; + --input: 0 0% 89.8%; + --ring: 0 0% 3.9%; + + --radius: 0.5rem; + } + + .dark { + --background: 0 0% 3.9%; + --foreground: 0 0% 98%; + + --card: 0 0% 3.9%; + --card-foreground: 0 0% 98%; + + --popover: 0 0% 3.9%; + --popover-foreground: 0 0% 98%; + + --primary: 0 0% 98%; + --primary-foreground: 0 0% 9%; + + --secondary: 0 0% 14.9%; + --secondary-foreground: 0 0% 98%; + + --muted: 0 0% 14.9%; + --muted-foreground: 0 0% 63.9%; + + --accent: 0 0% 14.9%; + --accent-foreground: 0 0% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + + --border: 0 0% 14.9%; + --input: 0 0% 14.9%; + --ring: 0 0% 83.1%; + } + } + + @layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } + } diff --git a/src/vite-env.d.ts b/frontend/src/vite-env.d.ts similarity index 100% rename from src/vite-env.d.ts rename to frontend/src/vite-env.d.ts diff --git a/tailwind.config.js b/frontend/tailwind.config.js similarity index 88% rename from tailwind.config.js rename to frontend/tailwind.config.js index 4399ce7e..7cb7e37a 100644 --- a/tailwind.config.js +++ b/frontend/tailwind.config.js @@ -1,7 +1,12 @@ /** @type {import('tailwindcss').Config} */ module.exports = { darkMode: ["class"], - content: ["./index.html", "./src/**/*.{ts,tsx}"], + content: [ + './pages/**/*.{ts,tsx}', + './components/**/*.{ts,tsx}', + './app/**/*.{ts,tsx}', + './src/**/*.{ts,tsx}', + ], prefix: "", theme: { container: { @@ -47,6 +52,11 @@ module.exports = { foreground: "hsl(var(--card-foreground))", }, }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", + }, keyframes: { "accordion-down": { from: { height: "0" }, @@ -58,16 +68,10 @@ module.exports = { }, }, animation: { - "accordion-down": "accordion-down 0.1s ease-in-out", - "accordion-up": "accordion-up 0.1s ease-in-out", - }, - - borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)", + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", }, }, }, plugins: [require("tailwindcss-animate")], -}; +} \ No newline at end of file diff --git a/tsconfig.json b/frontend/tsconfig.json similarity index 58% rename from tsconfig.json rename to frontend/tsconfig.json index f10536ea..302a49cc 100644 --- a/tsconfig.json +++ b/frontend/tsconfig.json @@ -2,13 +2,13 @@ "compilerOptions": { "target": "ES2020", "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], + "lib": [ + "ES2020", + "DOM", + "DOM.Iterable" + ], "module": "ESNext", "skipLibCheck": true, - "baseUrl": ".", - "paths": { - "~/*": ["./src/*"] - }, /* Bundler mode */ "moduleResolution": "bundler", "allowImportingTsExtensions": true, @@ -19,25 +19,19 @@ /* Linting */ "strict": true, "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true + "noUnusedParameters": false, + "noImplicitAny": false, + "noFallthroughCasesInSwitch": true, + /* Shadcn */ + "baseUrl": ".", + "paths": { + "~/*": [ + "./src/*" + ] + } }, "include": [ - "src", - ".eslintrc.cjs", - "**/*.ts", - "**/*.tsx", - "**/*.cjs", - "**/*.js" - ], - "exclude": [ - "node_modules", - "dist", - "build", - "coverage", - "public", - "vite.config.ts", - "vite.config.d.ts" + "src" ], "references": [ { diff --git a/tsconfig.node.json b/frontend/tsconfig.node.json similarity index 100% rename from tsconfig.node.json rename to frontend/tsconfig.node.json diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts new file mode 100644 index 00000000..7f7fcfd9 --- /dev/null +++ b/frontend/vite.config.ts @@ -0,0 +1,12 @@ +import path from "path"; +import react from "@vitejs/plugin-react"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [react()], + resolve: { + alias: { + "~": path.resolve(__dirname, "./src"), + }, + }, +}); diff --git a/go.mod b/go.mod new file mode 100644 index 00000000..22626485 --- /dev/null +++ b/go.mod @@ -0,0 +1,54 @@ +module changeme + +go 1.22.4 + +require ( + github.com/mattn/go-sqlite3 v1.14.22 + github.com/wailsapp/wails/v3 v3.0.0-alpha.4 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect + github.com/bep/debounce v1.2.1 // indirect + github.com/cloudflare/circl v1.3.7 // indirect + github.com/cyphar/filepath-securejoin v0.2.4 // indirect + github.com/ebitengine/purego v0.4.0-alpha.4 // indirect + github.com/emirpasic/gods v1.18.1 // indirect + github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect + github.com/go-git/go-billy/v5 v5.5.0 // indirect + github.com/go-git/go-git/v5 v5.11.0 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/godbus/dbus/v5 v5.1.0 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/google/uuid v1.3.0 // indirect + github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect + github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e // indirect + github.com/kevinburke/ssh_config v1.2.0 // indirect + github.com/leaanthony/go-ansi-parser v1.6.1 // indirect + github.com/leaanthony/u v1.1.0 // indirect + github.com/lmittmann/tint v1.0.4 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/pjbgf/sha1cd v0.3.0 // indirect + github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/samber/lo v1.38.1 // indirect + github.com/sergi/go-diff v1.2.0 // indirect + github.com/skeema/knownhosts v1.2.1 // indirect + github.com/wailsapp/go-webview2 v1.0.9 // indirect + github.com/wailsapp/mimetype v1.4.1 // indirect + github.com/xanzy/ssh-agent v0.3.3 // indirect + golang.org/x/crypto v0.23.0 // indirect + golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/net v0.25.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/tools v0.21.0 // indirect + gopkg.in/warnings.v0 v0.1.2 // indirect +) + +replace github.com/wailsapp/wails/v3 => ../wails/v3 diff --git a/greetservice.go b/greetservice.go new file mode 100644 index 00000000..8972c39c --- /dev/null +++ b/greetservice.go @@ -0,0 +1,7 @@ +package main + +type GreetService struct{} + +func (g *GreetService) Greet(name string) string { + return "Hello " + name + "!" +} diff --git a/main.go b/main.go new file mode 100644 index 00000000..01182dcb --- /dev/null +++ b/main.go @@ -0,0 +1,65 @@ +package main + +import ( + "embed" + _ "embed" + "log" + + "database/sql" + + "github.com/wailsapp/wails/v3/pkg/application" + + _ "github.com/mattn/go-sqlite3" +) + +//go:embed frontend/dist +var assets embed.FS + +//go:embed sql/schema.sql +var ddl string + +func main() { + + ctx := context.Background() + + db, err := sql.Open("sqlite3", ":memory:") + if err != nil { + return err + } + + // create tables + if _, err := db.ExecContext(ctx, ddl); err != nil { + return err + } + + app := application.New(application.Options{ + Name: "captains-log", + Description: "A demo of using raw HTML & CSS", + Services: []application.Service{ + application.NewService(&NoteService{}), + }, + Assets: application.AssetOptions{ + Handler: application.AssetFileServerFS(assets), + }, + Mac: application.MacOptions{ + ApplicationShouldTerminateAfterLastWindowClosed: true, + }, + }) + + app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{ + Title: "Window 1", + Mac: application.MacWindow{ + InvisibleTitleBarHeight: 50, + Backdrop: application.MacBackdropTranslucent, + TitleBar: application.MacTitleBarHiddenInset, + }, + BackgroundColour: application.NewRGB(27, 38, 54), + URL: "/", + }) + + err := app.Run() + + if err != nil { + log.Fatal(err) + } +} diff --git a/notes.db b/notes.db new file mode 100644 index 0000000000000000000000000000000000000000..9f8fc0c5680ac6d1c8983c6c24f0aeb1de8a7302 GIT binary patch literal 90112 zcmeI)%TF6e9KiA205&!cLlW4k5n`$y>{TEb5UP}1N?=K?5R(|wgtU@tU?E!`PVhp~ zv`S@CRqCNq4?XnIKcJT$d#%*}ChDb9Rpru4XU1Wx4j5OCzZn?(&KT|S zjKSXre;D{>aHqdCaMJfve>(bo$ftL~33WSse|BU0%_=bmUiORS_t^-PhF zm)ZA5Le}hv`M6f7pO*!09=dto-OA;CbvV*iX3I&cSd}Ca^$YE#iyeP#;m#MPrrKux3cOhiGXPIBt$~h?bZZWrC*z&eL-A0{op{>BS^Hjk)Q6w6!wm&`} zvgR!F^Og$gq3CPQcPPJpT0`;mMEj$mur)SjmLh(BW6!PPSHBNcO3lt+Uv?V0CMtyN z9g%hJWyS4G>ehT_UEFlmCuI6@e(%WDIZ=CRIAkr1nTBq9@zI`qA*ZAv20PVP$&V+zEjhBY&J8EiTyycMxW2q{-F`e!u5qlT zMj4;)9{BYdD+vRgYOLgUu5mLtAvUMwb4EUA?PvXAD;_sX*IFu;Gq7H%Jm~LKq0EaX zitdiLH6eWWaDPHPl>IT$7-nO(-9r6oU)ZwkQ>gQPzTSW>dDPdb1uC<1yc>Ik&D}C` zX*?RX#>ab4TKctCPo;(rQYR;2VK*oH zc`dEiFlSL^)F)JPdc!=fXGHCj;fU^z=Q1QY>-@uf@qt__bQ78mqD>f0S-Nefk2f*D zmR(7u<+Zn*bhg@X)#%FL)J-lAx$+!NuVh7fZF#vR7CpZk^QtY7KS{UcEv;mn)Qz-S z2Sh@JA}h2-##wSQPI|#vt*&hk8s9kzDta{Bn8L16XMP00# z7kis5YRRwWpw{oUmN)cXTb}IZJ8O;%NUilzd%8DdIpdvHv|6Kb)3x15=~<5s?D@@F zU^(>?qt4Jfp|-$uvJOn2)ZB6M+Lo?tSb=Nua+d1zY}KXzscYH_s1)4TwJIJVSHDwx zb~^NLW;))oncfYTrnR<6f`&k?;1okahX8xvm4OyfzlyM@R0#rrUDZ z)f9G1rXHCS@=E*Uf*H0f%lxXRHqi7SE1qk*UJWVPS+C$G?fs)-%b=?c@RsDtYS})? ze9zx|#ktqGdbUl>hesQGo?bR9i;?QRdZHW?>XN9fZt~68kA~cMAb|9@%3UcQC^sS*JM5I_I{1Q0*~0R#|0009L4M}c0m%Zlhv zI;i`9`JsOv2q1s}0tg_000IagfB*srAP``IsEUpI{{Z(ep&@_(0tg_000IagfB*sr zAW;4%f875w5)eQD0R#|0009ILKmY**5D2ya@Bat8e~AtO1Q0*~0R#|0009ILKmY+H zz~BEf4iG>90R#|0009ILKmY**5D2~i@BatCkBJZg1Q0*~0R#|0009ILKmY;W|7Q#! zfB*srAb!C1p2xznaA#7(JLHu^ZtK;I+jonKmY**5I_I{1Q0*~0R#}}Ai)3s>i|PC z0tg_000IagfB*srAb&~8|2K3%5H - - - - - diff --git a/public/vite.svg b/public/vite.svg deleted file mode 100644 index e7b8dfb1..00000000 --- a/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/service/noteservice.go b/service/noteservice.go new file mode 100644 index 00000000..e69de29b diff --git a/sql/queries/note_tags.sql b/sql/queries/note_tags.sql new file mode 100644 index 00000000..e69de29b diff --git a/sql/queries/notebooks.sql b/sql/queries/notebooks.sql new file mode 100644 index 00000000..67d1f3cc --- /dev/null +++ b/sql/queries/notebooks.sql @@ -0,0 +1,24 @@ +-- Notebook Queries + +-- name: CreateNotebook :one +INSERT INTO notebooks (name, created_at) +VALUES (?, ?) +RETURNING id, name, created_at; + +-- name: GetNotebook :one +SELECT id, name, created_at +FROM notebooks +WHERE id = ?; + +-- name: ListNotebooks :many +SELECT id, name, created_at +FROM notebooks; + +-- name: UpdateNotebook :exec +UPDATE notebooks +SET name = ?, created_at = ? +WHERE id = ?; + +-- name: DeleteNotebook :exec +DELETE FROM notebooks WHERE id = ?; + diff --git a/sql/queries/notes.sql b/sql/queries/notes.sql new file mode 100644 index 00000000..cf02f49e --- /dev/null +++ b/sql/queries/notes.sql @@ -0,0 +1,23 @@ +-- Note Queries + +-- name: CreateNote :one +INSERT INTO notes (status_id, notebook_id, content, title, created_at, modified_at, published_at, published_id) +VALUES (?, ?, ?, ?, ?, ?, ?, ?) +RETURNING id, status_id, notebook_id, content, title, created_at, modified_at, published_at, published_id; + +-- name: GetNote :one +SELECT id, status_id, notebook_id, content, title, created_at, modified_at, published_at, published_id +FROM notes +WHERE id = ?; + +-- name: ListNotes :many +SELECT id, status_id, notebook_id, content, title, created_at, modified_at, published_at, published_id +FROM notes; + +-- name: UpdateNote :exec +UPDATE notes +SET status_id = ?, notebook_id = ?, content = ?, title = ?, modified_at = ?, published_at = ?, published_id = ? +WHERE id = ?; + +-- name: DeleteNote :exec +DELETE FROM notes WHERE id = ?; diff --git a/sql/queries/notes_fts.sql b/sql/queries/notes_fts.sql new file mode 100644 index 00000000..e69de29b diff --git a/sql/queries/settings.sql b/sql/queries/settings.sql new file mode 100644 index 00000000..86c6bdb4 --- /dev/null +++ b/sql/queries/settings.sql @@ -0,0 +1,20 @@ +-- Settings Queries + +-- name: CreateSetting :one +INSERT INTO settings (key, value) +VALUES (?, ?) +RETURNING key, value; + +-- name: GetSetting :one +SELECT key, value +FROM settings +WHERE key = ?; + +-- name: UpdateSetting :exec +UPDATE settings +SET value = ? +WHERE key = ?; + +-- name: DeleteSetting :exec +DELETE FROM settings WHERE key = ?; + diff --git a/sql/queries/tags.sql b/sql/queries/tags.sql new file mode 100644 index 00000000..3eec49b9 --- /dev/null +++ b/sql/queries/tags.sql @@ -0,0 +1,24 @@ +-- Tag Queries + +-- name: CreateTag :one +INSERT INTO tags (name, color, icon, created_at) +VALUES (?, ?, ?, ?) +RETURNING id, name, color, icon, created_at; + +-- name: GetTag :one +SELECT id, name, color, icon, created_at +FROM tags +WHERE id = ?; + +-- name: ListTags :many +SELECT id, name, color, icon, created_at +FROM tags; + +-- name: UpdateTag :exec +UPDATE tags +SET name = ?, color = ?, icon = ?, created_at = ? +WHERE id = ?; + +-- name: DeleteTag :exec +DELETE FROM tags WHERE id = ?; + diff --git a/sql/queries/trashed_notes.sql b/sql/queries/trashed_notes.sql new file mode 100644 index 00000000..0a1d6e55 --- /dev/null +++ b/sql/queries/trashed_notes.sql @@ -0,0 +1,19 @@ +-- Trashed Note Queries + +-- name: TrashNote :exec +INSERT INTO trashed_notes (note_id, content, created_at, trashed_at) +VALUES (?, ?, ?, ?) +RETURNING id, note_id, content, created_at, trashed_at; + +-- name: GetTrashedNote :one +SELECT id, note_id, content, created_at, trashed_at +FROM trashed_notes +WHERE id = ?; + +-- name: ListTrashedNotes :many +SELECT id, note_id, content, created_at, trashed_at +FROM trashed_notes; + +-- name: DeleteTrashedNote :exec +DELETE FROM trashed_notes WHERE id = ?; + diff --git a/sql/schema.sql b/sql/schema.sql new file mode 100644 index 00000000..64c66adb --- /dev/null +++ b/sql/schema.sql @@ -0,0 +1,67 @@ +CREATE TABLE IF NOT EXISTS notes ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + status_id INTEGER, + notebook_id INTEGER, + content TEXT NOT NULL, + title TEXT NOT NULL, + created_at TEXT NOT NULL, + modified_at TEXT NOT NULL, + published_at TEXT, + published_id TEXT +); + +CREATE TABLE IF NOT EXISTS tags ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + color TEXT, + icon TEXT, + created_at TEXT NOT NULL, + UNIQUE (name) +); + +CREATE TABLE IF NOT EXISTS note_tags ( + note_id INTEGER, + tag_id INTEGER, + PRIMARY KEY (note_id, tag_id), + FOREIGN KEY (note_id) REFERENCES notes (id) ON DELETE CASCADE, + FOREIGN KEY (tag_id) REFERENCES tags (id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS notebooks ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + created_at TEXT NOT NULL, + UNIQUE (name) +); + +CREATE TABLE IF NOT EXISTS trashed_notes ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + note_id INTEGER, + content TEXT NOT NULL, + created_at TEXT NOT NULL, + trashed_at TEXT NOT NULL, + FOREIGN KEY (note_id) REFERENCES notes (id) ON DELETE CASCADE +); + +CREATE VIRTUAL TABLE IF NOT EXISTS notes_fts USING fts5 ( + content, + notebook_id UNINDEXED, + created_at UNINDEXED, + modified_at UNINDEXED +); + +CREATE TABLE IF NOT EXISTS settings ( + key TEXT PRIMARY KEY, + value TEXT +); + +CREATE INDEX IF NOT EXISTS idx_notes_created_at ON notes (created_at); + +CREATE INDEX IF NOT EXISTS idx_notes_modified_at ON notes (modified_at); + +CREATE INDEX IF NOT EXISTS idx_tags_name ON tags (name); + +CREATE INDEX IF NOT EXISTS idx_tags_created_at ON tags (created_at); + +CREATE INDEX IF NOT EXISTS idx_settings_key ON settings (key); + diff --git a/sqlc.yml b/sqlc.yml new file mode 100644 index 00000000..115318fe --- /dev/null +++ b/sqlc.yml @@ -0,0 +1,9 @@ +version: "2" +sql: + - engine: "sqlite" + queries: "sql/queries/" + schema: "sql/schema.sql" + gen: + go: + package: "db" + out: "db" diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore deleted file mode 100644 index f4dfb82b..00000000 --- a/src-tauri/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# Generated by Cargo -# will have compiled files and executables -/target/ - diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock deleted file mode 100644 index d6fe03b8..00000000 --- a/src-tauri/Cargo.lock +++ /dev/null @@ -1,5721 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - -[[package]] -name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anyhow" -version = "1.0.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" - -[[package]] -name = "async-broadcast" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" -dependencies = [ - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928" -dependencies = [ - "concurrent-queue", - "event-listener 5.3.0", - "event-listener-strategy 0.5.1", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-executor" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand 2.0.2", - "futures-lite 2.3.0", - "slab", -] - -[[package]] -name = "async-fs" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "blocking", - "futures-lite 1.13.0", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" -dependencies = [ - "async-lock 3.3.0", - "cfg-if", - "concurrent-queue", - "futures-io", - "futures-lite 2.3.0", - "parking", - "polling 3.6.0", - "rustix 0.38.32", - "slab", - "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", -] - -[[package]] -name = "async-lock" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" -dependencies = [ - "event-listener 4.0.3", - "event-listener-strategy 0.4.0", - "pin-project-lite", -] - -[[package]] -name = "async-process" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" -dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", - "async-signal", - "blocking", - "cfg-if", - "event-listener 3.1.0", - "futures-lite 1.13.0", - "rustix 0.38.32", - "windows-sys 0.48.0", -] - -[[package]] -name = "async-recursion" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "async-signal" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" -dependencies = [ - "async-io 2.3.2", - "async-lock 2.8.0", - "atomic-waker", - "cfg-if", - "futures-core", - "futures-io", - "rustix 0.38.32", - "signal-hook-registry", - "slab", - "windows-sys 0.48.0", -] - -[[package]] -name = "async-task" -version = "4.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" - -[[package]] -name = "async-trait" -version = "0.1.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "async-utility" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3716c0d3970fe92d79a8f4cda2caf91113574505dff5b18e455e549d4b078e98" -dependencies = [ - "futures-util", - "gloo-timers", - "tokio", - "wasm-bindgen-futures", -] - -[[package]] -name = "async-wsocket" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d55992e9155e571208dc012c2a5c056572d1ab167bc299a63810ebf910226c" -dependencies = [ - "async-utility", - "futures-util", - "thiserror", - "tokio", - "tokio-rustls", - "tokio-socks", - "tokio-tungstenite", - "url-fork", - "wasm-ws", - "webpki-roots", -] - -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version", -] - -[[package]] -name = "atk" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4" -dependencies = [ - "atk-sys", - "glib", - "libc", -] - -[[package]] -name = "atk-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009" -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.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" - -[[package]] -name = "backtrace" -version = "0.3.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[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.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" - -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - -[[package]] -name = "bip39" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" -dependencies = [ - "bitcoin_hashes 0.11.0", - "serde", - "unicode-normalization", -] - -[[package]] -name = "bitcoin" -version = "0.30.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1945a5048598e4189e239d3f809b19bdad4845c4b2ba400d304d2dcf26d2c462" -dependencies = [ - "bech32", - "bitcoin-private", - "bitcoin_hashes 0.12.0", - "hex_lit", - "secp256k1", - "serde", -] - -[[package]] -name = "bitcoin-private" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" - -[[package]] -name = "bitcoin_hashes" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" - -[[package]] -name = "bitcoin_hashes" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" -dependencies = [ - "bitcoin-private", - "serde", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" -dependencies = [ - "serde", -] - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blocking" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" -dependencies = [ - "async-channel", - "async-lock 3.3.0", - "async-task", - "fastrand 2.0.2", - "futures-io", - "futures-lite 2.3.0", - "piper", - "tracing", -] - -[[package]] -name = "brotli" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "2.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytemuck" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" -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.5.0", - "cairo-sys-rs", - "glib", - "libc", - "once_cell", - "thiserror", -] - -[[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.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" -dependencies = [ - "serde", -] - -[[package]] -name = "captains-log" -version = "0.0.1" -dependencies = [ - "chrono", - "cocoa", - "nip-70", - "nostr-sdk", - "rusqlite", - "serde", - "serde_json", - "tauri", - "tauri-build", - "tauri-plugin-shell", - "tauri-plugin-theme", -] - -[[package]] -name = "cargo-platform" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" -dependencies = [ - "camino", - "cargo-platform", - "semver", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "cargo_toml" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" -dependencies = [ - "serde", - "toml 0.8.2", -] - -[[package]] -name = "cbc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" -dependencies = [ - "cipher", -] - -[[package]] -name = "cc" -version = "1.0.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" - -[[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.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cfg_aliases" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e53693616d3075149f4ead59bdeecd204ac6b8192d8969757601b74bddf00f" - -[[package]] -name = "chacha20" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "chrono" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-targets 0.52.5", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "cocoa" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" -dependencies = [ - "bitflags 1.3.2", - "block", - "cocoa-foundation", - "core-foundation", - "core-graphics", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "cocoa-foundation" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" -dependencies = [ - "bitflags 1.3.2", - "block", - "core-foundation", - "core-graphics-types", - "libc", - "objc", -] - -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "concurrent-queue" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "core-graphics" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", -] - -[[package]] -name = "core-graphics-types" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "libc", -] - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "cssparser" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" -dependencies = [ - "cssparser-macros", - "dtoa-short", - "itoa 0.4.8", - "matches", - "phf 0.8.0", - "proc-macro2", - "quote", - "smallvec", - "syn 1.0.109", -] - -[[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.60", -] - -[[package]] -name = "ctor" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" -dependencies = [ - "quote", - "syn 2.0.60", -] - -[[package]] -name = "darling" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.60", -] - -[[package]] -name = "darling_macro" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version", - "syn 1.0.109", -] - -[[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-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "dispatch" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - -[[package]] -name = "dlib" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" -dependencies = [ - "libloading 0.8.3", -] - -[[package]] -name = "dlopen2" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6" -dependencies = [ - "dlopen2_derive", - "libc", - "once_cell", - "winapi", -] - -[[package]] -name = "dlopen2_derive" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "dpi" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" -dependencies = [ - "serde", -] - -[[package]] -name = "dtoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" - -[[package]] -name = "dtoa-short" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74" -dependencies = [ - "dtoa", -] - -[[package]] -name = "dunce" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" - -[[package]] -name = "dyn-clone" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" - -[[package]] -name = "either" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" - -[[package]] -name = "embed-resource" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6985554d0688b687c5cb73898a34fbe3ad6c24c58c238a4d91d5e840670ee9d" -dependencies = [ - "cc", - "memchr", - "rustc_version", - "toml 0.8.2", - "vswhom", - "winreg 0.52.0", -] - -[[package]] -name = "embed_plist" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" - -[[package]] -name = "encoding_rs" -version = "0.8.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enumflags2" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" -dependencies = [ - "enumflags2_derive", - "serde", -] - -[[package]] -name = "enumflags2_derive" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.3", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3" -dependencies = [ - "event-listener 5.3.0", - "pin-project-lite", -] - -[[package]] -name = "fallible-iterator" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" - -[[package]] -name = "fallible-streaming-iterator" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" - -[[package]] -name = "fdeflate" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" -dependencies = [ - "simd-adler32", -] - -[[package]] -name = "field-offset" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" -dependencies = [ - "memoffset 0.9.1", - "rustc_version", -] - -[[package]] -name = "flate2" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.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.60", -] - -[[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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" -dependencies = [ - "mac", - "new_debug_unreachable", -] - -[[package]] -name = "futures" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-executor" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-lite" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" -dependencies = [ - "fastrand 2.0.2", - "futures-core", - "futures-io", - "parking", - "pin-project-lite", -] - -[[package]] -name = "futures-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "gdk" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646" -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.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2" -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.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90fbf5c033c65d93792192a49a8efb5bb1e640c419682a58bb96f5ae77f3d4a" -dependencies = [ - "gdk-sys", - "glib-sys", - "gobject-sys", - "libc", - "pkg-config", - "system-deps", -] - -[[package]] -name = "gdkx11" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2ea8a4909d530f79921290389cbd7c34cb9d623bfe970eaae65ca5f9cd9cce" -dependencies = [ - "gdk", - "gdkx11-sys", - "gio", - "glib", - "libc", - "x11", -] - -[[package]] -name = "gdkx11-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee8f00f4ee46cad2939b8990f5c70c94ff882c3028f3cc5abf950fa4ab53043" -dependencies = [ - "gdk-sys", - "glib-sys", - "libc", - "system-deps", - "x11", -] - -[[package]] -name = "generator" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" -dependencies = [ - "cc", - "libc", - "log", - "rustversion", - "windows 0.48.0", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - -[[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", -] - -[[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.5.0", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "futures-util", - "gio-sys", - "glib-macros", - "glib-sys", - "gobject-sys", - "libc", - "memchr", - "once_cell", - "smallvec", - "thiserror", -] - -[[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.60", -] - -[[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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c" -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.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722" -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.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e" -dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.2.6", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" -dependencies = [ - "ahash", - "allocator-api2", -] - -[[package]] -name = "hashlink" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692eaaf7f7607518dd3cef090f1474b61edc5301d8012f09579920df68b725ee" -dependencies = [ - "hashbrown 0.14.3", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hex-conservative" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed443af458ccb6d81c1e7e661545f94d3176752fb1df2f543b902a1e0f51e2" - -[[package]] -name = "hex_lit" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" - -[[package]] -name = "html5ever" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" -dependencies = [ - "log", - "mac", - "markup5ever", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa 1.0.11", -] - -[[package]] -name = "http" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" -dependencies = [ - "bytes", - "fnv", - "itoa 1.0.11", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - -[[package]] -name = "http-body" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" -dependencies = [ - "bytes", - "http 1.1.0", -] - -[[package]] -name = "http-body-util" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" -dependencies = [ - "bytes", - "futures-core", - "http 1.1.0", - "http-body 1.0.0", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa 1.0.11", - "pin-project-lite", - "socket2 0.5.6", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http 1.1.0", - "http-body 1.0.0", - "httparse", - "itoa 1.0.11", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.28", - "rustls", - "tokio", - "tokio-rustls", -] - -[[package]] -name = "hyper-util" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http 1.1.0", - "http-body 1.0.0", - "hyper 1.3.1", - "pin-project-lite", - "socket2 0.5.6", - "tokio", - "tower", - "tower-service", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core 0.52.0", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ico" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae" -dependencies = [ - "byteorder", - "png", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[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.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" -dependencies = [ - "equivalent", - "hashbrown 0.14.3", - "serde", -] - -[[package]] -name = "infer" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199" -dependencies = [ - "cfb", -] - -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "block-padding", - "generic-array", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[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 = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[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", - "log", - "thiserror", - "walkdir", - "windows-sys 0.45.0", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "js-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "json-patch" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6" -dependencies = [ - "serde", - "serde_json", - "thiserror", - "treediff", -] - -[[package]] -name = "keyboard-types" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" -dependencies = [ - "bitflags 2.5.0", - "serde", - "unicode-segmentation", -] - -[[package]] -name = "kuchikiki" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" -dependencies = [ - "cssparser", - "html5ever", - "indexmap 1.9.3", - "matches", - "selectors", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libappindicator" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" -dependencies = [ - "glib", - "gtk", - "gtk-sys", - "libappindicator-sys", - "log", -] - -[[package]] -name = "libappindicator-sys" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" -dependencies = [ - "gtk-sys", - "libloading 0.7.4", - "once_cell", -] - -[[package]] -name = "libc" -version = "0.2.153" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" - -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - -[[package]] -name = "libloading" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" -dependencies = [ - "cfg-if", - "windows-targets 0.52.5", -] - -[[package]] -name = "libredox" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.5.0", - "libc", -] - -[[package]] -name = "libsqlite3-sys" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f" -dependencies = [ - "pkg-config", - "vcpkg", -] - -[[package]] -name = "lightning" -version = "0.0.121" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0c1f811ae288f86c6767055c55b5f7a721ca1e61bf1897a9ae2ec663e8aba1" -dependencies = [ - "bitcoin", - "hex-conservative", -] - -[[package]] -name = "lightning-invoice" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b186aca4a605d4db3b85979922be287b9ebd5dedd8132963bb9dbeb8f7d2a04" -dependencies = [ - "bech32", - "bitcoin", - "lightning", - "num-traits", - "secp256k1", -] - -[[package]] -name = "line-wrap" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e" - -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" - -[[package]] -name = "lock_api" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" - -[[package]] -name = "loom" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" -dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "serde", - "serde_json", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "markup5ever" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" -dependencies = [ - "log", - "phf 0.10.1", - "phf_codegen 0.10.0", - "string_cache", - "string_cache_codegen", - "tendril", -] - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - -[[package]] -name = "memchr" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" -dependencies = [ - "adler", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - -[[package]] -name = "muda" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f428b4e9db3d17e2f809dfb1ff9ddfbbf16c71790d1656d10aee320877e1392f" -dependencies = [ - "cocoa", - "crossbeam-channel", - "dpi", - "gtk", - "keyboard-types", - "objc", - "once_cell", - "png", - "serde", - "thiserror", - "windows-sys 0.52.0", -] - -[[package]] -name = "ndk" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" -dependencies = [ - "bitflags 1.3.2", - "jni-sys", - "ndk-sys", - "num_enum", - "raw-window-handle 0.5.2", - "thiserror", -] - -[[package]] -name = "ndk-context" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" - -[[package]] -name = "ndk-sys" -version = "0.4.1+23.1.7779620" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" -dependencies = [ - "jni-sys", -] - -[[package]] -name = "negentropy" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e664971378a3987224f7a0e10059782035e89899ae403718ee07de85bec42afe" - -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - -[[package]] -name = "nip-70" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d99ee3e2fe21bdd1a4e95728c88921cbe017812a7b5a456891fa2ed674a24004" -dependencies = [ - "async-trait", - "futures", - "lightning-invoice", - "nostr-sdk", - "serde", - "serde_json", - "tokio", -] - -[[package]] -name = "nix" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "libc", - "memoffset 0.7.1", -] - -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - -[[package]] -name = "nostr" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e47228d958fd65ef3e04650a3b1dd80f16f10f0243c80ed969556dead0f48c8" -dependencies = [ - "aes", - "base64 0.21.7", - "bip39", - "bitcoin", - "cbc", - "chacha20", - "getrandom 0.2.14", - "instant", - "js-sys", - "negentropy", - "once_cell", - "reqwest 0.11.27", - "serde", - "serde_json", - "tracing", - "url-fork", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "nostr-database" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa0550256c8d4f0aaf74891ac986bd5ba46b2957c2c7e20f51838fa5819285f8" -dependencies = [ - "async-trait", - "nostr", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "nostr-sdk" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf190e41230721f0ce64f5ea72ed36cbc431d3b305eb166e24a94f5d7e4a425" -dependencies = [ - "async-utility", - "async-wsocket", - "nostr", - "nostr-database", - "once_cell", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-traits" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" -dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", - "objc_exception", -] - -[[package]] -name = "objc_exception" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" -dependencies = [ - "cc", -] - -[[package]] -name = "objc_id" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" -dependencies = [ - "objc", -] - -[[package]] -name = "object" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "open" -version = "5.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32" -dependencies = [ - "is-wsl", - "libc", - "pathdiff", -] - -[[package]] -name = "ordered-stream" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" -dependencies = [ - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "os_pipe" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "pango" -version = "0.18.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" -dependencies = [ - "gio", - "glib", - "libc", - "once_cell", - "pango-sys", -] - -[[package]] -name = "pango-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "parking" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.4.1", - "smallvec", - "windows-targets 0.48.5", -] - -[[package]] -name = "pathdiff" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version", -] - -[[package]] -name = "phf" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" -dependencies = [ - "phf_macros 0.8.0", - "phf_shared 0.8.0", - "proc-macro-hack", -] - -[[package]] -name = "phf" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" -dependencies = [ - "phf_shared 0.10.0", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_macros 0.11.2", - "phf_shared 0.11.2", -] - -[[package]] -name = "phf_codegen" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" -dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", -] - -[[package]] -name = "phf_codegen" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", -] - -[[package]] -name = "phf_generator" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" -dependencies = [ - "phf_shared 0.8.0", - "rand 0.7.3", -] - -[[package]] -name = "phf_generator" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" -dependencies = [ - "phf_shared 0.10.0", - "rand 0.8.5", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared 0.11.2", - "rand 0.8.5", -] - -[[package]] -name = "phf_macros" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" -dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", - "proc-macro-hack", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator 0.11.2", - "phf_shared 0.11.2", - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "phf_shared" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "piper" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" -dependencies = [ - "atomic-waker", - "fastrand 2.0.2", - "futures-io", -] - -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "plist" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9" -dependencies = [ - "base64 0.21.7", - "indexmap 2.2.6", - "line-wrap", - "quick-xml", - "serde", - "time", -] - -[[package]] -name = "png" -version = "0.17.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" -dependencies = [ - "bitflags 1.3.2", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide", -] - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - -[[package]] -name = "polling" -version = "3.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6" -dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi", - "pin-project-lite", - "rustix 0.38.32", - "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[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", - "toml_edit 0.20.2", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - -[[package]] -name = "proc-macro2" -version = "1.0.81" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quick-xml" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" -dependencies = [ - "memchr", -] - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", - "rand_pcg", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.14", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "raw-window-handle" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" - -[[package]] -name = "raw-window-handle" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544" - -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" -dependencies = [ - "bitflags 2.5.0", -] - -[[package]] -name = "redox_users" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" -dependencies = [ - "getrandom 0.2.14", - "libredox", - "thiserror", -] - -[[package]] -name = "regex" -version = "1.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.6", - "regex-syntax 0.8.3", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.3", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" - -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.28", - "hyper-rustls", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "system-configuration", - "tokio", - "tokio-rustls", - "tokio-socks", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", - "winreg 0.50.0", -] - -[[package]] -name = "reqwest" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" -dependencies = [ - "base64 0.22.0", - "bytes", - "futures-core", - "futures-util", - "http 1.1.0", - "http-body 1.0.0", - "http-body-util", - "hyper 1.3.1", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-util", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "winreg 0.52.0", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.14", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rusqlite" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae" -dependencies = [ - "bitflags 2.5.0", - "fallible-iterator", - "fallible-streaming-iterator", - "hashlink", - "libsqlite3-sys", - "smallvec", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.37.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" -dependencies = [ - "bitflags 2.5.0", - "errno", - "libc", - "linux-raw-sys 0.4.13", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki", - "sct", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" - -[[package]] -name = "ryu" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" - -[[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.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" -dependencies = [ - "dyn-clone", - "indexmap 1.9.3", - "schemars_derive", - "serde", - "serde_json", - "url", -] - -[[package]] -name = "schemars_derive" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" -dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn 1.0.109", -] - -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "secp256k1" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" -dependencies = [ - "bitcoin_hashes 0.12.0", - "rand 0.8.5", - "secp256k1-sys", - "serde", -] - -[[package]] -name = "secp256k1-sys" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" -dependencies = [ - "cc", -] - -[[package]] -name = "selectors" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" -dependencies = [ - "bitflags 1.3.2", - "cssparser", - "derive_more", - "fxhash", - "log", - "matches", - "phf 0.8.0", - "phf_codegen 0.8.0", - "precomputed-hash", - "servo_arc", - "smallvec", - "thin-slice", -] - -[[package]] -name = "semver" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" -dependencies = [ - "serde", -] - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - -[[package]] -name = "serde" -version = "1.0.198" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.198" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "serde_derive_internals" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "serde_json" -version = "1.0.116" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" -dependencies = [ - "indexmap 2.2.6", - "itoa 1.0.11", - "ryu", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "serde_spanned" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa 1.0.11", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a" -dependencies = [ - "base64 0.21.7", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.2.6", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6561dc161a9224638a31d876ccdfefbc1df91d3f3a8342eddb35f055d48c7655" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "serialize-to-javascript" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" -dependencies = [ - "serde", - "serde_json", - "serialize-to-javascript-impl", -] - -[[package]] -name = "serialize-to-javascript-impl" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "servo_arc" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" -dependencies = [ - "nodrop", - "stable_deref_trait", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shared_child" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" -dependencies = [ - "libc", -] - -[[package]] -name = "simd-adler32" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "softbuffer" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61d5d17f23326fe0d9b0af282f73f3af666699420fd5f42629efd9c6e7dc166f" -dependencies = [ - "bytemuck", - "cfg_aliases", - "cocoa", - "core-graphics", - "foreign-types", - "js-sys", - "log", - "objc", - "raw-window-handle 0.6.0", - "redox_syscall 0.5.1", - "wasm-bindgen", - "wayland-sys", - "web-sys", - "windows-sys 0.52.0", -] - -[[package]] -name = "soup3" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" -dependencies = [ - "futures-channel", - "gio", - "glib", - "libc", - "soup3-sys", -] - -[[package]] -name = "soup3-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" -dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "state" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8" -dependencies = [ - "loom", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", - "serde", -] - -[[package]] -name = "string_cache_codegen" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro2", - "quote", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "swift-rs" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bbdb58577b6301f8d17ae2561f32002a5bae056d444e0f69e611e504a276204" -dependencies = [ - "base64 0.21.7", - "serde", - "serde_json", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[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.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5b6ec2c43abd15155f040c765001098f50f425414b679225d471a1cd782753" -dependencies = [ - "bitflags 1.3.2", - "cocoa", - "core-foundation", - "core-graphics", - "crossbeam-channel", - "dispatch", - "dlopen2", - "dpi", - "gdkwayland-sys", - "gdkx11-sys", - "gtk", - "instant", - "jni", - "lazy_static", - "libc", - "log", - "ndk", - "ndk-context", - "ndk-sys", - "objc", - "once_cell", - "parking_lot", - "raw-window-handle 0.6.0", - "scopeguard", - "tao-macros", - "unicode-segmentation", - "url", - "windows 0.54.0", - "windows-version", - "x11-dl", -] - -[[package]] -name = "tao-macros" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec114582505d158b669b136e6851f85840c109819d77c42bb7c0709f727d18c2" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "target-lexicon" -version = "0.12.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" - -[[package]] -name = "tauri" -version = "2.0.0-beta.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0aba659957a3f1f1666acbf17723e8d41dcc177539bf1adbe55305f5d7118a" -dependencies = [ - "anyhow", - "bytes", - "cocoa", - "dirs-next", - "dunce", - "embed_plist", - "futures-util", - "getrandom 0.2.14", - "glob", - "gtk", - "heck 0.4.1", - "http 1.1.0", - "jni", - "libc", - "log", - "mime", - "muda", - "objc", - "percent-encoding", - "raw-window-handle 0.6.0", - "reqwest 0.12.4", - "serde", - "serde_json", - "serde_repr", - "serialize-to-javascript", - "state", - "swift-rs", - "tauri-build", - "tauri-macros", - "tauri-runtime", - "tauri-runtime-wry", - "tauri-utils", - "thiserror", - "tokio", - "tray-icon", - "url", - "urlpattern", - "webkit2gtk", - "webview2-com", - "window-vibrancy", - "windows 0.54.0", -] - -[[package]] -name = "tauri-build" -version = "2.0.0-beta.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33de24aabe2b9c340d67005800cb6dd40aac5283126a42896fc8eec0b87cbe45" -dependencies = [ - "anyhow", - "cargo_toml", - "dirs-next", - "glob", - "heck 0.4.1", - "json-patch", - "schemars", - "semver", - "serde", - "serde_json", - "tauri-utils", - "tauri-winres", - "toml 0.8.2", - "walkdir", -] - -[[package]] -name = "tauri-codegen" -version = "2.0.0-beta.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1d211268a9590bbf75cc85b47208f59b447626c76396256e12479ac7df6c8b" -dependencies = [ - "base64 0.22.0", - "brotli", - "ico", - "json-patch", - "plist", - "png", - "proc-macro2", - "quote", - "semver", - "serde", - "serde_json", - "sha2", - "syn 2.0.60", - "tauri-utils", - "thiserror", - "time", - "url", - "uuid", - "walkdir", -] - -[[package]] -name = "tauri-macros" -version = "2.0.0-beta.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b096f63f2724a1280ae0f5a34d0731de18ca18305e2ef6e5e9a39bb2710e8a85" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "syn 2.0.60", - "tauri-codegen", - "tauri-utils", -] - -[[package]] -name = "tauri-plugin" -version = "2.0.0-beta.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21c6be726c8d57ccf440e6b05a904e6acbbafb9aaf88b8a47cc1923d36ddc512" -dependencies = [ - "anyhow", - "glob", - "plist", - "schemars", - "serde", - "serde_json", - "tauri-utils", - "toml 0.8.2", - "walkdir", -] - -[[package]] -name = "tauri-plugin-shell" -version = "2.0.0-beta.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5624537650f627707f3bd9c6562efe2116c7fb043fcfc2e3d10f802d7870a1cd" -dependencies = [ - "encoding_rs", - "log", - "open", - "os_pipe", - "regex", - "schemars", - "serde", - "serde_json", - "shared_child", - "tauri", - "tauri-plugin", - "thiserror", -] - -[[package]] -name = "tauri-plugin-theme" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b6d6ea091d575840032ce8aabddaae88c96a6560d75b6b828eab092544a5b7" -dependencies = [ - "cocoa", - "dirs-next", - "futures-lite 2.3.0", - "gtk", - "once_cell", - "serde", - "tauri", - "tauri-plugin", - "tintanum", - "tokio", -] - -[[package]] -name = "tauri-runtime" -version = "2.0.0-beta.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c957749c40db7999959f379f799db095f2248a80bdbb13d8c078f6c299240e" -dependencies = [ - "dpi", - "gtk", - "http 1.1.0", - "jni", - "raw-window-handle 0.6.0", - "serde", - "serde_json", - "tauri-utils", - "thiserror", - "url", - "windows 0.54.0", -] - -[[package]] -name = "tauri-runtime-wry" -version = "2.0.0-beta.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b937adb1cf3fa0457928ace959ca3fc1a85ddd69f56b124682d40f3e5683e60" -dependencies = [ - "cocoa", - "gtk", - "http 1.1.0", - "jni", - "log", - "percent-encoding", - "raw-window-handle 0.6.0", - "softbuffer", - "tao", - "tauri-runtime", - "tauri-utils", - "url", - "webkit2gtk", - "webview2-com", - "windows 0.54.0", - "wry", -] - -[[package]] -name = "tauri-utils" -version = "2.0.0-beta.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760ac613d7f0de95067bcbcbcea175fe1df88fc4ab59c7f0b2cc2d01dc16a199" -dependencies = [ - "brotli", - "cargo_metadata", - "ctor", - "dunce", - "glob", - "heck 0.4.1", - "html5ever", - "infer", - "json-patch", - "kuchikiki", - "log", - "memchr", - "phf 0.11.2", - "proc-macro2", - "quote", - "regex", - "schemars", - "semver", - "serde", - "serde_json", - "serde_with", - "swift-rs", - "thiserror", - "toml 0.8.2", - "url", - "urlpattern", - "walkdir", -] - -[[package]] -name = "tauri-winres" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb" -dependencies = [ - "embed-resource", - "toml 0.7.8", -] - -[[package]] -name = "tempfile" -version = "3.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" -dependencies = [ - "cfg-if", - "fastrand 2.0.2", - "rustix 0.38.32", - "windows-sys 0.52.0", -] - -[[package]] -name = "tendril" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" -dependencies = [ - "futf", - "mac", - "utf-8", -] - -[[package]] -name = "thin-slice" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" - -[[package]] -name = "thiserror" -version = "1.0.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "time" -version = "0.3.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" -dependencies = [ - "deranged", - "itoa 1.0.11", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tintanum" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abbcf9173afc80733c20b7e27a30bc9284d6535bdbde2a70904032de63e16e8" -dependencies = [ - "futures-lite 1.13.0", - "zbus", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "pin-project-lite", - "socket2 0.5.6", - "tokio-macros", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-macros" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] -name = "tokio-socks" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0" -dependencies = [ - "either", - "futures-util", - "thiserror", - "tokio", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls", - "tokio", - "tokio-rustls", - "tungstenite", - "webpki-roots", -] - -[[package]] -name = "tokio-util" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "toml" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.19.15", -] - -[[package]] -name = "toml" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.20.2", -] - -[[package]] -name = "toml_datetime" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.2.6", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "toml_edit" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" -dependencies = [ - "indexmap 2.2.6", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "tray-icon" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97ec55956c54569e74209ae9d29a7a79193b252d17a6ac28bcffd4c11a384ad" -dependencies = [ - "cocoa", - "core-graphics", - "crossbeam-channel", - "dirs-next", - "libappindicator", - "muda", - "objc", - "once_cell", - "png", - "serde", - "thiserror", - "windows-sys 0.52.0", -] - -[[package]] -name = "treediff" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5" -dependencies = [ - "serde_json", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 0.2.12", - "httparse", - "log", - "rand 0.8.5", - "rustls", - "sha1", - "thiserror", - "url", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "uds_windows" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" -dependencies = [ - "memoffset 0.9.1", - "tempfile", - "winapi", -] - -[[package]] -name = "unic-char-property" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" -dependencies = [ - "unic-char-range", -] - -[[package]] -name = "unic-char-range" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" - -[[package]] -name = "unic-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" - -[[package]] -name = "unic-ucd-ident" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-version" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" -dependencies = [ - "unic-common", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "url-fork" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fa3323c39b8e786154d3000b70ae9af0e9bd746c9791456da0d4a1f68ad89d6" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "urlpattern" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609" -dependencies = [ - "derive_more", - "regex", - "serde", - "unic-ucd-ident", - "url", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "uuid" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" -dependencies = [ - "getrandom 0.2.14", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version-compare" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[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.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "waker-fn" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" - -[[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.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.60", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" - -[[package]] -name = "wasm-streams" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wasm-ws" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5b3a482e27ff54809c0848629d9033179705c5ea2f58e26cf45dc77c34c4984" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "pharos", - "send_wrapper", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wayland-sys" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af" -dependencies = [ - "dlib", - "log", - "pkg-config", -] - -[[package]] -name = "web-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webkit2gtk" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" -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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" -dependencies = [ - "bitflags 1.3.2", - "cairo-sys-rs", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "gtk-sys", - "javascriptcore-rs-sys", - "libc", - "pkg-config", - "soup3-sys", - "system-deps", -] - -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "webview2-com" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d5949fc3f537e90240c3e4f78dda2fa0431b671d50845a2f582173ef8a1201" -dependencies = [ - "webview2-com-macros", - "webview2-com-sys", - "windows 0.54.0", - "windows-core 0.54.0", - "windows-implement", - "windows-interface", -] - -[[package]] -name = "webview2-com-macros" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1345798ecd8122468840bcdf1b95e5dc6d2206c5e4b0eafa078d061f59c9bc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "webview2-com-sys" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd1eaa1be63d6fdcadf893c40d7d53c889a6342b3a94930d34e6964d5bb7e8db" -dependencies = [ - "thiserror", - "windows 0.54.0", - "windows-core 0.54.0", -] - -[[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.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "window-vibrancy" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33082acd404763b315866e14a0d5193f3422c81086657583937a750cdd3ec340" -dependencies = [ - "cocoa", - "objc", - "raw-window-handle 0.6.0", - "windows-sys 0.52.0", - "windows-version", -] - -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows" -version = "0.54.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" -dependencies = [ - "windows-core 0.54.0", - "windows-implement", - "windows-interface", - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-core" -version = "0.54.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" -dependencies = [ - "windows-result", - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-implement" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "windows-interface" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "windows-result" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b" -dependencies = [ - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.5", -] - -[[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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" -dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", -] - -[[package]] -name = "windows-version" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515" -dependencies = [ - "windows-targets 0.52.5", -] - -[[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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" - -[[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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" - -[[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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" - -[[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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" - -[[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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" - -[[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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" - -[[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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wry" -version = "0.39.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "798fb0ee725c2d243d463e62c5150fd12002a3f51f12a36d62cd7b1b7befd33d" -dependencies = [ - "base64 0.21.7", - "block", - "cocoa", - "core-graphics", - "crossbeam-channel", - "dpi", - "dunce", - "gdkx11", - "gtk", - "html5ever", - "http 1.1.0", - "javascriptcore-rs", - "jni", - "kuchikiki", - "libc", - "ndk", - "ndk-context", - "ndk-sys", - "objc", - "objc_id", - "once_cell", - "percent-encoding", - "raw-window-handle 0.6.0", - "sha2", - "soup3", - "tao-macros", - "thiserror", - "webkit2gtk", - "webkit2gtk-sys", - "webview2-com", - "windows 0.54.0", - "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 = "xdg-home" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "zbus" -version = "3.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6" -dependencies = [ - "async-broadcast", - "async-executor", - "async-fs", - "async-io 1.13.0", - "async-lock 2.8.0", - "async-process", - "async-recursion", - "async-task", - "async-trait", - "blocking", - "byteorder", - "derivative", - "enumflags2", - "event-listener 2.5.3", - "futures-core", - "futures-sink", - "futures-util", - "hex", - "nix", - "once_cell", - "ordered-stream", - "rand 0.8.5", - "serde", - "serde_repr", - "sha1", - "static_assertions", - "tracing", - "uds_windows", - "winapi", - "xdg-home", - "zbus_macros", - "zbus_names", - "zvariant", -] - -[[package]] -name = "zbus_macros" -version = "3.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5" -dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "regex", - "syn 1.0.109", - "zvariant_utils", -] - -[[package]] -name = "zbus_names" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d" -dependencies = [ - "serde", - "static_assertions", - "zvariant", -] - -[[package]] -name = "zerocopy" -version = "0.7.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - -[[package]] -name = "zvariant" -version = "3.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db" -dependencies = [ - "byteorder", - "enumflags2", - "libc", - "serde", - "static_assertions", - "zvariant_derive", -] - -[[package]] -name = "zvariant_derive" -version = "3.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9" -dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "syn 1.0.109", - "zvariant_utils", -] - -[[package]] -name = "zvariant_utils" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml deleted file mode 100644 index 7c89ecbf..00000000 --- a/src-tauri/Cargo.toml +++ /dev/null @@ -1,28 +0,0 @@ -[package] -name = "captains-log" -version = "0.0.1" -description = "A Tauri App" -authors = ["you"] -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[build-dependencies] -tauri-build = { version = "2.0.0-beta", features = [] } - -[dependencies] -tauri = { version = "2.0.0-beta", features = [] } -tauri-plugin-shell = "2.0.0-beta" -serde = { version = "1", features = ["derive"] } -serde_json = "1.0" -rusqlite = "0.31.0" -chrono = { version = "0.4", features = ["serde"] } -tauri-plugin-theme = "0.4.0" -nip-70 = "0.5.0" -nostr-sdk = "0.27.0" -[target.'cfg(target_os = "macos")'.dependencies] -cocoa = "=0.25.0" - -[features] -# This feature is used for production builds or when a dev server is not specified, DO NOT REMOVE!! -custom-protocol = ["tauri/custom-protocol"] diff --git a/src-tauri/build.rs b/src-tauri/build.rs deleted file mode 100644 index d860e1e6..00000000 --- a/src-tauri/build.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - tauri_build::build() -} diff --git a/src-tauri/capabilities/main.json b/src-tauri/capabilities/main.json deleted file mode 100644 index 41e777e8..00000000 --- a/src-tauri/capabilities/main.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "../gen/schemas/desktop-schema.json", - "identifier": "default", - "description": "Capability for the main window", - "windows": [ - "main" - ], - "permissions": [ - "path:default", - "event:default", - "window:default", - "app:default", - "resources:default", - "menu:default", - "tray:default", - "shell:allow-open" - ] -} diff --git a/src-tauri/gen/schemas/acl-manifests.json b/src-tauri/gen/schemas/acl-manifests.json deleted file mode 100644 index 4fd5647b..00000000 --- a/src-tauri/gen/schemas/acl-manifests.json +++ /dev/null @@ -1 +0,0 @@ -{"app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"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-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"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},"event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":[]},"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},"path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":null,"permissions":{"allow-execute":{"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]}},"allow-kill":{"identifier":"allow-kill","description":"Enables the kill command without any pre-configured scope.","commands":{"allow":["kill"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-stdin-write":{"identifier":"allow-stdin-write","description":"Enables the stdin_write command without any pre-configured scope.","commands":{"allow":["stdin_write"],"deny":[]}},"deny-execute":{"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]}},"deny-kill":{"identifier":"deny-kill","description":"Denies the kill command without any pre-configured scope.","commands":{"allow":[],"deny":["kill"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-stdin-write":{"identifier":"deny-stdin-write","description":"Denies the stdin_write command without any pre-configured scope.","commands":{"allow":[],"deny":["stdin_write"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","definitions":{"ShellAllowedArg":{"anyOf":[{"description":"A non-configurable argument that is passed to the command in the order it was specified.","type":"string"},{"additionalProperties":false,"description":"A variable that is set while calling the command from the webview API.","properties":{"validator":{"description":"[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\n[regex]: https://docs.rs/regex/latest/regex/#syntax","type":"string"}},"required":["validator"],"type":"object"}],"description":"A command argument allowed to be executed by the webview API."},"ShellAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellAllowedArg"},"type":"array"}],"description":"A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"A command allowed to be executed by the webview API.","properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellAllowedArgs"}],"description":"The allowed arguments for the command execution."},"cmd":{"description":"The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"},"sidecar":{"description":"If this command is a sidecar command.","type":"boolean"}},"required":["args","cmd","name","sidecar"],"title":"Entry","type":"object"}},"theme":{"default_permission":null,"permissions":{"allow-get-theme":{"identifier":"allow-get-theme","description":"Enables the get_theme command without any pre-configured scope.","commands":{"allow":["get_theme"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"deny-get-theme":{"identifier":"deny-get-theme","description":"Denies the get_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["get_theme"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}}},"permission_sets":{},"global_scope_schema":null},"tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":[]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"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-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"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-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-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"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},"window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["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-title","allow-current-monitor","allow-primary-monitor","allow-available-monitors","allow-theme","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-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-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-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-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"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-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-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-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-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-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"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-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null}} \ No newline at end of file diff --git a/src-tauri/gen/schemas/capabilities.json b/src-tauri/gen/schemas/capabilities.json deleted file mode 100644 index 31b7c685..00000000 --- a/src-tauri/gen/schemas/capabilities.json +++ /dev/null @@ -1 +0,0 @@ -{"default":{"identifier":"default","description":"Capability for the main window","local":true,"windows":["main"],"permissions":["path:default","event:default","window:default","app:default","resources:default","menu:default","tray:default","shell:allow-open"]}} \ No newline at end of file diff --git a/src-tauri/gen/schemas/desktop-schema.json b/src-tauri/gen/schemas/desktop-schema.json deleted file mode 100644 index 9ea0e600..00000000 --- a/src-tauri/gen/schemas/desktop-schema.json +++ /dev/null @@ -1,2373 +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 separate windows or plugins functionality from each other at runtime.\n\nIf a window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create trust groups and reduce impact of vulnerabilities in certain plugins or windows. Windows can be added to a capability by exact name or glob patterns like *, admin-* or main-window.", - "type": "object", - "required": [ - "identifier", - "permissions" - ], - "properties": { - "identifier": { - "description": "Identifier of the capability.", - "type": "string" - }, - "description": { - "description": "Description of the capability.", - "default": "", - "type": "string" - }, - "remote": { - "description": "Configure remote URLs that can use the capability permissions.", - "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 uses this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.", - "type": "array", - "items": { - "type": "string" - } - }, - "webviews": { - "description": "List of webviews that uses this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.", - "type": "array", - "items": { - "type": "string" - } - }, - "permissions": { - "description": "List of permissions attached to this capability. Must include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`.", - "type": "array", - "items": { - "$ref": "#/definitions/PermissionEntry" - } - }, - "platforms": { - "description": "Target platforms this capability applies. By default all platforms are affected by this capability.", - "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", - "oneOf": [ - { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "oneOf": [ - { - "type": "string", - "enum": [ - "shell:default" - ] - }, - { - "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-execute" - ] - }, - { - "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-kill" - ] - }, - { - "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-open" - ] - }, - { - "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-stdin-write" - ] - }, - { - "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-execute" - ] - }, - { - "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-kill" - ] - }, - { - "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-open" - ] - }, - { - "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-stdin-write" - ] - } - ] - }, - "allow": { - "items": { - "title": "Entry", - "description": "A command allowed to be executed by the webview API.", - "type": "object", - "required": [ - "args", - "cmd", - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - } - } - }, - "deny": { - "items": { - "title": "Entry", - "description": "A command allowed to be executed by the webview API.", - "type": "object", - "required": [ - "args", - "cmd", - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - } - } - } - } - } - ] - } - ] - }, - "Identifier": { - "oneOf": [ - { - "description": "app:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "app:default" - ] - }, - { - "description": "app:allow-app-hide -> Enables the app_hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-app-hide" - ] - }, - { - "description": "app:allow-app-show -> Enables the app_show command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-app-show" - ] - }, - { - "description": "app:allow-name -> Enables the name command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-name" - ] - }, - { - "description": "app:allow-tauri-version -> Enables the tauri_version command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-tauri-version" - ] - }, - { - "description": "app:allow-version -> Enables the version command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-version" - ] - }, - { - "description": "app:deny-app-hide -> Denies the app_hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-app-hide" - ] - }, - { - "description": "app:deny-app-show -> Denies the app_show command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-app-show" - ] - }, - { - "description": "app:deny-name -> Denies the name command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-name" - ] - }, - { - "description": "app:deny-tauri-version -> Denies the tauri_version command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-tauri-version" - ] - }, - { - "description": "app:deny-version -> Denies the version command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-version" - ] - }, - { - "description": "event:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "event:default" - ] - }, - { - "description": "event:allow-emit -> Enables the emit command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:allow-emit" - ] - }, - { - "description": "event:allow-emit-to -> Enables the emit_to command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:allow-emit-to" - ] - }, - { - "description": "event:allow-listen -> Enables the listen command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:allow-listen" - ] - }, - { - "description": "event:allow-unlisten -> Enables the unlisten command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:allow-unlisten" - ] - }, - { - "description": "event:deny-emit -> Denies the emit command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:deny-emit" - ] - }, - { - "description": "event:deny-emit-to -> Denies the emit_to command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:deny-emit-to" - ] - }, - { - "description": "event:deny-listen -> Denies the listen command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:deny-listen" - ] - }, - { - "description": "event:deny-unlisten -> Denies the unlisten command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:deny-unlisten" - ] - }, - { - "description": "image:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "image:default" - ] - }, - { - "description": "image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-from-bytes" - ] - }, - { - "description": "image:allow-from-path -> Enables the from_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-from-path" - ] - }, - { - "description": "image:allow-new -> Enables the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-new" - ] - }, - { - "description": "image:allow-rgba -> Enables the rgba command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-rgba" - ] - }, - { - "description": "image:allow-size -> Enables the size command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-size" - ] - }, - { - "description": "image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-from-bytes" - ] - }, - { - "description": "image:deny-from-path -> Denies the from_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-from-path" - ] - }, - { - "description": "image:deny-new -> Denies the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-new" - ] - }, - { - "description": "image:deny-rgba -> Denies the rgba command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-rgba" - ] - }, - { - "description": "image:deny-size -> Denies the size command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-size" - ] - }, - { - "description": "menu:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "menu:default" - ] - }, - { - "description": "menu:allow-append -> Enables the append command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-append" - ] - }, - { - "description": "menu:allow-create-default -> Enables the create_default command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-create-default" - ] - }, - { - "description": "menu:allow-get -> Enables the get command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-get" - ] - }, - { - "description": "menu:allow-insert -> Enables the insert command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-insert" - ] - }, - { - "description": "menu:allow-is-checked -> Enables the is_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-is-checked" - ] - }, - { - "description": "menu:allow-is-enabled -> Enables the is_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-is-enabled" - ] - }, - { - "description": "menu:allow-items -> Enables the items command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-items" - ] - }, - { - "description": "menu:allow-new -> Enables the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-new" - ] - }, - { - "description": "menu:allow-popup -> Enables the popup command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-popup" - ] - }, - { - "description": "menu:allow-prepend -> Enables the prepend command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-prepend" - ] - }, - { - "description": "menu:allow-remove -> Enables the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-remove" - ] - }, - { - "description": "menu:allow-remove-at -> Enables the remove_at command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-remove-at" - ] - }, - { - "description": "menu:allow-set-accelerator -> Enables the set_accelerator command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-accelerator" - ] - }, - { - "description": "menu:allow-set-as-app-menu -> Enables the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-as-app-menu" - ] - }, - { - "description": "menu:allow-set-as-help-menu-for-nsapp -> Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-as-help-menu-for-nsapp" - ] - }, - { - "description": "menu:allow-set-as-window-menu -> Enables the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-as-window-menu" - ] - }, - { - "description": "menu:allow-set-as-windows-menu-for-nsapp -> Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-as-windows-menu-for-nsapp" - ] - }, - { - "description": "menu:allow-set-checked -> Enables the set_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-checked" - ] - }, - { - "description": "menu:allow-set-enabled -> Enables the set_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-enabled" - ] - }, - { - "description": "menu:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-icon" - ] - }, - { - "description": "menu:allow-set-text -> Enables the set_text command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-text" - ] - }, - { - "description": "menu:allow-text -> Enables the text command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-text" - ] - }, - { - "description": "menu:deny-append -> Denies the append command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-append" - ] - }, - { - "description": "menu:deny-create-default -> Denies the create_default command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-create-default" - ] - }, - { - "description": "menu:deny-get -> Denies the get command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-get" - ] - }, - { - "description": "menu:deny-insert -> Denies the insert command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-insert" - ] - }, - { - "description": "menu:deny-is-checked -> Denies the is_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-is-checked" - ] - }, - { - "description": "menu:deny-is-enabled -> Denies the is_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-is-enabled" - ] - }, - { - "description": "menu:deny-items -> Denies the items command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-items" - ] - }, - { - "description": "menu:deny-new -> Denies the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-new" - ] - }, - { - "description": "menu:deny-popup -> Denies the popup command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-popup" - ] - }, - { - "description": "menu:deny-prepend -> Denies the prepend command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-prepend" - ] - }, - { - "description": "menu:deny-remove -> Denies the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-remove" - ] - }, - { - "description": "menu:deny-remove-at -> Denies the remove_at command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-remove-at" - ] - }, - { - "description": "menu:deny-set-accelerator -> Denies the set_accelerator command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-accelerator" - ] - }, - { - "description": "menu:deny-set-as-app-menu -> Denies the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-as-app-menu" - ] - }, - { - "description": "menu:deny-set-as-help-menu-for-nsapp -> Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-as-help-menu-for-nsapp" - ] - }, - { - "description": "menu:deny-set-as-window-menu -> Denies the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-as-window-menu" - ] - }, - { - "description": "menu:deny-set-as-windows-menu-for-nsapp -> Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-as-windows-menu-for-nsapp" - ] - }, - { - "description": "menu:deny-set-checked -> Denies the set_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-checked" - ] - }, - { - "description": "menu:deny-set-enabled -> Denies the set_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-enabled" - ] - }, - { - "description": "menu:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-icon" - ] - }, - { - "description": "menu:deny-set-text -> Denies the set_text command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-text" - ] - }, - { - "description": "menu:deny-text -> Denies the text command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-text" - ] - }, - { - "description": "path:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "path:default" - ] - }, - { - "description": "path:allow-basename -> Enables the basename command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-basename" - ] - }, - { - "description": "path:allow-dirname -> Enables the dirname command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-dirname" - ] - }, - { - "description": "path:allow-extname -> Enables the extname command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-extname" - ] - }, - { - "description": "path:allow-is-absolute -> Enables the is_absolute command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-is-absolute" - ] - }, - { - "description": "path:allow-join -> Enables the join command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-join" - ] - }, - { - "description": "path:allow-normalize -> Enables the normalize command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-normalize" - ] - }, - { - "description": "path:allow-resolve -> Enables the resolve command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-resolve" - ] - }, - { - "description": "path:allow-resolve-directory -> Enables the resolve_directory command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-resolve-directory" - ] - }, - { - "description": "path:deny-basename -> Denies the basename command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-basename" - ] - }, - { - "description": "path:deny-dirname -> Denies the dirname command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-dirname" - ] - }, - { - "description": "path:deny-extname -> Denies the extname command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-extname" - ] - }, - { - "description": "path:deny-is-absolute -> Denies the is_absolute command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-is-absolute" - ] - }, - { - "description": "path:deny-join -> Denies the join command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-join" - ] - }, - { - "description": "path:deny-normalize -> Denies the normalize command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-normalize" - ] - }, - { - "description": "path:deny-resolve -> Denies the resolve command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-resolve" - ] - }, - { - "description": "path:deny-resolve-directory -> Denies the resolve_directory command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-resolve-directory" - ] - }, - { - "description": "resources:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "resources:default" - ] - }, - { - "description": "resources:allow-close -> Enables the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "resources:allow-close" - ] - }, - { - "description": "resources:deny-close -> Denies the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "resources:deny-close" - ] - }, - { - "type": "string", - "enum": [ - "shell:default" - ] - }, - { - "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-execute" - ] - }, - { - "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-kill" - ] - }, - { - "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-open" - ] - }, - { - "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-stdin-write" - ] - }, - { - "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-execute" - ] - }, - { - "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-kill" - ] - }, - { - "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-open" - ] - }, - { - "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-stdin-write" - ] - }, - { - "type": "string", - "enum": [ - "theme:default" - ] - }, - { - "description": "theme:allow-get-theme -> Enables the get_theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "theme:allow-get-theme" - ] - }, - { - "description": "theme:allow-set-theme -> Enables the set_theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "theme:allow-set-theme" - ] - }, - { - "description": "theme:deny-get-theme -> Denies the get_theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "theme:deny-get-theme" - ] - }, - { - "description": "theme:deny-set-theme -> Denies the set_theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "theme:deny-set-theme" - ] - }, - { - "description": "tray:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "tray:default" - ] - }, - { - "description": "tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-get-by-id" - ] - }, - { - "description": "tray:allow-new -> Enables the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-new" - ] - }, - { - "description": "tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-remove-by-id" - ] - }, - { - "description": "tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-icon" - ] - }, - { - "description": "tray:allow-set-icon-as-template -> Enables the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-icon-as-template" - ] - }, - { - "description": "tray:allow-set-menu -> Enables the set_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-menu" - ] - }, - { - "description": "tray:allow-set-show-menu-on-left-click -> Enables the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-show-menu-on-left-click" - ] - }, - { - "description": "tray:allow-set-temp-dir-path -> Enables the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-temp-dir-path" - ] - }, - { - "description": "tray:allow-set-title -> Enables the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-title" - ] - }, - { - "description": "tray:allow-set-tooltip -> Enables the set_tooltip command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-tooltip" - ] - }, - { - "description": "tray:allow-set-visible -> Enables the set_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-visible" - ] - }, - { - "description": "tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-get-by-id" - ] - }, - { - "description": "tray:deny-new -> Denies the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-new" - ] - }, - { - "description": "tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-remove-by-id" - ] - }, - { - "description": "tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-icon" - ] - }, - { - "description": "tray:deny-set-icon-as-template -> Denies the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-icon-as-template" - ] - }, - { - "description": "tray:deny-set-menu -> Denies the set_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-menu" - ] - }, - { - "description": "tray:deny-set-show-menu-on-left-click -> Denies the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-show-menu-on-left-click" - ] - }, - { - "description": "tray:deny-set-temp-dir-path -> Denies the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-temp-dir-path" - ] - }, - { - "description": "tray:deny-set-title -> Denies the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-title" - ] - }, - { - "description": "tray:deny-set-tooltip -> Denies the set_tooltip command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-tooltip" - ] - }, - { - "description": "tray:deny-set-visible -> Denies the set_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-visible" - ] - }, - { - "description": "webview:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "webview:default" - ] - }, - { - "description": "webview:allow-create-webview -> Enables the create_webview command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-create-webview" - ] - }, - { - "description": "webview:allow-create-webview-window -> Enables the create_webview_window command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-create-webview-window" - ] - }, - { - "description": "webview:allow-internal-toggle-devtools -> Enables the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-internal-toggle-devtools" - ] - }, - { - "description": "webview:allow-print -> Enables the print command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-print" - ] - }, - { - "description": "webview:allow-reparent -> Enables the reparent command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-reparent" - ] - }, - { - "description": "webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-set-webview-focus" - ] - }, - { - "description": "webview:allow-set-webview-position -> Enables the set_webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-set-webview-position" - ] - }, - { - "description": "webview:allow-set-webview-size -> Enables the set_webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-set-webview-size" - ] - }, - { - "description": "webview:allow-set-webview-zoom -> Enables the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-set-webview-zoom" - ] - }, - { - "description": "webview:allow-webview-close -> Enables the webview_close command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-webview-close" - ] - }, - { - "description": "webview:allow-webview-position -> Enables the webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-webview-position" - ] - }, - { - "description": "webview:allow-webview-size -> Enables the webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-webview-size" - ] - }, - { - "description": "webview:deny-create-webview -> Denies the create_webview command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-create-webview" - ] - }, - { - "description": "webview:deny-create-webview-window -> Denies the create_webview_window command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-create-webview-window" - ] - }, - { - "description": "webview:deny-internal-toggle-devtools -> Denies the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-internal-toggle-devtools" - ] - }, - { - "description": "webview:deny-print -> Denies the print command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-print" - ] - }, - { - "description": "webview:deny-reparent -> Denies the reparent command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-reparent" - ] - }, - { - "description": "webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-set-webview-focus" - ] - }, - { - "description": "webview:deny-set-webview-position -> Denies the set_webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-set-webview-position" - ] - }, - { - "description": "webview:deny-set-webview-size -> Denies the set_webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-set-webview-size" - ] - }, - { - "description": "webview:deny-set-webview-zoom -> Denies the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-set-webview-zoom" - ] - }, - { - "description": "webview:deny-webview-close -> Denies the webview_close command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-webview-close" - ] - }, - { - "description": "webview:deny-webview-position -> Denies the webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-webview-position" - ] - }, - { - "description": "webview:deny-webview-size -> Denies the webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-webview-size" - ] - }, - { - "description": "window:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "window:default" - ] - }, - { - "description": "window:allow-available-monitors -> Enables the available_monitors command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-available-monitors" - ] - }, - { - "description": "window:allow-center -> Enables the center command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-center" - ] - }, - { - "description": "window:allow-close -> Enables the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-close" - ] - }, - { - "description": "window:allow-create -> Enables the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-create" - ] - }, - { - "description": "window:allow-current-monitor -> Enables the current_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-current-monitor" - ] - }, - { - "description": "window:allow-destroy -> Enables the destroy command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-destroy" - ] - }, - { - "description": "window:allow-hide -> Enables the hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-hide" - ] - }, - { - "description": "window:allow-inner-position -> Enables the inner_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-inner-position" - ] - }, - { - "description": "window:allow-inner-size -> Enables the inner_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-inner-size" - ] - }, - { - "description": "window:allow-internal-toggle-maximize -> Enables the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-internal-toggle-maximize" - ] - }, - { - "description": "window:allow-is-closable -> Enables the is_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-closable" - ] - }, - { - "description": "window:allow-is-decorated -> Enables the is_decorated command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-decorated" - ] - }, - { - "description": "window:allow-is-focused -> Enables the is_focused command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-focused" - ] - }, - { - "description": "window:allow-is-fullscreen -> Enables the is_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-fullscreen" - ] - }, - { - "description": "window:allow-is-maximizable -> Enables the is_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-maximizable" - ] - }, - { - "description": "window:allow-is-maximized -> Enables the is_maximized command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-maximized" - ] - }, - { - "description": "window:allow-is-minimizable -> Enables the is_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-minimizable" - ] - }, - { - "description": "window:allow-is-minimized -> Enables the is_minimized command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-minimized" - ] - }, - { - "description": "window:allow-is-resizable -> Enables the is_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-resizable" - ] - }, - { - "description": "window:allow-is-visible -> Enables the is_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-visible" - ] - }, - { - "description": "window:allow-maximize -> Enables the maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-maximize" - ] - }, - { - "description": "window:allow-minimize -> Enables the minimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-minimize" - ] - }, - { - "description": "window:allow-outer-position -> Enables the outer_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-outer-position" - ] - }, - { - "description": "window:allow-outer-size -> Enables the outer_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-outer-size" - ] - }, - { - "description": "window:allow-primary-monitor -> Enables the primary_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-primary-monitor" - ] - }, - { - "description": "window:allow-request-user-attention -> Enables the request_user_attention command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-request-user-attention" - ] - }, - { - "description": "window:allow-scale-factor -> Enables the scale_factor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-scale-factor" - ] - }, - { - "description": "window:allow-set-always-on-bottom -> Enables the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-always-on-bottom" - ] - }, - { - "description": "window:allow-set-always-on-top -> Enables the set_always_on_top command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-always-on-top" - ] - }, - { - "description": "window:allow-set-closable -> Enables the set_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-closable" - ] - }, - { - "description": "window:allow-set-content-protected -> Enables the set_content_protected command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-content-protected" - ] - }, - { - "description": "window:allow-set-cursor-grab -> Enables the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-cursor-grab" - ] - }, - { - "description": "window:allow-set-cursor-icon -> Enables the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-cursor-icon" - ] - }, - { - "description": "window:allow-set-cursor-position -> Enables the set_cursor_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-cursor-position" - ] - }, - { - "description": "window:allow-set-cursor-visible -> Enables the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-cursor-visible" - ] - }, - { - "description": "window:allow-set-decorations -> Enables the set_decorations command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-decorations" - ] - }, - { - "description": "window:allow-set-effects -> Enables the set_effects command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-effects" - ] - }, - { - "description": "window:allow-set-focus -> Enables the set_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-focus" - ] - }, - { - "description": "window:allow-set-fullscreen -> Enables the set_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-fullscreen" - ] - }, - { - "description": "window:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-icon" - ] - }, - { - "description": "window:allow-set-ignore-cursor-events -> Enables the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-ignore-cursor-events" - ] - }, - { - "description": "window:allow-set-max-size -> Enables the set_max_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-max-size" - ] - }, - { - "description": "window:allow-set-maximizable -> Enables the set_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-maximizable" - ] - }, - { - "description": "window:allow-set-min-size -> Enables the set_min_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-min-size" - ] - }, - { - "description": "window:allow-set-minimizable -> Enables the set_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-minimizable" - ] - }, - { - "description": "window:allow-set-position -> Enables the set_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-position" - ] - }, - { - "description": "window:allow-set-progress-bar -> Enables the set_progress_bar command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-progress-bar" - ] - }, - { - "description": "window:allow-set-resizable -> Enables the set_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-resizable" - ] - }, - { - "description": "window:allow-set-shadow -> Enables the set_shadow command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-shadow" - ] - }, - { - "description": "window:allow-set-size -> Enables the set_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-size" - ] - }, - { - "description": "window:allow-set-skip-taskbar -> Enables the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-skip-taskbar" - ] - }, - { - "description": "window:allow-set-title -> Enables the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-title" - ] - }, - { - "description": "window:allow-set-visible-on-all-workspaces -> Enables the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-visible-on-all-workspaces" - ] - }, - { - "description": "window:allow-show -> Enables the show command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-show" - ] - }, - { - "description": "window:allow-start-dragging -> Enables the start_dragging command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-start-dragging" - ] - }, - { - "description": "window:allow-theme -> Enables the theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-theme" - ] - }, - { - "description": "window:allow-title -> Enables the title command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-title" - ] - }, - { - "description": "window:allow-toggle-maximize -> Enables the toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-toggle-maximize" - ] - }, - { - "description": "window:allow-unmaximize -> Enables the unmaximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-unmaximize" - ] - }, - { - "description": "window:allow-unminimize -> Enables the unminimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-unminimize" - ] - }, - { - "description": "window:deny-available-monitors -> Denies the available_monitors command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-available-monitors" - ] - }, - { - "description": "window:deny-center -> Denies the center command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-center" - ] - }, - { - "description": "window:deny-close -> Denies the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-close" - ] - }, - { - "description": "window:deny-create -> Denies the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-create" - ] - }, - { - "description": "window:deny-current-monitor -> Denies the current_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-current-monitor" - ] - }, - { - "description": "window:deny-destroy -> Denies the destroy command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-destroy" - ] - }, - { - "description": "window:deny-hide -> Denies the hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-hide" - ] - }, - { - "description": "window:deny-inner-position -> Denies the inner_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-inner-position" - ] - }, - { - "description": "window:deny-inner-size -> Denies the inner_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-inner-size" - ] - }, - { - "description": "window:deny-internal-toggle-maximize -> Denies the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-internal-toggle-maximize" - ] - }, - { - "description": "window:deny-is-closable -> Denies the is_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-closable" - ] - }, - { - "description": "window:deny-is-decorated -> Denies the is_decorated command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-decorated" - ] - }, - { - "description": "window:deny-is-focused -> Denies the is_focused command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-focused" - ] - }, - { - "description": "window:deny-is-fullscreen -> Denies the is_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-fullscreen" - ] - }, - { - "description": "window:deny-is-maximizable -> Denies the is_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-maximizable" - ] - }, - { - "description": "window:deny-is-maximized -> Denies the is_maximized command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-maximized" - ] - }, - { - "description": "window:deny-is-minimizable -> Denies the is_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-minimizable" - ] - }, - { - "description": "window:deny-is-minimized -> Denies the is_minimized command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-minimized" - ] - }, - { - "description": "window:deny-is-resizable -> Denies the is_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-resizable" - ] - }, - { - "description": "window:deny-is-visible -> Denies the is_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-visible" - ] - }, - { - "description": "window:deny-maximize -> Denies the maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-maximize" - ] - }, - { - "description": "window:deny-minimize -> Denies the minimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-minimize" - ] - }, - { - "description": "window:deny-outer-position -> Denies the outer_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-outer-position" - ] - }, - { - "description": "window:deny-outer-size -> Denies the outer_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-outer-size" - ] - }, - { - "description": "window:deny-primary-monitor -> Denies the primary_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-primary-monitor" - ] - }, - { - "description": "window:deny-request-user-attention -> Denies the request_user_attention command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-request-user-attention" - ] - }, - { - "description": "window:deny-scale-factor -> Denies the scale_factor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-scale-factor" - ] - }, - { - "description": "window:deny-set-always-on-bottom -> Denies the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-always-on-bottom" - ] - }, - { - "description": "window:deny-set-always-on-top -> Denies the set_always_on_top command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-always-on-top" - ] - }, - { - "description": "window:deny-set-closable -> Denies the set_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-closable" - ] - }, - { - "description": "window:deny-set-content-protected -> Denies the set_content_protected command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-content-protected" - ] - }, - { - "description": "window:deny-set-cursor-grab -> Denies the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-cursor-grab" - ] - }, - { - "description": "window:deny-set-cursor-icon -> Denies the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-cursor-icon" - ] - }, - { - "description": "window:deny-set-cursor-position -> Denies the set_cursor_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-cursor-position" - ] - }, - { - "description": "window:deny-set-cursor-visible -> Denies the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-cursor-visible" - ] - }, - { - "description": "window:deny-set-decorations -> Denies the set_decorations command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-decorations" - ] - }, - { - "description": "window:deny-set-effects -> Denies the set_effects command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-effects" - ] - }, - { - "description": "window:deny-set-focus -> Denies the set_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-focus" - ] - }, - { - "description": "window:deny-set-fullscreen -> Denies the set_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-fullscreen" - ] - }, - { - "description": "window:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-icon" - ] - }, - { - "description": "window:deny-set-ignore-cursor-events -> Denies the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-ignore-cursor-events" - ] - }, - { - "description": "window:deny-set-max-size -> Denies the set_max_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-max-size" - ] - }, - { - "description": "window:deny-set-maximizable -> Denies the set_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-maximizable" - ] - }, - { - "description": "window:deny-set-min-size -> Denies the set_min_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-min-size" - ] - }, - { - "description": "window:deny-set-minimizable -> Denies the set_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-minimizable" - ] - }, - { - "description": "window:deny-set-position -> Denies the set_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-position" - ] - }, - { - "description": "window:deny-set-progress-bar -> Denies the set_progress_bar command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-progress-bar" - ] - }, - { - "description": "window:deny-set-resizable -> Denies the set_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-resizable" - ] - }, - { - "description": "window:deny-set-shadow -> Denies the set_shadow command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-shadow" - ] - }, - { - "description": "window:deny-set-size -> Denies the set_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-size" - ] - }, - { - "description": "window:deny-set-skip-taskbar -> Denies the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-skip-taskbar" - ] - }, - { - "description": "window:deny-set-title -> Denies the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-title" - ] - }, - { - "description": "window:deny-set-visible-on-all-workspaces -> Denies the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-visible-on-all-workspaces" - ] - }, - { - "description": "window:deny-show -> Denies the show command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-show" - ] - }, - { - "description": "window:deny-start-dragging -> Denies the start_dragging command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-start-dragging" - ] - }, - { - "description": "window:deny-theme -> Denies the theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-theme" - ] - }, - { - "description": "window:deny-title -> Denies the title command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-title" - ] - }, - { - "description": "window:deny-toggle-maximize -> Denies the toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-toggle-maximize" - ] - }, - { - "description": "window:deny-unmaximize -> Denies the unmaximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-unmaximize" - ] - }, - { - "description": "window:deny-unminimize -> Denies the unminimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-unminimize" - ] - } - ] - }, - "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" - ] - } - ] - }, - "ShellAllowedArg": { - "description": "A command argument allowed to be executed by the webview API.", - "anyOf": [ - { - "description": "A non-configurable argument that is passed to the command in the order it was specified.", - "type": "string" - }, - { - "description": "A variable that is set while calling the command from the webview API.", - "type": "object", - "required": [ - "validator" - ], - "properties": { - "validator": { - "description": "[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\n[regex]: https://docs.rs/regex/latest/regex/#syntax", - "type": "string" - } - }, - "additionalProperties": false - } - ] - }, - "ShellAllowedArgs": { - "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", - "anyOf": [ - { - "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", - "type": "boolean" - }, - { - "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.", - "type": "array", - "items": { - "$ref": "#/definitions/ShellAllowedArg" - } - } - ] - } - } -} \ No newline at end of file diff --git a/src-tauri/gen/schemas/linux-schema.json b/src-tauri/gen/schemas/linux-schema.json deleted file mode 100644 index 9ea0e600..00000000 --- a/src-tauri/gen/schemas/linux-schema.json +++ /dev/null @@ -1,2373 +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 separate windows or plugins functionality from each other at runtime.\n\nIf a window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create trust groups and reduce impact of vulnerabilities in certain plugins or windows. Windows can be added to a capability by exact name or glob patterns like *, admin-* or main-window.", - "type": "object", - "required": [ - "identifier", - "permissions" - ], - "properties": { - "identifier": { - "description": "Identifier of the capability.", - "type": "string" - }, - "description": { - "description": "Description of the capability.", - "default": "", - "type": "string" - }, - "remote": { - "description": "Configure remote URLs that can use the capability permissions.", - "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 uses this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.", - "type": "array", - "items": { - "type": "string" - } - }, - "webviews": { - "description": "List of webviews that uses this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.", - "type": "array", - "items": { - "type": "string" - } - }, - "permissions": { - "description": "List of permissions attached to this capability. Must include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`.", - "type": "array", - "items": { - "$ref": "#/definitions/PermissionEntry" - } - }, - "platforms": { - "description": "Target platforms this capability applies. By default all platforms are affected by this capability.", - "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", - "oneOf": [ - { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "oneOf": [ - { - "type": "string", - "enum": [ - "shell:default" - ] - }, - { - "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-execute" - ] - }, - { - "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-kill" - ] - }, - { - "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-open" - ] - }, - { - "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-stdin-write" - ] - }, - { - "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-execute" - ] - }, - { - "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-kill" - ] - }, - { - "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-open" - ] - }, - { - "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-stdin-write" - ] - } - ] - }, - "allow": { - "items": { - "title": "Entry", - "description": "A command allowed to be executed by the webview API.", - "type": "object", - "required": [ - "args", - "cmd", - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - } - } - }, - "deny": { - "items": { - "title": "Entry", - "description": "A command allowed to be executed by the webview API.", - "type": "object", - "required": [ - "args", - "cmd", - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - } - } - } - } - } - ] - } - ] - }, - "Identifier": { - "oneOf": [ - { - "description": "app:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "app:default" - ] - }, - { - "description": "app:allow-app-hide -> Enables the app_hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-app-hide" - ] - }, - { - "description": "app:allow-app-show -> Enables the app_show command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-app-show" - ] - }, - { - "description": "app:allow-name -> Enables the name command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-name" - ] - }, - { - "description": "app:allow-tauri-version -> Enables the tauri_version command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-tauri-version" - ] - }, - { - "description": "app:allow-version -> Enables the version command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-version" - ] - }, - { - "description": "app:deny-app-hide -> Denies the app_hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-app-hide" - ] - }, - { - "description": "app:deny-app-show -> Denies the app_show command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-app-show" - ] - }, - { - "description": "app:deny-name -> Denies the name command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-name" - ] - }, - { - "description": "app:deny-tauri-version -> Denies the tauri_version command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-tauri-version" - ] - }, - { - "description": "app:deny-version -> Denies the version command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-version" - ] - }, - { - "description": "event:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "event:default" - ] - }, - { - "description": "event:allow-emit -> Enables the emit command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:allow-emit" - ] - }, - { - "description": "event:allow-emit-to -> Enables the emit_to command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:allow-emit-to" - ] - }, - { - "description": "event:allow-listen -> Enables the listen command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:allow-listen" - ] - }, - { - "description": "event:allow-unlisten -> Enables the unlisten command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:allow-unlisten" - ] - }, - { - "description": "event:deny-emit -> Denies the emit command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:deny-emit" - ] - }, - { - "description": "event:deny-emit-to -> Denies the emit_to command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:deny-emit-to" - ] - }, - { - "description": "event:deny-listen -> Denies the listen command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:deny-listen" - ] - }, - { - "description": "event:deny-unlisten -> Denies the unlisten command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:deny-unlisten" - ] - }, - { - "description": "image:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "image:default" - ] - }, - { - "description": "image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-from-bytes" - ] - }, - { - "description": "image:allow-from-path -> Enables the from_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-from-path" - ] - }, - { - "description": "image:allow-new -> Enables the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-new" - ] - }, - { - "description": "image:allow-rgba -> Enables the rgba command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-rgba" - ] - }, - { - "description": "image:allow-size -> Enables the size command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-size" - ] - }, - { - "description": "image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-from-bytes" - ] - }, - { - "description": "image:deny-from-path -> Denies the from_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-from-path" - ] - }, - { - "description": "image:deny-new -> Denies the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-new" - ] - }, - { - "description": "image:deny-rgba -> Denies the rgba command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-rgba" - ] - }, - { - "description": "image:deny-size -> Denies the size command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-size" - ] - }, - { - "description": "menu:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "menu:default" - ] - }, - { - "description": "menu:allow-append -> Enables the append command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-append" - ] - }, - { - "description": "menu:allow-create-default -> Enables the create_default command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-create-default" - ] - }, - { - "description": "menu:allow-get -> Enables the get command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-get" - ] - }, - { - "description": "menu:allow-insert -> Enables the insert command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-insert" - ] - }, - { - "description": "menu:allow-is-checked -> Enables the is_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-is-checked" - ] - }, - { - "description": "menu:allow-is-enabled -> Enables the is_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-is-enabled" - ] - }, - { - "description": "menu:allow-items -> Enables the items command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-items" - ] - }, - { - "description": "menu:allow-new -> Enables the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-new" - ] - }, - { - "description": "menu:allow-popup -> Enables the popup command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-popup" - ] - }, - { - "description": "menu:allow-prepend -> Enables the prepend command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-prepend" - ] - }, - { - "description": "menu:allow-remove -> Enables the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-remove" - ] - }, - { - "description": "menu:allow-remove-at -> Enables the remove_at command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-remove-at" - ] - }, - { - "description": "menu:allow-set-accelerator -> Enables the set_accelerator command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-accelerator" - ] - }, - { - "description": "menu:allow-set-as-app-menu -> Enables the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-as-app-menu" - ] - }, - { - "description": "menu:allow-set-as-help-menu-for-nsapp -> Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-as-help-menu-for-nsapp" - ] - }, - { - "description": "menu:allow-set-as-window-menu -> Enables the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-as-window-menu" - ] - }, - { - "description": "menu:allow-set-as-windows-menu-for-nsapp -> Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-as-windows-menu-for-nsapp" - ] - }, - { - "description": "menu:allow-set-checked -> Enables the set_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-checked" - ] - }, - { - "description": "menu:allow-set-enabled -> Enables the set_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-enabled" - ] - }, - { - "description": "menu:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-icon" - ] - }, - { - "description": "menu:allow-set-text -> Enables the set_text command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-text" - ] - }, - { - "description": "menu:allow-text -> Enables the text command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-text" - ] - }, - { - "description": "menu:deny-append -> Denies the append command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-append" - ] - }, - { - "description": "menu:deny-create-default -> Denies the create_default command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-create-default" - ] - }, - { - "description": "menu:deny-get -> Denies the get command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-get" - ] - }, - { - "description": "menu:deny-insert -> Denies the insert command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-insert" - ] - }, - { - "description": "menu:deny-is-checked -> Denies the is_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-is-checked" - ] - }, - { - "description": "menu:deny-is-enabled -> Denies the is_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-is-enabled" - ] - }, - { - "description": "menu:deny-items -> Denies the items command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-items" - ] - }, - { - "description": "menu:deny-new -> Denies the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-new" - ] - }, - { - "description": "menu:deny-popup -> Denies the popup command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-popup" - ] - }, - { - "description": "menu:deny-prepend -> Denies the prepend command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-prepend" - ] - }, - { - "description": "menu:deny-remove -> Denies the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-remove" - ] - }, - { - "description": "menu:deny-remove-at -> Denies the remove_at command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-remove-at" - ] - }, - { - "description": "menu:deny-set-accelerator -> Denies the set_accelerator command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-accelerator" - ] - }, - { - "description": "menu:deny-set-as-app-menu -> Denies the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-as-app-menu" - ] - }, - { - "description": "menu:deny-set-as-help-menu-for-nsapp -> Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-as-help-menu-for-nsapp" - ] - }, - { - "description": "menu:deny-set-as-window-menu -> Denies the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-as-window-menu" - ] - }, - { - "description": "menu:deny-set-as-windows-menu-for-nsapp -> Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-as-windows-menu-for-nsapp" - ] - }, - { - "description": "menu:deny-set-checked -> Denies the set_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-checked" - ] - }, - { - "description": "menu:deny-set-enabled -> Denies the set_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-enabled" - ] - }, - { - "description": "menu:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-icon" - ] - }, - { - "description": "menu:deny-set-text -> Denies the set_text command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-text" - ] - }, - { - "description": "menu:deny-text -> Denies the text command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-text" - ] - }, - { - "description": "path:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "path:default" - ] - }, - { - "description": "path:allow-basename -> Enables the basename command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-basename" - ] - }, - { - "description": "path:allow-dirname -> Enables the dirname command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-dirname" - ] - }, - { - "description": "path:allow-extname -> Enables the extname command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-extname" - ] - }, - { - "description": "path:allow-is-absolute -> Enables the is_absolute command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-is-absolute" - ] - }, - { - "description": "path:allow-join -> Enables the join command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-join" - ] - }, - { - "description": "path:allow-normalize -> Enables the normalize command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-normalize" - ] - }, - { - "description": "path:allow-resolve -> Enables the resolve command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-resolve" - ] - }, - { - "description": "path:allow-resolve-directory -> Enables the resolve_directory command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-resolve-directory" - ] - }, - { - "description": "path:deny-basename -> Denies the basename command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-basename" - ] - }, - { - "description": "path:deny-dirname -> Denies the dirname command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-dirname" - ] - }, - { - "description": "path:deny-extname -> Denies the extname command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-extname" - ] - }, - { - "description": "path:deny-is-absolute -> Denies the is_absolute command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-is-absolute" - ] - }, - { - "description": "path:deny-join -> Denies the join command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-join" - ] - }, - { - "description": "path:deny-normalize -> Denies the normalize command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-normalize" - ] - }, - { - "description": "path:deny-resolve -> Denies the resolve command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-resolve" - ] - }, - { - "description": "path:deny-resolve-directory -> Denies the resolve_directory command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-resolve-directory" - ] - }, - { - "description": "resources:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "resources:default" - ] - }, - { - "description": "resources:allow-close -> Enables the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "resources:allow-close" - ] - }, - { - "description": "resources:deny-close -> Denies the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "resources:deny-close" - ] - }, - { - "type": "string", - "enum": [ - "shell:default" - ] - }, - { - "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-execute" - ] - }, - { - "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-kill" - ] - }, - { - "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-open" - ] - }, - { - "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-stdin-write" - ] - }, - { - "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-execute" - ] - }, - { - "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-kill" - ] - }, - { - "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-open" - ] - }, - { - "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-stdin-write" - ] - }, - { - "type": "string", - "enum": [ - "theme:default" - ] - }, - { - "description": "theme:allow-get-theme -> Enables the get_theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "theme:allow-get-theme" - ] - }, - { - "description": "theme:allow-set-theme -> Enables the set_theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "theme:allow-set-theme" - ] - }, - { - "description": "theme:deny-get-theme -> Denies the get_theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "theme:deny-get-theme" - ] - }, - { - "description": "theme:deny-set-theme -> Denies the set_theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "theme:deny-set-theme" - ] - }, - { - "description": "tray:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "tray:default" - ] - }, - { - "description": "tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-get-by-id" - ] - }, - { - "description": "tray:allow-new -> Enables the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-new" - ] - }, - { - "description": "tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-remove-by-id" - ] - }, - { - "description": "tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-icon" - ] - }, - { - "description": "tray:allow-set-icon-as-template -> Enables the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-icon-as-template" - ] - }, - { - "description": "tray:allow-set-menu -> Enables the set_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-menu" - ] - }, - { - "description": "tray:allow-set-show-menu-on-left-click -> Enables the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-show-menu-on-left-click" - ] - }, - { - "description": "tray:allow-set-temp-dir-path -> Enables the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-temp-dir-path" - ] - }, - { - "description": "tray:allow-set-title -> Enables the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-title" - ] - }, - { - "description": "tray:allow-set-tooltip -> Enables the set_tooltip command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-tooltip" - ] - }, - { - "description": "tray:allow-set-visible -> Enables the set_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-visible" - ] - }, - { - "description": "tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-get-by-id" - ] - }, - { - "description": "tray:deny-new -> Denies the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-new" - ] - }, - { - "description": "tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-remove-by-id" - ] - }, - { - "description": "tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-icon" - ] - }, - { - "description": "tray:deny-set-icon-as-template -> Denies the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-icon-as-template" - ] - }, - { - "description": "tray:deny-set-menu -> Denies the set_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-menu" - ] - }, - { - "description": "tray:deny-set-show-menu-on-left-click -> Denies the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-show-menu-on-left-click" - ] - }, - { - "description": "tray:deny-set-temp-dir-path -> Denies the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-temp-dir-path" - ] - }, - { - "description": "tray:deny-set-title -> Denies the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-title" - ] - }, - { - "description": "tray:deny-set-tooltip -> Denies the set_tooltip command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-tooltip" - ] - }, - { - "description": "tray:deny-set-visible -> Denies the set_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-visible" - ] - }, - { - "description": "webview:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "webview:default" - ] - }, - { - "description": "webview:allow-create-webview -> Enables the create_webview command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-create-webview" - ] - }, - { - "description": "webview:allow-create-webview-window -> Enables the create_webview_window command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-create-webview-window" - ] - }, - { - "description": "webview:allow-internal-toggle-devtools -> Enables the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-internal-toggle-devtools" - ] - }, - { - "description": "webview:allow-print -> Enables the print command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-print" - ] - }, - { - "description": "webview:allow-reparent -> Enables the reparent command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-reparent" - ] - }, - { - "description": "webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-set-webview-focus" - ] - }, - { - "description": "webview:allow-set-webview-position -> Enables the set_webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-set-webview-position" - ] - }, - { - "description": "webview:allow-set-webview-size -> Enables the set_webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-set-webview-size" - ] - }, - { - "description": "webview:allow-set-webview-zoom -> Enables the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-set-webview-zoom" - ] - }, - { - "description": "webview:allow-webview-close -> Enables the webview_close command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-webview-close" - ] - }, - { - "description": "webview:allow-webview-position -> Enables the webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-webview-position" - ] - }, - { - "description": "webview:allow-webview-size -> Enables the webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-webview-size" - ] - }, - { - "description": "webview:deny-create-webview -> Denies the create_webview command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-create-webview" - ] - }, - { - "description": "webview:deny-create-webview-window -> Denies the create_webview_window command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-create-webview-window" - ] - }, - { - "description": "webview:deny-internal-toggle-devtools -> Denies the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-internal-toggle-devtools" - ] - }, - { - "description": "webview:deny-print -> Denies the print command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-print" - ] - }, - { - "description": "webview:deny-reparent -> Denies the reparent command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-reparent" - ] - }, - { - "description": "webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-set-webview-focus" - ] - }, - { - "description": "webview:deny-set-webview-position -> Denies the set_webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-set-webview-position" - ] - }, - { - "description": "webview:deny-set-webview-size -> Denies the set_webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-set-webview-size" - ] - }, - { - "description": "webview:deny-set-webview-zoom -> Denies the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-set-webview-zoom" - ] - }, - { - "description": "webview:deny-webview-close -> Denies the webview_close command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-webview-close" - ] - }, - { - "description": "webview:deny-webview-position -> Denies the webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-webview-position" - ] - }, - { - "description": "webview:deny-webview-size -> Denies the webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-webview-size" - ] - }, - { - "description": "window:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "window:default" - ] - }, - { - "description": "window:allow-available-monitors -> Enables the available_monitors command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-available-monitors" - ] - }, - { - "description": "window:allow-center -> Enables the center command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-center" - ] - }, - { - "description": "window:allow-close -> Enables the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-close" - ] - }, - { - "description": "window:allow-create -> Enables the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-create" - ] - }, - { - "description": "window:allow-current-monitor -> Enables the current_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-current-monitor" - ] - }, - { - "description": "window:allow-destroy -> Enables the destroy command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-destroy" - ] - }, - { - "description": "window:allow-hide -> Enables the hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-hide" - ] - }, - { - "description": "window:allow-inner-position -> Enables the inner_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-inner-position" - ] - }, - { - "description": "window:allow-inner-size -> Enables the inner_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-inner-size" - ] - }, - { - "description": "window:allow-internal-toggle-maximize -> Enables the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-internal-toggle-maximize" - ] - }, - { - "description": "window:allow-is-closable -> Enables the is_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-closable" - ] - }, - { - "description": "window:allow-is-decorated -> Enables the is_decorated command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-decorated" - ] - }, - { - "description": "window:allow-is-focused -> Enables the is_focused command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-focused" - ] - }, - { - "description": "window:allow-is-fullscreen -> Enables the is_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-fullscreen" - ] - }, - { - "description": "window:allow-is-maximizable -> Enables the is_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-maximizable" - ] - }, - { - "description": "window:allow-is-maximized -> Enables the is_maximized command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-maximized" - ] - }, - { - "description": "window:allow-is-minimizable -> Enables the is_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-minimizable" - ] - }, - { - "description": "window:allow-is-minimized -> Enables the is_minimized command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-minimized" - ] - }, - { - "description": "window:allow-is-resizable -> Enables the is_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-resizable" - ] - }, - { - "description": "window:allow-is-visible -> Enables the is_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-visible" - ] - }, - { - "description": "window:allow-maximize -> Enables the maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-maximize" - ] - }, - { - "description": "window:allow-minimize -> Enables the minimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-minimize" - ] - }, - { - "description": "window:allow-outer-position -> Enables the outer_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-outer-position" - ] - }, - { - "description": "window:allow-outer-size -> Enables the outer_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-outer-size" - ] - }, - { - "description": "window:allow-primary-monitor -> Enables the primary_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-primary-monitor" - ] - }, - { - "description": "window:allow-request-user-attention -> Enables the request_user_attention command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-request-user-attention" - ] - }, - { - "description": "window:allow-scale-factor -> Enables the scale_factor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-scale-factor" - ] - }, - { - "description": "window:allow-set-always-on-bottom -> Enables the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-always-on-bottom" - ] - }, - { - "description": "window:allow-set-always-on-top -> Enables the set_always_on_top command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-always-on-top" - ] - }, - { - "description": "window:allow-set-closable -> Enables the set_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-closable" - ] - }, - { - "description": "window:allow-set-content-protected -> Enables the set_content_protected command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-content-protected" - ] - }, - { - "description": "window:allow-set-cursor-grab -> Enables the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-cursor-grab" - ] - }, - { - "description": "window:allow-set-cursor-icon -> Enables the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-cursor-icon" - ] - }, - { - "description": "window:allow-set-cursor-position -> Enables the set_cursor_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-cursor-position" - ] - }, - { - "description": "window:allow-set-cursor-visible -> Enables the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-cursor-visible" - ] - }, - { - "description": "window:allow-set-decorations -> Enables the set_decorations command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-decorations" - ] - }, - { - "description": "window:allow-set-effects -> Enables the set_effects command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-effects" - ] - }, - { - "description": "window:allow-set-focus -> Enables the set_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-focus" - ] - }, - { - "description": "window:allow-set-fullscreen -> Enables the set_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-fullscreen" - ] - }, - { - "description": "window:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-icon" - ] - }, - { - "description": "window:allow-set-ignore-cursor-events -> Enables the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-ignore-cursor-events" - ] - }, - { - "description": "window:allow-set-max-size -> Enables the set_max_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-max-size" - ] - }, - { - "description": "window:allow-set-maximizable -> Enables the set_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-maximizable" - ] - }, - { - "description": "window:allow-set-min-size -> Enables the set_min_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-min-size" - ] - }, - { - "description": "window:allow-set-minimizable -> Enables the set_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-minimizable" - ] - }, - { - "description": "window:allow-set-position -> Enables the set_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-position" - ] - }, - { - "description": "window:allow-set-progress-bar -> Enables the set_progress_bar command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-progress-bar" - ] - }, - { - "description": "window:allow-set-resizable -> Enables the set_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-resizable" - ] - }, - { - "description": "window:allow-set-shadow -> Enables the set_shadow command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-shadow" - ] - }, - { - "description": "window:allow-set-size -> Enables the set_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-size" - ] - }, - { - "description": "window:allow-set-skip-taskbar -> Enables the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-skip-taskbar" - ] - }, - { - "description": "window:allow-set-title -> Enables the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-title" - ] - }, - { - "description": "window:allow-set-visible-on-all-workspaces -> Enables the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-visible-on-all-workspaces" - ] - }, - { - "description": "window:allow-show -> Enables the show command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-show" - ] - }, - { - "description": "window:allow-start-dragging -> Enables the start_dragging command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-start-dragging" - ] - }, - { - "description": "window:allow-theme -> Enables the theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-theme" - ] - }, - { - "description": "window:allow-title -> Enables the title command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-title" - ] - }, - { - "description": "window:allow-toggle-maximize -> Enables the toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-toggle-maximize" - ] - }, - { - "description": "window:allow-unmaximize -> Enables the unmaximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-unmaximize" - ] - }, - { - "description": "window:allow-unminimize -> Enables the unminimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-unminimize" - ] - }, - { - "description": "window:deny-available-monitors -> Denies the available_monitors command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-available-monitors" - ] - }, - { - "description": "window:deny-center -> Denies the center command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-center" - ] - }, - { - "description": "window:deny-close -> Denies the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-close" - ] - }, - { - "description": "window:deny-create -> Denies the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-create" - ] - }, - { - "description": "window:deny-current-monitor -> Denies the current_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-current-monitor" - ] - }, - { - "description": "window:deny-destroy -> Denies the destroy command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-destroy" - ] - }, - { - "description": "window:deny-hide -> Denies the hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-hide" - ] - }, - { - "description": "window:deny-inner-position -> Denies the inner_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-inner-position" - ] - }, - { - "description": "window:deny-inner-size -> Denies the inner_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-inner-size" - ] - }, - { - "description": "window:deny-internal-toggle-maximize -> Denies the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-internal-toggle-maximize" - ] - }, - { - "description": "window:deny-is-closable -> Denies the is_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-closable" - ] - }, - { - "description": "window:deny-is-decorated -> Denies the is_decorated command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-decorated" - ] - }, - { - "description": "window:deny-is-focused -> Denies the is_focused command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-focused" - ] - }, - { - "description": "window:deny-is-fullscreen -> Denies the is_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-fullscreen" - ] - }, - { - "description": "window:deny-is-maximizable -> Denies the is_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-maximizable" - ] - }, - { - "description": "window:deny-is-maximized -> Denies the is_maximized command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-maximized" - ] - }, - { - "description": "window:deny-is-minimizable -> Denies the is_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-minimizable" - ] - }, - { - "description": "window:deny-is-minimized -> Denies the is_minimized command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-minimized" - ] - }, - { - "description": "window:deny-is-resizable -> Denies the is_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-resizable" - ] - }, - { - "description": "window:deny-is-visible -> Denies the is_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-visible" - ] - }, - { - "description": "window:deny-maximize -> Denies the maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-maximize" - ] - }, - { - "description": "window:deny-minimize -> Denies the minimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-minimize" - ] - }, - { - "description": "window:deny-outer-position -> Denies the outer_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-outer-position" - ] - }, - { - "description": "window:deny-outer-size -> Denies the outer_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-outer-size" - ] - }, - { - "description": "window:deny-primary-monitor -> Denies the primary_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-primary-monitor" - ] - }, - { - "description": "window:deny-request-user-attention -> Denies the request_user_attention command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-request-user-attention" - ] - }, - { - "description": "window:deny-scale-factor -> Denies the scale_factor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-scale-factor" - ] - }, - { - "description": "window:deny-set-always-on-bottom -> Denies the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-always-on-bottom" - ] - }, - { - "description": "window:deny-set-always-on-top -> Denies the set_always_on_top command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-always-on-top" - ] - }, - { - "description": "window:deny-set-closable -> Denies the set_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-closable" - ] - }, - { - "description": "window:deny-set-content-protected -> Denies the set_content_protected command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-content-protected" - ] - }, - { - "description": "window:deny-set-cursor-grab -> Denies the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-cursor-grab" - ] - }, - { - "description": "window:deny-set-cursor-icon -> Denies the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-cursor-icon" - ] - }, - { - "description": "window:deny-set-cursor-position -> Denies the set_cursor_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-cursor-position" - ] - }, - { - "description": "window:deny-set-cursor-visible -> Denies the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-cursor-visible" - ] - }, - { - "description": "window:deny-set-decorations -> Denies the set_decorations command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-decorations" - ] - }, - { - "description": "window:deny-set-effects -> Denies the set_effects command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-effects" - ] - }, - { - "description": "window:deny-set-focus -> Denies the set_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-focus" - ] - }, - { - "description": "window:deny-set-fullscreen -> Denies the set_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-fullscreen" - ] - }, - { - "description": "window:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-icon" - ] - }, - { - "description": "window:deny-set-ignore-cursor-events -> Denies the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-ignore-cursor-events" - ] - }, - { - "description": "window:deny-set-max-size -> Denies the set_max_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-max-size" - ] - }, - { - "description": "window:deny-set-maximizable -> Denies the set_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-maximizable" - ] - }, - { - "description": "window:deny-set-min-size -> Denies the set_min_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-min-size" - ] - }, - { - "description": "window:deny-set-minimizable -> Denies the set_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-minimizable" - ] - }, - { - "description": "window:deny-set-position -> Denies the set_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-position" - ] - }, - { - "description": "window:deny-set-progress-bar -> Denies the set_progress_bar command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-progress-bar" - ] - }, - { - "description": "window:deny-set-resizable -> Denies the set_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-resizable" - ] - }, - { - "description": "window:deny-set-shadow -> Denies the set_shadow command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-shadow" - ] - }, - { - "description": "window:deny-set-size -> Denies the set_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-size" - ] - }, - { - "description": "window:deny-set-skip-taskbar -> Denies the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-skip-taskbar" - ] - }, - { - "description": "window:deny-set-title -> Denies the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-title" - ] - }, - { - "description": "window:deny-set-visible-on-all-workspaces -> Denies the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-visible-on-all-workspaces" - ] - }, - { - "description": "window:deny-show -> Denies the show command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-show" - ] - }, - { - "description": "window:deny-start-dragging -> Denies the start_dragging command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-start-dragging" - ] - }, - { - "description": "window:deny-theme -> Denies the theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-theme" - ] - }, - { - "description": "window:deny-title -> Denies the title command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-title" - ] - }, - { - "description": "window:deny-toggle-maximize -> Denies the toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-toggle-maximize" - ] - }, - { - "description": "window:deny-unmaximize -> Denies the unmaximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-unmaximize" - ] - }, - { - "description": "window:deny-unminimize -> Denies the unminimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-unminimize" - ] - } - ] - }, - "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" - ] - } - ] - }, - "ShellAllowedArg": { - "description": "A command argument allowed to be executed by the webview API.", - "anyOf": [ - { - "description": "A non-configurable argument that is passed to the command in the order it was specified.", - "type": "string" - }, - { - "description": "A variable that is set while calling the command from the webview API.", - "type": "object", - "required": [ - "validator" - ], - "properties": { - "validator": { - "description": "[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\n[regex]: https://docs.rs/regex/latest/regex/#syntax", - "type": "string" - } - }, - "additionalProperties": false - } - ] - }, - "ShellAllowedArgs": { - "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", - "anyOf": [ - { - "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", - "type": "boolean" - }, - { - "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.", - "type": "array", - "items": { - "$ref": "#/definitions/ShellAllowedArg" - } - } - ] - } - } -} \ No newline at end of file diff --git a/src-tauri/gen/schemas/macOS-schema.json b/src-tauri/gen/schemas/macOS-schema.json deleted file mode 100644 index 9ea0e600..00000000 --- a/src-tauri/gen/schemas/macOS-schema.json +++ /dev/null @@ -1,2373 +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 separate windows or plugins functionality from each other at runtime.\n\nIf a window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create trust groups and reduce impact of vulnerabilities in certain plugins or windows. Windows can be added to a capability by exact name or glob patterns like *, admin-* or main-window.", - "type": "object", - "required": [ - "identifier", - "permissions" - ], - "properties": { - "identifier": { - "description": "Identifier of the capability.", - "type": "string" - }, - "description": { - "description": "Description of the capability.", - "default": "", - "type": "string" - }, - "remote": { - "description": "Configure remote URLs that can use the capability permissions.", - "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 uses this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.", - "type": "array", - "items": { - "type": "string" - } - }, - "webviews": { - "description": "List of webviews that uses this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.", - "type": "array", - "items": { - "type": "string" - } - }, - "permissions": { - "description": "List of permissions attached to this capability. Must include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`.", - "type": "array", - "items": { - "$ref": "#/definitions/PermissionEntry" - } - }, - "platforms": { - "description": "Target platforms this capability applies. By default all platforms are affected by this capability.", - "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", - "oneOf": [ - { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "oneOf": [ - { - "type": "string", - "enum": [ - "shell:default" - ] - }, - { - "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-execute" - ] - }, - { - "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-kill" - ] - }, - { - "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-open" - ] - }, - { - "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-stdin-write" - ] - }, - { - "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-execute" - ] - }, - { - "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-kill" - ] - }, - { - "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-open" - ] - }, - { - "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-stdin-write" - ] - } - ] - }, - "allow": { - "items": { - "title": "Entry", - "description": "A command allowed to be executed by the webview API.", - "type": "object", - "required": [ - "args", - "cmd", - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - } - } - }, - "deny": { - "items": { - "title": "Entry", - "description": "A command allowed to be executed by the webview API.", - "type": "object", - "required": [ - "args", - "cmd", - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - } - } - } - } - } - ] - } - ] - }, - "Identifier": { - "oneOf": [ - { - "description": "app:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "app:default" - ] - }, - { - "description": "app:allow-app-hide -> Enables the app_hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-app-hide" - ] - }, - { - "description": "app:allow-app-show -> Enables the app_show command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-app-show" - ] - }, - { - "description": "app:allow-name -> Enables the name command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-name" - ] - }, - { - "description": "app:allow-tauri-version -> Enables the tauri_version command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-tauri-version" - ] - }, - { - "description": "app:allow-version -> Enables the version command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:allow-version" - ] - }, - { - "description": "app:deny-app-hide -> Denies the app_hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-app-hide" - ] - }, - { - "description": "app:deny-app-show -> Denies the app_show command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-app-show" - ] - }, - { - "description": "app:deny-name -> Denies the name command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-name" - ] - }, - { - "description": "app:deny-tauri-version -> Denies the tauri_version command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-tauri-version" - ] - }, - { - "description": "app:deny-version -> Denies the version command without any pre-configured scope.", - "type": "string", - "enum": [ - "app:deny-version" - ] - }, - { - "description": "event:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "event:default" - ] - }, - { - "description": "event:allow-emit -> Enables the emit command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:allow-emit" - ] - }, - { - "description": "event:allow-emit-to -> Enables the emit_to command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:allow-emit-to" - ] - }, - { - "description": "event:allow-listen -> Enables the listen command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:allow-listen" - ] - }, - { - "description": "event:allow-unlisten -> Enables the unlisten command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:allow-unlisten" - ] - }, - { - "description": "event:deny-emit -> Denies the emit command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:deny-emit" - ] - }, - { - "description": "event:deny-emit-to -> Denies the emit_to command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:deny-emit-to" - ] - }, - { - "description": "event:deny-listen -> Denies the listen command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:deny-listen" - ] - }, - { - "description": "event:deny-unlisten -> Denies the unlisten command without any pre-configured scope.", - "type": "string", - "enum": [ - "event:deny-unlisten" - ] - }, - { - "description": "image:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "image:default" - ] - }, - { - "description": "image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-from-bytes" - ] - }, - { - "description": "image:allow-from-path -> Enables the from_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-from-path" - ] - }, - { - "description": "image:allow-new -> Enables the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-new" - ] - }, - { - "description": "image:allow-rgba -> Enables the rgba command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-rgba" - ] - }, - { - "description": "image:allow-size -> Enables the size command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-size" - ] - }, - { - "description": "image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-from-bytes" - ] - }, - { - "description": "image:deny-from-path -> Denies the from_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-from-path" - ] - }, - { - "description": "image:deny-new -> Denies the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-new" - ] - }, - { - "description": "image:deny-rgba -> Denies the rgba command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-rgba" - ] - }, - { - "description": "image:deny-size -> Denies the size command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-size" - ] - }, - { - "description": "menu:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "menu:default" - ] - }, - { - "description": "menu:allow-append -> Enables the append command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-append" - ] - }, - { - "description": "menu:allow-create-default -> Enables the create_default command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-create-default" - ] - }, - { - "description": "menu:allow-get -> Enables the get command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-get" - ] - }, - { - "description": "menu:allow-insert -> Enables the insert command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-insert" - ] - }, - { - "description": "menu:allow-is-checked -> Enables the is_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-is-checked" - ] - }, - { - "description": "menu:allow-is-enabled -> Enables the is_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-is-enabled" - ] - }, - { - "description": "menu:allow-items -> Enables the items command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-items" - ] - }, - { - "description": "menu:allow-new -> Enables the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-new" - ] - }, - { - "description": "menu:allow-popup -> Enables the popup command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-popup" - ] - }, - { - "description": "menu:allow-prepend -> Enables the prepend command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-prepend" - ] - }, - { - "description": "menu:allow-remove -> Enables the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-remove" - ] - }, - { - "description": "menu:allow-remove-at -> Enables the remove_at command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-remove-at" - ] - }, - { - "description": "menu:allow-set-accelerator -> Enables the set_accelerator command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-accelerator" - ] - }, - { - "description": "menu:allow-set-as-app-menu -> Enables the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-as-app-menu" - ] - }, - { - "description": "menu:allow-set-as-help-menu-for-nsapp -> Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-as-help-menu-for-nsapp" - ] - }, - { - "description": "menu:allow-set-as-window-menu -> Enables the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-as-window-menu" - ] - }, - { - "description": "menu:allow-set-as-windows-menu-for-nsapp -> Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-as-windows-menu-for-nsapp" - ] - }, - { - "description": "menu:allow-set-checked -> Enables the set_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-checked" - ] - }, - { - "description": "menu:allow-set-enabled -> Enables the set_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-enabled" - ] - }, - { - "description": "menu:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-icon" - ] - }, - { - "description": "menu:allow-set-text -> Enables the set_text command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-set-text" - ] - }, - { - "description": "menu:allow-text -> Enables the text command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:allow-text" - ] - }, - { - "description": "menu:deny-append -> Denies the append command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-append" - ] - }, - { - "description": "menu:deny-create-default -> Denies the create_default command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-create-default" - ] - }, - { - "description": "menu:deny-get -> Denies the get command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-get" - ] - }, - { - "description": "menu:deny-insert -> Denies the insert command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-insert" - ] - }, - { - "description": "menu:deny-is-checked -> Denies the is_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-is-checked" - ] - }, - { - "description": "menu:deny-is-enabled -> Denies the is_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-is-enabled" - ] - }, - { - "description": "menu:deny-items -> Denies the items command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-items" - ] - }, - { - "description": "menu:deny-new -> Denies the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-new" - ] - }, - { - "description": "menu:deny-popup -> Denies the popup command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-popup" - ] - }, - { - "description": "menu:deny-prepend -> Denies the prepend command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-prepend" - ] - }, - { - "description": "menu:deny-remove -> Denies the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-remove" - ] - }, - { - "description": "menu:deny-remove-at -> Denies the remove_at command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-remove-at" - ] - }, - { - "description": "menu:deny-set-accelerator -> Denies the set_accelerator command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-accelerator" - ] - }, - { - "description": "menu:deny-set-as-app-menu -> Denies the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-as-app-menu" - ] - }, - { - "description": "menu:deny-set-as-help-menu-for-nsapp -> Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-as-help-menu-for-nsapp" - ] - }, - { - "description": "menu:deny-set-as-window-menu -> Denies the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-as-window-menu" - ] - }, - { - "description": "menu:deny-set-as-windows-menu-for-nsapp -> Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-as-windows-menu-for-nsapp" - ] - }, - { - "description": "menu:deny-set-checked -> Denies the set_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-checked" - ] - }, - { - "description": "menu:deny-set-enabled -> Denies the set_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-enabled" - ] - }, - { - "description": "menu:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-icon" - ] - }, - { - "description": "menu:deny-set-text -> Denies the set_text command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-set-text" - ] - }, - { - "description": "menu:deny-text -> Denies the text command without any pre-configured scope.", - "type": "string", - "enum": [ - "menu:deny-text" - ] - }, - { - "description": "path:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "path:default" - ] - }, - { - "description": "path:allow-basename -> Enables the basename command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-basename" - ] - }, - { - "description": "path:allow-dirname -> Enables the dirname command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-dirname" - ] - }, - { - "description": "path:allow-extname -> Enables the extname command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-extname" - ] - }, - { - "description": "path:allow-is-absolute -> Enables the is_absolute command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-is-absolute" - ] - }, - { - "description": "path:allow-join -> Enables the join command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-join" - ] - }, - { - "description": "path:allow-normalize -> Enables the normalize command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-normalize" - ] - }, - { - "description": "path:allow-resolve -> Enables the resolve command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-resolve" - ] - }, - { - "description": "path:allow-resolve-directory -> Enables the resolve_directory command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:allow-resolve-directory" - ] - }, - { - "description": "path:deny-basename -> Denies the basename command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-basename" - ] - }, - { - "description": "path:deny-dirname -> Denies the dirname command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-dirname" - ] - }, - { - "description": "path:deny-extname -> Denies the extname command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-extname" - ] - }, - { - "description": "path:deny-is-absolute -> Denies the is_absolute command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-is-absolute" - ] - }, - { - "description": "path:deny-join -> Denies the join command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-join" - ] - }, - { - "description": "path:deny-normalize -> Denies the normalize command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-normalize" - ] - }, - { - "description": "path:deny-resolve -> Denies the resolve command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-resolve" - ] - }, - { - "description": "path:deny-resolve-directory -> Denies the resolve_directory command without any pre-configured scope.", - "type": "string", - "enum": [ - "path:deny-resolve-directory" - ] - }, - { - "description": "resources:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "resources:default" - ] - }, - { - "description": "resources:allow-close -> Enables the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "resources:allow-close" - ] - }, - { - "description": "resources:deny-close -> Denies the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "resources:deny-close" - ] - }, - { - "type": "string", - "enum": [ - "shell:default" - ] - }, - { - "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-execute" - ] - }, - { - "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-kill" - ] - }, - { - "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-open" - ] - }, - { - "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-stdin-write" - ] - }, - { - "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-execute" - ] - }, - { - "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-kill" - ] - }, - { - "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-open" - ] - }, - { - "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-stdin-write" - ] - }, - { - "type": "string", - "enum": [ - "theme:default" - ] - }, - { - "description": "theme:allow-get-theme -> Enables the get_theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "theme:allow-get-theme" - ] - }, - { - "description": "theme:allow-set-theme -> Enables the set_theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "theme:allow-set-theme" - ] - }, - { - "description": "theme:deny-get-theme -> Denies the get_theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "theme:deny-get-theme" - ] - }, - { - "description": "theme:deny-set-theme -> Denies the set_theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "theme:deny-set-theme" - ] - }, - { - "description": "tray:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "tray:default" - ] - }, - { - "description": "tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-get-by-id" - ] - }, - { - "description": "tray:allow-new -> Enables the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-new" - ] - }, - { - "description": "tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-remove-by-id" - ] - }, - { - "description": "tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-icon" - ] - }, - { - "description": "tray:allow-set-icon-as-template -> Enables the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-icon-as-template" - ] - }, - { - "description": "tray:allow-set-menu -> Enables the set_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-menu" - ] - }, - { - "description": "tray:allow-set-show-menu-on-left-click -> Enables the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-show-menu-on-left-click" - ] - }, - { - "description": "tray:allow-set-temp-dir-path -> Enables the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-temp-dir-path" - ] - }, - { - "description": "tray:allow-set-title -> Enables the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-title" - ] - }, - { - "description": "tray:allow-set-tooltip -> Enables the set_tooltip command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-tooltip" - ] - }, - { - "description": "tray:allow-set-visible -> Enables the set_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:allow-set-visible" - ] - }, - { - "description": "tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-get-by-id" - ] - }, - { - "description": "tray:deny-new -> Denies the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-new" - ] - }, - { - "description": "tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-remove-by-id" - ] - }, - { - "description": "tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-icon" - ] - }, - { - "description": "tray:deny-set-icon-as-template -> Denies the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-icon-as-template" - ] - }, - { - "description": "tray:deny-set-menu -> Denies the set_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-menu" - ] - }, - { - "description": "tray:deny-set-show-menu-on-left-click -> Denies the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-show-menu-on-left-click" - ] - }, - { - "description": "tray:deny-set-temp-dir-path -> Denies the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-temp-dir-path" - ] - }, - { - "description": "tray:deny-set-title -> Denies the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-title" - ] - }, - { - "description": "tray:deny-set-tooltip -> Denies the set_tooltip command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-tooltip" - ] - }, - { - "description": "tray:deny-set-visible -> Denies the set_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "tray:deny-set-visible" - ] - }, - { - "description": "webview:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "webview:default" - ] - }, - { - "description": "webview:allow-create-webview -> Enables the create_webview command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-create-webview" - ] - }, - { - "description": "webview:allow-create-webview-window -> Enables the create_webview_window command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-create-webview-window" - ] - }, - { - "description": "webview:allow-internal-toggle-devtools -> Enables the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-internal-toggle-devtools" - ] - }, - { - "description": "webview:allow-print -> Enables the print command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-print" - ] - }, - { - "description": "webview:allow-reparent -> Enables the reparent command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-reparent" - ] - }, - { - "description": "webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-set-webview-focus" - ] - }, - { - "description": "webview:allow-set-webview-position -> Enables the set_webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-set-webview-position" - ] - }, - { - "description": "webview:allow-set-webview-size -> Enables the set_webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-set-webview-size" - ] - }, - { - "description": "webview:allow-set-webview-zoom -> Enables the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-set-webview-zoom" - ] - }, - { - "description": "webview:allow-webview-close -> Enables the webview_close command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-webview-close" - ] - }, - { - "description": "webview:allow-webview-position -> Enables the webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-webview-position" - ] - }, - { - "description": "webview:allow-webview-size -> Enables the webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:allow-webview-size" - ] - }, - { - "description": "webview:deny-create-webview -> Denies the create_webview command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-create-webview" - ] - }, - { - "description": "webview:deny-create-webview-window -> Denies the create_webview_window command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-create-webview-window" - ] - }, - { - "description": "webview:deny-internal-toggle-devtools -> Denies the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-internal-toggle-devtools" - ] - }, - { - "description": "webview:deny-print -> Denies the print command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-print" - ] - }, - { - "description": "webview:deny-reparent -> Denies the reparent command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-reparent" - ] - }, - { - "description": "webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-set-webview-focus" - ] - }, - { - "description": "webview:deny-set-webview-position -> Denies the set_webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-set-webview-position" - ] - }, - { - "description": "webview:deny-set-webview-size -> Denies the set_webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-set-webview-size" - ] - }, - { - "description": "webview:deny-set-webview-zoom -> Denies the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-set-webview-zoom" - ] - }, - { - "description": "webview:deny-webview-close -> Denies the webview_close command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-webview-close" - ] - }, - { - "description": "webview:deny-webview-position -> Denies the webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-webview-position" - ] - }, - { - "description": "webview:deny-webview-size -> Denies the webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "webview:deny-webview-size" - ] - }, - { - "description": "window:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "window:default" - ] - }, - { - "description": "window:allow-available-monitors -> Enables the available_monitors command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-available-monitors" - ] - }, - { - "description": "window:allow-center -> Enables the center command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-center" - ] - }, - { - "description": "window:allow-close -> Enables the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-close" - ] - }, - { - "description": "window:allow-create -> Enables the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-create" - ] - }, - { - "description": "window:allow-current-monitor -> Enables the current_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-current-monitor" - ] - }, - { - "description": "window:allow-destroy -> Enables the destroy command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-destroy" - ] - }, - { - "description": "window:allow-hide -> Enables the hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-hide" - ] - }, - { - "description": "window:allow-inner-position -> Enables the inner_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-inner-position" - ] - }, - { - "description": "window:allow-inner-size -> Enables the inner_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-inner-size" - ] - }, - { - "description": "window:allow-internal-toggle-maximize -> Enables the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-internal-toggle-maximize" - ] - }, - { - "description": "window:allow-is-closable -> Enables the is_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-closable" - ] - }, - { - "description": "window:allow-is-decorated -> Enables the is_decorated command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-decorated" - ] - }, - { - "description": "window:allow-is-focused -> Enables the is_focused command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-focused" - ] - }, - { - "description": "window:allow-is-fullscreen -> Enables the is_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-fullscreen" - ] - }, - { - "description": "window:allow-is-maximizable -> Enables the is_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-maximizable" - ] - }, - { - "description": "window:allow-is-maximized -> Enables the is_maximized command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-maximized" - ] - }, - { - "description": "window:allow-is-minimizable -> Enables the is_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-minimizable" - ] - }, - { - "description": "window:allow-is-minimized -> Enables the is_minimized command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-minimized" - ] - }, - { - "description": "window:allow-is-resizable -> Enables the is_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-resizable" - ] - }, - { - "description": "window:allow-is-visible -> Enables the is_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-is-visible" - ] - }, - { - "description": "window:allow-maximize -> Enables the maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-maximize" - ] - }, - { - "description": "window:allow-minimize -> Enables the minimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-minimize" - ] - }, - { - "description": "window:allow-outer-position -> Enables the outer_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-outer-position" - ] - }, - { - "description": "window:allow-outer-size -> Enables the outer_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-outer-size" - ] - }, - { - "description": "window:allow-primary-monitor -> Enables the primary_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-primary-monitor" - ] - }, - { - "description": "window:allow-request-user-attention -> Enables the request_user_attention command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-request-user-attention" - ] - }, - { - "description": "window:allow-scale-factor -> Enables the scale_factor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-scale-factor" - ] - }, - { - "description": "window:allow-set-always-on-bottom -> Enables the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-always-on-bottom" - ] - }, - { - "description": "window:allow-set-always-on-top -> Enables the set_always_on_top command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-always-on-top" - ] - }, - { - "description": "window:allow-set-closable -> Enables the set_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-closable" - ] - }, - { - "description": "window:allow-set-content-protected -> Enables the set_content_protected command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-content-protected" - ] - }, - { - "description": "window:allow-set-cursor-grab -> Enables the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-cursor-grab" - ] - }, - { - "description": "window:allow-set-cursor-icon -> Enables the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-cursor-icon" - ] - }, - { - "description": "window:allow-set-cursor-position -> Enables the set_cursor_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-cursor-position" - ] - }, - { - "description": "window:allow-set-cursor-visible -> Enables the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-cursor-visible" - ] - }, - { - "description": "window:allow-set-decorations -> Enables the set_decorations command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-decorations" - ] - }, - { - "description": "window:allow-set-effects -> Enables the set_effects command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-effects" - ] - }, - { - "description": "window:allow-set-focus -> Enables the set_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-focus" - ] - }, - { - "description": "window:allow-set-fullscreen -> Enables the set_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-fullscreen" - ] - }, - { - "description": "window:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-icon" - ] - }, - { - "description": "window:allow-set-ignore-cursor-events -> Enables the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-ignore-cursor-events" - ] - }, - { - "description": "window:allow-set-max-size -> Enables the set_max_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-max-size" - ] - }, - { - "description": "window:allow-set-maximizable -> Enables the set_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-maximizable" - ] - }, - { - "description": "window:allow-set-min-size -> Enables the set_min_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-min-size" - ] - }, - { - "description": "window:allow-set-minimizable -> Enables the set_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-minimizable" - ] - }, - { - "description": "window:allow-set-position -> Enables the set_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-position" - ] - }, - { - "description": "window:allow-set-progress-bar -> Enables the set_progress_bar command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-progress-bar" - ] - }, - { - "description": "window:allow-set-resizable -> Enables the set_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-resizable" - ] - }, - { - "description": "window:allow-set-shadow -> Enables the set_shadow command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-shadow" - ] - }, - { - "description": "window:allow-set-size -> Enables the set_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-size" - ] - }, - { - "description": "window:allow-set-skip-taskbar -> Enables the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-skip-taskbar" - ] - }, - { - "description": "window:allow-set-title -> Enables the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-title" - ] - }, - { - "description": "window:allow-set-visible-on-all-workspaces -> Enables the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-set-visible-on-all-workspaces" - ] - }, - { - "description": "window:allow-show -> Enables the show command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-show" - ] - }, - { - "description": "window:allow-start-dragging -> Enables the start_dragging command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-start-dragging" - ] - }, - { - "description": "window:allow-theme -> Enables the theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-theme" - ] - }, - { - "description": "window:allow-title -> Enables the title command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-title" - ] - }, - { - "description": "window:allow-toggle-maximize -> Enables the toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-toggle-maximize" - ] - }, - { - "description": "window:allow-unmaximize -> Enables the unmaximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-unmaximize" - ] - }, - { - "description": "window:allow-unminimize -> Enables the unminimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:allow-unminimize" - ] - }, - { - "description": "window:deny-available-monitors -> Denies the available_monitors command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-available-monitors" - ] - }, - { - "description": "window:deny-center -> Denies the center command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-center" - ] - }, - { - "description": "window:deny-close -> Denies the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-close" - ] - }, - { - "description": "window:deny-create -> Denies the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-create" - ] - }, - { - "description": "window:deny-current-monitor -> Denies the current_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-current-monitor" - ] - }, - { - "description": "window:deny-destroy -> Denies the destroy command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-destroy" - ] - }, - { - "description": "window:deny-hide -> Denies the hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-hide" - ] - }, - { - "description": "window:deny-inner-position -> Denies the inner_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-inner-position" - ] - }, - { - "description": "window:deny-inner-size -> Denies the inner_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-inner-size" - ] - }, - { - "description": "window:deny-internal-toggle-maximize -> Denies the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-internal-toggle-maximize" - ] - }, - { - "description": "window:deny-is-closable -> Denies the is_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-closable" - ] - }, - { - "description": "window:deny-is-decorated -> Denies the is_decorated command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-decorated" - ] - }, - { - "description": "window:deny-is-focused -> Denies the is_focused command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-focused" - ] - }, - { - "description": "window:deny-is-fullscreen -> Denies the is_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-fullscreen" - ] - }, - { - "description": "window:deny-is-maximizable -> Denies the is_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-maximizable" - ] - }, - { - "description": "window:deny-is-maximized -> Denies the is_maximized command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-maximized" - ] - }, - { - "description": "window:deny-is-minimizable -> Denies the is_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-minimizable" - ] - }, - { - "description": "window:deny-is-minimized -> Denies the is_minimized command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-minimized" - ] - }, - { - "description": "window:deny-is-resizable -> Denies the is_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-resizable" - ] - }, - { - "description": "window:deny-is-visible -> Denies the is_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-is-visible" - ] - }, - { - "description": "window:deny-maximize -> Denies the maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-maximize" - ] - }, - { - "description": "window:deny-minimize -> Denies the minimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-minimize" - ] - }, - { - "description": "window:deny-outer-position -> Denies the outer_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-outer-position" - ] - }, - { - "description": "window:deny-outer-size -> Denies the outer_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-outer-size" - ] - }, - { - "description": "window:deny-primary-monitor -> Denies the primary_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-primary-monitor" - ] - }, - { - "description": "window:deny-request-user-attention -> Denies the request_user_attention command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-request-user-attention" - ] - }, - { - "description": "window:deny-scale-factor -> Denies the scale_factor command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-scale-factor" - ] - }, - { - "description": "window:deny-set-always-on-bottom -> Denies the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-always-on-bottom" - ] - }, - { - "description": "window:deny-set-always-on-top -> Denies the set_always_on_top command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-always-on-top" - ] - }, - { - "description": "window:deny-set-closable -> Denies the set_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-closable" - ] - }, - { - "description": "window:deny-set-content-protected -> Denies the set_content_protected command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-content-protected" - ] - }, - { - "description": "window:deny-set-cursor-grab -> Denies the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-cursor-grab" - ] - }, - { - "description": "window:deny-set-cursor-icon -> Denies the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-cursor-icon" - ] - }, - { - "description": "window:deny-set-cursor-position -> Denies the set_cursor_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-cursor-position" - ] - }, - { - "description": "window:deny-set-cursor-visible -> Denies the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-cursor-visible" - ] - }, - { - "description": "window:deny-set-decorations -> Denies the set_decorations command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-decorations" - ] - }, - { - "description": "window:deny-set-effects -> Denies the set_effects command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-effects" - ] - }, - { - "description": "window:deny-set-focus -> Denies the set_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-focus" - ] - }, - { - "description": "window:deny-set-fullscreen -> Denies the set_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-fullscreen" - ] - }, - { - "description": "window:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-icon" - ] - }, - { - "description": "window:deny-set-ignore-cursor-events -> Denies the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-ignore-cursor-events" - ] - }, - { - "description": "window:deny-set-max-size -> Denies the set_max_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-max-size" - ] - }, - { - "description": "window:deny-set-maximizable -> Denies the set_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-maximizable" - ] - }, - { - "description": "window:deny-set-min-size -> Denies the set_min_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-min-size" - ] - }, - { - "description": "window:deny-set-minimizable -> Denies the set_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-minimizable" - ] - }, - { - "description": "window:deny-set-position -> Denies the set_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-position" - ] - }, - { - "description": "window:deny-set-progress-bar -> Denies the set_progress_bar command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-progress-bar" - ] - }, - { - "description": "window:deny-set-resizable -> Denies the set_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-resizable" - ] - }, - { - "description": "window:deny-set-shadow -> Denies the set_shadow command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-shadow" - ] - }, - { - "description": "window:deny-set-size -> Denies the set_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-size" - ] - }, - { - "description": "window:deny-set-skip-taskbar -> Denies the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-skip-taskbar" - ] - }, - { - "description": "window:deny-set-title -> Denies the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-title" - ] - }, - { - "description": "window:deny-set-visible-on-all-workspaces -> Denies the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-set-visible-on-all-workspaces" - ] - }, - { - "description": "window:deny-show -> Denies the show command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-show" - ] - }, - { - "description": "window:deny-start-dragging -> Denies the start_dragging command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-start-dragging" - ] - }, - { - "description": "window:deny-theme -> Denies the theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-theme" - ] - }, - { - "description": "window:deny-title -> Denies the title command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-title" - ] - }, - { - "description": "window:deny-toggle-maximize -> Denies the toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-toggle-maximize" - ] - }, - { - "description": "window:deny-unmaximize -> Denies the unmaximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-unmaximize" - ] - }, - { - "description": "window:deny-unminimize -> Denies the unminimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "window:deny-unminimize" - ] - } - ] - }, - "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" - ] - } - ] - }, - "ShellAllowedArg": { - "description": "A command argument allowed to be executed by the webview API.", - "anyOf": [ - { - "description": "A non-configurable argument that is passed to the command in the order it was specified.", - "type": "string" - }, - { - "description": "A variable that is set while calling the command from the webview API.", - "type": "object", - "required": [ - "validator" - ], - "properties": { - "validator": { - "description": "[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\n[regex]: https://docs.rs/regex/latest/regex/#syntax", - "type": "string" - } - }, - "additionalProperties": false - } - ] - }, - "ShellAllowedArgs": { - "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", - "anyOf": [ - { - "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", - "type": "boolean" - }, - { - "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.", - "type": "array", - "items": { - "$ref": "#/definitions/ShellAllowedArg" - } - } - ] - } - } -} \ No newline at end of file diff --git a/src-tauri/gen/schemas/plugin-manifests.json b/src-tauri/gen/schemas/plugin-manifests.json deleted file mode 100644 index bb5f13ca..00000000 --- a/src-tauri/gen/schemas/plugin-manifests.json +++ /dev/null @@ -1 +0,0 @@ -{"app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version"]},"permissions":{"allow-app-hide":{"version":null,"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]},"scope":{}},"allow-app-show":{"version":null,"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]},"scope":{}},"allow-name":{"version":null,"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]},"scope":{}},"allow-tauri-version":{"version":null,"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]},"scope":{}},"allow-version":{"version":null,"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]},"scope":{}},"deny-app-hide":{"version":null,"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]},"scope":{}},"deny-app-show":{"version":null,"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]},"scope":{}},"deny-name":{"version":null,"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]},"scope":{}},"deny-tauri-version":{"version":null,"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]},"scope":{}},"deny-version":{"version":null,"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"version":null,"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]},"scope":{}},"allow-emit-to":{"version":null,"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]},"scope":{}},"allow-listen":{"version":null,"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]},"scope":{}},"allow-unlisten":{"version":null,"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]},"scope":{}},"deny-emit":{"version":null,"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]},"scope":{}},"deny-emit-to":{"version":null,"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]},"scope":{}},"deny-listen":{"version":null,"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]},"scope":{}},"deny-unlisten":{"version":null,"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":[]},"permissions":{"allow-append":{"version":null,"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]},"scope":{}},"allow-create-default":{"version":null,"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]},"scope":{}},"allow-get":{"version":null,"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]},"scope":{}},"allow-insert":{"version":null,"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]},"scope":{}},"allow-is-checked":{"version":null,"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]},"scope":{}},"allow-is-enabled":{"version":null,"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]},"scope":{}},"allow-items":{"version":null,"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]},"scope":{}},"allow-new":{"version":null,"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]},"scope":{}},"allow-popup":{"version":null,"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]},"scope":{}},"allow-prepend":{"version":null,"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]},"scope":{}},"allow-remove":{"version":null,"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]},"scope":{}},"allow-remove-at":{"version":null,"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]},"scope":{}},"allow-set-accelerator":{"version":null,"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]},"scope":{}},"allow-set-as-app-menu":{"version":null,"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":[]},"scope":{}},"allow-set-as-help-menu-for-nsapp":{"version":null,"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":[]},"scope":{}},"allow-set-as-window-menu":{"version":null,"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":[]},"scope":{}},"allow-set-as-windows-menu-for-nsapp":{"version":null,"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":[]},"scope":{}},"allow-set-checked":{"version":null,"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]},"scope":{}},"allow-set-enabled":{"version":null,"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]},"scope":{}},"allow-set-icon":{"version":null,"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]},"scope":{}},"allow-set-text":{"version":null,"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]},"scope":{}},"allow-text":{"version":null,"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]},"scope":{}},"deny-append":{"version":null,"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]},"scope":{}},"deny-create-default":{"version":null,"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]},"scope":{}},"deny-get":{"version":null,"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]},"scope":{}},"deny-insert":{"version":null,"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]},"scope":{}},"deny-is-checked":{"version":null,"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]},"scope":{}},"deny-is-enabled":{"version":null,"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]},"scope":{}},"deny-items":{"version":null,"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]},"scope":{}},"deny-new":{"version":null,"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]},"scope":{}},"deny-popup":{"version":null,"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]},"scope":{}},"deny-prepend":{"version":null,"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]},"scope":{}},"deny-remove":{"version":null,"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]},"scope":{}},"deny-remove-at":{"version":null,"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]},"scope":{}},"deny-set-accelerator":{"version":null,"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]},"scope":{}},"deny-set-as-app-menu":{"version":null,"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"]},"scope":{}},"deny-set-as-help-menu-for-nsapp":{"version":null,"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"]},"scope":{}},"deny-set-as-window-menu":{"version":null,"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"]},"scope":{}},"deny-set-as-windows-menu-for-nsapp":{"version":null,"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"]},"scope":{}},"deny-set-checked":{"version":null,"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]},"scope":{}},"deny-set-enabled":{"version":null,"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]},"scope":{}},"deny-set-icon":{"version":null,"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]},"scope":{}},"deny-set-text":{"version":null,"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]},"scope":{}},"deny-text":{"version":null,"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"version":null,"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]},"scope":{}},"allow-dirname":{"version":null,"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]},"scope":{}},"allow-extname":{"version":null,"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]},"scope":{}},"allow-is-absolute":{"version":null,"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]},"scope":{}},"allow-join":{"version":null,"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]},"scope":{}},"allow-normalize":{"version":null,"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]},"scope":{}},"allow-resolve":{"version":null,"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]},"scope":{}},"allow-resolve-directory":{"version":null,"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]},"scope":{}},"deny-basename":{"version":null,"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]},"scope":{}},"deny-dirname":{"version":null,"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]},"scope":{}},"deny-extname":{"version":null,"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]},"scope":{}},"deny-is-absolute":{"version":null,"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]},"scope":{}},"deny-join":{"version":null,"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]},"scope":{}},"deny-normalize":{"version":null,"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]},"scope":{}},"deny-resolve":{"version":null,"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]},"scope":{}},"deny-resolve-directory":{"version":null,"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-close"]},"permissions":{"allow-close":{"version":null,"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]},"scope":{}},"deny-close":{"version":null,"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":null,"permissions":{"allow-execute":{"version":null,"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]},"scope":{}},"allow-kill":{"version":null,"identifier":"allow-kill","description":"Enables the kill command without any pre-configured scope.","commands":{"allow":["kill"],"deny":[]},"scope":{}},"allow-open":{"version":null,"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]},"scope":{}},"allow-stdin-write":{"version":null,"identifier":"allow-stdin-write","description":"Enables the stdin_write command without any pre-configured scope.","commands":{"allow":["stdin_write"],"deny":[]},"scope":{}},"deny-execute":{"version":null,"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]},"scope":{}},"deny-kill":{"version":null,"identifier":"deny-kill","description":"Denies the kill command without any pre-configured scope.","commands":{"allow":[],"deny":["kill"]},"scope":{}},"deny-open":{"version":null,"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]},"scope":{}},"deny-stdin-write":{"version":null,"identifier":"deny-stdin-write","description":"Denies the stdin_write command without any pre-configured scope.","commands":{"allow":[],"deny":["stdin_write"]},"scope":{}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","definitions":{"ShellAllowedArg":{"anyOf":[{"description":"A non-configurable argument that is passed to the command in the order it was specified.","type":"string"},{"additionalProperties":false,"description":"A variable that is set while calling the command from the webview API.","properties":{"validator":{"description":"[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\n[regex]: https://docs.rs/regex/latest/regex/#syntax","type":"string"}},"required":["validator"],"type":"object"}],"description":"A command argument allowed to be executed by the webview API."},"ShellAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellAllowedArg"},"type":"array"}],"description":"A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"A command allowed to be executed by the webview API.","properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellAllowedArgs"}],"description":"The allowed arguments for the command execution."},"command":{"description":"The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"},"sidecar":{"description":"If this command is a sidecar command.","type":"boolean"}},"required":["args","command","name","sidecar"],"title":"Entry","type":"object"}},"tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":[]},"permissions":{"allow-new":{"version":null,"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]},"scope":{}},"allow-set-icon":{"version":null,"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]},"scope":{}},"allow-set-icon-as-template":{"version":null,"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":[]},"scope":{}},"allow-set-menu":{"version":null,"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]},"scope":{}},"allow-set-show-menu-on-left-click":{"version":null,"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":[]},"scope":{}},"allow-set-temp-dir-path":{"version":null,"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":[]},"scope":{}},"allow-set-title":{"version":null,"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]},"scope":{}},"allow-set-tooltip":{"version":null,"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]},"scope":{}},"allow-set-visible":{"version":null,"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]},"scope":{}},"deny-new":{"version":null,"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]},"scope":{}},"deny-set-icon":{"version":null,"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]},"scope":{}},"deny-set-icon-as-template":{"version":null,"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"]},"scope":{}},"deny-set-menu":{"version":null,"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]},"scope":{}},"deny-set-show-menu-on-left-click":{"version":null,"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"]},"scope":{}},"deny-set-temp-dir-path":{"version":null,"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"]},"scope":{}},"deny-set-title":{"version":null,"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]},"scope":{}},"deny-set-tooltip":{"version":null,"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]},"scope":{}},"deny-set-visible":{"version":null,"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-create-webview":{"version":null,"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]},"scope":{}},"allow-create-webview-window":{"version":null,"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]},"scope":{}},"allow-internal-toggle-devtools":{"version":null,"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]},"scope":{}},"allow-print":{"version":null,"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]},"scope":{}},"allow-reparent":{"version":null,"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]},"scope":{}},"allow-set-webview-focus":{"version":null,"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]},"scope":{}},"allow-set-webview-position":{"version":null,"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]},"scope":{}},"allow-set-webview-size":{"version":null,"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]},"scope":{}},"allow-webview-close":{"version":null,"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]},"scope":{}},"allow-webview-position":{"version":null,"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]},"scope":{}},"allow-webview-size":{"version":null,"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]},"scope":{}},"deny-create-webview":{"version":null,"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]},"scope":{}},"deny-create-webview-window":{"version":null,"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]},"scope":{}},"deny-internal-toggle-devtools":{"version":null,"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]},"scope":{}},"deny-print":{"version":null,"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]},"scope":{}},"deny-reparent":{"version":null,"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]},"scope":{}},"deny-set-webview-focus":{"version":null,"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]},"scope":{}},"deny-set-webview-position":{"version":null,"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]},"scope":{}},"deny-set-webview-size":{"version":null,"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]},"scope":{}},"deny-webview-close":{"version":null,"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]},"scope":{}},"deny-webview-position":{"version":null,"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]},"scope":{}},"deny-webview-size":{"version":null,"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null},"window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["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-title","allow-current-monitor","allow-primary-monitor","allow-available-monitors","allow-theme","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"version":null,"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]},"scope":{}},"allow-center":{"version":null,"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]},"scope":{}},"allow-close":{"version":null,"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]},"scope":{}},"allow-create":{"version":null,"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]},"scope":{}},"allow-current-monitor":{"version":null,"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]},"scope":{}},"allow-destroy":{"version":null,"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]},"scope":{}},"allow-hide":{"version":null,"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]},"scope":{}},"allow-inner-position":{"version":null,"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]},"scope":{}},"allow-inner-size":{"version":null,"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]},"scope":{}},"allow-internal-toggle-maximize":{"version":null,"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]},"scope":{}},"allow-is-closable":{"version":null,"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]},"scope":{}},"allow-is-decorated":{"version":null,"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]},"scope":{}},"allow-is-focused":{"version":null,"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]},"scope":{}},"allow-is-fullscreen":{"version":null,"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]},"scope":{}},"allow-is-maximizable":{"version":null,"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]},"scope":{}},"allow-is-maximized":{"version":null,"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]},"scope":{}},"allow-is-minimizable":{"version":null,"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]},"scope":{}},"allow-is-minimized":{"version":null,"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]},"scope":{}},"allow-is-resizable":{"version":null,"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]},"scope":{}},"allow-is-visible":{"version":null,"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]},"scope":{}},"allow-maximize":{"version":null,"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]},"scope":{}},"allow-minimize":{"version":null,"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]},"scope":{}},"allow-outer-position":{"version":null,"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]},"scope":{}},"allow-outer-size":{"version":null,"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]},"scope":{}},"allow-primary-monitor":{"version":null,"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]},"scope":{}},"allow-request-user-attention":{"version":null,"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]},"scope":{}},"allow-scale-factor":{"version":null,"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]},"scope":{}},"allow-set-always-on-bottom":{"version":null,"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":[]},"scope":{}},"allow-set-always-on-top":{"version":null,"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":[]},"scope":{}},"allow-set-closable":{"version":null,"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]},"scope":{}},"allow-set-content-protected":{"version":null,"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]},"scope":{}},"allow-set-cursor-grab":{"version":null,"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]},"scope":{}},"allow-set-cursor-icon":{"version":null,"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]},"scope":{}},"allow-set-cursor-position":{"version":null,"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]},"scope":{}},"allow-set-cursor-visible":{"version":null,"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]},"scope":{}},"allow-set-decorations":{"version":null,"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]},"scope":{}},"allow-set-effects":{"version":null,"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]},"scope":{}},"allow-set-focus":{"version":null,"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]},"scope":{}},"allow-set-fullscreen":{"version":null,"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]},"scope":{}},"allow-set-icon":{"version":null,"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]},"scope":{}},"allow-set-ignore-cursor-events":{"version":null,"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":[]},"scope":{}},"allow-set-max-size":{"version":null,"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]},"scope":{}},"allow-set-maximizable":{"version":null,"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]},"scope":{}},"allow-set-min-size":{"version":null,"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]},"scope":{}},"allow-set-minimizable":{"version":null,"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]},"scope":{}},"allow-set-position":{"version":null,"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]},"scope":{}},"allow-set-progress-bar":{"version":null,"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]},"scope":{}},"allow-set-resizable":{"version":null,"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]},"scope":{}},"allow-set-shadow":{"version":null,"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]},"scope":{}},"allow-set-size":{"version":null,"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]},"scope":{}},"allow-set-skip-taskbar":{"version":null,"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]},"scope":{}},"allow-set-title":{"version":null,"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]},"scope":{}},"allow-set-visible-on-all-workspaces":{"version":null,"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":[]},"scope":{}},"allow-show":{"version":null,"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]},"scope":{}},"allow-start-dragging":{"version":null,"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]},"scope":{}},"allow-theme":{"version":null,"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]},"scope":{}},"allow-title":{"version":null,"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]},"scope":{}},"allow-toggle-maximize":{"version":null,"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]},"scope":{}},"allow-unmaximize":{"version":null,"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]},"scope":{}},"allow-unminimize":{"version":null,"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]},"scope":{}},"deny-available-monitors":{"version":null,"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]},"scope":{}},"deny-center":{"version":null,"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]},"scope":{}},"deny-close":{"version":null,"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]},"scope":{}},"deny-create":{"version":null,"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]},"scope":{}},"deny-current-monitor":{"version":null,"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]},"scope":{}},"deny-destroy":{"version":null,"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]},"scope":{}},"deny-hide":{"version":null,"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]},"scope":{}},"deny-inner-position":{"version":null,"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]},"scope":{}},"deny-inner-size":{"version":null,"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]},"scope":{}},"deny-internal-toggle-maximize":{"version":null,"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]},"scope":{}},"deny-is-closable":{"version":null,"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]},"scope":{}},"deny-is-decorated":{"version":null,"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]},"scope":{}},"deny-is-focused":{"version":null,"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]},"scope":{}},"deny-is-fullscreen":{"version":null,"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]},"scope":{}},"deny-is-maximizable":{"version":null,"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]},"scope":{}},"deny-is-maximized":{"version":null,"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]},"scope":{}},"deny-is-minimizable":{"version":null,"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]},"scope":{}},"deny-is-minimized":{"version":null,"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]},"scope":{}},"deny-is-resizable":{"version":null,"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]},"scope":{}},"deny-is-visible":{"version":null,"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]},"scope":{}},"deny-maximize":{"version":null,"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]},"scope":{}},"deny-minimize":{"version":null,"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]},"scope":{}},"deny-outer-position":{"version":null,"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]},"scope":{}},"deny-outer-size":{"version":null,"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]},"scope":{}},"deny-primary-monitor":{"version":null,"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]},"scope":{}},"deny-request-user-attention":{"version":null,"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]},"scope":{}},"deny-scale-factor":{"version":null,"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]},"scope":{}},"deny-set-always-on-bottom":{"version":null,"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"]},"scope":{}},"deny-set-always-on-top":{"version":null,"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"]},"scope":{}},"deny-set-closable":{"version":null,"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]},"scope":{}},"deny-set-content-protected":{"version":null,"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]},"scope":{}},"deny-set-cursor-grab":{"version":null,"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]},"scope":{}},"deny-set-cursor-icon":{"version":null,"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]},"scope":{}},"deny-set-cursor-position":{"version":null,"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]},"scope":{}},"deny-set-cursor-visible":{"version":null,"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]},"scope":{}},"deny-set-decorations":{"version":null,"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]},"scope":{}},"deny-set-effects":{"version":null,"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]},"scope":{}},"deny-set-focus":{"version":null,"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]},"scope":{}},"deny-set-fullscreen":{"version":null,"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]},"scope":{}},"deny-set-icon":{"version":null,"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]},"scope":{}},"deny-set-ignore-cursor-events":{"version":null,"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"]},"scope":{}},"deny-set-max-size":{"version":null,"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]},"scope":{}},"deny-set-maximizable":{"version":null,"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]},"scope":{}},"deny-set-min-size":{"version":null,"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]},"scope":{}},"deny-set-minimizable":{"version":null,"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]},"scope":{}},"deny-set-position":{"version":null,"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]},"scope":{}},"deny-set-progress-bar":{"version":null,"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]},"scope":{}},"deny-set-resizable":{"version":null,"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]},"scope":{}},"deny-set-shadow":{"version":null,"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]},"scope":{}},"deny-set-size":{"version":null,"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]},"scope":{}},"deny-set-skip-taskbar":{"version":null,"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]},"scope":{}},"deny-set-title":{"version":null,"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]},"scope":{}},"deny-set-visible-on-all-workspaces":{"version":null,"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"]},"scope":{}},"deny-show":{"version":null,"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]},"scope":{}},"deny-start-dragging":{"version":null,"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]},"scope":{}},"deny-theme":{"version":null,"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]},"scope":{}},"deny-title":{"version":null,"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]},"scope":{}},"deny-toggle-maximize":{"version":null,"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]},"scope":{}},"deny-unmaximize":{"version":null,"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]},"scope":{}},"deny-unminimize":{"version":null,"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]},"scope":{}}},"permission_sets":{},"global_scope_schema":null}} \ No newline at end of file diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png deleted file mode 100644 index 6be5e50e9b9ae84d9e2ee433f32ef446495eaf3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3512 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 diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png deleted file mode 100644 index e81becee571e96f76aa5667f9324c05e5e7a4479..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7012 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 Sh@|Ye~|0>}wMPLT8jm@Y!H33Sz}5aFI6 zM9Lzqz|;A*0sGs=2A1uU!1nk2dGF7knQwr99SAFen)x(eCO;F8y2C~0FD1YxRTPcy zPWVxkUYmeuz}Tv?7&Fe-!UE{)ZW)Mb;H)^#eHDv$`dkZGguJz@^MA!ZNGAUqt{|0H zpZ7Ch9S`q5!>R%}>}62!+(T^evyO+ImSo2wpu)su4^3nw5(%)KD%gbSev^*HZZ&3( z#&c@Z0gH|}Ck)w6fh0&NBJ62ib%R}(3@$VFl*_#l2W$wQ-~4RmZZAt5O*^2Q5}Xr8Hy@c`#pM?kc?hFWxRXr*mUfUCXf4ka5DD~ zat6d85COB05l#(P9*cQZ3EC8fVdS~?&vN#rce(aF9@xp80O2{{FBvU+{X>Hoh;xI` z{$e^Nw1y*VbO8wv`8|-m?NwNaKGTGaF{P^JLB^DbOYWIbn%eT`*!^C1H36=O8Z-M> zkD~88ry`eSo`tEBN4>w7OWZwUzlh{WM1m8R6zepqGcGMaV7vWY9b?K4b6~|HVG)ec wi>I@ws#sZo7or4_*4M>7;p5{nr2pZ?Uu4>Krr0kU)&Kwi07*qoM6N<$f)&@lf&c&j diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png deleted file mode 100644 index 0ca4f27198838968bd60ed7d371bfa23496b7fe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2863 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 Y2S8W#vM)6=T>t<807*qoM6N<$f*y@n<^TWy diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png deleted file mode 100644 index c021d2ba76619c08969ab688db3b27f29257aa6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7737 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 diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png deleted file mode 100644 index 621970023096ed9f494ba18ace15421a45cd65fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 903 zcmV;219<$2P)2 z+CUKPMqaqGiH;zb!R4$B-WXS^YzQr=@UH>k4?*L)&R=zYjBrZenKdc9|JlS$SO*RJ zKt8FSTDAdk1g_WPAO!p^V!AuL;Lm;uQyV;zKq)J3i(;q*;k+pD%f3eltU`PYdy9(k0&%` zuWAPcV6|-y?|?7O1W!KSK}pbk8#~!|FA@(VJkt^V@0lio{afoAeo*f&$W2s6${5!1eKvAGD2$GZwSB98L2ZVS- zKn8ENRkZ*sb!@QugOrQNK3(sy1v%J#m|rpB+h|Nkqa3FRT>74xSs{#&saU2Lf!_Iq zKmuKAESh`gs!fneGWn+nf}l?7jE$HW!Af&vE5=G!QU)U2v&HLIBGXKk4nQx{hsHjL zLPMAo5=*uInFbq7(aa`Y2VX5wCmaeqvECOFv)a>0t>ZaEb*cJccER=BB?KFZhV$c^ znL*l8x*UYZv4WK|j?~Jt6~~F%{pk~z5A*>^M`?r5m9@RJ_x|uEtX(6Vk@Y()MVto* z93wr)%3m%|#OZ~srm>zF(JvDuTq*@;d&^>_BJm5hOU`3FjG70L#Vzv9I?`<7$T@

5l#v3A#xI3*z~1~fvo9Q(N^(==!|_FZ z*duZ=+M1~)8E|otX8KNZlr?qels#x_1Xq@9IIw~@9uAREJVH)Xw^}UclF6327}E42 zT)E&?U%TK?(+K7%R!`H5oX0i)4Qn5??Iw3p5J~6_u+aWehY{DSn}3V2p$bgjnAu?o)v@iC254fXeMv50$9YrpU`N?u@QIWs)T?SP|fa}(|9 zqAX+!7`cx=4)cCBg5h~pu(?@9`)aCr#oyz$ld=#RFxYCNZCZls@4v2~*e-t6PEVvV z&bbK3b3wt(Coc!ufAbXXC<**#HQ%J9k`New6iG<5RjtO4XVO?dCvwxD{kJ#tfQr(X zg^NTwF-FwAeS_{V4bfel8l`~NbfrTR2s!G>WduFWxH(t~aK4q=6rEE^$+Uox>gJO2 z{L<;6Q6nHa5#ZEM>H58not!)z(6*_=^~8}jWf*IG$AUKVWOZ4?)GfF z+BM#*wKKmLFD7E~W3U!$IVm$k_k1f&Kz6WV8@55P?r~bcg-Za-!rvW?ns&)KOGT2~ zlkAyqhQj=P$Eg3w#K~}zH@J5bo-BfHjInKSz$@?+Z)NPD4pHj^_Qxmi`UqoTy=`sV zLVxrXGuBr=QRm|}wg75yetQQK4fY3#P_~J}zEfPnb2C4Wo!E(d*(cA;b?7$g2in<( zPn)ghX}nzJPmb6(3Dpeg_GW~Hc}Lt=lgsSZz z!5QXyz7KaR;D`3Ee}d`af{H>WWZ|Io1QI3~4Ll_`g1(cRnhLK73Ro)7zPCd={1W2x zRp%Xlvv4>!<2@}$hz|!V{T}_eHx2xkLl^hQoZTCnsjCl|W_@5Fx2(+j0ogy&Y+;L- z<)G$*CiN7hOm^s!{U>1F7U=iNk{+u~dAC!eDz%=|glFW0jEZU1&o(G_c#wTxUjnG} z#cg3>jEpUi#Mlq@t?Msg_#geK^Lx@DyHWf7=AS5vVyM7YOjvUVCfcpVR<(+5!H?9- zySI6s>o3m&*zr||=wcPGyBkQV`EWJl@bH8qobjOp+sXL*)=&yX)8aAbf~tGv?a2SN zu^Ddo-z?DWk9h9Yz#5p^NU#x~wYSd?H@w@!2Gb4G)6-utEMV~~M85Br5ff(v5O1|T z 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 Result<()> { - // TODO: add deleted_at column to all tables - - conn.execute( - "CREATE TABLE IF NOT EXISTS notes ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - status_id INTEGER, - notebook_id INTEGER, - content TEXT NOT NULL, - created_at TEXT NOT NULL, - modified_at TEXT NOT NULL - )", - params![], - )?; - - conn.execute( - "CREATE TABLE IF NOT EXISTS tags ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - name TEXT NOT NULL, - color TEXT, - icon TEXT, - created_at TEXT NOT NULL, - UNIQUE(name) - )", - params![], - )?; - - conn.execute( - "CREATE TABLE IF NOT EXISTS notes_tags ( - note_id INTEGER NOT NULL, - tag_id INTEGER NOT NULL, - PRIMARY KEY (note_id, tag_id), - FOREIGN KEY (note_id) REFERENCES notes(id) ON DELETE CASCADE, - FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE - )", - params![], - )?; - - conn.execute( - "CREATE TABLE IF NOT EXISTS status ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - name TEXT NOT NULL, - created_at TEXT NOT NULL, - deleted_at TEXT NOT NULL, - UNIQUE(name) - )", - params![], - )?; - - conn.execute( - "CREATE TABLE IF NOT EXISTS notebooks ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - name TEXT NOT NULL, - created_at TEXT NOT NULL, - deleted_at TEXT NOT NULL, - UNIQUE(name) - )", - params![], - )?; - - conn.execute( - "CREATE TABLE IF NOT EXISTS trashed_notes ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - note_id INTEGER, - content TEXT NOT NULL, - created_at TEXT NOT NULL, - trashed_at TEXT NOT NULL - )", - params![], - )?; - - conn.execute( - "CREATE TABLE IF NOT EXISTS trashed_notes_tags ( - trashed_note_id INTEGER NOT NULL, - tag_id INTEGER NOT NULL, - PRIMARY KEY (trashed_note_id, tag_id), - FOREIGN KEY (trashed_note_id) REFERENCES trashed_notes(id) ON DELETE CASCADE, - FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE - )", - params![], - )?; - - conn.execute( - "CREATE VIRTUAL TABLE IF NOT EXISTS notes_fts USING fts5 ( - content, - notebook_id UNINDEXED, - created_at UNINDEXED, - modified_at UNINDEXED - )", - params![], - )?; - - conn.execute( - "CREATE TABLE IF NOT EXISTS settings ( - key TEXT PRIMARY KEY, - value TEXT - )", - params![], - )?; - - Ok(()) -} - -fn create_indexes(conn: &Connection) -> Result<()> { - // Create indexes for notes table - conn.execute( - "CREATE INDEX IF NOT EXISTS idx_notes_created_at ON notes (created_at)", - params![], - )?; - conn.execute( - "CREATE INDEX IF NOT EXISTS idx_notes_modified_at ON notes (modified_at)", - params![], - )?; - - // Create indexes for tags table - conn.execute( - "CREATE INDEX IF NOT EXISTS idx_tags_name ON tags (name)", - params![], - )?; - - conn.execute( - "CREATE INDEX IF NOT EXISTS idx_tags_created_at ON tags (created_at)", - params![], - )?; - - // Create idices for settings table - conn.execute( - "CREATE INDEX IF NOT EXISTS idx_settings_key ON settings (key)", - params![], - )?; - - Ok(()) -} - -pub fn establish_connection(db_path: &str) -> Result { - println!("Connecting to database at: {}", db_path); - let conn = Connection::open(db_path)?; - initialize_db(&conn)?; - create_indexes(&conn)?; - insert_initial_settings(&conn)?; - Ok(conn) -} - -pub use notes::{ - create_note, delete_note, get_note_by_id, list_all_notes, list_trashed_notes, trash_note, - update_note, -}; -pub use notes_tags::{list_tags_for_note, tag_note, untag_note}; -pub use settings::{get_all_settings, get_setting, insert_initial_settings, set_setting}; -pub use tags::{create_tag, delete_tag, get_tag_by_id, get_tag_by_name, list_all_tags, update_tag}; diff --git a/src-tauri/src/db/notes.rs b/src-tauri/src/db/notes.rs deleted file mode 100644 index cc3212b7..00000000 --- a/src-tauri/src/db/notes.rs +++ /dev/null @@ -1,214 +0,0 @@ -use crate::db::queries::{ - DELETE_FTS_NOTE, DELETE_NOTE, DELETE_NOTE_TAGS, DELETE_TRASHED_NOTE, GET_NOTE, INSERT_FTS_NOTE, - INSERT_NOTE, LIST_ALL_NOTES, LIST_ALL_NOTES_BY_TAG, LIST_ALL_TRASHED_NOTES, - LIST_ALL_TRASHED_NOTES_BY_TAG, SEARCH_NOTES, TRASH_NOTE, TRASH_NOTE_TAGS, UPDATE_FTS_NOTE, - UPDATE_NOTE, -}; -use crate::models::{CreateNoteRequest, ListNotesRequest, Note, UpdateNoteRequest}; -use crate::utils::parse_datetime; -use rusqlite::{params, Connection, Result}; // Import the Note struct - -use chrono::Utc; - -use super::list_tags_for_note; - -pub fn create_note(conn: &Connection, create_note_request: &CreateNoteRequest) -> Result { - let now = Utc::now().to_rfc3339(); - let sql = INSERT_NOTE; - conn.execute(sql, params![&create_note_request.content, &now, &now,]) - .unwrap(); - let rowid = conn.last_insert_rowid(); - let sql_fts5 = INSERT_FTS_NOTE; - conn.execute( - sql_fts5, - params![rowid, &create_note_request.content, &now, &now,], - ) - .unwrap(); - Ok(rowid) -} - -pub fn list_all_notes( - conn: &Connection, - list_notes_request: &ListNotesRequest, -) -> Result> { - let mut stmt; - let tag_id = match list_notes_request.tag_id { - Some(tag_id) => tag_id, - None => -1, - }; - - let search = match &list_notes_request.search { - Some(search) => search, - None => "", - }; - - let mut params_vec: Vec<&dyn rusqlite::ToSql> = Vec::new(); - - // params_vec.push(&list_notes_request.limit); - // params_vec.push(&list_notes_request.offset); - println!("page: {}", list_notes_request.page); - println!("page_size: {}", list_notes_request.page_size); - let offset = (list_notes_request.page) * list_notes_request.page_size; - let limit = list_notes_request.page_size; - println!("offset: {}", offset); - params_vec.push(&limit); - params_vec.push(&offset); - - if tag_id != -1 { - // If tag_id is valid, add it to the parameters vector - params_vec.push(&tag_id); - stmt = conn.prepare(LIST_ALL_NOTES_BY_TAG)?; - } else { - // No need to add parameters if tag_id is -1 - stmt = conn.prepare(LIST_ALL_NOTES)?; - } - - // TODO: search with active tag - - let search = format!("{}", search); - - if search != "" { - params_vec.push(&search); - stmt = conn.prepare(SEARCH_NOTES)?; - } - - println!("search: {}", search); - - // Use params_vec.as_slice() when you need to pass the parameters - let notes_iter = stmt.query_map(params_vec.as_slice(), |row| { - let created_at: String = row.get(2)?; - let modified_at: String = row.get(3)?; - Ok(Note { - id: row.get(0)?, - content: row.get(1)?, - created_at: parse_datetime(&created_at)?, - modified_at: Some(parse_datetime(&modified_at).unwrap()), - trashed_at: None, - }) - })?; - - let mut notes = Vec::new(); - for note in notes_iter { - notes.push(note?); - } - - Ok(notes) -} - -pub fn get_note_by_id(conn: &Connection, note_id: &i64) -> Result { - let mut stmt = conn.prepare(GET_NOTE)?; - stmt.query_row(params![note_id], |row| { - let created_at: String = row.get(2)?; - let modified_at: String = row.get(3)?; - Ok(Note { - id: row.get(0)?, - content: row.get(1)?, - created_at: parse_datetime(&created_at)?, - modified_at: Some(parse_datetime(&modified_at).unwrap()), - trashed_at: None, - }) - }) -} - -pub fn update_note(conn: &Connection, update_note_request: &UpdateNoteRequest) -> Result { - let sql = UPDATE_NOTE; - conn.execute( - sql, - params![ - &update_note_request.content, - Utc::now().to_rfc3339(), - &update_note_request.id - ], - ) - .unwrap(); - - let sql_fts5 = UPDATE_FTS_NOTE; - conn.execute( - sql_fts5, - params![ - &update_note_request.content, - Utc::now().to_rfc3339(), - &update_note_request.id - ], - ) - .unwrap(); - - Ok(update_note_request.id) -} - -pub fn delete_note(conn: &Connection, note_id: &i64) -> () { - let sql = DELETE_TRASHED_NOTE; - conn.execute(sql, params![note_id]).unwrap(); -} - -pub fn trash_note(conn: &Connection, note_id: &i64) -> () { - let now = Utc::now().to_rfc3339(); - match get_note_by_id(&conn, ¬e_id) { - Ok(note) => { - let sql = TRASH_NOTE; - conn.execute( - sql, - params![note.id, note.content, note.created_at.to_rfc3339(), &now,], - ) - .unwrap(); - let trashed_note_id = conn.last_insert_rowid(); - match list_tags_for_note(&conn, ¬e_id) { - Ok(tags) => { - tags.iter().for_each(|tag_id| { - let sql = TRASH_NOTE_TAGS; - conn.execute(sql, params![trashed_note_id, tag_id]).unwrap(); - }); - let sql = DELETE_NOTE_TAGS; - conn.execute(sql, params![note_id]).unwrap(); - } - Err(e) => (), - } - let sql = DELETE_NOTE; - conn.execute(sql, params![note_id]).unwrap(); - let sql_fts5 = DELETE_FTS_NOTE; - conn.execute(sql_fts5, params![note_id]).unwrap(); - } - Err(e) => (), - } -} - -pub fn list_trashed_notes( - conn: &Connection, - list_notes_request: &ListNotesRequest, -) -> Result> { - let mut stmt; - let tag_id = match list_notes_request.tag_id { - Some(tag_id) => tag_id, - None => -1, - }; - - let mut params_vec: Vec<&dyn rusqlite::ToSql> = Vec::new(); - if tag_id != -1 { - // If tag_id is valid, add it to the parameters vector - params_vec.push(&tag_id); - stmt = conn.prepare(LIST_ALL_TRASHED_NOTES_BY_TAG)?; - } else { - // No need to add parameters if tag_id is -1 - stmt = conn.prepare(LIST_ALL_TRASHED_NOTES)?; - } - - // Use params_vec.as_slice() when you need to pass the parameters - let notes_iter = stmt.query_map(params_vec.as_slice(), |row| { - let created_at: String = row.get(3)?; - let trashed_at: String = row.get(4)?; - Ok(Note { - id: row.get(0)?, - content: row.get(2)?, - modified_at: None, - created_at: parse_datetime(&created_at)?, - trashed_at: Some(parse_datetime(&trashed_at).unwrap()), - }) - })?; - - let mut notes = Vec::new(); - for note in notes_iter { - notes.push(note?); - } - - Ok(notes) -} diff --git a/src-tauri/src/db/notes_tags.rs b/src-tauri/src/db/notes_tags.rs deleted file mode 100644 index fcfeb395..00000000 --- a/src-tauri/src/db/notes_tags.rs +++ /dev/null @@ -1,39 +0,0 @@ -use crate::db::queries::{ - TAG_NOTE, LIST_TAGS_FOR_NOTE, LIST_NOTES_FOR_TAG, UNTAG_NOTE -}; - -use rusqlite::{params, Connection, Result}; - -use crate::models::TagNoteRequest; - -// Function to add an association between a note and a tag -pub fn tag_note(conn: &Connection, tag_note_request: &TagNoteRequest) -> Result { - let note_id = tag_note_request.note_id; - let tag_id = tag_note_request.tag_id; - let sql = TAG_NOTE; - conn.execute(sql, params![note_id, tag_id]) -} - -// Function to list all tags for a given note_id -pub fn list_tags_for_note(conn: &Connection, note_id: &i64) -> Result> { - let mut stmt = conn.prepare(LIST_TAGS_FOR_NOTE)?; - let tag_iter = stmt.query_map(params![note_id], |row| row.get(0))?; - - tag_iter.collect() -} - -// Function to list all notes for a given tag_id -pub fn list_notes_for_tag(conn: &Connection, tag_id: &i64) -> Result> { - let mut stmt = conn.prepare(LIST_NOTES_FOR_TAG)?; - let note_iter = stmt.query_map(params![tag_id], |row| row.get(0))?; - - note_iter.collect() -} - -// Function to delete an association -pub fn untag_note(conn: &Connection, tag_note_request: &TagNoteRequest) -> Result { - let note_id = tag_note_request.note_id; - let tag_id = tag_note_request.tag_id; - let sql = UNTAG_NOTE; - conn.execute(sql, params![note_id, tag_id]) -} diff --git a/src-tauri/src/db/queries.rs b/src-tauri/src/db/queries.rs deleted file mode 100644 index f34e779a..00000000 --- a/src-tauri/src/db/queries.rs +++ /dev/null @@ -1,38 +0,0 @@ -//Notes Queries -pub const INSERT_NOTE: &str = "INSERT INTO notes (content, created_at, modified_at) VALUES (?1, ?2, ?3)"; -pub const INSERT_FTS_NOTE: &str = "INSERT INTO notes_fts (rowid, content, created_at, modified_at) VALUES (?1, ?2, ?3, ?4)"; -pub const LIST_ALL_NOTES: &str = "SELECT id, content, created_at, modified_at FROM notes ORDER BY modified_at DESC LIMIT ?1 OFFSET ?2"; -pub const LIST_ALL_NOTES_BY_TAG: &str = "SELECT n.id, n.content, n.created_at, n.modified_at FROM notes n JOIN notes_tags nt ON n.id = nt.note_id WHERE nt.tag_id = ?3 ORDER BY n.modified_at DESC LIMIT ?1 OFFSET ?2"; -pub const SEARCH_NOTES: &str = "SELECT rowid, content, created_at, modified_at FROM notes_fts WHERE notes_fts MATCH ?3 ORDER BY modified_at DESC LIMIT ?1 OFFSET ?2"; -pub const GET_NOTE: &str = "SELECT id, content, created_at, modified_at FROM notes WHERE id = ?1"; -pub const UPDATE_NOTE: &str = "UPDATE notes SET content = ?1, modified_at = ?2 WHERE id = ?3"; -pub const UPDATE_FTS_NOTE: &str = "UPDATE notes_fts SET content = ?1, modified_at = ?2 WHERE rowid = ?3"; -pub const DELETE_TRASHED_NOTE: &str = "DELETE FROM trashed_notes WHERE id = ?1"; -pub const TRASH_NOTE: &str = "INSERT INTO trashed_notes (note_id, content, created_at, trashed_at) VALUES (?1, ?2, ?3, ?4)"; -pub const TRASH_NOTE_TAGS: &str = "INSERT INTO trashed_notes_tags (trashed_note_id, tag_id) VALUES (?1, ?2)"; -pub const DELETE_NOTE_TAGS: &str = "DELETE FROM notes_tags WHERE note_id = ?1"; -pub const DELETE_NOTE: &str = "DELETE FROM notes WHERE id = ?1"; -pub const DELETE_FTS_NOTE: &str = "DELETE FROM notes_fts WHERE rowid = ?1"; -pub const LIST_ALL_TRASHED_NOTES: &str = "SELECT id, note_id, content, created_at, trashed_at FROM trashed_notes ORDER BY trashed_at DESC"; -pub const LIST_ALL_TRASHED_NOTES_BY_TAG: &str = "SELECT an.id, an.note_id, an.content, an.created_at, an.trashed_at FROM trashed_notes an JOIN trashed_notes_tags ant ON an.id = ant.note_id WHERE ant.tag_id = ?1 ORDER BY an.trashed_at DESC"; - -//Tags Queries -pub const INSERT_TAG: &str = "INSERT INTO tags (name, color, icon, created_at) VALUES (?1, ?2, ?3, ?4)"; -pub const GET_TAG: &str = "SELECT id, name, color, icon, created_at FROM tags WHERE id = ?1"; -pub const GET_TAG_BY_NAME: &str = "SELECT id, name, color, icon, created_at FROM tags WHERE name = ?1"; -pub const LIST_ALL_TAGS: &str = "SELECT t.id, t.name, t.color, t.icon, t.created_at FROM tags t JOIN notes_tags nt ON t.id = nt.tag_id WHERE nt.note_id = ?1 ORDER BY t.name ASC"; -pub const LIST_ALL_TAGS_BY_NOTE: &str = "SELECT id, name, color, icon, created_at FROM tags ORDER BY name ASC"; -pub const UPDATE_TAG: &str = "UPDATE tags SET name = ?1, color = ?2, icon = ?3 WHERE id = ?4"; -pub const DELETE_TAG: &str = "DELETE FROM tags WHERE id = ?1"; - -//Notes Tags Queries -pub const TAG_NOTE: &str = "INSERT INTO notes_tags (note_id, tag_id) VALUES (?1, ?2)"; -pub const LIST_TAGS_FOR_NOTE: &str = "SELECT tag_id FROM notes_tags WHERE note_id = ?1"; -pub const LIST_NOTES_FOR_TAG: &str = "SELECT note_id FROM notes_tags WHERE tag_id = ?1"; -pub const UNTAG_NOTE: &str = "DELETE FROM notes_tags WHERE note_id = ?1 AND tag_id = ?2"; - -//Settings Queries -pub const INSERT_SETTING: &str = "INSERT OR IGNORE INTO settings (key, value) VALUES (?, ?)"; -pub const GET_SETTING: &str = "SELECT value FROM settings WHERE key = ?1"; -pub const SET_SETTING: &str = "INSERT OR REPLACE INTO settings (key, value) VALUES (?, ?)"; -pub const LIST_SETTINGS: &str = "SELECT key, value FROM settings"; \ No newline at end of file diff --git a/src-tauri/src/db/settings.rs b/src-tauri/src/db/settings.rs deleted file mode 100644 index 84a292fc..00000000 --- a/src-tauri/src/db/settings.rs +++ /dev/null @@ -1,75 +0,0 @@ -use crate::db::queries::{ - INSERT_SETTING, GET_SETTING, SET_SETTING, LIST_SETTINGS -}; - -use std::collections::HashMap; - -use rusqlite::{params, Connection, Result}; // Import the Note struct - -pub fn insert_initial_settings(conn: &Connection) -> Result<()> { - let initial_settings = vec![ - // theme - ("theme", "dark"), - // editor - ("vim", "false"), - ("line_numbers", "false"), - ("highlight_active_line", "false"), - ("line_wrapping", "true"), - ("unordered_list_bullet", "*"), - ("indent_unit", "4"), - ("tab_size", "4"), - ("font_size", "16"), - ( - "font_family", - r#"SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace"#, - ), - ("font_weight", "normal"), - ("line_height", "1.5"), - // profile - ("npub", ""), - ("nsec", ""), - // relays - ("relays", "[\"relay.damus.io\", \"nos.lol\"]"), - - ]; - - for (key, value) in initial_settings { - conn.execute( - INSERT_SETTING, - params![key, value], - )?; - } - - Ok(()) -} - -pub fn get_setting(conn: &Connection, key: &str) -> Result { - let mut stmt = conn.prepare(GET_SETTING)?; - stmt.query_row(params![key], |row| Ok(row.get(0)?)) -} - -pub fn set_setting(conn: &Connection, key: &str, value: &str) -> Result<()> { - conn.execute( - SET_SETTING, - params![key, value], - )?; - - Ok(()) -} - -pub fn get_all_settings(conn: &Connection) -> Result> { - let mut stmt = conn.prepare(LIST_SETTINGS)?; - let settings_iter = stmt.query_map(params![], |row| { - let key: String = row.get(0)?; - let value: String = row.get(1)?; - Ok((key, value)) - })?; - - let mut settings = HashMap::new(); - for setting in settings_iter { - let (key, value) = setting?; - settings.insert(key, value); - } - - Ok(settings) -} diff --git a/src-tauri/src/db/tags.rs b/src-tauri/src/db/tags.rs deleted file mode 100644 index bc39f26f..00000000 --- a/src-tauri/src/db/tags.rs +++ /dev/null @@ -1,115 +0,0 @@ -use crate::db::queries::{ - GET_TAG, GET_TAG_BY_NAME, INSERT_TAG, LIST_ALL_TAGS, LIST_ALL_TAGS_BY_NOTE, UPDATE_TAG, DELETE_TAG -}; -use crate::{ - models::{CreateTagRequest, ListTagsRequest, Tag, UpdateTagRequest}, - utils::parse_datetime, -}; -use chrono::Utc; -use rusqlite::{params, Connection, Result}; - -pub fn create_tag(conn: &Connection, create_tag_request: &CreateTagRequest) -> Result { - let now = Utc::now().to_rfc3339(); - let sql = INSERT_TAG; - conn.execute( - sql, - params![ - &create_tag_request.name, - &create_tag_request.color, - &create_tag_request.icon, - &now - ], - ).unwrap(); - Ok(conn.last_insert_rowid()) -} - -pub fn get_tag_by_id(conn: &Connection, tag_id: i64) -> Result { - let mut stmt = conn.prepare(GET_TAG)?; - stmt.query_row(params![tag_id], |row| { - let created_at: String = row.get(4)?; - Ok(Tag { - id: row.get(0)?, - name: row.get(1)?, - color: row.get(2)?, - icon: row.get(3)?, - created_at: parse_datetime(&created_at)?, - }) - }) -} - -pub fn get_tag_by_name(conn: &Connection, tag_name: &str) -> Result { - let mut stmt = conn.prepare(GET_TAG_BY_NAME)?; - stmt.query_row(params![tag_name], |row| { - let created_at: String = row.get(4)?; - Ok(Tag { - id: row.get(0)?, - name: row.get(1)?, - color: row.get(2)?, - icon: row.get(3)?, - created_at: parse_datetime(&created_at)?, - }) - }) -} - -pub fn list_all_tags( - conn: &Connection, - list_notes_request: &ListTagsRequest, -) -> Result> { - let mut stmt; - let note_id = match list_notes_request.note_id { - Some(note_id) => note_id, - None => -1, - }; - println!("{note_id}"); - let mut params_vec: Vec<&dyn rusqlite::ToSql> = Vec::new(); - - if note_id != -1 { - // If note_id is valid, add it to the parameters vector - params_vec.push(¬e_id); - stmt = conn.prepare( - LIST_ALL_TAGS, - )?; - } else { - // No need to add parameters if note_id is -1 - stmt = conn.prepare( - LIST_ALL_TAGS_BY_NOTE, - )?; - } - - // let mut stmt = conn.prepare("SELECT id, name, color, icon, created_at FROM tags ORDER BY name ASC")?; - let tag_iter = stmt.query_map(params_vec.as_slice(), |row| { - let created_at: String = row.get(4)?; - Ok(Tag { - id: row.get(0)?, - name: row.get(1)?, - color: row.get(2)?, - icon: row.get(3)?, - created_at: parse_datetime(&created_at)?, - }) - })?; - - let mut tags = Vec::new(); - for tag in tag_iter { - tags.push(tag?); - } - - Ok(tags) -} - -pub fn update_tag(conn: &Connection, update_tag_request: &UpdateTagRequest) -> Result { - let sql = UPDATE_TAG; - conn.execute( - sql, - params![ - &update_tag_request.name, - &update_tag_request.color, - &update_tag_request.icon, - &update_tag_request.id - ], - ) -} - -pub fn delete_tag(conn: &Connection, tag_id: &i64) -> () { - let sql = DELETE_TAG; - conn.execute(sql, params![tag_id]).unwrap(); -} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs deleted file mode 100644 index e315277e..00000000 --- a/src-tauri/src/main.rs +++ /dev/null @@ -1,342 +0,0 @@ -// Prevents additional console window on Windows in release, DO NOT REMOVE!! -#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] - -use std::{ - collections::HashMap, - fs, - sync::{Arc, Mutex}, -}; - -use nostr_sdk::prelude::*; - -mod services; -use services::{ContextMenuService, NoteService, NoteTagService, SettingsService, TagService}; - -use tauri::{ - menu::{MenuEvent, MenuId}, - path::BaseDirectory, - AppHandle, Manager, State, -}; - -mod db; - -mod models; -mod utils; -use models::{ - APIResponse, ContextMenuEvent, ContextMenuEventKind, ContextMenuRequest, ContextMenuState, - CreateNoteRequest, CreateTagRequest, DBConn, GetTagRequest, ListNotesRequest, ListTagsRequest, - Note, NoteItemContextMenuEvent, NoteTagItemContextMenuEvent, Tag, TagItemContextMenuEvent, - TagNoteRequest, UpdateNoteRequest, -}; - -// Notes - -#[tauri::command] -fn create_note( - create_note_request: CreateNoteRequest, - note_service: State<'_, NoteService>, -) -> APIResponse { - note_service.create_note(create_note_request) -} - -#[tauri::command] -fn update_note( - update_note_request: UpdateNoteRequest, - note_service: State<'_, NoteService>, -) -> APIResponse { - println!("{:?}", update_note_request.content); - note_service.update_note(update_note_request) -} - -#[tauri::command] -fn trash_note(note_id: i64, note_service: State<'_, NoteService>) -> () { - note_service.trash_note(¬e_id) -} - -#[tauri::command] -fn delete_note(note_id: i64, note_service: State<'_, NoteService>) -> () { - note_service.delete_note(¬e_id) -} - -#[tauri::command] -fn list_notes( - list_notes_request: ListNotesRequest, - note_service: State<'_, NoteService>, -) -> APIResponse> { - note_service.list_notes(&list_notes_request) -} - -#[tauri::command] -fn get_note(note_id: i64, note_service: State<'_, NoteService>) -> APIResponse { - note_service.get_note(¬e_id) -} - -// Tags - -#[tauri::command] -fn create_tag( - create_tag_request: CreateTagRequest, - tag_service: State<'_, TagService>, -) -> APIResponse { - tag_service.create_tag(create_tag_request) -} - -#[tauri::command] -fn delete_tag(tag_id: i64, tag_service: State<'_, TagService>) -> () { - tag_service.delete_tag(&tag_id) -} - -#[tauri::command] -fn list_tags( - list_tags_request: ListTagsRequest, - tag_service: State<'_, TagService>, -) -> APIResponse> { - tag_service.list_tags(&list_tags_request) -} - -#[tauri::command] -fn get_tag(get_tag_request: GetTagRequest, tag_service: State<'_, TagService>) -> APIResponse { - tag_service.get_tag(get_tag_request) -} - -// Tag Notes - -#[tauri::command] -fn tag_note( - tag_note_request: TagNoteRequest, - tag_note_service: State<'_, NoteTagService>, -) -> APIResponse<()> { - tag_note_service.tag_note(tag_note_request) -} - -// Tag Notes - -#[tauri::command] -fn untag_note( - tag_note_request: TagNoteRequest, - tag_note_service: State<'_, NoteTagService>, -) -> APIResponse<()> { - tag_note_service.untag_note(&tag_note_request) -} -// Settings - -#[tauri::command] -fn get_all_settings( - settings_service: State<'_, SettingsService>, -) -> APIResponse> { - settings_service.get_all_settings() -} - -#[tauri::command] -fn get_setting(key: String, settings_service: State<'_, SettingsService>) -> APIResponse { - settings_service.get_setting(&key) -} - -#[tauri::command] -fn set_setting( - key: String, - value: String, - settings_service: State<'_, SettingsService>, -) -> APIResponse<()> { - settings_service.set_setting(&key, &value) -} - -// Context Menu - -#[tauri::command] -fn create_context_menu( - window: tauri::Window, - create_context_menu_request: ContextMenuRequest, - app_handle: AppHandle, - context_menu_service: State<'_, ContextMenuService>, -) -> APIResponse<()> { - context_menu_service.create_context_menu( - window, - app_handle.clone(), - &create_context_menu_request, - ) -} - -#[tauri::command] -async fn sign_event(event: String) -> String { - println!("{:?}", event); - - let unsigned_event = UnsignedEvent::from_json(event).unwrap(); - - println!("{:?}", unsigned_event); - - let signed_event = nip_70::Nip70Client::default() - .sign_event(unsigned_event) - .await - .unwrap(); - - return signed_event.as_json().to_string(); -} - -#[tauri::command] -fn handle_menu_event(app_handle: &tauri::AppHandle, event: MenuEvent) { - let app_handle_clone = app_handle.clone(); - let note_service: State = app_handle_clone.state(); - let tag_service: State = app_handle_clone.state(); - let tag_note_service: State = app_handle_clone.state(); - - let context_menu_state: State> = app_handle_clone.state(); - - let mut context_menu_state = context_menu_state.lock().unwrap(); - let note_id = context_menu_state.note_id; - let tag_id = context_menu_state.tag_id; - let trash_note_menu_id = MenuId(String::from("trash_note")); - let delete_tag_menu_id = MenuId(String::from("delete_tag")); - let untag_note_menu_id = MenuId(String::from("untag_note")); - match event.id() { - id if id == &trash_note_menu_id => { - note_service.trash_note(¬e_id.unwrap()); - let note_item_context_menu_event = NoteItemContextMenuEvent { - id: match note_id { - Some(id) => id, - None => 0, - }, - event_kind: String::from("trash_note"), - }; - let context_menu_event = ContextMenuEvent { - context_menu_event_kind: ContextMenuEventKind::NoteItem( - note_item_context_menu_event, - ), - }; - app_handle.emit("menu_event", context_menu_event).unwrap(); - } - - id if id == &delete_tag_menu_id => { - let tag_item_context_menu_event = TagItemContextMenuEvent { - id: match tag_id { - Some(id) => id, - None => 0, - }, - event_kind: String::from("delete_tag"), - }; - let context_menu_event = ContextMenuEvent { - context_menu_event_kind: ContextMenuEventKind::TagItem(tag_item_context_menu_event), - }; - app_handle.emit("menu_event", context_menu_event).unwrap(); - } - - id if id == &untag_note_menu_id => { - let tag_note_request = TagNoteRequest { - note_id: match note_id { - Some(id) => id, - None => 0, - }, - tag_id: match tag_id { - Some(id) => id, - None => 0, - }, - }; - tag_note_service.untag_note(&tag_note_request); - - println!("{:?}", tag_note_request); - - let note_tag_item_context_menu_event = NoteTagItemContextMenuEvent { - note_id: match note_id { - Some(id) => id, - None => 0, - }, - tag_id: match tag_id { - Some(id) => id, - None => 0, - }, - event_kind: String::from("untag_note"), - }; - let context_menu_event = ContextMenuEvent { - context_menu_event_kind: ContextMenuEventKind::NoteTag( - note_tag_item_context_menu_event, - ), - }; - println!("{:?}", context_menu_event); - app_handle.emit("menu_event", context_menu_event).unwrap(); - context_menu_state.note_id = None; - context_menu_state.tag_id = None; - } - - _ => { - context_menu_state.note_id = None; - context_menu_state.tag_id = None; - } - } -} - -fn main() { - let context_menu_state = ContextMenuState { - note_id: None, - tag_id: None, - }; - tauri::Builder::default() - .plugin(tauri_plugin_shell::init()) - .manage(Mutex::new(context_menu_state)) - .setup(|app| { - let window = app.get_webview_window("main").unwrap(); - #[cfg(target_os = "macos")] - { - use cocoa::appkit::{NSColor, NSWindow}; - use cocoa::base::{id, nil}; - - let ns_window = window.ns_window().unwrap() as id; - unsafe { - let bg_color = NSColor::colorWithRed_green_blue_alpha_( - nil, - 29.0 / 255.0, - 30.0 / 255.0, - 31.0 / 255.0, - 1.0, - ); - ns_window.setBackgroundColor_(bg_color); - } - } - let db_dir = app - .path() - .resolve("captainslog", BaseDirectory::Data) - .expect("Failed to resolve data directory path"); - fs::create_dir_all(&db_dir).expect("Failed to create directory"); - let db_path = db_dir.join("captains_log.db"); - let conn = db::establish_connection(db_path.to_str().unwrap()) - .expect("Failed to connect to database"); - let db_conn: DBConn = DBConn(Arc::new(Mutex::new(conn))); - let connection = Arc::new(db_conn); - let note_service = NoteService::new(connection.clone()); - let tag_service = TagService::new(connection.clone()); - let tag_note_service: NoteTagService = NoteTagService::new(connection.clone()); - let context_menu_service: ContextMenuService = ContextMenuService::new(); - let settings_service: SettingsService = SettingsService::new(connection.clone()); - app.manage(note_service); - app.manage(tag_service); - app.manage(tag_note_service); - app.manage(context_menu_service); - app.manage(settings_service); - { - app.on_menu_event(|app_handle: &tauri::AppHandle, event| { - handle_menu_event(app_handle, event); - }); - } - Ok(()) - }) - .invoke_handler(tauri::generate_handler![ - get_note, - sign_event, - create_note, - update_note, - list_notes, - create_tag, - list_tags, - get_tag, - tag_note, - delete_tag, - untag_note, - create_context_menu, - delete_note, - trash_note, - get_setting, - get_all_settings, - set_setting, - ]) - .run(tauri::generate_context!()) - .expect("error while running tauri application"); -} diff --git a/src-tauri/src/models.rs b/src-tauri/src/models.rs deleted file mode 100644 index 45445833..00000000 --- a/src-tauri/src/models.rs +++ /dev/null @@ -1,199 +0,0 @@ -use std::sync::{Arc, Mutex}; - -use chrono::{DateTime, Utc}; -use rusqlite::Connection; -use serde::{Deserialize, Serialize}; - -pub struct DBConn(pub Arc>); - -// response -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub enum APIResponse { - Data(Option), - Error(String), -} - -// Notes -#[derive(Deserialize)] -#[serde(rename_all = "lowercase")] -pub enum NoteFilter { - All, - Trashed, - // Archived, - // Saved, -} - -#[derive(Deserialize)] -#[serde(rename_all = "lowercase")] -pub enum NoteStatus { - Active, - Completed, - Pending, - Published, -} - -#[derive(Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct ListNotesRequest { - pub filter: NoteFilter, - pub page: u32, - pub page_size: u32, - pub tag_id: Option, - pub search: Option, - pub sort_by: Option, - pub status: Option, -} - -#[derive(Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct ListTagsRequest { - pub note_id: Option, -} - -#[derive(Deserialize)] -pub struct CreateNoteRequest { - pub content: String, -} - -#[derive(Deserialize)] -pub struct UpdateNoteRequest { - pub id: i64, - pub content: String, -} - -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct Note { - pub id: i64, - pub content: String, - pub created_at: DateTime, - pub modified_at: Option>, - pub trashed_at: Option>, -} - -// Tags -#[derive(Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct CreateTagRequest { - pub name: String, - pub color: String, - pub icon: String, - pub note_id: Option, -} - -#[derive(Deserialize)] -pub struct UpdateTagRequest { - pub id: i64, - pub name: String, - pub color: String, - pub icon: String, -} - -#[derive(Deserialize)] -// add debug to print the struct -#[derive(Debug)] -pub struct GetTagRequest { - pub id: Option, - pub name: Option, -} - -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct Tag { - pub id: i64, - pub name: String, - pub color: String, - pub icon: String, - pub created_at: DateTime, -} - -// Note Tags -#[derive(Deserialize)] -#[serde(rename_all = "camelCase")] -#[derive(Debug)] -pub struct TagNoteRequest { - pub note_id: i64, - pub tag_id: i64, -} - -#[derive(Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct NoteItemContextMenuRequest { - pub id: i64, -} - -#[derive(Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct TagItemContextMenuRequest { - pub id: i64, -} - -#[derive(Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct NoteTagItemContextMenuRequest { - pub note_id: i64, - pub tag_id: i64, -} - -#[derive(Deserialize)] -pub enum MenuKind { - NoteItem(NoteItemContextMenuRequest), - TagItem(TagItemContextMenuRequest), - NoteTag(NoteTagItemContextMenuRequest), -} - -#[derive(Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct ContextMenuRequest { - pub menu_kind: MenuKind, -} - -#[derive(Debug)] -pub struct ContextMenuState{ - pub note_id: Option, - pub tag_id: Option, -} - -#[derive(Debug)] -pub struct ContextMenuTagItemId(pub i64); - -#[derive(Serialize, Clone)] -#[serde(rename_all = "camelCase")] -#[derive(Debug)] -pub struct NoteItemContextMenuEvent { - pub id: i64, - pub event_kind: String, -} - -#[derive(Serialize, Clone)] -#[serde(rename_all = "camelCase")] -#[derive(Debug)] -pub struct TagItemContextMenuEvent { - pub id: i64, - pub event_kind: String, -} - -#[derive(Serialize, Clone)] -#[serde(rename_all = "camelCase")] -#[derive(Debug)] -pub struct NoteTagItemContextMenuEvent { - pub note_id: i64, - pub tag_id: i64, - pub event_kind: String, -} - -#[derive(Serialize, Clone)] -#[derive(Debug)] -pub enum ContextMenuEventKind { - NoteItem(NoteItemContextMenuEvent), - TagItem(TagItemContextMenuEvent), - NoteTag(NoteTagItemContextMenuEvent), -} - -#[derive(Serialize, Clone)] -#[serde(rename_all = "camelCase")] -#[derive(Debug)] -pub struct ContextMenuEvent { - pub context_menu_event_kind: ContextMenuEventKind, -} diff --git a/src-tauri/src/services/context_menu_service.rs b/src-tauri/src/services/context_menu_service.rs deleted file mode 100644 index 8828011d..00000000 --- a/src-tauri/src/services/context_menu_service.rs +++ /dev/null @@ -1,95 +0,0 @@ -use std::sync::Mutex; - -use tauri::{ - menu::{ContextMenu, Menu, MenuItem}, - AppHandle, Manager, State, Window, -}; - -use crate::models::{ - APIResponse, ContextMenuRequest, ContextMenuState, MenuKind, NoteItemContextMenuRequest, - NoteTagItemContextMenuRequest, TagItemContextMenuRequest, -}; - -pub struct ContextMenuService {} -fn create_note_context_menu( - window: Window, - app_handle: AppHandle, - note_item_context_menu_request: &NoteItemContextMenuRequest, -) -> APIResponse<()> { - let context_menu_item_id: State> = app_handle.state(); - let mut context_menu_state = context_menu_item_id.lock().unwrap(); - context_menu_state.note_id = Some(note_item_context_menu_request.id); - let manager = window.app_handle(); - let context_menu = Menu::with_items( - manager, - &[&MenuItem::with_id(manager, "trash_note", "Move To Trash", true, None::<&str>).unwrap()], - ) - .unwrap(); - - context_menu.popup(window).unwrap(); - APIResponse::Data(None) -} - -fn create_tag_context_menu( - window: Window, - app_handle: AppHandle, - tag_item_context_menu_request: &TagItemContextMenuRequest, -) -> APIResponse<()> { - let context_menu_item_id: State> = app_handle.state(); - let mut context_menu_state = context_menu_item_id.lock().unwrap(); - context_menu_state.tag_id = Some(tag_item_context_menu_request.id); - let manager = window.app_handle(); - let context_menu = Menu::with_items( - manager, - &[&MenuItem::with_id(manager, "delete_tag", "Delete", true, None::<&str>).unwrap()], - ) - .unwrap(); - - context_menu.popup(window).unwrap(); - APIResponse::Data(None) -} - -fn create_note_tag_context_menu( - window: Window, - app_handle: AppHandle, - note_tag_item_context_menu_request: &NoteTagItemContextMenuRequest, -) -> APIResponse<()> { - let context_menu_item_id: State> = app_handle.state(); - let mut context_menu_state = context_menu_item_id.lock().unwrap(); - context_menu_state.note_id = Some(note_tag_item_context_menu_request.note_id); - context_menu_state.tag_id = Some(note_tag_item_context_menu_request.tag_id); - let manager = window.app_handle(); - let context_menu = Menu::with_items( - manager, - &[&MenuItem::with_id(manager, "untag_note", "Remove", true, None::<&str>).unwrap()], - ) - .unwrap(); - - context_menu.popup(window).unwrap(); - APIResponse::Data(None) -} - -impl ContextMenuService { - pub fn new() -> Self { - ContextMenuService {} - } - - pub fn create_context_menu( - &self, - window: Window, - app_handle: AppHandle, - create_context_menu_request: &ContextMenuRequest, - ) -> APIResponse<()> { - match &create_context_menu_request.menu_kind { - MenuKind::NoteItem(note_item_context_menu_request) => { - create_note_context_menu(window, app_handle, note_item_context_menu_request) - } - MenuKind::TagItem(tag_item_context_menu_request) => { - create_tag_context_menu(window, app_handle, tag_item_context_menu_request) - } - MenuKind::NoteTag(note_tag_item_context_menu_request) => { - create_note_tag_context_menu(window, app_handle, note_tag_item_context_menu_request) - } - } - } -} diff --git a/src-tauri/src/services/mod.rs b/src-tauri/src/services/mod.rs deleted file mode 100644 index 5682abe2..00000000 --- a/src-tauri/src/services/mod.rs +++ /dev/null @@ -1,12 +0,0 @@ -pub mod note_service; -pub mod tag_service; -pub mod note_tag_service; -pub mod context_menu_service; -pub mod settings_service; - -pub use self::note_service::NoteService; -pub use self::tag_service::TagService; -pub use self::note_tag_service::NoteTagService; -pub use self::context_menu_service::ContextMenuService; -pub use self::settings_service::SettingsService; - diff --git a/src-tauri/src/services/note_service.rs b/src-tauri/src/services/note_service.rs deleted file mode 100644 index 983f3100..00000000 --- a/src-tauri/src/services/note_service.rs +++ /dev/null @@ -1,76 +0,0 @@ -use crate::{ - db, - models::{ - APIResponse, CreateNoteRequest, DBConn, ListNotesRequest, Note, NoteFilter, - UpdateNoteRequest, - }, -}; -use std::sync::Arc; - -pub struct NoteService { - db_conn: Arc, -} - -impl NoteService { - pub fn new(db_conn: Arc) -> Self { - NoteService { db_conn } - } - - pub fn create_note(&self, create_note_request: CreateNoteRequest) -> APIResponse { - let conn = self.db_conn.0.lock().unwrap(); - - match db::create_note(&conn, &create_note_request) { - Ok(note_id) => match db::get_note_by_id(&conn, ¬e_id) { - Ok(note) => APIResponse::Data(Some(note)), - Err(e) => APIResponse::Error(format!("Failed to retrieve created note: {}", e)), - }, - Err(e) => APIResponse::Error(format!("Failed to create note: {}", e)), - } - } - - pub fn update_note(&self, update_note_request: UpdateNoteRequest) -> APIResponse { - let conn = self.db_conn.0.lock().unwrap(); - - match db::update_note(&conn, &update_note_request) { - Ok(note_id) => match db::get_note_by_id(&conn, ¬e_id) { - Ok(note) => APIResponse::Data(Some(note)), - Err(e) => APIResponse::Error(format!("Failed to retrieve updated note: {}", e)), - }, - Err(e) => APIResponse::Error(format!("Failed to update note: {}", e)), - } - } - - pub fn list_notes(&self, list_notes_request: &ListNotesRequest) -> APIResponse> { - let conn = self.db_conn.0.lock().unwrap(); - - match list_notes_request.filter { - NoteFilter::All => match db::list_all_notes(&conn, &list_notes_request) { - Ok(notes) => APIResponse::Data(Some(notes)), - Err(e) => APIResponse::Error(format!("Failed to retrieve notes: {}", e)), - }, - - NoteFilter::Trashed => match db::list_trashed_notes(&conn, &list_notes_request) { - Ok(notes) => APIResponse::Data(Some(notes)), - Err(e) => APIResponse::Error(format!("Failed to retrieve notes: {}", e)), - }, - } - } - - pub fn get_note(&self, note_id: &i64) -> APIResponse { - let conn = self.db_conn.0.lock().unwrap(); - match db::get_note_by_id(&conn, ¬e_id) { - Ok(note) => APIResponse::Data(Some(note)), - Err(e) => APIResponse::Error(format!("Failed to retrieve note: {}", e)), - } - } - - pub fn trash_note(&self, note_id: &i64) -> () { - let conn = self.db_conn.0.lock().unwrap(); - db::trash_note(&conn, ¬e_id); - } - - pub fn delete_note(&self, note_id: &i64) -> () { - let conn = self.db_conn.0.lock().unwrap(); - db::delete_note(&conn, ¬e_id); - } -} diff --git a/src-tauri/src/services/note_tag_service.rs b/src-tauri/src/services/note_tag_service.rs deleted file mode 100644 index 83056e7b..00000000 --- a/src-tauri/src/services/note_tag_service.rs +++ /dev/null @@ -1,33 +0,0 @@ -use crate::{ - db, - models::{APIResponse, DBConn, TagNoteRequest}, -}; -use std::sync::Arc; - -pub struct NoteTagService { - db_conn: Arc, -} - -impl NoteTagService { - pub fn new(db_conn: Arc) -> Self { - NoteTagService { db_conn } - } - - pub fn tag_note(&self, tag_note_request: TagNoteRequest) -> APIResponse<()> { - let conn = self.db_conn.0.lock().unwrap(); - - match db::tag_note(&conn, &tag_note_request) { - Ok(_) => APIResponse::Data(None), - Err(e) => APIResponse::Error(format!("Failed to tag note: {}", e)), - } - } - - pub fn untag_note(&self, tag_note_request: &TagNoteRequest) -> APIResponse<()> { - let conn = self.db_conn.0.lock().unwrap(); - - match db::untag_note(&conn, &tag_note_request) { - Ok(_) => APIResponse::Data(None), - Err(e) => APIResponse::Error(format!("Failed to untag note: {}", e)), - } - } -} diff --git a/src-tauri/src/services/settings_service.rs b/src-tauri/src/services/settings_service.rs deleted file mode 100644 index 3ee8e49f..00000000 --- a/src-tauri/src/services/settings_service.rs +++ /dev/null @@ -1,42 +0,0 @@ -use crate::{ - db, - models::{APIResponse, DBConn}, -}; -use std::{collections::HashMap, sync::Arc}; - -pub struct SettingsService { - db_conn: Arc, -} - -impl SettingsService { - pub fn new(db_conn: Arc) -> Self { - SettingsService { db_conn } - } - - pub fn get_all_settings(&self) -> APIResponse> { - let conn = self.db_conn.0.lock().unwrap(); - - match db::get_all_settings(&conn) { - Ok(settings) => APIResponse::Data(Some(settings)), - Err(e) => APIResponse::Error(format!("Failed to retrieve settings: {}", e)), - } - } - - pub fn get_setting(&self, key: &String) -> APIResponse { - let conn = self.db_conn.0.lock().unwrap(); - - match db::get_setting(&conn, key) { - Ok(setting) => APIResponse::Data(Some(setting)), - Err(e) => APIResponse::Error(format!("Failed to retrieve setting: {}", e)), - } - } - - pub fn set_setting(&self, key: &String, value: &String) -> APIResponse<()> { - let conn = self.db_conn.0.lock().unwrap(); - - match db::set_setting(&conn, key, value) { - Ok(_) => APIResponse::Data(None), - Err(e) => APIResponse::Error(format!("Failed to set setting: {}", e)), - } - } -} diff --git a/src-tauri/src/services/tag_service.rs b/src-tauri/src/services/tag_service.rs deleted file mode 100644 index 1ea1ba32..00000000 --- a/src-tauri/src/services/tag_service.rs +++ /dev/null @@ -1,74 +0,0 @@ -use crate::{ - db, - models::{APIResponse, CreateTagRequest, DBConn, GetTagRequest, ListTagsRequest, Tag, TagNoteRequest}, -}; -use std::sync::Arc; - -pub struct TagService { - db_conn: Arc, -} - -impl TagService { - pub fn new(db_conn: Arc) -> Self { - TagService { db_conn } - } - - pub fn create_tag(&self, create_tag_request: CreateTagRequest) -> APIResponse { - let conn = self.db_conn.0.lock().unwrap(); - match db::create_tag(&conn, &create_tag_request) { - Ok(tag_id) => { - match create_tag_request.note_id { - Some(note_id) => { - let tag_note_request = TagNoteRequest { - tag_id: tag_id, - note_id: note_id, - }; - db::tag_note(&conn, &tag_note_request).unwrap(); - } - None => (), - } - - match db::get_tag_by_id(&conn, tag_id) { - // Ensure type matches your ID field - Ok(tag) => APIResponse::Data(Some(tag)), - Err(e) => APIResponse::Error(format!("Failed to retrieve created tag: {}", e)), - } - } - Err(e) => APIResponse::Error(format!("Failed to create tag: {}", e)), - } - } - - pub fn get_tag(&self, get_tag_request: GetTagRequest) -> APIResponse { - let conn = self.db_conn.0.lock().unwrap(); - println!("{:?}", get_tag_request); - - match get_tag_request { - GetTagRequest { id: Some(id), .. } => match db::get_tag_by_id(&conn, id) { - Ok(tag) => APIResponse::Data(Some(tag)), - Err(e) => APIResponse::Error(format!("Failed to retrieve tag by ID: {}", e)), - }, - GetTagRequest { - name: Some(name), .. - } => match db::get_tag_by_name(&conn, &name) { - // APIResponse::Success(Some(tag)) => APIResponse::Success(Some(tag)), - Ok(tag) => APIResponse::Data(Some(tag)), - Err(e) => APIResponse::Error(format!("Failed to retrieve tag by name: {}", e)), - }, - _ => APIResponse::Error("Failed to retrieve tag: no ID or name provided".to_string()), - } - } - - pub fn list_tags(&self, list_tags_request: &ListTagsRequest) -> APIResponse> { - let conn = self.db_conn.0.lock().unwrap(); - - match db::list_all_tags(&conn, &list_tags_request) { - Ok(tags) => APIResponse::Data(Some(tags)), - Err(e) => APIResponse::Error(format!("Failed to retrieve tags: {}", e)), - } - } - - pub fn delete_tag(&self, tag_id: &i64) -> () { - let conn = self.db_conn.0.lock().unwrap(); - db::delete_tag(&conn, &tag_id); - } -} diff --git a/src-tauri/src/utils.rs b/src-tauri/src/utils.rs deleted file mode 100644 index a75dbf49..00000000 --- a/src-tauri/src/utils.rs +++ /dev/null @@ -1,8 +0,0 @@ -use chrono::{DateTime, Utc}; -use rusqlite::Error as RusqliteError; - -pub fn parse_datetime(s: &str) -> Result, RusqliteError> { - DateTime::parse_from_rfc3339(s) - .map_err(|_| RusqliteError::InvalidQuery) - .map(|dt| dt.with_timezone(&Utc)) -} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json deleted file mode 100644 index 46ea35e0..00000000 --- a/src-tauri/tauri.conf.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "productName": "captains-log", - "version": "0.0.1", - "identifier": "captains-log", - "build": { - "beforeDevCommand": "npm run dev", - "devUrl": "http://localhost:1420", - "beforeBuildCommand": "npm run build", - "frontendDist": "../dist" - }, - "app": { - "windows": [ - { - "title": "captains-log", - "width": 1200, - "height": 600, - "resizable": true, - "decorations": true, - "center": true, - "titleBarStyle": "Transparent", - "hiddenTitle": true - } - ], - "security": { - "csp": null - } - }, - "bundle": { - "active": true, - "targets": "all", - "icon": [ - "icons/32x32.png", - "icons/128x128.png", - "icons/128x128@2x.png", - "icons/icon.icns", - "icons/icon.ico" - ] - } -} diff --git a/src/App.tsx b/src/App.tsx deleted file mode 100644 index fa3ec114..00000000 --- a/src/App.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import "./styles/globals.css"; - -import { useEffect } from "react"; - -import { getAllSettings } from "~/api"; -import { Route, Routes } from "react-router-dom"; - -import { Toaster } from "./components/ui/sonner"; -import { useContextMenuEvent } from "./hooks/useContextMenuEvent"; -import useThemeChange from "./hooks/useThemeChange"; -import HomePage from "./pages/HomePage"; -import { useAppContext } from "./store"; - -function App() { - const handleThemeChange = (theme: string) => { - console.log("THEME", theme); - }; - - useThemeChange(handleThemeChange); - useContextMenuEvent(); - - const { setSettings } = useAppContext(); - - useEffect(() => { - localStorage.setItem("vite-ui-theme", "system"); - const loadInitialSettings = async () => { - const allSettings = await getAllSettings(); - setSettings(allSettings.data); - }; - - loadInitialSettings().catch(console.error); - }, []); - - return ( - <> - - {/* }> */} - } /> - {/* } /> */} - {/* } /> */} - {/* */} - - - - ); -} - -export default App; diff --git a/src/api/index.ts b/src/api/index.ts deleted file mode 100644 index 617e6708..00000000 --- a/src/api/index.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { invoke } from "@tauri-apps/api/core"; -import { - type APIResponse, - type CreateNoteRequest, - type CreateTagRequest, - type GetTagRequest, - type ListNotesRequest, - type ListTagsRequest, - type Note, - type Settings, - type Tag, - type TagNoteRequest, - type UpdateNoteRequest, -} from "~/types"; -import { type CreateContextMenuRequest } from "~/types/contextMenuTypes"; - -export const createNote = async (createNoteRequest: CreateNoteRequest) => { - // TODO: error handling - const response: APIResponse = await invoke("create_note", { - createNoteRequest, - }); - return response; -}; - -export const updateNote = async (updateNoteRequest: UpdateNoteRequest) => { - // TODO: error handling - const response: APIResponse = await invoke("update_note", { - updateNoteRequest, - }); - return response; -}; - -export const listNotes = async (listNotesRequest: ListNotesRequest) => { - // TODO: error handling - const response: APIResponse = await invoke("list_notes", { - listNotesRequest, - }); - return response; -}; - -export const listTags = async (listTagsRequest: ListTagsRequest) => { - // TODO: error handling - const response: APIResponse = await invoke("list_tags", { - listTagsRequest, - }); - return response; -}; - -export const getNote = async (noteId: number) => { - // TODO: error handling - const response: APIResponse = await invoke("get_note", { - noteId, - }); - return response; -}; - -export const createTag = async (createTagRequest: CreateTagRequest) => { - // TODO: error handling - const response: APIResponse = await invoke("create_tag", { - createTagRequest, - }); - return response; -}; - -export const deleteTag = async (tagId: number) => { - // TODO: error handling - void await invoke("delete_tag", { - tagId, - }); -}; - -export const getTag = async (getTagRequest: GetTagRequest) => { - const response: APIResponse = await invoke("get_tag", { - getTagRequest, - }); - return response; -}; - -export const tagNote = async (tagNoteRequest: TagNoteRequest) => { - // TODO: error handling - const response: APIResponse = await invoke("tag_note", { - tagNoteRequest, - }); - return response; -}; - -export const createContextMenu = async ( - createContextMenuRequest: CreateContextMenuRequest, -) => { - void (await invoke("create_context_menu", { createContextMenuRequest })); -}; - -export const signEvent = async (event: string) => { - const response = await invoke("sign_event", { event }); - return response; -}; - -export const getAllSettings = async () => { - const response: APIResponse = await invoke("get_all_settings"); - return response; -}; - -export const getSetting = async (key: string) => { - const response: APIResponse = await invoke("get_setting", { key }); - return response; -}; - -export const setSetting = async (key: string, value: string) => { - void (await invoke("set_setting", { key, value })); -}; diff --git a/src/components/context/AllNotes.tsx b/src/components/context/AllNotes.tsx deleted file mode 100644 index 245d0f1e..00000000 --- a/src/components/context/AllNotes.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { useQueryClient } from "@tanstack/react-query"; -import { useAppContext } from "~/store"; -import { NotepadText } from "lucide-react"; - -export default function AllNotes() { - const { filter, activeTag, setFilter, setActiveTag, setCurrentNote, setCurrentTrashedNote } = useAppContext(); - const queryClient = useQueryClient(); - - const handleSetAllNotes = async ( - e: React.MouseEvent, - ) => { - e.preventDefault(); - - if (filter === "trashed" || filter === "archived") { - setCurrentNote(undefined); - } - - setFilter("all"); - setActiveTag(undefined); - setCurrentTrashedNote(undefined); - await queryClient.invalidateQueries({ queryKey: ["notes"] }); - }; - - return ( -

- ); -} diff --git a/src/components/context/Login.tsx b/src/components/context/Login.tsx deleted file mode 100644 index c6a775f2..00000000 --- a/src/components/context/Login.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { GearIcon } from "@radix-ui/react-icons"; -import { useAppContext } from "~/store"; - -export default function Login() { - const { setActivePage, settings } = useAppContext(); - - const handleOpenSettings = () => { - setActivePage("settings"); - }; - - return ( -
-
-
- {settings.npub ? ( -

- {settings.npub.slice(0, 8)}... -

- ) : ( -

- Login -

- )} -

logged in

-
- -
-
- ); -} diff --git a/src/components/context/TagItem.tsx b/src/components/context/TagItem.tsx deleted file mode 100644 index 171bf028..00000000 --- a/src/components/context/TagItem.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import { useQueryClient } from "@tanstack/react-query"; -import { createContextMenu } from "~/api"; -import { useAppContext } from "~/store"; -import { type Tag } from "~/types"; -import { - type CreateContextMenuRequest, - type TagItemContextMenuRequest, -} from "~/types/contextMenuTypes"; - -type Props = { - tag: Tag; -}; - -export default function TagItem({ tag }: Props) { - const { - activeTag, - setFilter, - setActiveTag, - setCurrentTrashedNote, - } = useAppContext(); - - const queryClient = useQueryClient(); - - const handleSetActiveTag = async ( - e: React.MouseEvent, - ) => { - e.preventDefault(); - - setFilter("all"); - setActiveTag(tag); - setCurrentTrashedNote(undefined); - void queryClient.invalidateQueries({ queryKey: ["notes"] }); - }; - - const handleContextMenu = async ( - e: React.MouseEvent, - ) => { - e.preventDefault(); // prevent the default behaviour when right clicked - const id = tag.id; - const menuKind: TagItemContextMenuRequest = { - TagItem: { - id, - }, - }; - const tagItemRequest: CreateContextMenuRequest = { - menuKind, - }; - await createContextMenu(tagItemRequest); - }; - - return ( -
- - {tag.name} - -
- ); -} diff --git a/src/components/context/TrashedNotes.tsx b/src/components/context/TrashedNotes.tsx deleted file mode 100644 index f10345c0..00000000 --- a/src/components/context/TrashedNotes.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { useQueryClient } from "@tanstack/react-query"; -import { useAppContext } from "~/store"; -import { Trash2Icon } from "lucide-react"; - -export default function TrashedNotes() { - const { filter, setFilter, setCurrentNote, setActiveTag } = useAppContext(); - const queryClient = useQueryClient(); - - const handleSetTrashedNotes = async ( - e: React.MouseEvent, - ) => { - e.preventDefault(); - setFilter("trashed"); - setActiveTag(undefined); - setCurrentNote(undefined); - await queryClient.invalidateQueries({ queryKey: ["notes"] }); - }; - - return ( -
- - Trash -
- ); -} diff --git a/src/components/editor/AssociatedTags.tsx b/src/components/editor/AssociatedTags.tsx deleted file mode 100644 index 69e32e62..00000000 --- a/src/components/editor/AssociatedTags.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { Badge } from "../ui/badge"; - -const tags = ["donut", "sprinkle", "icening", "icening", "icening", "icening", "icening"]; - -export default function AssociatedTags() { - return ( -
- {tags.map((tag) => { - return {tag}; - })} -
- ); -} diff --git a/src/components/editor/Editor.tsx b/src/components/editor/Editor.tsx deleted file mode 100644 index e5b5c06d..00000000 --- a/src/components/editor/Editor.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { useQueryClient } from "@tanstack/react-query"; -import { updateNote } from "~/api"; -import { useCM6Editor } from "~/hooks/useCM6Editor"; -import { useAppContext } from "~/store"; -import { type InfiniteQueryData, type Note } from "~/types"; - -export const Editor = () => { - const { currentNote, setCurrentNote, currentTrashedNote } = useAppContext(); - - const queryClient = useQueryClient(); - const data = queryClient.getQueryData([ - "notes", - { search: false }, - ]) as InfiniteQueryData; - - const onChange = (doc: string) => { - if (!currentNote) return; - setCurrentNote({ ...currentNote, content: doc }); - if (!data) return; - if (!data.pages) return; - const notes = data.pages[0].data; - if (!notes) return; - const firstNote = notes[0]; - if (!firstNote) return; - if (firstNote.id === currentNote.id) return; - - void updateNote({ id: currentNote.id, content: doc }); - - void queryClient.invalidateQueries({ - queryKey: [ - "notes", - { - search: false, - }, - ], - }); - }; - - const { editorRef } = useCM6Editor({ - initialDoc: currentNote?.content ?? currentTrashedNote?.content ?? "", - onChange, - }); - - return ( -
- ); -}; - -export default Editor; diff --git a/src/components/editor/EditorControls.tsx b/src/components/editor/EditorControls.tsx deleted file mode 100644 index 3231e61b..00000000 --- a/src/components/editor/EditorControls.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { signEvent } from "~/api"; -import { useAppContext } from "~/store"; -import { SendIcon } from "lucide-react"; -import { getEventHash, Relay, type Event } from "nostr-tools"; - -import { Button } from "../ui/button"; - -export default function EditorControls() { - const { currentNote } = useAppContext(); - async function handleSendNote( - e: React.MouseEvent, - ) { - e.preventDefault(); - - const event: Event = { - id: "", - sig: "", - kind: 1, - tags: [], - content: currentNote?.content ?? "", - pubkey: - "220522c2c32b3bf29006b275e224b285d64bb19f79bda906991bcb3861e18cb4", - created_at: Math.floor(Date.now() / 1000), - }; - - const eventHash = getEventHash(event); - - event.id = eventHash; - - const signedEventStr = (await signEvent(JSON.stringify(event))) as string; - - const relay = await Relay.connect("wss://nos.lol"); - - const signedEvent = JSON.parse(signedEventStr) as Event; - - await relay.publish(signedEvent); - } - - return ( -
- -
- ); -} diff --git a/src/components/editor/EditorWrapper.tsx b/src/components/editor/EditorWrapper.tsx deleted file mode 100644 index 221281f3..00000000 --- a/src/components/editor/EditorWrapper.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { useState } from "react"; - -import { Button } from "~/components/ui/button"; -import { useAppContext } from "~/store"; -import { Eye } from "lucide-react"; - -import Editor from "./Editor"; -import EditorControls from "./EditorControls"; -import Preview from "./Preview"; -import TagInput from "./TagInput"; - -export const EditorWrapper = () => { - const { currentNote, currentTrashedNote } = useAppContext(); - const [showPreview, setShowPreview] = useState(false); - - return ( - <> - {(currentNote ?? currentTrashedNote) && ( -
- {!showPreview && } - {showPreview && } -
- -
-
- - -
-
- )} - - ); -}; - -export default EditorWrapper; diff --git a/src/components/editor/NoteTag.tsx b/src/components/editor/NoteTag.tsx deleted file mode 100644 index 5798e3f1..00000000 --- a/src/components/editor/NoteTag.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { createContextMenu } from "~/api"; -import { useAppContext } from "~/store"; -import { type Tag } from "~/types"; -import { - type CreateContextMenuRequest, - type NoteTagItemContextMenuRequest, -} from "~/types/contextMenuTypes"; - -import { Badge } from "../ui/badge"; - -type Props = { - tag: Tag; -}; - -export default function NoteTag({ tag }: Props) { - const { currentNote } = useAppContext(); - - const handleContextMenu = async ( - e: React.MouseEvent, - ) => { - e.preventDefault(); // prevent the default behaviour when right clicked - const tagId = tag.id; - const noteId = currentNote?.id; - console.log("currentNote", currentNote); - if (noteId) { - const menuKind: NoteTagItemContextMenuRequest = { - NoteTag: { - noteId, - tagId, - }, - }; - const notTagItemRequest: CreateContextMenuRequest = { - menuKind, - }; - await createContextMenu(notTagItemRequest); - } - }; - - return ( -
- - {tag.name} - -
- ); -} diff --git a/src/components/editor/Preview.tsx b/src/components/editor/Preview.tsx deleted file mode 100644 index f837fffa..00000000 --- a/src/components/editor/Preview.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import MarkdownPreview from "@uiw/react-markdown-preview"; -import { useAppContext } from "~/store"; -import rehypeSanitize from "rehype-sanitize"; - -const rehypePlugins = [rehypeSanitize]; - -export const Preview = () => { - const { currentNote, currentTrashedNote } = useAppContext(); - - return ( -
-
- -
-
- ); -}; - -export default Preview; diff --git a/src/components/editor/TagInput.tsx b/src/components/editor/TagInput.tsx deleted file mode 100644 index 4622beb0..00000000 --- a/src/components/editor/TagInput.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import { useState } from "react"; - -import { useQueryClient } from "@tanstack/react-query"; -import { createTag, getTag, tagNote } from "~/api"; -import { Input } from "~/components/ui/input"; -import { useAppContext } from "~/store"; - -import NoteTag from "./NoteTag"; - -export default function TagInput() { - const [tagName, setTagName] = useState(""); - - const { currentNote, setCurrentNote, filter } = useAppContext(); - const queryClient = useQueryClient(); - - const handleTagChange = (e: React.ChangeEvent) => { - const newTagName = e.target.value; - setTagName(newTagName); - }; - - const handleKeyDown = async (e: React.KeyboardEvent) => { - if (e.key === "Enter") { - e.preventDefault(); // Prevents the default action of the Enter key if needed - const noteId = currentNote?.id; - - if (noteId === undefined) return; - - if (currentNote?.tags.some((tag) => tag.name === tagName)) return; - - const getTagResponse = await getTag({ name: tagName }); - const existingTag = getTagResponse.data; - if (getTagResponse.error) { - const createTagResponse = await createTag({ - name: tagName, - color: "", - icon: "", - noteId, - }); - if (createTagResponse.data && currentNote) { - setCurrentNote({ - ...currentNote, - tags: [...currentNote.tags, createTagResponse.data], - }); - } - if (createTagResponse.error) { - return; - } - } - - if (existingTag) { - // if exists, tag note - await tagNote({ noteId, tagId: existingTag.id }); - - if (!currentNote) return; - - if (currentNote?.tags) { - setCurrentNote({ - ...currentNote, - tags: [...currentNote.tags, existingTag], - }); - } else { - setCurrentNote({ ...currentNote, tags: [existingTag] }); - } - } - setTagName(""); - void queryClient.invalidateQueries({ queryKey: ["tags"] }); - } - }; - - return ( -
-
- {currentNote?.tags?.map((tag, tagIndex) => { - return ; - })} - - {filter !== "trashed" && filter !== "archived" && ( - - )} -
-
- ); -} diff --git a/src/components/editor/editor-themes.ts b/src/components/editor/editor-themes.ts deleted file mode 100644 index 28fc304c..00000000 --- a/src/components/editor/editor-themes.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { tags as t } from "@lezer/highlight"; -import { createTheme } from "mirrorshades"; - -const lightTheme = createTheme({ - theme: "light", - settings: { - background: "#ffffff", - foreground: "#000000", - caret: "#5d00ff", - fatCursor: "#5d00ff", - selection: "#036dd626", - selectionMatch: "#036dd626", - lineHighlight: "#8a91991a", - gutterBackground: "#fff", - gutterForeground: "#8a919966", - }, - styles: [ - { tag: t.comment, color: "#787b8099" }, - { tag: t.link, color: "#0080ff" }, - { tag: t.variableName, color: "#0080ff" }, - { tag: [t.string, t.special(t.brace)], color: "#5c6166" }, - { tag: t.number, color: "#5c6166" }, - { tag: t.bool, color: "#5c6166" }, - { tag: t.null, color: "#5c6166" }, - { tag: t.keyword, color: "#5c6166" }, - { tag: t.operator, color: "#5c6166" }, - { tag: t.className, color: "#5c6166" }, - { tag: t.definition(t.typeName), color: "#5c6166" }, - { tag: t.typeName, color: "#5c6166" }, - { tag: t.angleBracket, color: "#5c6166" }, - { tag: t.tagName, color: "#5c6166" }, - { tag: t.attributeName, color: "#5c6166" }, - ], -}); - -const darkTheme = createTheme({ - theme: "dark", - settings: { - background: "#1d1e1f", - backgroundImage: "", - foreground: "#c8c8c8", - caret: "#cccccc", - fatCursor: "#cccccc", - selection: "#036dd6ff", - selectionMatch: "#036dd6ff", - lineHighlight: "#8a9199ff", - gutterBackground: "#1d1e1f", - gutterForeground: "#8a919966", - }, - styles: [ - { tag: t.comment, color: "#787b8099" }, - { tag: t.link, color: "#0080ff" }, - { tag: t.heading, color: "#0080aa" }, - { tag: t.heading, color: "#0080aa" }, - { tag: t.variableName, color: "#0080ff" }, - { tag: [t.string, t.special(t.brace)], color: "#5c6166" }, - { tag: t.number, color: "#5c6166" }, - { tag: t.bool, color: "#5c6166" }, - { tag: t.null, color: "#5c6166" }, - { tag: t.keyword, color: "#5c6166" }, - { tag: t.operator, color: "#5c6166" }, - { tag: t.className, color: "#5c6166" }, - { tag: t.definition(t.typeName), color: "#5c6166" }, - { tag: t.typeName, color: "#5c6166" }, - { tag: t.angleBracket, color: "#5c6166" }, - { tag: t.tagName, color: "#5c6166" }, - { tag: t.attributeName, color: "#5c6166" }, - ], -}); - -export { darkTheme, lightTheme }; diff --git a/src/components/notes/NoteCard.tsx b/src/components/notes/NoteCard.tsx deleted file mode 100644 index 0c3296de..00000000 --- a/src/components/notes/NoteCard.tsx +++ /dev/null @@ -1,143 +0,0 @@ -import { createContextMenu, listTags } from "~/api"; -import { fromNow } from "~/lib/utils"; -import { useAppContext } from "~/store"; -import { type Note } from "~/types"; -import { - type CreateContextMenuRequest, - type NoteItemContextMenuRequest, -} from "~/types/contextMenuTypes"; - -import { Separator } from "../ui/separator"; - -type Props = { - note: Note; -}; - -export default function NoteCard({ note }: Props) { - const { currentNote, setCurrentNote, activePage, setActivePage } = - useAppContext(); - - async function fetchNoteTags() { - const noteId = note.id; - const apiResponse = await listTags({ - noteId, - }); - - if (apiResponse.error) { - throw new Error(apiResponse.error); - } - - return apiResponse.data; - } - - const handleSetActiveNote = async ( - e: React.MouseEvent, - ) => { - e.preventDefault(); - const currentNoteTags = await fetchNoteTags(); - note.tags = currentNoteTags; - setCurrentNote(note); - - if (activePage === "settings") { - setActivePage("editor"); - } - }; - - const handleContextMenu = async ( - e: React.MouseEvent, - ) => { - e.preventDefault(); // prevent the default behaviour when right clicked - const id = note.id; - const menuKind: NoteItemContextMenuRequest = { - NoteItem: { - id, - }, - }; - const noteItemRequest: CreateContextMenuRequest = { - menuKind, - }; - await createContextMenu(noteItemRequest); - }; - - // what can the title be? - - // the first line of the note - - // the first markdown heading - - function isMarkdownHeading(text: string) { - // A regular expression that matches strings that start with one or more '#' characters followed by a space - const headingRegex = /^#+\s.*$/; - - return headingRegex.test(text); - } - - const parseTitle = (content: string) => { - const firstLine = content.split("\n")[0]; - if (firstLine.length === 0) { - const lines = content.split("\n"); - - for (const line of lines) { - if (isMarkdownHeading(line)) { - return { - title: line.replace(/^#+\s/, ""), - lineNumber: lines.indexOf(line), - }; - } - } - } - - let title = firstLine; - - if (isMarkdownHeading(firstLine)) { - title = firstLine.replace(/^#+\s/, ""); - } - - if (title.length > 50) { - title = title.slice(0, 50); - title += "..."; - } - - title = title || "New Note"; - return { title, lineNumber: 0 }; - }; - - // whatever the title is, remove it from the content - - const parseContent = (content: string) => { - const lines = content.split("\n"); - if (lines.length === 1) { - return ""; - } - const contentWithoutTitle = lines.slice(1).join("\n"); - // only show the first 3 lines of the content - return contentWithoutTitle.split("\n").slice(0, 3).join("\n"); - }; - - return ( -
-
-

- {parseTitle(note.content).title} -

- - {parseContent(note.content)} - - - - {note.trashedAt - ? fromNow(note.trashedAt) - : note.modifiedAt && fromNow(note.modifiedAt)} - -
-
- -
-
- ); -} diff --git a/src/components/notes/NoteFeed.tsx b/src/components/notes/NoteFeed.tsx deleted file mode 100644 index 86f7e564..00000000 --- a/src/components/notes/NoteFeed.tsx +++ /dev/null @@ -1,162 +0,0 @@ -import { useEffect, useRef } from "react"; - -import { useInfiniteQuery } from "@tanstack/react-query"; -import { listNotes } from "~/api"; -import { useAppContext } from "~/store"; -import { useInView } from "react-intersection-observer"; - -import NoteCard from "./NoteCard"; - -export default function NoteFeed() { - const { - noteSearch, - setCurrentNote, - currentNote, - noteFeedScrollPosition, - setNoteFeedScrollPosition, - } = useAppContext(); - const scrollRef = useRef(null); - - async function fetchNotes({ pageParam = 1 }) { - const app = useAppContext.getState(); - const filter = app.filter; - const tagId = app.activeTag?.id; - const search = app.noteSearch; - const page = pageParam; - const pageSize = 10; - - const apiResponse = await listNotes({ - filter, - tagId, - search, - page, - pageSize, - }); - - if (apiResponse.error) { - throw new Error(apiResponse.error); - } - - if (tagId && currentNote?.tags) { - const tagIds = currentNote.tags.map((tag) => tag.id); - if (!tagIds.includes(tagId)) { - setCurrentNote(undefined); - } - } - - const notes = apiResponse.data; - - // TODO: return total pages from API - // TODO: return total count from API - // TODO: return next cursor from API - // TODO: return previous cursor from API - - return { - data: notes || [], - nextPage: pageParam + 1, - nextCursor: notes.length === pageSize ? page + 1 : undefined, - prevCursor: page >= 1 ? page - 1 : undefined, - }; - } - - const { - data, - error, - fetchNextPage, - hasNextPage, - isFetchingNextPage, - fetchPreviousPage, - isFetchingPreviousPage, - hasPreviousPage, - // isFetching, - status, - } = useInfiniteQuery({ - queryKey: ["notes", { search: false }], - // queryKey: ["notes"], - queryFn: fetchNotes, - initialPageParam: 0, - refetchOnWindowFocus: false, - maxPages: 5, - getNextPageParam: (lastPage, _pages) => lastPage.nextCursor, - getPreviousPageParam: (firstPage, _pages) => firstPage.prevCursor, - gcTime: noteSearch ? 0 : Infinity, - }); - - const { ref: firstNoteRef } = useInView({ - onChange: (inView) => { - if (inView && !isFetchingPreviousPage && hasPreviousPage) { - void fetchPreviousPage(); - console.log("fetchPreviousPage"); - } - }, - }); - - const { ref: lastNoteRef } = useInView({ - onChange: (inView) => { - if (inView && !isFetchingNextPage && hasNextPage) { - void fetchNextPage(); - console.log("fetchNextPage"); - } - }, - }); - - // useEffect(() => { - // TODO: scroll to particular note - // if (noteSearch === "" && activeNotePositionRef.current) { - // activeNotePositionRef.current?.scrollIntoView(); - // } - // }, [noteSearch]); - - useEffect(() => { - if (noteSearch !== "") return; - if (!noteFeedScrollPosition) return; - if (!scrollRef.current) return; - if (noteFeedScrollPosition <= 0) return; - scrollRef.current.scrollTo(0, noteFeedScrollPosition); - }, [noteSearch]); - - const handleScroll = () => { - if (!scrollRef.current) return; - const position = scrollRef.current.scrollTop; - setNoteFeedScrollPosition(position); - }; - - useEffect(() => { - if (!scrollRef.current) return; - const refCurrent = scrollRef.current; - refCurrent.addEventListener("scroll", handleScroll); - - // Clean up the event listener when the component unmounts - return () => { - refCurrent.removeEventListener("scroll", handleScroll); - }; - }, [noteSearch]); - - if (status === "error") return

Error: {error.message}

; - - return ( -
- {data?.pages.map((group, pageIndex) => ( -
    - {group.data?.map((note, noteIndex) => { - // Determine if the note is the first or the last in the list - const isFirstNote = pageIndex === 0 && noteIndex === 0; - const isLastNote = - pageIndex === data.pages.length - 1 && - noteIndex === group.data.length - 1; - const refProp = isFirstNote - ? firstNoteRef - : isLastNote - ? lastNoteRef - : undefined; - return ( -
  • - -
  • - ); - })} -
- ))} -
- ); -} diff --git a/src/components/notes/NoteFeedHeader.tsx b/src/components/notes/NoteFeedHeader.tsx deleted file mode 100644 index 966f0791..00000000 --- a/src/components/notes/NoteFeedHeader.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import { useQueryClient } from "@tanstack/react-query"; -import { createNote, tagNote } from "~/api"; -import { useGetCachedQueryData } from "~/hooks/useGetCachedQueryData"; -import { useAppContext } from "~/store"; -import { type CreateNoteRequest, type Note } from "~/types"; -import { ArrowDownNarrowWide, PenBoxIcon } from "lucide-react"; - -import { Button } from "../ui/button"; - -export default function NoteFeedHeader() { - const queryClient = useQueryClient(); - - const { filter, activeTag, setCurrentNote } = useAppContext(); - const data = useGetCachedQueryData("notes") as Note[]; - - async function handleNewNote( - e: React.MouseEvent, - ) { - e.preventDefault(); - const createNoteRequest: CreateNoteRequest = { - content: "", - }; - - const response = await createNote(createNoteRequest); - - if (response.error) { - console.error(response.error); - } - - const newNote = response.data; - - if (!newNote) { - console.error("Failed to create note"); - } - - await queryClient.invalidateQueries({ queryKey: ["notes"] }); - - if (activeTag) { - newNote.tags = [activeTag]; - await tagNote({ noteId: newNote.id, tagId: activeTag.id }); - } - - setCurrentNote(newNote); - } - - const getHeaderTitle = () => { - if (activeTag) { - return activeTag.name; - } - - if (filter === "all") { - return "All Notes"; - } - - if (filter === "trashed") { - return "Trash"; - } - }; - - return ( -
-
- -

{getHeaderTitle()}

-
-
- -
-
- ); -} diff --git a/src/components/notes/SearchFeed.tsx b/src/components/notes/SearchFeed.tsx deleted file mode 100644 index b00545e2..00000000 --- a/src/components/notes/SearchFeed.tsx +++ /dev/null @@ -1,127 +0,0 @@ -import { useInfiniteQuery } from "@tanstack/react-query"; -import { listNotes } from "~/api"; -import { useAppContext } from "~/store"; -import { useInView } from "react-intersection-observer"; - -import NoteCard from "./NoteCard"; - -type Props = { - noteSearch: string; -}; - -export default function SearchFeed({ noteSearch }: Props) { - const { setCurrentNote, currentNote } = useAppContext(); - - async function fetchNotes({ pageParam = 1 }) { - const app = useAppContext.getState(); - const filter = app.filter; - const tagId = app.activeTag?.id; - const search = app.noteSearch; - const page = pageParam; - const pageSize = 10; - - const apiResponse = await listNotes({ - filter, - tagId, - search, - page, - pageSize, - }); - - if (apiResponse.error) { - throw new Error(apiResponse.error); - } - - if (tagId && currentNote?.tags) { - const tagIds = currentNote.tags.map((tag) => tag.id); - if (!tagIds.includes(tagId)) { - setCurrentNote(undefined); - } - } - - const notes = apiResponse.data; - - // TODO: return total pages from API - // TODO: return total count from API - // TODO: return next cursor from API - // TODO: return previous cursor from API - - return { - data: notes || [], - nextPage: pageParam + 1, - nextCursor: notes.length === pageSize ? page + 1 : undefined, - prevCursor: page >= 1 ? page - 1 : undefined, - }; - } - - const { - data, - error, - fetchNextPage, - hasNextPage, - isFetchingNextPage, - fetchPreviousPage, - isFetchingPreviousPage, - hasPreviousPage, - // isFetching, - status, - } = useInfiniteQuery({ - queryKey: ["notes", { search: true }], - // queryKey: ["notes"], - queryFn: fetchNotes, - initialPageParam: 0, - refetchOnWindowFocus: false, - maxPages: 5, - getNextPageParam: (lastPage, _pages) => lastPage.nextCursor, - getPreviousPageParam: (firstPage, _pages) => firstPage.prevCursor, - gcTime: noteSearch ? 0 : Infinity, - }); - - const { ref: firstNoteRef } = useInView({ - onChange: (inView) => { - if (inView && !isFetchingPreviousPage && hasPreviousPage) { - void fetchPreviousPage(); - console.log("fetchPreviousPage"); - } - }, - }); - - const { ref: lastNoteRef } = useInView({ - onChange: (inView) => { - if (inView && !isFetchingNextPage && hasNextPage) { - void fetchNextPage(); - console.log("fetchNextPage"); - } - }, - }); - - if (status === "error") return

Error: {error.message}

; - - // TODO: if you select a note in the search feed it should become the active note and automatically be scrolled to after leavin search - - return ( -
- {data?.pages.map((group, pageIndex) => ( -
    - {group.data?.map((note, noteIndex) => { - // Determine if the note is the first or the last in the list - const isFirstNote = pageIndex === 0 && noteIndex === 0; - const isLastNote = - pageIndex === data.pages.length - 1 && - noteIndex === group.data.length - 1; - const refProp = isFirstNote - ? firstNoteRef - : isLastNote - ? lastNoteRef - : undefined; - return ( -
  • - -
  • - ); - })} -
- ))} -
- ); -} diff --git a/src/components/notes/SearchNotes.tsx b/src/components/notes/SearchNotes.tsx deleted file mode 100644 index 72c5c3b8..00000000 --- a/src/components/notes/SearchNotes.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { useQueryClient } from "@tanstack/react-query"; -import { useAppContext } from "~/store"; - -import { Input } from "../ui/input"; - -export default function SearchNotes() { - const { noteSearch, setNoteSearch } = useAppContext(); - const queryClient = useQueryClient(); - - const handleSetSearchNote = async ( - e: React.ChangeEvent, - ) => { - e.preventDefault(); - const searchValue = e.target.value; - setNoteSearch(searchValue); - await queryClient.invalidateQueries({ - queryKey: ["notes", { search: true }], - }); - }; - - return ( -
- -
- ); -} diff --git a/src/components/settings/EditorSettings.tsx b/src/components/settings/EditorSettings.tsx deleted file mode 100644 index 20b9ad2f..00000000 --- a/src/components/settings/EditorSettings.tsx +++ /dev/null @@ -1,514 +0,0 @@ -import { useEffect, useState } from "react"; -import * as React from "react"; - -import { CaretSortIcon } from "@radix-ui/react-icons"; -import { setSetting } from "~/api"; -import { Button } from "~/components/ui/button"; -import { - Card, - CardContent, - CardDescription, - CardHeader, - CardTitle, -} from "~/components/ui/card"; -import { - Command, - CommandEmpty, - CommandGroup, - CommandInput, - CommandItem, - CommandList, -} from "~/components/ui/command"; -import { Input } from "~/components/ui/input"; -import { Label } from "~/components/ui/label"; -import { - Popover, - PopoverContent, - PopoverTrigger, -} from "~/components/ui/popover"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "~/components/ui/select"; -import { Switch } from "~/components/ui/switch"; -import { comboboxPrioritizedFontFamilies } from "~/lib/settings/constants"; -import { - initialUserSelectedFontFamily, - prioritizeUserFontFamilies, -} from "~/lib/settings/utils"; -import { cn } from "~/lib/utils"; -import { useAppContext } from "~/store"; -import { type FontWeight, type UnorderedListBullet } from "~/types/settings"; -import { partialEditorSettingsSchema } from "~/validation/schemas"; -import { Check } from "lucide-react"; - -export default function EditorSettings() { - const { settings, setSettings } = useAppContext(); - - const [loading, setLoading] = useState(false); - const [openFontFamilyCombobox, setOpenFontFamilyCombobox] = useState(false); - - const [editorSettings, setEditorSettings] = useState({ - unorderedListBullet: settings.unordered_list_bullet, - indentUnit: settings.indent_unit, - tabSize: settings.tab_size, - fontSize: settings.font_size, - selectedFontFamily: "", - fontWeight: settings.font_weight, - lineHeight: settings.line_height, - }); - - const [errorMessages, setErrorMessages] = useState({ - indent_unit: "", - tab_size: "", - font_size: "", - line_height: "", - }); - - useEffect(() => { - setEditorSettings({ - ...editorSettings, - selectedFontFamily: initialUserSelectedFontFamily(settings.font_family), - }); - }, []); - - async function updateSetting(key: string, value: string) { - if (key in settings) { - await setSetting(key, value); - setSettings({ ...settings, [key]: value }); - } - } - - async function handleSwitchOnClick( - event: React.MouseEvent, - key: string, - ) { - if (event.target instanceof HTMLButtonElement) { - setLoading(true); - try { - if (event.target.dataset.state === "unchecked") { - await updateSetting(key, "true"); - } else if (event.target.dataset.state === "checked") { - await updateSetting(key, "false"); - } - } catch (error) { - console.error("Editor settings error: ", error); - } finally { - setLoading(false); - } - } - } - - async function handleSelectOnValueChange( - key: string, - value: UnorderedListBullet | FontWeight, - ) { - setLoading(true); - try { - await updateSetting(key, value); - if (value === "-" || value === "*" || value === "+") { - setEditorSettings({ ...editorSettings, unorderedListBullet: value }); - } else if ( - value === "lighter" || - value === "normal" || - value === "bold" || - value === "bolder" - ) { - setEditorSettings({ ...editorSettings, fontWeight: value }); - } - } catch (error) { - console.error("Editor settings error: ", error); - } finally { - setLoading(false); - } - } - - async function handleInputOnBlur(key: string, value: string) { - setLoading(true); - try { - const validationResult = partialEditorSettingsSchema.safeParse({ - [key]: value, - }); - - if (validationResult.success) { - await updateSetting(key, value); - setErrorMessages({ ...errorMessages, [key]: "" }); - } else { - setErrorMessages({ - ...errorMessages, - [key]: validationResult.error.issues[0].message, - }); - } - } catch (error) { - console.error("Editor settings error: ", error); - } finally { - setLoading(false); - } - } - - async function handleComboxOnSelect(key: string, value: string) { - setLoading(true); - try { - await updateSetting(key, prioritizeUserFontFamilies(value)); - setEditorSettings({ - ...editorSettings, - selectedFontFamily: - value === editorSettings.selectedFontFamily ? "" : value, - }); - setOpenFontFamilyCombobox(false); - } catch (error) { - console.error("Editor settings error: ", error); - } finally { - setLoading(false); - } - } - - return ( - - - Editor - Configure your note editor - - -
-
-
- - handleSwitchOnClick(event, "vim")} - className="ml-2 disabled:cursor-pointer disabled:opacity-100" - disabled={loading} - /> -
-

- Whether to enable vim mode in the editor -

-
-
-
- - handleSwitchOnClick(event, "line_numbers")} - className="ml-2 disabled:cursor-pointer disabled:opacity-100" - disabled={loading} - /> -
-

- Whether to show line numbers to the left of the editor -

-
-
-
- - - handleSwitchOnClick(event, "highlight_active_line") - } - className="ml-2 disabled:cursor-pointer disabled:opacity-100" - disabled={loading} - /> -
-

- Whether to highlight the current cursor line -

-
-
-
- - handleSwitchOnClick(event, "line_wrapping")} - className="ml-2 disabled:cursor-pointer disabled:opacity-100" - disabled={loading} - /> -
-

- Whether the editor should scroll or wrap for long lines -

-
-
- - -

- Marker to use for the bullet of unordered list items -

-
-
- -
- - setEditorSettings({ - ...editorSettings, - indentUnit: event.currentTarget.value, - }) - } - onBlur={() => - handleInputOnBlur("indent_unit", editorSettings.indentUnit) - } - /> -
-

- How many spaces a block should be indented -

- {errorMessages.indent_unit !== "" && ( -

- {errorMessages.indent_unit} -

- )} -
-
- -
- - setEditorSettings({ - ...editorSettings, - tabSize: event.currentTarget.value, - }) - } - onBlur={() => - handleInputOnBlur("tab_size", editorSettings.tabSize) - } - /> -
-

- The width of the tab character -

- {errorMessages.tab_size !== "" && ( -

- {errorMessages.tab_size} -

- )} -
-
- -
- - setEditorSettings({ - ...editorSettings, - fontSize: event.currentTarget.value, - }) - } - onBlur={() => - handleInputOnBlur("font_size", editorSettings.fontSize) - } - /> -
-

- Height in pixels of editor text -

- {errorMessages.font_size !== "" && ( -

- {errorMessages.font_size} -

- )} -
-
- -
- - - - - - - - - No font family found - - {comboboxPrioritizedFontFamilies.map((fontFamily) => ( - - handleComboxOnSelect("font_family", currentValue) - } - > - - {fontFamily.label} - - ))} - - - - - -
-

- The name of the font family used for editor text -

-
-
- - -

- The weight of the font used for editor text -

-
-
- -
- - setEditorSettings({ - ...editorSettings, - lineHeight: event.currentTarget.value, - }) - } - onBlur={() => - handleInputOnBlur("line_height", editorSettings.lineHeight) - } - /> -
-

- Height of editor lines, as a multiplier of font size -

- {errorMessages.line_height !== "" && ( -

- {errorMessages.line_height} -

- )} -
-
-
-
- ); -} diff --git a/src/components/settings/GeneralSettings.tsx b/src/components/settings/GeneralSettings.tsx deleted file mode 100644 index 1c84ac1d..00000000 --- a/src/components/settings/GeneralSettings.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { zodResolver } from "@hookform/resolvers/zod"; -import { Button } from "~/components/ui/button"; -import { - Card, - CardContent, - CardDescription, - CardHeader, - CardTitle, -} from "~/components/ui/card"; -import { - Form, - FormControl, - FormDescription, - FormField, - FormItem, - FormLabel, - FormMessage, -} from "~/components/ui/form"; -import { Input } from "~/components/ui/input"; -import { useForm } from "react-hook-form"; -import { z } from "zod"; - -const FormSchema = z.object({ - fontSize: z.number(), -}); - -export default function GeneralSettings() { - const form = useForm>({ - resolver: zodResolver(FormSchema), - defaultValues: { - fontSize: 14, - }, - }); - - function onSubmit(data: z.infer) { - console.log(data); - } - - return ( - - - General - Configure your general settings - - -
- - ( - - Font Size - - - - - Font size of the application - - - - )} - /> - - - -
-
- ); -} diff --git a/src/components/settings/ProfileSettings.tsx b/src/components/settings/ProfileSettings.tsx deleted file mode 100644 index 82fc6194..00000000 --- a/src/components/settings/ProfileSettings.tsx +++ /dev/null @@ -1,106 +0,0 @@ -import { useEffect, useState } from "react"; - -import { zodResolver } from "@hookform/resolvers/zod"; -import { setSetting } from "~/api"; -import { Button } from "~/components/ui/button"; -import { - Card, - CardContent, - CardDescription, - CardHeader, - CardTitle, -} from "~/components/ui/card"; -import { - Form, - FormControl, - FormDescription, - FormField, - FormItem, - FormLabel, - FormMessage, -} from "~/components/ui/form"; -import { Input } from "~/components/ui/input"; -import { useAppContext } from "~/store"; -import { getPublicKey, nip19 } from "nostr-tools"; -import { useForm } from "react-hook-form"; -import { z } from "zod"; - -const isValidNsec = (nsec: string) => { - try { - return nip19.decode(nsec).type === "nsec"; - } catch (e) { - return false; - } -}; - -const formSchema = z.object({ - nsec: z.string().refine(isValidNsec, { - message: "Invalid nsec.", - }), -}); - -export default function ProfileSettings() { - const [loading, setLoading] = useState(false); - - const { settings, setSettings } = useAppContext(); - - const form = useForm>({ - resolver: zodResolver(formSchema), - defaultValues: { - nsec: settings.nsec || "", // Set the default value from settings - }, - }); - - // If settings.nsec is not available at the initial render, update the form state once settings are fetched - useEffect(() => { - if (settings.nsec) { - form.reset({ nsec: settings.nsec }); - } - }, [settings.nsec, form]); - - async function onSubmit(data: z.infer) { - setLoading(true); - const privateKey = nip19.decode(data.nsec).data as Uint8Array; - const publicKey = getPublicKey(privateKey); - const npub = nip19.npubEncode(publicKey); - const { nsec } = data; - await setSetting("nsec", nsec); - await setSetting("npub", npub); - setSettings({ ...settings, nsec: nsec, npub: npub }); - setLoading(false); - } - - return ( - - - Profile - - Enter your profile Details - - - -
- - ( - - Secret Key - - - - Your secret key, keep this safe! - - - )} - /> - - - -
-
- ); -} diff --git a/src/components/settings/RelaySettings.tsx b/src/components/settings/RelaySettings.tsx deleted file mode 100644 index dfd5e5da..00000000 --- a/src/components/settings/RelaySettings.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { zodResolver } from "@hookform/resolvers/zod"; -import { Button } from "~/components/ui/button"; -import { - Form, - FormControl, - FormField, - FormItem, - FormMessage, -} from "~/components/ui/form"; -import { Input } from "~/components/ui/input"; -import { useFieldArray, useForm } from "react-hook-form"; -import { z } from "zod"; - -import { - Card, - CardContent, - CardDescription, - CardHeader, - CardTitle, -} from "../ui/card"; - -const profileFormSchema = z.object({ - urls: z - .array( - z.object({ - value: z.string().url({ message: "Please enter a valid URL." }), - }), - ) - .optional(), -}); - -type ProfileFormValues = z.infer; - -// This can come from your database or API. -const defaultValues: Partial = { - urls: [ - { value: "wss://relay.damus.io" }, - { value: "wss://nos.lol" }, - ], -}; - -export default function RelaySettings() { - const form = useForm({ - resolver: zodResolver(profileFormSchema), - defaultValues, - mode: "onChange", - }); - - const { fields, append } = useFieldArray({ - name: "urls", - control: form.control, - }); - - function onSubmit(data: ProfileFormValues) { - console.log(data); - } - - return ( - - - Relays - Configure your relays - - -
- -
- {fields.map((field, index) => ( - ( - - - - - - - )} - /> - ))} - -
- -
- -
-
- ); -} diff --git a/src/components/settings/ThemeSettings.tsx b/src/components/settings/ThemeSettings.tsx deleted file mode 100644 index 6b956f40..00000000 --- a/src/components/settings/ThemeSettings.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import { zodResolver } from "@hookform/resolvers/zod"; -import { Button } from "~/components/ui/button"; -import { - Card, - CardContent, - CardDescription, - CardHeader, - CardTitle, -} from "~/components/ui/card"; -import { - Form, - FormControl, - FormDescription, - FormField, - FormItem, - FormLabel, - FormMessage, -} from "~/components/ui/form"; -import { Input } from "~/components/ui/input"; -import { useForm } from "react-hook-form"; -import { z } from "zod"; - -const FormSchema = z.object({ - uiTheme: z.string(), -}); - -export default function ThemeSettings() { - const form = useForm>({ - resolver: zodResolver(FormSchema), - defaultValues: { - uiTheme: "Default", - }, - }); - - function onSubmit(data: z.infer) { - console.log(data); - } - - return ( - - - Theme - Configure your theme - - -
- - ( - - UI Theme - - - - - This styles the buttons, side bar, note list, and other - common components - - - - )} - /> - - - -
-
- ); -} diff --git a/src/components/tags/DeleteTagDialog.tsx b/src/components/tags/DeleteTagDialog.tsx deleted file mode 100644 index 07c55424..00000000 --- a/src/components/tags/DeleteTagDialog.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import { useQueryClient } from "@tanstack/react-query"; -import { deleteTag } from "~/api"; -import { useAppContext } from "~/store"; - -import { Button } from "../ui/button"; -import { - Dialog, - DialogContent, - DialogDescription, - DialogFooter, - DialogHeader, - DialogTitle, -} from "../ui/dialog"; - -export default function DeleteTagDialog() { - const { - activeTag, - setActiveTag, - deleteTagDialog, - setDeleteTagDialog, - deleteTagDialogId, - setDeleteTagDialogId, - currentNote, - setCurrentNote, - } = useAppContext(); - - const queryClient = useQueryClient(); - - const deleteTagConfirm = async (id: number) => { - await deleteTag(id); - if (id === activeTag?.id) { - setActiveTag(undefined); - } - const filteredTags = currentNote?.tags.filter((tag) => tag.id !== id); - - if (currentNote?.tags && filteredTags) { - setCurrentNote({ - ...currentNote, - tags: filteredTags, - }); - } - void queryClient.invalidateQueries({ queryKey: ["tags"] }); - void queryClient.invalidateQueries({ queryKey: ["notes"] }); - setDeleteTagDialogId(undefined); - setDeleteTagDialog(false); - }; - - return ( - - - - Are you sure? - - This action cannot be undone. Are you sure you want to delete this - tag? - - - -
{ - event.preventDefault(); - if (deleteTagDialogId) { - await deleteTagConfirm(deleteTagDialogId); - } - }} - > - -
-
-
-
- ); -} diff --git a/src/components/theme/ModeToggle.tsx b/src/components/theme/ModeToggle.tsx deleted file mode 100644 index e042ae04..00000000 --- a/src/components/theme/ModeToggle.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { Moon, Sun } from "lucide-react" - -import { Button } from "~/components/ui/button" -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuTrigger, -} from "~/components/ui/dropdown-menu" -import { useTheme } from "~/components/theme/ThemeProvider" - -export function ModeToggle() { - const { setTheme } = useTheme() - - return ( - - - - - - setTheme("light")}> - Light - - setTheme("dark")}> - Dark - - setTheme("system")}> - System - - - - ) -} diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx deleted file mode 100644 index 706f1778..00000000 --- a/src/components/ui/avatar.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import * as React from "react" -import * as AvatarPrimitive from "@radix-ui/react-avatar" - -import { cn } from "~/lib/utils" - -const Avatar = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -Avatar.displayName = AvatarPrimitive.Root.displayName - -const AvatarImage = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -AvatarImage.displayName = AvatarPrimitive.Image.displayName - -const AvatarFallback = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName - -export { Avatar, AvatarImage, AvatarFallback } diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx deleted file mode 100644 index 5e2b7aca..00000000 --- a/src/components/ui/badge.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import * as React from "react" -import { cva, type VariantProps } from "class-variance-authority" - -import { cn } from "~/lib/utils" - -const badgeVariants = cva( - "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", - { - variants: { - variant: { - default: - "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80", - secondary: - "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", - destructive: - "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80", - outline: "text-foreground", - }, - }, - defaultVariants: { - variant: "default", - }, - } -) - -export interface BadgeProps - extends React.HTMLAttributes, - VariantProps {} - -function Badge({ className, variant, ...props }: BadgeProps) { - return ( -
- ) -} - -export { Badge, badgeVariants } diff --git a/src/components/ui/card.tsx b/src/components/ui/card.tsx deleted file mode 100644 index e3ef5403..00000000 --- a/src/components/ui/card.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import * as React from "react" - -import { cn } from "~/lib/utils" - -const Card = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -
-)) -Card.displayName = "Card" - -const CardHeader = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -
-)) -CardHeader.displayName = "CardHeader" - -const CardTitle = React.forwardRef< - HTMLParagraphElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -

-)) -CardTitle.displayName = "CardTitle" - -const CardDescription = React.forwardRef< - HTMLParagraphElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -

-)) -CardDescription.displayName = "CardDescription" - -const CardContent = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -

-)) -CardContent.displayName = "CardContent" - -const CardFooter = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -
-)) -CardFooter.displayName = "CardFooter" - -export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } diff --git a/src/components/ui/command.tsx b/src/components/ui/command.tsx deleted file mode 100644 index 75864eae..00000000 --- a/src/components/ui/command.tsx +++ /dev/null @@ -1,153 +0,0 @@ -import * as React from "react" -import { type DialogProps } from "@radix-ui/react-dialog" -import { MagnifyingGlassIcon } from "@radix-ui/react-icons" -import { Command as CommandPrimitive } from "cmdk" - -import { cn } from "~/lib/utils" -import { Dialog, DialogContent } from "~/components/ui/dialog" - -const Command = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -Command.displayName = CommandPrimitive.displayName - -interface CommandDialogProps extends DialogProps {} - -const CommandDialog = ({ children, ...props }: CommandDialogProps) => { - return ( - - - - {children} - - - - ) -} - -const CommandInput = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( -
- - -
-)) - -CommandInput.displayName = CommandPrimitive.Input.displayName - -const CommandList = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) - -CommandList.displayName = CommandPrimitive.List.displayName - -const CommandEmpty = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->((props, ref) => ( - -)) - -CommandEmpty.displayName = CommandPrimitive.Empty.displayName - -const CommandGroup = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) - -CommandGroup.displayName = CommandPrimitive.Group.displayName - -const CommandSeparator = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -CommandSeparator.displayName = CommandPrimitive.Separator.displayName - -const CommandItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) - -CommandItem.displayName = CommandPrimitive.Item.displayName - -const CommandShortcut = ({ - className, - ...props -}: React.HTMLAttributes) => { - return ( - - ) -} -CommandShortcut.displayName = "CommandShortcut" - -export { - Command, - CommandDialog, - CommandInput, - CommandList, - CommandEmpty, - CommandGroup, - CommandItem, - CommandShortcut, - CommandSeparator, -} diff --git a/src/components/ui/context-menu.tsx b/src/components/ui/context-menu.tsx deleted file mode 100644 index f25f2f06..00000000 --- a/src/components/ui/context-menu.tsx +++ /dev/null @@ -1,202 +0,0 @@ -import * as React from "react" -import * as ContextMenuPrimitive from "@radix-ui/react-context-menu" -import { - CheckIcon, - ChevronRightIcon, - DotFilledIcon, -} from "@radix-ui/react-icons" - -import { cn } from "~/lib/utils" - -const ContextMenu = ContextMenuPrimitive.Root - -const ContextMenuTrigger = ContextMenuPrimitive.Trigger - -const ContextMenuGroup = ContextMenuPrimitive.Group - -const ContextMenuPortal = ContextMenuPrimitive.Portal - -const ContextMenuSub = ContextMenuPrimitive.Sub - -const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup - -const ContextMenuSubTrigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - inset?: boolean - } ->(({ className, inset, children, ...props }, ref) => ( - - {children} - - -)) -ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName - -const ContextMenuSubContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName - -const ContextMenuContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - - - -)) -ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName - -const ContextMenuItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - inset?: boolean - } ->(({ className, inset, ...props }, ref) => ( - -)) -ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName - -const ContextMenuCheckboxItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, checked, ...props }, ref) => ( - - - - - - - {children} - -)) -ContextMenuCheckboxItem.displayName = - ContextMenuPrimitive.CheckboxItem.displayName - -const ContextMenuRadioItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - - - - - - - {children} - -)) -ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName - -const ContextMenuLabel = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - inset?: boolean - } ->(({ className, inset, ...props }, ref) => ( - -)) -ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName - -const ContextMenuSeparator = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName - -const ContextMenuShortcut = ({ - className, - ...props -}: React.HTMLAttributes) => { - return ( - - ) -} -ContextMenuShortcut.displayName = "ContextMenuShortcut" - -export { - ContextMenu, - ContextMenuTrigger, - ContextMenuContent, - ContextMenuItem, - ContextMenuCheckboxItem, - ContextMenuRadioItem, - ContextMenuLabel, - ContextMenuSeparator, - ContextMenuShortcut, - ContextMenuGroup, - ContextMenuPortal, - ContextMenuSub, - ContextMenuSubContent, - ContextMenuSubTrigger, - ContextMenuRadioGroup, -} diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx deleted file mode 100644 index 5f064f13..00000000 --- a/src/components/ui/dialog.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import * as React from "react" -import * as DialogPrimitive from "@radix-ui/react-dialog" -import { Cross2Icon } from "@radix-ui/react-icons" - -import { cn } from "~/lib/utils" - -const Dialog = DialogPrimitive.Root - -const DialogTrigger = DialogPrimitive.Trigger - -const DialogPortal = DialogPrimitive.Portal - -const DialogClose = DialogPrimitive.Close - -const DialogOverlay = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -DialogOverlay.displayName = DialogPrimitive.Overlay.displayName - -const DialogContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - - - - {children} - - - Close - - - -)) -DialogContent.displayName = DialogPrimitive.Content.displayName - -const DialogHeader = ({ - className, - ...props -}: React.HTMLAttributes) => ( -
-) -DialogHeader.displayName = "DialogHeader" - -const DialogFooter = ({ - className, - ...props -}: React.HTMLAttributes) => ( -
-) -DialogFooter.displayName = "DialogFooter" - -const DialogTitle = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -DialogTitle.displayName = DialogPrimitive.Title.displayName - -const DialogDescription = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -DialogDescription.displayName = DialogPrimitive.Description.displayName - -export { - Dialog, - DialogPortal, - DialogOverlay, - DialogTrigger, - DialogClose, - DialogContent, - DialogHeader, - DialogFooter, - DialogTitle, - DialogDescription, -} diff --git a/src/components/ui/dropdown-menu.tsx b/src/components/ui/dropdown-menu.tsx deleted file mode 100644 index 4c9ce104..00000000 --- a/src/components/ui/dropdown-menu.tsx +++ /dev/null @@ -1,203 +0,0 @@ -import * as React from "react" -import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu" -import { - CheckIcon, - ChevronRightIcon, - DotFilledIcon, -} from "@radix-ui/react-icons" - -import { cn } from "~/lib/utils" - -const DropdownMenu = DropdownMenuPrimitive.Root - -const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger - -const DropdownMenuGroup = DropdownMenuPrimitive.Group - -const DropdownMenuPortal = DropdownMenuPrimitive.Portal - -const DropdownMenuSub = DropdownMenuPrimitive.Sub - -const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup - -const DropdownMenuSubTrigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - inset?: boolean - } ->(({ className, inset, children, ...props }, ref) => ( - - {children} - - -)) -DropdownMenuSubTrigger.displayName = - DropdownMenuPrimitive.SubTrigger.displayName - -const DropdownMenuSubContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -DropdownMenuSubContent.displayName = - DropdownMenuPrimitive.SubContent.displayName - -const DropdownMenuContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, sideOffset = 4, ...props }, ref) => ( - - - -)) -DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName - -const DropdownMenuItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - inset?: boolean - } ->(({ className, inset, ...props }, ref) => ( - -)) -DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName - -const DropdownMenuCheckboxItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, checked, ...props }, ref) => ( - - - - - - - {children} - -)) -DropdownMenuCheckboxItem.displayName = - DropdownMenuPrimitive.CheckboxItem.displayName - -const DropdownMenuRadioItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - - - - - - - {children} - -)) -DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName - -const DropdownMenuLabel = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - inset?: boolean - } ->(({ className, inset, ...props }, ref) => ( - -)) -DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName - -const DropdownMenuSeparator = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName - -const DropdownMenuShortcut = ({ - className, - ...props -}: React.HTMLAttributes) => { - return ( - - ) -} -DropdownMenuShortcut.displayName = "DropdownMenuShortcut" - -export { - DropdownMenu, - DropdownMenuTrigger, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuCheckboxItem, - DropdownMenuRadioItem, - DropdownMenuLabel, - DropdownMenuSeparator, - DropdownMenuShortcut, - DropdownMenuGroup, - DropdownMenuPortal, - DropdownMenuSub, - DropdownMenuSubContent, - DropdownMenuSubTrigger, - DropdownMenuRadioGroup, -} diff --git a/src/components/ui/form.tsx b/src/components/ui/form.tsx deleted file mode 100644 index 69f6b15f..00000000 --- a/src/components/ui/form.tsx +++ /dev/null @@ -1,176 +0,0 @@ -import * as React from "react" -import * as LabelPrimitive from "@radix-ui/react-label" -import { Slot } from "@radix-ui/react-slot" -import { - Controller, - ControllerProps, - FieldPath, - FieldValues, - FormProvider, - useFormContext, -} from "react-hook-form" - -import { cn } from "~/lib/utils" -import { Label } from "~/components/ui/label" - -const Form = FormProvider - -type FormFieldContextValue< - TFieldValues extends FieldValues = FieldValues, - TName extends FieldPath = FieldPath -> = { - name: TName -} - -const FormFieldContext = React.createContext( - {} as FormFieldContextValue -) - -const FormField = < - TFieldValues extends FieldValues = FieldValues, - TName extends FieldPath = FieldPath ->({ - ...props -}: ControllerProps) => { - return ( - - - - ) -} - -const useFormField = () => { - const fieldContext = React.useContext(FormFieldContext) - const itemContext = React.useContext(FormItemContext) - const { getFieldState, formState } = useFormContext() - - const fieldState = getFieldState(fieldContext.name, formState) - - if (!fieldContext) { - throw new Error("useFormField should be used within ") - } - - const { id } = itemContext - - return { - id, - name: fieldContext.name, - formItemId: `${id}-form-item`, - formDescriptionId: `${id}-form-item-description`, - formMessageId: `${id}-form-item-message`, - ...fieldState, - } -} - -type FormItemContextValue = { - id: string -} - -const FormItemContext = React.createContext( - {} as FormItemContextValue -) - -const FormItem = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => { - const id = React.useId() - - return ( - -
- - ) -}) -FormItem.displayName = "FormItem" - -const FormLabel = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => { - const { error, formItemId } = useFormField() - - return ( -

jU?lMi@tgxr7CqX_r3uw^y4tVU3Pm0sw;|1WSUO%?=bG`*Kmz6u4{#ti;T7AWIBAEh!(Y zz>O01&#X?Ds@L)Sb{CkG#Yz4$3o d@96)?#cz^xWoA}>B$xmI002ovPDHLkV1l3&k#zt7 diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png deleted file mode 100644 index f9bc04839491e66c07b16ab03743c0c53b4109cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8591 zcmbtahc}$h_twIy(GxYgAVgi!!xDs*)f2s!wX2s9Bo-?nB+*%-1*_LxM2i}|mu0o+ zU80NN=kxs+esj*8_ssL&Gk4CMdGGr?_s$21o+dQ~D+K`o0kyW4x&Z+JA@IKrAiYI) znp%o(ALO1|uY3pyC>j3igaqjs_isT$9|KJ_g7P8ut=j>Kvnp7XfS~FVJ7pZI}8ladf{o!;c zm1(K;-KkdRXO-n=L1P0pQv0P`U(b2~9nEJ=@_rst-RE_UCEIhCS6ZC{wgP%L=ch&T zC*gow@BgnRJVg7H?|jR*KU64`|5#Jg~WpHZ+L{j}|Li4|snUleLlZI)ZeC zOI^*wECuanft|Cy7L!avUqb|s`zkL-uUniu+&?`PC1In=Ea{>DZXXUSFYUIYtR83C zra$`5(dV9>JAOL}$hJclnH&JSKk%j1Hve%5+nA;Kpc0mQn*Ti~f?BK;JrIBAa$eE+ z@j#pupdkvqx*TZ}?&Ia-L_V0(F#w!2UsUGF^sb*3d{2s?9{L8Tb?6NZ_#{1)7Mm{N zhK+vn?p+Kqf?CgLD02|sP;&<{&SF;h@qwL~*dr1)_9B3E&BtHsceG7qR>%PL;B> zB_F)S$_$6{RbkQlTRg>ezn)f360DC+Y})U`pU@+ouf%$!z|czk5$U9&=5D1k8>Jvm zAv8|7*o77+9P1kQH1BKXo5q-&tu8K{F#3rez}W20aldEBAFYju9G9-dBUkeXND0x! zyV>gDE&8^GTdUO{!K}&NM%s2J;s^f9_oGeJ|Fmy7BDN)+Cjb5J4?!4mbx|T{?NjrxhJ61zx;_vPzEwo7$v&}AL|(FD9o-n zI99cr^aZ_<$bIbA$(l#CNSf84z*f@X7@<^}6y_GHC z9`IfYQ0F(;5Tl!7`I`mtDcjDlKrNQ2=tt20CZ~N+;vby{Nn|&UPE*%!3g<^Rx@(Il zm^fJ}vYu87Q3Lrh?tJXkI8z&Xqy;_Tm@FgYgS};gCyNHdZ%!PIoQNyiP^02Z=J_HZi(^*)}oDJjS!}u4hms?hy7s-Cg?{7h*k= zn=>J?uK9a1;W;kqefG`vB~#EvTZOx(984*jwL$_7jb1Il6iHqj58c{WT<%KXgF?-W z2OhfkK-uw}*Sig_5$VBCZ6C76@O`0FFk_^~b5(YTM9g;K0(-~|`1KW`GJG0c%wav> zv%7*>v1?Qs4IKOAU57cw78`YXOi|IIq<;oVnDAb-P|yk%s68#6T!5H+%|Fh`6lFs> zP!=A>vl8)VAck!0mHn_9wzT5TT8^^#@UBn;X42=E~h@Jd7nVf^qZr65Sp_-rT;j z|Bb`c$Hafo$r7p?HW?gShdf2TYRk4(H8;P-jt1r1-8O(dV#`Nf@Sp7Ts+P0 z1=YjoOaZ2{Sx8kRZIfBY7Q2LJ7<~|(heip|2=-M2Qg$-1%elQ!+RqJ$kNp{xj#iQ!xdt&U}`4h~bXnikM-7RQ+db4QFj$M*0Q( z=6?L;m)xt5u5Yi%bC@ft4gbDV)83>p1_%Q`y|#Z=jA5pJL1%|tHJzpr3i|KkAc6j| zcKS*x-w&RW)-zg@P7w&Z=Z}{7i0?X^`!h#xCkMBoHoN24bl*iw-fEwl+Ej*y4l$U5 zOsmW4+>ixG+JEoiicM8u z{p*QtFrRQulAI=Z>PM>Ce;!sgJG+`9ExIa$=kKD06*FQ&$ehjhGqz~>{E^Lm=?j7l+D#JLlMa0&Se}V*n)qA0`sy&k1DlFLiKVB)AbADG0~~puma1DHs7_NN}_R>+cpikj+ZS+X+C)7 zVxY6LU{AuPUebgMh-2;b!|S^nN*wsabFz%{4w1cay)>fRuhJUuSWQ}3S)qf`a!ixM zQs1maTy)8X_jBSuJ}_CU7dW8wPn*_ltka^fjVn_#GjCim9Jb0dnN-&y8f*@93?xn% z_+znuyU?&s#V?r;{2$7`n05S@8Y~&KF$1X*nwp)1$Bth5yT{K&90C(uCH~Crpr(yN z`o7zm@V=^IYA1?~-|ZSaZ<*qT%CRTy1zyKV8^{kMZ48~feHul}UUw)8s-E^f&_XvK z%_pX3Qm+viH6%4@gzhH!Xoi+#asO$3n|M!J+2mz*$q%l9hq9CouPuiBR(O>YV3?`5 zSMxGTIoLmY@mD((7mg(yHBLA43{IyhG_Jh(!=9aM{j}Mqm2IBvOirget~WJeLbl=g z_BX7*{rRl0D#S&Ubs3?)WDn2nKK99(lbEYJ9KMCAWI6Xaj$uQ(#T9;_H?Je_VhBTi znPgNdj0;+W0tAxUkmW8Ud?T>PDc6=ke>l3g&Z?ig9#kGii0|AEAhZ}A&M zhJ?P0J*r82tj%HsBkc7Yzb`d>xuquI=>J8BjBt!7P^e;{3rBiW=gNhzrc}Imcq%3| zG@>#^nIN`7o(VquCx0}AMwK_+R3UCF5w*J_nBs7Wh^D4N{d0Yzoldki;v=1UiuJgf zS){!BhxB??`yf_bl^}uLW>(Ppqw5z*0G2K-2&tkp!G_4sH?$yb?~$Q$H2msdd`6w4&pX{8p*8W z7M-lhF{$Du3+Ylvyy0b=gdG4Y6%XmxJ!J$X`ixw?+=2zY3%5}qp3$&Dk-Wfwvxz2{ z(#Zx;Q?6#YKNub=gxIedHW7&Jkyvi#h z=Bo>uB!l>JcKaG25qp-Ri(>m-*iTPlCO}9bnD2K9sOx-rc zbIZQ=2)07go5G&MU-Pm1(rEJDbv!^FOU3!%7bIw5{I3cNFqbo0HOv}4@QEq8Z#(!b zrPHiN4P{G-DtEjBJtCIoQOhJVRF|GT({~r#Gyq^;=JLgH_0v$N z%U7R$Cd6{wRO00o7Qq^CRjWD1l#;WOq{~)^x46584tj;Q3mBl*RWheFamkPxl?^ky z!>vq|VV!XVEA%Fp>)IkDA@z=E$Dou@G4@V$z@D+S4#vc4d$;EAUVr8{hNw$iVVXvVC%+nWM zKVP_sgP``51Vri6`Lhy5hnO%FKo-O^xeBM(GR=pVdwb^7!mTQ!NPIB~c^4vZ9+@78 zY$LNeP?|Tae0jluNw@cj@wDfmgt1B29nE8&Q!BjSRc&Xh=I?o=|5E9aU0qS}+DNW- z-Q!_j>0t*J$b_O&%}Y0}0SzaP^$q4{CQ;X2s*1?s2{9eZ_=SUwrY7LUx8uYFGZJ$c z2m)#n0KFL0d4g=CCJY~Fn32Qyd+6Ju>160zkKE+-LzgbV!R#n@@k3 z5`OG@emYkvyTNkQkvyBznrWQ?Icf+6JFYx6lE*oOE2QzoaX(bsGdcy=o^mfCrCgN& zwd6%(Ml?!yp?m>7g88w;`dj5LNAT~R0*Iu20LJIbyBg~$Sfu3M6ij09i`)u5*?KwZ zH_*w_$Im}i;bnYaSg_=`-#tZ$oM`VlEb5jifY8*jl;4pTc_HC-%74kcd4oERH#u$$ zLyY~YE*D##e)ywc`Un(|4;t+w#ZMe@%us%R%FR7tqjgJVl)ss;zK}R5GUDIB%}Fe_ zfnrVRpyE_mGq;3;4q^wbikJN1qEfGL$gp1vL$Pjj`yWV>SbG&Ok~cH08ImZmBa`Xu za*69RmPGf7>LR0wo4!gJ%)c(OsEjP1k{p7z<`E##bT$p~97w1~yOA(X&D0I~nmmWJ zgTB;Es`go*@hxQH=KZ+sbkOb3qB}{DG?A#-@Rp`QITSPsyu)<_^`4<1q|&a0merrB zUYY&q+g1Fml+zZ+FR5Ml_Q))Y0Ld?5J49o&K+S>H?dtwO?j8G;O4WKXb;74qT77s= z65z81Ui>#=s6xe*1i%($1r#=0X##)LMsYu+N?=0>2n@`nA8Is^8Ryyc*NCTZ3f4x8 zJ)|-o6?f4Gn2E(GhZj?6;8)Y6sVW^QkiFEZawFdS;1rFlu)j8qf9;&bw8nn`sQ@-w z2pUxlyD7BV1etmJ>e+84;bIwSDjPKGzE&=Cv*jGtOaWfi;HCR?%0eV&DLti6gT zo{_4;pbM@135?7^UXTZ_7GqG;6JHJQczK=O=j+~aJExu8DCf}h>teRM9}T5O=4Y5v z28WydXtdPSx`fn%Ic?oRy#%9^Ii<$+XbFfi<`P^dB0- zDYRg8Z<^a4)Wl5<2JPS6(lpXGQq#z9x=QsbD?y zxoOtH@m`%JzBaJw=*lQ%X@Djo{buiNl!T~3j) zGUGh;(=u1Qq`Q8L*EML+rvv-kqNa~7;)YG&H=2FPu#j`U!OqFm(z`Gx{%M+}3(n0XU!oB>& z>N0%})PC_3P(K!dPil}y-0j=nVD6%W^2KR(ZkfeD?nkFi^<)~A+ zUqt%8f81vhi}7!b*xY?uM%ii2(W`$?lLID}&x7*&mHvqx^&FmUpN{s9_`p^@a=%|cF#|YANVICIMT%?io8XlzMB7u zOlLz(ZSOwyYg=#j%7%rCg2x0UB4!D75>&3>AB4sFa-3}|^gttoer??X9$z%KaHy1T z5vbaYm)||e_+pvr)C&>cp0BhH;GWtS>4Nqz6_Ff>scg!i)Ry(IX<4ze+DAv9xzW0_ zhTmY$7y52)BJHx*T|E}*Wn(7uBT}2Mpn{(x>t(hOoCS|@ABSIPj0^HRSjFprp4Wsx_qMo>R$QHPmoCMe&Jc&=Wcuceio+`ZQL=SiCr&b9pj7&fx+qO-6Ts331~VhMamuyQ@#6snW-yuSjRv&q05A;Mb_z&|xk6l5 z{o~`0sSLUz7VK(!i~t~@-No$9y%bKhJ>MXYqT&V*;LYq|9T_ptXvw8XQO&I`bKw&7 zt9^r!k3E+ZXEfgSVEW#~qSwI@F?+##vHd1uRg)UN&OGDBPc{VuocbE0-_n#stZo<0fFgZYb6bUqI zab!gC2{LXCKo6VM%YNvP(H)eczGSn)uaITZztR+?Jv|hj(OgC`?b-b*d{HCtczCOR z`V;2DRyU@7vr)LLAb^pIZ5~WRDHYv7+m7ye7ExdY@R!IE{K3EwM(O=`5cKuQWNd}KWuu8W z=!%PNAP;PF_U`RAVsK}l7|)V=f zF(-ewaf3|VGC9lCY9AlyWJ{YoBl)GOufnV)DH*@-7n<|0<`xPr6t{wl^>!)X#LL}} z-m44?nz&nH$o0B@=6P)FD_n~o_$M^Te&||J$Ipq4XwCCTnMhO_$(SBo)x73sm$l_D zH(=PMtk-|)eDK*>vM|}f*Hj1H5ZUnIVsBMt6`8)1IBriRwNiNE`>FhD?J+Lek-*a6 znQ&dnV}C1wj0*8I=8I8`4>YF2qe%W&T}bC5zQz{2e~MW@=55!#m(=F80k@j9r3o|~ zs3}tHIzEZ*J^AnG_v_lvAn`=8(Hudn9hrNm>ElejQLTL(EncKVlDwK4rZo*-gG|hi zIHWhO>ig%9&R(60h^B0Dx^8cnj%T2la=C%(upE6`DB7s-SE8v{{jy!JeL;~LbPAotrW{D%$&V-(1RlqPIW88iKMmhDV23GudMR(% zg6r!9(q5}GNnISBKGNPW#eUKTt*2)Ds6Nvk{=8+73`cMItBGz=V+Tzsv39T3m4)`= zzE1y|XP%8(f~Y{l%P<&)g}E1Rd0W3L$QHUY5U7LqMwj*hyf-@Hv#ffPchCy+0h}aH z6k0F#W8RQ>k|&_>aKx7}4w&4{>P1Y^zbOVf4Vc0ndH_mOfdrnFfgJ6RZ!3}~2g(;wzyAy)r!Qsc zpe;rPb__Y`02<^seV-${o1n$qhywV#kY1Qs_v(0}py&g``$B~b=&652dRYs#FboDmB8#tnYzQ_*^+gGi)d9$pUCHs=Yh(mUQiGoCdx*cs%nQxkY7i0{N z%ULUVd|kdTHYWT((JtL1nN67B3ur2_sBG|=Z8w2C9Ik%xodqDCgN1+otb0gXG*#&? z`f;0DLnyi!-efCsC&K*6ExYT9GDoSYVVHIK!@_LRu zy-BktNmRh9t1FBQN=)@^twC?AQH5(x(R+|hPT*l>;ZC0!s=wt$V5uTiQ!CutSFNvK@S|*s|&sn1wz9#z%$o1c7X&?I>g} zeS9Hhk)}n>xj)lxLk#RE8AtRx1?mX4Ir*_Nv-|p!hl6yQc9^-r=%X%yC)o-P`sccKAHm${4R4(y=z*n)P9IuXE z23YI&)FS7`ad%Bs^_*wOTaok!4X$i>hRDfQpjWoth!n{3P-$zz&w#IMn>%BDMONbw z9S(qWs|yb5@b?o=4~6H_EG`e~a#`Y&9To<~A1^D`tu(AGo*Bw1<%6rV(Xp}nUPa(8 zfjQ+d*seRHrc4#G0=v(JA zXzoSb!F%jE-$!TxceFZ5*qf9S%1Lo8V2oPls9blxY z&bN;{x%7SskKWdY?3j%lZRkm&hf=*=akbhk(v-fcl^nFk?Q7ikBQgelc2(j6wr5IQ zq0&wmJ#vs*>8!Tj)3PZVkj{&}r)9O{?Uc$8Fw-5=Q+blWE;{9&D_*??-IJIEN`W$=~J3n>(DxK~SH)77}VK5s%PoI(c zI1Mb4(`4EEGp4c>Btn9xb70YOVtrBa*GcIMwTk`WC*ejjWg5P_k*|Kx&}P!Yexm*A z3Dv+2W^jbcr`DMd%g9V|ET~*rHKd0-8z6H6smjbnP~Uk%!+IwvEP9V|Ok1}?+5jU`?BGe1>gHDD=@3GHyJKq)}Q_JxJk&qHbBiKF9ldd6)_6rL6 zf<6|j`3A2&Wz{tNnt>)gmpPg;a1 zEy)}|*T@nh0Q-Y)Nq30ye(u+yJ=W~*?aSfoGYKMUJ%mk6rwz?esQFBcz8E2x@X0+A za|bhX^A&rK8}Xmr1BRJVMQff?Il))AoXVR1ha4A<#{@PGol8)Vchm1;I-@Q{MNHq; zI~=)iiJ#3U8?>>}QhU$$G?i$b{!>e-3gNc5Rm;`&74)c6!W{QHHiQ|IDLf`B<__FJ z57;o$!k8ewCJC;185mn%VIC{C&mt}7D+!BW0ZL{OmMt8v52`f&EX|dE&{{8Mo5Jvd zZ8@2(C9b+!L@$57Uudfjd`RwfaD{sraE7l44*c0#a5MUkn()8N5&yr&d8J}TlB+X4 Riu&JN+8TQ58XP)}x#CqR3GU7ujt6U06NkcaF#4@P;6 zg@bZ};3_9&yplTI19+v8Mj(OnwBG|iLr>2~tLN*U0l3FKA`tKifx~K%-ioWQbJ4Wt zup{;uEl`-HCB6J4UTeI=lB1pbS+5&V5B2~zto0QXd0oBj!vI*r9^2mD^_ma zbPsQw;Wsb;XeE;1LSl%&Wv=rEGsHxyM4~Z1S4Om&o|*9BuTHP<-k%`^yqg<_ck9O1 zXB7bKE5mDLh$Da(Q3o1bhYUK*Q7tSyUa-L)*SP&WPFVI68aEteN)1~XS5rk>-nSzB z?e(nWFZ>}UR5Z6%%eLuE@fGZVjf6R}OR`vs{D2e{1Cm8PfUzdoT=8TwPFe=G#Ks&p z7rv#E6@UZpvv=j`qe`OoE?Y;mlwp>uQ%FX1lL@djcIgr3RPey-D$XqD(b2{t!G(nK z^=g&R^Q7M5BTVsQXj?F}gj036ax=Z8=ypOwqv>&FV}p_ftG;3u8C(_)H_2X`5*%HH zEO_Ys1p7v`%CRO7(s~JPO89Ww2tNQKKX6aJbCYa&V;(GmHj1Fg8*X}18Nn8y;zFA? zwwY7YO`pTUs6!;N#PcLGu5{wPe~AK%(wzR|;k9!{q%F`9<&teu1w>S;Bz1f#(Pd~; zLRALCU;LHm0L^n?vSA456X`~x-(|_3(E@5ox3}r|w1kC1*m?YYZ09nmm_FZmuB$_# zk{v%y>m^Tdy90z-*!iA8Ha^SqoV$&AN=gVf{Js3@&#zS*=V95VC*dZ|_X01eJuHPj z&t)6guurq})cOc3)yB9D8i{uP!Kq4`zV|eWQlf~CDCb*JYct+SEPZQGxqjV25jnSM zi$-ZODVp9Fbu$QxA0GVsB6CBO0b0Vcous}uq5ufZZ8bLCugAyzK0RM+`mi$2GJiv9 zeodu0bcZ0&_8$Dx%o9Ow{K3RFpuA9F*>v9=AC(~^QdPo4KdOtgn7R1!95RCBkF*!g z*JLGxVL=XTJcJ&;bovwyD>{oJ9UPpxCuKKnE zx(p0Ic;-AliYQ8n8m9ty9dh4Qt01R>kA73vm+XbG+$bNs;p)ye4it3y2wdq9p-6wE zlxVgiS?NEEF{KCPA@m?0M%80hRL1X|AV(KFZsa^L(M{^rz0 zfLvUvu~gv$st_YIao`u;jrUnd_I6dZ?ln-nefudZ-97H1;6JET9r9*AF){!E002ov JPDHLkV1lm|RXG3v diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png deleted file mode 100644 index 63440d7984936a9caa89275928d8dce97e4d033b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2011 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∓t$dRJGIadE?vc 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 Kx8Vjl{{H|h@<;Lj diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico deleted file mode 100644 index b3636e4b22ba65db9061cd60a77b02c92022dfd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86642 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 AKmY&$ diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png deleted file mode 100644 index e1cd2619e0b5ec089cbba5ec7b03ddf2b1dfceb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14183 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