A photo manager for VRChat.

Compare changes

Choose any two refs to compare.

+9 -7
README.md
··· 1 # VRChat Photo Manager (BETA) 2 3 - Download [here](https://github.com/phaze-the-dumb/VRChat-Photo-Manager/releases/latest) 4 5 ## Feedback / Bug Reports 6 ··· 14 15 ## A photo manager for VRChat. 16 17 - ![image](https://github.com/phaze-the-dumb/VRChat-Photo-Manager-Rust/assets/57566773/c573e27f-52e6-4608-a8ea-a8a83336fbb9) 18 - 19 - Files with VRCX metadata: 20 21 - ![image](https://github.com/phaze-the-dumb/VRChat-Photo-Manager-Rust/assets/57566773/06f44b67-083f-487e-b8b4-84c87d07604f) 22 23 - Fetches world information from VRChat: 24 25 Searching for photos taken in specific worlds / with specific users: 26 27 - ![image](https://github.com/user-attachments/assets/ea67c4ef-c7e8-4f93-a29a-74aff5f35903)
··· 1 # VRChat Photo Manager (BETA) 2 3 + Windows users: Download the setup.exe file [here](https://github.com/phaze-the-dumb/VRChat-Photo-Manager/releases/latest) 4 + 5 + Linux Users: 6 + - I publish .deb, .rpm and .AppImage files [here](https://github.com/phaze-the-dumb/VRChat-Photo-Manager/releases/latest) 7 + - I also publish an [AUR](https://aur.archlinux.org/packages/vrchat-photo-manager) package 8 9 ## Feedback / Bug Reports 10 ··· 18 19 ## A photo manager for VRChat. 20 21 + <img width="1352" height="739" alt="image" src="https://github.com/user-attachments/assets/bc702ee6-8891-463d-a987-c2db1dc24678" /> 22 23 + Files with VRCX metadata + Fetches world information from VRChat: 24 25 + <img width="1352" height="739" alt="image" src="https://github.com/user-attachments/assets/aae88c53-aab6-4520-bb89-d6f2bca1c51a" /> 26 27 Searching for photos taken in specific worlds / with specific users: 28 29 + <img width="1352" height="739" alt="image" src="https://github.com/user-attachments/assets/f9af1724-5bb2-4276-bc32-e818dab31750" />
+1 -1
build-release.sh
··· 1 #!/bin/bash 2 3 - VERSION=0.2.6 4 5 # Linux builds 6 NO_STRIP=true pnpm tauri build
··· 1 #!/bin/bash 2 3 + VERSION=0.2.7-hot1 4 5 # Linux builds 6 NO_STRIP=true pnpm tauri build
+24 -3
changelog
··· 105 106 v0.2.6: 107 - Fixed photos not being loaded if they're too low resolution 108 - - Added close to tray toggle 109 - Fixed "Open in folder" not selecting files on linux 110 - Remove all sync stuff 111 - - Fixed scroll to top button not animating out 112 - - Fixed scroll to top button being ontop of filters menu
··· 105 106 v0.2.6: 107 - Fixed photos not being loaded if they're too low resolution 108 - Fixed "Open in folder" not selecting files on linux 109 + - Fixed scroll to top button not animating out 110 + - Fixed scroll to top button being ontop of filters menu 111 + - Fixed photo ordering 112 + - Fixed broken legacy named photos 113 + - Fixed photos being loaded with the wrong resolution 114 + 115 + - Added support for multilayer photos 116 + - Added close to tray toggle 117 + - Added update available prompt 118 + 119 - Remove all sync stuff 120 + - Removed automatic updates 121 + 122 + Hotfix 1: 123 + - Fixed loading when an image file is corrupted 124 + - Fixed update prompt when not connected to internet 125 + 126 + v0.2.7: 127 + - Fixed image resizing when window is thinner than image 128 + - Fixed closing settings with keybinds 129 + - Fixed the behaviour of changing the photo path 130 + - Fixed loading photos in folders that aren't VRChat folders 131 + 132 + Hotfix 1: 133 + - Fixed resizing images (again)
+12 -12
package.json
··· 12 }, 13 "license": "MIT", 14 "dependencies": { 15 - "@tauri-apps/api": "2.0.0-rc.0", 16 - "@tauri-apps/plugin-deep-link": "^2.4.1", 17 - "@tauri-apps/plugin-http": "2.0.0-rc.1", 18 - "@tauri-apps/plugin-process": "2.0.0-rc.0", 19 - "@tauri-apps/plugin-shell": "2.0.0-rc.0", 20 - "@types/animejs": "^3.1.13", 21 - "animejs": "^4.1.3", 22 - "solid-js": "^1.9.9" 23 }, 24 "devDependencies": { 25 - "@tauri-apps/cli": "2.0.0-rc.5", 26 - "typescript": "^5.9.2", 27 - "vite": "^5.4.19", 28 - "vite-plugin-solid": "^2.11.8" 29 } 30 }
··· 12 }, 13 "license": "MIT", 14 "dependencies": { 15 + "@tauri-apps/api": "2.9.0", 16 + "@tauri-apps/plugin-deep-link": "^2.4.5", 17 + "@tauri-apps/plugin-http": "2.5.4", 18 + "@tauri-apps/plugin-process": "2.3.1", 19 + "@tauri-apps/plugin-shell": "2.3.3", 20 + "animejs": "^4.2.2", 21 + "solid-js": "^1.9.10" 22 }, 23 "devDependencies": { 24 + "@tauri-apps/cli": "2.9.3", 25 + "@types/animejs": "^3.1.13", 26 + "typescript": "^5.9.3", 27 + "vite": "^7.2.2", 28 + "vite-plugin-solid": "^2.11.10" 29 } 30 }
+543 -451
pnpm-lock.yaml
··· 9 .: 10 dependencies: 11 '@tauri-apps/api': 12 - specifier: 2.0.0-rc.0 13 - version: 2.0.0-rc.0 14 '@tauri-apps/plugin-deep-link': 15 - specifier: ^2.4.1 16 - version: 2.4.1 17 '@tauri-apps/plugin-http': 18 - specifier: 2.0.0-rc.1 19 - version: 2.0.0-rc.1 20 '@tauri-apps/plugin-process': 21 - specifier: 2.0.0-rc.0 22 - version: 2.0.0-rc.0 23 '@tauri-apps/plugin-shell': 24 - specifier: 2.0.0-rc.0 25 - version: 2.0.0-rc.0 26 - '@types/animejs': 27 - specifier: ^3.1.13 28 - version: 3.1.13 29 animejs: 30 - specifier: ^4.1.3 31 - version: 4.1.3 32 solid-js: 33 - specifier: ^1.9.9 34 - version: 1.9.9 35 devDependencies: 36 '@tauri-apps/cli': 37 - specifier: 2.0.0-rc.5 38 - version: 2.0.0-rc.5 39 typescript: 40 - specifier: ^5.9.2 41 - version: 5.9.2 42 vite: 43 - specifier: ^5.4.19 44 - version: 5.4.19 45 vite-plugin-solid: 46 - specifier: ^2.11.8 47 - version: 2.11.8(solid-js@1.9.9)(vite@5.4.19) 48 49 packages: 50 51 - '@ampproject/remapping@2.3.0': 52 - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 53 - engines: {node: '>=6.0.0'} 54 - 55 '@babel/code-frame@7.27.1': 56 resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} 57 engines: {node: '>=6.9.0'} 58 59 - '@babel/compat-data@7.28.0': 60 - resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} 61 engines: {node: '>=6.9.0'} 62 63 - '@babel/core@7.28.3': 64 - resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} 65 engines: {node: '>=6.9.0'} 66 67 - '@babel/generator@7.28.3': 68 - resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} 69 engines: {node: '>=6.9.0'} 70 71 '@babel/helper-compilation-targets@7.27.2': ··· 98 resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 99 engines: {node: '>=6.9.0'} 100 101 - '@babel/helper-validator-identifier@7.27.1': 102 - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} 103 engines: {node: '>=6.9.0'} 104 105 '@babel/helper-validator-option@7.27.1': 106 resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} 107 engines: {node: '>=6.9.0'} 108 109 - '@babel/helpers@7.28.3': 110 - resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==} 111 engines: {node: '>=6.9.0'} 112 113 - '@babel/parser@7.28.3': 114 - resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} 115 engines: {node: '>=6.0.0'} 116 hasBin: true 117 ··· 125 resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} 126 engines: {node: '>=6.9.0'} 127 128 - '@babel/traverse@7.28.3': 129 - resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} 130 engines: {node: '>=6.9.0'} 131 132 - '@babel/types@7.28.2': 133 - resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} 134 engines: {node: '>=6.9.0'} 135 136 - '@esbuild/aix-ppc64@0.21.5': 137 - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 138 - engines: {node: '>=12'} 139 cpu: [ppc64] 140 os: [aix] 141 142 - '@esbuild/android-arm64@0.21.5': 143 - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 144 - engines: {node: '>=12'} 145 cpu: [arm64] 146 os: [android] 147 148 - '@esbuild/android-arm@0.21.5': 149 - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 150 - engines: {node: '>=12'} 151 cpu: [arm] 152 os: [android] 153 154 - '@esbuild/android-x64@0.21.5': 155 - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 156 - engines: {node: '>=12'} 157 cpu: [x64] 158 os: [android] 159 160 - '@esbuild/darwin-arm64@0.21.5': 161 - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 162 - engines: {node: '>=12'} 163 cpu: [arm64] 164 os: [darwin] 165 166 - '@esbuild/darwin-x64@0.21.5': 167 - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 168 - engines: {node: '>=12'} 169 cpu: [x64] 170 os: [darwin] 171 172 - '@esbuild/freebsd-arm64@0.21.5': 173 - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 174 - engines: {node: '>=12'} 175 cpu: [arm64] 176 os: [freebsd] 177 178 - '@esbuild/freebsd-x64@0.21.5': 179 - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 180 - engines: {node: '>=12'} 181 cpu: [x64] 182 os: [freebsd] 183 184 - '@esbuild/linux-arm64@0.21.5': 185 - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 186 - engines: {node: '>=12'} 187 cpu: [arm64] 188 os: [linux] 189 190 - '@esbuild/linux-arm@0.21.5': 191 - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 192 - engines: {node: '>=12'} 193 cpu: [arm] 194 os: [linux] 195 196 - '@esbuild/linux-ia32@0.21.5': 197 - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 198 - engines: {node: '>=12'} 199 cpu: [ia32] 200 os: [linux] 201 202 - '@esbuild/linux-loong64@0.21.5': 203 - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 204 - engines: {node: '>=12'} 205 cpu: [loong64] 206 os: [linux] 207 208 - '@esbuild/linux-mips64el@0.21.5': 209 - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 210 - engines: {node: '>=12'} 211 cpu: [mips64el] 212 os: [linux] 213 214 - '@esbuild/linux-ppc64@0.21.5': 215 - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 216 - engines: {node: '>=12'} 217 cpu: [ppc64] 218 os: [linux] 219 220 - '@esbuild/linux-riscv64@0.21.5': 221 - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 222 - engines: {node: '>=12'} 223 cpu: [riscv64] 224 os: [linux] 225 226 - '@esbuild/linux-s390x@0.21.5': 227 - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 228 - engines: {node: '>=12'} 229 cpu: [s390x] 230 os: [linux] 231 232 - '@esbuild/linux-x64@0.21.5': 233 - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 234 - engines: {node: '>=12'} 235 cpu: [x64] 236 os: [linux] 237 238 - '@esbuild/netbsd-x64@0.21.5': 239 - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 240 - engines: {node: '>=12'} 241 cpu: [x64] 242 os: [netbsd] 243 244 - '@esbuild/openbsd-x64@0.21.5': 245 - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 246 - engines: {node: '>=12'} 247 cpu: [x64] 248 os: [openbsd] 249 250 - '@esbuild/sunos-x64@0.21.5': 251 - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 252 - engines: {node: '>=12'} 253 cpu: [x64] 254 os: [sunos] 255 256 - '@esbuild/win32-arm64@0.21.5': 257 - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 258 - engines: {node: '>=12'} 259 cpu: [arm64] 260 os: [win32] 261 262 - '@esbuild/win32-ia32@0.21.5': 263 - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 264 - engines: {node: '>=12'} 265 cpu: [ia32] 266 os: [win32] 267 268 - '@esbuild/win32-x64@0.21.5': 269 - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 270 - engines: {node: '>=12'} 271 cpu: [x64] 272 os: [win32] 273 274 '@jridgewell/gen-mapping@0.3.13': 275 resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 276 277 '@jridgewell/resolve-uri@3.1.2': 278 resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 279 engines: {node: '>=6.0.0'} ··· 281 '@jridgewell/sourcemap-codec@1.5.5': 282 resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 283 284 - '@jridgewell/trace-mapping@0.3.30': 285 - resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} 286 287 - '@rollup/rollup-android-arm-eabi@4.46.3': 288 - resolution: {integrity: sha512-UmTdvXnLlqQNOCJnyksjPs1G4GqXNGW1LrzCe8+8QoaLhhDeTXYBgJ3k6x61WIhlHX2U+VzEJ55TtIjR/HTySA==} 289 cpu: [arm] 290 os: [android] 291 292 - '@rollup/rollup-android-arm64@4.46.3': 293 - resolution: {integrity: sha512-8NoxqLpXm7VyeI0ocidh335D6OKT0UJ6fHdnIxf3+6oOerZZc+O7r+UhvROji6OspyPm+rrIdb1gTXtVIqn+Sg==} 294 cpu: [arm64] 295 os: [android] 296 297 - '@rollup/rollup-darwin-arm64@4.46.3': 298 - resolution: {integrity: sha512-csnNavqZVs1+7/hUKtgjMECsNG2cdB8F7XBHP6FfQjqhjF8rzMzb3SLyy/1BG7YSfQ+bG75Ph7DyedbUqwq1rA==} 299 cpu: [arm64] 300 os: [darwin] 301 302 - '@rollup/rollup-darwin-x64@4.46.3': 303 - resolution: {integrity: sha512-r2MXNjbuYabSIX5yQqnT8SGSQ26XQc8fmp6UhlYJd95PZJkQD1u82fWP7HqvGUf33IsOC6qsiV+vcuD4SDP6iw==} 304 cpu: [x64] 305 os: [darwin] 306 307 - '@rollup/rollup-freebsd-arm64@4.46.3': 308 - resolution: {integrity: sha512-uluObTmgPJDuJh9xqxyr7MV61Imq+0IvVsAlWyvxAaBSNzCcmZlhfYcRhCdMaCsy46ccZa7vtDDripgs9Jkqsw==} 309 cpu: [arm64] 310 os: [freebsd] 311 312 - '@rollup/rollup-freebsd-x64@4.46.3': 313 - resolution: {integrity: sha512-AVJXEq9RVHQnejdbFvh1eWEoobohUYN3nqJIPI4mNTMpsyYN01VvcAClxflyk2HIxvLpRcRggpX1m9hkXkpC/A==} 314 cpu: [x64] 315 os: [freebsd] 316 317 - '@rollup/rollup-linux-arm-gnueabihf@4.46.3': 318 - resolution: {integrity: sha512-byyflM+huiwHlKi7VHLAYTKr67X199+V+mt1iRgJenAI594vcmGGddWlu6eHujmcdl6TqSNnvqaXJqZdnEWRGA==} 319 cpu: [arm] 320 os: [linux] 321 322 - '@rollup/rollup-linux-arm-musleabihf@4.46.3': 323 - resolution: {integrity: sha512-aLm3NMIjr4Y9LklrH5cu7yybBqoVCdr4Nvnm8WB7PKCn34fMCGypVNpGK0JQWdPAzR/FnoEoFtlRqZbBBLhVoQ==} 324 cpu: [arm] 325 os: [linux] 326 327 - '@rollup/rollup-linux-arm64-gnu@4.46.3': 328 - resolution: {integrity: sha512-VtilE6eznJRDIoFOzaagQodUksTEfLIsvXymS+UdJiSXrPW7Ai+WG4uapAc3F7Hgs791TwdGh4xyOzbuzIZrnw==} 329 cpu: [arm64] 330 os: [linux] 331 332 - '@rollup/rollup-linux-arm64-musl@4.46.3': 333 - resolution: {integrity: sha512-dG3JuS6+cRAL0GQ925Vppafi0qwZnkHdPeuZIxIPXqkCLP02l7ka+OCyBoDEv8S+nKHxfjvjW4OZ7hTdHkx8/w==} 334 cpu: [arm64] 335 os: [linux] 336 337 - '@rollup/rollup-linux-loongarch64-gnu@4.46.3': 338 - resolution: {integrity: sha512-iU8DxnxEKJptf8Vcx4XvAUdpkZfaz0KWfRrnIRrOndL0SvzEte+MTM7nDH4A2Now4FvTZ01yFAgj6TX/mZl8hQ==} 339 cpu: [loong64] 340 os: [linux] 341 342 - '@rollup/rollup-linux-ppc64-gnu@4.46.3': 343 - resolution: {integrity: sha512-VrQZp9tkk0yozJoQvQcqlWiqaPnLM6uY1qPYXvukKePb0fqaiQtOdMJSxNFUZFsGw5oA5vvVokjHrx8a9Qsz2A==} 344 cpu: [ppc64] 345 os: [linux] 346 347 - '@rollup/rollup-linux-riscv64-gnu@4.46.3': 348 - resolution: {integrity: sha512-uf2eucWSUb+M7b0poZ/08LsbcRgaDYL8NCGjUeFMwCWFwOuFcZ8D9ayPl25P3pl+D2FH45EbHdfyUesQ2Lt9wA==} 349 cpu: [riscv64] 350 os: [linux] 351 352 - '@rollup/rollup-linux-riscv64-musl@4.46.3': 353 - resolution: {integrity: sha512-7tnUcDvN8DHm/9ra+/nF7lLzYHDeODKKKrh6JmZejbh1FnCNZS8zMkZY5J4sEipy2OW1d1Ncc4gNHUd0DLqkSg==} 354 cpu: [riscv64] 355 os: [linux] 356 357 - '@rollup/rollup-linux-s390x-gnu@4.46.3': 358 - resolution: {integrity: sha512-MUpAOallJim8CsJK+4Lc9tQzlfPbHxWDrGXZm2z6biaadNpvh3a5ewcdat478W+tXDoUiHwErX/dOql7ETcLqg==} 359 cpu: [s390x] 360 os: [linux] 361 362 - '@rollup/rollup-linux-x64-gnu@4.46.3': 363 - resolution: {integrity: sha512-F42IgZI4JicE2vM2PWCe0N5mR5vR0gIdORPqhGQ32/u1S1v3kLtbZ0C/mi9FFk7C5T0PgdeyWEPajPjaUpyoKg==} 364 cpu: [x64] 365 os: [linux] 366 367 - '@rollup/rollup-linux-x64-musl@4.46.3': 368 - resolution: {integrity: sha512-oLc+JrwwvbimJUInzx56Q3ujL3Kkhxehg7O1gWAYzm8hImCd5ld1F2Gry5YDjR21MNb5WCKhC9hXgU7rRlyegQ==} 369 cpu: [x64] 370 os: [linux] 371 372 - '@rollup/rollup-win32-arm64-msvc@4.46.3': 373 - resolution: {integrity: sha512-lOrQ+BVRstruD1fkWg9yjmumhowR0oLAAzavB7yFSaGltY8klttmZtCLvOXCmGE9mLIn8IBV/IFrQOWz5xbFPg==} 374 cpu: [arm64] 375 os: [win32] 376 377 - '@rollup/rollup-win32-ia32-msvc@4.46.3': 378 - resolution: {integrity: sha512-vvrVKPRS4GduGR7VMH8EylCBqsDcw6U+/0nPDuIjXQRbHJc6xOBj+frx8ksfZAh6+Fptw5wHrN7etlMmQnPQVg==} 379 cpu: [ia32] 380 os: [win32] 381 382 - '@rollup/rollup-win32-x64-msvc@4.46.3': 383 - resolution: {integrity: sha512-fi3cPxCnu3ZeM3EwKZPgXbWoGzm2XHgB/WShKI81uj8wG0+laobmqy5wbgEwzstlbLu4MyO8C19FyhhWseYKNQ==} 384 cpu: [x64] 385 os: [win32] 386 387 - '@tauri-apps/api@2.0.0-rc.0': 388 - resolution: {integrity: sha512-v454Qs3REHc3Za59U+/eSmBsdmF+3NE5+76+lFDaitVqN4ZglDHENDaMARYKGJVZuxiSkzyqG0SeG7lLQjVkPA==} 389 - engines: {node: '>= 18.18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} 390 391 - '@tauri-apps/api@2.8.0': 392 - resolution: {integrity: sha512-ga7zdhbS2GXOMTIZRT0mYjKJtR9fivsXzsyq5U3vjDL0s6DTMwYRm0UHNjzTY5dh4+LSC68Sm/7WEiimbQNYlw==} 393 394 - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.5': 395 - resolution: {integrity: sha512-EoduJ5SeMfBKCe7I291JBH+lkrf2E0+mQF1rP+Jq4CjWPer11OeEcUSFtHURB3Z3ItzObQ7ALPulMGhMe6E9rg==} 396 engines: {node: '>= 10'} 397 cpu: [arm64] 398 os: [darwin] 399 400 - '@tauri-apps/cli-darwin-x64@2.0.0-rc.5': 401 - resolution: {integrity: sha512-GdphvNgQWAbVGoD6e2Z5auWFXBcmmbhiwf9UNoKpBQPLfFO6EEJHjXbACr/hAZsqT0nNpZLRoh/5v5HGTmU0XQ==} 402 engines: {node: '>= 10'} 403 cpu: [x64] 404 os: [darwin] 405 406 - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.5': 407 - resolution: {integrity: sha512-S47KwAfyRsO2qTqSoadHP4a1cjO9kfQi4QWkoaDjb0BEETdrhPM94qp43cnKP7QWW+msOToMTdlks9HYlhRUww==} 408 engines: {node: '>= 10'} 409 cpu: [arm] 410 os: [linux] 411 412 - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.5': 413 - resolution: {integrity: sha512-Ii9aP/24Rtlci5MaeSaqb6JOLt3cUBA4z4XmGz5VOLLZ+ntRxpfd3xNpLki04V2MOgbAu9BxLAp5UTzELc1/Rg==} 414 engines: {node: '>= 10'} 415 cpu: [arm64] 416 os: [linux] 417 418 - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.5': 419 - resolution: {integrity: sha512-noV2sDusI+DsEHl0uMOZ04sQmj65Jo9yjfSg2iv1fnfjBYVbwi6Qj/MaCqyApXESQrpv1XZB3kYI+CkyPnjj2Q==} 420 engines: {node: '>= 10'} 421 cpu: [arm64] 422 os: [linux] 423 424 - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.5': 425 - resolution: {integrity: sha512-iTe9gKO+qgFRjU1sxBvbI8bIRbkOedWvFm/yh8RFi1iJcFwbVnsHWQ8z7BwoNMJLnL2dseZgrGntmS5n9/xSSQ==} 426 engines: {node: '>= 10'} 427 cpu: [x64] 428 os: [linux] 429 430 - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.5': 431 - resolution: {integrity: sha512-R7EyfvfdMtRAKC3QxPn5jVGEH56R4g6hSnR5xXkFnEpioND7SNru5UMBGgseGJ22h/hdjFfqS2vc19291gkVsg==} 432 engines: {node: '>= 10'} 433 cpu: [x64] 434 os: [linux] 435 436 - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.5': 437 - resolution: {integrity: sha512-EE7CF//hMWsVZpu9IWXGLDDdMhAiNfHwfLnW4Na1INHKBBb/ynhOd4gKRC3Mi/kgcMfXJAq0nBJFw1mal1q7jg==} 438 engines: {node: '>= 10'} 439 cpu: [arm64] 440 os: [win32] 441 442 - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.5': 443 - resolution: {integrity: sha512-zJosPEw1X1H9nTNsrYVSypRLdMLOiLAY8hlBrgsmw7dmN61lOMLyItWsbiAezYeKIpaFeADurR+5qMHHwzbqeg==} 444 engines: {node: '>= 10'} 445 cpu: [ia32] 446 os: [win32] 447 448 - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.5': 449 - resolution: {integrity: sha512-PqxbL/e6GraazdwEKN1oX33gYCRf0ns6yuaxHafHM5+Zsv0MZpyPTPLDot/JLKvNBefk6QXZn5fKAIETVtQaGg==} 450 engines: {node: '>= 10'} 451 cpu: [x64] 452 os: [win32] 453 454 - '@tauri-apps/cli@2.0.0-rc.5': 455 - resolution: {integrity: sha512-JtFfJg8ZNOrj+S+8RKpcrNIcU5hw0X8JSNs2tUjQq0OZgqIGnRSILYjg7BaZDPEakQXUKsDEufbjbYVNJDIp8g==} 456 engines: {node: '>= 10'} 457 hasBin: true 458 459 - '@tauri-apps/plugin-deep-link@2.4.1': 460 - resolution: {integrity: sha512-I8Bo+spcAKGhIIJ1qN/gapp/Ot3mosQL98znxr975Zn2ODAkUZ++BQ9FnTpR7PDwfIl5ANSGdIW/YU01zVTcJw==} 461 462 - '@tauri-apps/plugin-http@2.0.0-rc.1': 463 - resolution: {integrity: sha512-j4WdTEKx0CFa6u8ubke0mo75pCrnu6XtrFtvjsh+zjuNYgMG/l0+A1woWXHm73f2Levskhs+KbKcLQA/nr8k2w==} 464 465 - '@tauri-apps/plugin-process@2.0.0-rc.0': 466 - resolution: {integrity: sha512-Z12D/kmQzG1vCVf+jLXPhPDUA0pEjFrsg4p0uwO2sotVLM9287IuTM+aIz9cuAYOxFLKcsnDG7amSCL9IfA1gw==} 467 468 - '@tauri-apps/plugin-shell@2.0.0-rc.0': 469 - resolution: {integrity: sha512-bhUcQcrqZoK8H1DFXapr5r1Z75oh6Kd5Tltz97XpZFLREEqp+KhN2Fvyh8r/fKAyenYsTYUIsDsyGdjdueuF9g==} 470 471 '@types/animejs@3.1.13': 472 resolution: {integrity: sha512-yWg9l1z7CAv/TKpty4/vupEh24jDGUZXv4r26StRkpUPQm04ztJaftgpto8vwdFs8SiTq6XfaPKCSI+wjzNMvQ==} ··· 486 '@types/estree@1.0.8': 487 resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 488 489 - animejs@4.1.3: 490 - resolution: {integrity: sha512-4XzlIsQsku1ycSPzchxxT0N+ohEMZObG71nOSBBkZoV4sgQvtXa/qAANkFpTE6pegdV8JnIBZiB0LfdxNoRNMw==} 491 492 - babel-plugin-jsx-dom-expressions@0.40.1: 493 - resolution: {integrity: sha512-b4iHuirqK7RgaMzB2Lsl7MqrlDgQtVRSSazyrmx7wB3T759ggGjod5Rkok5MfHjQXhR7tRPmdwoeGPqBnW2KfA==} 494 peerDependencies: 495 '@babel/core': ^7.20.12 496 497 - babel-preset-solid@1.9.9: 498 - resolution: {integrity: sha512-pCnxWrciluXCeli/dj5PIEHgbNzim3evtTn12snjqqg8QZWJNMjH1AWIp4iG/tbVjqQ72aBEymMSagvmgxubXw==} 499 peerDependencies: 500 '@babel/core': ^7.0.0 501 - solid-js: ^1.9.8 502 peerDependenciesMeta: 503 solid-js: 504 optional: true 505 506 - browserslist@4.25.3: 507 - resolution: {integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==} 508 engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 509 hasBin: true 510 511 - caniuse-lite@1.0.30001735: 512 - resolution: {integrity: sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==} 513 514 convert-source-map@2.0.0: 515 resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} ··· 517 csstype@3.1.3: 518 resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 519 520 - debug@4.4.1: 521 - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} 522 engines: {node: '>=6.0'} 523 peerDependencies: 524 supports-color: '*' ··· 526 supports-color: 527 optional: true 528 529 - electron-to-chromium@1.5.207: 530 - resolution: {integrity: sha512-mryFrrL/GXDTmAtIVMVf+eIXM09BBPlO5IQ7lUyKmK8d+A4VpRGG+M3ofoVef6qyF8s60rJei8ymlJxjUA8Faw==} 531 532 entities@6.0.1: 533 resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} 534 engines: {node: '>=0.12'} 535 536 - esbuild@0.21.5: 537 - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 538 - engines: {node: '>=12'} 539 hasBin: true 540 541 escalade@3.2.0: 542 resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 543 engines: {node: '>=6'} 544 545 fsevents@2.3.3: 546 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 547 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} ··· 586 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 587 hasBin: true 588 589 - node-releases@2.0.19: 590 - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 591 592 parse5@7.3.0: 593 resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} ··· 595 picocolors@1.1.1: 596 resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 597 598 postcss@8.5.6: 599 resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 600 engines: {node: ^10 || ^12 || >=14} 601 602 - rollup@4.46.3: 603 - resolution: {integrity: sha512-RZn2XTjXb8t5g13f5YclGoilU/kwT696DIkY3sywjdZidNSi3+vseaQov7D7BZXVJCPv3pDWUN69C78GGbXsKw==} 604 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 605 hasBin: true 606 ··· 608 resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 609 hasBin: true 610 611 - seroval-plugins@1.3.2: 612 - resolution: {integrity: sha512-0QvCV2lM3aj/U3YozDiVwx9zpH0q8A60CTWIv4Jszj/givcudPb48B+rkU5D51NJ0pTpweGMttHjboPa9/zoIQ==} 613 engines: {node: '>=10'} 614 peerDependencies: 615 seroval: ^1.0 ··· 618 resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} 619 engines: {node: '>=10'} 620 621 - solid-js@1.9.9: 622 - resolution: {integrity: sha512-A0ZBPJQldAeGCTW0YRYJmt7RCeh5rbFfPZ2aOttgYnctHE7HgKeHCBB/PVc2P7eOfmNXqMFFFoYYdm3S4dcbkA==} 623 624 solid-refresh@0.6.3: 625 resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} ··· 630 resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 631 engines: {node: '>=0.10.0'} 632 633 - typescript@5.9.2: 634 - resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} 635 engines: {node: '>=14.17'} 636 hasBin: true 637 638 - update-browserslist-db@1.1.3: 639 - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} 640 hasBin: true 641 peerDependencies: 642 browserslist: '>= 4.21.0' 643 644 - validate-html-nesting@1.2.3: 645 - resolution: {integrity: sha512-kdkWdCl6eCeLlRShJKbjVOU2kFKxMF8Ghu50n+crEoyx+VKm3FxAxF9z4DCy6+bbTOqNW0+jcIYRnjoIRzigRw==} 646 - 647 - vite-plugin-solid@2.11.8: 648 - resolution: {integrity: sha512-hFrCxBfv3B1BmFqnJF4JOCYpjrmi/zwyeKjcomQ0khh8HFyQ8SbuBWQ7zGojfrz6HUOBFrJBNySDi/JgAHytWg==} 649 peerDependencies: 650 '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* 651 solid-js: ^1.7.2 ··· 654 '@testing-library/jest-dom': 655 optional: true 656 657 - vite@5.4.19: 658 - resolution: {integrity: sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==} 659 - engines: {node: ^18.0.0 || >=20.0.0} 660 hasBin: true 661 peerDependencies: 662 - '@types/node': ^18.0.0 || >=20.0.0 663 - less: '*' 664 lightningcss: ^1.21.0 665 - sass: '*' 666 - sass-embedded: '*' 667 - stylus: '*' 668 - sugarss: '*' 669 - terser: ^5.4.0 670 peerDependenciesMeta: 671 '@types/node': 672 optional: true 673 less: 674 optional: true ··· 684 optional: true 685 terser: 686 optional: true 687 688 vitefu@1.1.1: 689 resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} ··· 698 699 snapshots: 700 701 - '@ampproject/remapping@2.3.0': 702 - dependencies: 703 - '@jridgewell/gen-mapping': 0.3.13 704 - '@jridgewell/trace-mapping': 0.3.30 705 - 706 '@babel/code-frame@7.27.1': 707 dependencies: 708 - '@babel/helper-validator-identifier': 7.27.1 709 js-tokens: 4.0.0 710 picocolors: 1.1.1 711 712 - '@babel/compat-data@7.28.0': {} 713 714 - '@babel/core@7.28.3': 715 dependencies: 716 - '@ampproject/remapping': 2.3.0 717 '@babel/code-frame': 7.27.1 718 - '@babel/generator': 7.28.3 719 '@babel/helper-compilation-targets': 7.27.2 720 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) 721 - '@babel/helpers': 7.28.3 722 - '@babel/parser': 7.28.3 723 '@babel/template': 7.27.2 724 - '@babel/traverse': 7.28.3 725 - '@babel/types': 7.28.2 726 convert-source-map: 2.0.0 727 - debug: 4.4.1 728 gensync: 1.0.0-beta.2 729 json5: 2.2.3 730 semver: 6.3.1 731 transitivePeerDependencies: 732 - supports-color 733 734 - '@babel/generator@7.28.3': 735 dependencies: 736 - '@babel/parser': 7.28.3 737 - '@babel/types': 7.28.2 738 '@jridgewell/gen-mapping': 0.3.13 739 - '@jridgewell/trace-mapping': 0.3.30 740 jsesc: 3.1.0 741 742 '@babel/helper-compilation-targets@7.27.2': 743 dependencies: 744 - '@babel/compat-data': 7.28.0 745 '@babel/helper-validator-option': 7.27.1 746 - browserslist: 4.25.3 747 lru-cache: 5.1.1 748 semver: 6.3.1 749 ··· 751 752 '@babel/helper-module-imports@7.18.6': 753 dependencies: 754 - '@babel/types': 7.28.2 755 756 '@babel/helper-module-imports@7.27.1': 757 dependencies: 758 - '@babel/traverse': 7.28.3 759 - '@babel/types': 7.28.2 760 transitivePeerDependencies: 761 - supports-color 762 763 - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)': 764 dependencies: 765 - '@babel/core': 7.28.3 766 '@babel/helper-module-imports': 7.27.1 767 - '@babel/helper-validator-identifier': 7.27.1 768 - '@babel/traverse': 7.28.3 769 transitivePeerDependencies: 770 - supports-color 771 ··· 773 774 '@babel/helper-string-parser@7.27.1': {} 775 776 - '@babel/helper-validator-identifier@7.27.1': {} 777 778 '@babel/helper-validator-option@7.27.1': {} 779 780 - '@babel/helpers@7.28.3': 781 dependencies: 782 '@babel/template': 7.27.2 783 - '@babel/types': 7.28.2 784 785 - '@babel/parser@7.28.3': 786 dependencies: 787 - '@babel/types': 7.28.2 788 789 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.3)': 790 dependencies: 791 - '@babel/core': 7.28.3 792 '@babel/helper-plugin-utils': 7.27.1 793 794 '@babel/template@7.27.2': 795 dependencies: 796 '@babel/code-frame': 7.27.1 797 - '@babel/parser': 7.28.3 798 - '@babel/types': 7.28.2 799 800 - '@babel/traverse@7.28.3': 801 dependencies: 802 '@babel/code-frame': 7.27.1 803 - '@babel/generator': 7.28.3 804 '@babel/helper-globals': 7.28.0 805 - '@babel/parser': 7.28.3 806 '@babel/template': 7.27.2 807 - '@babel/types': 7.28.2 808 - debug: 4.4.1 809 transitivePeerDependencies: 810 - supports-color 811 812 - '@babel/types@7.28.2': 813 dependencies: 814 '@babel/helper-string-parser': 7.27.1 815 - '@babel/helper-validator-identifier': 7.27.1 816 817 - '@esbuild/aix-ppc64@0.21.5': 818 optional: true 819 820 - '@esbuild/android-arm64@0.21.5': 821 optional: true 822 823 - '@esbuild/android-arm@0.21.5': 824 optional: true 825 826 - '@esbuild/android-x64@0.21.5': 827 optional: true 828 829 - '@esbuild/darwin-arm64@0.21.5': 830 optional: true 831 832 - '@esbuild/darwin-x64@0.21.5': 833 optional: true 834 835 - '@esbuild/freebsd-arm64@0.21.5': 836 optional: true 837 838 - '@esbuild/freebsd-x64@0.21.5': 839 optional: true 840 841 - '@esbuild/linux-arm64@0.21.5': 842 optional: true 843 844 - '@esbuild/linux-arm@0.21.5': 845 optional: true 846 847 - '@esbuild/linux-ia32@0.21.5': 848 optional: true 849 850 - '@esbuild/linux-loong64@0.21.5': 851 optional: true 852 853 - '@esbuild/linux-mips64el@0.21.5': 854 optional: true 855 856 - '@esbuild/linux-ppc64@0.21.5': 857 optional: true 858 859 - '@esbuild/linux-riscv64@0.21.5': 860 optional: true 861 862 - '@esbuild/linux-s390x@0.21.5': 863 optional: true 864 865 - '@esbuild/linux-x64@0.21.5': 866 optional: true 867 868 - '@esbuild/netbsd-x64@0.21.5': 869 optional: true 870 871 - '@esbuild/openbsd-x64@0.21.5': 872 optional: true 873 874 - '@esbuild/sunos-x64@0.21.5': 875 optional: true 876 877 - '@esbuild/win32-arm64@0.21.5': 878 optional: true 879 880 - '@esbuild/win32-ia32@0.21.5': 881 optional: true 882 883 - '@esbuild/win32-x64@0.21.5': 884 optional: true 885 886 '@jridgewell/gen-mapping@0.3.13': 887 dependencies: 888 '@jridgewell/sourcemap-codec': 1.5.5 889 - '@jridgewell/trace-mapping': 0.3.30 890 891 '@jridgewell/resolve-uri@3.1.2': {} 892 893 '@jridgewell/sourcemap-codec@1.5.5': {} 894 895 - '@jridgewell/trace-mapping@0.3.30': 896 dependencies: 897 '@jridgewell/resolve-uri': 3.1.2 898 '@jridgewell/sourcemap-codec': 1.5.5 899 900 - '@rollup/rollup-android-arm-eabi@4.46.3': 901 optional: true 902 903 - '@rollup/rollup-android-arm64@4.46.3': 904 optional: true 905 906 - '@rollup/rollup-darwin-arm64@4.46.3': 907 optional: true 908 909 - '@rollup/rollup-darwin-x64@4.46.3': 910 optional: true 911 912 - '@rollup/rollup-freebsd-arm64@4.46.3': 913 optional: true 914 915 - '@rollup/rollup-freebsd-x64@4.46.3': 916 optional: true 917 918 - '@rollup/rollup-linux-arm-gnueabihf@4.46.3': 919 optional: true 920 921 - '@rollup/rollup-linux-arm-musleabihf@4.46.3': 922 optional: true 923 924 - '@rollup/rollup-linux-arm64-gnu@4.46.3': 925 optional: true 926 927 - '@rollup/rollup-linux-arm64-musl@4.46.3': 928 optional: true 929 930 - '@rollup/rollup-linux-loongarch64-gnu@4.46.3': 931 optional: true 932 933 - '@rollup/rollup-linux-ppc64-gnu@4.46.3': 934 optional: true 935 936 - '@rollup/rollup-linux-riscv64-gnu@4.46.3': 937 optional: true 938 939 - '@rollup/rollup-linux-riscv64-musl@4.46.3': 940 optional: true 941 942 - '@rollup/rollup-linux-s390x-gnu@4.46.3': 943 optional: true 944 945 - '@rollup/rollup-linux-x64-gnu@4.46.3': 946 optional: true 947 948 - '@rollup/rollup-linux-x64-musl@4.46.3': 949 optional: true 950 951 - '@rollup/rollup-win32-arm64-msvc@4.46.3': 952 optional: true 953 954 - '@rollup/rollup-win32-ia32-msvc@4.46.3': 955 optional: true 956 957 - '@rollup/rollup-win32-x64-msvc@4.46.3': 958 optional: true 959 960 - '@tauri-apps/api@2.0.0-rc.0': {} 961 962 - '@tauri-apps/api@2.8.0': {} 963 964 - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.5': 965 optional: true 966 967 - '@tauri-apps/cli-darwin-x64@2.0.0-rc.5': 968 optional: true 969 970 - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.5': 971 optional: true 972 973 - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.5': 974 optional: true 975 976 - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.5': 977 optional: true 978 979 - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.5': 980 optional: true 981 982 - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.5': 983 optional: true 984 985 - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.5': 986 optional: true 987 988 - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.5': 989 optional: true 990 991 - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.5': 992 optional: true 993 994 - '@tauri-apps/cli@2.0.0-rc.5': 995 optionalDependencies: 996 - '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.5 997 - '@tauri-apps/cli-darwin-x64': 2.0.0-rc.5 998 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.5 999 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.5 1000 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.5 1001 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.5 1002 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.5 1003 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.5 1004 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.5 1005 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.5 1006 1007 - '@tauri-apps/plugin-deep-link@2.4.1': 1008 dependencies: 1009 - '@tauri-apps/api': 2.8.0 1010 1011 - '@tauri-apps/plugin-http@2.0.0-rc.1': 1012 dependencies: 1013 - '@tauri-apps/api': 2.8.0 1014 1015 - '@tauri-apps/plugin-process@2.0.0-rc.0': 1016 dependencies: 1017 - '@tauri-apps/api': 2.0.0-rc.0 1018 1019 - '@tauri-apps/plugin-shell@2.0.0-rc.0': 1020 dependencies: 1021 - '@tauri-apps/api': 2.0.0-rc.0 1022 1023 '@types/animejs@3.1.13': {} 1024 1025 '@types/babel__core@7.20.5': 1026 dependencies: 1027 - '@babel/parser': 7.28.3 1028 - '@babel/types': 7.28.2 1029 '@types/babel__generator': 7.27.0 1030 '@types/babel__template': 7.4.4 1031 '@types/babel__traverse': 7.28.0 1032 1033 '@types/babel__generator@7.27.0': 1034 dependencies: 1035 - '@babel/types': 7.28.2 1036 1037 '@types/babel__template@7.4.4': 1038 dependencies: 1039 - '@babel/parser': 7.28.3 1040 - '@babel/types': 7.28.2 1041 1042 '@types/babel__traverse@7.28.0': 1043 dependencies: 1044 - '@babel/types': 7.28.2 1045 1046 '@types/estree@1.0.8': {} 1047 1048 - animejs@4.1.3: {} 1049 1050 - babel-plugin-jsx-dom-expressions@0.40.1(@babel/core@7.28.3): 1051 dependencies: 1052 - '@babel/core': 7.28.3 1053 '@babel/helper-module-imports': 7.18.6 1054 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.3) 1055 - '@babel/types': 7.28.2 1056 html-entities: 2.3.3 1057 parse5: 7.3.0 1058 - validate-html-nesting: 1.2.3 1059 1060 - babel-preset-solid@1.9.9(@babel/core@7.28.3)(solid-js@1.9.9): 1061 dependencies: 1062 - '@babel/core': 7.28.3 1063 - babel-plugin-jsx-dom-expressions: 0.40.1(@babel/core@7.28.3) 1064 optionalDependencies: 1065 - solid-js: 1.9.9 1066 1067 - browserslist@4.25.3: 1068 dependencies: 1069 - caniuse-lite: 1.0.30001735 1070 - electron-to-chromium: 1.5.207 1071 - node-releases: 2.0.19 1072 - update-browserslist-db: 1.1.3(browserslist@4.25.3) 1073 1074 - caniuse-lite@1.0.30001735: {} 1075 1076 convert-source-map@2.0.0: {} 1077 1078 csstype@3.1.3: {} 1079 1080 - debug@4.4.1: 1081 dependencies: 1082 ms: 2.1.3 1083 1084 - electron-to-chromium@1.5.207: {} 1085 1086 entities@6.0.1: {} 1087 1088 - esbuild@0.21.5: 1089 optionalDependencies: 1090 - '@esbuild/aix-ppc64': 0.21.5 1091 - '@esbuild/android-arm': 0.21.5 1092 - '@esbuild/android-arm64': 0.21.5 1093 - '@esbuild/android-x64': 0.21.5 1094 - '@esbuild/darwin-arm64': 0.21.5 1095 - '@esbuild/darwin-x64': 0.21.5 1096 - '@esbuild/freebsd-arm64': 0.21.5 1097 - '@esbuild/freebsd-x64': 0.21.5 1098 - '@esbuild/linux-arm': 0.21.5 1099 - '@esbuild/linux-arm64': 0.21.5 1100 - '@esbuild/linux-ia32': 0.21.5 1101 - '@esbuild/linux-loong64': 0.21.5 1102 - '@esbuild/linux-mips64el': 0.21.5 1103 - '@esbuild/linux-ppc64': 0.21.5 1104 - '@esbuild/linux-riscv64': 0.21.5 1105 - '@esbuild/linux-s390x': 0.21.5 1106 - '@esbuild/linux-x64': 0.21.5 1107 - '@esbuild/netbsd-x64': 0.21.5 1108 - '@esbuild/openbsd-x64': 0.21.5 1109 - '@esbuild/sunos-x64': 0.21.5 1110 - '@esbuild/win32-arm64': 0.21.5 1111 - '@esbuild/win32-ia32': 0.21.5 1112 - '@esbuild/win32-x64': 0.21.5 1113 1114 escalade@3.2.0: {} 1115 1116 fsevents@2.3.3: 1117 optional: true ··· 1140 1141 nanoid@3.3.11: {} 1142 1143 - node-releases@2.0.19: {} 1144 1145 parse5@7.3.0: 1146 dependencies: ··· 1148 1149 picocolors@1.1.1: {} 1150 1151 postcss@8.5.6: 1152 dependencies: 1153 nanoid: 3.3.11 1154 picocolors: 1.1.1 1155 source-map-js: 1.2.1 1156 1157 - rollup@4.46.3: 1158 dependencies: 1159 '@types/estree': 1.0.8 1160 optionalDependencies: 1161 - '@rollup/rollup-android-arm-eabi': 4.46.3 1162 - '@rollup/rollup-android-arm64': 4.46.3 1163 - '@rollup/rollup-darwin-arm64': 4.46.3 1164 - '@rollup/rollup-darwin-x64': 4.46.3 1165 - '@rollup/rollup-freebsd-arm64': 4.46.3 1166 - '@rollup/rollup-freebsd-x64': 4.46.3 1167 - '@rollup/rollup-linux-arm-gnueabihf': 4.46.3 1168 - '@rollup/rollup-linux-arm-musleabihf': 4.46.3 1169 - '@rollup/rollup-linux-arm64-gnu': 4.46.3 1170 - '@rollup/rollup-linux-arm64-musl': 4.46.3 1171 - '@rollup/rollup-linux-loongarch64-gnu': 4.46.3 1172 - '@rollup/rollup-linux-ppc64-gnu': 4.46.3 1173 - '@rollup/rollup-linux-riscv64-gnu': 4.46.3 1174 - '@rollup/rollup-linux-riscv64-musl': 4.46.3 1175 - '@rollup/rollup-linux-s390x-gnu': 4.46.3 1176 - '@rollup/rollup-linux-x64-gnu': 4.46.3 1177 - '@rollup/rollup-linux-x64-musl': 4.46.3 1178 - '@rollup/rollup-win32-arm64-msvc': 4.46.3 1179 - '@rollup/rollup-win32-ia32-msvc': 4.46.3 1180 - '@rollup/rollup-win32-x64-msvc': 4.46.3 1181 fsevents: 2.3.3 1182 1183 semver@6.3.1: {} 1184 1185 - seroval-plugins@1.3.2(seroval@1.3.2): 1186 dependencies: 1187 seroval: 1.3.2 1188 1189 seroval@1.3.2: {} 1190 1191 - solid-js@1.9.9: 1192 dependencies: 1193 csstype: 3.1.3 1194 seroval: 1.3.2 1195 - seroval-plugins: 1.3.2(seroval@1.3.2) 1196 1197 - solid-refresh@0.6.3(solid-js@1.9.9): 1198 dependencies: 1199 - '@babel/generator': 7.28.3 1200 '@babel/helper-module-imports': 7.27.1 1201 - '@babel/types': 7.28.2 1202 - solid-js: 1.9.9 1203 transitivePeerDependencies: 1204 - supports-color 1205 1206 source-map-js@1.2.1: {} 1207 1208 - typescript@5.9.2: {} 1209 1210 - update-browserslist-db@1.1.3(browserslist@4.25.3): 1211 dependencies: 1212 - browserslist: 4.25.3 1213 escalade: 3.2.0 1214 picocolors: 1.1.1 1215 1216 - validate-html-nesting@1.2.3: {} 1217 - 1218 - vite-plugin-solid@2.11.8(solid-js@1.9.9)(vite@5.4.19): 1219 dependencies: 1220 - '@babel/core': 7.28.3 1221 '@types/babel__core': 7.20.5 1222 - babel-preset-solid: 1.9.9(@babel/core@7.28.3)(solid-js@1.9.9) 1223 merge-anything: 5.1.7 1224 - solid-js: 1.9.9 1225 - solid-refresh: 0.6.3(solid-js@1.9.9) 1226 - vite: 5.4.19 1227 - vitefu: 1.1.1(vite@5.4.19) 1228 transitivePeerDependencies: 1229 - supports-color 1230 1231 - vite@5.4.19: 1232 dependencies: 1233 - esbuild: 0.21.5 1234 postcss: 8.5.6 1235 - rollup: 4.46.3 1236 optionalDependencies: 1237 fsevents: 2.3.3 1238 1239 - vitefu@1.1.1(vite@5.4.19): 1240 optionalDependencies: 1241 - vite: 5.4.19 1242 1243 yallist@3.1.1: {}
··· 9 .: 10 dependencies: 11 '@tauri-apps/api': 12 + specifier: 2.9.0 13 + version: 2.9.0 14 '@tauri-apps/plugin-deep-link': 15 + specifier: ^2.4.5 16 + version: 2.4.5 17 '@tauri-apps/plugin-http': 18 + specifier: 2.5.4 19 + version: 2.5.4 20 '@tauri-apps/plugin-process': 21 + specifier: 2.3.1 22 + version: 2.3.1 23 '@tauri-apps/plugin-shell': 24 + specifier: 2.3.3 25 + version: 2.3.3 26 animejs: 27 + specifier: ^4.2.2 28 + version: 4.2.2 29 solid-js: 30 + specifier: ^1.9.10 31 + version: 1.9.10 32 devDependencies: 33 '@tauri-apps/cli': 34 + specifier: 2.9.3 35 + version: 2.9.3 36 + '@types/animejs': 37 + specifier: ^3.1.13 38 + version: 3.1.13 39 typescript: 40 + specifier: ^5.9.3 41 + version: 5.9.3 42 vite: 43 + specifier: ^7.2.2 44 + version: 7.2.2 45 vite-plugin-solid: 46 + specifier: ^2.11.10 47 + version: 2.11.10(solid-js@1.9.10)(vite@7.2.2) 48 49 packages: 50 51 '@babel/code-frame@7.27.1': 52 resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} 53 engines: {node: '>=6.9.0'} 54 55 + '@babel/compat-data@7.28.5': 56 + resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} 57 engines: {node: '>=6.9.0'} 58 59 + '@babel/core@7.28.5': 60 + resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} 61 engines: {node: '>=6.9.0'} 62 63 + '@babel/generator@7.28.5': 64 + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} 65 engines: {node: '>=6.9.0'} 66 67 '@babel/helper-compilation-targets@7.27.2': ··· 94 resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 95 engines: {node: '>=6.9.0'} 96 97 + '@babel/helper-validator-identifier@7.28.5': 98 + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} 99 engines: {node: '>=6.9.0'} 100 101 '@babel/helper-validator-option@7.27.1': 102 resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} 103 engines: {node: '>=6.9.0'} 104 105 + '@babel/helpers@7.28.4': 106 + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} 107 engines: {node: '>=6.9.0'} 108 109 + '@babel/parser@7.28.5': 110 + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} 111 engines: {node: '>=6.0.0'} 112 hasBin: true 113 ··· 121 resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} 122 engines: {node: '>=6.9.0'} 123 124 + '@babel/traverse@7.28.5': 125 + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} 126 engines: {node: '>=6.9.0'} 127 128 + '@babel/types@7.28.5': 129 + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} 130 engines: {node: '>=6.9.0'} 131 132 + '@esbuild/aix-ppc64@0.25.12': 133 + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} 134 + engines: {node: '>=18'} 135 cpu: [ppc64] 136 os: [aix] 137 138 + '@esbuild/android-arm64@0.25.12': 139 + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} 140 + engines: {node: '>=18'} 141 cpu: [arm64] 142 os: [android] 143 144 + '@esbuild/android-arm@0.25.12': 145 + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} 146 + engines: {node: '>=18'} 147 cpu: [arm] 148 os: [android] 149 150 + '@esbuild/android-x64@0.25.12': 151 + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} 152 + engines: {node: '>=18'} 153 cpu: [x64] 154 os: [android] 155 156 + '@esbuild/darwin-arm64@0.25.12': 157 + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} 158 + engines: {node: '>=18'} 159 cpu: [arm64] 160 os: [darwin] 161 162 + '@esbuild/darwin-x64@0.25.12': 163 + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} 164 + engines: {node: '>=18'} 165 cpu: [x64] 166 os: [darwin] 167 168 + '@esbuild/freebsd-arm64@0.25.12': 169 + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} 170 + engines: {node: '>=18'} 171 cpu: [arm64] 172 os: [freebsd] 173 174 + '@esbuild/freebsd-x64@0.25.12': 175 + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} 176 + engines: {node: '>=18'} 177 cpu: [x64] 178 os: [freebsd] 179 180 + '@esbuild/linux-arm64@0.25.12': 181 + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} 182 + engines: {node: '>=18'} 183 cpu: [arm64] 184 os: [linux] 185 186 + '@esbuild/linux-arm@0.25.12': 187 + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} 188 + engines: {node: '>=18'} 189 cpu: [arm] 190 os: [linux] 191 192 + '@esbuild/linux-ia32@0.25.12': 193 + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} 194 + engines: {node: '>=18'} 195 cpu: [ia32] 196 os: [linux] 197 198 + '@esbuild/linux-loong64@0.25.12': 199 + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} 200 + engines: {node: '>=18'} 201 cpu: [loong64] 202 os: [linux] 203 204 + '@esbuild/linux-mips64el@0.25.12': 205 + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} 206 + engines: {node: '>=18'} 207 cpu: [mips64el] 208 os: [linux] 209 210 + '@esbuild/linux-ppc64@0.25.12': 211 + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} 212 + engines: {node: '>=18'} 213 cpu: [ppc64] 214 os: [linux] 215 216 + '@esbuild/linux-riscv64@0.25.12': 217 + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} 218 + engines: {node: '>=18'} 219 cpu: [riscv64] 220 os: [linux] 221 222 + '@esbuild/linux-s390x@0.25.12': 223 + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} 224 + engines: {node: '>=18'} 225 cpu: [s390x] 226 os: [linux] 227 228 + '@esbuild/linux-x64@0.25.12': 229 + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} 230 + engines: {node: '>=18'} 231 cpu: [x64] 232 os: [linux] 233 234 + '@esbuild/netbsd-arm64@0.25.12': 235 + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} 236 + engines: {node: '>=18'} 237 + cpu: [arm64] 238 + os: [netbsd] 239 + 240 + '@esbuild/netbsd-x64@0.25.12': 241 + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} 242 + engines: {node: '>=18'} 243 cpu: [x64] 244 os: [netbsd] 245 246 + '@esbuild/openbsd-arm64@0.25.12': 247 + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} 248 + engines: {node: '>=18'} 249 + cpu: [arm64] 250 + os: [openbsd] 251 + 252 + '@esbuild/openbsd-x64@0.25.12': 253 + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} 254 + engines: {node: '>=18'} 255 cpu: [x64] 256 os: [openbsd] 257 258 + '@esbuild/openharmony-arm64@0.25.12': 259 + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} 260 + engines: {node: '>=18'} 261 + cpu: [arm64] 262 + os: [openharmony] 263 + 264 + '@esbuild/sunos-x64@0.25.12': 265 + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} 266 + engines: {node: '>=18'} 267 cpu: [x64] 268 os: [sunos] 269 270 + '@esbuild/win32-arm64@0.25.12': 271 + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} 272 + engines: {node: '>=18'} 273 cpu: [arm64] 274 os: [win32] 275 276 + '@esbuild/win32-ia32@0.25.12': 277 + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} 278 + engines: {node: '>=18'} 279 cpu: [ia32] 280 os: [win32] 281 282 + '@esbuild/win32-x64@0.25.12': 283 + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} 284 + engines: {node: '>=18'} 285 cpu: [x64] 286 os: [win32] 287 288 '@jridgewell/gen-mapping@0.3.13': 289 resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 290 291 + '@jridgewell/remapping@2.3.5': 292 + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} 293 + 294 '@jridgewell/resolve-uri@3.1.2': 295 resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 296 engines: {node: '>=6.0.0'} ··· 298 '@jridgewell/sourcemap-codec@1.5.5': 299 resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 300 301 + '@jridgewell/trace-mapping@0.3.31': 302 + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 303 304 + '@rollup/rollup-android-arm-eabi@4.52.5': 305 + resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==} 306 cpu: [arm] 307 os: [android] 308 309 + '@rollup/rollup-android-arm64@4.52.5': 310 + resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==} 311 cpu: [arm64] 312 os: [android] 313 314 + '@rollup/rollup-darwin-arm64@4.52.5': 315 + resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==} 316 cpu: [arm64] 317 os: [darwin] 318 319 + '@rollup/rollup-darwin-x64@4.52.5': 320 + resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==} 321 cpu: [x64] 322 os: [darwin] 323 324 + '@rollup/rollup-freebsd-arm64@4.52.5': 325 + resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==} 326 cpu: [arm64] 327 os: [freebsd] 328 329 + '@rollup/rollup-freebsd-x64@4.52.5': 330 + resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==} 331 cpu: [x64] 332 os: [freebsd] 333 334 + '@rollup/rollup-linux-arm-gnueabihf@4.52.5': 335 + resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==} 336 cpu: [arm] 337 os: [linux] 338 339 + '@rollup/rollup-linux-arm-musleabihf@4.52.5': 340 + resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==} 341 cpu: [arm] 342 os: [linux] 343 344 + '@rollup/rollup-linux-arm64-gnu@4.52.5': 345 + resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==} 346 cpu: [arm64] 347 os: [linux] 348 349 + '@rollup/rollup-linux-arm64-musl@4.52.5': 350 + resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==} 351 cpu: [arm64] 352 os: [linux] 353 354 + '@rollup/rollup-linux-loong64-gnu@4.52.5': 355 + resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==} 356 cpu: [loong64] 357 os: [linux] 358 359 + '@rollup/rollup-linux-ppc64-gnu@4.52.5': 360 + resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==} 361 cpu: [ppc64] 362 os: [linux] 363 364 + '@rollup/rollup-linux-riscv64-gnu@4.52.5': 365 + resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==} 366 cpu: [riscv64] 367 os: [linux] 368 369 + '@rollup/rollup-linux-riscv64-musl@4.52.5': 370 + resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==} 371 cpu: [riscv64] 372 os: [linux] 373 374 + '@rollup/rollup-linux-s390x-gnu@4.52.5': 375 + resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==} 376 cpu: [s390x] 377 os: [linux] 378 379 + '@rollup/rollup-linux-x64-gnu@4.52.5': 380 + resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==} 381 cpu: [x64] 382 os: [linux] 383 384 + '@rollup/rollup-linux-x64-musl@4.52.5': 385 + resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==} 386 cpu: [x64] 387 os: [linux] 388 389 + '@rollup/rollup-openharmony-arm64@4.52.5': 390 + resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==} 391 + cpu: [arm64] 392 + os: [openharmony] 393 + 394 + '@rollup/rollup-win32-arm64-msvc@4.52.5': 395 + resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==} 396 cpu: [arm64] 397 os: [win32] 398 399 + '@rollup/rollup-win32-ia32-msvc@4.52.5': 400 + resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==} 401 cpu: [ia32] 402 os: [win32] 403 404 + '@rollup/rollup-win32-x64-gnu@4.52.5': 405 + resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==} 406 cpu: [x64] 407 os: [win32] 408 409 + '@rollup/rollup-win32-x64-msvc@4.52.5': 410 + resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==} 411 + cpu: [x64] 412 + os: [win32] 413 414 + '@tauri-apps/api@2.9.0': 415 + resolution: {integrity: sha512-qD5tMjh7utwBk9/5PrTA/aGr3i5QaJ/Mlt7p8NilQ45WgbifUNPyKWsA63iQ8YfQq6R8ajMapU+/Q8nMcPRLNw==} 416 417 + '@tauri-apps/cli-darwin-arm64@2.9.3': 418 + resolution: {integrity: sha512-W8FQXZXQmQ0Fmj9UJXNrm2mLdIaLLriKVY7o/FzmizyIKTPIvHjfZALTNybbpTQRbJvKoGHLrW1DNzAWVDWJYg==} 419 engines: {node: '>= 10'} 420 cpu: [arm64] 421 os: [darwin] 422 423 + '@tauri-apps/cli-darwin-x64@2.9.3': 424 + resolution: {integrity: sha512-zDwu40rlshijt3TU6aRvzPUyVpapsx1sNfOlreDMTaMelQLHl6YoQzSRpLHYwrHrhimxyX2uDqnKIiuGel0Lhg==} 425 engines: {node: '>= 10'} 426 cpu: [x64] 427 os: [darwin] 428 429 + '@tauri-apps/cli-linux-arm-gnueabihf@2.9.3': 430 + resolution: {integrity: sha512-+Oc2OfcTRwYtW93VJqd/HOk77buORwC9IToj/qsEvM7bTMq6Kda4alpZprzwrCHYANSw+zD8PgjJdljTpe4p+g==} 431 engines: {node: '>= 10'} 432 cpu: [arm] 433 os: [linux] 434 435 + '@tauri-apps/cli-linux-arm64-gnu@2.9.3': 436 + resolution: {integrity: sha512-59GqU/J1n9wFyAtleoQOaU0oVIo+kwQynEw4meFDoKRXszKGor6lTsbsS3r0QKLSPbc0o/yYGJhqqCtkYjb/eg==} 437 engines: {node: '>= 10'} 438 cpu: [arm64] 439 os: [linux] 440 441 + '@tauri-apps/cli-linux-arm64-musl@2.9.3': 442 + resolution: {integrity: sha512-fzvG+jEn5/iYGNH6Z2IRMheYFC4pJdXa19BR9fFm6Bdn2cuajRLDKdUcEME/DCtwqclphXtFZTrT4oezY5vI/A==} 443 engines: {node: '>= 10'} 444 cpu: [arm64] 445 os: [linux] 446 447 + '@tauri-apps/cli-linux-riscv64-gnu@2.9.3': 448 + resolution: {integrity: sha512-qV8DZXI/fZwawk6T3Th1g6smiNC2KeQTk7XFgKvqZ6btC01z3UTsQmNGvI602zwm3Ld1TBZb4+rEWu2QmQimmw==} 449 + engines: {node: '>= 10'} 450 + cpu: [riscv64] 451 + os: [linux] 452 + 453 + '@tauri-apps/cli-linux-x64-gnu@2.9.3': 454 + resolution: {integrity: sha512-tquyEONCNRfqEBWEe4eAHnxFN5yY5lFkCuD4w79XLIovUxVftQ684+xLp7zkhntkt4y20SMj2AgJa/+MOlx4Kg==} 455 engines: {node: '>= 10'} 456 cpu: [x64] 457 os: [linux] 458 459 + '@tauri-apps/cli-linux-x64-musl@2.9.3': 460 + resolution: {integrity: sha512-v2cBIB/6ji8DL+aiL5QUykU3ZO8OoJGyx50/qv2HQVzkf85KdaYSis3D/oVRemN/pcDz+vyCnnL3XnzFnDl4JQ==} 461 engines: {node: '>= 10'} 462 cpu: [x64] 463 os: [linux] 464 465 + '@tauri-apps/cli-win32-arm64-msvc@2.9.3': 466 + resolution: {integrity: sha512-ZGvBy7nvrHPbE0HeKp/ioaiw8bNgAHxWnb7JRZ4/G0A+oFj0SeSFxl9k5uU6FKnM7bHM23Gd1oeaDex9g5Fceg==} 467 engines: {node: '>= 10'} 468 cpu: [arm64] 469 os: [win32] 470 471 + '@tauri-apps/cli-win32-ia32-msvc@2.9.3': 472 + resolution: {integrity: sha512-UsgIwOnpCoY9NK9/65QiwgmWVIE80LE7SwRYVblGtmlY9RYfsYvpbItwsovA/AcHMTiO+OCvS/q9yLeqS3m6Sg==} 473 engines: {node: '>= 10'} 474 cpu: [ia32] 475 os: [win32] 476 477 + '@tauri-apps/cli-win32-x64-msvc@2.9.3': 478 + resolution: {integrity: sha512-fmw7NrrHE5m49idCvJAx9T9bsupjdJ0a3p3DPCNCZRGANU6R1tA1L+KTlVuUtdAldX2NqU/9UPo2SCslYKgJHQ==} 479 engines: {node: '>= 10'} 480 cpu: [x64] 481 os: [win32] 482 483 + '@tauri-apps/cli@2.9.3': 484 + resolution: {integrity: sha512-BQ7iLUXTQcyG1PpzLWeVSmBCedYDpnA/6Cm/kRFGtqjTf/eVUlyYO5S2ee07tLum3nWwDBWTGFZeruO8yEukfA==} 485 engines: {node: '>= 10'} 486 hasBin: true 487 488 + '@tauri-apps/plugin-deep-link@2.4.5': 489 + resolution: {integrity: sha512-Zf2RTj1D9IQQ45/jqW8XTKvql24HqlPjcpv0mV/O2jHQkNe11HOTZBVj6IK37qs+MWV7xZzcmazx/QVZnhAwaQ==} 490 491 + '@tauri-apps/plugin-http@2.5.4': 492 + resolution: {integrity: sha512-/i4U/9za3mrytTgfRn5RHneKubZE/dwRmshYwyMvNRlkWjvu1m4Ma72kcbVJMZFGXpkbl+qLyWMGrihtWB76Zg==} 493 494 + '@tauri-apps/plugin-process@2.3.1': 495 + resolution: {integrity: sha512-nCa4fGVaDL/B9ai03VyPOjfAHRHSBz5v6F/ObsB73r/dA3MHHhZtldaDMIc0V/pnUw9ehzr2iEG+XkSEyC0JJA==} 496 497 + '@tauri-apps/plugin-shell@2.3.3': 498 + resolution: {integrity: sha512-Xod+pRcFxmOWFWEnqH5yZcA7qwAMuaaDkMR1Sply+F8VfBj++CGnj2xf5UoialmjZ2Cvd8qrvSCbU+7GgNVsKQ==} 499 500 '@types/animejs@3.1.13': 501 resolution: {integrity: sha512-yWg9l1z7CAv/TKpty4/vupEh24jDGUZXv4r26StRkpUPQm04ztJaftgpto8vwdFs8SiTq6XfaPKCSI+wjzNMvQ==} ··· 515 '@types/estree@1.0.8': 516 resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 517 518 + animejs@4.2.2: 519 + resolution: {integrity: sha512-Ys3RuvLdAeI14fsdKCQy7ytu4057QX6Bb7m4jwmfd6iKmUmLquTwk1ut0e4NtRQgCeq/s2Lv5+oMBjz6c7ZuIg==} 520 521 + babel-plugin-jsx-dom-expressions@0.40.3: 522 + resolution: {integrity: sha512-5HOwwt0BYiv/zxl7j8Pf2bGL6rDXfV6nUhLs8ygBX+EFJXzBPHM/euj9j/6deMZ6wa52Wb2PBaAV5U/jKwIY1w==} 523 peerDependencies: 524 '@babel/core': ^7.20.12 525 526 + babel-preset-solid@1.9.10: 527 + resolution: {integrity: sha512-HCelrgua/Y+kqO8RyL04JBWS/cVdrtUv/h45GntgQY+cJl4eBcKkCDV3TdMjtKx1nXwRaR9QXslM/Npm1dxdZQ==} 528 peerDependencies: 529 '@babel/core': ^7.0.0 530 + solid-js: ^1.9.10 531 peerDependenciesMeta: 532 solid-js: 533 optional: true 534 535 + baseline-browser-mapping@2.8.25: 536 + resolution: {integrity: sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA==} 537 + hasBin: true 538 + 539 + browserslist@4.27.0: 540 + resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==} 541 engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 542 hasBin: true 543 544 + caniuse-lite@1.0.30001754: 545 + resolution: {integrity: sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==} 546 547 convert-source-map@2.0.0: 548 resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} ··· 550 csstype@3.1.3: 551 resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 552 553 + debug@4.4.3: 554 + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 555 engines: {node: '>=6.0'} 556 peerDependencies: 557 supports-color: '*' ··· 559 supports-color: 560 optional: true 561 562 + electron-to-chromium@1.5.248: 563 + resolution: {integrity: sha512-zsur2yunphlyAO4gIubdJEXCK6KOVvtpiuDfCIqbM9FjcnMYiyn0ICa3hWfPr0nc41zcLWobgy1iL7VvoOyA2Q==} 564 565 entities@6.0.1: 566 resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} 567 engines: {node: '>=0.12'} 568 569 + esbuild@0.25.12: 570 + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} 571 + engines: {node: '>=18'} 572 hasBin: true 573 574 escalade@3.2.0: 575 resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 576 engines: {node: '>=6'} 577 578 + fdir@6.5.0: 579 + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 580 + engines: {node: '>=12.0.0'} 581 + peerDependencies: 582 + picomatch: ^3 || ^4 583 + peerDependenciesMeta: 584 + picomatch: 585 + optional: true 586 + 587 fsevents@2.3.3: 588 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 589 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} ··· 628 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 629 hasBin: true 630 631 + node-releases@2.0.27: 632 + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} 633 634 parse5@7.3.0: 635 resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} ··· 637 picocolors@1.1.1: 638 resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 639 640 + picomatch@4.0.3: 641 + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 642 + engines: {node: '>=12'} 643 + 644 postcss@8.5.6: 645 resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 646 engines: {node: ^10 || ^12 || >=14} 647 648 + rollup@4.52.5: 649 + resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==} 650 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 651 hasBin: true 652 ··· 654 resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 655 hasBin: true 656 657 + seroval-plugins@1.3.3: 658 + resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==} 659 engines: {node: '>=10'} 660 peerDependencies: 661 seroval: ^1.0 ··· 664 resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} 665 engines: {node: '>=10'} 666 667 + solid-js@1.9.10: 668 + resolution: {integrity: sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew==} 669 670 solid-refresh@0.6.3: 671 resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} ··· 676 resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 677 engines: {node: '>=0.10.0'} 678 679 + tinyglobby@0.2.15: 680 + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 681 + engines: {node: '>=12.0.0'} 682 + 683 + typescript@5.9.3: 684 + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 685 engines: {node: '>=14.17'} 686 hasBin: true 687 688 + update-browserslist-db@1.1.4: 689 + resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} 690 hasBin: true 691 peerDependencies: 692 browserslist: '>= 4.21.0' 693 694 + vite-plugin-solid@2.11.10: 695 + resolution: {integrity: sha512-Yr1dQybmtDtDAHkii6hXuc1oVH9CPcS/Zb2jN/P36qqcrkNnVPsMTzQ06jyzFPFjj3U1IYKMVt/9ZqcwGCEbjw==} 696 peerDependencies: 697 '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* 698 solid-js: ^1.7.2 ··· 701 '@testing-library/jest-dom': 702 optional: true 703 704 + vite@7.2.2: 705 + resolution: {integrity: sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==} 706 + engines: {node: ^20.19.0 || >=22.12.0} 707 hasBin: true 708 peerDependencies: 709 + '@types/node': ^20.19.0 || >=22.12.0 710 + jiti: '>=1.21.0' 711 + less: ^4.0.0 712 lightningcss: ^1.21.0 713 + sass: ^1.70.0 714 + sass-embedded: ^1.70.0 715 + stylus: '>=0.54.8' 716 + sugarss: ^5.0.0 717 + terser: ^5.16.0 718 + tsx: ^4.8.1 719 + yaml: ^2.4.2 720 peerDependenciesMeta: 721 '@types/node': 722 + optional: true 723 + jiti: 724 optional: true 725 less: 726 optional: true ··· 736 optional: true 737 terser: 738 optional: true 739 + tsx: 740 + optional: true 741 + yaml: 742 + optional: true 743 744 vitefu@1.1.1: 745 resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} ··· 754 755 snapshots: 756 757 '@babel/code-frame@7.27.1': 758 dependencies: 759 + '@babel/helper-validator-identifier': 7.28.5 760 js-tokens: 4.0.0 761 picocolors: 1.1.1 762 763 + '@babel/compat-data@7.28.5': {} 764 765 + '@babel/core@7.28.5': 766 dependencies: 767 '@babel/code-frame': 7.27.1 768 + '@babel/generator': 7.28.5 769 '@babel/helper-compilation-targets': 7.27.2 770 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) 771 + '@babel/helpers': 7.28.4 772 + '@babel/parser': 7.28.5 773 '@babel/template': 7.27.2 774 + '@babel/traverse': 7.28.5 775 + '@babel/types': 7.28.5 776 + '@jridgewell/remapping': 2.3.5 777 convert-source-map: 2.0.0 778 + debug: 4.4.3 779 gensync: 1.0.0-beta.2 780 json5: 2.2.3 781 semver: 6.3.1 782 transitivePeerDependencies: 783 - supports-color 784 785 + '@babel/generator@7.28.5': 786 dependencies: 787 + '@babel/parser': 7.28.5 788 + '@babel/types': 7.28.5 789 '@jridgewell/gen-mapping': 0.3.13 790 + '@jridgewell/trace-mapping': 0.3.31 791 jsesc: 3.1.0 792 793 '@babel/helper-compilation-targets@7.27.2': 794 dependencies: 795 + '@babel/compat-data': 7.28.5 796 '@babel/helper-validator-option': 7.27.1 797 + browserslist: 4.27.0 798 lru-cache: 5.1.1 799 semver: 6.3.1 800 ··· 802 803 '@babel/helper-module-imports@7.18.6': 804 dependencies: 805 + '@babel/types': 7.28.5 806 807 '@babel/helper-module-imports@7.27.1': 808 dependencies: 809 + '@babel/traverse': 7.28.5 810 + '@babel/types': 7.28.5 811 transitivePeerDependencies: 812 - supports-color 813 814 + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': 815 dependencies: 816 + '@babel/core': 7.28.5 817 '@babel/helper-module-imports': 7.27.1 818 + '@babel/helper-validator-identifier': 7.28.5 819 + '@babel/traverse': 7.28.5 820 transitivePeerDependencies: 821 - supports-color 822 ··· 824 825 '@babel/helper-string-parser@7.27.1': {} 826 827 + '@babel/helper-validator-identifier@7.28.5': {} 828 829 '@babel/helper-validator-option@7.27.1': {} 830 831 + '@babel/helpers@7.28.4': 832 dependencies: 833 '@babel/template': 7.27.2 834 + '@babel/types': 7.28.5 835 836 + '@babel/parser@7.28.5': 837 dependencies: 838 + '@babel/types': 7.28.5 839 840 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': 841 dependencies: 842 + '@babel/core': 7.28.5 843 '@babel/helper-plugin-utils': 7.27.1 844 845 '@babel/template@7.27.2': 846 dependencies: 847 '@babel/code-frame': 7.27.1 848 + '@babel/parser': 7.28.5 849 + '@babel/types': 7.28.5 850 851 + '@babel/traverse@7.28.5': 852 dependencies: 853 '@babel/code-frame': 7.27.1 854 + '@babel/generator': 7.28.5 855 '@babel/helper-globals': 7.28.0 856 + '@babel/parser': 7.28.5 857 '@babel/template': 7.27.2 858 + '@babel/types': 7.28.5 859 + debug: 4.4.3 860 transitivePeerDependencies: 861 - supports-color 862 863 + '@babel/types@7.28.5': 864 dependencies: 865 '@babel/helper-string-parser': 7.27.1 866 + '@babel/helper-validator-identifier': 7.28.5 867 + 868 + '@esbuild/aix-ppc64@0.25.12': 869 + optional: true 870 + 871 + '@esbuild/android-arm64@0.25.12': 872 + optional: true 873 + 874 + '@esbuild/android-arm@0.25.12': 875 + optional: true 876 877 + '@esbuild/android-x64@0.25.12': 878 optional: true 879 880 + '@esbuild/darwin-arm64@0.25.12': 881 optional: true 882 883 + '@esbuild/darwin-x64@0.25.12': 884 optional: true 885 886 + '@esbuild/freebsd-arm64@0.25.12': 887 optional: true 888 889 + '@esbuild/freebsd-x64@0.25.12': 890 optional: true 891 892 + '@esbuild/linux-arm64@0.25.12': 893 optional: true 894 895 + '@esbuild/linux-arm@0.25.12': 896 optional: true 897 898 + '@esbuild/linux-ia32@0.25.12': 899 optional: true 900 901 + '@esbuild/linux-loong64@0.25.12': 902 optional: true 903 904 + '@esbuild/linux-mips64el@0.25.12': 905 optional: true 906 907 + '@esbuild/linux-ppc64@0.25.12': 908 optional: true 909 910 + '@esbuild/linux-riscv64@0.25.12': 911 optional: true 912 913 + '@esbuild/linux-s390x@0.25.12': 914 optional: true 915 916 + '@esbuild/linux-x64@0.25.12': 917 optional: true 918 919 + '@esbuild/netbsd-arm64@0.25.12': 920 optional: true 921 922 + '@esbuild/netbsd-x64@0.25.12': 923 optional: true 924 925 + '@esbuild/openbsd-arm64@0.25.12': 926 optional: true 927 928 + '@esbuild/openbsd-x64@0.25.12': 929 optional: true 930 931 + '@esbuild/openharmony-arm64@0.25.12': 932 optional: true 933 934 + '@esbuild/sunos-x64@0.25.12': 935 optional: true 936 937 + '@esbuild/win32-arm64@0.25.12': 938 optional: true 939 940 + '@esbuild/win32-ia32@0.25.12': 941 optional: true 942 943 + '@esbuild/win32-x64@0.25.12': 944 optional: true 945 946 '@jridgewell/gen-mapping@0.3.13': 947 dependencies: 948 '@jridgewell/sourcemap-codec': 1.5.5 949 + '@jridgewell/trace-mapping': 0.3.31 950 + 951 + '@jridgewell/remapping@2.3.5': 952 + dependencies: 953 + '@jridgewell/gen-mapping': 0.3.13 954 + '@jridgewell/trace-mapping': 0.3.31 955 956 '@jridgewell/resolve-uri@3.1.2': {} 957 958 '@jridgewell/sourcemap-codec@1.5.5': {} 959 960 + '@jridgewell/trace-mapping@0.3.31': 961 dependencies: 962 '@jridgewell/resolve-uri': 3.1.2 963 '@jridgewell/sourcemap-codec': 1.5.5 964 965 + '@rollup/rollup-android-arm-eabi@4.52.5': 966 optional: true 967 968 + '@rollup/rollup-android-arm64@4.52.5': 969 optional: true 970 971 + '@rollup/rollup-darwin-arm64@4.52.5': 972 optional: true 973 974 + '@rollup/rollup-darwin-x64@4.52.5': 975 optional: true 976 977 + '@rollup/rollup-freebsd-arm64@4.52.5': 978 optional: true 979 980 + '@rollup/rollup-freebsd-x64@4.52.5': 981 optional: true 982 983 + '@rollup/rollup-linux-arm-gnueabihf@4.52.5': 984 optional: true 985 986 + '@rollup/rollup-linux-arm-musleabihf@4.52.5': 987 optional: true 988 989 + '@rollup/rollup-linux-arm64-gnu@4.52.5': 990 optional: true 991 992 + '@rollup/rollup-linux-arm64-musl@4.52.5': 993 optional: true 994 995 + '@rollup/rollup-linux-loong64-gnu@4.52.5': 996 optional: true 997 998 + '@rollup/rollup-linux-ppc64-gnu@4.52.5': 999 optional: true 1000 1001 + '@rollup/rollup-linux-riscv64-gnu@4.52.5': 1002 optional: true 1003 1004 + '@rollup/rollup-linux-riscv64-musl@4.52.5': 1005 optional: true 1006 1007 + '@rollup/rollup-linux-s390x-gnu@4.52.5': 1008 optional: true 1009 1010 + '@rollup/rollup-linux-x64-gnu@4.52.5': 1011 optional: true 1012 1013 + '@rollup/rollup-linux-x64-musl@4.52.5': 1014 optional: true 1015 1016 + '@rollup/rollup-openharmony-arm64@4.52.5': 1017 optional: true 1018 1019 + '@rollup/rollup-win32-arm64-msvc@4.52.5': 1020 optional: true 1021 1022 + '@rollup/rollup-win32-ia32-msvc@4.52.5': 1023 optional: true 1024 1025 + '@rollup/rollup-win32-x64-gnu@4.52.5': 1026 + optional: true 1027 1028 + '@rollup/rollup-win32-x64-msvc@4.52.5': 1029 + optional: true 1030 1031 + '@tauri-apps/api@2.9.0': {} 1032 + 1033 + '@tauri-apps/cli-darwin-arm64@2.9.3': 1034 optional: true 1035 1036 + '@tauri-apps/cli-darwin-x64@2.9.3': 1037 + optional: true 1038 + 1039 + '@tauri-apps/cli-linux-arm-gnueabihf@2.9.3': 1040 optional: true 1041 1042 + '@tauri-apps/cli-linux-arm64-gnu@2.9.3': 1043 optional: true 1044 1045 + '@tauri-apps/cli-linux-arm64-musl@2.9.3': 1046 optional: true 1047 1048 + '@tauri-apps/cli-linux-riscv64-gnu@2.9.3': 1049 optional: true 1050 1051 + '@tauri-apps/cli-linux-x64-gnu@2.9.3': 1052 optional: true 1053 1054 + '@tauri-apps/cli-linux-x64-musl@2.9.3': 1055 optional: true 1056 1057 + '@tauri-apps/cli-win32-arm64-msvc@2.9.3': 1058 optional: true 1059 1060 + '@tauri-apps/cli-win32-ia32-msvc@2.9.3': 1061 optional: true 1062 1063 + '@tauri-apps/cli-win32-x64-msvc@2.9.3': 1064 optional: true 1065 1066 + '@tauri-apps/cli@2.9.3': 1067 optionalDependencies: 1068 + '@tauri-apps/cli-darwin-arm64': 2.9.3 1069 + '@tauri-apps/cli-darwin-x64': 2.9.3 1070 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.9.3 1071 + '@tauri-apps/cli-linux-arm64-gnu': 2.9.3 1072 + '@tauri-apps/cli-linux-arm64-musl': 2.9.3 1073 + '@tauri-apps/cli-linux-riscv64-gnu': 2.9.3 1074 + '@tauri-apps/cli-linux-x64-gnu': 2.9.3 1075 + '@tauri-apps/cli-linux-x64-musl': 2.9.3 1076 + '@tauri-apps/cli-win32-arm64-msvc': 2.9.3 1077 + '@tauri-apps/cli-win32-ia32-msvc': 2.9.3 1078 + '@tauri-apps/cli-win32-x64-msvc': 2.9.3 1079 1080 + '@tauri-apps/plugin-deep-link@2.4.5': 1081 dependencies: 1082 + '@tauri-apps/api': 2.9.0 1083 1084 + '@tauri-apps/plugin-http@2.5.4': 1085 dependencies: 1086 + '@tauri-apps/api': 2.9.0 1087 1088 + '@tauri-apps/plugin-process@2.3.1': 1089 dependencies: 1090 + '@tauri-apps/api': 2.9.0 1091 1092 + '@tauri-apps/plugin-shell@2.3.3': 1093 dependencies: 1094 + '@tauri-apps/api': 2.9.0 1095 1096 '@types/animejs@3.1.13': {} 1097 1098 '@types/babel__core@7.20.5': 1099 dependencies: 1100 + '@babel/parser': 7.28.5 1101 + '@babel/types': 7.28.5 1102 '@types/babel__generator': 7.27.0 1103 '@types/babel__template': 7.4.4 1104 '@types/babel__traverse': 7.28.0 1105 1106 '@types/babel__generator@7.27.0': 1107 dependencies: 1108 + '@babel/types': 7.28.5 1109 1110 '@types/babel__template@7.4.4': 1111 dependencies: 1112 + '@babel/parser': 7.28.5 1113 + '@babel/types': 7.28.5 1114 1115 '@types/babel__traverse@7.28.0': 1116 dependencies: 1117 + '@babel/types': 7.28.5 1118 1119 '@types/estree@1.0.8': {} 1120 1121 + animejs@4.2.2: {} 1122 1123 + babel-plugin-jsx-dom-expressions@0.40.3(@babel/core@7.28.5): 1124 dependencies: 1125 + '@babel/core': 7.28.5 1126 '@babel/helper-module-imports': 7.18.6 1127 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) 1128 + '@babel/types': 7.28.5 1129 html-entities: 2.3.3 1130 parse5: 7.3.0 1131 1132 + babel-preset-solid@1.9.10(@babel/core@7.28.5)(solid-js@1.9.10): 1133 dependencies: 1134 + '@babel/core': 7.28.5 1135 + babel-plugin-jsx-dom-expressions: 0.40.3(@babel/core@7.28.5) 1136 optionalDependencies: 1137 + solid-js: 1.9.10 1138 1139 + baseline-browser-mapping@2.8.25: {} 1140 + 1141 + browserslist@4.27.0: 1142 dependencies: 1143 + baseline-browser-mapping: 2.8.25 1144 + caniuse-lite: 1.0.30001754 1145 + electron-to-chromium: 1.5.248 1146 + node-releases: 2.0.27 1147 + update-browserslist-db: 1.1.4(browserslist@4.27.0) 1148 1149 + caniuse-lite@1.0.30001754: {} 1150 1151 convert-source-map@2.0.0: {} 1152 1153 csstype@3.1.3: {} 1154 1155 + debug@4.4.3: 1156 dependencies: 1157 ms: 2.1.3 1158 1159 + electron-to-chromium@1.5.248: {} 1160 1161 entities@6.0.1: {} 1162 1163 + esbuild@0.25.12: 1164 optionalDependencies: 1165 + '@esbuild/aix-ppc64': 0.25.12 1166 + '@esbuild/android-arm': 0.25.12 1167 + '@esbuild/android-arm64': 0.25.12 1168 + '@esbuild/android-x64': 0.25.12 1169 + '@esbuild/darwin-arm64': 0.25.12 1170 + '@esbuild/darwin-x64': 0.25.12 1171 + '@esbuild/freebsd-arm64': 0.25.12 1172 + '@esbuild/freebsd-x64': 0.25.12 1173 + '@esbuild/linux-arm': 0.25.12 1174 + '@esbuild/linux-arm64': 0.25.12 1175 + '@esbuild/linux-ia32': 0.25.12 1176 + '@esbuild/linux-loong64': 0.25.12 1177 + '@esbuild/linux-mips64el': 0.25.12 1178 + '@esbuild/linux-ppc64': 0.25.12 1179 + '@esbuild/linux-riscv64': 0.25.12 1180 + '@esbuild/linux-s390x': 0.25.12 1181 + '@esbuild/linux-x64': 0.25.12 1182 + '@esbuild/netbsd-arm64': 0.25.12 1183 + '@esbuild/netbsd-x64': 0.25.12 1184 + '@esbuild/openbsd-arm64': 0.25.12 1185 + '@esbuild/openbsd-x64': 0.25.12 1186 + '@esbuild/openharmony-arm64': 0.25.12 1187 + '@esbuild/sunos-x64': 0.25.12 1188 + '@esbuild/win32-arm64': 0.25.12 1189 + '@esbuild/win32-ia32': 0.25.12 1190 + '@esbuild/win32-x64': 0.25.12 1191 1192 escalade@3.2.0: {} 1193 + 1194 + fdir@6.5.0(picomatch@4.0.3): 1195 + optionalDependencies: 1196 + picomatch: 4.0.3 1197 1198 fsevents@2.3.3: 1199 optional: true ··· 1222 1223 nanoid@3.3.11: {} 1224 1225 + node-releases@2.0.27: {} 1226 1227 parse5@7.3.0: 1228 dependencies: ··· 1230 1231 picocolors@1.1.1: {} 1232 1233 + picomatch@4.0.3: {} 1234 + 1235 postcss@8.5.6: 1236 dependencies: 1237 nanoid: 3.3.11 1238 picocolors: 1.1.1 1239 source-map-js: 1.2.1 1240 1241 + rollup@4.52.5: 1242 dependencies: 1243 '@types/estree': 1.0.8 1244 optionalDependencies: 1245 + '@rollup/rollup-android-arm-eabi': 4.52.5 1246 + '@rollup/rollup-android-arm64': 4.52.5 1247 + '@rollup/rollup-darwin-arm64': 4.52.5 1248 + '@rollup/rollup-darwin-x64': 4.52.5 1249 + '@rollup/rollup-freebsd-arm64': 4.52.5 1250 + '@rollup/rollup-freebsd-x64': 4.52.5 1251 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.5 1252 + '@rollup/rollup-linux-arm-musleabihf': 4.52.5 1253 + '@rollup/rollup-linux-arm64-gnu': 4.52.5 1254 + '@rollup/rollup-linux-arm64-musl': 4.52.5 1255 + '@rollup/rollup-linux-loong64-gnu': 4.52.5 1256 + '@rollup/rollup-linux-ppc64-gnu': 4.52.5 1257 + '@rollup/rollup-linux-riscv64-gnu': 4.52.5 1258 + '@rollup/rollup-linux-riscv64-musl': 4.52.5 1259 + '@rollup/rollup-linux-s390x-gnu': 4.52.5 1260 + '@rollup/rollup-linux-x64-gnu': 4.52.5 1261 + '@rollup/rollup-linux-x64-musl': 4.52.5 1262 + '@rollup/rollup-openharmony-arm64': 4.52.5 1263 + '@rollup/rollup-win32-arm64-msvc': 4.52.5 1264 + '@rollup/rollup-win32-ia32-msvc': 4.52.5 1265 + '@rollup/rollup-win32-x64-gnu': 4.52.5 1266 + '@rollup/rollup-win32-x64-msvc': 4.52.5 1267 fsevents: 2.3.3 1268 1269 semver@6.3.1: {} 1270 1271 + seroval-plugins@1.3.3(seroval@1.3.2): 1272 dependencies: 1273 seroval: 1.3.2 1274 1275 seroval@1.3.2: {} 1276 1277 + solid-js@1.9.10: 1278 dependencies: 1279 csstype: 3.1.3 1280 seroval: 1.3.2 1281 + seroval-plugins: 1.3.3(seroval@1.3.2) 1282 1283 + solid-refresh@0.6.3(solid-js@1.9.10): 1284 dependencies: 1285 + '@babel/generator': 7.28.5 1286 '@babel/helper-module-imports': 7.27.1 1287 + '@babel/types': 7.28.5 1288 + solid-js: 1.9.10 1289 transitivePeerDependencies: 1290 - supports-color 1291 1292 source-map-js@1.2.1: {} 1293 1294 + tinyglobby@0.2.15: 1295 + dependencies: 1296 + fdir: 6.5.0(picomatch@4.0.3) 1297 + picomatch: 4.0.3 1298 + 1299 + typescript@5.9.3: {} 1300 1301 + update-browserslist-db@1.1.4(browserslist@4.27.0): 1302 dependencies: 1303 + browserslist: 4.27.0 1304 escalade: 3.2.0 1305 picocolors: 1.1.1 1306 1307 + vite-plugin-solid@2.11.10(solid-js@1.9.10)(vite@7.2.2): 1308 dependencies: 1309 + '@babel/core': 7.28.5 1310 '@types/babel__core': 7.20.5 1311 + babel-preset-solid: 1.9.10(@babel/core@7.28.5)(solid-js@1.9.10) 1312 merge-anything: 5.1.7 1313 + solid-js: 1.9.10 1314 + solid-refresh: 0.6.3(solid-js@1.9.10) 1315 + vite: 7.2.2 1316 + vitefu: 1.1.1(vite@7.2.2) 1317 transitivePeerDependencies: 1318 - supports-color 1319 1320 + vite@7.2.2: 1321 dependencies: 1322 + esbuild: 0.25.12 1323 + fdir: 6.5.0(picomatch@4.0.3) 1324 + picomatch: 4.0.3 1325 postcss: 8.5.6 1326 + rollup: 4.52.5 1327 + tinyglobby: 0.2.15 1328 optionalDependencies: 1329 fsevents: 2.3.3 1330 1331 + vitefu@1.1.1(vite@7.2.2): 1332 optionalDependencies: 1333 + vite: 7.2.2 1334 1335 yallist@3.1.1: {}
+1 -1
public/icon/angle-down-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"/></svg>
+1 -1
public/icon/angle-up-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"/></svg>
+1 -1
public/icon/arrow-left-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"/></svg>
+1 -1
public/icon/arrow-right-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"/></svg>
+1 -1
public/icon/arrows-rotate-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H352c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V432c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H160c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H352c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V432c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H160c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"/></svg>
+1 -1
public/icon/caret-down-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"/></svg>
+1 -1
public/icon/check-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>
+1 -1
public/icon/clock-regular.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg>
+1 -1
public/icon/copy-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M208 0H332.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128h80v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M208 0H332.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128h80v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z"/></svg>
+1
public/icon/download-solid-full.svg
···
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#fff" d="M352 96C352 78.3 337.7 64 320 64C302.3 64 288 78.3 288 96L288 306.7L246.6 265.3C234.1 252.8 213.8 252.8 201.3 265.3C188.8 277.8 188.8 298.1 201.3 310.6L297.3 406.6C309.8 419.1 330.1 419.1 342.6 406.6L438.6 310.6C451.1 298.1 451.1 277.8 438.6 265.3C426.1 252.8 405.8 252.8 393.3 265.3L352 306.7L352 96zM160 384C124.7 384 96 412.7 96 448L96 480C96 515.3 124.7 544 160 544L480 544C515.3 544 544 515.3 544 480L544 448C544 412.7 515.3 384 480 384L433.1 384L376.5 440.6C345.3 471.8 294.6 471.8 263.4 440.6L206.9 384L160 384zM464 440C477.3 440 488 450.7 488 464C488 477.3 477.3 488 464 488C450.7 488 440 477.3 440 464C440 450.7 450.7 440 464 440z"/></svg>
+1 -1
public/icon/gear-solid-full.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M259.1 73.5C262.1 58.7 275.2 48 290.4 48L350.2 48C365.4 48 378.5 58.7 381.5 73.5L396 143.5C410.1 149.5 423.3 157.2 435.3 166.3L503.1 143.8C517.5 139 533.3 145 540.9 158.2L570.8 210C578.4 223.2 575.7 239.8 564.3 249.9L511 297.3C511.9 304.7 512.3 312.3 512.3 320C512.3 327.7 511.8 335.3 511 342.7L564.4 390.2C575.8 400.3 578.4 417 570.9 430.1L541 481.9C533.4 495 517.6 501.1 503.2 496.3L435.4 473.8C423.3 482.9 410.1 490.5 396.1 496.6L381.7 566.5C378.6 581.4 365.5 592 350.4 592L290.6 592C275.4 592 262.3 581.3 259.3 566.5L244.9 496.6C230.8 490.6 217.7 482.9 205.6 473.8L137.5 496.3C123.1 501.1 107.3 495.1 99.7 481.9L69.8 430.1C62.2 416.9 64.9 400.3 76.3 390.2L129.7 342.7C128.8 335.3 128.4 327.7 128.4 320C128.4 312.3 128.9 304.7 129.7 297.3L76.3 249.8C64.9 239.7 62.3 223 69.8 209.9L99.7 158.1C107.3 144.9 123.1 138.9 137.5 143.7L205.3 166.2C217.4 157.1 230.6 149.5 244.6 143.4L259.1 73.5zM320.3 400C364.5 399.8 400.2 363.9 400 319.7C399.8 275.5 363.9 239.8 319.7 240C275.5 240.2 239.8 276.1 240 320.3C240.2 364.5 276.1 400.2 320.3 400z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#fff" d="M259.1 73.5C262.1 58.7 275.2 48 290.4 48L350.2 48C365.4 48 378.5 58.7 381.5 73.5L396 143.5C410.1 149.5 423.3 157.2 435.3 166.3L503.1 143.8C517.5 139 533.3 145 540.9 158.2L570.8 210C578.4 223.2 575.7 239.8 564.3 249.9L511 297.3C511.9 304.7 512.3 312.3 512.3 320C512.3 327.7 511.8 335.3 511 342.7L564.4 390.2C575.8 400.3 578.4 417 570.9 430.1L541 481.9C533.4 495 517.6 501.1 503.2 496.3L435.4 473.8C423.3 482.9 410.1 490.5 396.1 496.6L381.7 566.5C378.6 581.4 365.5 592 350.4 592L290.6 592C275.4 592 262.3 581.3 259.3 566.5L244.9 496.6C230.8 490.6 217.7 482.9 205.6 473.8L137.5 496.3C123.1 501.1 107.3 495.1 99.7 481.9L69.8 430.1C62.2 416.9 64.9 400.3 76.3 390.2L129.7 342.7C128.8 335.3 128.4 327.7 128.4 320C128.4 312.3 128.9 304.7 129.7 297.3L76.3 249.8C64.9 239.7 62.3 223 69.8 209.9L99.7 158.1C107.3 144.9 123.1 138.9 137.5 143.7L205.3 166.2C217.4 157.1 230.6 149.5 244.6 143.4L259.1 73.5zM320.3 400C364.5 399.8 400.2 363.9 400 319.7C399.8 275.5 363.9 239.8 319.7 240C275.5 240.2 239.8 276.1 240 320.3C240.2 364.5 276.1 400.2 320.3 400z"/></svg>
+1
public/icon/layer-group-solid-full.svg
···
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#fff" d="M296.5 69.2C311.4 62.3 328.6 62.3 343.5 69.2L562.1 170.2C570.6 174.1 576 182.6 576 192C576 201.4 570.6 209.9 562.1 213.8L343.5 314.8C328.6 321.7 311.4 321.7 296.5 314.8L77.9 213.8C69.4 209.8 64 201.3 64 192C64 182.7 69.4 174.1 77.9 170.2L296.5 69.2zM112.1 282.4L276.4 358.3C304.1 371.1 336 371.1 363.7 358.3L528 282.4L562.1 298.2C570.6 302.1 576 310.6 576 320C576 329.4 570.6 337.9 562.1 341.8L343.5 442.8C328.6 449.7 311.4 449.7 296.5 442.8L77.9 341.8C69.4 337.8 64 329.3 64 320C64 310.7 69.4 302.1 77.9 298.2L112 282.4zM77.9 426.2L112 410.4L276.3 486.3C304 499.1 335.9 499.1 363.6 486.3L527.9 410.4L562 426.2C570.5 430.1 575.9 438.6 575.9 448C575.9 457.4 570.5 465.9 562 469.8L343.4 570.8C328.5 577.7 311.3 577.7 296.4 570.8L77.9 469.8C69.4 465.8 64 457.3 64 448C64 438.7 69.4 430.1 77.9 426.2z"/></svg>
+1 -1
public/icon/minus-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"/></svg>
+1 -1
public/icon/sliders-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z"/></svg>
+1 -1
public/icon/square-regular.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M384 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M384 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/></svg>
+1 -1
public/icon/trash-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"/></svg>
+1 -1
public/icon/user-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#fff" d="M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z"/></svg>
+1 -1
public/icon/x-solid.svg
··· 1 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z"/></svg>
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z"/></svg>
+25 -2
src/Components/App.tsx
··· 1 - import { onMount } from "solid-js"; 2 3 import PhotoList from "./PhotoList"; 4 import PhotoViewer from "./PhotoViewer"; 5 import SettingsMenu from "./SettingsMenu"; 6 - import { utils } from "animejs"; 7 8 let App = () => { 9 onMount(() => { 10 utils.set('.settings', 11 { ··· 13 opacity: 0, 14 translateX: '500px' 15 }) 16 }) 17 18 return ( ··· 23 <SettingsMenu /> 24 25 <div class="copy-notif">Image Copied!</div> 26 </div> 27 ); 28 }
··· 1 + import { createSignal, onMount } from "solid-js"; 2 3 import PhotoList from "./PhotoList"; 4 import PhotoViewer from "./PhotoViewer"; 5 import SettingsMenu from "./SettingsMenu"; 6 + import { animate, utils } from "animejs"; 7 + import { listen } from "@tauri-apps/api/event"; 8 9 let App = () => { 10 + let [ errorText, setErrorText ] = createSignal(''); 11 + 12 onMount(() => { 13 utils.set('.settings', 14 { ··· 16 opacity: 0, 17 translateX: '500px' 18 }) 19 + 20 + listen<string>('vrcpm-error', ( ev ) => { 21 + setErrorText(ev.payload); 22 + 23 + utils.set('.error-notif', { translateX: '-50%', translateY: '-100px' }); 24 + animate('.error-notif', { 25 + ease: 'outElastic', 26 + opacity: 1, 27 + translateY: '0px' 28 + }); 29 + 30 + setTimeout(() => { 31 + animate('.error-notif', { 32 + ease: 'outElastic', 33 + opacity: 0, 34 + translateY: '-100px' 35 + }); 36 + }, 2000); 37 + }); 38 }) 39 40 return ( ··· 45 <SettingsMenu /> 46 47 <div class="copy-notif">Image Copied!</div> 48 + <div class="error-notif">{ errorText() }</div> 49 </div> 50 ); 51 }
+18 -2
src/Components/Managers/PhotoListRenderingManager.tsx
··· 5 6 const MONTHS = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; 7 8 export class PhotoListRenderingManager{ 9 private _layout: PhotoListRow[] = []; 10 private _canvas!: HTMLCanvasElement; ··· 60 61 public Render( ctx: CanvasRenderingContext2D, canvas: HTMLCanvasElement, scroll: number ){ 62 let currentY = 0; 63 - 64 // Loop through each row 65 for (let i = 0; i < this._layout.length; i++) { 66 let row = this._layout[i]; ··· 124 // ctx.strokeStyle = '#f00'; 125 // ctx.strokeRect((rowXPos - row.Width / 2) + canvas.width / 2, currentY - scroll, photo.scaledWidth!, row.Height); 126 127 - if(!photo.loaded) 128 // If the photo is not loaded, start a new task and load it in that task 129 setTimeout(() => photo.loadImage(), 1); 130 else{ ··· 136 // Photo is already loaded so we should draw it on the application 137 ctx.globalAlpha = photo.frames / 100; 138 ctx.drawImage(photo.image!, (rowXPos - row.Width / 2) + canvas.width / 2, currentY - scroll, photo.scaledWidth!, photo.scaledHeight!); 139 140 if(photo.frames < 100) 141 photo.frames += 10;
··· 5 6 const MONTHS = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; 7 8 + let multilayerIcon = new Image(); 9 + multilayerIcon.src = '/icon/layer-group-solid-full.svg'; 10 + 11 export class PhotoListRenderingManager{ 12 private _layout: PhotoListRow[] = []; 13 private _canvas!: HTMLCanvasElement; ··· 63 64 public Render( ctx: CanvasRenderingContext2D, canvas: HTMLCanvasElement, scroll: number ){ 65 let currentY = 0; 66 + 67 // Loop through each row 68 for (let i = 0; i < this._layout.length; i++) { 69 let row = this._layout[i]; ··· 127 // ctx.strokeStyle = '#f00'; 128 // ctx.strokeRect((rowXPos - row.Width / 2) + canvas.width / 2, currentY - scroll, photo.scaledWidth!, row.Height); 129 130 + if(photo.error){ 131 + ctx.fillStyle = '#fff'; 132 + ctx.textAlign = 'center'; 133 + ctx.textBaseline = 'middle'; 134 + 135 + photo.x = (rowXPos - row.Width / 2) + canvas.width / 2; 136 + photo.y = currentY - scroll; 137 + 138 + ctx.font = '18px Rubik' 139 + ctx.fillText('Error loading image.', photo.x + photo.scaledWidth! / 2, photo.y + photo.scaledHeight! / 2); 140 + } else if(!photo.loaded) 141 // If the photo is not loaded, start a new task and load it in that task 142 setTimeout(() => photo.loadImage(), 1); 143 else{ ··· 149 // Photo is already loaded so we should draw it on the application 150 ctx.globalAlpha = photo.frames / 100; 151 ctx.drawImage(photo.image!, (rowXPos - row.Width / 2) + canvas.width / 2, currentY - scroll, photo.scaledWidth!, photo.scaledHeight!); 152 + 153 + if(photo.isMultiLayer) 154 + ctx.drawImage(multilayerIcon, ((rowXPos - row.Width / 2) + canvas.width / 2) + 5, (currentY - scroll) + 5, 20, 20); 155 156 if(photo.frames < 100) 157 photo.frames += 10;
+76 -17
src/Components/Managers/PhotoManager.tsx
··· 46 if(photoPaths.length <= Vars.MAX_PHOTOS_BULK_LOAD) 47 setHasBeenIndexed(true); 48 49 photoPaths.forEach(( path: string, i: number ) => { 50 let photo 51 ··· 54 else 55 photo = new Photo(path, false, i); 56 57 - this.Photos.push(photo); 58 59 if(photoPaths.length <= Vars.MAX_PHOTOS_BULK_LOAD) 60 photo.loadMeta(); 61 }) 62 63 this.Photos = MergeSort(this.Photos); 64 65 console.log(this.Photos.length + ' Photos found.'); 66 if(this.Photos.length === 0 || photoPaths.length > Vars.MAX_PHOTOS_BULK_LOAD){ 67 console.log('No photos found or over bulk load limit, Skipping loading stage.'); 68 ··· 75 76 listen('photo_meta_loaded', ( event: any ) => { 77 let data: PhotoMetadata = event.payload; 78 - 79 let photo = this.Photos.find(x => x.path === data.path); 80 if(!photo)return console.error('Cannot find photo.', data); 81 82 this._lastLoaded = photo.index; 83 84 if(this._onLoadedMeta[photo.index]){ ··· 96 97 photo.metadata = data.metadata.split('\u0000').filter(x => x !== '')[1]; 98 this._amountLoaded++; 99 - 100 photo.metaLoaded = true; 101 photo.onMetaLoaded(); 102 103 if(this._amountLoaded === this.Photos.length - 1 && !this.HasFirstLoaded){ 104 this.FilteredPhotos = this.Photos; 105 this.HasFirstLoaded = true; ··· 110 111 listen('photo_create', async ( event: any ) => { 112 let photo = new Photo(event.payload, false, 0); 113 - 114 - this.Photos.forEach(p => p.index++); // Probably a really dumb way of doing this 115 - this.Photos.splice(0, 0, photo); 116 117 photo.onMetaLoaded = () => this.ReloadFilters(); 118 photo.loadMeta(); 119 - 120 - if(!window.SyncManager.IsSyncing()){ 121 - window.SyncManager.TriggerSync(); 122 - } 123 }) 124 - 125 listen('photo_remove', ( event: any ) => { 126 this.Photos = this.Photos.filter(x => x.path !== event.payload); 127 - this.FilteredPhotos = this.FilteredPhotos.filter(x => x.path !== event.payload); 128 - 129 if(event.payload === window.PhotoViewerManager.CurrentPhoto()?.path) 130 window.PhotoViewerManager.Close() 131 ··· 168 public ReloadFilters(){ 169 this.FilteredPhotos = []; 170 171 switch(this._filterType){ 172 case FilterType.USER: 173 - if(this._filter === '')return this.FilteredPhotos = this.Photos; 174 - 175 this.Photos.map(p => { 176 if(p.metadata){ 177 try{ ··· 187 }) 188 break; 189 case FilterType.WORLD: 190 - if(this._filter === '')return this.FilteredPhotos = this.Photos; 191 - 192 this.Photos.map(p => { 193 if(p.metadata){ 194 try{
··· 46 if(photoPaths.length <= Vars.MAX_PHOTOS_BULK_LOAD) 47 setHasBeenIndexed(true); 48 49 + let photoLayers: Photo[] = []; 50 + 51 photoPaths.forEach(( path: string, i: number ) => { 52 let photo 53 ··· 56 else 57 photo = new Photo(path, false, i); 58 59 + if(!photo.legacy && photo.splitPath[4]){ 60 + photoLayers.push(photo); 61 + } else 62 + this.Photos.push(photo); 63 64 if(photoPaths.length <= Vars.MAX_PHOTOS_BULK_LOAD) 65 photo.loadMeta(); 66 }) 67 68 + photoLayers.forEach(photo => { 69 + let type = photo.splitPath[4]; 70 + photo.splitPath.pop(); 71 + 72 + let mainPhotoPath = photo.splitPath.join('_') + '.png'; 73 + let mainPhoto = this.Photos.find(x => x.path === mainPhotoPath); 74 + 75 + if(!mainPhoto) 76 + this.Photos.push(photo); 77 + else{ 78 + mainPhoto.isMultiLayer = true; 79 + 80 + switch(type){ 81 + case 'Player.png': 82 + mainPhoto.playerLayer = photo; 83 + break; 84 + case 'Environment.png': 85 + mainPhoto.environmentLayer = photo; 86 + break; 87 + } 88 + } 89 + }); 90 + 91 this.Photos = MergeSort(this.Photos); 92 + console.log(this.Photos[0]); 93 94 console.log(this.Photos.length + ' Photos found.'); 95 + 96 if(this.Photos.length === 0 || photoPaths.length > Vars.MAX_PHOTOS_BULK_LOAD){ 97 console.log('No photos found or over bulk load limit, Skipping loading stage.'); 98 ··· 105 106 listen('photo_meta_loaded', ( event: any ) => { 107 let data: PhotoMetadata = event.payload; 108 + 109 let photo = this.Photos.find(x => x.path === data.path); 110 if(!photo)return console.error('Cannot find photo.', data); 111 + // NOTE: this is triggered by multilayer photo layers loading their metadata 112 + // we don't need to store metadata of those photos as they inherit this 113 + // data from the main photo. 114 115 + photo.error = data.error; 116 this._lastLoaded = photo.index; 117 118 if(this._onLoadedMeta[photo.index]){ ··· 130 131 photo.metadata = data.metadata.split('\u0000').filter(x => x !== '')[1]; 132 this._amountLoaded++; 133 + 134 + photo.loadingMeta = false; 135 photo.metaLoaded = true; 136 photo.onMetaLoaded(); 137 138 + window.PhotoListRenderingManager.ComputeLayout(); 139 + 140 if(this._amountLoaded === this.Photos.length - 1 && !this.HasFirstLoaded){ 141 this.FilteredPhotos = this.Photos; 142 this.HasFirstLoaded = true; ··· 147 148 listen('photo_create', async ( event: any ) => { 149 let photo = new Photo(event.payload, false, 0); 150 + 151 + if(photo.splitPath[4]){ 152 + let type = photo.splitPath[4]; 153 + photo.splitPath.pop(); 154 + 155 + let mainPhotoPath = photo.splitPath.join('_') + '.png'; 156 + let mainPhoto = this.Photos.find(x => x.path === mainPhotoPath); 157 + 158 + if(!mainPhoto){ 159 + this.Photos.forEach(p => p.index++); // Probably a really dumb way of doing this 160 + this.Photos.splice(0, 0, photo); 161 + } else{ 162 + mainPhoto.isMultiLayer = true; 163 + 164 + switch(type){ 165 + case 'Player.png': 166 + mainPhoto.playerLayer = photo; 167 + break; 168 + case 'Environment.png': 169 + mainPhoto.environmentLayer = photo; 170 + break; 171 + } 172 + } 173 + } else{ 174 + this.Photos.forEach(p => p.index++); // Probably a really dumb way of doing this 175 + this.Photos.splice(0, 0, photo); 176 + } 177 178 photo.onMetaLoaded = () => this.ReloadFilters(); 179 photo.loadMeta(); 180 }) 181 + 182 listen('photo_remove', ( event: any ) => { 183 this.Photos = this.Photos.filter(x => x.path !== event.payload); 184 + 185 if(event.payload === window.PhotoViewerManager.CurrentPhoto()?.path) 186 window.PhotoViewerManager.Close() 187 ··· 224 public ReloadFilters(){ 225 this.FilteredPhotos = []; 226 227 + if(this._filter === ''){ 228 + this.FilteredPhotos = this.Photos; 229 + window.PhotoListRenderingManager.ComputeLayout(); 230 + 231 + return; 232 + } 233 + 234 switch(this._filterType){ 235 case FilterType.USER: 236 this.Photos.map(p => { 237 if(p.metadata){ 238 try{ ··· 248 }) 249 break; 250 case FilterType.WORLD: 251 this.Photos.map(p => { 252 if(p.metadata){ 253 try{
+30 -3
src/Components/PhotoList.tsx
··· 1 - import { onCleanup, onMount } from "solid-js"; 2 import { listen } from '@tauri-apps/api/event'; 3 import { Window } from "@tauri-apps/api/window"; 4 ··· 28 let quitRender: boolean = true; 29 30 let currentPopup = ListPopup.NONE; 31 32 Window.getCurrent().isVisible().then(visible => { 33 quitRender = !visible; ··· 154 }) 155 156 window.PhotoListRenderingManager.SetCanvas(photoContainer!); 157 - window.PhotoListRenderingManager.ComputeLayout(); 158 - 159 render(); 160 }); 161 162 onMount(() => { 163 ctx = photoContainer.getContext('2d')!; 164 165 window.PhotoManager.Load(); ··· 260 </div> 261 <div class="icon-label">Settings</div> 262 </div> 263 </div> 264 265 <canvas class="photo-container" ref={( el ) => photoContainer = el}></canvas>
··· 1 + import { createSignal, onCleanup, onMount, Show } from "solid-js"; 2 import { listen } from '@tauri-apps/api/event'; 3 import { Window } from "@tauri-apps/api/window"; 4 ··· 28 let quitRender: boolean = true; 29 30 let currentPopup = ListPopup.NONE; 31 + 32 + let [ updateAvailable, setUpdateAvailable ] = createSignal(false); 33 34 Window.getCurrent().isVisible().then(visible => { 35 quitRender = !visible; ··· 156 }) 157 158 window.PhotoListRenderingManager.SetCanvas(photoContainer!); 159 render(); 160 }); 161 162 onMount(() => { 163 + // Update Stuff 164 + fetch('https://api.github.com/repos/phaze-the-dumb/VRChat-Photo-Manager/releases/latest') 165 + .then(data => { 166 + if(data.status !== 200)return; 167 + 168 + data.json().then(async data => { 169 + let currentVersion = await invoke('get_version'); 170 + setUpdateAvailable(data.tag_name !== currentVersion); 171 + }) 172 + }) 173 + .catch(e => { 174 + console.error(e); 175 + setUpdateAvailable(false); 176 + }) 177 + 178 + // Other Stuff 179 ctx = photoContainer.getContext('2d')!; 180 181 window.PhotoManager.Load(); ··· 276 </div> 277 <div class="icon-label">Settings</div> 278 </div> 279 + 280 + <Show when={updateAvailable()}> 281 + <div> 282 + <div onClick={() => { 283 + invoke('open_url', { url: 'https://github.com/phaze-the-dumb/VRChat-Photo-Manager/releases/latest' }); 284 + }} class="icon"> 285 + <img draggable="false" style={{ width: "20px", height: "20px" }} src="/icon/download-solid-full.svg"></img> 286 + </div> 287 + <div class="icon-label">Update Available</div> 288 + </div> 289 + </Show> 290 </div> 291 292 <canvas class="photo-container" ref={( el ) => photoContainer = el}></canvas>
+147 -6
src/Components/PhotoViewer.tsx
··· 24 25 let authorProfileButton: HTMLDivElement; 26 27 let switchPhotoWithKey = ( e: KeyboardEvent ) => { 28 switch(e.key){ 29 case 'Escape': ··· 84 } 85 86 let copyImage = () => { 87 - invoke('copy_image', { path: window.PhotoViewerManager.CurrentPhoto()!.path }) 88 .then(() => { 89 utils.set('.copy-notif', { translateX: '-50%', translateY: '-100px' }); 90 animate('.copy-notif', { ··· 133 }) 134 } 135 136 onMount(() => { 137 utils.set(photoControls, { translateX: '-50%' }); 138 utils.set(photoTrayCloseBtn, { translateX: '-50%', opacity: 0, scale: '0.75', bottom: '10px' }); 139 140 window.addEventListener('keyup', switchPhotoWithKey); 141 142 let contextMenuOpen = false; 143 window.CloseAllPopups.push(() => { ··· 155 }) 156 }); 157 158 viewerContextMenuButtons[0].onclick = async () => { 159 window.CloseAllPopups.forEach(p => p()); 160 // Context Menu -> Open file location ··· 211 if(photo){ 212 imageViewer.src = (window.OS === "windows" ? "http://photo.localhost/" : 'photo://localhost/') + window.PhotoViewerManager.CurrentPhoto()?.path.split('\\').join('/') + "?full"; 213 imageViewer.crossOrigin = 'anonymous'; 214 215 animate(imageViewer, { 216 opacity: 1, ··· 272 let id = doc.getElementsByTagName('xmp:Author')[0]!.innerHTML; 273 274 authorProfileButton!.style.display = 'flex'; 275 - authorProfileButton!.onclick = () => 276 invoke('open_url', { url: 'https://vrchat.com/home/user/' + id }); 277 } catch(e){ 278 console.error(e); 279 console.log('Couldn\'t decode metadata') ··· 286 } 287 } else{ 288 trayButton.style.display = 'none'; 289 closeTray(); 290 } 291 } ··· 363 ) 364 } 365 366 return ( 367 <div class="photo-viewer" ref={( el ) => viewer = el}> 368 <div class="photo-context-menu" ref={( el ) => viewerContextMenu = el}> 369 <div ref={( el ) => viewerContextMenuButtons.push(el)}>Open file location</div> 370 <div ref={( el ) => viewerContextMenuButtons.push(el)}>Copy image</div> ··· 375 <img draggable="false" src="/icon/x-solid.svg"></img> 376 </div> 377 </div> 378 - <img class="image-container" ref={( el ) => imageViewer = el} /> 379 380 <div class="prev-button" onClick={() => { 381 window.CloseAllPopups.forEach(p => p()); ··· 436 </div> 437 </div> 438 439 <div class="viewer-button" 440 onMouseOver={( el ) => animate(el.currentTarget, { width: '40px', height: '40px', 'margin-left': '15px', 'margin-right': '15px', 'margin-top': '-10px' })} 441 onMouseLeave={( el ) => animate(el.currentTarget, { width: '30px', height: '30px', 'margin-left': '20px', 'margin-right': '20px', 'margin-top': '0px' })} 442 - onClick={() => window.ConfirmationBoxManager.SetConfirmationBox("Are you sure you want to delete this photo?", async () => { invoke("delete_photo", { 443 - path: window.PhotoViewerManager.CurrentPhoto()?.path 444 - }); 445 })}> 446 <div class="icon-small" style={{ width: '12px', margin: '0' }}> 447 <img draggable="false" src="/icon/trash-solid.svg"></img>
··· 24 25 let authorProfileButton: HTMLDivElement; 26 27 + let photoLayerManager!: HTMLDivElement; 28 + 29 let switchPhotoWithKey = ( e: KeyboardEvent ) => { 30 switch(e.key){ 31 case 'Escape': ··· 86 } 87 88 let copyImage = () => { 89 + let path; 90 + let photo = window.PhotoViewerManager.CurrentPhoto()!; 91 + 92 + switch(layerManagerViewing){ 93 + case LayerManagerView.DEFAULT: 94 + path = photo.path; 95 + break; 96 + case LayerManagerView.ENVIRONMENT: 97 + path = photo.environmentLayer!.path; 98 + break; 99 + case LayerManagerView.PLAYER: 100 + path = photo.playerLayer!.path; 101 + break; 102 + } 103 + 104 + invoke('copy_image', { path }) 105 .then(() => { 106 utils.set('.copy-notif', { translateX: '-50%', translateY: '-100px' }); 107 animate('.copy-notif', { ··· 150 }) 151 } 152 153 + let resizeImage = () => { 154 + let dstWidth; 155 + let dstHeight; 156 + 157 + let imgHeight = imageViewer.naturalHeight; 158 + let imgWidth = imageViewer.naturalWidth; 159 + 160 + if( 161 + imgWidth / window.innerWidth < 162 + imgHeight / window.innerHeight 163 + ) { 164 + dstWidth = imgWidth * (window.innerHeight / imgHeight); 165 + dstHeight = window.innerHeight; 166 + } else{ 167 + dstWidth = window.innerWidth; 168 + dstHeight = imgHeight * (window.innerWidth / imgWidth); 169 + } 170 + 171 + imageViewer.style.width = dstWidth + 'px'; 172 + imageViewer.style.height = dstHeight + 'px'; 173 + } 174 + 175 onMount(() => { 176 utils.set(photoControls, { translateX: '-50%' }); 177 utils.set(photoTrayCloseBtn, { translateX: '-50%', opacity: 0, scale: '0.75', bottom: '10px' }); 178 + utils.set(photoLayerManager, { translateY: '20px', opacity: 0, display: 'none' }); 179 180 window.addEventListener('keyup', switchPhotoWithKey); 181 + window.addEventListener('resize', () => resizeImage()); 182 183 let contextMenuOpen = false; 184 window.CloseAllPopups.push(() => { ··· 196 }) 197 }); 198 199 + window.CloseAllPopups.push(() => { 200 + layerManagerOpen = false; 201 + if(layerManagerAnimation)layerManagerAnimation.cancel(); 202 + 203 + layerManagerAnimation = animate(photoLayerManager, { translateY: '20px', opacity: 0, duration: 100, onComplete: () => utils.set(photoLayerManager, { display: 'none' }) }); 204 + }); 205 + 206 viewerContextMenuButtons[0].onclick = async () => { 207 window.CloseAllPopups.forEach(p => p()); 208 // Context Menu -> Open file location ··· 259 if(photo){ 260 imageViewer.src = (window.OS === "windows" ? "http://photo.localhost/" : 'photo://localhost/') + window.PhotoViewerManager.CurrentPhoto()?.path.split('\\').join('/') + "?full"; 261 imageViewer.crossOrigin = 'anonymous'; 262 + 263 + imageViewer.onload = () => { resizeImage(); } 264 265 animate(imageViewer, { 266 opacity: 1, ··· 322 let id = doc.getElementsByTagName('xmp:Author')[0]!.innerHTML; 323 324 authorProfileButton!.style.display = 'flex'; 325 + authorProfileButton!.onclick = () => { 326 + console.log(id); 327 invoke('open_url', { url: 'https://vrchat.com/home/user/' + id }); 328 + } 329 } catch(e){ 330 console.error(e); 331 console.log('Couldn\'t decode metadata') ··· 338 } 339 } else{ 340 trayButton.style.display = 'none'; 341 + authorProfileButton!.style.display = 'none'; 342 + 343 closeTray(); 344 } 345 } ··· 417 ) 418 } 419 420 + enum LayerManagerView{ 421 + DEFAULT, 422 + PLAYER, 423 + ENVIRONMENT 424 + } 425 + 426 + let layerManagerOpen = false; 427 + let layerManagerAnimation: null | JSAnimation = null; 428 + let layerManagerViewing = LayerManagerView.DEFAULT; 429 + 430 + let toggleLayerManager = () => { 431 + if(layerManagerOpen){ 432 + // Close 433 + layerManagerOpen = false; 434 + if(layerManagerAnimation)layerManagerAnimation.cancel(); 435 + 436 + layerManagerAnimation = animate(photoLayerManager, { translateY: '20px', opacity: 0, duration: 100, onComplete: () => utils.set(photoLayerManager, { display: 'none' }) }); 437 + } else{ 438 + // Open 439 + layerManagerOpen = true; 440 + if(layerManagerAnimation)layerManagerAnimation.cancel(); 441 + 442 + utils.set(photoLayerManager, { display: 'block' }); 443 + layerManagerAnimation = animate(photoLayerManager, { translateY: '0px', opacity: 1, duration: 100 }); 444 + } 445 + } 446 + 447 return ( 448 <div class="photo-viewer" ref={( el ) => viewer = el}> 449 + <div class="photo-layer-manager" ref={photoLayerManager}> 450 + <Show when={window.PhotoViewerManager.CurrentPhoto()?.playerLayer}> 451 + <div class="photo-layer-manager-layer" onClick={() => { 452 + let photo = window.PhotoViewerManager.CurrentPhoto()?.playerLayer; 453 + if(!photo)return; 454 + 455 + layerManagerViewing = LayerManagerView.PLAYER; 456 + 457 + imageViewer.src = (window.OS === "windows" ? "http://photo.localhost/" : 'photo://localhost/') + photo.path.split('\\').join('/') + "?full"; 458 + imageViewer.crossOrigin = 'anonymous'; 459 + }}>Player Layer</div> 460 + </Show> 461 + <Show when={window.PhotoViewerManager.CurrentPhoto()?.environmentLayer}> 462 + <div class="photo-layer-manager-layer" onClick={() => { 463 + let photo = window.PhotoViewerManager.CurrentPhoto()?.environmentLayer; 464 + if(!photo)return; 465 + 466 + layerManagerViewing = LayerManagerView.ENVIRONMENT; 467 + 468 + imageViewer.src = (window.OS === "windows" ? "http://photo.localhost/" : 'photo://localhost/') + photo.path.split('\\').join('/') + "?full"; 469 + imageViewer.crossOrigin = 'anonymous'; 470 + }}>Environment Layer</div> 471 + </Show> 472 + <div class="photo-layer-manager-layer" onClick={() => { 473 + let photo = window.PhotoViewerManager.CurrentPhoto(); 474 + if(!photo)return; 475 + 476 + layerManagerViewing = LayerManagerView.DEFAULT; 477 + 478 + imageViewer.src = (window.OS === "windows" ? "http://photo.localhost/" : 'photo://localhost/') + photo.path.split('\\').join('/') + "?full"; 479 + imageViewer.crossOrigin = 'anonymous'; 480 + }}>Default Layer</div> 481 + </div> 482 + 483 <div class="photo-context-menu" ref={( el ) => viewerContextMenu = el}> 484 <div ref={( el ) => viewerContextMenuButtons.push(el)}>Open file location</div> 485 <div ref={( el ) => viewerContextMenuButtons.push(el)}>Copy image</div> ··· 490 <img draggable="false" src="/icon/x-solid.svg"></img> 491 </div> 492 </div> 493 + 494 + <div style={{ 495 + width: '100%', 496 + height: '100%', 497 + display: 'flex', 498 + "justify-content": 'center', 499 + 'align-items': 'center' 500 + }}> 501 + <img class="image-container" ref={( el ) => imageViewer = el} /> 502 + </div> 503 504 <div class="prev-button" onClick={() => { 505 window.CloseAllPopups.forEach(p => p()); ··· 560 </div> 561 </div> 562 563 + <Show when={window.PhotoViewerManager.CurrentPhoto()?.isMultiLayer}> 564 + <div class="viewer-button" 565 + onClick={toggleLayerManager} 566 + onMouseOver={( el ) => animate(el.currentTarget, { width: '40px', height: '40px', 'margin-left': '15px', 'margin-right': '15px', 'margin-top': '-10px' })} 567 + onMouseLeave={( el ) => animate(el.currentTarget, { width: '30px', height: '30px', 'margin-left': '20px', 'margin-right': '20px', 'margin-top': '0px' })} 568 + > 569 + <div class="icon-small" style={{ width: '17px', margin: '0' }}> 570 + <img draggable="false" src="/icon/layer-group-solid-full.svg"></img> 571 + </div> 572 + </div> 573 + </Show> 574 + 575 <div class="viewer-button" 576 onMouseOver={( el ) => animate(el.currentTarget, { width: '40px', height: '40px', 'margin-left': '15px', 'margin-right': '15px', 'margin-top': '-10px' })} 577 onMouseLeave={( el ) => animate(el.currentTarget, { width: '30px', height: '30px', 'margin-left': '20px', 'margin-right': '20px', 'margin-top': '0px' })} 578 + onClick={() => window.ConfirmationBoxManager.SetConfirmationBox("Are you sure you want to delete this photo?", async () => { 579 + let photo = window.PhotoViewerManager.CurrentPhoto(); 580 + if(!photo)return; 581 + 582 + invoke("delete_photo", { path: photo.path }); 583 + 584 + if(photo.playerLayer)invoke("delete_photo", { path: photo.playerLayer.path }); 585 + if(photo.environmentLayer)invoke("delete_photo", { path: photo.environmentLayer.path }); 586 })}> 587 <div class="icon-small" style={{ width: '12px', margin: '0' }}> 588 <img draggable="false" src="/icon/trash-solid.svg"></img>
+29 -23
src/Components/SettingsMenu.tsx
··· 6 7 let SettingsMenu = () => { 8 // let sliderBar: HTMLElement; 9 - let settingsContainer: HTMLElement; 10 // let currentButton = 0; 11 // let lastClickedButton = -1; 12 let finalPathConfirm: HTMLElement; ··· 17 let closeWithKey = ( e: KeyboardEvent ) => { 18 if(e.key === 'Escape'){ 19 window.ViewManager.ChangeState(ViewState.PHOTO_LIST); 20 - animate('.settings', { 21 opacity: 0, 22 translateX: '500px', 23 easing: 'easeInOutQuad', 24 duration: 250, 25 onComplete: () => { 26 utils.set('.settings', { display: 'none' }); 27 } 28 }) ··· 77 // } 78 // }) 79 80 - // window.addEventListener('keyup', closeWithKey); 81 82 // window.addEventListener('touchend', ( e: TouchEvent ) => { 83 // if(sliderMouseDown){ ··· 194 }}> 195 <div class="icon"><img draggable="false" src="/icon/x-solid.svg"></img></div> 196 </div> 197 - <div class="settings-container" ref={( el ) => settingsContainer = el}> 198 <div class="settings-block"> 199 <h1>Storage Settings</h1> 200 <p>{ window.PhotoManager.PhotoCount() } Photos ({ bytesToFormatted(window.PhotoManager.PhotoSize(), 0) })</p> ··· 221 </div> 222 223 <div class="selector"> 224 - <input type="checkbox" id="minimise-on-close-check" ref={async ( el ) => { 225 - el.checked = await invoke('get_config_value_string', { key: 'minimise-on-close' }) === "false" ? false : true; 226 }} onChange={( el ) => { 227 if(el.target.checked){ 228 - invoke('set_config_value_string', { key: 'minimise-on-close', value: 'true' }); 229 } else{ 230 - invoke('set_config_value_string', { key: 'minimise-on-close', value: 'false' }); 231 } 232 }} /> 233 Close to tray 234 235 - <label for="minimise-on-close-check"> 236 <div class="selection-box"> 237 <div class="icon-small" style={{ margin: '0', display: 'inline-flex' }}> 238 <img draggable="false" width="10" height="10" src="/icon/check-solid.svg"></img> ··· 311 </span> 312 <span style={{ display: 'none' }} ref={( el ) => finalPathConfirm = el}> 313 <span class="path" style={{ color: 'green' }} onClick={async () => { 314 - finalPathPreviousData = finalPathData; 315 - finalPathConfirm.style.display = 'none'; 316 317 - await invoke('change_final_path', { newPath: finalPathData }); 318 - window.location.reload(); 319 320 - animate('.settings', { 321 - opacity: 0, 322 - translateX: '500px', 323 - easing: 'easeInOutQuad', 324 - duration: 250, 325 - onComplete: () => { 326 - utils.set('.settings', { display: 'none' }); 327 - } 328 - }) 329 330 - window.location.reload(); 331 }}> 332 Save 333 </span>
··· 6 7 let SettingsMenu = () => { 8 // let sliderBar: HTMLElement; 9 + // let settingsContainer: HTMLElement; 10 // let currentButton = 0; 11 // let lastClickedButton = -1; 12 let finalPathConfirm: HTMLElement; ··· 17 let closeWithKey = ( e: KeyboardEvent ) => { 18 if(e.key === 'Escape'){ 19 window.ViewManager.ChangeState(ViewState.PHOTO_LIST); 20 + console.log('h'); 21 + animate('.settings',{ 22 opacity: 0, 23 translateX: '500px', 24 easing: 'easeInOutQuad', 25 duration: 250, 26 onComplete: () => { 27 + console.log('h'); 28 utils.set('.settings', { display: 'none' }); 29 } 30 }) ··· 79 // } 80 // }) 81 82 + window.addEventListener('keyup', closeWithKey); 83 84 // window.addEventListener('touchend', ( e: TouchEvent ) => { 85 // if(sliderMouseDown){ ··· 196 }}> 197 <div class="icon"><img draggable="false" src="/icon/x-solid.svg"></img></div> 198 </div> 199 + {/* <div class="settings-container" ref={( el ) => settingsContainer = el}> */} 200 + <div class="settings-container"> 201 <div class="settings-block"> 202 <h1>Storage Settings</h1> 203 <p>{ window.PhotoManager.PhotoCount() } Photos ({ bytesToFormatted(window.PhotoManager.PhotoSize(), 0) })</p> ··· 224 </div> 225 226 <div class="selector"> 227 + <input type="checkbox" id="close-to-tray-check" ref={async ( el ) => { 228 + el.checked = await invoke('get_config_value_string', { key: 'close-to-tray' }) === "true" ? true : false; 229 }} onChange={( el ) => { 230 if(el.target.checked){ 231 + invoke('set_config_value_string', { key: 'close-to-tray', value: 'true' }); 232 } else{ 233 + invoke('set_config_value_string', { key: 'close-to-tray', value: 'false' }); 234 } 235 }} /> 236 Close to tray 237 238 + <label for="close-to-tray-check"> 239 <div class="selection-box"> 240 <div class="icon-small" style={{ margin: '0', display: 'inline-flex' }}> 241 <img draggable="false" width="10" height="10" src="/icon/check-solid.svg"></img> ··· 314 </span> 315 <span style={{ display: 'none' }} ref={( el ) => finalPathConfirm = el}> 316 <span class="path" style={{ color: 'green' }} onClick={async () => { 317 + let changed = await invoke('change_final_path', { newPath: finalPathData }); 318 319 + if(changed){ 320 + finalPathPreviousData = finalPathData; 321 + finalPathConfirm.style.display = 'none'; 322 323 + window.location.reload(); 324 325 + animate('.settings', { 326 + opacity: 0, 327 + translateX: '500px', 328 + easing: 'easeInOutQuad', 329 + duration: 250, 330 + onComplete: () => { 331 + utils.set('.settings', { display: 'none' }); 332 + } 333 + }) 334 + 335 + window.location.reload(); 336 + } 337 }}> 338 Save 339 </span>
+43 -16
src/Components/Structs/Photo.ts
··· 6 export class Photo{ 7 path: string; 8 loaded: boolean = false; 9 loading: boolean = false; 10 metaLoaded: boolean = false; 11 image?: HTMLCanvasElement; ··· 14 height?: number; 15 loadingRotate: number = 0; 16 metadata: any; 17 18 frames: number = 0; 19 shown: boolean = false; ··· 29 legacy: boolean = false; 30 index: number = 0; 31 32 public onMetaLoaded: () => void = () => {}; 33 34 constructor( path: string, isLegacy: boolean = false, i: number ){ ··· 37 this.index = i; 38 39 let split = this.path.split('_'); 40 41 if(this.legacy) 42 this.dateString = split[2]; 43 else 44 this.dateString = split[1]; 45 46 let splitDateString = this.dateString.split('-'); 47 48 this.date = new Date(); 49 ··· 51 this.date.setMonth(parseInt(splitDateString[1])); 52 this.date.setDate(parseInt(splitDateString[2])); 53 54 - let resSplit = split[3].split('x'); 55 56 - let width = parseInt(resSplit[0]); 57 - let height = parseInt(resSplit[1]); 58 59 - if(!isNaN(width) || !isNaN(height)){ 60 - this.width = width; 61 - this.height = height; 62 - 63 - let scale = Vars.PHOTO_HEIGHT / this.height; 64 - 65 - this.scaledWidth = this.width * scale; 66 - this.scaledHeight = Vars.PHOTO_HEIGHT; 67 - } 68 } 69 70 loadMeta(){ 71 invoke('load_photo_meta', { photo: this.path }); 72 } 73 74 loadImage(){ 75 - if(this.loading || this.loaded || imagesLoading >= Vars.MAX_IMAGE_LOAD)return; 76 - 77 - // this.loadMeta(); 78 if(!this.metaLoaded)return this.loadMeta(); 79 80 this.loading = true; 81 - 82 imagesLoading++; 83 84 this.image = document.createElement('canvas'); ··· 98 this.loading = false; 99 100 imagesLoading--; 101 } 102 } 103 }
··· 6 export class Photo{ 7 path: string; 8 loaded: boolean = false; 9 + loadingMeta: boolean = false; 10 loading: boolean = false; 11 metaLoaded: boolean = false; 12 image?: HTMLCanvasElement; ··· 15 height?: number; 16 loadingRotate: number = 0; 17 metadata: any; 18 + 19 + error: boolean = false; 20 21 frames: number = 0; 22 shown: boolean = false; ··· 32 legacy: boolean = false; 33 index: number = 0; 34 35 + splitPath: string[]; 36 + 37 + playerLayer: Photo | null = null; 38 + environmentLayer: Photo | null = null; 39 + isMultiLayer = false; 40 + 41 public onMetaLoaded: () => void = () => {}; 42 43 constructor( path: string, isLegacy: boolean = false, i: number ){ ··· 46 this.index = i; 47 48 let split = this.path.split('_'); 49 + this.splitPath = split; 50 51 if(this.legacy) 52 this.dateString = split[2]; 53 else 54 this.dateString = split[1]; 55 56 + let timeString; 57 + if(this.legacy) 58 + timeString = split[3]; 59 + else 60 + timeString = split[2]; 61 + 62 let splitDateString = this.dateString.split('-'); 63 + let splitTimeString = timeString.split('-'); 64 65 this.date = new Date(); 66 ··· 68 this.date.setMonth(parseInt(splitDateString[1])); 69 this.date.setDate(parseInt(splitDateString[2])); 70 71 + this.date.setHours(parseInt(splitTimeString[0])); 72 + this.date.setMinutes(parseInt(splitTimeString[1])); 73 + this.date.setSeconds(parseInt(splitTimeString[2])); 74 + 75 + let resSplit; 76 + if(this.legacy) 77 + resSplit = split[0].split('x') 78 + else 79 + resSplit = split[3].split('x') 80 + 81 + // let width = parseInt(resSplit[0]); 82 + // let height = parseInt(resSplit[1]); 83 + 84 + // if(!isNaN(width) || !isNaN(height)){ 85 + // this.width = width; 86 + // this.height = height; 87 88 + // let scale = Vars.PHOTO_HEIGHT / this.height; 89 90 + // this.scaledWidth = this.width * scale; 91 + // this.scaledHeight = Vars.PHOTO_HEIGHT; 92 + // } 93 } 94 95 loadMeta(){ 96 + this.loadingMeta = true; 97 invoke('load_photo_meta', { photo: this.path }); 98 } 99 100 loadImage(){ 101 + if(this.loadingMeta || this.loading || this.loaded || imagesLoading >= Vars.MAX_IMAGE_LOAD)return; 102 if(!this.metaLoaded)return this.loadMeta(); 103 104 this.loading = true; 105 imagesLoading++; 106 107 this.image = document.createElement('canvas'); ··· 121 this.loading = false; 122 123 imagesLoading--; 124 + } 125 + 126 + this.imageEl.onerror = () => { 127 + console.log('Cannot load image'); 128 } 129 } 130 }
+1
src/Components/Structs/PhotoMetadata.ts
··· 3 height!: number; 4 metadata!: string; 5 path!: string; 6 }
··· 3 height!: number; 4 metadata!: string; 5 path!: string; 6 + error!: boolean; 7 }
-2
src/css/icons.css
··· 2 width: 40px; 3 height: 40px; 4 padding: 10px; 5 - filter: invert(100%); 6 display: flex; 7 align-items: center; 8 justify-content: center; ··· 13 } 14 15 .icon-small{ 16 - filter: invert(100%); 17 display: flex; 18 align-items: center; 19 justify-content: center;
··· 2 width: 40px; 3 height: 40px; 4 padding: 10px; 5 display: flex; 6 align-items: center; 7 justify-content: center; ··· 12 } 13 14 .icon-small{ 15 display: flex; 16 align-items: center; 17 justify-content: center;
+1 -1
src/css/tray.css
··· 17 left: 50%; 18 transform: translate(-50%); 19 color: white; 20 - background: #8885; 21 backdrop-filter: blur(10px); 22 -webkit-backdrop-filter: blur(10px); 23 box-shadow: #0008 0 0 10px;
··· 17 left: 50%; 18 transform: translate(-50%); 19 color: white; 20 + background: rgba(43, 43, 43, 0.76); 21 backdrop-filter: blur(10px); 22 -webkit-backdrop-filter: blur(10px); 23 box-shadow: #0008 0 0 10px;
+28 -4
src/css/viewer.css
··· 38 left: 0; 39 padding: 10px; 40 border-radius: 5px; 41 - background: #555a; 42 color: #aaa; 43 box-shadow: #0005 0 0 10px; 44 opacity: 0; ··· 59 } 60 61 .image-container{ 62 - height: 100%; 63 background-size: contain !important; 64 background-repeat: no-repeat !important; 65 background-position: center !important; ··· 80 -webkit-user-select: none; 81 cursor: pointer; 82 z-index: 7; 83 - box-shadow: #0008 0 0 10px; 84 } 85 86 .viewer-close{ ··· 157 left: 50%; 158 color: white; 159 transform: translateX(-50%) translateY(-100px); 160 - background: #8885; 161 padding: 10px 40px; 162 backdrop-filter: blur(10px); 163 -webkit-backdrop-filter: blur(10px); ··· 166 z-index: 12; 167 opacity: 0; 168 pointer-events: none; 169 }
··· 38 left: 0; 39 padding: 10px; 40 border-radius: 5px; 41 + background: rgba(43, 43, 43, 0.76); 42 color: #aaa; 43 box-shadow: #0005 0 0 10px; 44 opacity: 0; ··· 59 } 60 61 .image-container{ 62 + max-width: none; 63 + max-height: none; 64 background-size: contain !important; 65 background-repeat: no-repeat !important; 66 background-position: center !important; ··· 81 -webkit-user-select: none; 82 cursor: pointer; 83 z-index: 7; 84 + background: rgba(43, 43, 43, 0.76); 85 } 86 87 .viewer-close{ ··· 158 left: 50%; 159 color: white; 160 transform: translateX(-50%) translateY(-100px); 161 + background: rgba(43, 43, 43, 0.76); 162 padding: 10px 40px; 163 backdrop-filter: blur(10px); 164 -webkit-backdrop-filter: blur(10px); ··· 167 z-index: 12; 168 opacity: 0; 169 pointer-events: none; 170 + } 171 + 172 + .photo-layer-manager{ 173 + background: rgba(43, 43, 43, 0.76); 174 + color: #fff; 175 + padding: 10px; 176 + backdrop-filter: blur(10px); 177 + position: fixed; 178 + bottom: 10px; 179 + left: 10px; 180 + border-radius: 10px; 181 + } 182 + 183 + .photo-layer-manager-layer{ 184 + cursor: pointer; 185 + -webkit-user-select: none; 186 + user-select: none; 187 + padding: 5px 20px; 188 + transition: 0.1s; 189 + } 190 + 191 + .photo-layer-manager-layer:hover{ 192 + color: #bbb; 193 }
+17
src/styles.css
··· 100 img{ 101 max-width: 100%; 102 max-height: 100%; 103 }
··· 100 img{ 101 max-width: 100%; 102 max-height: 100%; 103 + } 104 + 105 + .error-notif{ 106 + position: fixed; 107 + top: 40px; 108 + left: 50%; 109 + color: white; 110 + transform: translateX(-50%) translateY(-100px); 111 + background: rgba(43, 43, 43, 0.76); 112 + padding: 10px 40px; 113 + backdrop-filter: blur(10px); 114 + -webkit-backdrop-filter: blur(10px); 115 + border-radius: 50px; 116 + box-shadow: #000 0 0 10px; 117 + z-index: 12; 118 + opacity: 0; 119 + pointer-events: none; 120 }
+872 -936
src-tauri/Cargo.lock
··· 4 5 [[package]] 6 name = "VRChatPhotoManager" 7 - version = "0.2.6" 8 dependencies = [ 9 "arboard", 10 - "dirs 5.0.1", 11 "fast_image_resize", 12 "image", 13 "mslnk", ··· 19 "serde_json", 20 "tauri", 21 "tauri-build", 22 - "tauri-plugin-deep-link", 23 "tauri-plugin-http", 24 "tauri-plugin-process", 25 "tauri-plugin-shell", ··· 27 ] 28 29 [[package]] 30 - name = "addr2line" 31 - version = "0.24.2" 32 - source = "registry+https://github.com/rust-lang/crates.io-index" 33 - checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 34 - dependencies = [ 35 - "gimli", 36 - ] 37 - 38 - [[package]] 39 name = "adler2" 40 version = "2.0.1" 41 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 43 44 [[package]] 45 name = "aho-corasick" 46 - version = "1.1.3" 47 source = "registry+https://github.com/rust-lang/crates.io-index" 48 - checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 49 dependencies = [ 50 "memchr", 51 ] ··· 75 ] 76 77 [[package]] 78 - name = "android-tzdata" 79 - version = "0.1.1" 80 - source = "registry+https://github.com/rust-lang/crates.io-index" 81 - checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 82 - 83 - [[package]] 84 name = "android_system_properties" 85 version = "0.1.5" 86 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 91 92 [[package]] 93 name = "anyhow" 94 - version = "1.0.99" 95 source = "registry+https://github.com/rust-lang/crates.io-index" 96 - checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" 97 98 [[package]] 99 name = "arbitrary" ··· 103 104 [[package]] 105 name = "arboard" 106 - version = "3.6.0" 107 source = "registry+https://github.com/rust-lang/crates.io-index" 108 - checksum = "55f533f8e0af236ffe5eb979b99381df3258853f00ba2e44b6e1955292c75227" 109 dependencies = [ 110 "clipboard-win", 111 "image", 112 "log", 113 - "objc2 0.6.2", 114 "objc2-app-kit", 115 "objc2-core-foundation", 116 "objc2-core-graphics", 117 - "objc2-foundation 0.3.1", 118 "parking_lot", 119 "percent-encoding", 120 - "windows-sys 0.59.0", 121 "x11rb", 122 ] 123 ··· 129 dependencies = [ 130 "proc-macro2", 131 "quote", 132 - "syn 2.0.105", 133 ] 134 135 [[package]] ··· 164 165 [[package]] 166 name = "async-executor" 167 - version = "1.13.2" 168 source = "registry+https://github.com/rust-lang/crates.io-index" 169 - checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" 170 dependencies = [ 171 "async-task", 172 "concurrent-queue", ··· 178 179 [[package]] 180 name = "async-io" 181 - version = "2.5.0" 182 source = "registry+https://github.com/rust-lang/crates.io-index" 183 - checksum = "19634d6336019ef220f09fd31168ce5c184b295cbf80345437cc36094ef223ca" 184 dependencies = [ 185 - "async-lock", 186 "cfg-if", 187 "concurrent-queue", 188 "futures-io", 189 "futures-lite", 190 "parking", 191 "polling", 192 - "rustix 1.0.8", 193 "slab", 194 - "windows-sys 0.60.2", 195 ] 196 197 [[package]] ··· 207 208 [[package]] 209 name = "async-process" 210 - version = "2.4.0" 211 source = "registry+https://github.com/rust-lang/crates.io-index" 212 - checksum = "65daa13722ad51e6ab1a1b9c01299142bc75135b337923cfa10e79bbbd669f00" 213 dependencies = [ 214 "async-channel", 215 "async-io", ··· 220 "cfg-if", 221 "event-listener", 222 "futures-lite", 223 - "rustix 1.0.8", 224 ] 225 226 [[package]] ··· 231 dependencies = [ 232 "proc-macro2", 233 "quote", 234 - "syn 2.0.105", 235 ] 236 237 [[package]] 238 name = "async-signal" 239 - version = "0.2.12" 240 source = "registry+https://github.com/rust-lang/crates.io-index" 241 - checksum = "f567af260ef69e1d52c2b560ce0ea230763e6fbb9214a85d768760a920e3e3c1" 242 dependencies = [ 243 "async-io", 244 "async-lock", ··· 246 "cfg-if", 247 "futures-core", 248 "futures-io", 249 - "rustix 1.0.8", 250 "signal-hook-registry", 251 "slab", 252 - "windows-sys 0.60.2", 253 ] 254 255 [[package]] ··· 266 dependencies = [ 267 "proc-macro2", 268 "quote", 269 - "syn 2.0.105", 270 ] 271 272 [[package]] ··· 306 307 [[package]] 308 name = "av1-grain" 309 - version = "0.2.4" 310 source = "registry+https://github.com/rust-lang/crates.io-index" 311 - checksum = "4f3efb2ca85bc610acfa917b5aaa36f3fcbebed5b3182d7f877b02531c4b80c8" 312 dependencies = [ 313 "anyhow", 314 "arrayvec", ··· 328 ] 329 330 [[package]] 331 - name = "backtrace" 332 - version = "0.3.75" 333 - source = "registry+https://github.com/rust-lang/crates.io-index" 334 - checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" 335 - dependencies = [ 336 - "addr2line", 337 - "cfg-if", 338 - "libc", 339 - "miniz_oxide", 340 - "object", 341 - "rustc-demangle", 342 - "windows-targets 0.52.6", 343 - ] 344 - 345 - [[package]] 346 name = "base64" 347 version = "0.21.7" 348 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 356 357 [[package]] 358 name = "bit_field" 359 - version = "0.10.2" 360 source = "registry+https://github.com/rust-lang/crates.io-index" 361 - checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" 362 363 [[package]] 364 name = "bitflags" ··· 368 369 [[package]] 370 name = "bitflags" 371 - version = "2.9.1" 372 source = "registry+https://github.com/rust-lang/crates.io-index" 373 - checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" 374 dependencies = [ 375 - "serde", 376 ] 377 378 [[package]] ··· 401 402 [[package]] 403 name = "block2" 404 - version = "0.6.1" 405 source = "registry+https://github.com/rust-lang/crates.io-index" 406 - checksum = "340d2f0bdb2a43c1d3cd40513185b2bd7def0aa1052f956455114bc98f82dcf2" 407 dependencies = [ 408 - "objc2 0.6.2", 409 ] 410 411 [[package]] ··· 423 424 [[package]] 425 name = "brotli" 426 - version = "8.0.1" 427 source = "registry+https://github.com/rust-lang/crates.io-index" 428 - checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d" 429 dependencies = [ 430 "alloc-no-stdlib", 431 "alloc-stdlib", ··· 456 457 [[package]] 458 name = "bytemuck" 459 - version = "1.23.2" 460 source = "registry+https://github.com/rust-lang/crates.io-index" 461 - checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" 462 463 [[package]] 464 name = "byteorder" ··· 487 source = "registry+https://github.com/rust-lang/crates.io-index" 488 checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" 489 dependencies = [ 490 - "bitflags 2.9.1", 491 "cairo-sys-rs", 492 "glib", 493 "libc", ··· 508 509 [[package]] 510 name = "camino" 511 - version = "1.1.11" 512 source = "registry+https://github.com/rust-lang/crates.io-index" 513 - checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" 514 dependencies = [ 515 - "serde", 516 ] 517 518 [[package]] ··· 535 "semver", 536 "serde", 537 "serde_json", 538 - "thiserror 2.0.14", 539 ] 540 541 [[package]] ··· 545 checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" 546 dependencies = [ 547 "serde", 548 - "toml 0.9.5", 549 ] 550 551 [[package]] 552 name = "cc" 553 - version = "1.2.32" 554 source = "registry+https://github.com/rust-lang/crates.io-index" 555 - checksum = "2352e5597e9c544d5e6d9c95190d5d27738ade584fa8db0a16e130e5c2b5296e" 556 dependencies = [ 557 "jobserver", 558 "libc", 559 "shlex", ··· 588 589 [[package]] 590 name = "cfg-if" 591 - version = "1.0.1" 592 source = "registry+https://github.com/rust-lang/crates.io-index" 593 - checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" 594 595 [[package]] 596 name = "cfg_aliases" ··· 600 601 [[package]] 602 name = "chrono" 603 - version = "0.4.41" 604 source = "registry+https://github.com/rust-lang/crates.io-index" 605 - checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" 606 dependencies = [ 607 - "android-tzdata", 608 "iana-time-zone", 609 "num-traits", 610 "serde", 611 - "windows-link", 612 ] 613 614 [[package]] ··· 732 source = "registry+https://github.com/rust-lang/crates.io-index" 733 checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" 734 dependencies = [ 735 - "bitflags 2.9.1", 736 "core-foundation 0.10.1", 737 "core-graphics-types", 738 "foreign-types 0.5.0", ··· 745 source = "registry+https://github.com/rust-lang/crates.io-index" 746 checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" 747 dependencies = [ 748 - "bitflags 2.9.1", 749 "core-foundation 0.10.1", 750 "libc", 751 ] ··· 842 checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" 843 dependencies = [ 844 "quote", 845 - "syn 2.0.105", 846 ] 847 848 [[package]] ··· 852 checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" 853 dependencies = [ 854 "quote", 855 - "syn 2.0.105", 856 ] 857 858 [[package]] 859 name = "darling" 860 - version = "0.20.11" 861 source = "registry+https://github.com/rust-lang/crates.io-index" 862 - checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" 863 dependencies = [ 864 "darling_core", 865 "darling_macro", ··· 867 868 [[package]] 869 name = "darling_core" 870 - version = "0.20.11" 871 source = "registry+https://github.com/rust-lang/crates.io-index" 872 - checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" 873 dependencies = [ 874 "fnv", 875 "ident_case", 876 "proc-macro2", 877 "quote", 878 "strsim", 879 - "syn 2.0.105", 880 ] 881 882 [[package]] 883 name = "darling_macro" 884 - version = "0.20.11" 885 source = "registry+https://github.com/rust-lang/crates.io-index" 886 - checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" 887 dependencies = [ 888 "darling_core", 889 "quote", 890 - "syn 2.0.105", 891 ] 892 893 [[package]] 894 name = "data-url" 895 - version = "0.3.1" 896 source = "registry+https://github.com/rust-lang/crates.io-index" 897 - checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" 898 899 [[package]] 900 name = "deranged" 901 - version = "0.4.0" 902 source = "registry+https://github.com/rust-lang/crates.io-index" 903 - checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" 904 dependencies = [ 905 "powerfmt", 906 - "serde", 907 ] 908 909 [[package]] ··· 916 "proc-macro2", 917 "quote", 918 "rustc_version", 919 - "syn 2.0.105", 920 ] 921 922 [[package]] ··· 931 932 [[package]] 933 name = "dirs" 934 - version = "5.0.1" 935 - source = "registry+https://github.com/rust-lang/crates.io-index" 936 - checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" 937 - dependencies = [ 938 - "dirs-sys 0.4.1", 939 - ] 940 - 941 - [[package]] 942 - name = "dirs" 943 version = "6.0.0" 944 source = "registry+https://github.com/rust-lang/crates.io-index" 945 checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" 946 dependencies = [ 947 - "dirs-sys 0.5.0", 948 - ] 949 - 950 - [[package]] 951 - name = "dirs-sys" 952 - version = "0.4.1" 953 - source = "registry+https://github.com/rust-lang/crates.io-index" 954 - checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" 955 - dependencies = [ 956 - "libc", 957 - "option-ext", 958 - "redox_users 0.4.6", 959 - "windows-sys 0.48.0", 960 ] 961 962 [[package]] ··· 967 dependencies = [ 968 "libc", 969 "option-ext", 970 - "redox_users 0.5.2", 971 - "windows-sys 0.60.2", 972 ] 973 974 [[package]] ··· 983 source = "registry+https://github.com/rust-lang/crates.io-index" 984 checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" 985 dependencies = [ 986 - "bitflags 2.9.1", 987 - "objc2 0.6.2", 988 ] 989 990 [[package]] ··· 995 dependencies = [ 996 "proc-macro2", 997 "quote", 998 - "syn 2.0.105", 999 ] 1000 1001 [[package]] 1002 name = "dlopen2" 1003 - version = "0.7.0" 1004 source = "registry+https://github.com/rust-lang/crates.io-index" 1005 - checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6" 1006 dependencies = [ 1007 "dlopen2_derive", 1008 "libc", ··· 1018 dependencies = [ 1019 "proc-macro2", 1020 "quote", 1021 - "syn 2.0.105", 1022 ] 1023 1024 [[package]] ··· 1032 1033 [[package]] 1034 name = "document-features" 1035 - version = "0.2.11" 1036 source = "registry+https://github.com/rust-lang/crates.io-index" 1037 - checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" 1038 dependencies = [ 1039 "litrs", 1040 ] ··· 1083 1084 [[package]] 1085 name = "embed-resource" 1086 - version = "3.0.5" 1087 source = "registry+https://github.com/rust-lang/crates.io-index" 1088 - checksum = "4c6d81016d6c977deefb2ef8d8290da019e27cc26167e102185da528e6c0ab38" 1089 dependencies = [ 1090 "cc", 1091 "memchr", 1092 "rustc_version", 1093 - "toml 0.9.5", 1094 "vswhom", 1095 "winreg", 1096 ] ··· 1134 dependencies = [ 1135 "proc-macro2", 1136 "quote", 1137 - "syn 2.0.105", 1138 ] 1139 1140 [[package]] ··· 1154 dependencies = [ 1155 "proc-macro2", 1156 "quote", 1157 - "syn 2.0.105", 1158 ] 1159 1160 [[package]] ··· 1165 1166 [[package]] 1167 name = "erased-serde" 1168 - version = "0.4.6" 1169 source = "registry+https://github.com/rust-lang/crates.io-index" 1170 - checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" 1171 dependencies = [ 1172 "serde", 1173 "typeid", 1174 ] 1175 1176 [[package]] 1177 name = "errno" 1178 - version = "0.3.13" 1179 source = "registry+https://github.com/rust-lang/crates.io-index" 1180 - checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" 1181 dependencies = [ 1182 "libc", 1183 - "windows-sys 0.60.2", 1184 ] 1185 1186 [[package]] ··· 1227 1228 [[package]] 1229 name = "fast_image_resize" 1230 - version = "4.2.3" 1231 source = "registry+https://github.com/rust-lang/crates.io-index" 1232 - checksum = "43e5ce628b529e9bd2e2f378c1193215104b526fd494a572aa23414adc4e5553" 1233 dependencies = [ 1234 "bytemuck", 1235 "cfg-if", 1236 "document-features", 1237 "image", 1238 "num-traits", 1239 - "thiserror 1.0.69", 1240 ] 1241 1242 [[package]] ··· 1246 checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 1247 1248 [[package]] 1249 name = "fdeflate" 1250 version = "0.3.7" 1251 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1265 ] 1266 1267 [[package]] 1268 - name = "filetime" 1269 - version = "0.2.25" 1270 source = "registry+https://github.com/rust-lang/crates.io-index" 1271 - checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" 1272 - dependencies = [ 1273 - "cfg-if", 1274 - "libc", 1275 - "libredox", 1276 - "windows-sys 0.59.0", 1277 - ] 1278 1279 [[package]] 1280 name = "flate2" 1281 - version = "1.1.2" 1282 source = "registry+https://github.com/rust-lang/crates.io-index" 1283 - checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" 1284 dependencies = [ 1285 "crc32fast", 1286 "miniz_oxide", ··· 1319 dependencies = [ 1320 "proc-macro2", 1321 "quote", 1322 - "syn 2.0.105", 1323 ] 1324 1325 [[package]] ··· 1336 1337 [[package]] 1338 name = "form_urlencoded" 1339 - version = "1.2.1" 1340 source = "registry+https://github.com/rust-lang/crates.io-index" 1341 - checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 1342 dependencies = [ 1343 "percent-encoding", 1344 ] ··· 1416 dependencies = [ 1417 "proc-macro2", 1418 "quote", 1419 - "syn 2.0.105", 1420 ] 1421 1422 [[package]] ··· 1558 1559 [[package]] 1560 name = "generic-array" 1561 - version = "0.14.7" 1562 source = "registry+https://github.com/rust-lang/crates.io-index" 1563 - checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1564 dependencies = [ 1565 "typenum", 1566 "version_check", ··· 1568 1569 [[package]] 1570 name = "gethostname" 1571 - version = "0.4.3" 1572 source = "registry+https://github.com/rust-lang/crates.io-index" 1573 - checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" 1574 dependencies = [ 1575 - "libc", 1576 - "windows-targets 0.48.5", 1577 ] 1578 1579 [[package]] ··· 1602 1603 [[package]] 1604 name = "getrandom" 1605 - version = "0.3.3" 1606 source = "registry+https://github.com/rust-lang/crates.io-index" 1607 - checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" 1608 dependencies = [ 1609 "cfg-if", 1610 "js-sys", 1611 "libc", 1612 "r-efi", 1613 - "wasi 0.14.2+wasi-0.2.4", 1614 "wasm-bindgen", 1615 ] 1616 ··· 1625 ] 1626 1627 [[package]] 1628 - name = "gimli" 1629 - version = "0.31.1" 1630 - source = "registry+https://github.com/rust-lang/crates.io-index" 1631 - checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 1632 - 1633 - [[package]] 1634 name = "gio" 1635 version = "0.18.4" 1636 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1668 source = "registry+https://github.com/rust-lang/crates.io-index" 1669 checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" 1670 dependencies = [ 1671 - "bitflags 2.9.1", 1672 "futures-channel", 1673 "futures-core", 1674 "futures-executor", ··· 1692 checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" 1693 dependencies = [ 1694 "heck 0.4.1", 1695 - "proc-macro-crate 2.0.0", 1696 "proc-macro-error", 1697 "proc-macro2", 1698 "quote", 1699 - "syn 2.0.105", 1700 ] 1701 1702 [[package]] ··· 1775 "proc-macro-error", 1776 "proc-macro2", 1777 "quote", 1778 - "syn 2.0.105", 1779 ] 1780 1781 [[package]] ··· 1790 "futures-core", 1791 "futures-sink", 1792 "http", 1793 - "indexmap 2.10.0", 1794 "slab", 1795 "tokio", 1796 "tokio-util", ··· 1799 1800 [[package]] 1801 name = "half" 1802 - version = "2.6.0" 1803 source = "registry+https://github.com/rust-lang/crates.io-index" 1804 - checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" 1805 dependencies = [ 1806 "cfg-if", 1807 "crunchy", 1808 ] 1809 1810 [[package]] ··· 1821 1822 [[package]] 1823 name = "hashbrown" 1824 - version = "0.15.5" 1825 source = "registry+https://github.com/rust-lang/crates.io-index" 1826 - checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 1827 1828 [[package]] 1829 name = "heck" ··· 1903 1904 [[package]] 1905 name = "hyper" 1906 - version = "1.6.0" 1907 source = "registry+https://github.com/rust-lang/crates.io-index" 1908 - checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" 1909 dependencies = [ 1910 "bytes", 1911 "futures-channel", 1912 - "futures-util", 1913 "h2", 1914 "http", 1915 "http-body", 1916 "httparse", 1917 "itoa", 1918 "pin-project-lite", 1919 "smallvec", 1920 "tokio", 1921 "want", ··· 1956 1957 [[package]] 1958 name = "hyper-util" 1959 - version = "0.1.16" 1960 source = "registry+https://github.com/rust-lang/crates.io-index" 1961 - checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" 1962 dependencies = [ 1963 "base64 0.22.1", 1964 "bytes", ··· 1972 "libc", 1973 "percent-encoding", 1974 "pin-project-lite", 1975 - "socket2 0.6.0", 1976 "system-configuration", 1977 "tokio", 1978 "tower-service", ··· 1982 1983 [[package]] 1984 name = "iana-time-zone" 1985 - version = "0.1.63" 1986 source = "registry+https://github.com/rust-lang/crates.io-index" 1987 - checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" 1988 dependencies = [ 1989 "android_system_properties", 1990 "core-foundation-sys", ··· 1992 "js-sys", 1993 "log", 1994 "wasm-bindgen", 1995 - "windows-core", 1996 ] 1997 1998 [[package]] ··· 2011 checksum = "cc50b891e4acf8fe0e71ef88ec43ad82ee07b3810ad09de10f1d01f072ed4b98" 2012 dependencies = [ 2013 "byteorder", 2014 - "png", 2015 ] 2016 2017 [[package]] 2018 name = "icu_collections" 2019 - version = "2.0.0" 2020 source = "registry+https://github.com/rust-lang/crates.io-index" 2021 - checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 2022 dependencies = [ 2023 "displaydoc", 2024 "potential_utf", ··· 2029 2030 [[package]] 2031 name = "icu_locale_core" 2032 - version = "2.0.0" 2033 source = "registry+https://github.com/rust-lang/crates.io-index" 2034 - checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 2035 dependencies = [ 2036 "displaydoc", 2037 "litemap", ··· 2042 2043 [[package]] 2044 name = "icu_normalizer" 2045 - version = "2.0.0" 2046 source = "registry+https://github.com/rust-lang/crates.io-index" 2047 - checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 2048 dependencies = [ 2049 - "displaydoc", 2050 "icu_collections", 2051 "icu_normalizer_data", 2052 "icu_properties", ··· 2057 2058 [[package]] 2059 name = "icu_normalizer_data" 2060 - version = "2.0.0" 2061 source = "registry+https://github.com/rust-lang/crates.io-index" 2062 - checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 2063 2064 [[package]] 2065 name = "icu_properties" 2066 - version = "2.0.1" 2067 source = "registry+https://github.com/rust-lang/crates.io-index" 2068 - checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" 2069 dependencies = [ 2070 - "displaydoc", 2071 "icu_collections", 2072 "icu_locale_core", 2073 "icu_properties_data", 2074 "icu_provider", 2075 - "potential_utf", 2076 "zerotrie", 2077 "zerovec", 2078 ] 2079 2080 [[package]] 2081 name = "icu_properties_data" 2082 - version = "2.0.1" 2083 source = "registry+https://github.com/rust-lang/crates.io-index" 2084 - checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" 2085 2086 [[package]] 2087 name = "icu_provider" 2088 - version = "2.0.0" 2089 source = "registry+https://github.com/rust-lang/crates.io-index" 2090 - checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 2091 dependencies = [ 2092 "displaydoc", 2093 "icu_locale_core", 2094 - "stable_deref_trait", 2095 - "tinystr", 2096 "writeable", 2097 "yoke", 2098 "zerofrom", ··· 2108 2109 [[package]] 2110 name = "idna" 2111 - version = "1.0.3" 2112 source = "registry+https://github.com/rust-lang/crates.io-index" 2113 - checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 2114 dependencies = [ 2115 "idna_adapter", 2116 "smallvec", ··· 2129 2130 [[package]] 2131 name = "image" 2132 - version = "0.25.6" 2133 source = "registry+https://github.com/rust-lang/crates.io-index" 2134 - checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a" 2135 dependencies = [ 2136 "bytemuck", 2137 "byteorder-lite", ··· 2139 "exr", 2140 "gif", 2141 "image-webp", 2142 "num-traits", 2143 - "png", 2144 "qoi", 2145 "ravif", 2146 "rayon", ··· 2152 2153 [[package]] 2154 name = "image-webp" 2155 - version = "0.2.3" 2156 source = "registry+https://github.com/rust-lang/crates.io-index" 2157 - checksum = "f6970fe7a5300b4b42e62c52efa0187540a5bef546c60edaf554ef595d2e6f0b" 2158 dependencies = [ 2159 "byteorder-lite", 2160 "quick-error", ··· 2162 2163 [[package]] 2164 name = "imgref" 2165 - version = "1.11.0" 2166 source = "registry+https://github.com/rust-lang/crates.io-index" 2167 - checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408" 2168 2169 [[package]] 2170 name = "indexmap" ··· 2179 2180 [[package]] 2181 name = "indexmap" 2182 - version = "2.10.0" 2183 source = "registry+https://github.com/rust-lang/crates.io-index" 2184 - checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" 2185 dependencies = [ 2186 "equivalent", 2187 - "hashbrown 0.15.5", 2188 "serde", 2189 ] 2190 2191 [[package]] ··· 2199 2200 [[package]] 2201 name = "inotify" 2202 - version = "0.9.6" 2203 source = "registry+https://github.com/rust-lang/crates.io-index" 2204 - checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" 2205 dependencies = [ 2206 - "bitflags 1.3.2", 2207 "inotify-sys", 2208 "libc", 2209 ] ··· 2225 dependencies = [ 2226 "proc-macro2", 2227 "quote", 2228 - "syn 2.0.105", 2229 - ] 2230 - 2231 - [[package]] 2232 - name = "io-uring" 2233 - version = "0.7.9" 2234 - source = "registry+https://github.com/rust-lang/crates.io-index" 2235 - checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" 2236 - dependencies = [ 2237 - "bitflags 2.9.1", 2238 - "cfg-if", 2239 - "libc", 2240 ] 2241 2242 [[package]] ··· 2247 2248 [[package]] 2249 name = "iri-string" 2250 - version = "0.7.8" 2251 source = "registry+https://github.com/rust-lang/crates.io-index" 2252 - checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" 2253 dependencies = [ 2254 "memchr", 2255 "serde", ··· 2336 2337 [[package]] 2338 name = "jobserver" 2339 - version = "0.1.33" 2340 source = "registry+https://github.com/rust-lang/crates.io-index" 2341 - checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" 2342 dependencies = [ 2343 - "getrandom 0.3.3", 2344 "libc", 2345 ] 2346 - 2347 - [[package]] 2348 - name = "jpeg-decoder" 2349 - version = "0.3.2" 2350 - source = "registry+https://github.com/rust-lang/crates.io-index" 2351 - checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07" 2352 2353 [[package]] 2354 name = "js-sys" 2355 - version = "0.3.77" 2356 source = "registry+https://github.com/rust-lang/crates.io-index" 2357 - checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 2358 dependencies = [ 2359 "once_cell", 2360 "wasm-bindgen", ··· 2388 source = "registry+https://github.com/rust-lang/crates.io-index" 2389 checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" 2390 dependencies = [ 2391 - "bitflags 2.9.1", 2392 "serde", 2393 "unicode-segmentation", 2394 ] ··· 2421 dependencies = [ 2422 "cssparser", 2423 "html5ever", 2424 - "indexmap 2.10.0", 2425 "selectors", 2426 ] 2427 ··· 2433 2434 [[package]] 2435 name = "lebe" 2436 - version = "0.5.2" 2437 source = "registry+https://github.com/rust-lang/crates.io-index" 2438 - checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" 2439 2440 [[package]] 2441 name = "libappindicator" ··· 2463 2464 [[package]] 2465 name = "libc" 2466 - version = "0.2.175" 2467 source = "registry+https://github.com/rust-lang/crates.io-index" 2468 - checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" 2469 2470 [[package]] 2471 name = "libfuzzer-sys" ··· 2489 2490 [[package]] 2491 name = "libredox" 2492 - version = "0.1.9" 2493 source = "registry+https://github.com/rust-lang/crates.io-index" 2494 - checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" 2495 dependencies = [ 2496 - "bitflags 2.9.1", 2497 "libc", 2498 - "redox_syscall", 2499 ] 2500 2501 [[package]] 2502 name = "linux-raw-sys" 2503 - version = "0.4.15" 2504 source = "registry+https://github.com/rust-lang/crates.io-index" 2505 - checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" 2506 - 2507 - [[package]] 2508 - name = "linux-raw-sys" 2509 - version = "0.9.4" 2510 - source = "registry+https://github.com/rust-lang/crates.io-index" 2511 - checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" 2512 2513 [[package]] 2514 name = "litemap" 2515 - version = "0.8.0" 2516 source = "registry+https://github.com/rust-lang/crates.io-index" 2517 - checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 2518 2519 [[package]] 2520 name = "litrs" 2521 - version = "0.4.2" 2522 source = "registry+https://github.com/rust-lang/crates.io-index" 2523 - checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" 2524 2525 [[package]] 2526 name = "lock_api" 2527 - version = "0.4.13" 2528 source = "registry+https://github.com/rust-lang/crates.io-index" 2529 - checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" 2530 dependencies = [ 2531 - "autocfg", 2532 "scopeguard", 2533 ] 2534 2535 [[package]] 2536 name = "log" 2537 - version = "0.4.27" 2538 source = "registry+https://github.com/rust-lang/crates.io-index" 2539 - checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 2540 2541 [[package]] 2542 name = "loop9" ··· 2581 dependencies = [ 2582 "proc-macro2", 2583 "quote", 2584 - "syn 2.0.105", 2585 ] 2586 2587 [[package]] ··· 2602 2603 [[package]] 2604 name = "memchr" 2605 - version = "2.7.5" 2606 source = "registry+https://github.com/rust-lang/crates.io-index" 2607 - checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 2608 2609 [[package]] 2610 name = "memoffset" ··· 2622 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 2623 2624 [[package]] 2625 - name = "minimal-lexical" 2626 - version = "0.2.1" 2627 - source = "registry+https://github.com/rust-lang/crates.io-index" 2628 - checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 2629 - 2630 - [[package]] 2631 name = "miniz_oxide" 2632 version = "0.8.9" 2633 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2639 2640 [[package]] 2641 name = "mio" 2642 - version = "0.8.11" 2643 source = "registry+https://github.com/rust-lang/crates.io-index" 2644 - checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" 2645 dependencies = [ 2646 "libc", 2647 "log", 2648 "wasi 0.11.1+wasi-snapshot-preview1", 2649 - "windows-sys 0.48.0", 2650 ] 2651 2652 [[package]] 2653 - name = "mio" 2654 - version = "1.0.4" 2655 source = "registry+https://github.com/rust-lang/crates.io-index" 2656 - checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" 2657 dependencies = [ 2658 - "libc", 2659 - "wasi 0.11.1+wasi-snapshot-preview1", 2660 - "windows-sys 0.59.0", 2661 ] 2662 2663 [[package]] ··· 2681 "dpi", 2682 "gtk", 2683 "keyboard-types", 2684 - "objc2 0.6.2", 2685 "objc2-app-kit", 2686 "objc2-core-foundation", 2687 - "objc2-foundation 0.3.1", 2688 "once_cell", 2689 - "png", 2690 "serde", 2691 - "thiserror 2.0.14", 2692 "windows-sys 0.60.2", 2693 ] 2694 ··· 2715 source = "registry+https://github.com/rust-lang/crates.io-index" 2716 checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" 2717 dependencies = [ 2718 - "bitflags 2.9.1", 2719 "jni-sys", 2720 "log", 2721 "ndk-sys", ··· 2751 source = "registry+https://github.com/rust-lang/crates.io-index" 2752 checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" 2753 dependencies = [ 2754 - "bitflags 2.9.1", 2755 "cfg-if", 2756 "cfg_aliases", 2757 "libc", ··· 2766 2767 [[package]] 2768 name = "nom" 2769 - version = "7.1.3" 2770 source = "registry+https://github.com/rust-lang/crates.io-index" 2771 - checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 2772 dependencies = [ 2773 "memchr", 2774 - "minimal-lexical", 2775 ] 2776 2777 [[package]] ··· 2782 2783 [[package]] 2784 name = "notify" 2785 - version = "6.1.1" 2786 source = "registry+https://github.com/rust-lang/crates.io-index" 2787 - checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" 2788 dependencies = [ 2789 - "bitflags 2.9.1", 2790 - "crossbeam-channel", 2791 - "filetime", 2792 "fsevent-sys", 2793 "inotify", 2794 "kqueue", 2795 "libc", 2796 "log", 2797 - "mio 0.8.11", 2798 "walkdir", 2799 - "windows-sys 0.48.0", 2800 ] 2801 2802 [[package]] 2803 name = "num-bigint" 2804 version = "0.4.6" 2805 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2823 dependencies = [ 2824 "proc-macro2", 2825 "quote", 2826 - "syn 2.0.105", 2827 ] 2828 2829 [[package]] ··· 2857 2858 [[package]] 2859 name = "num_enum" 2860 - version = "0.7.4" 2861 source = "registry+https://github.com/rust-lang/crates.io-index" 2862 - checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" 2863 dependencies = [ 2864 "num_enum_derive", 2865 "rustversion", ··· 2867 2868 [[package]] 2869 name = "num_enum_derive" 2870 - version = "0.7.4" 2871 source = "registry+https://github.com/rust-lang/crates.io-index" 2872 - checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" 2873 dependencies = [ 2874 - "proc-macro-crate 1.3.1", 2875 "proc-macro2", 2876 "quote", 2877 - "syn 2.0.105", 2878 ] 2879 2880 [[package]] ··· 2895 2896 [[package]] 2897 name = "objc2" 2898 - version = "0.6.2" 2899 source = "registry+https://github.com/rust-lang/crates.io-index" 2900 - checksum = "561f357ba7f3a2a61563a186a163d0a3a5247e1089524a3981d49adb775078bc" 2901 dependencies = [ 2902 "objc2-encode", 2903 "objc2-exception-helper", ··· 2905 2906 [[package]] 2907 name = "objc2-app-kit" 2908 - version = "0.3.1" 2909 source = "registry+https://github.com/rust-lang/crates.io-index" 2910 - checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc" 2911 dependencies = [ 2912 - "bitflags 2.9.1", 2913 - "block2 0.6.1", 2914 "libc", 2915 - "objc2 0.6.2", 2916 "objc2-cloud-kit", 2917 "objc2-core-data", 2918 "objc2-core-foundation", 2919 "objc2-core-graphics", 2920 "objc2-core-image", 2921 - "objc2-foundation 0.3.1", 2922 - "objc2-quartz-core 0.3.1", 2923 ] 2924 2925 [[package]] 2926 name = "objc2-cloud-kit" 2927 - version = "0.3.1" 2928 source = "registry+https://github.com/rust-lang/crates.io-index" 2929 - checksum = "17614fdcd9b411e6ff1117dfb1d0150f908ba83a7df81b1f118005fe0a8ea15d" 2930 dependencies = [ 2931 - "bitflags 2.9.1", 2932 - "objc2 0.6.2", 2933 - "objc2-foundation 0.3.1", 2934 ] 2935 2936 [[package]] 2937 name = "objc2-core-data" 2938 - version = "0.3.1" 2939 source = "registry+https://github.com/rust-lang/crates.io-index" 2940 - checksum = "291fbbf7d29287518e8686417cf7239c74700fd4b607623140a7d4a3c834329d" 2941 dependencies = [ 2942 - "bitflags 2.9.1", 2943 - "objc2 0.6.2", 2944 - "objc2-foundation 0.3.1", 2945 ] 2946 2947 [[package]] 2948 name = "objc2-core-foundation" 2949 - version = "0.3.1" 2950 source = "registry+https://github.com/rust-lang/crates.io-index" 2951 - checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" 2952 dependencies = [ 2953 - "bitflags 2.9.1", 2954 "dispatch2", 2955 - "objc2 0.6.2", 2956 ] 2957 2958 [[package]] 2959 name = "objc2-core-graphics" 2960 - version = "0.3.1" 2961 source = "registry+https://github.com/rust-lang/crates.io-index" 2962 - checksum = "989c6c68c13021b5c2d6b71456ebb0f9dc78d752e86a98da7c716f4f9470f5a4" 2963 dependencies = [ 2964 - "bitflags 2.9.1", 2965 "dispatch2", 2966 - "objc2 0.6.2", 2967 "objc2-core-foundation", 2968 "objc2-io-surface", 2969 ] 2970 2971 [[package]] 2972 name = "objc2-core-image" 2973 - version = "0.3.1" 2974 source = "registry+https://github.com/rust-lang/crates.io-index" 2975 - checksum = "79b3dc0cc4386b6ccf21c157591b34a7f44c8e75b064f85502901ab2188c007e" 2976 dependencies = [ 2977 - "objc2 0.6.2", 2978 - "objc2-foundation 0.3.1", 2979 ] 2980 2981 [[package]] ··· 2999 source = "registry+https://github.com/rust-lang/crates.io-index" 3000 checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" 3001 dependencies = [ 3002 - "bitflags 2.9.1", 3003 "block2 0.5.1", 3004 "libc", 3005 "objc2 0.5.2", ··· 3007 3008 [[package]] 3009 name = "objc2-foundation" 3010 - version = "0.3.1" 3011 source = "registry+https://github.com/rust-lang/crates.io-index" 3012 - checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c" 3013 dependencies = [ 3014 - "bitflags 2.9.1", 3015 - "block2 0.6.1", 3016 "libc", 3017 - "objc2 0.6.2", 3018 "objc2-core-foundation", 3019 ] 3020 3021 [[package]] 3022 name = "objc2-io-surface" 3023 - version = "0.3.1" 3024 source = "registry+https://github.com/rust-lang/crates.io-index" 3025 - checksum = "7282e9ac92529fa3457ce90ebb15f4ecbc383e8338060960760fa2cf75420c3c" 3026 dependencies = [ 3027 - "bitflags 2.9.1", 3028 - "objc2 0.6.2", 3029 "objc2-core-foundation", 3030 ] 3031 ··· 3035 source = "registry+https://github.com/rust-lang/crates.io-index" 3036 checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" 3037 dependencies = [ 3038 - "bitflags 2.9.1", 3039 "block2 0.5.1", 3040 "objc2 0.5.2", 3041 "objc2-foundation 0.2.2", ··· 3047 source = "registry+https://github.com/rust-lang/crates.io-index" 3048 checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" 3049 dependencies = [ 3050 - "bitflags 2.9.1", 3051 "block2 0.5.1", 3052 "objc2 0.5.2", 3053 "objc2-foundation 0.2.2", ··· 3056 3057 [[package]] 3058 name = "objc2-quartz-core" 3059 - version = "0.3.1" 3060 source = "registry+https://github.com/rust-lang/crates.io-index" 3061 - checksum = "90ffb6a0cd5f182dc964334388560b12a57f7b74b3e2dec5e2722aa2dfb2ccd5" 3062 dependencies = [ 3063 - "bitflags 2.9.1", 3064 - "objc2 0.6.2", 3065 - "objc2-foundation 0.3.1", 3066 ] 3067 3068 [[package]] 3069 - name = "objc2-ui-kit" 3070 - version = "0.3.1" 3071 source = "registry+https://github.com/rust-lang/crates.io-index" 3072 - checksum = "25b1312ad7bc8a0e92adae17aa10f90aae1fb618832f9b993b022b591027daed" 3073 dependencies = [ 3074 - "bitflags 2.9.1", 3075 - "objc2 0.6.2", 3076 "objc2-core-foundation", 3077 - "objc2-foundation 0.3.1", 3078 ] 3079 3080 [[package]] 3081 - name = "objc2-web-kit" 3082 - version = "0.3.1" 3083 source = "registry+https://github.com/rust-lang/crates.io-index" 3084 - checksum = "91672909de8b1ce1c2252e95bbee8c1649c9ad9d14b9248b3d7b4c47903c47ad" 3085 dependencies = [ 3086 - "bitflags 2.9.1", 3087 - "block2 0.6.1", 3088 - "objc2 0.6.2", 3089 - "objc2-app-kit", 3090 "objc2-core-foundation", 3091 - "objc2-foundation 0.3.1", 3092 ] 3093 3094 [[package]] 3095 - name = "object" 3096 - version = "0.36.7" 3097 source = "registry+https://github.com/rust-lang/crates.io-index" 3098 - checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 3099 dependencies = [ 3100 - "memchr", 3101 ] 3102 3103 [[package]] ··· 3120 3121 [[package]] 3122 name = "openssl" 3123 - version = "0.10.73" 3124 source = "registry+https://github.com/rust-lang/crates.io-index" 3125 - checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" 3126 dependencies = [ 3127 - "bitflags 2.9.1", 3128 "cfg-if", 3129 "foreign-types 0.3.2", 3130 "libc", ··· 3141 dependencies = [ 3142 "proc-macro2", 3143 "quote", 3144 - "syn 2.0.105", 3145 ] 3146 3147 [[package]] ··· 3152 3153 [[package]] 3154 name = "openssl-sys" 3155 - version = "0.9.109" 3156 source = "registry+https://github.com/rust-lang/crates.io-index" 3157 - checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" 3158 dependencies = [ 3159 "cc", 3160 "libc", ··· 3190 3191 [[package]] 3192 name = "os_pipe" 3193 - version = "1.2.2" 3194 source = "registry+https://github.com/rust-lang/crates.io-index" 3195 - checksum = "db335f4760b14ead6290116f2427bf33a14d4f0617d49f78a246de10c1831224" 3196 dependencies = [ 3197 "libc", 3198 - "windows-sys 0.59.0", 3199 ] 3200 3201 [[package]] ··· 3231 3232 [[package]] 3233 name = "parking_lot" 3234 - version = "0.12.4" 3235 source = "registry+https://github.com/rust-lang/crates.io-index" 3236 - checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" 3237 dependencies = [ 3238 "lock_api", 3239 "parking_lot_core", ··· 3241 3242 [[package]] 3243 name = "parking_lot_core" 3244 - version = "0.9.11" 3245 source = "registry+https://github.com/rust-lang/crates.io-index" 3246 - checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" 3247 dependencies = [ 3248 "cfg-if", 3249 "libc", 3250 "redox_syscall", 3251 "smallvec", 3252 - "windows-targets 0.52.6", 3253 ] 3254 3255 [[package]] ··· 3266 3267 [[package]] 3268 name = "percent-encoding" 3269 - version = "2.3.1" 3270 source = "registry+https://github.com/rust-lang/crates.io-index" 3271 - checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 3272 3273 [[package]] 3274 name = "phf" ··· 3374 "phf_shared 0.11.3", 3375 "proc-macro2", 3376 "quote", 3377 - "syn 2.0.105", 3378 ] 3379 3380 [[package]] ··· 3435 3436 [[package]] 3437 name = "plist" 3438 - version = "1.7.4" 3439 source = "registry+https://github.com/rust-lang/crates.io-index" 3440 - checksum = "3af6b589e163c5a788fab00ce0c0366f6efbb9959c2f9874b224936af7fce7e1" 3441 dependencies = [ 3442 "base64 0.22.1", 3443 - "indexmap 2.10.0", 3444 "quick-xml", 3445 "serde", 3446 "time", ··· 3460 ] 3461 3462 [[package]] 3463 name = "polling" 3464 - version = "3.10.0" 3465 source = "registry+https://github.com/rust-lang/crates.io-index" 3466 - checksum = "b5bd19146350fe804f7cb2669c851c03d69da628803dab0d98018142aaa5d829" 3467 dependencies = [ 3468 "cfg-if", 3469 "concurrent-queue", 3470 "hermit-abi", 3471 "pin-project-lite", 3472 - "rustix 1.0.8", 3473 - "windows-sys 0.60.2", 3474 ] 3475 3476 [[package]] 3477 name = "potential_utf" 3478 - version = "0.1.2" 3479 source = "registry+https://github.com/rust-lang/crates.io-index" 3480 - checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" 3481 dependencies = [ 3482 "zerovec", 3483 ] ··· 3515 3516 [[package]] 3517 name = "proc-macro-crate" 3518 - version = "2.0.0" 3519 source = "registry+https://github.com/rust-lang/crates.io-index" 3520 - checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" 3521 dependencies = [ 3522 "toml_edit 0.20.2", 3523 ] 3524 3525 [[package]] 3526 name = "proc-macro-crate" 3527 - version = "3.3.0" 3528 source = "registry+https://github.com/rust-lang/crates.io-index" 3529 - checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" 3530 dependencies = [ 3531 - "toml_edit 0.22.27", 3532 ] 3533 3534 [[package]] ··· 3563 3564 [[package]] 3565 name = "proc-macro2" 3566 - version = "1.0.97" 3567 source = "registry+https://github.com/rust-lang/crates.io-index" 3568 - checksum = "d61789d7719defeb74ea5fe81f2fdfdbd28a803847077cecce2ff14e1472f6f1" 3569 dependencies = [ 3570 "unicode-ident", 3571 ] ··· 3586 checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" 3587 dependencies = [ 3588 "quote", 3589 - "syn 2.0.105", 3590 ] 3591 3592 [[package]] ··· 3606 ] 3607 3608 [[package]] 3609 name = "qoi" 3610 version = "0.4.1" 3611 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3622 3623 [[package]] 3624 name = "quick-xml" 3625 - version = "0.38.1" 3626 source = "registry+https://github.com/rust-lang/crates.io-index" 3627 - checksum = "9845d9dccf565065824e69f9f235fafba1587031eda353c1f1561cd6a6be78f4" 3628 dependencies = [ 3629 "memchr", 3630 ] 3631 3632 [[package]] 3633 name = "quinn" 3634 - version = "0.11.8" 3635 source = "registry+https://github.com/rust-lang/crates.io-index" 3636 - checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" 3637 dependencies = [ 3638 "bytes", 3639 "cfg_aliases", ··· 3642 "quinn-udp", 3643 "rustc-hash", 3644 "rustls", 3645 - "socket2 0.5.10", 3646 - "thiserror 2.0.14", 3647 "tokio", 3648 "tracing", 3649 "web-time", ··· 3651 3652 [[package]] 3653 name = "quinn-proto" 3654 - version = "0.11.12" 3655 source = "registry+https://github.com/rust-lang/crates.io-index" 3656 - checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" 3657 dependencies = [ 3658 "bytes", 3659 - "getrandom 0.3.3", 3660 "lru-slab", 3661 "rand 0.9.2", 3662 "ring", ··· 3664 "rustls", 3665 "rustls-pki-types", 3666 "slab", 3667 - "thiserror 2.0.14", 3668 "tinyvec", 3669 "tracing", 3670 "web-time", ··· 3672 3673 [[package]] 3674 name = "quinn-udp" 3675 - version = "0.5.13" 3676 source = "registry+https://github.com/rust-lang/crates.io-index" 3677 - checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" 3678 dependencies = [ 3679 "cfg_aliases", 3680 "libc", 3681 "once_cell", 3682 - "socket2 0.5.10", 3683 "tracing", 3684 - "windows-sys 0.59.0", 3685 ] 3686 3687 [[package]] 3688 name = "quote" 3689 - version = "1.0.40" 3690 source = "registry+https://github.com/rust-lang/crates.io-index" 3691 - checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 3692 dependencies = [ 3693 "proc-macro2", 3694 ] ··· 3788 source = "registry+https://github.com/rust-lang/crates.io-index" 3789 checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 3790 dependencies = [ 3791 - "getrandom 0.3.3", 3792 ] 3793 3794 [[package]] ··· 3887 3888 [[package]] 3889 name = "redox_syscall" 3890 - version = "0.5.17" 3891 - source = "registry+https://github.com/rust-lang/crates.io-index" 3892 - checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" 3893 - dependencies = [ 3894 - "bitflags 2.9.1", 3895 - ] 3896 - 3897 - [[package]] 3898 - name = "redox_users" 3899 - version = "0.4.6" 3900 source = "registry+https://github.com/rust-lang/crates.io-index" 3901 - checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" 3902 dependencies = [ 3903 - "getrandom 0.2.16", 3904 - "libredox", 3905 - "thiserror 1.0.69", 3906 ] 3907 3908 [[package]] ··· 3913 dependencies = [ 3914 "getrandom 0.2.16", 3915 "libredox", 3916 - "thiserror 2.0.14", 3917 ] 3918 3919 [[package]] 3920 name = "ref-cast" 3921 - version = "1.0.24" 3922 source = "registry+https://github.com/rust-lang/crates.io-index" 3923 - checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" 3924 dependencies = [ 3925 "ref-cast-impl", 3926 ] 3927 3928 [[package]] 3929 name = "ref-cast-impl" 3930 - version = "1.0.24" 3931 source = "registry+https://github.com/rust-lang/crates.io-index" 3932 - checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" 3933 dependencies = [ 3934 "proc-macro2", 3935 "quote", 3936 - "syn 2.0.105", 3937 ] 3938 3939 [[package]] 3940 name = "regex" 3941 - version = "1.11.1" 3942 source = "registry+https://github.com/rust-lang/crates.io-index" 3943 - checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 3944 dependencies = [ 3945 "aho-corasick", 3946 "memchr", ··· 3950 3951 [[package]] 3952 name = "regex-automata" 3953 - version = "0.4.9" 3954 source = "registry+https://github.com/rust-lang/crates.io-index" 3955 - checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 3956 dependencies = [ 3957 "aho-corasick", 3958 "memchr", ··· 3961 3962 [[package]] 3963 name = "regex-syntax" 3964 - version = "0.8.5" 3965 source = "registry+https://github.com/rust-lang/crates.io-index" 3966 - checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 3967 3968 [[package]] 3969 name = "reqwest" 3970 - version = "0.12.23" 3971 source = "registry+https://github.com/rust-lang/crates.io-index" 3972 - checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" 3973 dependencies = [ 3974 "base64 0.22.1", 3975 "bytes", ··· 4037 4038 [[package]] 4039 name = "rust-ini" 4040 - version = "0.21.2" 4041 source = "registry+https://github.com/rust-lang/crates.io-index" 4042 - checksum = "e7295b7ce3bf4806b419dc3420745998b447178b7005e2011947b38fc5aa6791" 4043 dependencies = [ 4044 "cfg-if", 4045 "ordered-multimap", 4046 ] 4047 4048 [[package]] 4049 - name = "rustc-demangle" 4050 - version = "0.1.26" 4051 - source = "registry+https://github.com/rust-lang/crates.io-index" 4052 - checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" 4053 - 4054 - [[package]] 4055 name = "rustc-hash" 4056 version = "2.1.1" 4057 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4068 4069 [[package]] 4070 name = "rustix" 4071 - version = "0.38.44" 4072 - source = "registry+https://github.com/rust-lang/crates.io-index" 4073 - checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 4074 - dependencies = [ 4075 - "bitflags 2.9.1", 4076 - "errno", 4077 - "libc", 4078 - "linux-raw-sys 0.4.15", 4079 - "windows-sys 0.59.0", 4080 - ] 4081 - 4082 - [[package]] 4083 - name = "rustix" 4084 - version = "1.0.8" 4085 source = "registry+https://github.com/rust-lang/crates.io-index" 4086 - checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" 4087 dependencies = [ 4088 - "bitflags 2.9.1", 4089 "errno", 4090 "libc", 4091 - "linux-raw-sys 0.9.4", 4092 - "windows-sys 0.60.2", 4093 ] 4094 4095 [[package]] 4096 name = "rustls" 4097 - version = "0.23.31" 4098 source = "registry+https://github.com/rust-lang/crates.io-index" 4099 - checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" 4100 dependencies = [ 4101 "once_cell", 4102 "ring", ··· 4108 4109 [[package]] 4110 name = "rustls-pki-types" 4111 - version = "1.12.0" 4112 source = "registry+https://github.com/rust-lang/crates.io-index" 4113 - checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" 4114 dependencies = [ 4115 "web-time", 4116 "zeroize", ··· 4118 4119 [[package]] 4120 name = "rustls-webpki" 4121 - version = "0.103.4" 4122 source = "registry+https://github.com/rust-lang/crates.io-index" 4123 - checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" 4124 dependencies = [ 4125 "ring", 4126 "rustls-pki-types", ··· 4150 4151 [[package]] 4152 name = "schannel" 4153 - version = "0.1.27" 4154 source = "registry+https://github.com/rust-lang/crates.io-index" 4155 - checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" 4156 dependencies = [ 4157 - "windows-sys 0.59.0", 4158 ] 4159 4160 [[package]] ··· 4186 4187 [[package]] 4188 name = "schemars" 4189 - version = "1.0.4" 4190 source = "registry+https://github.com/rust-lang/crates.io-index" 4191 - checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" 4192 dependencies = [ 4193 "dyn-clone", 4194 "ref-cast", ··· 4205 "proc-macro2", 4206 "quote", 4207 "serde_derive_internals", 4208 - "syn 2.0.105", 4209 ] 4210 4211 [[package]] ··· 4220 source = "registry+https://github.com/rust-lang/crates.io-index" 4221 checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 4222 dependencies = [ 4223 - "bitflags 2.9.1", 4224 "core-foundation 0.9.4", 4225 "core-foundation-sys", 4226 "libc", ··· 4229 4230 [[package]] 4231 name = "security-framework-sys" 4232 - version = "2.14.0" 4233 source = "registry+https://github.com/rust-lang/crates.io-index" 4234 - checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" 4235 dependencies = [ 4236 "core-foundation-sys", 4237 "libc", ··· 4257 4258 [[package]] 4259 name = "semver" 4260 - version = "1.0.26" 4261 source = "registry+https://github.com/rust-lang/crates.io-index" 4262 - checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" 4263 dependencies = [ 4264 "serde", 4265 ] 4266 4267 [[package]] 4268 name = "serde" 4269 - version = "1.0.219" 4270 source = "registry+https://github.com/rust-lang/crates.io-index" 4271 - checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 4272 dependencies = [ 4273 "serde_derive", 4274 ] 4275 4276 [[package]] 4277 name = "serde-untagged" 4278 - version = "0.1.8" 4279 source = "registry+https://github.com/rust-lang/crates.io-index" 4280 - checksum = "34836a629bcbc6f1afdf0907a744870039b1e14c0561cb26094fa683b158eff3" 4281 dependencies = [ 4282 "erased-serde", 4283 "serde", 4284 "typeid", 4285 ] 4286 4287 [[package]] 4288 name = "serde_derive" 4289 - version = "1.0.219" 4290 source = "registry+https://github.com/rust-lang/crates.io-index" 4291 - checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 4292 dependencies = [ 4293 "proc-macro2", 4294 "quote", 4295 - "syn 2.0.105", 4296 ] 4297 4298 [[package]] ··· 4303 dependencies = [ 4304 "proc-macro2", 4305 "quote", 4306 - "syn 2.0.105", 4307 ] 4308 4309 [[package]] 4310 name = "serde_json" 4311 - version = "1.0.142" 4312 source = "registry+https://github.com/rust-lang/crates.io-index" 4313 - checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" 4314 dependencies = [ 4315 "itoa", 4316 "memchr", 4317 "ryu", 4318 "serde", 4319 ] 4320 4321 [[package]] ··· 4326 dependencies = [ 4327 "proc-macro2", 4328 "quote", 4329 - "syn 2.0.105", 4330 ] 4331 4332 [[package]] ··· 4340 4341 [[package]] 4342 name = "serde_spanned" 4343 - version = "1.0.0" 4344 source = "registry+https://github.com/rust-lang/crates.io-index" 4345 - checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" 4346 dependencies = [ 4347 - "serde", 4348 ] 4349 4350 [[package]] ··· 4361 4362 [[package]] 4363 name = "serde_with" 4364 - version = "3.14.0" 4365 source = "registry+https://github.com/rust-lang/crates.io-index" 4366 - checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" 4367 dependencies = [ 4368 "base64 0.22.1", 4369 "chrono", 4370 "hex", 4371 "indexmap 1.9.3", 4372 - "indexmap 2.10.0", 4373 "schemars 0.9.0", 4374 - "schemars 1.0.4", 4375 - "serde", 4376 - "serde_derive", 4377 "serde_json", 4378 "serde_with_macros", 4379 "time", ··· 4381 4382 [[package]] 4383 name = "serde_with_macros" 4384 - version = "3.14.0" 4385 source = "registry+https://github.com/rust-lang/crates.io-index" 4386 - checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" 4387 dependencies = [ 4388 "darling", 4389 "proc-macro2", 4390 "quote", 4391 - "syn 2.0.105", 4392 ] 4393 4394 [[package]] 4395 name = "serialize-to-javascript" 4396 - version = "0.1.1" 4397 source = "registry+https://github.com/rust-lang/crates.io-index" 4398 - checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" 4399 dependencies = [ 4400 "serde", 4401 "serde_json", ··· 4404 4405 [[package]] 4406 name = "serialize-to-javascript-impl" 4407 - version = "0.1.1" 4408 source = "registry+https://github.com/rust-lang/crates.io-index" 4409 - checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" 4410 dependencies = [ 4411 "proc-macro2", 4412 "quote", 4413 - "syn 1.0.109", 4414 ] 4415 4416 [[package]] ··· 4522 4523 [[package]] 4524 name = "socket2" 4525 - version = "0.5.10" 4526 source = "registry+https://github.com/rust-lang/crates.io-index" 4527 - checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" 4528 dependencies = [ 4529 "libc", 4530 - "windows-sys 0.52.0", 4531 - ] 4532 - 4533 - [[package]] 4534 - name = "socket2" 4535 - version = "0.6.0" 4536 - source = "registry+https://github.com/rust-lang/crates.io-index" 4537 - checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" 4538 - dependencies = [ 4539 - "libc", 4540 - "windows-sys 0.59.0", 4541 ] 4542 4543 [[package]] ··· 4590 4591 [[package]] 4592 name = "stable_deref_trait" 4593 - version = "1.2.0" 4594 source = "registry+https://github.com/rust-lang/crates.io-index" 4595 - checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 4596 4597 [[package]] 4598 name = "static_assertions" ··· 4661 4662 [[package]] 4663 name = "syn" 4664 - version = "2.0.105" 4665 source = "registry+https://github.com/rust-lang/crates.io-index" 4666 - checksum = "7bc3fcb250e53458e712715cf74285c1f889686520d79294a9ef3bd7aa1fc619" 4667 dependencies = [ 4668 "proc-macro2", 4669 "quote", ··· 4687 dependencies = [ 4688 "proc-macro2", 4689 "quote", 4690 - "syn 2.0.105", 4691 ] 4692 4693 [[package]] ··· 4696 source = "registry+https://github.com/rust-lang/crates.io-index" 4697 checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" 4698 dependencies = [ 4699 - "bitflags 2.9.1", 4700 "core-foundation 0.9.4", 4701 "system-configuration-sys", 4702 ] ··· 4726 4727 [[package]] 4728 name = "tao" 4729 - version = "0.34.0" 4730 source = "registry+https://github.com/rust-lang/crates.io-index" 4731 - checksum = "49c380ca75a231b87b6c9dd86948f035012e7171d1a7c40a9c2890489a7ffd8a" 4732 dependencies = [ 4733 - "bitflags 2.9.1", 4734 "core-foundation 0.10.1", 4735 "core-graphics", 4736 "crossbeam-channel", ··· 4747 "ndk", 4748 "ndk-context", 4749 "ndk-sys", 4750 - "objc2 0.6.2", 4751 "objc2-app-kit", 4752 - "objc2-foundation 0.3.1", 4753 "once_cell", 4754 "parking_lot", 4755 "raw-window-handle", ··· 4758 "unicode-segmentation", 4759 "url", 4760 "windows", 4761 - "windows-core", 4762 "windows-version", 4763 "x11-dl", 4764 ] ··· 4771 dependencies = [ 4772 "proc-macro2", 4773 "quote", 4774 - "syn 2.0.105", 4775 ] 4776 4777 [[package]] ··· 4782 4783 [[package]] 4784 name = "tauri" 4785 - version = "2.7.0" 4786 source = "registry+https://github.com/rust-lang/crates.io-index" 4787 - checksum = "352a4bc7bf6c25f5624227e3641adf475a6535707451b09bb83271df8b7a6ac7" 4788 dependencies = [ 4789 "anyhow", 4790 "bytes", 4791 - "dirs 6.0.0", 4792 "dunce", 4793 "embed_plist", 4794 - "getrandom 0.3.3", 4795 "glob", 4796 "gtk", 4797 "heck 0.5.0", ··· 4802 "log", 4803 "mime", 4804 "muda", 4805 - "objc2 0.6.2", 4806 "objc2-app-kit", 4807 - "objc2-foundation 0.3.1", 4808 "objc2-ui-kit", 4809 "percent-encoding", 4810 "plist", 4811 "raw-window-handle", ··· 4820 "tauri-runtime", 4821 "tauri-runtime-wry", 4822 "tauri-utils", 4823 - "thiserror 2.0.14", 4824 "tokio", 4825 "tray-icon", 4826 "url", 4827 - "urlpattern", 4828 "webkit2gtk", 4829 "webview2-com", 4830 "window-vibrancy", ··· 4833 4834 [[package]] 4835 name = "tauri-build" 4836 - version = "2.3.1" 4837 source = "registry+https://github.com/rust-lang/crates.io-index" 4838 - checksum = "182d688496c06bf08ea896459bf483eb29cdff35c1c4c115fb14053514303064" 4839 dependencies = [ 4840 "anyhow", 4841 "cargo_toml", 4842 - "dirs 6.0.0", 4843 "glob", 4844 "heck 0.5.0", 4845 "json-patch", ··· 4849 "serde_json", 4850 "tauri-utils", 4851 "tauri-winres", 4852 - "toml 0.8.2", 4853 "walkdir", 4854 ] 4855 4856 [[package]] 4857 name = "tauri-codegen" 4858 - version = "2.3.1" 4859 source = "registry+https://github.com/rust-lang/crates.io-index" 4860 - checksum = "b54a99a6cd8e01abcfa61508177e6096a4fe2681efecee9214e962f2f073ae4a" 4861 dependencies = [ 4862 "base64 0.22.1", 4863 "brotli", 4864 "ico", 4865 "json-patch", 4866 "plist", 4867 - "png", 4868 "proc-macro2", 4869 "quote", 4870 "semver", 4871 "serde", 4872 "serde_json", 4873 "sha2", 4874 - "syn 2.0.105", 4875 "tauri-utils", 4876 - "thiserror 2.0.14", 4877 "time", 4878 "url", 4879 "uuid", ··· 4882 4883 [[package]] 4884 name = "tauri-macros" 4885 - version = "2.3.2" 4886 source = "registry+https://github.com/rust-lang/crates.io-index" 4887 - checksum = "7945b14dc45e23532f2ded6e120170bbdd4af5ceaa45784a6b33d250fbce3f9e" 4888 dependencies = [ 4889 "heck 0.5.0", 4890 "proc-macro2", 4891 "quote", 4892 - "syn 2.0.105", 4893 "tauri-codegen", 4894 "tauri-utils", 4895 ] 4896 4897 [[package]] 4898 name = "tauri-plugin" 4899 - version = "2.3.1" 4900 source = "registry+https://github.com/rust-lang/crates.io-index" 4901 - checksum = "5bd5c1e56990c70a906ef67a9851bbdba9136d26075ee9a2b19c8b46986b3e02" 4902 dependencies = [ 4903 "anyhow", 4904 "glob", ··· 4907 "serde", 4908 "serde_json", 4909 "tauri-utils", 4910 - "toml 0.8.2", 4911 "walkdir", 4912 ] 4913 4914 [[package]] 4915 name = "tauri-plugin-deep-link" 4916 - version = "2.4.1" 4917 source = "registry+https://github.com/rust-lang/crates.io-index" 4918 - checksum = "1fec67f32d7a06d80bd3dc009fdb678c35a66116d9cb8cd2bb32e406c2b5bbd2" 4919 dependencies = [ 4920 "dunce", 4921 "rust-ini", 4922 "serde", 4923 "serde_json", 4924 "tauri", 4925 "tauri-plugin", 4926 "tauri-utils", 4927 - "thiserror 2.0.14", 4928 "tracing", 4929 "url", 4930 "windows-registry", 4931 - "windows-result", 4932 ] 4933 4934 [[package]] 4935 name = "tauri-plugin-fs" 4936 - version = "2.4.1" 4937 source = "registry+https://github.com/rust-lang/crates.io-index" 4938 - checksum = "8c6ef84ee2f2094ce093e55106d90d763ba343fad57566992962e8f76d113f99" 4939 dependencies = [ 4940 "anyhow", 4941 "dunce", ··· 4948 "tauri", 4949 "tauri-plugin", 4950 "tauri-utils", 4951 - "thiserror 2.0.14", 4952 - "toml 0.8.2", 4953 "url", 4954 ] 4955 4956 [[package]] 4957 name = "tauri-plugin-http" 4958 - version = "2.5.1" 4959 source = "registry+https://github.com/rust-lang/crates.io-index" 4960 - checksum = "fcde333d97e565a7765aad82f32d8672458f7bd77b6ee653830d5dded9d7b5c2" 4961 dependencies = [ 4962 "bytes", 4963 "cookie_store", ··· 4971 "tauri", 4972 "tauri-plugin", 4973 "tauri-plugin-fs", 4974 - "thiserror 2.0.14", 4975 "tokio", 4976 "url", 4977 "urlpattern", ··· 4979 4980 [[package]] 4981 name = "tauri-plugin-process" 4982 - version = "2.3.0" 4983 source = "registry+https://github.com/rust-lang/crates.io-index" 4984 - checksum = "7461c622a5ea00eb9cd9f7a08dbd3bf79484499fd5c21aa2964677f64ca651ab" 4985 dependencies = [ 4986 "tauri", 4987 "tauri-plugin", ··· 4989 4990 [[package]] 4991 name = "tauri-plugin-shell" 4992 - version = "2.3.0" 4993 source = "registry+https://github.com/rust-lang/crates.io-index" 4994 - checksum = "2b9ffadec5c3523f11e8273465cacb3d86ea7652a28e6e2a2e9b5c182f791d25" 4995 dependencies = [ 4996 "encoding_rs", 4997 "log", ··· 5004 "shared_child", 5005 "tauri", 5006 "tauri-plugin", 5007 - "thiserror 2.0.14", 5008 "tokio", 5009 ] 5010 5011 [[package]] 5012 name = "tauri-plugin-single-instance" 5013 - version = "2.3.2" 5014 source = "registry+https://github.com/rust-lang/crates.io-index" 5015 - checksum = "50a0e5a4ce43cb3a733c3aef85e8478bc769dac743c615e26639cbf5d953faf7" 5016 dependencies = [ 5017 "serde", 5018 "serde_json", 5019 "tauri", 5020 "tauri-plugin-deep-link", 5021 - "thiserror 2.0.14", 5022 "tracing", 5023 "windows-sys 0.60.2", 5024 "zbus", ··· 5026 5027 [[package]] 5028 name = "tauri-runtime" 5029 - version = "2.7.1" 5030 source = "registry+https://github.com/rust-lang/crates.io-index" 5031 - checksum = "2b1cc885be806ea15ff7b0eb47098a7b16323d9228876afda329e34e2d6c4676" 5032 dependencies = [ 5033 "cookie", 5034 "dpi", 5035 "gtk", 5036 "http", 5037 "jni", 5038 - "objc2 0.6.2", 5039 "objc2-ui-kit", 5040 "raw-window-handle", 5041 "serde", 5042 "serde_json", 5043 "tauri-utils", 5044 - "thiserror 2.0.14", 5045 "url", 5046 "windows", 5047 ] 5048 5049 [[package]] 5050 name = "tauri-runtime-wry" 5051 - version = "2.7.2" 5052 source = "registry+https://github.com/rust-lang/crates.io-index" 5053 - checksum = "fe653a2fbbef19fe898efc774bc52c8742576342a33d3d028c189b57eb1d2439" 5054 dependencies = [ 5055 "gtk", 5056 "http", 5057 "jni", 5058 "log", 5059 - "objc2 0.6.2", 5060 "objc2-app-kit", 5061 - "objc2-foundation 0.3.1", 5062 "once_cell", 5063 "percent-encoding", 5064 "raw-window-handle", ··· 5075 5076 [[package]] 5077 name = "tauri-utils" 5078 - version = "2.6.0" 5079 source = "registry+https://github.com/rust-lang/crates.io-index" 5080 - checksum = "9330c15cabfe1d9f213478c9e8ec2b0c76dab26bb6f314b8ad1c8a568c1d186e" 5081 dependencies = [ 5082 "anyhow", 5083 "brotli", ··· 5103 "serde_json", 5104 "serde_with", 5105 "swift-rs", 5106 - "thiserror 2.0.14", 5107 - "toml 0.8.2", 5108 "url", 5109 "urlpattern", 5110 "uuid", ··· 5118 checksum = "fd21509dd1fa9bd355dc29894a6ff10635880732396aa38c0066c1e6c1ab8074" 5119 dependencies = [ 5120 "embed-resource", 5121 - "toml 0.9.5", 5122 ] 5123 5124 [[package]] 5125 name = "tempfile" 5126 - version = "3.20.0" 5127 source = "registry+https://github.com/rust-lang/crates.io-index" 5128 - checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" 5129 dependencies = [ 5130 "fastrand", 5131 - "getrandom 0.3.3", 5132 "once_cell", 5133 - "rustix 1.0.8", 5134 - "windows-sys 0.59.0", 5135 ] 5136 5137 [[package]] ··· 5156 5157 [[package]] 5158 name = "thiserror" 5159 - version = "2.0.14" 5160 source = "registry+https://github.com/rust-lang/crates.io-index" 5161 - checksum = "0b0949c3a6c842cbde3f1686d6eea5a010516deb7085f79db747562d4102f41e" 5162 dependencies = [ 5163 - "thiserror-impl 2.0.14", 5164 ] 5165 5166 [[package]] ··· 5171 dependencies = [ 5172 "proc-macro2", 5173 "quote", 5174 - "syn 2.0.105", 5175 ] 5176 5177 [[package]] 5178 name = "thiserror-impl" 5179 - version = "2.0.14" 5180 source = "registry+https://github.com/rust-lang/crates.io-index" 5181 - checksum = "cc5b44b4ab9c2fdd0e0512e6bece8388e214c0749f5862b114cc5b7a25daf227" 5182 dependencies = [ 5183 "proc-macro2", 5184 "quote", 5185 - "syn 2.0.105", 5186 ] 5187 5188 [[package]] 5189 name = "tiff" 5190 - version = "0.9.1" 5191 source = "registry+https://github.com/rust-lang/crates.io-index" 5192 - checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" 5193 dependencies = [ 5194 "flate2", 5195 - "jpeg-decoder", 5196 "weezl", 5197 ] 5198 5199 [[package]] 5200 name = "time" 5201 - version = "0.3.41" 5202 source = "registry+https://github.com/rust-lang/crates.io-index" 5203 - checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" 5204 dependencies = [ 5205 "deranged", 5206 "itoa", ··· 5213 5214 [[package]] 5215 name = "time-core" 5216 - version = "0.1.4" 5217 source = "registry+https://github.com/rust-lang/crates.io-index" 5218 - checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" 5219 5220 [[package]] 5221 name = "time-macros" 5222 - version = "0.2.22" 5223 source = "registry+https://github.com/rust-lang/crates.io-index" 5224 - checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" 5225 dependencies = [ 5226 "num-conv", 5227 "time-core", ··· 5238 5239 [[package]] 5240 name = "tinystr" 5241 - version = "0.8.1" 5242 source = "registry+https://github.com/rust-lang/crates.io-index" 5243 - checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 5244 dependencies = [ 5245 "displaydoc", 5246 "zerovec", ··· 5248 5249 [[package]] 5250 name = "tinyvec" 5251 - version = "1.9.0" 5252 source = "registry+https://github.com/rust-lang/crates.io-index" 5253 - checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" 5254 dependencies = [ 5255 "tinyvec_macros", 5256 ] ··· 5263 5264 [[package]] 5265 name = "tokio" 5266 - version = "1.47.1" 5267 source = "registry+https://github.com/rust-lang/crates.io-index" 5268 - checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" 5269 dependencies = [ 5270 - "backtrace", 5271 "bytes", 5272 - "io-uring", 5273 "libc", 5274 - "mio 1.0.4", 5275 "pin-project-lite", 5276 - "slab", 5277 - "socket2 0.6.0", 5278 "tokio-macros", 5279 - "windows-sys 0.59.0", 5280 ] 5281 5282 [[package]] 5283 name = "tokio-macros" 5284 - version = "2.5.0" 5285 source = "registry+https://github.com/rust-lang/crates.io-index" 5286 - checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" 5287 dependencies = [ 5288 "proc-macro2", 5289 "quote", 5290 - "syn 2.0.105", 5291 ] 5292 5293 [[package]] ··· 5302 5303 [[package]] 5304 name = "tokio-rustls" 5305 - version = "0.26.2" 5306 source = "registry+https://github.com/rust-lang/crates.io-index" 5307 - checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" 5308 dependencies = [ 5309 "rustls", 5310 "tokio", ··· 5312 5313 [[package]] 5314 name = "tokio-util" 5315 - version = "0.7.16" 5316 source = "registry+https://github.com/rust-lang/crates.io-index" 5317 - checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" 5318 dependencies = [ 5319 "bytes", 5320 "futures-core", ··· 5331 dependencies = [ 5332 "serde", 5333 "serde_spanned 0.6.9", 5334 - "toml_datetime 0.6.11", 5335 "toml_edit 0.20.2", 5336 ] 5337 5338 [[package]] 5339 name = "toml" 5340 - version = "0.9.5" 5341 source = "registry+https://github.com/rust-lang/crates.io-index" 5342 - checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" 5343 dependencies = [ 5344 - "indexmap 2.10.0", 5345 - "serde", 5346 - "serde_spanned 1.0.0", 5347 - "toml_datetime 0.7.0", 5348 "toml_parser", 5349 "toml_writer", 5350 - "winnow 0.7.12", 5351 ] 5352 5353 [[package]] 5354 name = "toml_datetime" 5355 - version = "0.6.11" 5356 source = "registry+https://github.com/rust-lang/crates.io-index" 5357 - checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" 5358 dependencies = [ 5359 "serde", 5360 ] 5361 5362 [[package]] 5363 name = "toml_datetime" 5364 - version = "0.7.0" 5365 source = "registry+https://github.com/rust-lang/crates.io-index" 5366 - checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" 5367 dependencies = [ 5368 - "serde", 5369 ] 5370 5371 [[package]] ··· 5374 source = "registry+https://github.com/rust-lang/crates.io-index" 5375 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 5376 dependencies = [ 5377 - "indexmap 2.10.0", 5378 - "toml_datetime 0.6.11", 5379 "winnow 0.5.40", 5380 ] 5381 ··· 5385 source = "registry+https://github.com/rust-lang/crates.io-index" 5386 checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" 5387 dependencies = [ 5388 - "indexmap 2.10.0", 5389 "serde", 5390 "serde_spanned 0.6.9", 5391 - "toml_datetime 0.6.11", 5392 "winnow 0.5.40", 5393 ] 5394 5395 [[package]] 5396 name = "toml_edit" 5397 - version = "0.22.27" 5398 source = "registry+https://github.com/rust-lang/crates.io-index" 5399 - checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" 5400 dependencies = [ 5401 - "indexmap 2.10.0", 5402 - "toml_datetime 0.6.11", 5403 - "winnow 0.7.12", 5404 ] 5405 5406 [[package]] 5407 name = "toml_parser" 5408 - version = "1.0.2" 5409 source = "registry+https://github.com/rust-lang/crates.io-index" 5410 - checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" 5411 dependencies = [ 5412 - "winnow 0.7.12", 5413 ] 5414 5415 [[package]] 5416 name = "toml_writer" 5417 - version = "1.0.2" 5418 source = "registry+https://github.com/rust-lang/crates.io-index" 5419 - checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" 5420 5421 [[package]] 5422 name = "tower" ··· 5439 source = "registry+https://github.com/rust-lang/crates.io-index" 5440 checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" 5441 dependencies = [ 5442 - "bitflags 2.9.1", 5443 "bytes", 5444 "futures-util", 5445 "http", ··· 5482 dependencies = [ 5483 "proc-macro2", 5484 "quote", 5485 - "syn 2.0.105", 5486 ] 5487 5488 [[package]] ··· 5496 5497 [[package]] 5498 name = "tray-icon" 5499 - version = "0.21.1" 5500 source = "registry+https://github.com/rust-lang/crates.io-index" 5501 - checksum = "a0d92153331e7d02ec09137538996a7786fe679c629c279e82a6be762b7e6fe2" 5502 dependencies = [ 5503 "crossbeam-channel", 5504 - "dirs 6.0.0", 5505 "libappindicator", 5506 "muda", 5507 - "objc2 0.6.2", 5508 "objc2-app-kit", 5509 "objc2-core-foundation", 5510 "objc2-core-graphics", 5511 - "objc2-foundation 0.3.1", 5512 "once_cell", 5513 - "png", 5514 "serde", 5515 - "thiserror 2.0.14", 5516 - "windows-sys 0.59.0", 5517 ] 5518 5519 [[package]] ··· 5530 5531 [[package]] 5532 name = "typenum" 5533 - version = "1.18.0" 5534 source = "registry+https://github.com/rust-lang/crates.io-index" 5535 - checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" 5536 5537 [[package]] 5538 name = "uds_windows" ··· 5588 5589 [[package]] 5590 name = "unicode-ident" 5591 - version = "1.0.18" 5592 source = "registry+https://github.com/rust-lang/crates.io-index" 5593 - checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 5594 5595 [[package]] 5596 name = "unicode-segmentation" ··· 5606 5607 [[package]] 5608 name = "url" 5609 - version = "2.5.4" 5610 source = "registry+https://github.com/rust-lang/crates.io-index" 5611 - checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 5612 dependencies = [ 5613 "form_urlencoded", 5614 "idna", ··· 5642 5643 [[package]] 5644 name = "uuid" 5645 - version = "1.18.0" 5646 source = "registry+https://github.com/rust-lang/crates.io-index" 5647 - checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" 5648 dependencies = [ 5649 - "getrandom 0.3.3", 5650 "js-sys", 5651 "serde", 5652 "wasm-bindgen", ··· 5671 5672 [[package]] 5673 name = "version-compare" 5674 - version = "0.2.0" 5675 source = "registry+https://github.com/rust-lang/crates.io-index" 5676 - checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" 5677 5678 [[package]] 5679 name = "version_check" ··· 5733 checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 5734 5735 [[package]] 5736 - name = "wasi" 5737 - version = "0.14.2+wasi-0.2.4" 5738 source = "registry+https://github.com/rust-lang/crates.io-index" 5739 - checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 5740 dependencies = [ 5741 - "wit-bindgen-rt", 5742 ] 5743 5744 [[package]] 5745 name = "wasm-bindgen" 5746 - version = "0.2.100" 5747 source = "registry+https://github.com/rust-lang/crates.io-index" 5748 - checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 5749 dependencies = [ 5750 "cfg-if", 5751 "once_cell", 5752 "rustversion", 5753 "wasm-bindgen-macro", 5754 - ] 5755 - 5756 - [[package]] 5757 - name = "wasm-bindgen-backend" 5758 - version = "0.2.100" 5759 - source = "registry+https://github.com/rust-lang/crates.io-index" 5760 - checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 5761 - dependencies = [ 5762 - "bumpalo", 5763 - "log", 5764 - "proc-macro2", 5765 - "quote", 5766 - "syn 2.0.105", 5767 "wasm-bindgen-shared", 5768 ] 5769 5770 [[package]] 5771 name = "wasm-bindgen-futures" 5772 - version = "0.4.50" 5773 source = "registry+https://github.com/rust-lang/crates.io-index" 5774 - checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" 5775 dependencies = [ 5776 "cfg-if", 5777 "js-sys", ··· 5782 5783 [[package]] 5784 name = "wasm-bindgen-macro" 5785 - version = "0.2.100" 5786 source = "registry+https://github.com/rust-lang/crates.io-index" 5787 - checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 5788 dependencies = [ 5789 "quote", 5790 "wasm-bindgen-macro-support", ··· 5792 5793 [[package]] 5794 name = "wasm-bindgen-macro-support" 5795 - version = "0.2.100" 5796 source = "registry+https://github.com/rust-lang/crates.io-index" 5797 - checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 5798 dependencies = [ 5799 "proc-macro2", 5800 "quote", 5801 - "syn 2.0.105", 5802 - "wasm-bindgen-backend", 5803 "wasm-bindgen-shared", 5804 ] 5805 5806 [[package]] 5807 name = "wasm-bindgen-shared" 5808 - version = "0.2.100" 5809 source = "registry+https://github.com/rust-lang/crates.io-index" 5810 - checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 5811 dependencies = [ 5812 "unicode-ident", 5813 ] ··· 5827 5828 [[package]] 5829 name = "web-sys" 5830 - version = "0.3.77" 5831 source = "registry+https://github.com/rust-lang/crates.io-index" 5832 - checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" 5833 dependencies = [ 5834 "js-sys", 5835 "wasm-bindgen", ··· 5891 5892 [[package]] 5893 name = "webpki-roots" 5894 - version = "1.0.2" 5895 source = "registry+https://github.com/rust-lang/crates.io-index" 5896 - checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" 5897 dependencies = [ 5898 "rustls-pki-types", 5899 ] ··· 5907 "webview2-com-macros", 5908 "webview2-com-sys", 5909 "windows", 5910 - "windows-core", 5911 "windows-implement", 5912 "windows-interface", 5913 ] ··· 5920 dependencies = [ 5921 "proc-macro2", 5922 "quote", 5923 - "syn 2.0.105", 5924 ] 5925 5926 [[package]] ··· 5929 source = "registry+https://github.com/rust-lang/crates.io-index" 5930 checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" 5931 dependencies = [ 5932 - "thiserror 2.0.14", 5933 "windows", 5934 - "windows-core", 5935 ] 5936 5937 [[package]] ··· 5958 5959 [[package]] 5960 name = "winapi-util" 5961 - version = "0.1.9" 5962 source = "registry+https://github.com/rust-lang/crates.io-index" 5963 - checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 5964 dependencies = [ 5965 - "windows-sys 0.59.0", 5966 ] 5967 5968 [[package]] ··· 5977 source = "registry+https://github.com/rust-lang/crates.io-index" 5978 checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" 5979 dependencies = [ 5980 - "objc2 0.6.2", 5981 "objc2-app-kit", 5982 "objc2-core-foundation", 5983 - "objc2-foundation 0.3.1", 5984 "raw-window-handle", 5985 "windows-sys 0.59.0", 5986 "windows-version", ··· 5993 checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" 5994 dependencies = [ 5995 "windows-collections", 5996 - "windows-core", 5997 "windows-future", 5998 - "windows-link", 5999 "windows-numerics", 6000 ] 6001 ··· 6005 source = "registry+https://github.com/rust-lang/crates.io-index" 6006 checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" 6007 dependencies = [ 6008 - "windows-core", 6009 ] 6010 6011 [[package]] ··· 6016 dependencies = [ 6017 "windows-implement", 6018 "windows-interface", 6019 - "windows-link", 6020 - "windows-result", 6021 - "windows-strings", 6022 ] 6023 6024 [[package]] ··· 6027 source = "registry+https://github.com/rust-lang/crates.io-index" 6028 checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" 6029 dependencies = [ 6030 - "windows-core", 6031 - "windows-link", 6032 "windows-threading", 6033 ] 6034 6035 [[package]] 6036 name = "windows-implement" 6037 - version = "0.60.0" 6038 source = "registry+https://github.com/rust-lang/crates.io-index" 6039 - checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" 6040 dependencies = [ 6041 "proc-macro2", 6042 "quote", 6043 - "syn 2.0.105", 6044 ] 6045 6046 [[package]] 6047 name = "windows-interface" 6048 - version = "0.59.1" 6049 source = "registry+https://github.com/rust-lang/crates.io-index" 6050 - checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" 6051 dependencies = [ 6052 "proc-macro2", 6053 "quote", 6054 - "syn 2.0.105", 6055 ] 6056 6057 [[package]] ··· 6059 version = "0.1.3" 6060 source = "registry+https://github.com/rust-lang/crates.io-index" 6061 checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 6062 6063 [[package]] 6064 name = "windows-numerics" ··· 6066 source = "registry+https://github.com/rust-lang/crates.io-index" 6067 checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" 6068 dependencies = [ 6069 - "windows-core", 6070 - "windows-link", 6071 ] 6072 6073 [[package]] ··· 6076 source = "registry+https://github.com/rust-lang/crates.io-index" 6077 checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" 6078 dependencies = [ 6079 - "windows-link", 6080 - "windows-result", 6081 - "windows-strings", 6082 ] 6083 6084 [[package]] ··· 6087 source = "registry+https://github.com/rust-lang/crates.io-index" 6088 checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" 6089 dependencies = [ 6090 - "windows-link", 6091 ] 6092 6093 [[package]] ··· 6096 source = "registry+https://github.com/rust-lang/crates.io-index" 6097 checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" 6098 dependencies = [ 6099 - "windows-link", 6100 ] 6101 6102 [[package]] 6103 - name = "windows-sys" 6104 - version = "0.45.0" 6105 source = "registry+https://github.com/rust-lang/crates.io-index" 6106 - checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 6107 dependencies = [ 6108 - "windows-targets 0.42.2", 6109 ] 6110 6111 [[package]] 6112 name = "windows-sys" 6113 - version = "0.48.0" 6114 source = "registry+https://github.com/rust-lang/crates.io-index" 6115 - checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 6116 dependencies = [ 6117 - "windows-targets 0.48.5", 6118 ] 6119 6120 [[package]] ··· 6141 source = "registry+https://github.com/rust-lang/crates.io-index" 6142 checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 6143 dependencies = [ 6144 - "windows-targets 0.53.3", 6145 ] 6146 6147 [[package]] ··· 6161 6162 [[package]] 6163 name = "windows-targets" 6164 - version = "0.48.5" 6165 - source = "registry+https://github.com/rust-lang/crates.io-index" 6166 - checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 6167 - dependencies = [ 6168 - "windows_aarch64_gnullvm 0.48.5", 6169 - "windows_aarch64_msvc 0.48.5", 6170 - "windows_i686_gnu 0.48.5", 6171 - "windows_i686_msvc 0.48.5", 6172 - "windows_x86_64_gnu 0.48.5", 6173 - "windows_x86_64_gnullvm 0.48.5", 6174 - "windows_x86_64_msvc 0.48.5", 6175 - ] 6176 - 6177 - [[package]] 6178 - name = "windows-targets" 6179 version = "0.52.6" 6180 source = "registry+https://github.com/rust-lang/crates.io-index" 6181 checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" ··· 6192 6193 [[package]] 6194 name = "windows-targets" 6195 - version = "0.53.3" 6196 source = "registry+https://github.com/rust-lang/crates.io-index" 6197 - checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" 6198 dependencies = [ 6199 - "windows-link", 6200 - "windows_aarch64_gnullvm 0.53.0", 6201 - "windows_aarch64_msvc 0.53.0", 6202 - "windows_i686_gnu 0.53.0", 6203 - "windows_i686_gnullvm 0.53.0", 6204 - "windows_i686_msvc 0.53.0", 6205 - "windows_x86_64_gnu 0.53.0", 6206 - "windows_x86_64_gnullvm 0.53.0", 6207 - "windows_x86_64_msvc 0.53.0", 6208 ] 6209 6210 [[package]] ··· 6213 source = "registry+https://github.com/rust-lang/crates.io-index" 6214 checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" 6215 dependencies = [ 6216 - "windows-link", 6217 ] 6218 6219 [[package]] 6220 name = "windows-version" 6221 - version = "0.1.4" 6222 source = "registry+https://github.com/rust-lang/crates.io-index" 6223 - checksum = "e04a5c6627e310a23ad2358483286c7df260c964eb2d003d8efd6d0f4e79265c" 6224 dependencies = [ 6225 - "windows-link", 6226 ] 6227 6228 [[package]] ··· 6230 version = "0.42.2" 6231 source = "registry+https://github.com/rust-lang/crates.io-index" 6232 checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 6233 - 6234 - [[package]] 6235 - name = "windows_aarch64_gnullvm" 6236 - version = "0.48.5" 6237 - source = "registry+https://github.com/rust-lang/crates.io-index" 6238 - checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 6239 6240 [[package]] 6241 name = "windows_aarch64_gnullvm" ··· 6245 6246 [[package]] 6247 name = "windows_aarch64_gnullvm" 6248 - version = "0.53.0" 6249 source = "registry+https://github.com/rust-lang/crates.io-index" 6250 - checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" 6251 6252 [[package]] 6253 name = "windows_aarch64_msvc" ··· 6257 6258 [[package]] 6259 name = "windows_aarch64_msvc" 6260 - version = "0.48.5" 6261 - source = "registry+https://github.com/rust-lang/crates.io-index" 6262 - checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 6263 - 6264 - [[package]] 6265 - name = "windows_aarch64_msvc" 6266 version = "0.52.6" 6267 source = "registry+https://github.com/rust-lang/crates.io-index" 6268 checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 6269 6270 [[package]] 6271 name = "windows_aarch64_msvc" 6272 - version = "0.53.0" 6273 source = "registry+https://github.com/rust-lang/crates.io-index" 6274 - checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" 6275 6276 [[package]] 6277 name = "windows_i686_gnu" ··· 6281 6282 [[package]] 6283 name = "windows_i686_gnu" 6284 - version = "0.48.5" 6285 - source = "registry+https://github.com/rust-lang/crates.io-index" 6286 - checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 6287 - 6288 - [[package]] 6289 - name = "windows_i686_gnu" 6290 version = "0.52.6" 6291 source = "registry+https://github.com/rust-lang/crates.io-index" 6292 checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 6293 6294 [[package]] 6295 name = "windows_i686_gnu" 6296 - version = "0.53.0" 6297 source = "registry+https://github.com/rust-lang/crates.io-index" 6298 - checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" 6299 6300 [[package]] 6301 name = "windows_i686_gnullvm" ··· 6305 6306 [[package]] 6307 name = "windows_i686_gnullvm" 6308 - version = "0.53.0" 6309 source = "registry+https://github.com/rust-lang/crates.io-index" 6310 - checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" 6311 6312 [[package]] 6313 name = "windows_i686_msvc" ··· 6317 6318 [[package]] 6319 name = "windows_i686_msvc" 6320 - version = "0.48.5" 6321 - source = "registry+https://github.com/rust-lang/crates.io-index" 6322 - checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 6323 - 6324 - [[package]] 6325 - name = "windows_i686_msvc" 6326 version = "0.52.6" 6327 source = "registry+https://github.com/rust-lang/crates.io-index" 6328 checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 6329 6330 [[package]] 6331 name = "windows_i686_msvc" 6332 - version = "0.53.0" 6333 source = "registry+https://github.com/rust-lang/crates.io-index" 6334 - checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" 6335 6336 [[package]] 6337 name = "windows_x86_64_gnu" ··· 6341 6342 [[package]] 6343 name = "windows_x86_64_gnu" 6344 - version = "0.48.5" 6345 - source = "registry+https://github.com/rust-lang/crates.io-index" 6346 - checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 6347 - 6348 - [[package]] 6349 - name = "windows_x86_64_gnu" 6350 version = "0.52.6" 6351 source = "registry+https://github.com/rust-lang/crates.io-index" 6352 checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 6353 6354 [[package]] 6355 name = "windows_x86_64_gnu" 6356 - version = "0.53.0" 6357 source = "registry+https://github.com/rust-lang/crates.io-index" 6358 - checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" 6359 6360 [[package]] 6361 name = "windows_x86_64_gnullvm" ··· 6365 6366 [[package]] 6367 name = "windows_x86_64_gnullvm" 6368 - version = "0.48.5" 6369 - source = "registry+https://github.com/rust-lang/crates.io-index" 6370 - checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 6371 - 6372 - [[package]] 6373 - name = "windows_x86_64_gnullvm" 6374 version = "0.52.6" 6375 source = "registry+https://github.com/rust-lang/crates.io-index" 6376 checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 6377 6378 [[package]] 6379 name = "windows_x86_64_gnullvm" 6380 - version = "0.53.0" 6381 source = "registry+https://github.com/rust-lang/crates.io-index" 6382 - checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" 6383 6384 [[package]] 6385 name = "windows_x86_64_msvc" ··· 6389 6390 [[package]] 6391 name = "windows_x86_64_msvc" 6392 - version = "0.48.5" 6393 - source = "registry+https://github.com/rust-lang/crates.io-index" 6394 - checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 6395 - 6396 - [[package]] 6397 - name = "windows_x86_64_msvc" 6398 version = "0.52.6" 6399 source = "registry+https://github.com/rust-lang/crates.io-index" 6400 checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 6401 6402 [[package]] 6403 name = "windows_x86_64_msvc" 6404 - version = "0.53.0" 6405 source = "registry+https://github.com/rust-lang/crates.io-index" 6406 - checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" 6407 6408 [[package]] 6409 name = "winnow" ··· 6416 6417 [[package]] 6418 name = "winnow" 6419 - version = "0.7.12" 6420 source = "registry+https://github.com/rust-lang/crates.io-index" 6421 - checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" 6422 dependencies = [ 6423 "memchr", 6424 ] ··· 6434 ] 6435 6436 [[package]] 6437 - name = "wit-bindgen-rt" 6438 - version = "0.39.0" 6439 source = "registry+https://github.com/rust-lang/crates.io-index" 6440 - checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 6441 - dependencies = [ 6442 - "bitflags 2.9.1", 6443 - ] 6444 6445 [[package]] 6446 name = "writeable" 6447 - version = "0.6.1" 6448 source = "registry+https://github.com/rust-lang/crates.io-index" 6449 - checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 6450 6451 [[package]] 6452 name = "wry" 6453 - version = "0.52.1" 6454 source = "registry+https://github.com/rust-lang/crates.io-index" 6455 - checksum = "12a714d9ba7075aae04a6e50229d6109e3d584774b99a6a8c60de1698ca111b9" 6456 dependencies = [ 6457 "base64 0.22.1", 6458 - "block2 0.6.1", 6459 "cookie", 6460 "crossbeam-channel", 6461 "dpi", 6462 "dunce", 6463 "gdkx11", ··· 6469 "kuchikiki", 6470 "libc", 6471 "ndk", 6472 - "objc2 0.6.2", 6473 "objc2-app-kit", 6474 "objc2-core-foundation", 6475 - "objc2-foundation 0.3.1", 6476 "objc2-ui-kit", 6477 "objc2-web-kit", 6478 "once_cell", ··· 6481 "sha2", 6482 "soup3", 6483 "tao-macros", 6484 - "thiserror 2.0.14", 6485 "url", 6486 "webkit2gtk", 6487 "webkit2gtk-sys", 6488 "webview2-com", 6489 "windows", 6490 - "windows-core", 6491 "windows-version", 6492 "x11-dl", 6493 ] ··· 6515 6516 [[package]] 6517 name = "x11rb" 6518 - version = "0.13.1" 6519 source = "registry+https://github.com/rust-lang/crates.io-index" 6520 - checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" 6521 dependencies = [ 6522 "gethostname", 6523 - "rustix 0.38.44", 6524 "x11rb-protocol", 6525 ] 6526 6527 [[package]] 6528 name = "x11rb-protocol" 6529 - version = "0.13.1" 6530 source = "registry+https://github.com/rust-lang/crates.io-index" 6531 - checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" 6532 6533 [[package]] 6534 name = "yoke" 6535 - version = "0.8.0" 6536 source = "registry+https://github.com/rust-lang/crates.io-index" 6537 - checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 6538 dependencies = [ 6539 - "serde", 6540 "stable_deref_trait", 6541 "yoke-derive", 6542 "zerofrom", ··· 6544 6545 [[package]] 6546 name = "yoke-derive" 6547 - version = "0.8.0" 6548 source = "registry+https://github.com/rust-lang/crates.io-index" 6549 - checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 6550 dependencies = [ 6551 "proc-macro2", 6552 "quote", 6553 - "syn 2.0.105", 6554 "synstructure", 6555 ] 6556 6557 [[package]] 6558 name = "zbus" 6559 - version = "5.9.0" 6560 source = "registry+https://github.com/rust-lang/crates.io-index" 6561 - checksum = "4bb4f9a464286d42851d18a605f7193b8febaf5b0919d71c6399b7b26e5b0aad" 6562 dependencies = [ 6563 "async-broadcast", 6564 "async-executor", ··· 6580 "serde_repr", 6581 "tracing", 6582 "uds_windows", 6583 - "windows-sys 0.59.0", 6584 - "winnow 0.7.12", 6585 "zbus_macros", 6586 "zbus_names", 6587 "zvariant", ··· 6589 6590 [[package]] 6591 name = "zbus_macros" 6592 - version = "5.9.0" 6593 source = "registry+https://github.com/rust-lang/crates.io-index" 6594 - checksum = "ef9859f68ee0c4ee2e8cde84737c78e3f4c54f946f2a38645d0d4c7a95327659" 6595 dependencies = [ 6596 - "proc-macro-crate 3.3.0", 6597 "proc-macro2", 6598 "quote", 6599 - "syn 2.0.105", 6600 "zbus_names", 6601 "zvariant", 6602 "zvariant_utils", ··· 6610 dependencies = [ 6611 "serde", 6612 "static_assertions", 6613 - "winnow 0.7.12", 6614 "zvariant", 6615 ] 6616 6617 [[package]] 6618 name = "zerocopy" 6619 - version = "0.8.26" 6620 source = "registry+https://github.com/rust-lang/crates.io-index" 6621 - checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" 6622 dependencies = [ 6623 "zerocopy-derive", 6624 ] 6625 6626 [[package]] 6627 name = "zerocopy-derive" 6628 - version = "0.8.26" 6629 source = "registry+https://github.com/rust-lang/crates.io-index" 6630 - checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" 6631 dependencies = [ 6632 "proc-macro2", 6633 "quote", 6634 - "syn 2.0.105", 6635 ] 6636 6637 [[package]] ··· 6651 dependencies = [ 6652 "proc-macro2", 6653 "quote", 6654 - "syn 2.0.105", 6655 "synstructure", 6656 ] 6657 6658 [[package]] 6659 name = "zeroize" 6660 - version = "1.8.1" 6661 source = "registry+https://github.com/rust-lang/crates.io-index" 6662 - checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 6663 6664 [[package]] 6665 name = "zerotrie" 6666 - version = "0.2.2" 6667 source = "registry+https://github.com/rust-lang/crates.io-index" 6668 - checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 6669 dependencies = [ 6670 "displaydoc", 6671 "yoke", ··· 6674 6675 [[package]] 6676 name = "zerovec" 6677 - version = "0.11.4" 6678 source = "registry+https://github.com/rust-lang/crates.io-index" 6679 - checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" 6680 dependencies = [ 6681 "yoke", 6682 "zerofrom", ··· 6685 6686 [[package]] 6687 name = "zerovec-derive" 6688 - version = "0.11.1" 6689 source = "registry+https://github.com/rust-lang/crates.io-index" 6690 - checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 6691 dependencies = [ 6692 "proc-macro2", 6693 "quote", 6694 - "syn 2.0.105", 6695 ] 6696 6697 [[package]] ··· 6711 6712 [[package]] 6713 name = "zune-jpeg" 6714 - version = "0.4.20" 6715 source = "registry+https://github.com/rust-lang/crates.io-index" 6716 - checksum = "fc1f7e205ce79eb2da3cd71c5f55f3589785cb7c79f6a03d1c8d1491bda5d089" 6717 dependencies = [ 6718 "zune-core", 6719 ] 6720 6721 [[package]] 6722 name = "zvariant" 6723 - version = "5.6.0" 6724 source = "registry+https://github.com/rust-lang/crates.io-index" 6725 - checksum = "d91b3680bb339216abd84714172b5138a4edac677e641ef17e1d8cb1b3ca6e6f" 6726 dependencies = [ 6727 "endi", 6728 "enumflags2", 6729 "serde", 6730 - "winnow 0.7.12", 6731 "zvariant_derive", 6732 "zvariant_utils", 6733 ] 6734 6735 [[package]] 6736 name = "zvariant_derive" 6737 - version = "5.6.0" 6738 source = "registry+https://github.com/rust-lang/crates.io-index" 6739 - checksum = "3a8c68501be459a8dbfffbe5d792acdd23b4959940fc87785fb013b32edbc208" 6740 dependencies = [ 6741 - "proc-macro-crate 3.3.0", 6742 "proc-macro2", 6743 "quote", 6744 - "syn 2.0.105", 6745 "zvariant_utils", 6746 ] 6747 6748 [[package]] 6749 name = "zvariant_utils" 6750 - version = "3.2.0" 6751 source = "registry+https://github.com/rust-lang/crates.io-index" 6752 - checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34" 6753 dependencies = [ 6754 "proc-macro2", 6755 "quote", 6756 "serde", 6757 - "static_assertions", 6758 - "syn 2.0.105", 6759 - "winnow 0.7.12", 6760 ]
··· 4 5 [[package]] 6 name = "VRChatPhotoManager" 7 + version = "0.2.7" 8 dependencies = [ 9 "arboard", 10 + "dirs", 11 "fast_image_resize", 12 "image", 13 "mslnk", ··· 19 "serde_json", 20 "tauri", 21 "tauri-build", 22 "tauri-plugin-http", 23 "tauri-plugin-process", 24 "tauri-plugin-shell", ··· 26 ] 27 28 [[package]] 29 name = "adler2" 30 version = "2.0.1" 31 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 33 34 [[package]] 35 name = "aho-corasick" 36 + version = "1.1.4" 37 source = "registry+https://github.com/rust-lang/crates.io-index" 38 + checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" 39 dependencies = [ 40 "memchr", 41 ] ··· 65 ] 66 67 [[package]] 68 name = "android_system_properties" 69 version = "0.1.5" 70 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 75 76 [[package]] 77 name = "anyhow" 78 + version = "1.0.100" 79 source = "registry+https://github.com/rust-lang/crates.io-index" 80 + checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" 81 82 [[package]] 83 name = "arbitrary" ··· 87 88 [[package]] 89 name = "arboard" 90 + version = "3.6.1" 91 source = "registry+https://github.com/rust-lang/crates.io-index" 92 + checksum = "0348a1c054491f4bfe6ab86a7b6ab1e44e45d899005de92f58b3df180b36ddaf" 93 dependencies = [ 94 "clipboard-win", 95 "image", 96 "log", 97 + "objc2 0.6.3", 98 "objc2-app-kit", 99 "objc2-core-foundation", 100 "objc2-core-graphics", 101 + "objc2-foundation 0.3.2", 102 "parking_lot", 103 "percent-encoding", 104 + "windows-sys 0.60.2", 105 "x11rb", 106 ] 107 ··· 113 dependencies = [ 114 "proc-macro2", 115 "quote", 116 + "syn 2.0.109", 117 ] 118 119 [[package]] ··· 148 149 [[package]] 150 name = "async-executor" 151 + version = "1.13.3" 152 source = "registry+https://github.com/rust-lang/crates.io-index" 153 + checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" 154 dependencies = [ 155 "async-task", 156 "concurrent-queue", ··· 162 163 [[package]] 164 name = "async-io" 165 + version = "2.6.0" 166 source = "registry+https://github.com/rust-lang/crates.io-index" 167 + checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" 168 dependencies = [ 169 + "autocfg", 170 "cfg-if", 171 "concurrent-queue", 172 "futures-io", 173 "futures-lite", 174 "parking", 175 "polling", 176 + "rustix", 177 "slab", 178 + "windows-sys 0.61.2", 179 ] 180 181 [[package]] ··· 191 192 [[package]] 193 name = "async-process" 194 + version = "2.5.0" 195 source = "registry+https://github.com/rust-lang/crates.io-index" 196 + checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" 197 dependencies = [ 198 "async-channel", 199 "async-io", ··· 204 "cfg-if", 205 "event-listener", 206 "futures-lite", 207 + "rustix", 208 ] 209 210 [[package]] ··· 215 dependencies = [ 216 "proc-macro2", 217 "quote", 218 + "syn 2.0.109", 219 ] 220 221 [[package]] 222 name = "async-signal" 223 + version = "0.2.13" 224 source = "registry+https://github.com/rust-lang/crates.io-index" 225 + checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" 226 dependencies = [ 227 "async-io", 228 "async-lock", ··· 230 "cfg-if", 231 "futures-core", 232 "futures-io", 233 + "rustix", 234 "signal-hook-registry", 235 "slab", 236 + "windows-sys 0.61.2", 237 ] 238 239 [[package]] ··· 250 dependencies = [ 251 "proc-macro2", 252 "quote", 253 + "syn 2.0.109", 254 ] 255 256 [[package]] ··· 290 291 [[package]] 292 name = "av1-grain" 293 + version = "0.2.5" 294 source = "registry+https://github.com/rust-lang/crates.io-index" 295 + checksum = "8cfddb07216410377231960af4fcab838eaa12e013417781b78bd95ee22077f8" 296 dependencies = [ 297 "anyhow", 298 "arrayvec", ··· 312 ] 313 314 [[package]] 315 name = "base64" 316 version = "0.21.7" 317 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 325 326 [[package]] 327 name = "bit_field" 328 + version = "0.10.3" 329 source = "registry+https://github.com/rust-lang/crates.io-index" 330 + checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6" 331 332 [[package]] 333 name = "bitflags" ··· 337 338 [[package]] 339 name = "bitflags" 340 + version = "2.10.0" 341 source = "registry+https://github.com/rust-lang/crates.io-index" 342 + checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 343 dependencies = [ 344 + "serde_core", 345 ] 346 347 [[package]] ··· 370 371 [[package]] 372 name = "block2" 373 + version = "0.6.2" 374 source = "registry+https://github.com/rust-lang/crates.io-index" 375 + checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" 376 dependencies = [ 377 + "objc2 0.6.3", 378 ] 379 380 [[package]] ··· 392 393 [[package]] 394 name = "brotli" 395 + version = "8.0.2" 396 source = "registry+https://github.com/rust-lang/crates.io-index" 397 + checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" 398 dependencies = [ 399 "alloc-no-stdlib", 400 "alloc-stdlib", ··· 425 426 [[package]] 427 name = "bytemuck" 428 + version = "1.24.0" 429 source = "registry+https://github.com/rust-lang/crates.io-index" 430 + checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" 431 432 [[package]] 433 name = "byteorder" ··· 456 source = "registry+https://github.com/rust-lang/crates.io-index" 457 checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" 458 dependencies = [ 459 + "bitflags 2.10.0", 460 "cairo-sys-rs", 461 "glib", 462 "libc", ··· 477 478 [[package]] 479 name = "camino" 480 + version = "1.2.1" 481 source = "registry+https://github.com/rust-lang/crates.io-index" 482 + checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" 483 dependencies = [ 484 + "serde_core", 485 ] 486 487 [[package]] ··· 504 "semver", 505 "serde", 506 "serde_json", 507 + "thiserror 2.0.17", 508 ] 509 510 [[package]] ··· 514 checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" 515 dependencies = [ 516 "serde", 517 + "toml 0.9.8", 518 ] 519 520 [[package]] 521 name = "cc" 522 + version = "1.2.45" 523 source = "registry+https://github.com/rust-lang/crates.io-index" 524 + checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" 525 dependencies = [ 526 + "find-msvc-tools", 527 "jobserver", 528 "libc", 529 "shlex", ··· 558 559 [[package]] 560 name = "cfg-if" 561 + version = "1.0.4" 562 source = "registry+https://github.com/rust-lang/crates.io-index" 563 + checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 564 565 [[package]] 566 name = "cfg_aliases" ··· 570 571 [[package]] 572 name = "chrono" 573 + version = "0.4.42" 574 source = "registry+https://github.com/rust-lang/crates.io-index" 575 + checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" 576 dependencies = [ 577 "iana-time-zone", 578 "num-traits", 579 "serde", 580 + "windows-link 0.2.1", 581 ] 582 583 [[package]] ··· 701 source = "registry+https://github.com/rust-lang/crates.io-index" 702 checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" 703 dependencies = [ 704 + "bitflags 2.10.0", 705 "core-foundation 0.10.1", 706 "core-graphics-types", 707 "foreign-types 0.5.0", ··· 714 source = "registry+https://github.com/rust-lang/crates.io-index" 715 checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" 716 dependencies = [ 717 + "bitflags 2.10.0", 718 "core-foundation 0.10.1", 719 "libc", 720 ] ··· 811 checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" 812 dependencies = [ 813 "quote", 814 + "syn 2.0.109", 815 ] 816 817 [[package]] ··· 821 checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" 822 dependencies = [ 823 "quote", 824 + "syn 2.0.109", 825 ] 826 827 [[package]] 828 name = "darling" 829 + version = "0.21.3" 830 source = "registry+https://github.com/rust-lang/crates.io-index" 831 + checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" 832 dependencies = [ 833 "darling_core", 834 "darling_macro", ··· 836 837 [[package]] 838 name = "darling_core" 839 + version = "0.21.3" 840 source = "registry+https://github.com/rust-lang/crates.io-index" 841 + checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" 842 dependencies = [ 843 "fnv", 844 "ident_case", 845 "proc-macro2", 846 "quote", 847 "strsim", 848 + "syn 2.0.109", 849 ] 850 851 [[package]] 852 name = "darling_macro" 853 + version = "0.21.3" 854 source = "registry+https://github.com/rust-lang/crates.io-index" 855 + checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" 856 dependencies = [ 857 "darling_core", 858 "quote", 859 + "syn 2.0.109", 860 ] 861 862 [[package]] 863 name = "data-url" 864 + version = "0.3.2" 865 source = "registry+https://github.com/rust-lang/crates.io-index" 866 + checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" 867 868 [[package]] 869 name = "deranged" 870 + version = "0.5.5" 871 source = "registry+https://github.com/rust-lang/crates.io-index" 872 + checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" 873 dependencies = [ 874 "powerfmt", 875 + "serde_core", 876 ] 877 878 [[package]] ··· 885 "proc-macro2", 886 "quote", 887 "rustc_version", 888 + "syn 2.0.109", 889 ] 890 891 [[package]] ··· 900 901 [[package]] 902 name = "dirs" 903 version = "6.0.0" 904 source = "registry+https://github.com/rust-lang/crates.io-index" 905 checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" 906 dependencies = [ 907 + "dirs-sys", 908 ] 909 910 [[package]] ··· 915 dependencies = [ 916 "libc", 917 "option-ext", 918 + "redox_users", 919 + "windows-sys 0.61.2", 920 ] 921 922 [[package]] ··· 931 source = "registry+https://github.com/rust-lang/crates.io-index" 932 checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" 933 dependencies = [ 934 + "bitflags 2.10.0", 935 + "objc2 0.6.3", 936 ] 937 938 [[package]] ··· 943 dependencies = [ 944 "proc-macro2", 945 "quote", 946 + "syn 2.0.109", 947 ] 948 949 [[package]] 950 name = "dlopen2" 951 + version = "0.8.0" 952 source = "registry+https://github.com/rust-lang/crates.io-index" 953 + checksum = "b54f373ccf864bf587a89e880fb7610f8d73f3045f13580948ccbcaff26febff" 954 dependencies = [ 955 "dlopen2_derive", 956 "libc", ··· 966 dependencies = [ 967 "proc-macro2", 968 "quote", 969 + "syn 2.0.109", 970 ] 971 972 [[package]] ··· 980 981 [[package]] 982 name = "document-features" 983 + version = "0.2.12" 984 source = "registry+https://github.com/rust-lang/crates.io-index" 985 + checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" 986 dependencies = [ 987 "litrs", 988 ] ··· 1031 1032 [[package]] 1033 name = "embed-resource" 1034 + version = "3.0.6" 1035 source = "registry+https://github.com/rust-lang/crates.io-index" 1036 + checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" 1037 dependencies = [ 1038 "cc", 1039 "memchr", 1040 "rustc_version", 1041 + "toml 0.9.8", 1042 "vswhom", 1043 "winreg", 1044 ] ··· 1082 dependencies = [ 1083 "proc-macro2", 1084 "quote", 1085 + "syn 2.0.109", 1086 ] 1087 1088 [[package]] ··· 1102 dependencies = [ 1103 "proc-macro2", 1104 "quote", 1105 + "syn 2.0.109", 1106 ] 1107 1108 [[package]] ··· 1113 1114 [[package]] 1115 name = "erased-serde" 1116 + version = "0.4.9" 1117 source = "registry+https://github.com/rust-lang/crates.io-index" 1118 + checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" 1119 dependencies = [ 1120 "serde", 1121 + "serde_core", 1122 "typeid", 1123 ] 1124 1125 [[package]] 1126 name = "errno" 1127 + version = "0.3.14" 1128 source = "registry+https://github.com/rust-lang/crates.io-index" 1129 + checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 1130 dependencies = [ 1131 "libc", 1132 + "windows-sys 0.61.2", 1133 ] 1134 1135 [[package]] ··· 1176 1177 [[package]] 1178 name = "fast_image_resize" 1179 + version = "5.3.0" 1180 source = "registry+https://github.com/rust-lang/crates.io-index" 1181 + checksum = "1bd1eda71e8af93f8b00e189404235d82f4de77ea4a0d182b44a7f03994d647c" 1182 dependencies = [ 1183 "bytemuck", 1184 "cfg-if", 1185 "document-features", 1186 "image", 1187 "num-traits", 1188 + "thiserror 2.0.17", 1189 ] 1190 1191 [[package]] ··· 1195 checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 1196 1197 [[package]] 1198 + name = "fax" 1199 + version = "0.2.6" 1200 + source = "registry+https://github.com/rust-lang/crates.io-index" 1201 + checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" 1202 + dependencies = [ 1203 + "fax_derive", 1204 + ] 1205 + 1206 + [[package]] 1207 + name = "fax_derive" 1208 + version = "0.2.0" 1209 + source = "registry+https://github.com/rust-lang/crates.io-index" 1210 + checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" 1211 + dependencies = [ 1212 + "proc-macro2", 1213 + "quote", 1214 + "syn 2.0.109", 1215 + ] 1216 + 1217 + [[package]] 1218 name = "fdeflate" 1219 version = "0.3.7" 1220 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1234 ] 1235 1236 [[package]] 1237 + name = "find-msvc-tools" 1238 + version = "0.1.4" 1239 source = "registry+https://github.com/rust-lang/crates.io-index" 1240 + checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" 1241 1242 [[package]] 1243 name = "flate2" 1244 + version = "1.1.5" 1245 source = "registry+https://github.com/rust-lang/crates.io-index" 1246 + checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" 1247 dependencies = [ 1248 "crc32fast", 1249 "miniz_oxide", ··· 1282 dependencies = [ 1283 "proc-macro2", 1284 "quote", 1285 + "syn 2.0.109", 1286 ] 1287 1288 [[package]] ··· 1299 1300 [[package]] 1301 name = "form_urlencoded" 1302 + version = "1.2.2" 1303 source = "registry+https://github.com/rust-lang/crates.io-index" 1304 + checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 1305 dependencies = [ 1306 "percent-encoding", 1307 ] ··· 1379 dependencies = [ 1380 "proc-macro2", 1381 "quote", 1382 + "syn 2.0.109", 1383 ] 1384 1385 [[package]] ··· 1521 1522 [[package]] 1523 name = "generic-array" 1524 + version = "0.14.9" 1525 source = "registry+https://github.com/rust-lang/crates.io-index" 1526 + checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" 1527 dependencies = [ 1528 "typenum", 1529 "version_check", ··· 1531 1532 [[package]] 1533 name = "gethostname" 1534 + version = "1.1.0" 1535 source = "registry+https://github.com/rust-lang/crates.io-index" 1536 + checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" 1537 dependencies = [ 1538 + "rustix", 1539 + "windows-link 0.2.1", 1540 ] 1541 1542 [[package]] ··· 1565 1566 [[package]] 1567 name = "getrandom" 1568 + version = "0.3.4" 1569 source = "registry+https://github.com/rust-lang/crates.io-index" 1570 + checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 1571 dependencies = [ 1572 "cfg-if", 1573 "js-sys", 1574 "libc", 1575 "r-efi", 1576 + "wasip2", 1577 "wasm-bindgen", 1578 ] 1579 ··· 1588 ] 1589 1590 [[package]] 1591 name = "gio" 1592 version = "0.18.4" 1593 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1625 source = "registry+https://github.com/rust-lang/crates.io-index" 1626 checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" 1627 dependencies = [ 1628 + "bitflags 2.10.0", 1629 "futures-channel", 1630 "futures-core", 1631 "futures-executor", ··· 1649 checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" 1650 dependencies = [ 1651 "heck 0.4.1", 1652 + "proc-macro-crate 2.0.2", 1653 "proc-macro-error", 1654 "proc-macro2", 1655 "quote", 1656 + "syn 2.0.109", 1657 ] 1658 1659 [[package]] ··· 1732 "proc-macro-error", 1733 "proc-macro2", 1734 "quote", 1735 + "syn 2.0.109", 1736 ] 1737 1738 [[package]] ··· 1747 "futures-core", 1748 "futures-sink", 1749 "http", 1750 + "indexmap 2.12.0", 1751 "slab", 1752 "tokio", 1753 "tokio-util", ··· 1756 1757 [[package]] 1758 name = "half" 1759 + version = "2.7.1" 1760 source = "registry+https://github.com/rust-lang/crates.io-index" 1761 + checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" 1762 dependencies = [ 1763 "cfg-if", 1764 "crunchy", 1765 + "zerocopy", 1766 ] 1767 1768 [[package]] ··· 1779 1780 [[package]] 1781 name = "hashbrown" 1782 + version = "0.16.0" 1783 source = "registry+https://github.com/rust-lang/crates.io-index" 1784 + checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" 1785 1786 [[package]] 1787 name = "heck" ··· 1861 1862 [[package]] 1863 name = "hyper" 1864 + version = "1.7.0" 1865 source = "registry+https://github.com/rust-lang/crates.io-index" 1866 + checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" 1867 dependencies = [ 1868 + "atomic-waker", 1869 "bytes", 1870 "futures-channel", 1871 + "futures-core", 1872 "h2", 1873 "http", 1874 "http-body", 1875 "httparse", 1876 "itoa", 1877 "pin-project-lite", 1878 + "pin-utils", 1879 "smallvec", 1880 "tokio", 1881 "want", ··· 1916 1917 [[package]] 1918 name = "hyper-util" 1919 + version = "0.1.17" 1920 source = "registry+https://github.com/rust-lang/crates.io-index" 1921 + checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" 1922 dependencies = [ 1923 "base64 0.22.1", 1924 "bytes", ··· 1932 "libc", 1933 "percent-encoding", 1934 "pin-project-lite", 1935 + "socket2", 1936 "system-configuration", 1937 "tokio", 1938 "tower-service", ··· 1942 1943 [[package]] 1944 name = "iana-time-zone" 1945 + version = "0.1.64" 1946 source = "registry+https://github.com/rust-lang/crates.io-index" 1947 + checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" 1948 dependencies = [ 1949 "android_system_properties", 1950 "core-foundation-sys", ··· 1952 "js-sys", 1953 "log", 1954 "wasm-bindgen", 1955 + "windows-core 0.62.2", 1956 ] 1957 1958 [[package]] ··· 1971 checksum = "cc50b891e4acf8fe0e71ef88ec43ad82ee07b3810ad09de10f1d01f072ed4b98" 1972 dependencies = [ 1973 "byteorder", 1974 + "png 0.17.16", 1975 ] 1976 1977 [[package]] 1978 name = "icu_collections" 1979 + version = "2.1.1" 1980 source = "registry+https://github.com/rust-lang/crates.io-index" 1981 + checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" 1982 dependencies = [ 1983 "displaydoc", 1984 "potential_utf", ··· 1989 1990 [[package]] 1991 name = "icu_locale_core" 1992 + version = "2.1.1" 1993 source = "registry+https://github.com/rust-lang/crates.io-index" 1994 + checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" 1995 dependencies = [ 1996 "displaydoc", 1997 "litemap", ··· 2002 2003 [[package]] 2004 name = "icu_normalizer" 2005 + version = "2.1.1" 2006 source = "registry+https://github.com/rust-lang/crates.io-index" 2007 + checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" 2008 dependencies = [ 2009 "icu_collections", 2010 "icu_normalizer_data", 2011 "icu_properties", ··· 2016 2017 [[package]] 2018 name = "icu_normalizer_data" 2019 + version = "2.1.1" 2020 source = "registry+https://github.com/rust-lang/crates.io-index" 2021 + checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" 2022 2023 [[package]] 2024 name = "icu_properties" 2025 + version = "2.1.1" 2026 source = "registry+https://github.com/rust-lang/crates.io-index" 2027 + checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" 2028 dependencies = [ 2029 "icu_collections", 2030 "icu_locale_core", 2031 "icu_properties_data", 2032 "icu_provider", 2033 "zerotrie", 2034 "zerovec", 2035 ] 2036 2037 [[package]] 2038 name = "icu_properties_data" 2039 + version = "2.1.1" 2040 source = "registry+https://github.com/rust-lang/crates.io-index" 2041 + checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" 2042 2043 [[package]] 2044 name = "icu_provider" 2045 + version = "2.1.1" 2046 source = "registry+https://github.com/rust-lang/crates.io-index" 2047 + checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 2048 dependencies = [ 2049 "displaydoc", 2050 "icu_locale_core", 2051 "writeable", 2052 "yoke", 2053 "zerofrom", ··· 2063 2064 [[package]] 2065 name = "idna" 2066 + version = "1.1.0" 2067 source = "registry+https://github.com/rust-lang/crates.io-index" 2068 + checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 2069 dependencies = [ 2070 "idna_adapter", 2071 "smallvec", ··· 2084 2085 [[package]] 2086 name = "image" 2087 + version = "0.25.8" 2088 source = "registry+https://github.com/rust-lang/crates.io-index" 2089 + checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" 2090 dependencies = [ 2091 "bytemuck", 2092 "byteorder-lite", ··· 2094 "exr", 2095 "gif", 2096 "image-webp", 2097 + "moxcms", 2098 "num-traits", 2099 + "png 0.18.0", 2100 "qoi", 2101 "ravif", 2102 "rayon", ··· 2108 2109 [[package]] 2110 name = "image-webp" 2111 + version = "0.2.4" 2112 source = "registry+https://github.com/rust-lang/crates.io-index" 2113 + checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3" 2114 dependencies = [ 2115 "byteorder-lite", 2116 "quick-error", ··· 2118 2119 [[package]] 2120 name = "imgref" 2121 + version = "1.12.0" 2122 source = "registry+https://github.com/rust-lang/crates.io-index" 2123 + checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" 2124 2125 [[package]] 2126 name = "indexmap" ··· 2135 2136 [[package]] 2137 name = "indexmap" 2138 + version = "2.12.0" 2139 source = "registry+https://github.com/rust-lang/crates.io-index" 2140 + checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" 2141 dependencies = [ 2142 "equivalent", 2143 + "hashbrown 0.16.0", 2144 "serde", 2145 + "serde_core", 2146 ] 2147 2148 [[package]] ··· 2156 2157 [[package]] 2158 name = "inotify" 2159 + version = "0.11.0" 2160 source = "registry+https://github.com/rust-lang/crates.io-index" 2161 + checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" 2162 dependencies = [ 2163 + "bitflags 2.10.0", 2164 "inotify-sys", 2165 "libc", 2166 ] ··· 2182 dependencies = [ 2183 "proc-macro2", 2184 "quote", 2185 + "syn 2.0.109", 2186 ] 2187 2188 [[package]] ··· 2193 2194 [[package]] 2195 name = "iri-string" 2196 + version = "0.7.9" 2197 source = "registry+https://github.com/rust-lang/crates.io-index" 2198 + checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" 2199 dependencies = [ 2200 "memchr", 2201 "serde", ··· 2282 2283 [[package]] 2284 name = "jobserver" 2285 + version = "0.1.34" 2286 source = "registry+https://github.com/rust-lang/crates.io-index" 2287 + checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" 2288 dependencies = [ 2289 + "getrandom 0.3.4", 2290 "libc", 2291 ] 2292 2293 [[package]] 2294 name = "js-sys" 2295 + version = "0.3.82" 2296 source = "registry+https://github.com/rust-lang/crates.io-index" 2297 + checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" 2298 dependencies = [ 2299 "once_cell", 2300 "wasm-bindgen", ··· 2328 source = "registry+https://github.com/rust-lang/crates.io-index" 2329 checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" 2330 dependencies = [ 2331 + "bitflags 2.10.0", 2332 "serde", 2333 "unicode-segmentation", 2334 ] ··· 2361 dependencies = [ 2362 "cssparser", 2363 "html5ever", 2364 + "indexmap 2.12.0", 2365 "selectors", 2366 ] 2367 ··· 2373 2374 [[package]] 2375 name = "lebe" 2376 + version = "0.5.3" 2377 source = "registry+https://github.com/rust-lang/crates.io-index" 2378 + checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" 2379 2380 [[package]] 2381 name = "libappindicator" ··· 2403 2404 [[package]] 2405 name = "libc" 2406 + version = "0.2.177" 2407 source = "registry+https://github.com/rust-lang/crates.io-index" 2408 + checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" 2409 2410 [[package]] 2411 name = "libfuzzer-sys" ··· 2429 2430 [[package]] 2431 name = "libredox" 2432 + version = "0.1.10" 2433 source = "registry+https://github.com/rust-lang/crates.io-index" 2434 + checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" 2435 dependencies = [ 2436 + "bitflags 2.10.0", 2437 "libc", 2438 ] 2439 2440 [[package]] 2441 name = "linux-raw-sys" 2442 + version = "0.11.0" 2443 source = "registry+https://github.com/rust-lang/crates.io-index" 2444 + checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 2445 2446 [[package]] 2447 name = "litemap" 2448 + version = "0.8.1" 2449 source = "registry+https://github.com/rust-lang/crates.io-index" 2450 + checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" 2451 2452 [[package]] 2453 name = "litrs" 2454 + version = "1.0.0" 2455 source = "registry+https://github.com/rust-lang/crates.io-index" 2456 + checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" 2457 2458 [[package]] 2459 name = "lock_api" 2460 + version = "0.4.14" 2461 source = "registry+https://github.com/rust-lang/crates.io-index" 2462 + checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" 2463 dependencies = [ 2464 "scopeguard", 2465 ] 2466 2467 [[package]] 2468 name = "log" 2469 + version = "0.4.28" 2470 source = "registry+https://github.com/rust-lang/crates.io-index" 2471 + checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 2472 2473 [[package]] 2474 name = "loop9" ··· 2513 dependencies = [ 2514 "proc-macro2", 2515 "quote", 2516 + "syn 2.0.109", 2517 ] 2518 2519 [[package]] ··· 2534 2535 [[package]] 2536 name = "memchr" 2537 + version = "2.7.6" 2538 source = "registry+https://github.com/rust-lang/crates.io-index" 2539 + checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 2540 2541 [[package]] 2542 name = "memoffset" ··· 2554 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 2555 2556 [[package]] 2557 name = "miniz_oxide" 2558 version = "0.8.9" 2559 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2565 2566 [[package]] 2567 name = "mio" 2568 + version = "1.1.0" 2569 source = "registry+https://github.com/rust-lang/crates.io-index" 2570 + checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" 2571 dependencies = [ 2572 "libc", 2573 "log", 2574 "wasi 0.11.1+wasi-snapshot-preview1", 2575 + "windows-sys 0.61.2", 2576 ] 2577 2578 [[package]] 2579 + name = "moxcms" 2580 + version = "0.7.9" 2581 source = "registry+https://github.com/rust-lang/crates.io-index" 2582 + checksum = "0fbdd3d7436f8b5e892b8b7ea114271ff0fa00bc5acae845d53b07d498616ef6" 2583 dependencies = [ 2584 + "num-traits", 2585 + "pxfm", 2586 ] 2587 2588 [[package]] ··· 2606 "dpi", 2607 "gtk", 2608 "keyboard-types", 2609 + "objc2 0.6.3", 2610 "objc2-app-kit", 2611 "objc2-core-foundation", 2612 + "objc2-foundation 0.3.2", 2613 "once_cell", 2614 + "png 0.17.16", 2615 "serde", 2616 + "thiserror 2.0.17", 2617 "windows-sys 0.60.2", 2618 ] 2619 ··· 2640 source = "registry+https://github.com/rust-lang/crates.io-index" 2641 checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" 2642 dependencies = [ 2643 + "bitflags 2.10.0", 2644 "jni-sys", 2645 "log", 2646 "ndk-sys", ··· 2676 source = "registry+https://github.com/rust-lang/crates.io-index" 2677 checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" 2678 dependencies = [ 2679 + "bitflags 2.10.0", 2680 "cfg-if", 2681 "cfg_aliases", 2682 "libc", ··· 2691 2692 [[package]] 2693 name = "nom" 2694 + version = "8.0.0" 2695 source = "registry+https://github.com/rust-lang/crates.io-index" 2696 + checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" 2697 dependencies = [ 2698 "memchr", 2699 ] 2700 2701 [[package]] ··· 2706 2707 [[package]] 2708 name = "notify" 2709 + version = "8.2.0" 2710 source = "registry+https://github.com/rust-lang/crates.io-index" 2711 + checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" 2712 dependencies = [ 2713 + "bitflags 2.10.0", 2714 "fsevent-sys", 2715 "inotify", 2716 "kqueue", 2717 "libc", 2718 "log", 2719 + "mio", 2720 + "notify-types", 2721 "walkdir", 2722 + "windows-sys 0.60.2", 2723 ] 2724 2725 [[package]] 2726 + name = "notify-types" 2727 + version = "2.0.0" 2728 + source = "registry+https://github.com/rust-lang/crates.io-index" 2729 + checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" 2730 + 2731 + [[package]] 2732 name = "num-bigint" 2733 version = "0.4.6" 2734 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2752 dependencies = [ 2753 "proc-macro2", 2754 "quote", 2755 + "syn 2.0.109", 2756 ] 2757 2758 [[package]] ··· 2786 2787 [[package]] 2788 name = "num_enum" 2789 + version = "0.7.5" 2790 source = "registry+https://github.com/rust-lang/crates.io-index" 2791 + checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" 2792 dependencies = [ 2793 "num_enum_derive", 2794 "rustversion", ··· 2796 2797 [[package]] 2798 name = "num_enum_derive" 2799 + version = "0.7.5" 2800 source = "registry+https://github.com/rust-lang/crates.io-index" 2801 + checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" 2802 dependencies = [ 2803 + "proc-macro-crate 3.4.0", 2804 "proc-macro2", 2805 "quote", 2806 + "syn 2.0.109", 2807 ] 2808 2809 [[package]] ··· 2824 2825 [[package]] 2826 name = "objc2" 2827 + version = "0.6.3" 2828 source = "registry+https://github.com/rust-lang/crates.io-index" 2829 + checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" 2830 dependencies = [ 2831 "objc2-encode", 2832 "objc2-exception-helper", ··· 2834 2835 [[package]] 2836 name = "objc2-app-kit" 2837 + version = "0.3.2" 2838 source = "registry+https://github.com/rust-lang/crates.io-index" 2839 + checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" 2840 dependencies = [ 2841 + "bitflags 2.10.0", 2842 + "block2 0.6.2", 2843 "libc", 2844 + "objc2 0.6.3", 2845 "objc2-cloud-kit", 2846 "objc2-core-data", 2847 "objc2-core-foundation", 2848 "objc2-core-graphics", 2849 "objc2-core-image", 2850 + "objc2-core-text", 2851 + "objc2-core-video", 2852 + "objc2-foundation 0.3.2", 2853 + "objc2-quartz-core 0.3.2", 2854 ] 2855 2856 [[package]] 2857 name = "objc2-cloud-kit" 2858 + version = "0.3.2" 2859 source = "registry+https://github.com/rust-lang/crates.io-index" 2860 + checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" 2861 dependencies = [ 2862 + "bitflags 2.10.0", 2863 + "objc2 0.6.3", 2864 + "objc2-foundation 0.3.2", 2865 ] 2866 2867 [[package]] 2868 name = "objc2-core-data" 2869 + version = "0.3.2" 2870 source = "registry+https://github.com/rust-lang/crates.io-index" 2871 + checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" 2872 dependencies = [ 2873 + "bitflags 2.10.0", 2874 + "objc2 0.6.3", 2875 + "objc2-foundation 0.3.2", 2876 ] 2877 2878 [[package]] 2879 name = "objc2-core-foundation" 2880 + version = "0.3.2" 2881 source = "registry+https://github.com/rust-lang/crates.io-index" 2882 + checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" 2883 dependencies = [ 2884 + "bitflags 2.10.0", 2885 "dispatch2", 2886 + "objc2 0.6.3", 2887 ] 2888 2889 [[package]] 2890 name = "objc2-core-graphics" 2891 + version = "0.3.2" 2892 source = "registry+https://github.com/rust-lang/crates.io-index" 2893 + checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" 2894 dependencies = [ 2895 + "bitflags 2.10.0", 2896 "dispatch2", 2897 + "objc2 0.6.3", 2898 "objc2-core-foundation", 2899 "objc2-io-surface", 2900 ] 2901 2902 [[package]] 2903 name = "objc2-core-image" 2904 + version = "0.3.2" 2905 source = "registry+https://github.com/rust-lang/crates.io-index" 2906 + checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" 2907 dependencies = [ 2908 + "objc2 0.6.3", 2909 + "objc2-foundation 0.3.2", 2910 + ] 2911 + 2912 + [[package]] 2913 + name = "objc2-core-text" 2914 + version = "0.3.2" 2915 + source = "registry+https://github.com/rust-lang/crates.io-index" 2916 + checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" 2917 + dependencies = [ 2918 + "bitflags 2.10.0", 2919 + "objc2 0.6.3", 2920 + "objc2-core-foundation", 2921 + "objc2-core-graphics", 2922 + ] 2923 + 2924 + [[package]] 2925 + name = "objc2-core-video" 2926 + version = "0.3.2" 2927 + source = "registry+https://github.com/rust-lang/crates.io-index" 2928 + checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" 2929 + dependencies = [ 2930 + "bitflags 2.10.0", 2931 + "objc2 0.6.3", 2932 + "objc2-core-foundation", 2933 + "objc2-core-graphics", 2934 + "objc2-io-surface", 2935 ] 2936 2937 [[package]] ··· 2955 source = "registry+https://github.com/rust-lang/crates.io-index" 2956 checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" 2957 dependencies = [ 2958 + "bitflags 2.10.0", 2959 "block2 0.5.1", 2960 "libc", 2961 "objc2 0.5.2", ··· 2963 2964 [[package]] 2965 name = "objc2-foundation" 2966 + version = "0.3.2" 2967 source = "registry+https://github.com/rust-lang/crates.io-index" 2968 + checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" 2969 dependencies = [ 2970 + "bitflags 2.10.0", 2971 + "block2 0.6.2", 2972 "libc", 2973 + "objc2 0.6.3", 2974 "objc2-core-foundation", 2975 ] 2976 2977 [[package]] 2978 name = "objc2-io-surface" 2979 + version = "0.3.2" 2980 + source = "registry+https://github.com/rust-lang/crates.io-index" 2981 + checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" 2982 + dependencies = [ 2983 + "bitflags 2.10.0", 2984 + "objc2 0.6.3", 2985 + "objc2-core-foundation", 2986 + ] 2987 + 2988 + [[package]] 2989 + name = "objc2-javascript-core" 2990 + version = "0.3.2" 2991 source = "registry+https://github.com/rust-lang/crates.io-index" 2992 + checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586" 2993 dependencies = [ 2994 + "objc2 0.6.3", 2995 "objc2-core-foundation", 2996 ] 2997 ··· 3001 source = "registry+https://github.com/rust-lang/crates.io-index" 3002 checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" 3003 dependencies = [ 3004 + "bitflags 2.10.0", 3005 "block2 0.5.1", 3006 "objc2 0.5.2", 3007 "objc2-foundation 0.2.2", ··· 3013 source = "registry+https://github.com/rust-lang/crates.io-index" 3014 checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" 3015 dependencies = [ 3016 + "bitflags 2.10.0", 3017 "block2 0.5.1", 3018 "objc2 0.5.2", 3019 "objc2-foundation 0.2.2", ··· 3022 3023 [[package]] 3024 name = "objc2-quartz-core" 3025 + version = "0.3.2" 3026 source = "registry+https://github.com/rust-lang/crates.io-index" 3027 + checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" 3028 dependencies = [ 3029 + "bitflags 2.10.0", 3030 + "objc2 0.6.3", 3031 + "objc2-foundation 0.3.2", 3032 ] 3033 3034 [[package]] 3035 + name = "objc2-security" 3036 + version = "0.3.2" 3037 source = "registry+https://github.com/rust-lang/crates.io-index" 3038 + checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" 3039 dependencies = [ 3040 + "bitflags 2.10.0", 3041 + "objc2 0.6.3", 3042 "objc2-core-foundation", 3043 ] 3044 3045 [[package]] 3046 + name = "objc2-ui-kit" 3047 + version = "0.3.2" 3048 source = "registry+https://github.com/rust-lang/crates.io-index" 3049 + checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" 3050 dependencies = [ 3051 + "bitflags 2.10.0", 3052 + "objc2 0.6.3", 3053 "objc2-core-foundation", 3054 + "objc2-foundation 0.3.2", 3055 ] 3056 3057 [[package]] 3058 + name = "objc2-web-kit" 3059 + version = "0.3.2" 3060 source = "registry+https://github.com/rust-lang/crates.io-index" 3061 + checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" 3062 dependencies = [ 3063 + "bitflags 2.10.0", 3064 + "block2 0.6.2", 3065 + "objc2 0.6.3", 3066 + "objc2-app-kit", 3067 + "objc2-core-foundation", 3068 + "objc2-foundation 0.3.2", 3069 + "objc2-javascript-core", 3070 + "objc2-security", 3071 ] 3072 3073 [[package]] ··· 3090 3091 [[package]] 3092 name = "openssl" 3093 + version = "0.10.74" 3094 source = "registry+https://github.com/rust-lang/crates.io-index" 3095 + checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" 3096 dependencies = [ 3097 + "bitflags 2.10.0", 3098 "cfg-if", 3099 "foreign-types 0.3.2", 3100 "libc", ··· 3111 dependencies = [ 3112 "proc-macro2", 3113 "quote", 3114 + "syn 2.0.109", 3115 ] 3116 3117 [[package]] ··· 3122 3123 [[package]] 3124 name = "openssl-sys" 3125 + version = "0.9.110" 3126 source = "registry+https://github.com/rust-lang/crates.io-index" 3127 + checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" 3128 dependencies = [ 3129 "cc", 3130 "libc", ··· 3160 3161 [[package]] 3162 name = "os_pipe" 3163 + version = "1.2.3" 3164 source = "registry+https://github.com/rust-lang/crates.io-index" 3165 + checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" 3166 dependencies = [ 3167 "libc", 3168 + "windows-sys 0.61.2", 3169 ] 3170 3171 [[package]] ··· 3201 3202 [[package]] 3203 name = "parking_lot" 3204 + version = "0.12.5" 3205 source = "registry+https://github.com/rust-lang/crates.io-index" 3206 + checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 3207 dependencies = [ 3208 "lock_api", 3209 "parking_lot_core", ··· 3211 3212 [[package]] 3213 name = "parking_lot_core" 3214 + version = "0.9.12" 3215 source = "registry+https://github.com/rust-lang/crates.io-index" 3216 + checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 3217 dependencies = [ 3218 "cfg-if", 3219 "libc", 3220 "redox_syscall", 3221 "smallvec", 3222 + "windows-link 0.2.1", 3223 ] 3224 3225 [[package]] ··· 3236 3237 [[package]] 3238 name = "percent-encoding" 3239 + version = "2.3.2" 3240 source = "registry+https://github.com/rust-lang/crates.io-index" 3241 + checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 3242 3243 [[package]] 3244 name = "phf" ··· 3344 "phf_shared 0.11.3", 3345 "proc-macro2", 3346 "quote", 3347 + "syn 2.0.109", 3348 ] 3349 3350 [[package]] ··· 3405 3406 [[package]] 3407 name = "plist" 3408 + version = "1.8.0" 3409 source = "registry+https://github.com/rust-lang/crates.io-index" 3410 + checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" 3411 dependencies = [ 3412 "base64 0.22.1", 3413 + "indexmap 2.12.0", 3414 "quick-xml", 3415 "serde", 3416 "time", ··· 3430 ] 3431 3432 [[package]] 3433 + name = "png" 3434 + version = "0.18.0" 3435 + source = "registry+https://github.com/rust-lang/crates.io-index" 3436 + checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" 3437 + dependencies = [ 3438 + "bitflags 2.10.0", 3439 + "crc32fast", 3440 + "fdeflate", 3441 + "flate2", 3442 + "miniz_oxide", 3443 + ] 3444 + 3445 + [[package]] 3446 name = "polling" 3447 + version = "3.11.0" 3448 source = "registry+https://github.com/rust-lang/crates.io-index" 3449 + checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" 3450 dependencies = [ 3451 "cfg-if", 3452 "concurrent-queue", 3453 "hermit-abi", 3454 "pin-project-lite", 3455 + "rustix", 3456 + "windows-sys 0.61.2", 3457 ] 3458 3459 [[package]] 3460 name = "potential_utf" 3461 + version = "0.1.4" 3462 source = "registry+https://github.com/rust-lang/crates.io-index" 3463 + checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 3464 dependencies = [ 3465 "zerovec", 3466 ] ··· 3498 3499 [[package]] 3500 name = "proc-macro-crate" 3501 + version = "2.0.2" 3502 source = "registry+https://github.com/rust-lang/crates.io-index" 3503 + checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" 3504 dependencies = [ 3505 + "toml_datetime 0.6.3", 3506 "toml_edit 0.20.2", 3507 ] 3508 3509 [[package]] 3510 name = "proc-macro-crate" 3511 + version = "3.4.0" 3512 source = "registry+https://github.com/rust-lang/crates.io-index" 3513 + checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" 3514 dependencies = [ 3515 + "toml_edit 0.23.7", 3516 ] 3517 3518 [[package]] ··· 3547 3548 [[package]] 3549 name = "proc-macro2" 3550 + version = "1.0.103" 3551 source = "registry+https://github.com/rust-lang/crates.io-index" 3552 + checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" 3553 dependencies = [ 3554 "unicode-ident", 3555 ] ··· 3570 checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" 3571 dependencies = [ 3572 "quote", 3573 + "syn 2.0.109", 3574 ] 3575 3576 [[package]] ··· 3590 ] 3591 3592 [[package]] 3593 + name = "pxfm" 3594 + version = "0.1.25" 3595 + source = "registry+https://github.com/rust-lang/crates.io-index" 3596 + checksum = "a3cbdf373972bf78df4d3b518d07003938e2c7d1fb5891e55f9cb6df57009d84" 3597 + dependencies = [ 3598 + "num-traits", 3599 + ] 3600 + 3601 + [[package]] 3602 name = "qoi" 3603 version = "0.4.1" 3604 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3615 3616 [[package]] 3617 name = "quick-xml" 3618 + version = "0.38.3" 3619 source = "registry+https://github.com/rust-lang/crates.io-index" 3620 + checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" 3621 dependencies = [ 3622 "memchr", 3623 ] 3624 3625 [[package]] 3626 name = "quinn" 3627 + version = "0.11.9" 3628 source = "registry+https://github.com/rust-lang/crates.io-index" 3629 + checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" 3630 dependencies = [ 3631 "bytes", 3632 "cfg_aliases", ··· 3635 "quinn-udp", 3636 "rustc-hash", 3637 "rustls", 3638 + "socket2", 3639 + "thiserror 2.0.17", 3640 "tokio", 3641 "tracing", 3642 "web-time", ··· 3644 3645 [[package]] 3646 name = "quinn-proto" 3647 + version = "0.11.13" 3648 source = "registry+https://github.com/rust-lang/crates.io-index" 3649 + checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" 3650 dependencies = [ 3651 "bytes", 3652 + "getrandom 0.3.4", 3653 "lru-slab", 3654 "rand 0.9.2", 3655 "ring", ··· 3657 "rustls", 3658 "rustls-pki-types", 3659 "slab", 3660 + "thiserror 2.0.17", 3661 "tinyvec", 3662 "tracing", 3663 "web-time", ··· 3665 3666 [[package]] 3667 name = "quinn-udp" 3668 + version = "0.5.14" 3669 source = "registry+https://github.com/rust-lang/crates.io-index" 3670 + checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" 3671 dependencies = [ 3672 "cfg_aliases", 3673 "libc", 3674 "once_cell", 3675 + "socket2", 3676 "tracing", 3677 + "windows-sys 0.60.2", 3678 ] 3679 3680 [[package]] 3681 name = "quote" 3682 + version = "1.0.42" 3683 source = "registry+https://github.com/rust-lang/crates.io-index" 3684 + checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" 3685 dependencies = [ 3686 "proc-macro2", 3687 ] ··· 3781 source = "registry+https://github.com/rust-lang/crates.io-index" 3782 checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 3783 dependencies = [ 3784 + "getrandom 0.3.4", 3785 ] 3786 3787 [[package]] ··· 3880 3881 [[package]] 3882 name = "redox_syscall" 3883 + version = "0.5.18" 3884 source = "registry+https://github.com/rust-lang/crates.io-index" 3885 + checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 3886 dependencies = [ 3887 + "bitflags 2.10.0", 3888 ] 3889 3890 [[package]] ··· 3895 dependencies = [ 3896 "getrandom 0.2.16", 3897 "libredox", 3898 + "thiserror 2.0.17", 3899 ] 3900 3901 [[package]] 3902 name = "ref-cast" 3903 + version = "1.0.25" 3904 source = "registry+https://github.com/rust-lang/crates.io-index" 3905 + checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" 3906 dependencies = [ 3907 "ref-cast-impl", 3908 ] 3909 3910 [[package]] 3911 name = "ref-cast-impl" 3912 + version = "1.0.25" 3913 source = "registry+https://github.com/rust-lang/crates.io-index" 3914 + checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" 3915 dependencies = [ 3916 "proc-macro2", 3917 "quote", 3918 + "syn 2.0.109", 3919 ] 3920 3921 [[package]] 3922 name = "regex" 3923 + version = "1.12.2" 3924 source = "registry+https://github.com/rust-lang/crates.io-index" 3925 + checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" 3926 dependencies = [ 3927 "aho-corasick", 3928 "memchr", ··· 3932 3933 [[package]] 3934 name = "regex-automata" 3935 + version = "0.4.13" 3936 source = "registry+https://github.com/rust-lang/crates.io-index" 3937 + checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" 3938 dependencies = [ 3939 "aho-corasick", 3940 "memchr", ··· 3943 3944 [[package]] 3945 name = "regex-syntax" 3946 + version = "0.8.8" 3947 source = "registry+https://github.com/rust-lang/crates.io-index" 3948 + checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" 3949 3950 [[package]] 3951 name = "reqwest" 3952 + version = "0.12.24" 3953 source = "registry+https://github.com/rust-lang/crates.io-index" 3954 + checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" 3955 dependencies = [ 3956 "base64 0.22.1", 3957 "bytes", ··· 4019 4020 [[package]] 4021 name = "rust-ini" 4022 + version = "0.21.3" 4023 source = "registry+https://github.com/rust-lang/crates.io-index" 4024 + checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" 4025 dependencies = [ 4026 "cfg-if", 4027 "ordered-multimap", 4028 ] 4029 4030 [[package]] 4031 name = "rustc-hash" 4032 version = "2.1.1" 4033 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4044 4045 [[package]] 4046 name = "rustix" 4047 + version = "1.1.2" 4048 source = "registry+https://github.com/rust-lang/crates.io-index" 4049 + checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 4050 dependencies = [ 4051 + "bitflags 2.10.0", 4052 "errno", 4053 "libc", 4054 + "linux-raw-sys", 4055 + "windows-sys 0.61.2", 4056 ] 4057 4058 [[package]] 4059 name = "rustls" 4060 + version = "0.23.35" 4061 source = "registry+https://github.com/rust-lang/crates.io-index" 4062 + checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" 4063 dependencies = [ 4064 "once_cell", 4065 "ring", ··· 4071 4072 [[package]] 4073 name = "rustls-pki-types" 4074 + version = "1.13.0" 4075 source = "registry+https://github.com/rust-lang/crates.io-index" 4076 + checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" 4077 dependencies = [ 4078 "web-time", 4079 "zeroize", ··· 4081 4082 [[package]] 4083 name = "rustls-webpki" 4084 + version = "0.103.8" 4085 source = "registry+https://github.com/rust-lang/crates.io-index" 4086 + checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" 4087 dependencies = [ 4088 "ring", 4089 "rustls-pki-types", ··· 4113 4114 [[package]] 4115 name = "schannel" 4116 + version = "0.1.28" 4117 source = "registry+https://github.com/rust-lang/crates.io-index" 4118 + checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" 4119 dependencies = [ 4120 + "windows-sys 0.61.2", 4121 ] 4122 4123 [[package]] ··· 4149 4150 [[package]] 4151 name = "schemars" 4152 + version = "1.1.0" 4153 source = "registry+https://github.com/rust-lang/crates.io-index" 4154 + checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" 4155 dependencies = [ 4156 "dyn-clone", 4157 "ref-cast", ··· 4168 "proc-macro2", 4169 "quote", 4170 "serde_derive_internals", 4171 + "syn 2.0.109", 4172 ] 4173 4174 [[package]] ··· 4183 source = "registry+https://github.com/rust-lang/crates.io-index" 4184 checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 4185 dependencies = [ 4186 + "bitflags 2.10.0", 4187 "core-foundation 0.9.4", 4188 "core-foundation-sys", 4189 "libc", ··· 4192 4193 [[package]] 4194 name = "security-framework-sys" 4195 + version = "2.15.0" 4196 source = "registry+https://github.com/rust-lang/crates.io-index" 4197 + checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" 4198 dependencies = [ 4199 "core-foundation-sys", 4200 "libc", ··· 4220 4221 [[package]] 4222 name = "semver" 4223 + version = "1.0.27" 4224 source = "registry+https://github.com/rust-lang/crates.io-index" 4225 + checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 4226 dependencies = [ 4227 "serde", 4228 + "serde_core", 4229 ] 4230 4231 [[package]] 4232 name = "serde" 4233 + version = "1.0.228" 4234 source = "registry+https://github.com/rust-lang/crates.io-index" 4235 + checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 4236 dependencies = [ 4237 + "serde_core", 4238 "serde_derive", 4239 ] 4240 4241 [[package]] 4242 name = "serde-untagged" 4243 + version = "0.1.9" 4244 source = "registry+https://github.com/rust-lang/crates.io-index" 4245 + checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" 4246 dependencies = [ 4247 "erased-serde", 4248 "serde", 4249 + "serde_core", 4250 "typeid", 4251 ] 4252 4253 [[package]] 4254 + name = "serde_core" 4255 + version = "1.0.228" 4256 + source = "registry+https://github.com/rust-lang/crates.io-index" 4257 + checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 4258 + dependencies = [ 4259 + "serde_derive", 4260 + ] 4261 + 4262 + [[package]] 4263 name = "serde_derive" 4264 + version = "1.0.228" 4265 source = "registry+https://github.com/rust-lang/crates.io-index" 4266 + checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 4267 dependencies = [ 4268 "proc-macro2", 4269 "quote", 4270 + "syn 2.0.109", 4271 ] 4272 4273 [[package]] ··· 4278 dependencies = [ 4279 "proc-macro2", 4280 "quote", 4281 + "syn 2.0.109", 4282 ] 4283 4284 [[package]] 4285 name = "serde_json" 4286 + version = "1.0.145" 4287 source = "registry+https://github.com/rust-lang/crates.io-index" 4288 + checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 4289 dependencies = [ 4290 "itoa", 4291 "memchr", 4292 "ryu", 4293 "serde", 4294 + "serde_core", 4295 ] 4296 4297 [[package]] ··· 4302 dependencies = [ 4303 "proc-macro2", 4304 "quote", 4305 + "syn 2.0.109", 4306 ] 4307 4308 [[package]] ··· 4316 4317 [[package]] 4318 name = "serde_spanned" 4319 + version = "1.0.3" 4320 source = "registry+https://github.com/rust-lang/crates.io-index" 4321 + checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" 4322 dependencies = [ 4323 + "serde_core", 4324 ] 4325 4326 [[package]] ··· 4337 4338 [[package]] 4339 name = "serde_with" 4340 + version = "3.15.1" 4341 source = "registry+https://github.com/rust-lang/crates.io-index" 4342 + checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04" 4343 dependencies = [ 4344 "base64 0.22.1", 4345 "chrono", 4346 "hex", 4347 "indexmap 1.9.3", 4348 + "indexmap 2.12.0", 4349 "schemars 0.9.0", 4350 + "schemars 1.1.0", 4351 + "serde_core", 4352 "serde_json", 4353 "serde_with_macros", 4354 "time", ··· 4356 4357 [[package]] 4358 name = "serde_with_macros" 4359 + version = "3.15.1" 4360 source = "registry+https://github.com/rust-lang/crates.io-index" 4361 + checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955" 4362 dependencies = [ 4363 "darling", 4364 "proc-macro2", 4365 "quote", 4366 + "syn 2.0.109", 4367 ] 4368 4369 [[package]] 4370 name = "serialize-to-javascript" 4371 + version = "0.1.2" 4372 source = "registry+https://github.com/rust-lang/crates.io-index" 4373 + checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" 4374 dependencies = [ 4375 "serde", 4376 "serde_json", ··· 4379 4380 [[package]] 4381 name = "serialize-to-javascript-impl" 4382 + version = "0.1.2" 4383 source = "registry+https://github.com/rust-lang/crates.io-index" 4384 + checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" 4385 dependencies = [ 4386 "proc-macro2", 4387 "quote", 4388 + "syn 2.0.109", 4389 ] 4390 4391 [[package]] ··· 4497 4498 [[package]] 4499 name = "socket2" 4500 + version = "0.6.1" 4501 source = "registry+https://github.com/rust-lang/crates.io-index" 4502 + checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" 4503 dependencies = [ 4504 "libc", 4505 + "windows-sys 0.60.2", 4506 ] 4507 4508 [[package]] ··· 4555 4556 [[package]] 4557 name = "stable_deref_trait" 4558 + version = "1.2.1" 4559 source = "registry+https://github.com/rust-lang/crates.io-index" 4560 + checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 4561 4562 [[package]] 4563 name = "static_assertions" ··· 4626 4627 [[package]] 4628 name = "syn" 4629 + version = "2.0.109" 4630 source = "registry+https://github.com/rust-lang/crates.io-index" 4631 + checksum = "2f17c7e013e88258aa9543dcbe81aca68a667a9ac37cd69c9fbc07858bfe0e2f" 4632 dependencies = [ 4633 "proc-macro2", 4634 "quote", ··· 4652 dependencies = [ 4653 "proc-macro2", 4654 "quote", 4655 + "syn 2.0.109", 4656 ] 4657 4658 [[package]] ··· 4661 source = "registry+https://github.com/rust-lang/crates.io-index" 4662 checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" 4663 dependencies = [ 4664 + "bitflags 2.10.0", 4665 "core-foundation 0.9.4", 4666 "system-configuration-sys", 4667 ] ··· 4691 4692 [[package]] 4693 name = "tao" 4694 + version = "0.34.5" 4695 source = "registry+https://github.com/rust-lang/crates.io-index" 4696 + checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7" 4697 dependencies = [ 4698 + "bitflags 2.10.0", 4699 + "block2 0.6.2", 4700 "core-foundation 0.10.1", 4701 "core-graphics", 4702 "crossbeam-channel", ··· 4713 "ndk", 4714 "ndk-context", 4715 "ndk-sys", 4716 + "objc2 0.6.3", 4717 "objc2-app-kit", 4718 + "objc2-foundation 0.3.2", 4719 "once_cell", 4720 "parking_lot", 4721 "raw-window-handle", ··· 4724 "unicode-segmentation", 4725 "url", 4726 "windows", 4727 + "windows-core 0.61.2", 4728 "windows-version", 4729 "x11-dl", 4730 ] ··· 4737 dependencies = [ 4738 "proc-macro2", 4739 "quote", 4740 + "syn 2.0.109", 4741 ] 4742 4743 [[package]] ··· 4748 4749 [[package]] 4750 name = "tauri" 4751 + version = "2.9.2" 4752 source = "registry+https://github.com/rust-lang/crates.io-index" 4753 + checksum = "8bceb52453e507c505b330afe3398510e87f428ea42b6e76ecb6bd63b15965b5" 4754 dependencies = [ 4755 "anyhow", 4756 "bytes", 4757 + "cookie", 4758 + "dirs", 4759 "dunce", 4760 "embed_plist", 4761 + "getrandom 0.3.4", 4762 "glob", 4763 "gtk", 4764 "heck 0.5.0", ··· 4769 "log", 4770 "mime", 4771 "muda", 4772 + "objc2 0.6.3", 4773 "objc2-app-kit", 4774 + "objc2-foundation 0.3.2", 4775 "objc2-ui-kit", 4776 + "objc2-web-kit", 4777 "percent-encoding", 4778 "plist", 4779 "raw-window-handle", ··· 4788 "tauri-runtime", 4789 "tauri-runtime-wry", 4790 "tauri-utils", 4791 + "thiserror 2.0.17", 4792 "tokio", 4793 "tray-icon", 4794 "url", 4795 "webkit2gtk", 4796 "webview2-com", 4797 "window-vibrancy", ··· 4800 4801 [[package]] 4802 name = "tauri-build" 4803 + version = "2.5.1" 4804 source = "registry+https://github.com/rust-lang/crates.io-index" 4805 + checksum = "a924b6c50fe83193f0f8b14072afa7c25b7a72752a2a73d9549b463f5fe91a38" 4806 dependencies = [ 4807 "anyhow", 4808 "cargo_toml", 4809 + "dirs", 4810 "glob", 4811 "heck 0.5.0", 4812 "json-patch", ··· 4816 "serde_json", 4817 "tauri-utils", 4818 "tauri-winres", 4819 + "toml 0.9.8", 4820 "walkdir", 4821 ] 4822 4823 [[package]] 4824 name = "tauri-codegen" 4825 + version = "2.5.0" 4826 source = "registry+https://github.com/rust-lang/crates.io-index" 4827 + checksum = "6c1fe64c74cc40f90848281a90058a6db931eb400b60205840e09801ee30f190" 4828 dependencies = [ 4829 "base64 0.22.1", 4830 "brotli", 4831 "ico", 4832 "json-patch", 4833 "plist", 4834 + "png 0.17.16", 4835 "proc-macro2", 4836 "quote", 4837 "semver", 4838 "serde", 4839 "serde_json", 4840 "sha2", 4841 + "syn 2.0.109", 4842 "tauri-utils", 4843 + "thiserror 2.0.17", 4844 "time", 4845 "url", 4846 "uuid", ··· 4849 4850 [[package]] 4851 name = "tauri-macros" 4852 + version = "2.5.0" 4853 source = "registry+https://github.com/rust-lang/crates.io-index" 4854 + checksum = "260c5d2eb036b76206b9fca20b7be3614cfd21046c5396f7959e0e64a4b07f2f" 4855 dependencies = [ 4856 "heck 0.5.0", 4857 "proc-macro2", 4858 "quote", 4859 + "syn 2.0.109", 4860 "tauri-codegen", 4861 "tauri-utils", 4862 ] 4863 4864 [[package]] 4865 name = "tauri-plugin" 4866 + version = "2.5.1" 4867 source = "registry+https://github.com/rust-lang/crates.io-index" 4868 + checksum = "076c78a474a7247c90cad0b6e87e593c4c620ed4efdb79cbe0214f0021f6c39d" 4869 dependencies = [ 4870 "anyhow", 4871 "glob", ··· 4874 "serde", 4875 "serde_json", 4876 "tauri-utils", 4877 + "toml 0.9.8", 4878 "walkdir", 4879 ] 4880 4881 [[package]] 4882 name = "tauri-plugin-deep-link" 4883 + version = "2.4.5" 4884 source = "registry+https://github.com/rust-lang/crates.io-index" 4885 + checksum = "6e82759f7c7d51de3cbde51c04b3f2332de52436ed84541182cd8944b04e9e73" 4886 dependencies = [ 4887 "dunce", 4888 + "plist", 4889 "rust-ini", 4890 "serde", 4891 "serde_json", 4892 "tauri", 4893 "tauri-plugin", 4894 "tauri-utils", 4895 + "thiserror 2.0.17", 4896 "tracing", 4897 "url", 4898 "windows-registry", 4899 + "windows-result 0.3.4", 4900 ] 4901 4902 [[package]] 4903 name = "tauri-plugin-fs" 4904 + version = "2.4.4" 4905 source = "registry+https://github.com/rust-lang/crates.io-index" 4906 + checksum = "47df422695255ecbe7bac7012440eddaeefd026656171eac9559f5243d3230d9" 4907 dependencies = [ 4908 "anyhow", 4909 "dunce", ··· 4916 "tauri", 4917 "tauri-plugin", 4918 "tauri-utils", 4919 + "thiserror 2.0.17", 4920 + "toml 0.9.8", 4921 "url", 4922 ] 4923 4924 [[package]] 4925 name = "tauri-plugin-http" 4926 + version = "2.5.4" 4927 source = "registry+https://github.com/rust-lang/crates.io-index" 4928 + checksum = "c00685aceab12643cf024f712ab0448ba8fcadf86f2391d49d2e5aa732aacc70" 4929 dependencies = [ 4930 "bytes", 4931 "cookie_store", ··· 4939 "tauri", 4940 "tauri-plugin", 4941 "tauri-plugin-fs", 4942 + "thiserror 2.0.17", 4943 "tokio", 4944 "url", 4945 "urlpattern", ··· 4947 4948 [[package]] 4949 name = "tauri-plugin-process" 4950 + version = "2.3.1" 4951 source = "registry+https://github.com/rust-lang/crates.io-index" 4952 + checksum = "d55511a7bf6cd70c8767b02c97bf8134fa434daf3926cfc1be0a0f94132d165a" 4953 dependencies = [ 4954 "tauri", 4955 "tauri-plugin", ··· 4957 4958 [[package]] 4959 name = "tauri-plugin-shell" 4960 + version = "2.3.3" 4961 source = "registry+https://github.com/rust-lang/crates.io-index" 4962 + checksum = "c374b6db45f2a8a304f0273a15080d98c70cde86178855fc24653ba657a1144c" 4963 dependencies = [ 4964 "encoding_rs", 4965 "log", ··· 4972 "shared_child", 4973 "tauri", 4974 "tauri-plugin", 4975 + "thiserror 2.0.17", 4976 "tokio", 4977 ] 4978 4979 [[package]] 4980 name = "tauri-plugin-single-instance" 4981 + version = "2.3.6" 4982 source = "registry+https://github.com/rust-lang/crates.io-index" 4983 + checksum = "dd707f8c86b4e3004e2c141fa24351f1909ba40ce1b8437e30d5ed5277dd3710" 4984 dependencies = [ 4985 "serde", 4986 "serde_json", 4987 "tauri", 4988 "tauri-plugin-deep-link", 4989 + "thiserror 2.0.17", 4990 "tracing", 4991 "windows-sys 0.60.2", 4992 "zbus", ··· 4994 4995 [[package]] 4996 name = "tauri-runtime" 4997 + version = "2.9.1" 4998 source = "registry+https://github.com/rust-lang/crates.io-index" 4999 + checksum = "9368f09358496f2229313fccb37682ad116b7f46fa76981efe116994a0628926" 5000 dependencies = [ 5001 "cookie", 5002 "dpi", 5003 "gtk", 5004 "http", 5005 "jni", 5006 + "objc2 0.6.3", 5007 "objc2-ui-kit", 5008 + "objc2-web-kit", 5009 "raw-window-handle", 5010 "serde", 5011 "serde_json", 5012 "tauri-utils", 5013 + "thiserror 2.0.17", 5014 "url", 5015 + "webkit2gtk", 5016 + "webview2-com", 5017 "windows", 5018 ] 5019 5020 [[package]] 5021 name = "tauri-runtime-wry" 5022 + version = "2.9.1" 5023 source = "registry+https://github.com/rust-lang/crates.io-index" 5024 + checksum = "929f5df216f5c02a9e894554401bcdab6eec3e39ec6a4a7731c7067fc8688a93" 5025 dependencies = [ 5026 "gtk", 5027 "http", 5028 "jni", 5029 "log", 5030 + "objc2 0.6.3", 5031 "objc2-app-kit", 5032 + "objc2-foundation 0.3.2", 5033 "once_cell", 5034 "percent-encoding", 5035 "raw-window-handle", ··· 5046 5047 [[package]] 5048 name = "tauri-utils" 5049 + version = "2.8.0" 5050 source = "registry+https://github.com/rust-lang/crates.io-index" 5051 + checksum = "f6b8bbe426abdbf52d050e52ed693130dbd68375b9ad82a3fb17efb4c8d85673" 5052 dependencies = [ 5053 "anyhow", 5054 "brotli", ··· 5074 "serde_json", 5075 "serde_with", 5076 "swift-rs", 5077 + "thiserror 2.0.17", 5078 + "toml 0.9.8", 5079 "url", 5080 "urlpattern", 5081 "uuid", ··· 5089 checksum = "fd21509dd1fa9bd355dc29894a6ff10635880732396aa38c0066c1e6c1ab8074" 5090 dependencies = [ 5091 "embed-resource", 5092 + "toml 0.9.8", 5093 ] 5094 5095 [[package]] 5096 name = "tempfile" 5097 + version = "3.23.0" 5098 source = "registry+https://github.com/rust-lang/crates.io-index" 5099 + checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" 5100 dependencies = [ 5101 "fastrand", 5102 + "getrandom 0.3.4", 5103 "once_cell", 5104 + "rustix", 5105 + "windows-sys 0.61.2", 5106 ] 5107 5108 [[package]] ··· 5127 5128 [[package]] 5129 name = "thiserror" 5130 + version = "2.0.17" 5131 source = "registry+https://github.com/rust-lang/crates.io-index" 5132 + checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 5133 dependencies = [ 5134 + "thiserror-impl 2.0.17", 5135 ] 5136 5137 [[package]] ··· 5142 dependencies = [ 5143 "proc-macro2", 5144 "quote", 5145 + "syn 2.0.109", 5146 ] 5147 5148 [[package]] 5149 name = "thiserror-impl" 5150 + version = "2.0.17" 5151 source = "registry+https://github.com/rust-lang/crates.io-index" 5152 + checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 5153 dependencies = [ 5154 "proc-macro2", 5155 "quote", 5156 + "syn 2.0.109", 5157 ] 5158 5159 [[package]] 5160 name = "tiff" 5161 + version = "0.10.3" 5162 source = "registry+https://github.com/rust-lang/crates.io-index" 5163 + checksum = "af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f" 5164 dependencies = [ 5165 + "fax", 5166 "flate2", 5167 + "half", 5168 + "quick-error", 5169 "weezl", 5170 + "zune-jpeg", 5171 ] 5172 5173 [[package]] 5174 name = "time" 5175 + version = "0.3.44" 5176 source = "registry+https://github.com/rust-lang/crates.io-index" 5177 + checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" 5178 dependencies = [ 5179 "deranged", 5180 "itoa", ··· 5187 5188 [[package]] 5189 name = "time-core" 5190 + version = "0.1.6" 5191 source = "registry+https://github.com/rust-lang/crates.io-index" 5192 + checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" 5193 5194 [[package]] 5195 name = "time-macros" 5196 + version = "0.2.24" 5197 source = "registry+https://github.com/rust-lang/crates.io-index" 5198 + checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" 5199 dependencies = [ 5200 "num-conv", 5201 "time-core", ··· 5212 5213 [[package]] 5214 name = "tinystr" 5215 + version = "0.8.2" 5216 source = "registry+https://github.com/rust-lang/crates.io-index" 5217 + checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" 5218 dependencies = [ 5219 "displaydoc", 5220 "zerovec", ··· 5222 5223 [[package]] 5224 name = "tinyvec" 5225 + version = "1.10.0" 5226 source = "registry+https://github.com/rust-lang/crates.io-index" 5227 + checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" 5228 dependencies = [ 5229 "tinyvec_macros", 5230 ] ··· 5237 5238 [[package]] 5239 name = "tokio" 5240 + version = "1.48.0" 5241 source = "registry+https://github.com/rust-lang/crates.io-index" 5242 + checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" 5243 dependencies = [ 5244 "bytes", 5245 "libc", 5246 + "mio", 5247 "pin-project-lite", 5248 + "socket2", 5249 "tokio-macros", 5250 + "windows-sys 0.61.2", 5251 ] 5252 5253 [[package]] 5254 name = "tokio-macros" 5255 + version = "2.6.0" 5256 source = "registry+https://github.com/rust-lang/crates.io-index" 5257 + checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" 5258 dependencies = [ 5259 "proc-macro2", 5260 "quote", 5261 + "syn 2.0.109", 5262 ] 5263 5264 [[package]] ··· 5273 5274 [[package]] 5275 name = "tokio-rustls" 5276 + version = "0.26.4" 5277 source = "registry+https://github.com/rust-lang/crates.io-index" 5278 + checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" 5279 dependencies = [ 5280 "rustls", 5281 "tokio", ··· 5283 5284 [[package]] 5285 name = "tokio-util" 5286 + version = "0.7.17" 5287 source = "registry+https://github.com/rust-lang/crates.io-index" 5288 + checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" 5289 dependencies = [ 5290 "bytes", 5291 "futures-core", ··· 5302 dependencies = [ 5303 "serde", 5304 "serde_spanned 0.6.9", 5305 + "toml_datetime 0.6.3", 5306 "toml_edit 0.20.2", 5307 ] 5308 5309 [[package]] 5310 name = "toml" 5311 + version = "0.9.8" 5312 source = "registry+https://github.com/rust-lang/crates.io-index" 5313 + checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" 5314 dependencies = [ 5315 + "indexmap 2.12.0", 5316 + "serde_core", 5317 + "serde_spanned 1.0.3", 5318 + "toml_datetime 0.7.3", 5319 "toml_parser", 5320 "toml_writer", 5321 + "winnow 0.7.13", 5322 ] 5323 5324 [[package]] 5325 name = "toml_datetime" 5326 + version = "0.6.3" 5327 source = "registry+https://github.com/rust-lang/crates.io-index" 5328 + checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" 5329 dependencies = [ 5330 "serde", 5331 ] 5332 5333 [[package]] 5334 name = "toml_datetime" 5335 + version = "0.7.3" 5336 source = "registry+https://github.com/rust-lang/crates.io-index" 5337 + checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" 5338 dependencies = [ 5339 + "serde_core", 5340 ] 5341 5342 [[package]] ··· 5345 source = "registry+https://github.com/rust-lang/crates.io-index" 5346 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 5347 dependencies = [ 5348 + "indexmap 2.12.0", 5349 + "toml_datetime 0.6.3", 5350 "winnow 0.5.40", 5351 ] 5352 ··· 5356 source = "registry+https://github.com/rust-lang/crates.io-index" 5357 checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" 5358 dependencies = [ 5359 + "indexmap 2.12.0", 5360 "serde", 5361 "serde_spanned 0.6.9", 5362 + "toml_datetime 0.6.3", 5363 "winnow 0.5.40", 5364 ] 5365 5366 [[package]] 5367 name = "toml_edit" 5368 + version = "0.23.7" 5369 source = "registry+https://github.com/rust-lang/crates.io-index" 5370 + checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" 5371 dependencies = [ 5372 + "indexmap 2.12.0", 5373 + "toml_datetime 0.7.3", 5374 + "toml_parser", 5375 + "winnow 0.7.13", 5376 ] 5377 5378 [[package]] 5379 name = "toml_parser" 5380 + version = "1.0.4" 5381 source = "registry+https://github.com/rust-lang/crates.io-index" 5382 + checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" 5383 dependencies = [ 5384 + "winnow 0.7.13", 5385 ] 5386 5387 [[package]] 5388 name = "toml_writer" 5389 + version = "1.0.4" 5390 source = "registry+https://github.com/rust-lang/crates.io-index" 5391 + checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" 5392 5393 [[package]] 5394 name = "tower" ··· 5411 source = "registry+https://github.com/rust-lang/crates.io-index" 5412 checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" 5413 dependencies = [ 5414 + "bitflags 2.10.0", 5415 "bytes", 5416 "futures-util", 5417 "http", ··· 5454 dependencies = [ 5455 "proc-macro2", 5456 "quote", 5457 + "syn 2.0.109", 5458 ] 5459 5460 [[package]] ··· 5468 5469 [[package]] 5470 name = "tray-icon" 5471 + version = "0.21.2" 5472 source = "registry+https://github.com/rust-lang/crates.io-index" 5473 + checksum = "e3d5572781bee8e3f994d7467084e1b1fd7a93ce66bd480f8156ba89dee55a2b" 5474 dependencies = [ 5475 "crossbeam-channel", 5476 + "dirs", 5477 "libappindicator", 5478 "muda", 5479 + "objc2 0.6.3", 5480 "objc2-app-kit", 5481 "objc2-core-foundation", 5482 "objc2-core-graphics", 5483 + "objc2-foundation 0.3.2", 5484 "once_cell", 5485 + "png 0.17.16", 5486 "serde", 5487 + "thiserror 2.0.17", 5488 + "windows-sys 0.60.2", 5489 ] 5490 5491 [[package]] ··· 5502 5503 [[package]] 5504 name = "typenum" 5505 + version = "1.19.0" 5506 source = "registry+https://github.com/rust-lang/crates.io-index" 5507 + checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 5508 5509 [[package]] 5510 name = "uds_windows" ··· 5560 5561 [[package]] 5562 name = "unicode-ident" 5563 + version = "1.0.22" 5564 source = "registry+https://github.com/rust-lang/crates.io-index" 5565 + checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 5566 5567 [[package]] 5568 name = "unicode-segmentation" ··· 5578 5579 [[package]] 5580 name = "url" 5581 + version = "2.5.7" 5582 source = "registry+https://github.com/rust-lang/crates.io-index" 5583 + checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 5584 dependencies = [ 5585 "form_urlencoded", 5586 "idna", ··· 5614 5615 [[package]] 5616 name = "uuid" 5617 + version = "1.18.1" 5618 source = "registry+https://github.com/rust-lang/crates.io-index" 5619 + checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" 5620 dependencies = [ 5621 + "getrandom 0.3.4", 5622 "js-sys", 5623 "serde", 5624 "wasm-bindgen", ··· 5643 5644 [[package]] 5645 name = "version-compare" 5646 + version = "0.2.1" 5647 source = "registry+https://github.com/rust-lang/crates.io-index" 5648 + checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" 5649 5650 [[package]] 5651 name = "version_check" ··· 5705 checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 5706 5707 [[package]] 5708 + name = "wasip2" 5709 + version = "1.0.1+wasi-0.2.4" 5710 source = "registry+https://github.com/rust-lang/crates.io-index" 5711 + checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 5712 dependencies = [ 5713 + "wit-bindgen", 5714 ] 5715 5716 [[package]] 5717 name = "wasm-bindgen" 5718 + version = "0.2.105" 5719 source = "registry+https://github.com/rust-lang/crates.io-index" 5720 + checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" 5721 dependencies = [ 5722 "cfg-if", 5723 "once_cell", 5724 "rustversion", 5725 "wasm-bindgen-macro", 5726 "wasm-bindgen-shared", 5727 ] 5728 5729 [[package]] 5730 name = "wasm-bindgen-futures" 5731 + version = "0.4.55" 5732 source = "registry+https://github.com/rust-lang/crates.io-index" 5733 + checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" 5734 dependencies = [ 5735 "cfg-if", 5736 "js-sys", ··· 5741 5742 [[package]] 5743 name = "wasm-bindgen-macro" 5744 + version = "0.2.105" 5745 source = "registry+https://github.com/rust-lang/crates.io-index" 5746 + checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" 5747 dependencies = [ 5748 "quote", 5749 "wasm-bindgen-macro-support", ··· 5751 5752 [[package]] 5753 name = "wasm-bindgen-macro-support" 5754 + version = "0.2.105" 5755 source = "registry+https://github.com/rust-lang/crates.io-index" 5756 + checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" 5757 dependencies = [ 5758 + "bumpalo", 5759 "proc-macro2", 5760 "quote", 5761 + "syn 2.0.109", 5762 "wasm-bindgen-shared", 5763 ] 5764 5765 [[package]] 5766 name = "wasm-bindgen-shared" 5767 + version = "0.2.105" 5768 source = "registry+https://github.com/rust-lang/crates.io-index" 5769 + checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" 5770 dependencies = [ 5771 "unicode-ident", 5772 ] ··· 5786 5787 [[package]] 5788 name = "web-sys" 5789 + version = "0.3.82" 5790 source = "registry+https://github.com/rust-lang/crates.io-index" 5791 + checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" 5792 dependencies = [ 5793 "js-sys", 5794 "wasm-bindgen", ··· 5850 5851 [[package]] 5852 name = "webpki-roots" 5853 + version = "1.0.4" 5854 source = "registry+https://github.com/rust-lang/crates.io-index" 5855 + checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" 5856 dependencies = [ 5857 "rustls-pki-types", 5858 ] ··· 5866 "webview2-com-macros", 5867 "webview2-com-sys", 5868 "windows", 5869 + "windows-core 0.61.2", 5870 "windows-implement", 5871 "windows-interface", 5872 ] ··· 5879 dependencies = [ 5880 "proc-macro2", 5881 "quote", 5882 + "syn 2.0.109", 5883 ] 5884 5885 [[package]] ··· 5888 source = "registry+https://github.com/rust-lang/crates.io-index" 5889 checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" 5890 dependencies = [ 5891 + "thiserror 2.0.17", 5892 "windows", 5893 + "windows-core 0.61.2", 5894 ] 5895 5896 [[package]] ··· 5917 5918 [[package]] 5919 name = "winapi-util" 5920 + version = "0.1.11" 5921 source = "registry+https://github.com/rust-lang/crates.io-index" 5922 + checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 5923 dependencies = [ 5924 + "windows-sys 0.61.2", 5925 ] 5926 5927 [[package]] ··· 5936 source = "registry+https://github.com/rust-lang/crates.io-index" 5937 checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" 5938 dependencies = [ 5939 + "objc2 0.6.3", 5940 "objc2-app-kit", 5941 "objc2-core-foundation", 5942 + "objc2-foundation 0.3.2", 5943 "raw-window-handle", 5944 "windows-sys 0.59.0", 5945 "windows-version", ··· 5952 checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" 5953 dependencies = [ 5954 "windows-collections", 5955 + "windows-core 0.61.2", 5956 "windows-future", 5957 + "windows-link 0.1.3", 5958 "windows-numerics", 5959 ] 5960 ··· 5964 source = "registry+https://github.com/rust-lang/crates.io-index" 5965 checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" 5966 dependencies = [ 5967 + "windows-core 0.61.2", 5968 ] 5969 5970 [[package]] ··· 5975 dependencies = [ 5976 "windows-implement", 5977 "windows-interface", 5978 + "windows-link 0.1.3", 5979 + "windows-result 0.3.4", 5980 + "windows-strings 0.4.2", 5981 + ] 5982 + 5983 + [[package]] 5984 + name = "windows-core" 5985 + version = "0.62.2" 5986 + source = "registry+https://github.com/rust-lang/crates.io-index" 5987 + checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" 5988 + dependencies = [ 5989 + "windows-implement", 5990 + "windows-interface", 5991 + "windows-link 0.2.1", 5992 + "windows-result 0.4.1", 5993 + "windows-strings 0.5.1", 5994 ] 5995 5996 [[package]] ··· 5999 source = "registry+https://github.com/rust-lang/crates.io-index" 6000 checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" 6001 dependencies = [ 6002 + "windows-core 0.61.2", 6003 + "windows-link 0.1.3", 6004 "windows-threading", 6005 ] 6006 6007 [[package]] 6008 name = "windows-implement" 6009 + version = "0.60.2" 6010 source = "registry+https://github.com/rust-lang/crates.io-index" 6011 + checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" 6012 dependencies = [ 6013 "proc-macro2", 6014 "quote", 6015 + "syn 2.0.109", 6016 ] 6017 6018 [[package]] 6019 name = "windows-interface" 6020 + version = "0.59.3" 6021 source = "registry+https://github.com/rust-lang/crates.io-index" 6022 + checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" 6023 dependencies = [ 6024 "proc-macro2", 6025 "quote", 6026 + "syn 2.0.109", 6027 ] 6028 6029 [[package]] ··· 6031 version = "0.1.3" 6032 source = "registry+https://github.com/rust-lang/crates.io-index" 6033 checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 6034 + 6035 + [[package]] 6036 + name = "windows-link" 6037 + version = "0.2.1" 6038 + source = "registry+https://github.com/rust-lang/crates.io-index" 6039 + checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 6040 6041 [[package]] 6042 name = "windows-numerics" ··· 6044 source = "registry+https://github.com/rust-lang/crates.io-index" 6045 checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" 6046 dependencies = [ 6047 + "windows-core 0.61.2", 6048 + "windows-link 0.1.3", 6049 ] 6050 6051 [[package]] ··· 6054 source = "registry+https://github.com/rust-lang/crates.io-index" 6055 checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" 6056 dependencies = [ 6057 + "windows-link 0.1.3", 6058 + "windows-result 0.3.4", 6059 + "windows-strings 0.4.2", 6060 ] 6061 6062 [[package]] ··· 6065 source = "registry+https://github.com/rust-lang/crates.io-index" 6066 checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" 6067 dependencies = [ 6068 + "windows-link 0.1.3", 6069 + ] 6070 + 6071 + [[package]] 6072 + name = "windows-result" 6073 + version = "0.4.1" 6074 + source = "registry+https://github.com/rust-lang/crates.io-index" 6075 + checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" 6076 + dependencies = [ 6077 + "windows-link 0.2.1", 6078 ] 6079 6080 [[package]] ··· 6083 source = "registry+https://github.com/rust-lang/crates.io-index" 6084 checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" 6085 dependencies = [ 6086 + "windows-link 0.1.3", 6087 ] 6088 6089 [[package]] 6090 + name = "windows-strings" 6091 + version = "0.5.1" 6092 source = "registry+https://github.com/rust-lang/crates.io-index" 6093 + checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" 6094 dependencies = [ 6095 + "windows-link 0.2.1", 6096 ] 6097 6098 [[package]] 6099 name = "windows-sys" 6100 + version = "0.45.0" 6101 source = "registry+https://github.com/rust-lang/crates.io-index" 6102 + checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 6103 dependencies = [ 6104 + "windows-targets 0.42.2", 6105 ] 6106 6107 [[package]] ··· 6128 source = "registry+https://github.com/rust-lang/crates.io-index" 6129 checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 6130 dependencies = [ 6131 + "windows-targets 0.53.5", 6132 + ] 6133 + 6134 + [[package]] 6135 + name = "windows-sys" 6136 + version = "0.61.2" 6137 + source = "registry+https://github.com/rust-lang/crates.io-index" 6138 + checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 6139 + dependencies = [ 6140 + "windows-link 0.2.1", 6141 ] 6142 6143 [[package]] ··· 6157 6158 [[package]] 6159 name = "windows-targets" 6160 version = "0.52.6" 6161 source = "registry+https://github.com/rust-lang/crates.io-index" 6162 checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" ··· 6173 6174 [[package]] 6175 name = "windows-targets" 6176 + version = "0.53.5" 6177 source = "registry+https://github.com/rust-lang/crates.io-index" 6178 + checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 6179 dependencies = [ 6180 + "windows-link 0.2.1", 6181 + "windows_aarch64_gnullvm 0.53.1", 6182 + "windows_aarch64_msvc 0.53.1", 6183 + "windows_i686_gnu 0.53.1", 6184 + "windows_i686_gnullvm 0.53.1", 6185 + "windows_i686_msvc 0.53.1", 6186 + "windows_x86_64_gnu 0.53.1", 6187 + "windows_x86_64_gnullvm 0.53.1", 6188 + "windows_x86_64_msvc 0.53.1", 6189 ] 6190 6191 [[package]] ··· 6194 source = "registry+https://github.com/rust-lang/crates.io-index" 6195 checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" 6196 dependencies = [ 6197 + "windows-link 0.1.3", 6198 ] 6199 6200 [[package]] 6201 name = "windows-version" 6202 + version = "0.1.7" 6203 source = "registry+https://github.com/rust-lang/crates.io-index" 6204 + checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" 6205 dependencies = [ 6206 + "windows-link 0.2.1", 6207 ] 6208 6209 [[package]] ··· 6211 version = "0.42.2" 6212 source = "registry+https://github.com/rust-lang/crates.io-index" 6213 checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 6214 6215 [[package]] 6216 name = "windows_aarch64_gnullvm" ··· 6220 6221 [[package]] 6222 name = "windows_aarch64_gnullvm" 6223 + version = "0.53.1" 6224 source = "registry+https://github.com/rust-lang/crates.io-index" 6225 + checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" 6226 6227 [[package]] 6228 name = "windows_aarch64_msvc" ··· 6232 6233 [[package]] 6234 name = "windows_aarch64_msvc" 6235 version = "0.52.6" 6236 source = "registry+https://github.com/rust-lang/crates.io-index" 6237 checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 6238 6239 [[package]] 6240 name = "windows_aarch64_msvc" 6241 + version = "0.53.1" 6242 source = "registry+https://github.com/rust-lang/crates.io-index" 6243 + checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" 6244 6245 [[package]] 6246 name = "windows_i686_gnu" ··· 6250 6251 [[package]] 6252 name = "windows_i686_gnu" 6253 version = "0.52.6" 6254 source = "registry+https://github.com/rust-lang/crates.io-index" 6255 checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 6256 6257 [[package]] 6258 name = "windows_i686_gnu" 6259 + version = "0.53.1" 6260 source = "registry+https://github.com/rust-lang/crates.io-index" 6261 + checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" 6262 6263 [[package]] 6264 name = "windows_i686_gnullvm" ··· 6268 6269 [[package]] 6270 name = "windows_i686_gnullvm" 6271 + version = "0.53.1" 6272 source = "registry+https://github.com/rust-lang/crates.io-index" 6273 + checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" 6274 6275 [[package]] 6276 name = "windows_i686_msvc" ··· 6280 6281 [[package]] 6282 name = "windows_i686_msvc" 6283 version = "0.52.6" 6284 source = "registry+https://github.com/rust-lang/crates.io-index" 6285 checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 6286 6287 [[package]] 6288 name = "windows_i686_msvc" 6289 + version = "0.53.1" 6290 source = "registry+https://github.com/rust-lang/crates.io-index" 6291 + checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" 6292 6293 [[package]] 6294 name = "windows_x86_64_gnu" ··· 6298 6299 [[package]] 6300 name = "windows_x86_64_gnu" 6301 version = "0.52.6" 6302 source = "registry+https://github.com/rust-lang/crates.io-index" 6303 checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 6304 6305 [[package]] 6306 name = "windows_x86_64_gnu" 6307 + version = "0.53.1" 6308 source = "registry+https://github.com/rust-lang/crates.io-index" 6309 + checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" 6310 6311 [[package]] 6312 name = "windows_x86_64_gnullvm" ··· 6316 6317 [[package]] 6318 name = "windows_x86_64_gnullvm" 6319 version = "0.52.6" 6320 source = "registry+https://github.com/rust-lang/crates.io-index" 6321 checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 6322 6323 [[package]] 6324 name = "windows_x86_64_gnullvm" 6325 + version = "0.53.1" 6326 source = "registry+https://github.com/rust-lang/crates.io-index" 6327 + checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" 6328 6329 [[package]] 6330 name = "windows_x86_64_msvc" ··· 6334 6335 [[package]] 6336 name = "windows_x86_64_msvc" 6337 version = "0.52.6" 6338 source = "registry+https://github.com/rust-lang/crates.io-index" 6339 checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 6340 6341 [[package]] 6342 name = "windows_x86_64_msvc" 6343 + version = "0.53.1" 6344 source = "registry+https://github.com/rust-lang/crates.io-index" 6345 + checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 6346 6347 [[package]] 6348 name = "winnow" ··· 6355 6356 [[package]] 6357 name = "winnow" 6358 + version = "0.7.13" 6359 source = "registry+https://github.com/rust-lang/crates.io-index" 6360 + checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" 6361 dependencies = [ 6362 "memchr", 6363 ] ··· 6373 ] 6374 6375 [[package]] 6376 + name = "wit-bindgen" 6377 + version = "0.46.0" 6378 source = "registry+https://github.com/rust-lang/crates.io-index" 6379 + checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 6380 6381 [[package]] 6382 name = "writeable" 6383 + version = "0.6.2" 6384 source = "registry+https://github.com/rust-lang/crates.io-index" 6385 + checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 6386 6387 [[package]] 6388 name = "wry" 6389 + version = "0.53.5" 6390 source = "registry+https://github.com/rust-lang/crates.io-index" 6391 + checksum = "728b7d4c8ec8d81cab295e0b5b8a4c263c0d41a785fb8f8c4df284e5411140a2" 6392 dependencies = [ 6393 "base64 0.22.1", 6394 + "block2 0.6.2", 6395 "cookie", 6396 "crossbeam-channel", 6397 + "dirs", 6398 "dpi", 6399 "dunce", 6400 "gdkx11", ··· 6406 "kuchikiki", 6407 "libc", 6408 "ndk", 6409 + "objc2 0.6.3", 6410 "objc2-app-kit", 6411 "objc2-core-foundation", 6412 + "objc2-foundation 0.3.2", 6413 "objc2-ui-kit", 6414 "objc2-web-kit", 6415 "once_cell", ··· 6418 "sha2", 6419 "soup3", 6420 "tao-macros", 6421 + "thiserror 2.0.17", 6422 "url", 6423 "webkit2gtk", 6424 "webkit2gtk-sys", 6425 "webview2-com", 6426 "windows", 6427 + "windows-core 0.61.2", 6428 "windows-version", 6429 "x11-dl", 6430 ] ··· 6452 6453 [[package]] 6454 name = "x11rb" 6455 + version = "0.13.2" 6456 source = "registry+https://github.com/rust-lang/crates.io-index" 6457 + checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" 6458 dependencies = [ 6459 "gethostname", 6460 + "rustix", 6461 "x11rb-protocol", 6462 ] 6463 6464 [[package]] 6465 name = "x11rb-protocol" 6466 + version = "0.13.2" 6467 source = "registry+https://github.com/rust-lang/crates.io-index" 6468 + checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" 6469 6470 [[package]] 6471 name = "yoke" 6472 + version = "0.8.1" 6473 source = "registry+https://github.com/rust-lang/crates.io-index" 6474 + checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 6475 dependencies = [ 6476 "stable_deref_trait", 6477 "yoke-derive", 6478 "zerofrom", ··· 6480 6481 [[package]] 6482 name = "yoke-derive" 6483 + version = "0.8.1" 6484 source = "registry+https://github.com/rust-lang/crates.io-index" 6485 + checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" 6486 dependencies = [ 6487 "proc-macro2", 6488 "quote", 6489 + "syn 2.0.109", 6490 "synstructure", 6491 ] 6492 6493 [[package]] 6494 name = "zbus" 6495 + version = "5.12.0" 6496 source = "registry+https://github.com/rust-lang/crates.io-index" 6497 + checksum = "b622b18155f7a93d1cd2dc8c01d2d6a44e08fb9ebb7b3f9e6ed101488bad6c91" 6498 dependencies = [ 6499 "async-broadcast", 6500 "async-executor", ··· 6516 "serde_repr", 6517 "tracing", 6518 "uds_windows", 6519 + "uuid", 6520 + "windows-sys 0.61.2", 6521 + "winnow 0.7.13", 6522 "zbus_macros", 6523 "zbus_names", 6524 "zvariant", ··· 6526 6527 [[package]] 6528 name = "zbus_macros" 6529 + version = "5.12.0" 6530 source = "registry+https://github.com/rust-lang/crates.io-index" 6531 + checksum = "1cdb94821ca8a87ca9c298b5d1cbd80e2a8b67115d99f6e4551ac49e42b6a314" 6532 dependencies = [ 6533 + "proc-macro-crate 3.4.0", 6534 "proc-macro2", 6535 "quote", 6536 + "syn 2.0.109", 6537 "zbus_names", 6538 "zvariant", 6539 "zvariant_utils", ··· 6547 dependencies = [ 6548 "serde", 6549 "static_assertions", 6550 + "winnow 0.7.13", 6551 "zvariant", 6552 ] 6553 6554 [[package]] 6555 name = "zerocopy" 6556 + version = "0.8.27" 6557 source = "registry+https://github.com/rust-lang/crates.io-index" 6558 + checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" 6559 dependencies = [ 6560 "zerocopy-derive", 6561 ] 6562 6563 [[package]] 6564 name = "zerocopy-derive" 6565 + version = "0.8.27" 6566 source = "registry+https://github.com/rust-lang/crates.io-index" 6567 + checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" 6568 dependencies = [ 6569 "proc-macro2", 6570 "quote", 6571 + "syn 2.0.109", 6572 ] 6573 6574 [[package]] ··· 6588 dependencies = [ 6589 "proc-macro2", 6590 "quote", 6591 + "syn 2.0.109", 6592 "synstructure", 6593 ] 6594 6595 [[package]] 6596 name = "zeroize" 6597 + version = "1.8.2" 6598 source = "registry+https://github.com/rust-lang/crates.io-index" 6599 + checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" 6600 6601 [[package]] 6602 name = "zerotrie" 6603 + version = "0.2.3" 6604 source = "registry+https://github.com/rust-lang/crates.io-index" 6605 + checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 6606 dependencies = [ 6607 "displaydoc", 6608 "yoke", ··· 6611 6612 [[package]] 6613 name = "zerovec" 6614 + version = "0.11.5" 6615 source = "registry+https://github.com/rust-lang/crates.io-index" 6616 + checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 6617 dependencies = [ 6618 "yoke", 6619 "zerofrom", ··· 6622 6623 [[package]] 6624 name = "zerovec-derive" 6625 + version = "0.11.2" 6626 source = "registry+https://github.com/rust-lang/crates.io-index" 6627 + checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 6628 dependencies = [ 6629 "proc-macro2", 6630 "quote", 6631 + "syn 2.0.109", 6632 ] 6633 6634 [[package]] ··· 6648 6649 [[package]] 6650 name = "zune-jpeg" 6651 + version = "0.4.21" 6652 source = "registry+https://github.com/rust-lang/crates.io-index" 6653 + checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713" 6654 dependencies = [ 6655 "zune-core", 6656 ] 6657 6658 [[package]] 6659 name = "zvariant" 6660 + version = "5.8.0" 6661 source = "registry+https://github.com/rust-lang/crates.io-index" 6662 + checksum = "2be61892e4f2b1772727be11630a62664a1826b62efa43a6fe7449521cb8744c" 6663 dependencies = [ 6664 "endi", 6665 "enumflags2", 6666 "serde", 6667 + "winnow 0.7.13", 6668 "zvariant_derive", 6669 "zvariant_utils", 6670 ] 6671 6672 [[package]] 6673 name = "zvariant_derive" 6674 + version = "5.8.0" 6675 source = "registry+https://github.com/rust-lang/crates.io-index" 6676 + checksum = "da58575a1b2b20766513b1ec59d8e2e68db2745379f961f86650655e862d2006" 6677 dependencies = [ 6678 + "proc-macro-crate 3.4.0", 6679 "proc-macro2", 6680 "quote", 6681 + "syn 2.0.109", 6682 "zvariant_utils", 6683 ] 6684 6685 [[package]] 6686 name = "zvariant_utils" 6687 + version = "3.2.1" 6688 source = "registry+https://github.com/rust-lang/crates.io-index" 6689 + checksum = "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599" 6690 dependencies = [ 6691 "proc-macro2", 6692 "quote", 6693 "serde", 6694 + "syn 2.0.109", 6695 + "winnow 0.7.13", 6696 ]
+14 -15
src-tauri/Cargo.toml
··· 1 [package] 2 name = "VRChatPhotoManager" 3 - version = "0.2.6" 4 description = "VRChat Photo Manager" 5 authors = ["_phaz"] 6 edition = "2021" ··· 11 tauri-build = { version = "2.0.0-rc", features = [] } 12 13 [dependencies] 14 - tauri = { version = "2.7.0", features = [ "tray-icon", "image-png", "devtools" ] } 15 serde = { version = "1.0", features = ["derive"] } 16 serde_json = "1.0" 17 - open = "5.1.2" 18 - tauri-plugin-deep-link = "2.0.1" 19 - dirs = "5.0.1" 20 - notify = "6.1.1" 21 - regex = "1.10.4" 22 reqwest = { version = "0.12", features = ["blocking"] } 23 - image = "0.25.2" 24 - fast_image_resize = { version = "4.2.1", features = [ "image" ] } 25 - arboard = "3.6.0" 26 - tauri-plugin-single-instance = { version = "2.3.2", features = ["deep-link"] } 27 - tauri-plugin-shell = "2.3.0" 28 - tauri-plugin-http = "2.5.1" 29 - tauri-plugin-process = "2.3.0" 30 [target.'cfg(windows)'.dependencies] 31 - mslnk = { version = "0.1.8" } 32 33 [features] 34 # this feature is used for production builds or when `devPath` points to the filesystem
··· 1 [package] 2 name = "VRChatPhotoManager" 3 + version = "0.2.7-hot1" 4 description = "VRChat Photo Manager" 5 authors = ["_phaz"] 6 edition = "2021" ··· 11 tauri-build = { version = "2.0.0-rc", features = [] } 12 13 [dependencies] 14 + tauri = { version = "2.9", features = [ "tray-icon", "image-png", "devtools" ] } 15 serde = { version = "1.0", features = ["derive"] } 16 serde_json = "1.0" 17 + open = "5.3" 18 + dirs = "6.0" 19 + notify = "8.2" 20 + regex = "1.12" 21 reqwest = { version = "0.12", features = ["blocking"] } 22 + image = "0.25" 23 + fast_image_resize = { version = "5.3", features = [ "image" ] } 24 + arboard = "3.6" 25 + tauri-plugin-single-instance = { version = "2.3", features = ["deep-link"] } 26 + tauri-plugin-shell = "2.3" 27 + tauri-plugin-http = "2.5" 28 + tauri-plugin-process = "2.3" 29 [target.'cfg(windows)'.dependencies] 30 + mslnk = { version = "0.1" } 31 32 [features] 33 # this feature is used for production builds or when `devPath` points to the filesystem
+1 -1
src-tauri/gen/schemas/acl-manifests.json
··· 1 - {"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version","allow-identifier","allow-bundle-type"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-remove-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-remove-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-is-always-on-top","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"deep-link":{"default_permission":{"identifier":"default","description":"Allows reading the opened deep link via the get_current command","permissions":["allow-get-current"]},"permissions":{"allow-get-current":{"identifier":"allow-get-current","description":"Enables the get_current command without any pre-configured scope.","commands":{"allow":["get_current"],"deny":[]}},"allow-is-registered":{"identifier":"allow-is-registered","description":"Enables the is_registered command without any pre-configured scope.","commands":{"allow":["is_registered"],"deny":[]}},"allow-register":{"identifier":"allow-register","description":"Enables the register command without any pre-configured scope.","commands":{"allow":["register"],"deny":[]}},"allow-unregister":{"identifier":"allow-unregister","description":"Enables the unregister command without any pre-configured scope.","commands":{"allow":["unregister"],"deny":[]}},"deny-get-current":{"identifier":"deny-get-current","description":"Denies the get_current command without any pre-configured scope.","commands":{"allow":[],"deny":["get_current"]}},"deny-is-registered":{"identifier":"deny-is-registered","description":"Denies the is_registered command without any pre-configured scope.","commands":{"allow":[],"deny":["is_registered"]}},"deny-register":{"identifier":"deny-register","description":"Denies the register command without any pre-configured scope.","commands":{"allow":[],"deny":["register"]}},"deny-unregister":{"identifier":"deny-unregister","description":"Denies the unregister command without any pre-configured scope.","commands":{"allow":[],"deny":["unregister"]}}},"permission_sets":{},"global_scope_schema":null},"http":{"default_permission":{"identifier":"default","description":"This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n","permissions":["allow-fetch","allow-fetch-cancel","allow-fetch-read-body","allow-fetch-send"]},"permissions":{"allow-fetch":{"identifier":"allow-fetch","description":"Enables the fetch command without any pre-configured scope.","commands":{"allow":["fetch"],"deny":[]}},"allow-fetch-cancel":{"identifier":"allow-fetch-cancel","description":"Enables the fetch_cancel command without any pre-configured scope.","commands":{"allow":["fetch_cancel"],"deny":[]}},"allow-fetch-read-body":{"identifier":"allow-fetch-read-body","description":"Enables the fetch_read_body command without any pre-configured scope.","commands":{"allow":["fetch_read_body"],"deny":[]}},"allow-fetch-send":{"identifier":"allow-fetch-send","description":"Enables the fetch_send command without any pre-configured scope.","commands":{"allow":["fetch_send"],"deny":[]}},"deny-fetch":{"identifier":"deny-fetch","description":"Denies the fetch command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch"]}},"deny-fetch-cancel":{"identifier":"deny-fetch-cancel","description":"Denies the fetch_cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_cancel"]}},"deny-fetch-read-body":{"identifier":"deny-fetch-read-body","description":"Denies the fetch_read_body command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_read_body"]}},"deny-fetch-send":{"identifier":"deny-fetch-send","description":"Denies the fetch_send command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_send"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"description":"A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"},{"properties":{"url":{"description":"A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"}},"required":["url"],"type":"object"}],"description":"HTTP scope entry.","title":"HttpScopeEntry"}},"process":{"default_permission":{"identifier":"default","description":"This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n","permissions":["allow-exit","allow-restart"]},"permissions":{"allow-exit":{"identifier":"allow-exit","description":"Enables the exit command without any pre-configured scope.","commands":{"allow":["exit"],"deny":[]}},"allow-restart":{"identifier":"allow-restart","description":"Enables the restart command without any pre-configured scope.","commands":{"allow":["restart"],"deny":[]}},"deny-exit":{"identifier":"deny-exit","description":"Denies the exit command without any pre-configured scope.","commands":{"allow":[],"deny":["exit"]}},"deny-restart":{"identifier":"deny-restart","description":"Denies the restart command without any pre-configured scope.","commands":{"allow":[],"deny":["restart"]}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":{"identifier":"default","description":"This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n","permissions":["allow-open"]},"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-spawn":{"identifier":"allow-spawn","description":"Enables the spawn command without any pre-configured scope.","commands":{"allow":["spawn"],"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-spawn":{"identifier":"deny-spawn","description":"Denies the spawn command without any pre-configured scope.","commands":{"allow":[],"deny":["spawn"]}},"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#","anyOf":[{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"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`, `$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"}},"required":["cmd","name"],"type":"object"},{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"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":["name","sidecar"],"type":"object"}],"definitions":{"ShellScopeEntryAllowedArg":{"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":{"raw":{"default":false,"description":"Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.","type":"boolean"},"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\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\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."},"ShellScopeEntryAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellScopeEntryAllowedArg"},"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 [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"Shell scope entry.","title":"ShellScopeEntry"}}}
··· 1 + {"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version","allow-identifier","allow-bundle-type","allow-register-listener","allow-remove-listener"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-remove-listener":{"identifier":"allow-remove-listener","description":"Enables the remove_listener command without any pre-configured scope.","commands":{"allow":["remove_listener"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-remove-listener":{"identifier":"deny-remove-listener","description":"Denies the remove_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_listener"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-is-always-on-top","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-focusable":{"identifier":"allow-set-focusable","description":"Enables the set_focusable command without any pre-configured scope.","commands":{"allow":["set_focusable"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-simple-fullscreen":{"identifier":"allow-set-simple-fullscreen","description":"Enables the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":["set_simple_fullscreen"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-focusable":{"identifier":"deny-set-focusable","description":"Denies the set_focusable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focusable"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-simple-fullscreen":{"identifier":"deny-set-simple-fullscreen","description":"Denies the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_simple_fullscreen"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"http":{"default_permission":{"identifier":"default","description":"This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n","permissions":["allow-fetch","allow-fetch-cancel","allow-fetch-read-body","allow-fetch-send"]},"permissions":{"allow-fetch":{"identifier":"allow-fetch","description":"Enables the fetch command without any pre-configured scope.","commands":{"allow":["fetch"],"deny":[]}},"allow-fetch-cancel":{"identifier":"allow-fetch-cancel","description":"Enables the fetch_cancel command without any pre-configured scope.","commands":{"allow":["fetch_cancel"],"deny":[]}},"allow-fetch-read-body":{"identifier":"allow-fetch-read-body","description":"Enables the fetch_read_body command without any pre-configured scope.","commands":{"allow":["fetch_read_body"],"deny":[]}},"allow-fetch-send":{"identifier":"allow-fetch-send","description":"Enables the fetch_send command without any pre-configured scope.","commands":{"allow":["fetch_send"],"deny":[]}},"deny-fetch":{"identifier":"deny-fetch","description":"Denies the fetch command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch"]}},"deny-fetch-cancel":{"identifier":"deny-fetch-cancel","description":"Denies the fetch_cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_cancel"]}},"deny-fetch-read-body":{"identifier":"deny-fetch-read-body","description":"Denies the fetch_read_body command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_read_body"]}},"deny-fetch-send":{"identifier":"deny-fetch-send","description":"Denies the fetch_send command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_send"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"description":"A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"},{"properties":{"url":{"description":"A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"}},"required":["url"],"type":"object"}],"description":"HTTP scope entry.","title":"HttpScopeEntry"}},"process":{"default_permission":{"identifier":"default","description":"This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n","permissions":["allow-exit","allow-restart"]},"permissions":{"allow-exit":{"identifier":"allow-exit","description":"Enables the exit command without any pre-configured scope.","commands":{"allow":["exit"],"deny":[]}},"allow-restart":{"identifier":"allow-restart","description":"Enables the restart command without any pre-configured scope.","commands":{"allow":["restart"],"deny":[]}},"deny-exit":{"identifier":"deny-exit","description":"Denies the exit command without any pre-configured scope.","commands":{"allow":[],"deny":["exit"]}},"deny-restart":{"identifier":"deny-restart","description":"Denies the restart command without any pre-configured scope.","commands":{"allow":[],"deny":["restart"]}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":{"identifier":"default","description":"This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n","permissions":["allow-open"]},"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-spawn":{"identifier":"allow-spawn","description":"Enables the spawn command without any pre-configured scope.","commands":{"allow":["spawn"],"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-spawn":{"identifier":"deny-spawn","description":"Denies the spawn command without any pre-configured scope.","commands":{"allow":[],"deny":["spawn"]}},"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#","anyOf":[{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"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`, `$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"}},"required":["cmd","name"],"type":"object"},{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"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":["name","sidecar"],"type":"object"}],"definitions":{"ShellScopeEntryAllowedArg":{"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":{"raw":{"default":false,"description":"Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.","type":"boolean"},"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\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\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."},"ShellScopeEntryAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellScopeEntryAllowedArg"},"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 [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"Shell scope entry.","title":"ShellScopeEntry"}}}
+50 -56
src-tauri/gen/schemas/desktop-schema.json
··· 519 "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" 520 }, 521 { 522 - "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`", 523 "type": "string", 524 "const": "core:app:default", 525 - "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`" 526 }, 527 { 528 "description": "Enables the app_hide command without any pre-configured scope.", ··· 567 "markdownDescription": "Enables the name command without any pre-configured scope." 568 }, 569 { 570 "description": "Enables the remove_data_store command without any pre-configured scope.", 571 "type": "string", 572 "const": "core:app:allow-remove-data-store", 573 "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." 574 }, 575 { 576 "description": "Enables the set_app_theme command without any pre-configured scope.", 577 "type": "string", 578 "const": "core:app:allow-set-app-theme", ··· 639 "markdownDescription": "Denies the name command without any pre-configured scope." 640 }, 641 { 642 "description": "Denies the remove_data_store command without any pre-configured scope.", 643 "type": "string", 644 "const": "core:app:deny-remove-data-store", 645 "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." 646 }, 647 { 648 "description": "Denies the set_app_theme command without any pre-configured scope.", ··· 1827 "markdownDescription": "Enables the set_focus command without any pre-configured scope." 1828 }, 1829 { 1830 "description": "Enables the set_fullscreen command without any pre-configured scope.", 1831 "type": "string", 1832 "const": "core:window:allow-set-fullscreen", ··· 1897 "type": "string", 1898 "const": "core:window:allow-set-shadow", 1899 "markdownDescription": "Enables the set_shadow command without any pre-configured scope." 1900 }, 1901 { 1902 "description": "Enables the set_size command without any pre-configured scope.", ··· 2271 "markdownDescription": "Denies the set_focus command without any pre-configured scope." 2272 }, 2273 { 2274 "description": "Denies the set_fullscreen command without any pre-configured scope.", 2275 "type": "string", 2276 "const": "core:window:deny-set-fullscreen", ··· 2341 "type": "string", 2342 "const": "core:window:deny-set-shadow", 2343 "markdownDescription": "Denies the set_shadow command without any pre-configured scope." 2344 }, 2345 { 2346 "description": "Denies the set_size command without any pre-configured scope.", ··· 2431 "type": "string", 2432 "const": "core:window:deny-unminimize", 2433 "markdownDescription": "Denies the unminimize command without any pre-configured scope." 2434 - }, 2435 - { 2436 - "description": "Allows reading the opened deep link via the get_current command\n#### This default permission set includes:\n\n- `allow-get-current`", 2437 - "type": "string", 2438 - "const": "deep-link:default", 2439 - "markdownDescription": "Allows reading the opened deep link via the get_current command\n#### This default permission set includes:\n\n- `allow-get-current`" 2440 - }, 2441 - { 2442 - "description": "Enables the get_current command without any pre-configured scope.", 2443 - "type": "string", 2444 - "const": "deep-link:allow-get-current", 2445 - "markdownDescription": "Enables the get_current command without any pre-configured scope." 2446 - }, 2447 - { 2448 - "description": "Enables the is_registered command without any pre-configured scope.", 2449 - "type": "string", 2450 - "const": "deep-link:allow-is-registered", 2451 - "markdownDescription": "Enables the is_registered command without any pre-configured scope." 2452 - }, 2453 - { 2454 - "description": "Enables the register command without any pre-configured scope.", 2455 - "type": "string", 2456 - "const": "deep-link:allow-register", 2457 - "markdownDescription": "Enables the register command without any pre-configured scope." 2458 - }, 2459 - { 2460 - "description": "Enables the unregister command without any pre-configured scope.", 2461 - "type": "string", 2462 - "const": "deep-link:allow-unregister", 2463 - "markdownDescription": "Enables the unregister command without any pre-configured scope." 2464 - }, 2465 - { 2466 - "description": "Denies the get_current command without any pre-configured scope.", 2467 - "type": "string", 2468 - "const": "deep-link:deny-get-current", 2469 - "markdownDescription": "Denies the get_current command without any pre-configured scope." 2470 - }, 2471 - { 2472 - "description": "Denies the is_registered command without any pre-configured scope.", 2473 - "type": "string", 2474 - "const": "deep-link:deny-is-registered", 2475 - "markdownDescription": "Denies the is_registered command without any pre-configured scope." 2476 - }, 2477 - { 2478 - "description": "Denies the register command without any pre-configured scope.", 2479 - "type": "string", 2480 - "const": "deep-link:deny-register", 2481 - "markdownDescription": "Denies the register command without any pre-configured scope." 2482 - }, 2483 - { 2484 - "description": "Denies the unregister command without any pre-configured scope.", 2485 - "type": "string", 2486 - "const": "deep-link:deny-unregister", 2487 - "markdownDescription": "Denies the unregister command without any pre-configured scope." 2488 }, 2489 { 2490 "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`",
··· 519 "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" 520 }, 521 { 522 + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`", 523 "type": "string", 524 "const": "core:app:default", 525 + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`" 526 }, 527 { 528 "description": "Enables the app_hide command without any pre-configured scope.", ··· 567 "markdownDescription": "Enables the name command without any pre-configured scope." 568 }, 569 { 570 + "description": "Enables the register_listener command without any pre-configured scope.", 571 + "type": "string", 572 + "const": "core:app:allow-register-listener", 573 + "markdownDescription": "Enables the register_listener command without any pre-configured scope." 574 + }, 575 + { 576 "description": "Enables the remove_data_store command without any pre-configured scope.", 577 "type": "string", 578 "const": "core:app:allow-remove-data-store", 579 "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." 580 }, 581 { 582 + "description": "Enables the remove_listener command without any pre-configured scope.", 583 + "type": "string", 584 + "const": "core:app:allow-remove-listener", 585 + "markdownDescription": "Enables the remove_listener command without any pre-configured scope." 586 + }, 587 + { 588 "description": "Enables the set_app_theme command without any pre-configured scope.", 589 "type": "string", 590 "const": "core:app:allow-set-app-theme", ··· 651 "markdownDescription": "Denies the name command without any pre-configured scope." 652 }, 653 { 654 + "description": "Denies the register_listener command without any pre-configured scope.", 655 + "type": "string", 656 + "const": "core:app:deny-register-listener", 657 + "markdownDescription": "Denies the register_listener command without any pre-configured scope." 658 + }, 659 + { 660 "description": "Denies the remove_data_store command without any pre-configured scope.", 661 "type": "string", 662 "const": "core:app:deny-remove-data-store", 663 "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." 664 + }, 665 + { 666 + "description": "Denies the remove_listener command without any pre-configured scope.", 667 + "type": "string", 668 + "const": "core:app:deny-remove-listener", 669 + "markdownDescription": "Denies the remove_listener command without any pre-configured scope." 670 }, 671 { 672 "description": "Denies the set_app_theme command without any pre-configured scope.", ··· 1851 "markdownDescription": "Enables the set_focus command without any pre-configured scope." 1852 }, 1853 { 1854 + "description": "Enables the set_focusable command without any pre-configured scope.", 1855 + "type": "string", 1856 + "const": "core:window:allow-set-focusable", 1857 + "markdownDescription": "Enables the set_focusable command without any pre-configured scope." 1858 + }, 1859 + { 1860 "description": "Enables the set_fullscreen command without any pre-configured scope.", 1861 "type": "string", 1862 "const": "core:window:allow-set-fullscreen", ··· 1927 "type": "string", 1928 "const": "core:window:allow-set-shadow", 1929 "markdownDescription": "Enables the set_shadow command without any pre-configured scope." 1930 + }, 1931 + { 1932 + "description": "Enables the set_simple_fullscreen command without any pre-configured scope.", 1933 + "type": "string", 1934 + "const": "core:window:allow-set-simple-fullscreen", 1935 + "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope." 1936 }, 1937 { 1938 "description": "Enables the set_size command without any pre-configured scope.", ··· 2307 "markdownDescription": "Denies the set_focus command without any pre-configured scope." 2308 }, 2309 { 2310 + "description": "Denies the set_focusable command without any pre-configured scope.", 2311 + "type": "string", 2312 + "const": "core:window:deny-set-focusable", 2313 + "markdownDescription": "Denies the set_focusable command without any pre-configured scope." 2314 + }, 2315 + { 2316 "description": "Denies the set_fullscreen command without any pre-configured scope.", 2317 "type": "string", 2318 "const": "core:window:deny-set-fullscreen", ··· 2383 "type": "string", 2384 "const": "core:window:deny-set-shadow", 2385 "markdownDescription": "Denies the set_shadow command without any pre-configured scope." 2386 + }, 2387 + { 2388 + "description": "Denies the set_simple_fullscreen command without any pre-configured scope.", 2389 + "type": "string", 2390 + "const": "core:window:deny-set-simple-fullscreen", 2391 + "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope." 2392 }, 2393 { 2394 "description": "Denies the set_size command without any pre-configured scope.", ··· 2479 "type": "string", 2480 "const": "core:window:deny-unminimize", 2481 "markdownDescription": "Denies the unminimize command without any pre-configured scope." 2482 }, 2483 { 2484 "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`",
+50 -56
src-tauri/gen/schemas/linux-schema.json
··· 519 "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" 520 }, 521 { 522 - "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`", 523 "type": "string", 524 "const": "core:app:default", 525 - "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`" 526 }, 527 { 528 "description": "Enables the app_hide command without any pre-configured scope.", ··· 567 "markdownDescription": "Enables the name command without any pre-configured scope." 568 }, 569 { 570 "description": "Enables the remove_data_store command without any pre-configured scope.", 571 "type": "string", 572 "const": "core:app:allow-remove-data-store", 573 "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." 574 }, 575 { 576 "description": "Enables the set_app_theme command without any pre-configured scope.", 577 "type": "string", 578 "const": "core:app:allow-set-app-theme", ··· 639 "markdownDescription": "Denies the name command without any pre-configured scope." 640 }, 641 { 642 "description": "Denies the remove_data_store command without any pre-configured scope.", 643 "type": "string", 644 "const": "core:app:deny-remove-data-store", 645 "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." 646 }, 647 { 648 "description": "Denies the set_app_theme command without any pre-configured scope.", ··· 1827 "markdownDescription": "Enables the set_focus command without any pre-configured scope." 1828 }, 1829 { 1830 "description": "Enables the set_fullscreen command without any pre-configured scope.", 1831 "type": "string", 1832 "const": "core:window:allow-set-fullscreen", ··· 1897 "type": "string", 1898 "const": "core:window:allow-set-shadow", 1899 "markdownDescription": "Enables the set_shadow command without any pre-configured scope." 1900 }, 1901 { 1902 "description": "Enables the set_size command without any pre-configured scope.", ··· 2271 "markdownDescription": "Denies the set_focus command without any pre-configured scope." 2272 }, 2273 { 2274 "description": "Denies the set_fullscreen command without any pre-configured scope.", 2275 "type": "string", 2276 "const": "core:window:deny-set-fullscreen", ··· 2341 "type": "string", 2342 "const": "core:window:deny-set-shadow", 2343 "markdownDescription": "Denies the set_shadow command without any pre-configured scope." 2344 }, 2345 { 2346 "description": "Denies the set_size command without any pre-configured scope.", ··· 2431 "type": "string", 2432 "const": "core:window:deny-unminimize", 2433 "markdownDescription": "Denies the unminimize command without any pre-configured scope." 2434 - }, 2435 - { 2436 - "description": "Allows reading the opened deep link via the get_current command\n#### This default permission set includes:\n\n- `allow-get-current`", 2437 - "type": "string", 2438 - "const": "deep-link:default", 2439 - "markdownDescription": "Allows reading the opened deep link via the get_current command\n#### This default permission set includes:\n\n- `allow-get-current`" 2440 - }, 2441 - { 2442 - "description": "Enables the get_current command without any pre-configured scope.", 2443 - "type": "string", 2444 - "const": "deep-link:allow-get-current", 2445 - "markdownDescription": "Enables the get_current command without any pre-configured scope." 2446 - }, 2447 - { 2448 - "description": "Enables the is_registered command without any pre-configured scope.", 2449 - "type": "string", 2450 - "const": "deep-link:allow-is-registered", 2451 - "markdownDescription": "Enables the is_registered command without any pre-configured scope." 2452 - }, 2453 - { 2454 - "description": "Enables the register command without any pre-configured scope.", 2455 - "type": "string", 2456 - "const": "deep-link:allow-register", 2457 - "markdownDescription": "Enables the register command without any pre-configured scope." 2458 - }, 2459 - { 2460 - "description": "Enables the unregister command without any pre-configured scope.", 2461 - "type": "string", 2462 - "const": "deep-link:allow-unregister", 2463 - "markdownDescription": "Enables the unregister command without any pre-configured scope." 2464 - }, 2465 - { 2466 - "description": "Denies the get_current command without any pre-configured scope.", 2467 - "type": "string", 2468 - "const": "deep-link:deny-get-current", 2469 - "markdownDescription": "Denies the get_current command without any pre-configured scope." 2470 - }, 2471 - { 2472 - "description": "Denies the is_registered command without any pre-configured scope.", 2473 - "type": "string", 2474 - "const": "deep-link:deny-is-registered", 2475 - "markdownDescription": "Denies the is_registered command without any pre-configured scope." 2476 - }, 2477 - { 2478 - "description": "Denies the register command without any pre-configured scope.", 2479 - "type": "string", 2480 - "const": "deep-link:deny-register", 2481 - "markdownDescription": "Denies the register command without any pre-configured scope." 2482 - }, 2483 - { 2484 - "description": "Denies the unregister command without any pre-configured scope.", 2485 - "type": "string", 2486 - "const": "deep-link:deny-unregister", 2487 - "markdownDescription": "Denies the unregister command without any pre-configured scope." 2488 }, 2489 { 2490 "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`",
··· 519 "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" 520 }, 521 { 522 + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`", 523 "type": "string", 524 "const": "core:app:default", 525 + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`" 526 }, 527 { 528 "description": "Enables the app_hide command without any pre-configured scope.", ··· 567 "markdownDescription": "Enables the name command without any pre-configured scope." 568 }, 569 { 570 + "description": "Enables the register_listener command without any pre-configured scope.", 571 + "type": "string", 572 + "const": "core:app:allow-register-listener", 573 + "markdownDescription": "Enables the register_listener command without any pre-configured scope." 574 + }, 575 + { 576 "description": "Enables the remove_data_store command without any pre-configured scope.", 577 "type": "string", 578 "const": "core:app:allow-remove-data-store", 579 "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." 580 }, 581 { 582 + "description": "Enables the remove_listener command without any pre-configured scope.", 583 + "type": "string", 584 + "const": "core:app:allow-remove-listener", 585 + "markdownDescription": "Enables the remove_listener command without any pre-configured scope." 586 + }, 587 + { 588 "description": "Enables the set_app_theme command without any pre-configured scope.", 589 "type": "string", 590 "const": "core:app:allow-set-app-theme", ··· 651 "markdownDescription": "Denies the name command without any pre-configured scope." 652 }, 653 { 654 + "description": "Denies the register_listener command without any pre-configured scope.", 655 + "type": "string", 656 + "const": "core:app:deny-register-listener", 657 + "markdownDescription": "Denies the register_listener command without any pre-configured scope." 658 + }, 659 + { 660 "description": "Denies the remove_data_store command without any pre-configured scope.", 661 "type": "string", 662 "const": "core:app:deny-remove-data-store", 663 "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." 664 + }, 665 + { 666 + "description": "Denies the remove_listener command without any pre-configured scope.", 667 + "type": "string", 668 + "const": "core:app:deny-remove-listener", 669 + "markdownDescription": "Denies the remove_listener command without any pre-configured scope." 670 }, 671 { 672 "description": "Denies the set_app_theme command without any pre-configured scope.", ··· 1851 "markdownDescription": "Enables the set_focus command without any pre-configured scope." 1852 }, 1853 { 1854 + "description": "Enables the set_focusable command without any pre-configured scope.", 1855 + "type": "string", 1856 + "const": "core:window:allow-set-focusable", 1857 + "markdownDescription": "Enables the set_focusable command without any pre-configured scope." 1858 + }, 1859 + { 1860 "description": "Enables the set_fullscreen command without any pre-configured scope.", 1861 "type": "string", 1862 "const": "core:window:allow-set-fullscreen", ··· 1927 "type": "string", 1928 "const": "core:window:allow-set-shadow", 1929 "markdownDescription": "Enables the set_shadow command without any pre-configured scope." 1930 + }, 1931 + { 1932 + "description": "Enables the set_simple_fullscreen command without any pre-configured scope.", 1933 + "type": "string", 1934 + "const": "core:window:allow-set-simple-fullscreen", 1935 + "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope." 1936 }, 1937 { 1938 "description": "Enables the set_size command without any pre-configured scope.", ··· 2307 "markdownDescription": "Denies the set_focus command without any pre-configured scope." 2308 }, 2309 { 2310 + "description": "Denies the set_focusable command without any pre-configured scope.", 2311 + "type": "string", 2312 + "const": "core:window:deny-set-focusable", 2313 + "markdownDescription": "Denies the set_focusable command without any pre-configured scope." 2314 + }, 2315 + { 2316 "description": "Denies the set_fullscreen command without any pre-configured scope.", 2317 "type": "string", 2318 "const": "core:window:deny-set-fullscreen", ··· 2383 "type": "string", 2384 "const": "core:window:deny-set-shadow", 2385 "markdownDescription": "Denies the set_shadow command without any pre-configured scope." 2386 + }, 2387 + { 2388 + "description": "Denies the set_simple_fullscreen command without any pre-configured scope.", 2389 + "type": "string", 2390 + "const": "core:window:deny-set-simple-fullscreen", 2391 + "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope." 2392 }, 2393 { 2394 "description": "Denies the set_size command without any pre-configured scope.", ··· 2479 "type": "string", 2480 "const": "core:window:deny-unminimize", 2481 "markdownDescription": "Denies the unminimize command without any pre-configured scope." 2482 }, 2483 { 2484 "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`",
+50 -56
src-tauri/gen/schemas/windows-schema.json
··· 519 "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" 520 }, 521 { 522 - "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`", 523 "type": "string", 524 "const": "core:app:default", 525 - "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`" 526 }, 527 { 528 "description": "Enables the app_hide command without any pre-configured scope.", ··· 567 "markdownDescription": "Enables the name command without any pre-configured scope." 568 }, 569 { 570 "description": "Enables the remove_data_store command without any pre-configured scope.", 571 "type": "string", 572 "const": "core:app:allow-remove-data-store", 573 "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." 574 }, 575 { 576 "description": "Enables the set_app_theme command without any pre-configured scope.", 577 "type": "string", 578 "const": "core:app:allow-set-app-theme", ··· 639 "markdownDescription": "Denies the name command without any pre-configured scope." 640 }, 641 { 642 "description": "Denies the remove_data_store command without any pre-configured scope.", 643 "type": "string", 644 "const": "core:app:deny-remove-data-store", 645 "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." 646 }, 647 { 648 "description": "Denies the set_app_theme command without any pre-configured scope.", ··· 1827 "markdownDescription": "Enables the set_focus command without any pre-configured scope." 1828 }, 1829 { 1830 "description": "Enables the set_fullscreen command without any pre-configured scope.", 1831 "type": "string", 1832 "const": "core:window:allow-set-fullscreen", ··· 1897 "type": "string", 1898 "const": "core:window:allow-set-shadow", 1899 "markdownDescription": "Enables the set_shadow command without any pre-configured scope." 1900 }, 1901 { 1902 "description": "Enables the set_size command without any pre-configured scope.", ··· 2271 "markdownDescription": "Denies the set_focus command without any pre-configured scope." 2272 }, 2273 { 2274 "description": "Denies the set_fullscreen command without any pre-configured scope.", 2275 "type": "string", 2276 "const": "core:window:deny-set-fullscreen", ··· 2341 "type": "string", 2342 "const": "core:window:deny-set-shadow", 2343 "markdownDescription": "Denies the set_shadow command without any pre-configured scope." 2344 }, 2345 { 2346 "description": "Denies the set_size command without any pre-configured scope.", ··· 2431 "type": "string", 2432 "const": "core:window:deny-unminimize", 2433 "markdownDescription": "Denies the unminimize command without any pre-configured scope." 2434 - }, 2435 - { 2436 - "description": "Allows reading the opened deep link via the get_current command\n#### This default permission set includes:\n\n- `allow-get-current`", 2437 - "type": "string", 2438 - "const": "deep-link:default", 2439 - "markdownDescription": "Allows reading the opened deep link via the get_current command\n#### This default permission set includes:\n\n- `allow-get-current`" 2440 - }, 2441 - { 2442 - "description": "Enables the get_current command without any pre-configured scope.", 2443 - "type": "string", 2444 - "const": "deep-link:allow-get-current", 2445 - "markdownDescription": "Enables the get_current command without any pre-configured scope." 2446 - }, 2447 - { 2448 - "description": "Enables the is_registered command without any pre-configured scope.", 2449 - "type": "string", 2450 - "const": "deep-link:allow-is-registered", 2451 - "markdownDescription": "Enables the is_registered command without any pre-configured scope." 2452 - }, 2453 - { 2454 - "description": "Enables the register command without any pre-configured scope.", 2455 - "type": "string", 2456 - "const": "deep-link:allow-register", 2457 - "markdownDescription": "Enables the register command without any pre-configured scope." 2458 - }, 2459 - { 2460 - "description": "Enables the unregister command without any pre-configured scope.", 2461 - "type": "string", 2462 - "const": "deep-link:allow-unregister", 2463 - "markdownDescription": "Enables the unregister command without any pre-configured scope." 2464 - }, 2465 - { 2466 - "description": "Denies the get_current command without any pre-configured scope.", 2467 - "type": "string", 2468 - "const": "deep-link:deny-get-current", 2469 - "markdownDescription": "Denies the get_current command without any pre-configured scope." 2470 - }, 2471 - { 2472 - "description": "Denies the is_registered command without any pre-configured scope.", 2473 - "type": "string", 2474 - "const": "deep-link:deny-is-registered", 2475 - "markdownDescription": "Denies the is_registered command without any pre-configured scope." 2476 - }, 2477 - { 2478 - "description": "Denies the register command without any pre-configured scope.", 2479 - "type": "string", 2480 - "const": "deep-link:deny-register", 2481 - "markdownDescription": "Denies the register command without any pre-configured scope." 2482 - }, 2483 - { 2484 - "description": "Denies the unregister command without any pre-configured scope.", 2485 - "type": "string", 2486 - "const": "deep-link:deny-unregister", 2487 - "markdownDescription": "Denies the unregister command without any pre-configured scope." 2488 }, 2489 { 2490 "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`",
··· 519 "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" 520 }, 521 { 522 + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`", 523 "type": "string", 524 "const": "core:app:default", 525 + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`" 526 }, 527 { 528 "description": "Enables the app_hide command without any pre-configured scope.", ··· 567 "markdownDescription": "Enables the name command without any pre-configured scope." 568 }, 569 { 570 + "description": "Enables the register_listener command without any pre-configured scope.", 571 + "type": "string", 572 + "const": "core:app:allow-register-listener", 573 + "markdownDescription": "Enables the register_listener command without any pre-configured scope." 574 + }, 575 + { 576 "description": "Enables the remove_data_store command without any pre-configured scope.", 577 "type": "string", 578 "const": "core:app:allow-remove-data-store", 579 "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." 580 }, 581 { 582 + "description": "Enables the remove_listener command without any pre-configured scope.", 583 + "type": "string", 584 + "const": "core:app:allow-remove-listener", 585 + "markdownDescription": "Enables the remove_listener command without any pre-configured scope." 586 + }, 587 + { 588 "description": "Enables the set_app_theme command without any pre-configured scope.", 589 "type": "string", 590 "const": "core:app:allow-set-app-theme", ··· 651 "markdownDescription": "Denies the name command without any pre-configured scope." 652 }, 653 { 654 + "description": "Denies the register_listener command without any pre-configured scope.", 655 + "type": "string", 656 + "const": "core:app:deny-register-listener", 657 + "markdownDescription": "Denies the register_listener command without any pre-configured scope." 658 + }, 659 + { 660 "description": "Denies the remove_data_store command without any pre-configured scope.", 661 "type": "string", 662 "const": "core:app:deny-remove-data-store", 663 "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." 664 + }, 665 + { 666 + "description": "Denies the remove_listener command without any pre-configured scope.", 667 + "type": "string", 668 + "const": "core:app:deny-remove-listener", 669 + "markdownDescription": "Denies the remove_listener command without any pre-configured scope." 670 }, 671 { 672 "description": "Denies the set_app_theme command without any pre-configured scope.", ··· 1851 "markdownDescription": "Enables the set_focus command without any pre-configured scope." 1852 }, 1853 { 1854 + "description": "Enables the set_focusable command without any pre-configured scope.", 1855 + "type": "string", 1856 + "const": "core:window:allow-set-focusable", 1857 + "markdownDescription": "Enables the set_focusable command without any pre-configured scope." 1858 + }, 1859 + { 1860 "description": "Enables the set_fullscreen command without any pre-configured scope.", 1861 "type": "string", 1862 "const": "core:window:allow-set-fullscreen", ··· 1927 "type": "string", 1928 "const": "core:window:allow-set-shadow", 1929 "markdownDescription": "Enables the set_shadow command without any pre-configured scope." 1930 + }, 1931 + { 1932 + "description": "Enables the set_simple_fullscreen command without any pre-configured scope.", 1933 + "type": "string", 1934 + "const": "core:window:allow-set-simple-fullscreen", 1935 + "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope." 1936 }, 1937 { 1938 "description": "Enables the set_size command without any pre-configured scope.", ··· 2307 "markdownDescription": "Denies the set_focus command without any pre-configured scope." 2308 }, 2309 { 2310 + "description": "Denies the set_focusable command without any pre-configured scope.", 2311 + "type": "string", 2312 + "const": "core:window:deny-set-focusable", 2313 + "markdownDescription": "Denies the set_focusable command without any pre-configured scope." 2314 + }, 2315 + { 2316 "description": "Denies the set_fullscreen command without any pre-configured scope.", 2317 "type": "string", 2318 "const": "core:window:deny-set-fullscreen", ··· 2383 "type": "string", 2384 "const": "core:window:deny-set-shadow", 2385 "markdownDescription": "Denies the set_shadow command without any pre-configured scope." 2386 + }, 2387 + { 2388 + "description": "Denies the set_simple_fullscreen command without any pre-configured scope.", 2389 + "type": "string", 2390 + "const": "core:window:deny-set-simple-fullscreen", 2391 + "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope." 2392 }, 2393 { 2394 "description": "Denies the set_size command without any pre-configured scope.", ··· 2479 "type": "string", 2480 "const": "core:window:deny-unminimize", 2481 "markdownDescription": "Denies the unminimize command without any pre-configured scope." 2482 }, 2483 { 2484 "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`",
+17 -9
src-tauri/src/frontend_calls/change_final_path.rs
··· 1 use std::fs; 2 3 - #[tauri::command] 4 - pub fn change_final_path(new_path: &str) { 5 - let config_path = dirs::config_dir() 6 - .unwrap() 7 - .join("PhazeDev/VRChatPhotoManager/.photos_path"); 8 9 - fs::write(&config_path, new_path.as_bytes()).unwrap(); 10 11 match fs::metadata(&new_path) { 12 - Ok(_) => {} 13 Err(_) => { 14 - fs::create_dir(&new_path).unwrap(); 15 } 16 - }; 17 }
··· 1 use std::fs; 2 3 + use tauri::{Emitter, State, Window}; 4 5 + use crate::util::cache::Cache; 6 7 + #[tauri::command] 8 + pub fn change_final_path(new_path: &str, window: Window, cache: State<Cache>) -> bool { 9 match fs::metadata(&new_path) { 10 + Ok(_) => { 11 + let config_path = dirs::config_dir() 12 + .unwrap() 13 + .join("PhazeDev/VRChatPhotoManager/.photos_path"); 14 + 15 + fs::write(&config_path, new_path.as_bytes()).unwrap(); 16 + cache.insert("photo-path".into(), new_path.to_owned()); 17 + 18 + true 19 + } 20 Err(_) => { 21 + window.emit("vrcpm-error", "Error Changing Path: Path does not exist.").unwrap(); 22 + false 23 } 24 + } 25 }
+21 -3
src-tauri/src/frontend_calls/load_photo_meta.rs
··· 20 let mut buffer = Vec::new(); 21 22 let _out = file.read_to_end(&mut buffer); 23 - window 24 - .emit("photo_meta_loaded", PNGImage::new(buffer, photo)) 25 - .unwrap(); 26 } 27 Err(_) => { 28 println!("Cannot read image file: {:?}", base_dir);
··· 20 let mut buffer = Vec::new(); 21 22 let _out = file.read_to_end(&mut buffer); 23 + let png = PNGImage::new(buffer, photo.clone()); 24 + 25 + if png.is_err(){ 26 + println!("Failed to load: {} => {}", base_dir, png.unwrap_err()); 27 + 28 + window.emit("photo_meta_loaded", PNGImage { 29 + width: 1920, 30 + height: 1080, 31 + bit_depth: 0, 32 + colour_type: 0, 33 + compression_method: 0, 34 + filter_method: 0, 35 + interlace_method: 0, 36 + metadata: "".into(), 37 + error: true, 38 + path: photo 39 + }).unwrap(); 40 + } else{ 41 + println!("Loaded: {}", base_dir); 42 + window.emit("photo_meta_loaded", png.unwrap()).unwrap(); 43 + } 44 } 45 Err(_) => { 46 println!("Cannot read image file: {:?}", base_dir);
+6 -4
src-tauri/src/frontend_calls/load_photos.rs
··· 11 size: usize, 12 } 13 14 - // TODO: Multi-layer photos 15 - 16 #[tauri::command] 17 pub fn load_photos(window: tauri::Window, cache: State<Cache> ) { 18 let base_dir = cache.get("photo-path".into()).unwrap(); 19 20 thread::spawn(move || { 21 - 22 let mut photos: Vec<path::PathBuf> = Vec::new(); 23 let mut size: usize = 0; 24 25 for folder in fs::read_dir(&base_dir).unwrap() { 26 let f = folder.unwrap(); 27 28 if f.metadata().unwrap().is_dir() { 29 for photo in fs::read_dir(f.path()).unwrap() { ··· 36 let name = name.to_str().unwrap(); 37 38 let re1_match = // This is the current format used by VRChat 39 - Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}.png").unwrap().is_match(name); 40 41 let re2_match = // This is the format VRCX uses if you enable renaming photos 42 Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png").unwrap().is_match(name);
··· 11 size: usize, 12 } 13 14 #[tauri::command] 15 pub fn load_photos(window: tauri::Window, cache: State<Cache> ) { 16 let base_dir = cache.get("photo-path".into()).unwrap(); 17 18 thread::spawn(move || { 19 let mut photos: Vec<path::PathBuf> = Vec::new(); 20 let mut size: usize = 0; 21 + 22 + let re = Regex::new(r"^[0-9]{4}-[0-9]{2}$").unwrap(); 23 24 for folder in fs::read_dir(&base_dir).unwrap() { 25 let f = folder.unwrap(); 26 + if !re.is_match(f.file_name().to_str().unwrap()){ continue; } 27 28 if f.metadata().unwrap().is_dir() { 29 for photo in fs::read_dir(f.path()).unwrap() { ··· 36 let name = name.to_str().unwrap(); 37 38 let re1_match = // This is the current format used by VRChat 39 + Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}.png").unwrap().is_match(name) || 40 + Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_Player.png").unwrap().is_match(name) || 41 + Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_Environment.png").unwrap().is_match(name); 42 43 let re2_match = // This is the format VRCX uses if you enable renaming photos 44 Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png").unwrap().is_match(name);
+19 -18
src-tauri/src/main.rs
··· 15 use util::{ cache::Cache, get_photo_path::get_photo_path }; 16 use std::{ env, fs, sync::Mutex, thread }; 17 use tauri::{ Emitter, Manager, State, WindowEvent }; 18 - use tauri_plugin_deep_link::DeepLinkExt; 19 20 use crate::frontend_calls::config::{get_config_value_string, Config}; 21 ··· 78 79 println!("Loading App..."); 80 let photos_path = util::get_photo_path::get_photo_path(); 81 82 cache.insert("photo-path".into(), photos_path.to_str().unwrap().to_owned()); 83 ··· 98 let path = event.paths.first().unwrap(); 99 let name = path.file_name().unwrap().to_str().unwrap().to_owned(); 100 101 - let re1 = Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}.png").unwrap(); 102 - let re2 = Regex::new(r"(?m)/VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png/gm").unwrap(); 103 104 - if 105 - re1.is_match(&name) || 106 - re2.is_match(&name) 107 - { 108 sender.send((2, path.strip_prefix(get_photo_path()).unwrap().to_str().unwrap().to_owned())).unwrap(); 109 } 110 }, ··· 112 let path = event.paths.first().unwrap(); 113 let name = path.file_name().unwrap().to_str().unwrap().to_owned(); 114 115 - let re1 = Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}.png").unwrap(); 116 - let re2 = Regex::new(r"(?m)/VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png/gm").unwrap(); 117 118 - if 119 - re1.is_match(&name) || 120 - re2.is_match(&name) 121 - { 122 thread::sleep(time::Duration::from_millis(1000)); 123 sender.send((1, path.strip_prefix(get_photo_path()).unwrap().to_str().unwrap().to_owned())).unwrap(); 124 } ··· 144 .plugin(tauri_plugin_single_instance::init(| app, _argv, _cwd | { 145 app.get_webview_window("main").unwrap().show().unwrap(); 146 })) 147 - .plugin(tauri_plugin_deep_link::init()) 148 .plugin(tauri_plugin_process::init()) 149 .plugin(tauri_plugin_http::init()) 150 .plugin(tauri_plugin_shell::init()) ··· 156 WindowEvent::CloseRequested { api, .. } => { 157 let config: State<Config> = window.state(); 158 159 - let val = get_config_value_string("minimise-on-close".into(), config.clone()); 160 - if val.is_some() && val.unwrap() == "false"{ 161 config.save(); 162 return; 163 } ··· 172 .manage(Mutex::new(clipboard)) 173 .setup(|app| { 174 let handle = app.handle(); 175 - 176 - app.deep_link().register("vrcpm").unwrap(); 177 util::setup_traymenu::setup_traymenu(handle); 178 179 // reads the file update mpsc channel and sends the events to the frontend
··· 15 use util::{ cache::Cache, get_photo_path::get_photo_path }; 16 use std::{ env, fs, sync::Mutex, thread }; 17 use tauri::{ Emitter, Manager, State, WindowEvent }; 18 19 use crate::frontend_calls::config::{get_config_value_string, Config}; 20 ··· 77 78 println!("Loading App..."); 79 let photos_path = util::get_photo_path::get_photo_path(); 80 + println!("Loading photos from: {:#?}", &photos_path); 81 82 cache.insert("photo-path".into(), photos_path.to_str().unwrap().to_owned()); 83 ··· 98 let path = event.paths.first().unwrap(); 99 let name = path.file_name().unwrap().to_str().unwrap().to_owned(); 100 101 + let re1_match = // This is the current format used by VRChat 102 + Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}.png").unwrap().is_match(&name) || 103 + Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_Player.png").unwrap().is_match(&name) || 104 + Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_Environment.png").unwrap().is_match(&name); 105 + 106 + let re2_match = // This is the format VRCX uses if you enable renaming photos 107 + Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png").unwrap().is_match(&name); 108 109 + if re1_match || re2_match{ 110 sender.send((2, path.strip_prefix(get_photo_path()).unwrap().to_str().unwrap().to_owned())).unwrap(); 111 } 112 }, ··· 114 let path = event.paths.first().unwrap(); 115 let name = path.file_name().unwrap().to_str().unwrap().to_owned(); 116 117 + let re1_match = // This is the current format used by VRChat 118 + Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}.png").unwrap().is_match(&name) || 119 + Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_Player.png").unwrap().is_match(&name) || 120 + Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_Environment.png").unwrap().is_match(&name); 121 122 + let re2_match = // This is the format VRCX uses if you enable renaming photos 123 + Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png").unwrap().is_match(&name); 124 + 125 + if re1_match || re2_match{ 126 thread::sleep(time::Duration::from_millis(1000)); 127 sender.send((1, path.strip_prefix(get_photo_path()).unwrap().to_str().unwrap().to_owned())).unwrap(); 128 } ··· 148 .plugin(tauri_plugin_single_instance::init(| app, _argv, _cwd | { 149 app.get_webview_window("main").unwrap().show().unwrap(); 150 })) 151 .plugin(tauri_plugin_process::init()) 152 .plugin(tauri_plugin_http::init()) 153 .plugin(tauri_plugin_shell::init()) ··· 159 WindowEvent::CloseRequested { api, .. } => { 160 let config: State<Config> = window.state(); 161 162 + let val = get_config_value_string("close-to-tray".into(), config.clone()); 163 + if val.is_none() || val.unwrap() != "true"{ 164 config.save(); 165 return; 166 } ··· 175 .manage(Mutex::new(clipboard)) 176 .setup(|app| { 177 let handle = app.handle(); 178 util::setup_traymenu::setup_traymenu(handle); 179 180 // reads the file update mpsc channel and sends the events to the frontend
+8 -24
src-tauri/src/pngmeta.rs
··· 1 - use serde::ser::{Serialize, SerializeStruct, Serializer}; 2 use std::str; 3 4 - #[derive(Clone)] 5 pub struct PNGImage { 6 pub width: u32, 7 pub height: u32, ··· 12 pub interlace_method: u8, 13 pub metadata: String, 14 pub path: String, 15 } 16 17 impl PNGImage { 18 - pub fn new(buff: Vec<u8>, path: String) -> PNGImage { 19 if buff[0] != 0x89 20 || buff[1] != 0x50 21 || buff[2] != 0x4E ··· 26 || buff[7] != 0x0A 27 { 28 dbg!(path); 29 - panic!("Image is not a PNG file"); 30 } 31 32 let mut img = PNGImage { ··· 39 interlace_method: 0, 40 metadata: "".to_string(), 41 path: path, 42 }; 43 44 img.read_png_chunk(8, buff); 45 - img 46 } 47 48 fn read_png_chunk(&mut self, start_byte: usize, buff: Vec<u8>) { ··· 82 } 83 } 84 } 85 - 86 - impl Serialize for PNGImage { 87 - fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 88 - where 89 - S: Serializer, 90 - { 91 - let mut s = serializer.serialize_struct("PNGImage", 7)?; 92 - s.serialize_field("width", &self.width)?; 93 - s.serialize_field("height", &self.height)?; 94 - s.serialize_field("bit_depth", &self.bit_depth)?; 95 - s.serialize_field("colour_type", &self.colour_type)?; 96 - s.serialize_field("compression_method", &self.compression_method)?; 97 - s.serialize_field("filter_method", &self.filter_method)?; 98 - s.serialize_field("interlace_method", &self.interlace_method)?; 99 - s.serialize_field("metadata", &self.metadata)?; 100 - s.serialize_field("path", &self.path)?; 101 - s.end() 102 - } 103 - }
··· 1 use std::str; 2 3 + use serde::Serialize; 4 + 5 + #[derive(Clone, Debug, Serialize)] 6 pub struct PNGImage { 7 pub width: u32, 8 pub height: u32, ··· 13 pub interlace_method: u8, 14 pub metadata: String, 15 pub path: String, 16 + pub error: bool 17 } 18 19 impl PNGImage { 20 + pub fn new(buff: Vec<u8>, path: String) -> Result<PNGImage, &'static str> { 21 if buff[0] != 0x89 22 || buff[1] != 0x50 23 || buff[2] != 0x4E ··· 28 || buff[7] != 0x0A 29 { 30 dbg!(path); 31 + return Err("Image is not a PNG file"); 32 } 33 34 let mut img = PNGImage { ··· 41 interlace_method: 0, 42 metadata: "".to_string(), 43 path: path, 44 + error: false 45 }; 46 47 img.read_png_chunk(8, buff); 48 + Ok(img) 49 } 50 51 fn read_png_chunk(&mut self, start_byte: usize, buff: Vec<u8>) { ··· 85 } 86 } 87 }
+7 -1
src-tauri/src/util/get_photo_path.rs
··· 7 8 match fs::read_to_string(config_path) { 9 Ok(path) => { 10 - path::PathBuf::from(path) 11 }, 12 Err(_) => { 13 let p = dirs::picture_dir().unwrap().join("VRChat");
··· 7 8 match fs::read_to_string(config_path) { 9 Ok(path) => { 10 + let p = path::PathBuf::from(path); 11 + 12 + if fs::exists(&p).unwrap(){ 13 + p 14 + } else{ 15 + dirs::picture_dir().unwrap().join("VRChat") 16 + } 17 }, 18 Err(_) => { 19 let p = dirs::picture_dir().unwrap().join("VRChat");
+1 -1
src-tauri/tauri.conf.json
··· 23 }, 24 "app": { 25 "security": { 26 - "csp": "connect-src ipc: http://ipc.localhost" 27 }, 28 "windows": [ 29 {
··· 23 }, 24 "app": { 25 "security": { 26 + "csp": "connect-src https://api.github.com ipc: http://ipc.localhost" 27 }, 28 "windows": [ 29 {