A photo manager for VRChat.

holy... fuck...

+1
package.json
··· 13 13 "license": "MIT", 14 14 "dependencies": { 15 15 "@tauri-apps/api": "2.0.0-rc.0", 16 + "@tauri-apps/plugin-deep-link": "^2.0.0", 16 17 "@tauri-apps/plugin-http": "2.0.0-rc.1", 17 18 "@tauri-apps/plugin-process": "2.0.0-rc.0", 18 19 "@tauri-apps/plugin-shell": "2.0.0-rc.0",
+11 -1
pnpm-lock.yaml
··· 11 11 '@tauri-apps/api': 12 12 specifier: 2.0.0-rc.0 13 13 version: 2.0.0-rc.0 14 + '@tauri-apps/plugin-deep-link': 15 + specifier: ^2.0.0 16 + version: 2.0.0 14 17 '@tauri-apps/plugin-http': 15 18 specifier: 2.0.0-rc.1 16 19 version: 2.0.0-rc.1 ··· 448 451 resolution: {integrity: sha512-JtFfJg8ZNOrj+S+8RKpcrNIcU5hw0X8JSNs2tUjQq0OZgqIGnRSILYjg7BaZDPEakQXUKsDEufbjbYVNJDIp8g==} 449 452 engines: {node: '>= 10'} 450 453 hasBin: true 454 + 455 + '@tauri-apps/plugin-deep-link@2.0.0': 456 + resolution: {integrity: sha512-cDa2k1OrRU5DoKc0IXl1Y8RlFOU107u2phdZfT7FkApsC6TL/VAPs3YOUTT8p9/PZ50EjOKP104HFMqVqnQ0bw==} 451 457 452 458 '@tauri-apps/plugin-http@2.0.0-rc.1': 453 459 resolution: {integrity: sha512-j4WdTEKx0CFa6u8ubke0mo75pCrnu6XtrFtvjsh+zjuNYgMG/l0+A1woWXHm73f2Levskhs+KbKcLQA/nr8k2w==} ··· 1079 1085 '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.5 1080 1086 '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.5 1081 1087 1088 + '@tauri-apps/plugin-deep-link@2.0.0': 1089 + dependencies: 1090 + '@tauri-apps/api': 2.0.2 1091 + 1082 1092 '@tauri-apps/plugin-http@2.0.0-rc.1': 1083 1093 dependencies: 1084 1094 '@tauri-apps/api': 2.0.2 ··· 1373 1383 fsevents: 2.3.3 1374 1384 1375 1385 vitefu@0.2.5(vite@5.4.9): 1376 - dependencies: 1386 + optionalDependencies: 1377 1387 vite: 5.4.9 1378 1388 1379 1389 yallist@3.1.1: {}
+615 -125
src-tauri/Cargo.lock
··· 98 98 checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 99 99 100 100 [[package]] 101 + name = "async-broadcast" 102 + version = "0.7.1" 103 + source = "registry+https://github.com/rust-lang/crates.io-index" 104 + checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" 105 + dependencies = [ 106 + "event-listener", 107 + "event-listener-strategy", 108 + "futures-core", 109 + "pin-project-lite", 110 + ] 111 + 112 + [[package]] 113 + name = "async-channel" 114 + version = "2.3.1" 115 + source = "registry+https://github.com/rust-lang/crates.io-index" 116 + checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" 117 + dependencies = [ 118 + "concurrent-queue", 119 + "event-listener-strategy", 120 + "futures-core", 121 + "pin-project-lite", 122 + ] 123 + 124 + [[package]] 125 + name = "async-executor" 126 + version = "1.13.1" 127 + source = "registry+https://github.com/rust-lang/crates.io-index" 128 + checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" 129 + dependencies = [ 130 + "async-task", 131 + "concurrent-queue", 132 + "fastrand", 133 + "futures-lite", 134 + "slab", 135 + ] 136 + 137 + [[package]] 138 + name = "async-fs" 139 + version = "2.1.2" 140 + source = "registry+https://github.com/rust-lang/crates.io-index" 141 + checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" 142 + dependencies = [ 143 + "async-lock", 144 + "blocking", 145 + "futures-lite", 146 + ] 147 + 148 + [[package]] 149 + name = "async-io" 150 + version = "2.4.0" 151 + source = "registry+https://github.com/rust-lang/crates.io-index" 152 + checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" 153 + dependencies = [ 154 + "async-lock", 155 + "cfg-if", 156 + "concurrent-queue", 157 + "futures-io", 158 + "futures-lite", 159 + "parking", 160 + "polling", 161 + "rustix", 162 + "slab", 163 + "tracing", 164 + "windows-sys 0.59.0", 165 + ] 166 + 167 + [[package]] 168 + name = "async-lock" 169 + version = "3.4.0" 170 + source = "registry+https://github.com/rust-lang/crates.io-index" 171 + checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" 172 + dependencies = [ 173 + "event-listener", 174 + "event-listener-strategy", 175 + "pin-project-lite", 176 + ] 177 + 178 + [[package]] 179 + name = "async-process" 180 + version = "2.3.0" 181 + source = "registry+https://github.com/rust-lang/crates.io-index" 182 + checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" 183 + dependencies = [ 184 + "async-channel", 185 + "async-io", 186 + "async-lock", 187 + "async-signal", 188 + "async-task", 189 + "blocking", 190 + "cfg-if", 191 + "event-listener", 192 + "futures-lite", 193 + "rustix", 194 + "tracing", 195 + ] 196 + 197 + [[package]] 198 + name = "async-recursion" 199 + version = "1.1.1" 200 + source = "registry+https://github.com/rust-lang/crates.io-index" 201 + checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" 202 + dependencies = [ 203 + "proc-macro2", 204 + "quote", 205 + "syn 2.0.79", 206 + ] 207 + 208 + [[package]] 209 + name = "async-signal" 210 + version = "0.2.10" 211 + source = "registry+https://github.com/rust-lang/crates.io-index" 212 + checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" 213 + dependencies = [ 214 + "async-io", 215 + "async-lock", 216 + "atomic-waker", 217 + "cfg-if", 218 + "futures-core", 219 + "futures-io", 220 + "rustix", 221 + "signal-hook-registry", 222 + "slab", 223 + "windows-sys 0.59.0", 224 + ] 225 + 226 + [[package]] 227 + name = "async-task" 228 + version = "4.7.1" 229 + source = "registry+https://github.com/rust-lang/crates.io-index" 230 + checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" 231 + 232 + [[package]] 233 + name = "async-trait" 234 + version = "0.1.83" 235 + source = "registry+https://github.com/rust-lang/crates.io-index" 236 + checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" 237 + dependencies = [ 238 + "proc-macro2", 239 + "quote", 240 + "syn 2.0.79", 241 + ] 242 + 243 + [[package]] 101 244 name = "atk" 102 245 version = "0.18.0" 103 246 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 230 373 source = "registry+https://github.com/rust-lang/crates.io-index" 231 374 checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" 232 375 dependencies = [ 233 - "objc2 0.5.2", 376 + "objc2", 377 + ] 378 + 379 + [[package]] 380 + name = "blocking" 381 + version = "1.6.1" 382 + source = "registry+https://github.com/rust-lang/crates.io-index" 383 + checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" 384 + dependencies = [ 385 + "async-channel", 386 + "async-task", 387 + "futures-io", 388 + "futures-lite", 389 + "piper", 234 390 ] 235 391 236 392 [[package]] ··· 470 626 ] 471 627 472 628 [[package]] 629 + name = "concurrent-queue" 630 + version = "2.5.0" 631 + source = "registry+https://github.com/rust-lang/crates.io-index" 632 + checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 633 + dependencies = [ 634 + "crossbeam-utils", 635 + ] 636 + 637 + [[package]] 638 + name = "const-random" 639 + version = "0.1.18" 640 + source = "registry+https://github.com/rust-lang/crates.io-index" 641 + checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" 642 + dependencies = [ 643 + "const-random-macro", 644 + ] 645 + 646 + [[package]] 647 + name = "const-random-macro" 648 + version = "0.1.16" 649 + source = "registry+https://github.com/rust-lang/crates.io-index" 650 + checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" 651 + dependencies = [ 652 + "getrandom 0.2.15", 653 + "once_cell", 654 + "tiny-keccak", 655 + ] 656 + 657 + [[package]] 473 658 name = "convert_case" 474 659 version = "0.4.0" 475 660 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 710 895 ] 711 896 712 897 [[package]] 898 + name = "derivative" 899 + version = "2.2.0" 900 + source = "registry+https://github.com/rust-lang/crates.io-index" 901 + checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 902 + dependencies = [ 903 + "proc-macro2", 904 + "quote", 905 + "syn 1.0.109", 906 + ] 907 + 908 + [[package]] 713 909 name = "derive_more" 714 910 version = "0.99.18" 715 911 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 783 979 ] 784 980 785 981 [[package]] 982 + name = "dlv-list" 983 + version = "0.5.2" 984 + source = "registry+https://github.com/rust-lang/crates.io-index" 985 + checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" 986 + dependencies = [ 987 + "const-random", 988 + ] 989 + 990 + [[package]] 786 991 name = "document-features" 787 992 version = "0.2.10" 788 993 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 844 1049 "rustc_version", 845 1050 "toml 0.8.2", 846 1051 "vswhom", 847 - "winreg 0.52.0", 1052 + "winreg", 848 1053 ] 849 1054 850 1055 [[package]] ··· 863 1068 ] 864 1069 865 1070 [[package]] 1071 + name = "endi" 1072 + version = "1.1.0" 1073 + source = "registry+https://github.com/rust-lang/crates.io-index" 1074 + checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" 1075 + 1076 + [[package]] 1077 + name = "enumflags2" 1078 + version = "0.7.10" 1079 + source = "registry+https://github.com/rust-lang/crates.io-index" 1080 + checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" 1081 + dependencies = [ 1082 + "enumflags2_derive", 1083 + "serde", 1084 + ] 1085 + 1086 + [[package]] 1087 + name = "enumflags2_derive" 1088 + version = "0.7.10" 1089 + source = "registry+https://github.com/rust-lang/crates.io-index" 1090 + checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" 1091 + dependencies = [ 1092 + "proc-macro2", 1093 + "quote", 1094 + "syn 2.0.79", 1095 + ] 1096 + 1097 + [[package]] 866 1098 name = "equivalent" 867 1099 version = "1.0.1" 868 1100 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 886 1118 dependencies = [ 887 1119 "libc", 888 1120 "windows-sys 0.52.0", 1121 + ] 1122 + 1123 + [[package]] 1124 + name = "event-listener" 1125 + version = "5.3.1" 1126 + source = "registry+https://github.com/rust-lang/crates.io-index" 1127 + checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" 1128 + dependencies = [ 1129 + "concurrent-queue", 1130 + "parking", 1131 + "pin-project-lite", 1132 + ] 1133 + 1134 + [[package]] 1135 + name = "event-listener-strategy" 1136 + version = "0.5.2" 1137 + source = "registry+https://github.com/rust-lang/crates.io-index" 1138 + checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" 1139 + dependencies = [ 1140 + "event-listener", 1141 + "pin-project-lite", 889 1142 ] 890 1143 891 1144 [[package]] ··· 1091 1344 version = "0.3.31" 1092 1345 source = "registry+https://github.com/rust-lang/crates.io-index" 1093 1346 checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 1347 + 1348 + [[package]] 1349 + name = "futures-lite" 1350 + version = "2.5.0" 1351 + source = "registry+https://github.com/rust-lang/crates.io-index" 1352 + checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" 1353 + dependencies = [ 1354 + "fastrand", 1355 + "futures-core", 1356 + "futures-io", 1357 + "parking", 1358 + "pin-project-lite", 1359 + ] 1094 1360 1095 1361 [[package]] 1096 1362 name = "futures-macro" ··· 1473 1739 1474 1740 [[package]] 1475 1741 name = "hashbrown" 1742 + version = "0.14.5" 1743 + source = "registry+https://github.com/rust-lang/crates.io-index" 1744 + checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 1745 + 1746 + [[package]] 1747 + name = "hashbrown" 1476 1748 version = "0.15.0" 1477 1749 source = "registry+https://github.com/rust-lang/crates.io-index" 1478 1750 checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" ··· 1496 1768 checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 1497 1769 1498 1770 [[package]] 1771 + name = "hermit-abi" 1772 + version = "0.4.0" 1773 + source = "registry+https://github.com/rust-lang/crates.io-index" 1774 + checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" 1775 + 1776 + [[package]] 1499 1777 name = "hex" 1500 1778 version = "0.4.3" 1501 1779 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1750 2028 1751 2029 [[package]] 1752 2030 name = "infer" 1753 - version = "0.13.0" 1754 - source = "registry+https://github.com/rust-lang/crates.io-index" 1755 - checksum = "f551f8c3a39f68f986517db0d1759de85881894fdc7db798bd2a9df9cb04b7fc" 1756 - dependencies = [ 1757 - "cfb", 1758 - ] 1759 - 1760 - [[package]] 1761 - name = "infer" 1762 2031 version = "0.16.0" 1763 2032 source = "registry+https://github.com/rust-lang/crates.io-index" 1764 2033 checksum = "bc150e5ce2330295b8616ce0e3f53250e53af31759a9dbedad1621ba29151847" ··· 1807 2076 ] 1808 2077 1809 2078 [[package]] 1810 - name = "interprocess" 1811 - version = "1.2.1" 1812 - source = "registry+https://github.com/rust-lang/crates.io-index" 1813 - checksum = "81f2533f3be42fffe3b5e63b71aeca416c1c3bc33e4e27be018521e76b1f38fb" 1814 - dependencies = [ 1815 - "cfg-if", 1816 - "libc", 1817 - "rustc_version", 1818 - "to_method", 1819 - "winapi", 1820 - ] 1821 - 1822 - [[package]] 1823 2079 name = "ipnet" 1824 2080 version = "2.10.1" 1825 2081 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2220 2476 source = "registry+https://github.com/rust-lang/crates.io-index" 2221 2477 checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" 2222 2478 dependencies = [ 2223 - "hermit-abi", 2479 + "hermit-abi 0.3.9", 2224 2480 "libc", 2225 2481 "wasi 0.11.0+wasi-snapshot-preview1", 2226 2482 "windows-sys 0.52.0", ··· 2247 2503 "dpi", 2248 2504 "gtk", 2249 2505 "keyboard-types", 2250 - "objc2 0.5.2", 2506 + "objc2", 2251 2507 "objc2-app-kit", 2252 2508 "objc2-foundation", 2253 2509 "once_cell", ··· 2309 2565 version = "1.0.6" 2310 2566 source = "registry+https://github.com/rust-lang/crates.io-index" 2311 2567 checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 2568 + 2569 + [[package]] 2570 + name = "nix" 2571 + version = "0.27.1" 2572 + source = "registry+https://github.com/rust-lang/crates.io-index" 2573 + checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" 2574 + dependencies = [ 2575 + "bitflags 2.6.0", 2576 + "cfg-if", 2577 + "libc", 2578 + "memoffset", 2579 + ] 2312 2580 2313 2581 [[package]] 2314 2582 name = "nodrop" ··· 2448 2716 2449 2717 [[package]] 2450 2718 name = "objc2" 2451 - version = "0.4.1" 2452 - source = "registry+https://github.com/rust-lang/crates.io-index" 2453 - checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" 2454 - dependencies = [ 2455 - "objc-sys", 2456 - "objc2-encode 3.0.0", 2457 - ] 2458 - 2459 - [[package]] 2460 - name = "objc2" 2461 2719 version = "0.5.2" 2462 2720 source = "registry+https://github.com/rust-lang/crates.io-index" 2463 2721 checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" 2464 2722 dependencies = [ 2465 2723 "objc-sys", 2466 - "objc2-encode 4.0.3", 2724 + "objc2-encode", 2467 2725 ] 2468 2726 2469 2727 [[package]] ··· 2475 2733 "bitflags 2.6.0", 2476 2734 "block2", 2477 2735 "libc", 2478 - "objc2 0.5.2", 2736 + "objc2", 2479 2737 "objc2-core-data", 2480 2738 "objc2-core-image", 2481 2739 "objc2-foundation", ··· 2490 2748 dependencies = [ 2491 2749 "bitflags 2.6.0", 2492 2750 "block2", 2493 - "objc2 0.5.2", 2751 + "objc2", 2494 2752 "objc2-core-location", 2495 2753 "objc2-foundation", 2496 2754 ] ··· 2502 2760 checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" 2503 2761 dependencies = [ 2504 2762 "block2", 2505 - "objc2 0.5.2", 2763 + "objc2", 2506 2764 "objc2-foundation", 2507 2765 ] 2508 2766 ··· 2514 2772 dependencies = [ 2515 2773 "bitflags 2.6.0", 2516 2774 "block2", 2517 - "objc2 0.5.2", 2775 + "objc2", 2518 2776 "objc2-foundation", 2519 2777 ] 2520 2778 ··· 2525 2783 checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" 2526 2784 dependencies = [ 2527 2785 "block2", 2528 - "objc2 0.5.2", 2786 + "objc2", 2529 2787 "objc2-foundation", 2530 2788 "objc2-metal", 2531 2789 ] ··· 2537 2795 checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" 2538 2796 dependencies = [ 2539 2797 "block2", 2540 - "objc2 0.5.2", 2798 + "objc2", 2541 2799 "objc2-contacts", 2542 2800 "objc2-foundation", 2543 2801 ] 2544 2802 2545 2803 [[package]] 2546 2804 name = "objc2-encode" 2547 - version = "3.0.0" 2548 - source = "registry+https://github.com/rust-lang/crates.io-index" 2549 - checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666" 2550 - 2551 - [[package]] 2552 - name = "objc2-encode" 2553 2805 version = "4.0.3" 2554 2806 source = "registry+https://github.com/rust-lang/crates.io-index" 2555 2807 checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" ··· 2563 2815 "bitflags 2.6.0", 2564 2816 "block2", 2565 2817 "libc", 2566 - "objc2 0.5.2", 2818 + "objc2", 2567 2819 ] 2568 2820 2569 2821 [[package]] ··· 2573 2825 checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" 2574 2826 dependencies = [ 2575 2827 "block2", 2576 - "objc2 0.5.2", 2828 + "objc2", 2577 2829 "objc2-app-kit", 2578 2830 "objc2-foundation", 2579 2831 ] ··· 2586 2838 dependencies = [ 2587 2839 "bitflags 2.6.0", 2588 2840 "block2", 2589 - "objc2 0.5.2", 2841 + "objc2", 2590 2842 "objc2-foundation", 2591 2843 ] 2592 2844 ··· 2598 2850 dependencies = [ 2599 2851 "bitflags 2.6.0", 2600 2852 "block2", 2601 - "objc2 0.5.2", 2853 + "objc2", 2602 2854 "objc2-foundation", 2603 2855 "objc2-metal", 2604 2856 ] ··· 2609 2861 source = "registry+https://github.com/rust-lang/crates.io-index" 2610 2862 checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" 2611 2863 dependencies = [ 2612 - "objc2 0.5.2", 2864 + "objc2", 2613 2865 "objc2-foundation", 2614 2866 ] 2615 2867 ··· 2621 2873 dependencies = [ 2622 2874 "bitflags 2.6.0", 2623 2875 "block2", 2624 - "objc2 0.5.2", 2876 + "objc2", 2625 2877 "objc2-cloud-kit", 2626 2878 "objc2-core-data", 2627 2879 "objc2-core-image", ··· 2641 2893 checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" 2642 2894 dependencies = [ 2643 2895 "block2", 2644 - "objc2 0.5.2", 2896 + "objc2", 2645 2897 "objc2-foundation", 2646 2898 ] 2647 2899 ··· 2653 2905 dependencies = [ 2654 2906 "bitflags 2.6.0", 2655 2907 "block2", 2656 - "objc2 0.5.2", 2908 + "objc2", 2657 2909 "objc2-core-location", 2658 2910 "objc2-foundation", 2659 2911 ] ··· 2666 2918 dependencies = [ 2667 2919 "bitflags 2.6.0", 2668 2920 "block2", 2669 - "objc2 0.5.2", 2921 + "objc2", 2670 2922 "objc2-app-kit", 2671 2923 "objc2-foundation", 2672 2924 ] ··· 2748 3000 checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 2749 3001 2750 3002 [[package]] 3003 + name = "ordered-multimap" 3004 + version = "0.7.3" 3005 + source = "registry+https://github.com/rust-lang/crates.io-index" 3006 + checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" 3007 + dependencies = [ 3008 + "dlv-list", 3009 + "hashbrown 0.14.5", 3010 + ] 3011 + 3012 + [[package]] 3013 + name = "ordered-stream" 3014 + version = "0.2.0" 3015 + source = "registry+https://github.com/rust-lang/crates.io-index" 3016 + checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" 3017 + dependencies = [ 3018 + "futures-core", 3019 + "pin-project-lite", 3020 + ] 3021 + 3022 + [[package]] 2751 3023 name = "os_pipe" 2752 3024 version = "1.2.1" 2753 3025 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2781 3053 "libc", 2782 3054 "system-deps", 2783 3055 ] 3056 + 3057 + [[package]] 3058 + name = "parking" 3059 + version = "2.2.1" 3060 + source = "registry+https://github.com/rust-lang/crates.io-index" 3061 + checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 2784 3062 2785 3063 [[package]] 2786 3064 name = "parking_lot" ··· 2970 3248 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2971 3249 2972 3250 [[package]] 3251 + name = "piper" 3252 + version = "0.2.4" 3253 + source = "registry+https://github.com/rust-lang/crates.io-index" 3254 + checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" 3255 + dependencies = [ 3256 + "atomic-waker", 3257 + "fastrand", 3258 + "futures-io", 3259 + ] 3260 + 3261 + [[package]] 2973 3262 name = "pkg-config" 2974 3263 version = "0.3.31" 2975 3264 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3002 3291 ] 3003 3292 3004 3293 [[package]] 3294 + name = "polling" 3295 + version = "3.7.4" 3296 + source = "registry+https://github.com/rust-lang/crates.io-index" 3297 + checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" 3298 + dependencies = [ 3299 + "cfg-if", 3300 + "concurrent-queue", 3301 + "hermit-abi 0.4.0", 3302 + "pin-project-lite", 3303 + "rustix", 3304 + "tracing", 3305 + "windows-sys 0.59.0", 3306 + ] 3307 + 3308 + [[package]] 3005 3309 name = "powerfmt" 3006 3310 version = "0.2.0" 3007 3311 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3452 3756 "wasm-streams", 3453 3757 "web-sys", 3454 3758 "webpki-roots", 3455 - "windows-registry", 3759 + "windows-registry 0.2.0", 3456 3760 ] 3457 3761 3458 3762 [[package]] ··· 3474 3778 "spin", 3475 3779 "untrusted", 3476 3780 "windows-sys 0.52.0", 3781 + ] 3782 + 3783 + [[package]] 3784 + name = "rust-ini" 3785 + version = "0.21.1" 3786 + source = "registry+https://github.com/rust-lang/crates.io-index" 3787 + checksum = "4e310ef0e1b6eeb79169a1171daf9abcb87a2e17c03bee2c4bb100b55c75409f" 3788 + dependencies = [ 3789 + "cfg-if", 3790 + "ordered-multimap", 3791 + "trim-in-place", 3477 3792 ] 3478 3793 3479 3794 [[package]] ··· 3808 4123 ] 3809 4124 3810 4125 [[package]] 4126 + name = "sha1" 4127 + version = "0.10.6" 4128 + source = "registry+https://github.com/rust-lang/crates.io-index" 4129 + checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 4130 + dependencies = [ 4131 + "cfg-if", 4132 + "cpufeatures", 4133 + "digest", 4134 + ] 4135 + 4136 + [[package]] 3811 4137 name = "sha2" 3812 4138 version = "0.10.8" 3813 4139 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3835 4161 checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 3836 4162 3837 4163 [[package]] 4164 + name = "signal-hook-registry" 4165 + version = "1.4.2" 4166 + source = "registry+https://github.com/rust-lang/crates.io-index" 4167 + checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" 4168 + dependencies = [ 4169 + "libc", 4170 + ] 4171 + 4172 + [[package]] 3838 4173 name = "simd-adler32" 3839 4174 version = "0.3.7" 3840 4175 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3892 4227 "foreign-types 0.5.0", 3893 4228 "js-sys", 3894 4229 "log", 3895 - "objc2 0.5.2", 4230 + "objc2", 3896 4231 "objc2-foundation", 3897 4232 "objc2-quartz-core", 3898 4233 "raw-window-handle", ··· 3942 4277 version = "1.2.0" 3943 4278 source = "registry+https://github.com/rust-lang/crates.io-index" 3944 4279 checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 4280 + 4281 + [[package]] 4282 + name = "static_assertions" 4283 + version = "1.1.0" 4284 + source = "registry+https://github.com/rust-lang/crates.io-index" 4285 + checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 3945 4286 3946 4287 [[package]] 3947 4288 name = "string_cache" ··· 4136 4477 "log", 4137 4478 "mime", 4138 4479 "muda", 4139 - "objc2 0.5.2", 4480 + "objc2", 4140 4481 "objc2-app-kit", 4141 4482 "objc2-foundation", 4142 4483 "percent-encoding", ··· 4152 4493 "tauri-macros", 4153 4494 "tauri-runtime", 4154 4495 "tauri-runtime-wry", 4155 - "tauri-utils 2.0.1", 4496 + "tauri-utils", 4156 4497 "thiserror", 4157 4498 "tokio", 4158 4499 "tray-icon", ··· 4180 4521 "semver", 4181 4522 "serde", 4182 4523 "serde_json", 4183 - "tauri-utils 2.0.1", 4524 + "tauri-utils", 4184 4525 "tauri-winres", 4185 4526 "toml 0.8.2", 4186 4527 "walkdir", ··· 4205 4546 "serde_json", 4206 4547 "sha2", 4207 4548 "syn 2.0.79", 4208 - "tauri-utils 2.0.1", 4549 + "tauri-utils", 4209 4550 "thiserror", 4210 4551 "time", 4211 4552 "url", ··· 4224 4565 "quote", 4225 4566 "syn 2.0.79", 4226 4567 "tauri-codegen", 4227 - "tauri-utils 2.0.1", 4568 + "tauri-utils", 4228 4569 ] 4229 4570 4230 4571 [[package]] ··· 4239 4580 "schemars", 4240 4581 "serde", 4241 4582 "serde_json", 4242 - "tauri-utils 2.0.1", 4583 + "tauri-utils", 4243 4584 "toml 0.8.2", 4244 4585 "walkdir", 4245 4586 ] 4246 4587 4247 4588 [[package]] 4248 4589 name = "tauri-plugin-deep-link" 4249 - version = "0.1.2" 4590 + version = "2.0.1" 4250 4591 source = "registry+https://github.com/rust-lang/crates.io-index" 4251 - checksum = "4536f5f6602e8fdfaa7b3b185076c2a0704f8eb7015f4e58461eb483ec3ed1f8" 4592 + checksum = "31a9b5725027c6e9e075b06cb2d5c2cd3b5c29daa8012b404e1ff755cc56082f" 4252 4593 dependencies = [ 4253 - "dirs", 4254 - "interprocess", 4594 + "dunce", 4255 4595 "log", 4256 - "objc2 0.4.1", 4257 - "once_cell", 4258 - "tauri-utils 1.6.1", 4259 - "windows-sys 0.48.0", 4260 - "winreg 0.50.0", 4596 + "rust-ini", 4597 + "serde", 4598 + "serde_json", 4599 + "tauri", 4600 + "tauri-plugin", 4601 + "tauri-utils", 4602 + "thiserror", 4603 + "url", 4604 + "windows-registry 0.3.0", 4605 + "windows-result", 4261 4606 ] 4262 4607 4263 4608 [[package]] ··· 4335 4680 ] 4336 4681 4337 4682 [[package]] 4683 + name = "tauri-plugin-single-instance" 4684 + version = "2.0.1" 4685 + source = "registry+https://github.com/rust-lang/crates.io-index" 4686 + checksum = "a25ac834491d089699a2bc9266a662faf373c9f779f05a2235bc6e4d9e61769a" 4687 + dependencies = [ 4688 + "log", 4689 + "serde", 4690 + "serde_json", 4691 + "tauri", 4692 + "tauri-plugin-deep-link", 4693 + "thiserror", 4694 + "windows-sys 0.59.0", 4695 + "zbus", 4696 + ] 4697 + 4698 + [[package]] 4338 4699 name = "tauri-runtime" 4339 4700 version = "2.1.0" 4340 4701 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4347 4708 "raw-window-handle", 4348 4709 "serde", 4349 4710 "serde_json", 4350 - "tauri-utils 2.0.1", 4711 + "tauri-utils", 4351 4712 "thiserror", 4352 4713 "url", 4353 4714 "windows", ··· 4363 4724 "http", 4364 4725 "jni", 4365 4726 "log", 4366 - "objc2 0.5.2", 4727 + "objc2", 4367 4728 "objc2-app-kit", 4368 4729 "objc2-foundation", 4369 4730 "percent-encoding", ··· 4371 4732 "softbuffer", 4372 4733 "tao", 4373 4734 "tauri-runtime", 4374 - "tauri-utils 2.0.1", 4735 + "tauri-utils", 4375 4736 "url", 4376 4737 "webkit2gtk", 4377 4738 "webview2-com", ··· 4381 4742 4382 4743 [[package]] 4383 4744 name = "tauri-utils" 4384 - version = "1.6.1" 4385 - source = "registry+https://github.com/rust-lang/crates.io-index" 4386 - checksum = "83a0c939e88d82903a0a7dfb28388b12a3c03504d6bd6086550edaa3b6d8beaa" 4387 - dependencies = [ 4388 - "ctor", 4389 - "dunce", 4390 - "heck 0.5.0", 4391 - "html5ever", 4392 - "infer 0.13.0", 4393 - "json-patch", 4394 - "kuchikiki", 4395 - "log", 4396 - "memchr", 4397 - "phf 0.11.2", 4398 - "semver", 4399 - "serde", 4400 - "serde_json", 4401 - "serde_with", 4402 - "thiserror", 4403 - "url", 4404 - "windows-version", 4405 - ] 4406 - 4407 - [[package]] 4408 - name = "tauri-utils" 4409 4745 version = "2.0.1" 4410 4746 source = "registry+https://github.com/rust-lang/crates.io-index" 4411 4747 checksum = "c38b0230d6880cf6dd07b6d7dd7789a0869f98ac12146e0d18d1c1049215a045" ··· 4416 4752 "dunce", 4417 4753 "glob", 4418 4754 "html5ever", 4419 - "infer 0.16.0", 4755 + "infer", 4420 4756 "json-patch", 4421 4757 "kuchikiki", 4422 4758 "log", ··· 4543 4879 ] 4544 4880 4545 4881 [[package]] 4882 + name = "tiny-keccak" 4883 + version = "2.0.2" 4884 + source = "registry+https://github.com/rust-lang/crates.io-index" 4885 + checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" 4886 + dependencies = [ 4887 + "crunchy", 4888 + ] 4889 + 4890 + [[package]] 4546 4891 name = "tinyvec" 4547 4892 version = "1.8.0" 4548 4893 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4558 4903 checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 4559 4904 4560 4905 [[package]] 4561 - name = "to_method" 4562 - version = "1.1.0" 4563 - source = "registry+https://github.com/rust-lang/crates.io-index" 4564 - checksum = "c7c4ceeeca15c8384bbc3e011dbd8fccb7f068a440b752b7d9b32ceb0ca0e2e8" 4565 - 4566 - [[package]] 4567 4906 name = "tokio" 4568 4907 version = "1.40.0" 4569 4908 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4696 5035 checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 4697 5036 dependencies = [ 4698 5037 "pin-project-lite", 5038 + "tracing-attributes", 4699 5039 "tracing-core", 4700 5040 ] 4701 5041 4702 5042 [[package]] 5043 + name = "tracing-attributes" 5044 + version = "0.1.28" 5045 + source = "registry+https://github.com/rust-lang/crates.io-index" 5046 + checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" 5047 + dependencies = [ 5048 + "proc-macro2", 5049 + "quote", 5050 + "syn 2.0.79", 5051 + ] 5052 + 5053 + [[package]] 4703 5054 name = "tracing-core" 4704 5055 version = "0.1.32" 4705 5056 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4719 5070 "dirs", 4720 5071 "libappindicator", 4721 5072 "muda", 4722 - "objc2 0.5.2", 5073 + "objc2", 4723 5074 "objc2-app-kit", 4724 5075 "objc2-foundation", 4725 5076 "once_cell", ··· 4728 5079 "thiserror", 4729 5080 "windows-sys 0.59.0", 4730 5081 ] 5082 + 5083 + [[package]] 5084 + name = "trim-in-place" 5085 + version = "0.1.7" 5086 + source = "registry+https://github.com/rust-lang/crates.io-index" 5087 + checksum = "343e926fc669bc8cde4fa3129ab681c63671bae288b1f1081ceee6d9d37904fc" 4731 5088 4732 5089 [[package]] 4733 5090 name = "try-lock" ··· 4748 5105 checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 4749 5106 4750 5107 [[package]] 5108 + name = "uds_windows" 5109 + version = "1.1.0" 5110 + source = "registry+https://github.com/rust-lang/crates.io-index" 5111 + checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" 5112 + dependencies = [ 5113 + "memoffset", 5114 + "tempfile", 5115 + "winapi", 5116 + ] 5117 + 5118 + [[package]] 4751 5119 name = "unic-char-property" 4752 5120 version = "0.9.0" 4753 5121 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4910 5278 "tauri-plugin-http", 4911 5279 "tauri-plugin-process", 4912 5280 "tauri-plugin-shell", 5281 + "tauri-plugin-single-instance", 4913 5282 ] 4914 5283 4915 5284 [[package]] ··· 5185 5554 source = "registry+https://github.com/rust-lang/crates.io-index" 5186 5555 checksum = "3ea403deff7b51fff19e261330f71608ff2cdef5721d72b64180bb95be7c4150" 5187 5556 dependencies = [ 5188 - "objc2 0.5.2", 5557 + "objc2", 5189 5558 "objc2-app-kit", 5190 5559 "objc2-foundation", 5191 5560 "raw-window-handle", ··· 5221 5590 "windows-implement", 5222 5591 "windows-interface", 5223 5592 "windows-result", 5224 - "windows-strings", 5593 + "windows-strings 0.1.0", 5225 5594 "windows-targets 0.52.6", 5226 5595 ] 5227 5596 ··· 5254 5623 checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" 5255 5624 dependencies = [ 5256 5625 "windows-result", 5257 - "windows-strings", 5626 + "windows-strings 0.1.0", 5627 + "windows-targets 0.52.6", 5628 + ] 5629 + 5630 + [[package]] 5631 + name = "windows-registry" 5632 + version = "0.3.0" 5633 + source = "registry+https://github.com/rust-lang/crates.io-index" 5634 + checksum = "bafa604f2104cf5ae2cc2db1dee84b7e6a5d11b05f737b60def0ffdc398cbc0a" 5635 + dependencies = [ 5636 + "windows-result", 5637 + "windows-strings 0.2.0", 5258 5638 "windows-targets 0.52.6", 5259 5639 ] 5260 5640 ··· 5274 5654 checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" 5275 5655 dependencies = [ 5276 5656 "windows-result", 5657 + "windows-targets 0.52.6", 5658 + ] 5659 + 5660 + [[package]] 5661 + name = "windows-strings" 5662 + version = "0.2.0" 5663 + source = "registry+https://github.com/rust-lang/crates.io-index" 5664 + checksum = "978d65aedf914c664c510d9de43c8fd85ca745eaff1ed53edf409b479e441663" 5665 + dependencies = [ 5277 5666 "windows-targets 0.52.6", 5278 5667 ] 5279 5668 ··· 5511 5900 5512 5901 [[package]] 5513 5902 name = "winreg" 5514 - version = "0.50.0" 5515 - source = "registry+https://github.com/rust-lang/crates.io-index" 5516 - checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 5517 - dependencies = [ 5518 - "cfg-if", 5519 - "windows-sys 0.48.0", 5520 - ] 5521 - 5522 - [[package]] 5523 - name = "winreg" 5524 5903 version = "0.52.0" 5525 5904 source = "registry+https://github.com/rust-lang/crates.io-index" 5526 5905 checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" ··· 5549 5928 "kuchikiki", 5550 5929 "libc", 5551 5930 "ndk", 5552 - "objc2 0.5.2", 5931 + "objc2", 5553 5932 "objc2-app-kit", 5554 5933 "objc2-foundation", 5555 5934 "objc2-ui-kit", ··· 5592 5971 ] 5593 5972 5594 5973 [[package]] 5974 + name = "xdg-home" 5975 + version = "1.3.0" 5976 + source = "registry+https://github.com/rust-lang/crates.io-index" 5977 + checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" 5978 + dependencies = [ 5979 + "libc", 5980 + "windows-sys 0.59.0", 5981 + ] 5982 + 5983 + [[package]] 5984 + name = "zbus" 5985 + version = "4.0.1" 5986 + source = "registry+https://github.com/rust-lang/crates.io-index" 5987 + checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030" 5988 + dependencies = [ 5989 + "async-broadcast", 5990 + "async-executor", 5991 + "async-fs", 5992 + "async-io", 5993 + "async-lock", 5994 + "async-process", 5995 + "async-recursion", 5996 + "async-task", 5997 + "async-trait", 5998 + "blocking", 5999 + "derivative", 6000 + "enumflags2", 6001 + "event-listener", 6002 + "futures-core", 6003 + "futures-sink", 6004 + "futures-util", 6005 + "hex", 6006 + "nix", 6007 + "ordered-stream", 6008 + "rand 0.8.5", 6009 + "serde", 6010 + "serde_repr", 6011 + "sha1", 6012 + "static_assertions", 6013 + "tracing", 6014 + "uds_windows", 6015 + "windows-sys 0.52.0", 6016 + "xdg-home", 6017 + "zbus_macros", 6018 + "zbus_names", 6019 + "zvariant", 6020 + ] 6021 + 6022 + [[package]] 6023 + name = "zbus_macros" 6024 + version = "4.0.1" 6025 + source = "registry+https://github.com/rust-lang/crates.io-index" 6026 + checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7" 6027 + dependencies = [ 6028 + "proc-macro-crate 1.3.1", 6029 + "proc-macro2", 6030 + "quote", 6031 + "regex", 6032 + "syn 1.0.109", 6033 + "zvariant_utils", 6034 + ] 6035 + 6036 + [[package]] 6037 + name = "zbus_names" 6038 + version = "3.0.0" 6039 + source = "registry+https://github.com/rust-lang/crates.io-index" 6040 + checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" 6041 + dependencies = [ 6042 + "serde", 6043 + "static_assertions", 6044 + "zvariant", 6045 + ] 6046 + 6047 + [[package]] 5595 6048 name = "zerocopy" 5596 6049 version = "0.7.35" 5597 6050 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5641 6094 dependencies = [ 5642 6095 "zune-core", 5643 6096 ] 6097 + 6098 + [[package]] 6099 + name = "zvariant" 6100 + version = "4.0.0" 6101 + source = "registry+https://github.com/rust-lang/crates.io-index" 6102 + checksum = "4e09e8be97d44eeab994d752f341e67b3b0d80512a8b315a0671d47232ef1b65" 6103 + dependencies = [ 6104 + "endi", 6105 + "enumflags2", 6106 + "serde", 6107 + "static_assertions", 6108 + "zvariant_derive", 6109 + ] 6110 + 6111 + [[package]] 6112 + name = "zvariant_derive" 6113 + version = "4.0.0" 6114 + source = "registry+https://github.com/rust-lang/crates.io-index" 6115 + checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e" 6116 + dependencies = [ 6117 + "proc-macro-crate 1.3.1", 6118 + "proc-macro2", 6119 + "quote", 6120 + "syn 1.0.109", 6121 + "zvariant_utils", 6122 + ] 6123 + 6124 + [[package]] 6125 + name = "zvariant_utils" 6126 + version = "1.1.0" 6127 + source = "registry+https://github.com/rust-lang/crates.io-index" 6128 + checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172" 6129 + dependencies = [ 6130 + "proc-macro2", 6131 + "quote", 6132 + "syn 1.0.109", 6133 + ]
+2 -1
src-tauri/Cargo.toml
··· 15 15 serde = { version = "1.0", features = ["derive"] } 16 16 serde_json = "1.0" 17 17 open = "5.1.2" 18 - tauri-plugin-deep-link = "0.1.2" 18 + tauri-plugin-deep-link = "2.0.1" 19 19 dirs = "5.0.1" 20 20 notify = "6.1.1" 21 21 regex = "1.10.4" 22 22 reqwest = { version = "0.12", features = ["blocking"] } 23 + tauri-plugin-single-instance = { version = "2.0.0", features = ["deep-link"] } 23 24 tauri-plugin-shell = "2.0.0-rc.2" 24 25 tauri-plugin-http = "2.0.0-rc.0" 25 26 tauri-plugin-process = "2.0.0-rc.0"
+1 -1
src-tauri/build.rs
··· 1 1 fn main() { 2 - tauri_build::build() 2 + tauri_build::build() 3 3 }
+1 -1
src-tauri/gen/schemas/acl-manifests.json
··· 1 - {"core":{"default_permission":{"identifier":"default","description":"Default core plugins set which includes:\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'\n","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"]},"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-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-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"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-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-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-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"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-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.","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.","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.","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.","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.","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.","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-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-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-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-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-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-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-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-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-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},"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 feeatures 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 without any specific\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 which includes:\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'\n","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"]},"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-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-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"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-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-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-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"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-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.","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.","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.","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.","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.","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.","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-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-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-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-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-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-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-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-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-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 feeatures 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 without any specific\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"}}}
+45
src-tauri/gen/schemas/desktop-schema.json
··· 1973 1973 "const": "core:window:deny-unminimize" 1974 1974 }, 1975 1975 { 1976 + "description": "Allows reading the opened deep link via the get_current command", 1977 + "type": "string", 1978 + "const": "deep-link:default" 1979 + }, 1980 + { 1981 + "description": "Enables the get_current command without any pre-configured scope.", 1982 + "type": "string", 1983 + "const": "deep-link:allow-get-current" 1984 + }, 1985 + { 1986 + "description": "Enables the is_registered command without any pre-configured scope.", 1987 + "type": "string", 1988 + "const": "deep-link:allow-is-registered" 1989 + }, 1990 + { 1991 + "description": "Enables the register command without any pre-configured scope.", 1992 + "type": "string", 1993 + "const": "deep-link:allow-register" 1994 + }, 1995 + { 1996 + "description": "Enables the unregister command without any pre-configured scope.", 1997 + "type": "string", 1998 + "const": "deep-link:allow-unregister" 1999 + }, 2000 + { 2001 + "description": "Denies the get_current command without any pre-configured scope.", 2002 + "type": "string", 2003 + "const": "deep-link:deny-get-current" 2004 + }, 2005 + { 2006 + "description": "Denies the is_registered command without any pre-configured scope.", 2007 + "type": "string", 2008 + "const": "deep-link:deny-is-registered" 2009 + }, 2010 + { 2011 + "description": "Denies the register command without any pre-configured scope.", 2012 + "type": "string", 2013 + "const": "deep-link:deny-register" 2014 + }, 2015 + { 2016 + "description": "Denies the unregister command without any pre-configured scope.", 2017 + "type": "string", 2018 + "const": "deep-link:deny-unregister" 2019 + }, 2020 + { 1976 2021 "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", 1977 2022 "type": "string", 1978 2023 "const": "http:default"
+2286
src-tauri/gen/schemas/linux-schema.json
··· 1 + { 2 + "$schema": "http://json-schema.org/draft-07/schema#", 3 + "title": "CapabilityFile", 4 + "description": "Capability formats accepted in a capability file.", 5 + "anyOf": [ 6 + { 7 + "description": "A single capability.", 8 + "allOf": [ 9 + { 10 + "$ref": "#/definitions/Capability" 11 + } 12 + ] 13 + }, 14 + { 15 + "description": "A list of capabilities.", 16 + "type": "array", 17 + "items": { 18 + "$ref": "#/definitions/Capability" 19 + } 20 + }, 21 + { 22 + "description": "A list of capabilities.", 23 + "type": "object", 24 + "required": [ 25 + "capabilities" 26 + ], 27 + "properties": { 28 + "capabilities": { 29 + "description": "The list of capabilities.", 30 + "type": "array", 31 + "items": { 32 + "$ref": "#/definitions/Capability" 33 + } 34 + } 35 + } 36 + } 37 + ], 38 + "definitions": { 39 + "Capability": { 40 + "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows fine grained access to the Tauri core, application, or plugin commands. If a window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, \"platforms\": [\"macOS\",\"windows\"] } ```", 41 + "type": "object", 42 + "required": [ 43 + "identifier", 44 + "permissions" 45 + ], 46 + "properties": { 47 + "identifier": { 48 + "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", 49 + "type": "string" 50 + }, 51 + "description": { 52 + "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.", 53 + "default": "", 54 + "type": "string" 55 + }, 56 + "remote": { 57 + "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", 58 + "anyOf": [ 59 + { 60 + "$ref": "#/definitions/CapabilityRemote" 61 + }, 62 + { 63 + "type": "null" 64 + } 65 + ] 66 + }, 67 + "local": { 68 + "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", 69 + "default": true, 70 + "type": "boolean" 71 + }, 72 + "windows": { 73 + "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", 74 + "type": "array", 75 + "items": { 76 + "type": "string" 77 + } 78 + }, 79 + "webviews": { 80 + "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", 81 + "type": "array", 82 + "items": { 83 + "type": "string" 84 + } 85 + }, 86 + "permissions": { 87 + "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ```", 88 + "type": "array", 89 + "items": { 90 + "$ref": "#/definitions/PermissionEntry" 91 + }, 92 + "uniqueItems": true 93 + }, 94 + "platforms": { 95 + "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", 96 + "type": [ 97 + "array", 98 + "null" 99 + ], 100 + "items": { 101 + "$ref": "#/definitions/Target" 102 + } 103 + } 104 + } 105 + }, 106 + "CapabilityRemote": { 107 + "description": "Configuration for remote URLs that are associated with the capability.", 108 + "type": "object", 109 + "required": [ 110 + "urls" 111 + ], 112 + "properties": { 113 + "urls": { 114 + "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", 115 + "type": "array", 116 + "items": { 117 + "type": "string" 118 + } 119 + } 120 + } 121 + }, 122 + "PermissionEntry": { 123 + "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", 124 + "anyOf": [ 125 + { 126 + "description": "Reference a permission or permission set by identifier.", 127 + "allOf": [ 128 + { 129 + "$ref": "#/definitions/Identifier" 130 + } 131 + ] 132 + }, 133 + { 134 + "description": "Reference a permission or permission set by identifier and extends its scope.", 135 + "type": "object", 136 + "allOf": [ 137 + { 138 + "if": { 139 + "properties": { 140 + "identifier": { 141 + "anyOf": [ 142 + { 143 + "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", 144 + "type": "string", 145 + "const": "http:default" 146 + }, 147 + { 148 + "description": "Enables the fetch command without any pre-configured scope.", 149 + "type": "string", 150 + "const": "http:allow-fetch" 151 + }, 152 + { 153 + "description": "Enables the fetch_cancel command without any pre-configured scope.", 154 + "type": "string", 155 + "const": "http:allow-fetch-cancel" 156 + }, 157 + { 158 + "description": "Enables the fetch_read_body command without any pre-configured scope.", 159 + "type": "string", 160 + "const": "http:allow-fetch-read-body" 161 + }, 162 + { 163 + "description": "Enables the fetch_send command without any pre-configured scope.", 164 + "type": "string", 165 + "const": "http:allow-fetch-send" 166 + }, 167 + { 168 + "description": "Denies the fetch command without any pre-configured scope.", 169 + "type": "string", 170 + "const": "http:deny-fetch" 171 + }, 172 + { 173 + "description": "Denies the fetch_cancel command without any pre-configured scope.", 174 + "type": "string", 175 + "const": "http:deny-fetch-cancel" 176 + }, 177 + { 178 + "description": "Denies the fetch_read_body command without any pre-configured scope.", 179 + "type": "string", 180 + "const": "http:deny-fetch-read-body" 181 + }, 182 + { 183 + "description": "Denies the fetch_send command without any pre-configured scope.", 184 + "type": "string", 185 + "const": "http:deny-fetch-send" 186 + } 187 + ] 188 + } 189 + } 190 + }, 191 + "then": { 192 + "properties": { 193 + "allow": { 194 + "items": { 195 + "title": "HttpScopeEntry", 196 + "description": "HTTP scope entry.", 197 + "anyOf": [ 198 + { 199 + "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/\"", 200 + "type": "string" 201 + }, 202 + { 203 + "type": "object", 204 + "required": [ 205 + "url" 206 + ], 207 + "properties": { 208 + "url": { 209 + "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/\"", 210 + "type": "string" 211 + } 212 + } 213 + } 214 + ] 215 + } 216 + }, 217 + "deny": { 218 + "items": { 219 + "title": "HttpScopeEntry", 220 + "description": "HTTP scope entry.", 221 + "anyOf": [ 222 + { 223 + "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/\"", 224 + "type": "string" 225 + }, 226 + { 227 + "type": "object", 228 + "required": [ 229 + "url" 230 + ], 231 + "properties": { 232 + "url": { 233 + "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/\"", 234 + "type": "string" 235 + } 236 + } 237 + } 238 + ] 239 + } 240 + } 241 + } 242 + }, 243 + "properties": { 244 + "identifier": { 245 + "description": "Identifier of the permission or permission set.", 246 + "allOf": [ 247 + { 248 + "$ref": "#/definitions/Identifier" 249 + } 250 + ] 251 + } 252 + } 253 + }, 254 + { 255 + "if": { 256 + "properties": { 257 + "identifier": { 258 + "anyOf": [ 259 + { 260 + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", 261 + "type": "string", 262 + "const": "shell:default" 263 + }, 264 + { 265 + "description": "Enables the execute command without any pre-configured scope.", 266 + "type": "string", 267 + "const": "shell:allow-execute" 268 + }, 269 + { 270 + "description": "Enables the kill command without any pre-configured scope.", 271 + "type": "string", 272 + "const": "shell:allow-kill" 273 + }, 274 + { 275 + "description": "Enables the open command without any pre-configured scope.", 276 + "type": "string", 277 + "const": "shell:allow-open" 278 + }, 279 + { 280 + "description": "Enables the spawn command without any pre-configured scope.", 281 + "type": "string", 282 + "const": "shell:allow-spawn" 283 + }, 284 + { 285 + "description": "Enables the stdin_write command without any pre-configured scope.", 286 + "type": "string", 287 + "const": "shell:allow-stdin-write" 288 + }, 289 + { 290 + "description": "Denies the execute command without any pre-configured scope.", 291 + "type": "string", 292 + "const": "shell:deny-execute" 293 + }, 294 + { 295 + "description": "Denies the kill command without any pre-configured scope.", 296 + "type": "string", 297 + "const": "shell:deny-kill" 298 + }, 299 + { 300 + "description": "Denies the open command without any pre-configured scope.", 301 + "type": "string", 302 + "const": "shell:deny-open" 303 + }, 304 + { 305 + "description": "Denies the spawn command without any pre-configured scope.", 306 + "type": "string", 307 + "const": "shell:deny-spawn" 308 + }, 309 + { 310 + "description": "Denies the stdin_write command without any pre-configured scope.", 311 + "type": "string", 312 + "const": "shell:deny-stdin-write" 313 + } 314 + ] 315 + } 316 + } 317 + }, 318 + "then": { 319 + "properties": { 320 + "allow": { 321 + "items": { 322 + "title": "ShellScopeEntry", 323 + "description": "Shell scope entry.", 324 + "anyOf": [ 325 + { 326 + "type": "object", 327 + "required": [ 328 + "cmd", 329 + "name" 330 + ], 331 + "properties": { 332 + "args": { 333 + "description": "The allowed arguments for the command execution.", 334 + "allOf": [ 335 + { 336 + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" 337 + } 338 + ] 339 + }, 340 + "cmd": { 341 + "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`.", 342 + "type": "string" 343 + }, 344 + "name": { 345 + "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.", 346 + "type": "string" 347 + } 348 + }, 349 + "additionalProperties": false 350 + }, 351 + { 352 + "type": "object", 353 + "required": [ 354 + "name", 355 + "sidecar" 356 + ], 357 + "properties": { 358 + "args": { 359 + "description": "The allowed arguments for the command execution.", 360 + "allOf": [ 361 + { 362 + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" 363 + } 364 + ] 365 + }, 366 + "name": { 367 + "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.", 368 + "type": "string" 369 + }, 370 + "sidecar": { 371 + "description": "If this command is a sidecar command.", 372 + "type": "boolean" 373 + } 374 + }, 375 + "additionalProperties": false 376 + } 377 + ] 378 + } 379 + }, 380 + "deny": { 381 + "items": { 382 + "title": "ShellScopeEntry", 383 + "description": "Shell scope entry.", 384 + "anyOf": [ 385 + { 386 + "type": "object", 387 + "required": [ 388 + "cmd", 389 + "name" 390 + ], 391 + "properties": { 392 + "args": { 393 + "description": "The allowed arguments for the command execution.", 394 + "allOf": [ 395 + { 396 + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" 397 + } 398 + ] 399 + }, 400 + "cmd": { 401 + "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`.", 402 + "type": "string" 403 + }, 404 + "name": { 405 + "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.", 406 + "type": "string" 407 + } 408 + }, 409 + "additionalProperties": false 410 + }, 411 + { 412 + "type": "object", 413 + "required": [ 414 + "name", 415 + "sidecar" 416 + ], 417 + "properties": { 418 + "args": { 419 + "description": "The allowed arguments for the command execution.", 420 + "allOf": [ 421 + { 422 + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" 423 + } 424 + ] 425 + }, 426 + "name": { 427 + "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.", 428 + "type": "string" 429 + }, 430 + "sidecar": { 431 + "description": "If this command is a sidecar command.", 432 + "type": "boolean" 433 + } 434 + }, 435 + "additionalProperties": false 436 + } 437 + ] 438 + } 439 + } 440 + } 441 + }, 442 + "properties": { 443 + "identifier": { 444 + "description": "Identifier of the permission or permission set.", 445 + "allOf": [ 446 + { 447 + "$ref": "#/definitions/Identifier" 448 + } 449 + ] 450 + } 451 + } 452 + }, 453 + { 454 + "properties": { 455 + "identifier": { 456 + "description": "Identifier of the permission or permission set.", 457 + "allOf": [ 458 + { 459 + "$ref": "#/definitions/Identifier" 460 + } 461 + ] 462 + }, 463 + "allow": { 464 + "description": "Data that defines what is allowed by the scope.", 465 + "type": [ 466 + "array", 467 + "null" 468 + ], 469 + "items": { 470 + "$ref": "#/definitions/Value" 471 + } 472 + }, 473 + "deny": { 474 + "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", 475 + "type": [ 476 + "array", 477 + "null" 478 + ], 479 + "items": { 480 + "$ref": "#/definitions/Value" 481 + } 482 + } 483 + } 484 + } 485 + ], 486 + "required": [ 487 + "identifier" 488 + ] 489 + } 490 + ] 491 + }, 492 + "Identifier": { 493 + "description": "Permission identifier", 494 + "oneOf": [ 495 + { 496 + "description": "Default core plugins set which includes:\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'\n", 497 + "type": "string", 498 + "const": "core:default" 499 + }, 500 + { 501 + "description": "Default permissions for the plugin.", 502 + "type": "string", 503 + "const": "core:app:default" 504 + }, 505 + { 506 + "description": "Enables the app_hide command without any pre-configured scope.", 507 + "type": "string", 508 + "const": "core:app:allow-app-hide" 509 + }, 510 + { 511 + "description": "Enables the app_show command without any pre-configured scope.", 512 + "type": "string", 513 + "const": "core:app:allow-app-show" 514 + }, 515 + { 516 + "description": "Enables the default_window_icon command without any pre-configured scope.", 517 + "type": "string", 518 + "const": "core:app:allow-default-window-icon" 519 + }, 520 + { 521 + "description": "Enables the name command without any pre-configured scope.", 522 + "type": "string", 523 + "const": "core:app:allow-name" 524 + }, 525 + { 526 + "description": "Enables the set_app_theme command without any pre-configured scope.", 527 + "type": "string", 528 + "const": "core:app:allow-set-app-theme" 529 + }, 530 + { 531 + "description": "Enables the tauri_version command without any pre-configured scope.", 532 + "type": "string", 533 + "const": "core:app:allow-tauri-version" 534 + }, 535 + { 536 + "description": "Enables the version command without any pre-configured scope.", 537 + "type": "string", 538 + "const": "core:app:allow-version" 539 + }, 540 + { 541 + "description": "Denies the app_hide command without any pre-configured scope.", 542 + "type": "string", 543 + "const": "core:app:deny-app-hide" 544 + }, 545 + { 546 + "description": "Denies the app_show command without any pre-configured scope.", 547 + "type": "string", 548 + "const": "core:app:deny-app-show" 549 + }, 550 + { 551 + "description": "Denies the default_window_icon command without any pre-configured scope.", 552 + "type": "string", 553 + "const": "core:app:deny-default-window-icon" 554 + }, 555 + { 556 + "description": "Denies the name command without any pre-configured scope.", 557 + "type": "string", 558 + "const": "core:app:deny-name" 559 + }, 560 + { 561 + "description": "Denies the set_app_theme command without any pre-configured scope.", 562 + "type": "string", 563 + "const": "core:app:deny-set-app-theme" 564 + }, 565 + { 566 + "description": "Denies the tauri_version command without any pre-configured scope.", 567 + "type": "string", 568 + "const": "core:app:deny-tauri-version" 569 + }, 570 + { 571 + "description": "Denies the version command without any pre-configured scope.", 572 + "type": "string", 573 + "const": "core:app:deny-version" 574 + }, 575 + { 576 + "description": "Default permissions for the plugin.", 577 + "type": "string", 578 + "const": "core:event:default" 579 + }, 580 + { 581 + "description": "Enables the emit command without any pre-configured scope.", 582 + "type": "string", 583 + "const": "core:event:allow-emit" 584 + }, 585 + { 586 + "description": "Enables the emit_to command without any pre-configured scope.", 587 + "type": "string", 588 + "const": "core:event:allow-emit-to" 589 + }, 590 + { 591 + "description": "Enables the listen command without any pre-configured scope.", 592 + "type": "string", 593 + "const": "core:event:allow-listen" 594 + }, 595 + { 596 + "description": "Enables the unlisten command without any pre-configured scope.", 597 + "type": "string", 598 + "const": "core:event:allow-unlisten" 599 + }, 600 + { 601 + "description": "Denies the emit command without any pre-configured scope.", 602 + "type": "string", 603 + "const": "core:event:deny-emit" 604 + }, 605 + { 606 + "description": "Denies the emit_to command without any pre-configured scope.", 607 + "type": "string", 608 + "const": "core:event:deny-emit-to" 609 + }, 610 + { 611 + "description": "Denies the listen command without any pre-configured scope.", 612 + "type": "string", 613 + "const": "core:event:deny-listen" 614 + }, 615 + { 616 + "description": "Denies the unlisten command without any pre-configured scope.", 617 + "type": "string", 618 + "const": "core:event:deny-unlisten" 619 + }, 620 + { 621 + "description": "Default permissions for the plugin.", 622 + "type": "string", 623 + "const": "core:image:default" 624 + }, 625 + { 626 + "description": "Enables the from_bytes command without any pre-configured scope.", 627 + "type": "string", 628 + "const": "core:image:allow-from-bytes" 629 + }, 630 + { 631 + "description": "Enables the from_path command without any pre-configured scope.", 632 + "type": "string", 633 + "const": "core:image:allow-from-path" 634 + }, 635 + { 636 + "description": "Enables the new command without any pre-configured scope.", 637 + "type": "string", 638 + "const": "core:image:allow-new" 639 + }, 640 + { 641 + "description": "Enables the rgba command without any pre-configured scope.", 642 + "type": "string", 643 + "const": "core:image:allow-rgba" 644 + }, 645 + { 646 + "description": "Enables the size command without any pre-configured scope.", 647 + "type": "string", 648 + "const": "core:image:allow-size" 649 + }, 650 + { 651 + "description": "Denies the from_bytes command without any pre-configured scope.", 652 + "type": "string", 653 + "const": "core:image:deny-from-bytes" 654 + }, 655 + { 656 + "description": "Denies the from_path command without any pre-configured scope.", 657 + "type": "string", 658 + "const": "core:image:deny-from-path" 659 + }, 660 + { 661 + "description": "Denies the new command without any pre-configured scope.", 662 + "type": "string", 663 + "const": "core:image:deny-new" 664 + }, 665 + { 666 + "description": "Denies the rgba command without any pre-configured scope.", 667 + "type": "string", 668 + "const": "core:image:deny-rgba" 669 + }, 670 + { 671 + "description": "Denies the size command without any pre-configured scope.", 672 + "type": "string", 673 + "const": "core:image:deny-size" 674 + }, 675 + { 676 + "description": "Default permissions for the plugin.", 677 + "type": "string", 678 + "const": "core:menu:default" 679 + }, 680 + { 681 + "description": "Enables the append command without any pre-configured scope.", 682 + "type": "string", 683 + "const": "core:menu:allow-append" 684 + }, 685 + { 686 + "description": "Enables the create_default command without any pre-configured scope.", 687 + "type": "string", 688 + "const": "core:menu:allow-create-default" 689 + }, 690 + { 691 + "description": "Enables the get command without any pre-configured scope.", 692 + "type": "string", 693 + "const": "core:menu:allow-get" 694 + }, 695 + { 696 + "description": "Enables the insert command without any pre-configured scope.", 697 + "type": "string", 698 + "const": "core:menu:allow-insert" 699 + }, 700 + { 701 + "description": "Enables the is_checked command without any pre-configured scope.", 702 + "type": "string", 703 + "const": "core:menu:allow-is-checked" 704 + }, 705 + { 706 + "description": "Enables the is_enabled command without any pre-configured scope.", 707 + "type": "string", 708 + "const": "core:menu:allow-is-enabled" 709 + }, 710 + { 711 + "description": "Enables the items command without any pre-configured scope.", 712 + "type": "string", 713 + "const": "core:menu:allow-items" 714 + }, 715 + { 716 + "description": "Enables the new command without any pre-configured scope.", 717 + "type": "string", 718 + "const": "core:menu:allow-new" 719 + }, 720 + { 721 + "description": "Enables the popup command without any pre-configured scope.", 722 + "type": "string", 723 + "const": "core:menu:allow-popup" 724 + }, 725 + { 726 + "description": "Enables the prepend command without any pre-configured scope.", 727 + "type": "string", 728 + "const": "core:menu:allow-prepend" 729 + }, 730 + { 731 + "description": "Enables the remove command without any pre-configured scope.", 732 + "type": "string", 733 + "const": "core:menu:allow-remove" 734 + }, 735 + { 736 + "description": "Enables the remove_at command without any pre-configured scope.", 737 + "type": "string", 738 + "const": "core:menu:allow-remove-at" 739 + }, 740 + { 741 + "description": "Enables the set_accelerator command without any pre-configured scope.", 742 + "type": "string", 743 + "const": "core:menu:allow-set-accelerator" 744 + }, 745 + { 746 + "description": "Enables the set_as_app_menu command without any pre-configured scope.", 747 + "type": "string", 748 + "const": "core:menu:allow-set-as-app-menu" 749 + }, 750 + { 751 + "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", 752 + "type": "string", 753 + "const": "core:menu:allow-set-as-help-menu-for-nsapp" 754 + }, 755 + { 756 + "description": "Enables the set_as_window_menu command without any pre-configured scope.", 757 + "type": "string", 758 + "const": "core:menu:allow-set-as-window-menu" 759 + }, 760 + { 761 + "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", 762 + "type": "string", 763 + "const": "core:menu:allow-set-as-windows-menu-for-nsapp" 764 + }, 765 + { 766 + "description": "Enables the set_checked command without any pre-configured scope.", 767 + "type": "string", 768 + "const": "core:menu:allow-set-checked" 769 + }, 770 + { 771 + "description": "Enables the set_enabled command without any pre-configured scope.", 772 + "type": "string", 773 + "const": "core:menu:allow-set-enabled" 774 + }, 775 + { 776 + "description": "Enables the set_icon command without any pre-configured scope.", 777 + "type": "string", 778 + "const": "core:menu:allow-set-icon" 779 + }, 780 + { 781 + "description": "Enables the set_text command without any pre-configured scope.", 782 + "type": "string", 783 + "const": "core:menu:allow-set-text" 784 + }, 785 + { 786 + "description": "Enables the text command without any pre-configured scope.", 787 + "type": "string", 788 + "const": "core:menu:allow-text" 789 + }, 790 + { 791 + "description": "Denies the append command without any pre-configured scope.", 792 + "type": "string", 793 + "const": "core:menu:deny-append" 794 + }, 795 + { 796 + "description": "Denies the create_default command without any pre-configured scope.", 797 + "type": "string", 798 + "const": "core:menu:deny-create-default" 799 + }, 800 + { 801 + "description": "Denies the get command without any pre-configured scope.", 802 + "type": "string", 803 + "const": "core:menu:deny-get" 804 + }, 805 + { 806 + "description": "Denies the insert command without any pre-configured scope.", 807 + "type": "string", 808 + "const": "core:menu:deny-insert" 809 + }, 810 + { 811 + "description": "Denies the is_checked command without any pre-configured scope.", 812 + "type": "string", 813 + "const": "core:menu:deny-is-checked" 814 + }, 815 + { 816 + "description": "Denies the is_enabled command without any pre-configured scope.", 817 + "type": "string", 818 + "const": "core:menu:deny-is-enabled" 819 + }, 820 + { 821 + "description": "Denies the items command without any pre-configured scope.", 822 + "type": "string", 823 + "const": "core:menu:deny-items" 824 + }, 825 + { 826 + "description": "Denies the new command without any pre-configured scope.", 827 + "type": "string", 828 + "const": "core:menu:deny-new" 829 + }, 830 + { 831 + "description": "Denies the popup command without any pre-configured scope.", 832 + "type": "string", 833 + "const": "core:menu:deny-popup" 834 + }, 835 + { 836 + "description": "Denies the prepend command without any pre-configured scope.", 837 + "type": "string", 838 + "const": "core:menu:deny-prepend" 839 + }, 840 + { 841 + "description": "Denies the remove command without any pre-configured scope.", 842 + "type": "string", 843 + "const": "core:menu:deny-remove" 844 + }, 845 + { 846 + "description": "Denies the remove_at command without any pre-configured scope.", 847 + "type": "string", 848 + "const": "core:menu:deny-remove-at" 849 + }, 850 + { 851 + "description": "Denies the set_accelerator command without any pre-configured scope.", 852 + "type": "string", 853 + "const": "core:menu:deny-set-accelerator" 854 + }, 855 + { 856 + "description": "Denies the set_as_app_menu command without any pre-configured scope.", 857 + "type": "string", 858 + "const": "core:menu:deny-set-as-app-menu" 859 + }, 860 + { 861 + "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", 862 + "type": "string", 863 + "const": "core:menu:deny-set-as-help-menu-for-nsapp" 864 + }, 865 + { 866 + "description": "Denies the set_as_window_menu command without any pre-configured scope.", 867 + "type": "string", 868 + "const": "core:menu:deny-set-as-window-menu" 869 + }, 870 + { 871 + "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", 872 + "type": "string", 873 + "const": "core:menu:deny-set-as-windows-menu-for-nsapp" 874 + }, 875 + { 876 + "description": "Denies the set_checked command without any pre-configured scope.", 877 + "type": "string", 878 + "const": "core:menu:deny-set-checked" 879 + }, 880 + { 881 + "description": "Denies the set_enabled command without any pre-configured scope.", 882 + "type": "string", 883 + "const": "core:menu:deny-set-enabled" 884 + }, 885 + { 886 + "description": "Denies the set_icon command without any pre-configured scope.", 887 + "type": "string", 888 + "const": "core:menu:deny-set-icon" 889 + }, 890 + { 891 + "description": "Denies the set_text command without any pre-configured scope.", 892 + "type": "string", 893 + "const": "core:menu:deny-set-text" 894 + }, 895 + { 896 + "description": "Denies the text command without any pre-configured scope.", 897 + "type": "string", 898 + "const": "core:menu:deny-text" 899 + }, 900 + { 901 + "description": "Default permissions for the plugin.", 902 + "type": "string", 903 + "const": "core:path:default" 904 + }, 905 + { 906 + "description": "Enables the basename command without any pre-configured scope.", 907 + "type": "string", 908 + "const": "core:path:allow-basename" 909 + }, 910 + { 911 + "description": "Enables the dirname command without any pre-configured scope.", 912 + "type": "string", 913 + "const": "core:path:allow-dirname" 914 + }, 915 + { 916 + "description": "Enables the extname command without any pre-configured scope.", 917 + "type": "string", 918 + "const": "core:path:allow-extname" 919 + }, 920 + { 921 + "description": "Enables the is_absolute command without any pre-configured scope.", 922 + "type": "string", 923 + "const": "core:path:allow-is-absolute" 924 + }, 925 + { 926 + "description": "Enables the join command without any pre-configured scope.", 927 + "type": "string", 928 + "const": "core:path:allow-join" 929 + }, 930 + { 931 + "description": "Enables the normalize command without any pre-configured scope.", 932 + "type": "string", 933 + "const": "core:path:allow-normalize" 934 + }, 935 + { 936 + "description": "Enables the resolve command without any pre-configured scope.", 937 + "type": "string", 938 + "const": "core:path:allow-resolve" 939 + }, 940 + { 941 + "description": "Enables the resolve_directory command without any pre-configured scope.", 942 + "type": "string", 943 + "const": "core:path:allow-resolve-directory" 944 + }, 945 + { 946 + "description": "Denies the basename command without any pre-configured scope.", 947 + "type": "string", 948 + "const": "core:path:deny-basename" 949 + }, 950 + { 951 + "description": "Denies the dirname command without any pre-configured scope.", 952 + "type": "string", 953 + "const": "core:path:deny-dirname" 954 + }, 955 + { 956 + "description": "Denies the extname command without any pre-configured scope.", 957 + "type": "string", 958 + "const": "core:path:deny-extname" 959 + }, 960 + { 961 + "description": "Denies the is_absolute command without any pre-configured scope.", 962 + "type": "string", 963 + "const": "core:path:deny-is-absolute" 964 + }, 965 + { 966 + "description": "Denies the join command without any pre-configured scope.", 967 + "type": "string", 968 + "const": "core:path:deny-join" 969 + }, 970 + { 971 + "description": "Denies the normalize command without any pre-configured scope.", 972 + "type": "string", 973 + "const": "core:path:deny-normalize" 974 + }, 975 + { 976 + "description": "Denies the resolve command without any pre-configured scope.", 977 + "type": "string", 978 + "const": "core:path:deny-resolve" 979 + }, 980 + { 981 + "description": "Denies the resolve_directory command without any pre-configured scope.", 982 + "type": "string", 983 + "const": "core:path:deny-resolve-directory" 984 + }, 985 + { 986 + "description": "Default permissions for the plugin.", 987 + "type": "string", 988 + "const": "core:resources:default" 989 + }, 990 + { 991 + "description": "Enables the close command without any pre-configured scope.", 992 + "type": "string", 993 + "const": "core:resources:allow-close" 994 + }, 995 + { 996 + "description": "Denies the close command without any pre-configured scope.", 997 + "type": "string", 998 + "const": "core:resources:deny-close" 999 + }, 1000 + { 1001 + "description": "Default permissions for the plugin.", 1002 + "type": "string", 1003 + "const": "core:tray:default" 1004 + }, 1005 + { 1006 + "description": "Enables the get_by_id command without any pre-configured scope.", 1007 + "type": "string", 1008 + "const": "core:tray:allow-get-by-id" 1009 + }, 1010 + { 1011 + "description": "Enables the new command without any pre-configured scope.", 1012 + "type": "string", 1013 + "const": "core:tray:allow-new" 1014 + }, 1015 + { 1016 + "description": "Enables the remove_by_id command without any pre-configured scope.", 1017 + "type": "string", 1018 + "const": "core:tray:allow-remove-by-id" 1019 + }, 1020 + { 1021 + "description": "Enables the set_icon command without any pre-configured scope.", 1022 + "type": "string", 1023 + "const": "core:tray:allow-set-icon" 1024 + }, 1025 + { 1026 + "description": "Enables the set_icon_as_template command without any pre-configured scope.", 1027 + "type": "string", 1028 + "const": "core:tray:allow-set-icon-as-template" 1029 + }, 1030 + { 1031 + "description": "Enables the set_menu command without any pre-configured scope.", 1032 + "type": "string", 1033 + "const": "core:tray:allow-set-menu" 1034 + }, 1035 + { 1036 + "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", 1037 + "type": "string", 1038 + "const": "core:tray:allow-set-show-menu-on-left-click" 1039 + }, 1040 + { 1041 + "description": "Enables the set_temp_dir_path command without any pre-configured scope.", 1042 + "type": "string", 1043 + "const": "core:tray:allow-set-temp-dir-path" 1044 + }, 1045 + { 1046 + "description": "Enables the set_title command without any pre-configured scope.", 1047 + "type": "string", 1048 + "const": "core:tray:allow-set-title" 1049 + }, 1050 + { 1051 + "description": "Enables the set_tooltip command without any pre-configured scope.", 1052 + "type": "string", 1053 + "const": "core:tray:allow-set-tooltip" 1054 + }, 1055 + { 1056 + "description": "Enables the set_visible command without any pre-configured scope.", 1057 + "type": "string", 1058 + "const": "core:tray:allow-set-visible" 1059 + }, 1060 + { 1061 + "description": "Denies the get_by_id command without any pre-configured scope.", 1062 + "type": "string", 1063 + "const": "core:tray:deny-get-by-id" 1064 + }, 1065 + { 1066 + "description": "Denies the new command without any pre-configured scope.", 1067 + "type": "string", 1068 + "const": "core:tray:deny-new" 1069 + }, 1070 + { 1071 + "description": "Denies the remove_by_id command without any pre-configured scope.", 1072 + "type": "string", 1073 + "const": "core:tray:deny-remove-by-id" 1074 + }, 1075 + { 1076 + "description": "Denies the set_icon command without any pre-configured scope.", 1077 + "type": "string", 1078 + "const": "core:tray:deny-set-icon" 1079 + }, 1080 + { 1081 + "description": "Denies the set_icon_as_template command without any pre-configured scope.", 1082 + "type": "string", 1083 + "const": "core:tray:deny-set-icon-as-template" 1084 + }, 1085 + { 1086 + "description": "Denies the set_menu command without any pre-configured scope.", 1087 + "type": "string", 1088 + "const": "core:tray:deny-set-menu" 1089 + }, 1090 + { 1091 + "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", 1092 + "type": "string", 1093 + "const": "core:tray:deny-set-show-menu-on-left-click" 1094 + }, 1095 + { 1096 + "description": "Denies the set_temp_dir_path command without any pre-configured scope.", 1097 + "type": "string", 1098 + "const": "core:tray:deny-set-temp-dir-path" 1099 + }, 1100 + { 1101 + "description": "Denies the set_title command without any pre-configured scope.", 1102 + "type": "string", 1103 + "const": "core:tray:deny-set-title" 1104 + }, 1105 + { 1106 + "description": "Denies the set_tooltip command without any pre-configured scope.", 1107 + "type": "string", 1108 + "const": "core:tray:deny-set-tooltip" 1109 + }, 1110 + { 1111 + "description": "Denies the set_visible command without any pre-configured scope.", 1112 + "type": "string", 1113 + "const": "core:tray:deny-set-visible" 1114 + }, 1115 + { 1116 + "description": "Default permissions for the plugin.", 1117 + "type": "string", 1118 + "const": "core:webview:default" 1119 + }, 1120 + { 1121 + "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", 1122 + "type": "string", 1123 + "const": "core:webview:allow-clear-all-browsing-data" 1124 + }, 1125 + { 1126 + "description": "Enables the create_webview command without any pre-configured scope.", 1127 + "type": "string", 1128 + "const": "core:webview:allow-create-webview" 1129 + }, 1130 + { 1131 + "description": "Enables the create_webview_window command without any pre-configured scope.", 1132 + "type": "string", 1133 + "const": "core:webview:allow-create-webview-window" 1134 + }, 1135 + { 1136 + "description": "Enables the get_all_webviews command without any pre-configured scope.", 1137 + "type": "string", 1138 + "const": "core:webview:allow-get-all-webviews" 1139 + }, 1140 + { 1141 + "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", 1142 + "type": "string", 1143 + "const": "core:webview:allow-internal-toggle-devtools" 1144 + }, 1145 + { 1146 + "description": "Enables the print command without any pre-configured scope.", 1147 + "type": "string", 1148 + "const": "core:webview:allow-print" 1149 + }, 1150 + { 1151 + "description": "Enables the reparent command without any pre-configured scope.", 1152 + "type": "string", 1153 + "const": "core:webview:allow-reparent" 1154 + }, 1155 + { 1156 + "description": "Enables the set_webview_focus command without any pre-configured scope.", 1157 + "type": "string", 1158 + "const": "core:webview:allow-set-webview-focus" 1159 + }, 1160 + { 1161 + "description": "Enables the set_webview_position command without any pre-configured scope.", 1162 + "type": "string", 1163 + "const": "core:webview:allow-set-webview-position" 1164 + }, 1165 + { 1166 + "description": "Enables the set_webview_size command without any pre-configured scope.", 1167 + "type": "string", 1168 + "const": "core:webview:allow-set-webview-size" 1169 + }, 1170 + { 1171 + "description": "Enables the set_webview_zoom command without any pre-configured scope.", 1172 + "type": "string", 1173 + "const": "core:webview:allow-set-webview-zoom" 1174 + }, 1175 + { 1176 + "description": "Enables the webview_close command without any pre-configured scope.", 1177 + "type": "string", 1178 + "const": "core:webview:allow-webview-close" 1179 + }, 1180 + { 1181 + "description": "Enables the webview_hide command without any pre-configured scope.", 1182 + "type": "string", 1183 + "const": "core:webview:allow-webview-hide" 1184 + }, 1185 + { 1186 + "description": "Enables the webview_position command without any pre-configured scope.", 1187 + "type": "string", 1188 + "const": "core:webview:allow-webview-position" 1189 + }, 1190 + { 1191 + "description": "Enables the webview_show command without any pre-configured scope.", 1192 + "type": "string", 1193 + "const": "core:webview:allow-webview-show" 1194 + }, 1195 + { 1196 + "description": "Enables the webview_size command without any pre-configured scope.", 1197 + "type": "string", 1198 + "const": "core:webview:allow-webview-size" 1199 + }, 1200 + { 1201 + "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", 1202 + "type": "string", 1203 + "const": "core:webview:deny-clear-all-browsing-data" 1204 + }, 1205 + { 1206 + "description": "Denies the create_webview command without any pre-configured scope.", 1207 + "type": "string", 1208 + "const": "core:webview:deny-create-webview" 1209 + }, 1210 + { 1211 + "description": "Denies the create_webview_window command without any pre-configured scope.", 1212 + "type": "string", 1213 + "const": "core:webview:deny-create-webview-window" 1214 + }, 1215 + { 1216 + "description": "Denies the get_all_webviews command without any pre-configured scope.", 1217 + "type": "string", 1218 + "const": "core:webview:deny-get-all-webviews" 1219 + }, 1220 + { 1221 + "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", 1222 + "type": "string", 1223 + "const": "core:webview:deny-internal-toggle-devtools" 1224 + }, 1225 + { 1226 + "description": "Denies the print command without any pre-configured scope.", 1227 + "type": "string", 1228 + "const": "core:webview:deny-print" 1229 + }, 1230 + { 1231 + "description": "Denies the reparent command without any pre-configured scope.", 1232 + "type": "string", 1233 + "const": "core:webview:deny-reparent" 1234 + }, 1235 + { 1236 + "description": "Denies the set_webview_focus command without any pre-configured scope.", 1237 + "type": "string", 1238 + "const": "core:webview:deny-set-webview-focus" 1239 + }, 1240 + { 1241 + "description": "Denies the set_webview_position command without any pre-configured scope.", 1242 + "type": "string", 1243 + "const": "core:webview:deny-set-webview-position" 1244 + }, 1245 + { 1246 + "description": "Denies the set_webview_size command without any pre-configured scope.", 1247 + "type": "string", 1248 + "const": "core:webview:deny-set-webview-size" 1249 + }, 1250 + { 1251 + "description": "Denies the set_webview_zoom command without any pre-configured scope.", 1252 + "type": "string", 1253 + "const": "core:webview:deny-set-webview-zoom" 1254 + }, 1255 + { 1256 + "description": "Denies the webview_close command without any pre-configured scope.", 1257 + "type": "string", 1258 + "const": "core:webview:deny-webview-close" 1259 + }, 1260 + { 1261 + "description": "Denies the webview_hide command without any pre-configured scope.", 1262 + "type": "string", 1263 + "const": "core:webview:deny-webview-hide" 1264 + }, 1265 + { 1266 + "description": "Denies the webview_position command without any pre-configured scope.", 1267 + "type": "string", 1268 + "const": "core:webview:deny-webview-position" 1269 + }, 1270 + { 1271 + "description": "Denies the webview_show command without any pre-configured scope.", 1272 + "type": "string", 1273 + "const": "core:webview:deny-webview-show" 1274 + }, 1275 + { 1276 + "description": "Denies the webview_size command without any pre-configured scope.", 1277 + "type": "string", 1278 + "const": "core:webview:deny-webview-size" 1279 + }, 1280 + { 1281 + "description": "Default permissions for the plugin.", 1282 + "type": "string", 1283 + "const": "core:window:default" 1284 + }, 1285 + { 1286 + "description": "Enables the available_monitors command without any pre-configured scope.", 1287 + "type": "string", 1288 + "const": "core:window:allow-available-monitors" 1289 + }, 1290 + { 1291 + "description": "Enables the center command without any pre-configured scope.", 1292 + "type": "string", 1293 + "const": "core:window:allow-center" 1294 + }, 1295 + { 1296 + "description": "Enables the close command without any pre-configured scope.", 1297 + "type": "string", 1298 + "const": "core:window:allow-close" 1299 + }, 1300 + { 1301 + "description": "Enables the create command without any pre-configured scope.", 1302 + "type": "string", 1303 + "const": "core:window:allow-create" 1304 + }, 1305 + { 1306 + "description": "Enables the current_monitor command without any pre-configured scope.", 1307 + "type": "string", 1308 + "const": "core:window:allow-current-monitor" 1309 + }, 1310 + { 1311 + "description": "Enables the cursor_position command without any pre-configured scope.", 1312 + "type": "string", 1313 + "const": "core:window:allow-cursor-position" 1314 + }, 1315 + { 1316 + "description": "Enables the destroy command without any pre-configured scope.", 1317 + "type": "string", 1318 + "const": "core:window:allow-destroy" 1319 + }, 1320 + { 1321 + "description": "Enables the get_all_windows command without any pre-configured scope.", 1322 + "type": "string", 1323 + "const": "core:window:allow-get-all-windows" 1324 + }, 1325 + { 1326 + "description": "Enables the hide command without any pre-configured scope.", 1327 + "type": "string", 1328 + "const": "core:window:allow-hide" 1329 + }, 1330 + { 1331 + "description": "Enables the inner_position command without any pre-configured scope.", 1332 + "type": "string", 1333 + "const": "core:window:allow-inner-position" 1334 + }, 1335 + { 1336 + "description": "Enables the inner_size command without any pre-configured scope.", 1337 + "type": "string", 1338 + "const": "core:window:allow-inner-size" 1339 + }, 1340 + { 1341 + "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", 1342 + "type": "string", 1343 + "const": "core:window:allow-internal-toggle-maximize" 1344 + }, 1345 + { 1346 + "description": "Enables the is_closable command without any pre-configured scope.", 1347 + "type": "string", 1348 + "const": "core:window:allow-is-closable" 1349 + }, 1350 + { 1351 + "description": "Enables the is_decorated command without any pre-configured scope.", 1352 + "type": "string", 1353 + "const": "core:window:allow-is-decorated" 1354 + }, 1355 + { 1356 + "description": "Enables the is_enabled command without any pre-configured scope.", 1357 + "type": "string", 1358 + "const": "core:window:allow-is-enabled" 1359 + }, 1360 + { 1361 + "description": "Enables the is_focused command without any pre-configured scope.", 1362 + "type": "string", 1363 + "const": "core:window:allow-is-focused" 1364 + }, 1365 + { 1366 + "description": "Enables the is_fullscreen command without any pre-configured scope.", 1367 + "type": "string", 1368 + "const": "core:window:allow-is-fullscreen" 1369 + }, 1370 + { 1371 + "description": "Enables the is_maximizable command without any pre-configured scope.", 1372 + "type": "string", 1373 + "const": "core:window:allow-is-maximizable" 1374 + }, 1375 + { 1376 + "description": "Enables the is_maximized command without any pre-configured scope.", 1377 + "type": "string", 1378 + "const": "core:window:allow-is-maximized" 1379 + }, 1380 + { 1381 + "description": "Enables the is_minimizable command without any pre-configured scope.", 1382 + "type": "string", 1383 + "const": "core:window:allow-is-minimizable" 1384 + }, 1385 + { 1386 + "description": "Enables the is_minimized command without any pre-configured scope.", 1387 + "type": "string", 1388 + "const": "core:window:allow-is-minimized" 1389 + }, 1390 + { 1391 + "description": "Enables the is_resizable command without any pre-configured scope.", 1392 + "type": "string", 1393 + "const": "core:window:allow-is-resizable" 1394 + }, 1395 + { 1396 + "description": "Enables the is_visible command without any pre-configured scope.", 1397 + "type": "string", 1398 + "const": "core:window:allow-is-visible" 1399 + }, 1400 + { 1401 + "description": "Enables the maximize command without any pre-configured scope.", 1402 + "type": "string", 1403 + "const": "core:window:allow-maximize" 1404 + }, 1405 + { 1406 + "description": "Enables the minimize command without any pre-configured scope.", 1407 + "type": "string", 1408 + "const": "core:window:allow-minimize" 1409 + }, 1410 + { 1411 + "description": "Enables the monitor_from_point command without any pre-configured scope.", 1412 + "type": "string", 1413 + "const": "core:window:allow-monitor-from-point" 1414 + }, 1415 + { 1416 + "description": "Enables the outer_position command without any pre-configured scope.", 1417 + "type": "string", 1418 + "const": "core:window:allow-outer-position" 1419 + }, 1420 + { 1421 + "description": "Enables the outer_size command without any pre-configured scope.", 1422 + "type": "string", 1423 + "const": "core:window:allow-outer-size" 1424 + }, 1425 + { 1426 + "description": "Enables the primary_monitor command without any pre-configured scope.", 1427 + "type": "string", 1428 + "const": "core:window:allow-primary-monitor" 1429 + }, 1430 + { 1431 + "description": "Enables the request_user_attention command without any pre-configured scope.", 1432 + "type": "string", 1433 + "const": "core:window:allow-request-user-attention" 1434 + }, 1435 + { 1436 + "description": "Enables the scale_factor command without any pre-configured scope.", 1437 + "type": "string", 1438 + "const": "core:window:allow-scale-factor" 1439 + }, 1440 + { 1441 + "description": "Enables the set_always_on_bottom command without any pre-configured scope.", 1442 + "type": "string", 1443 + "const": "core:window:allow-set-always-on-bottom" 1444 + }, 1445 + { 1446 + "description": "Enables the set_always_on_top command without any pre-configured scope.", 1447 + "type": "string", 1448 + "const": "core:window:allow-set-always-on-top" 1449 + }, 1450 + { 1451 + "description": "Enables the set_closable command without any pre-configured scope.", 1452 + "type": "string", 1453 + "const": "core:window:allow-set-closable" 1454 + }, 1455 + { 1456 + "description": "Enables the set_content_protected command without any pre-configured scope.", 1457 + "type": "string", 1458 + "const": "core:window:allow-set-content-protected" 1459 + }, 1460 + { 1461 + "description": "Enables the set_cursor_grab command without any pre-configured scope.", 1462 + "type": "string", 1463 + "const": "core:window:allow-set-cursor-grab" 1464 + }, 1465 + { 1466 + "description": "Enables the set_cursor_icon command without any pre-configured scope.", 1467 + "type": "string", 1468 + "const": "core:window:allow-set-cursor-icon" 1469 + }, 1470 + { 1471 + "description": "Enables the set_cursor_position command without any pre-configured scope.", 1472 + "type": "string", 1473 + "const": "core:window:allow-set-cursor-position" 1474 + }, 1475 + { 1476 + "description": "Enables the set_cursor_visible command without any pre-configured scope.", 1477 + "type": "string", 1478 + "const": "core:window:allow-set-cursor-visible" 1479 + }, 1480 + { 1481 + "description": "Enables the set_decorations command without any pre-configured scope.", 1482 + "type": "string", 1483 + "const": "core:window:allow-set-decorations" 1484 + }, 1485 + { 1486 + "description": "Enables the set_effects command without any pre-configured scope.", 1487 + "type": "string", 1488 + "const": "core:window:allow-set-effects" 1489 + }, 1490 + { 1491 + "description": "Enables the set_enabled command without any pre-configured scope.", 1492 + "type": "string", 1493 + "const": "core:window:allow-set-enabled" 1494 + }, 1495 + { 1496 + "description": "Enables the set_focus command without any pre-configured scope.", 1497 + "type": "string", 1498 + "const": "core:window:allow-set-focus" 1499 + }, 1500 + { 1501 + "description": "Enables the set_fullscreen command without any pre-configured scope.", 1502 + "type": "string", 1503 + "const": "core:window:allow-set-fullscreen" 1504 + }, 1505 + { 1506 + "description": "Enables the set_icon command without any pre-configured scope.", 1507 + "type": "string", 1508 + "const": "core:window:allow-set-icon" 1509 + }, 1510 + { 1511 + "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", 1512 + "type": "string", 1513 + "const": "core:window:allow-set-ignore-cursor-events" 1514 + }, 1515 + { 1516 + "description": "Enables the set_max_size command without any pre-configured scope.", 1517 + "type": "string", 1518 + "const": "core:window:allow-set-max-size" 1519 + }, 1520 + { 1521 + "description": "Enables the set_maximizable command without any pre-configured scope.", 1522 + "type": "string", 1523 + "const": "core:window:allow-set-maximizable" 1524 + }, 1525 + { 1526 + "description": "Enables the set_min_size command without any pre-configured scope.", 1527 + "type": "string", 1528 + "const": "core:window:allow-set-min-size" 1529 + }, 1530 + { 1531 + "description": "Enables the set_minimizable command without any pre-configured scope.", 1532 + "type": "string", 1533 + "const": "core:window:allow-set-minimizable" 1534 + }, 1535 + { 1536 + "description": "Enables the set_position command without any pre-configured scope.", 1537 + "type": "string", 1538 + "const": "core:window:allow-set-position" 1539 + }, 1540 + { 1541 + "description": "Enables the set_progress_bar command without any pre-configured scope.", 1542 + "type": "string", 1543 + "const": "core:window:allow-set-progress-bar" 1544 + }, 1545 + { 1546 + "description": "Enables the set_resizable command without any pre-configured scope.", 1547 + "type": "string", 1548 + "const": "core:window:allow-set-resizable" 1549 + }, 1550 + { 1551 + "description": "Enables the set_shadow command without any pre-configured scope.", 1552 + "type": "string", 1553 + "const": "core:window:allow-set-shadow" 1554 + }, 1555 + { 1556 + "description": "Enables the set_size command without any pre-configured scope.", 1557 + "type": "string", 1558 + "const": "core:window:allow-set-size" 1559 + }, 1560 + { 1561 + "description": "Enables the set_size_constraints command without any pre-configured scope.", 1562 + "type": "string", 1563 + "const": "core:window:allow-set-size-constraints" 1564 + }, 1565 + { 1566 + "description": "Enables the set_skip_taskbar command without any pre-configured scope.", 1567 + "type": "string", 1568 + "const": "core:window:allow-set-skip-taskbar" 1569 + }, 1570 + { 1571 + "description": "Enables the set_theme command without any pre-configured scope.", 1572 + "type": "string", 1573 + "const": "core:window:allow-set-theme" 1574 + }, 1575 + { 1576 + "description": "Enables the set_title command without any pre-configured scope.", 1577 + "type": "string", 1578 + "const": "core:window:allow-set-title" 1579 + }, 1580 + { 1581 + "description": "Enables the set_title_bar_style command without any pre-configured scope.", 1582 + "type": "string", 1583 + "const": "core:window:allow-set-title-bar-style" 1584 + }, 1585 + { 1586 + "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", 1587 + "type": "string", 1588 + "const": "core:window:allow-set-visible-on-all-workspaces" 1589 + }, 1590 + { 1591 + "description": "Enables the show command without any pre-configured scope.", 1592 + "type": "string", 1593 + "const": "core:window:allow-show" 1594 + }, 1595 + { 1596 + "description": "Enables the start_dragging command without any pre-configured scope.", 1597 + "type": "string", 1598 + "const": "core:window:allow-start-dragging" 1599 + }, 1600 + { 1601 + "description": "Enables the start_resize_dragging command without any pre-configured scope.", 1602 + "type": "string", 1603 + "const": "core:window:allow-start-resize-dragging" 1604 + }, 1605 + { 1606 + "description": "Enables the theme command without any pre-configured scope.", 1607 + "type": "string", 1608 + "const": "core:window:allow-theme" 1609 + }, 1610 + { 1611 + "description": "Enables the title command without any pre-configured scope.", 1612 + "type": "string", 1613 + "const": "core:window:allow-title" 1614 + }, 1615 + { 1616 + "description": "Enables the toggle_maximize command without any pre-configured scope.", 1617 + "type": "string", 1618 + "const": "core:window:allow-toggle-maximize" 1619 + }, 1620 + { 1621 + "description": "Enables the unmaximize command without any pre-configured scope.", 1622 + "type": "string", 1623 + "const": "core:window:allow-unmaximize" 1624 + }, 1625 + { 1626 + "description": "Enables the unminimize command without any pre-configured scope.", 1627 + "type": "string", 1628 + "const": "core:window:allow-unminimize" 1629 + }, 1630 + { 1631 + "description": "Denies the available_monitors command without any pre-configured scope.", 1632 + "type": "string", 1633 + "const": "core:window:deny-available-monitors" 1634 + }, 1635 + { 1636 + "description": "Denies the center command without any pre-configured scope.", 1637 + "type": "string", 1638 + "const": "core:window:deny-center" 1639 + }, 1640 + { 1641 + "description": "Denies the close command without any pre-configured scope.", 1642 + "type": "string", 1643 + "const": "core:window:deny-close" 1644 + }, 1645 + { 1646 + "description": "Denies the create command without any pre-configured scope.", 1647 + "type": "string", 1648 + "const": "core:window:deny-create" 1649 + }, 1650 + { 1651 + "description": "Denies the current_monitor command without any pre-configured scope.", 1652 + "type": "string", 1653 + "const": "core:window:deny-current-monitor" 1654 + }, 1655 + { 1656 + "description": "Denies the cursor_position command without any pre-configured scope.", 1657 + "type": "string", 1658 + "const": "core:window:deny-cursor-position" 1659 + }, 1660 + { 1661 + "description": "Denies the destroy command without any pre-configured scope.", 1662 + "type": "string", 1663 + "const": "core:window:deny-destroy" 1664 + }, 1665 + { 1666 + "description": "Denies the get_all_windows command without any pre-configured scope.", 1667 + "type": "string", 1668 + "const": "core:window:deny-get-all-windows" 1669 + }, 1670 + { 1671 + "description": "Denies the hide command without any pre-configured scope.", 1672 + "type": "string", 1673 + "const": "core:window:deny-hide" 1674 + }, 1675 + { 1676 + "description": "Denies the inner_position command without any pre-configured scope.", 1677 + "type": "string", 1678 + "const": "core:window:deny-inner-position" 1679 + }, 1680 + { 1681 + "description": "Denies the inner_size command without any pre-configured scope.", 1682 + "type": "string", 1683 + "const": "core:window:deny-inner-size" 1684 + }, 1685 + { 1686 + "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", 1687 + "type": "string", 1688 + "const": "core:window:deny-internal-toggle-maximize" 1689 + }, 1690 + { 1691 + "description": "Denies the is_closable command without any pre-configured scope.", 1692 + "type": "string", 1693 + "const": "core:window:deny-is-closable" 1694 + }, 1695 + { 1696 + "description": "Denies the is_decorated command without any pre-configured scope.", 1697 + "type": "string", 1698 + "const": "core:window:deny-is-decorated" 1699 + }, 1700 + { 1701 + "description": "Denies the is_enabled command without any pre-configured scope.", 1702 + "type": "string", 1703 + "const": "core:window:deny-is-enabled" 1704 + }, 1705 + { 1706 + "description": "Denies the is_focused command without any pre-configured scope.", 1707 + "type": "string", 1708 + "const": "core:window:deny-is-focused" 1709 + }, 1710 + { 1711 + "description": "Denies the is_fullscreen command without any pre-configured scope.", 1712 + "type": "string", 1713 + "const": "core:window:deny-is-fullscreen" 1714 + }, 1715 + { 1716 + "description": "Denies the is_maximizable command without any pre-configured scope.", 1717 + "type": "string", 1718 + "const": "core:window:deny-is-maximizable" 1719 + }, 1720 + { 1721 + "description": "Denies the is_maximized command without any pre-configured scope.", 1722 + "type": "string", 1723 + "const": "core:window:deny-is-maximized" 1724 + }, 1725 + { 1726 + "description": "Denies the is_minimizable command without any pre-configured scope.", 1727 + "type": "string", 1728 + "const": "core:window:deny-is-minimizable" 1729 + }, 1730 + { 1731 + "description": "Denies the is_minimized command without any pre-configured scope.", 1732 + "type": "string", 1733 + "const": "core:window:deny-is-minimized" 1734 + }, 1735 + { 1736 + "description": "Denies the is_resizable command without any pre-configured scope.", 1737 + "type": "string", 1738 + "const": "core:window:deny-is-resizable" 1739 + }, 1740 + { 1741 + "description": "Denies the is_visible command without any pre-configured scope.", 1742 + "type": "string", 1743 + "const": "core:window:deny-is-visible" 1744 + }, 1745 + { 1746 + "description": "Denies the maximize command without any pre-configured scope.", 1747 + "type": "string", 1748 + "const": "core:window:deny-maximize" 1749 + }, 1750 + { 1751 + "description": "Denies the minimize command without any pre-configured scope.", 1752 + "type": "string", 1753 + "const": "core:window:deny-minimize" 1754 + }, 1755 + { 1756 + "description": "Denies the monitor_from_point command without any pre-configured scope.", 1757 + "type": "string", 1758 + "const": "core:window:deny-monitor-from-point" 1759 + }, 1760 + { 1761 + "description": "Denies the outer_position command without any pre-configured scope.", 1762 + "type": "string", 1763 + "const": "core:window:deny-outer-position" 1764 + }, 1765 + { 1766 + "description": "Denies the outer_size command without any pre-configured scope.", 1767 + "type": "string", 1768 + "const": "core:window:deny-outer-size" 1769 + }, 1770 + { 1771 + "description": "Denies the primary_monitor command without any pre-configured scope.", 1772 + "type": "string", 1773 + "const": "core:window:deny-primary-monitor" 1774 + }, 1775 + { 1776 + "description": "Denies the request_user_attention command without any pre-configured scope.", 1777 + "type": "string", 1778 + "const": "core:window:deny-request-user-attention" 1779 + }, 1780 + { 1781 + "description": "Denies the scale_factor command without any pre-configured scope.", 1782 + "type": "string", 1783 + "const": "core:window:deny-scale-factor" 1784 + }, 1785 + { 1786 + "description": "Denies the set_always_on_bottom command without any pre-configured scope.", 1787 + "type": "string", 1788 + "const": "core:window:deny-set-always-on-bottom" 1789 + }, 1790 + { 1791 + "description": "Denies the set_always_on_top command without any pre-configured scope.", 1792 + "type": "string", 1793 + "const": "core:window:deny-set-always-on-top" 1794 + }, 1795 + { 1796 + "description": "Denies the set_closable command without any pre-configured scope.", 1797 + "type": "string", 1798 + "const": "core:window:deny-set-closable" 1799 + }, 1800 + { 1801 + "description": "Denies the set_content_protected command without any pre-configured scope.", 1802 + "type": "string", 1803 + "const": "core:window:deny-set-content-protected" 1804 + }, 1805 + { 1806 + "description": "Denies the set_cursor_grab command without any pre-configured scope.", 1807 + "type": "string", 1808 + "const": "core:window:deny-set-cursor-grab" 1809 + }, 1810 + { 1811 + "description": "Denies the set_cursor_icon command without any pre-configured scope.", 1812 + "type": "string", 1813 + "const": "core:window:deny-set-cursor-icon" 1814 + }, 1815 + { 1816 + "description": "Denies the set_cursor_position command without any pre-configured scope.", 1817 + "type": "string", 1818 + "const": "core:window:deny-set-cursor-position" 1819 + }, 1820 + { 1821 + "description": "Denies the set_cursor_visible command without any pre-configured scope.", 1822 + "type": "string", 1823 + "const": "core:window:deny-set-cursor-visible" 1824 + }, 1825 + { 1826 + "description": "Denies the set_decorations command without any pre-configured scope.", 1827 + "type": "string", 1828 + "const": "core:window:deny-set-decorations" 1829 + }, 1830 + { 1831 + "description": "Denies the set_effects command without any pre-configured scope.", 1832 + "type": "string", 1833 + "const": "core:window:deny-set-effects" 1834 + }, 1835 + { 1836 + "description": "Denies the set_enabled command without any pre-configured scope.", 1837 + "type": "string", 1838 + "const": "core:window:deny-set-enabled" 1839 + }, 1840 + { 1841 + "description": "Denies the set_focus command without any pre-configured scope.", 1842 + "type": "string", 1843 + "const": "core:window:deny-set-focus" 1844 + }, 1845 + { 1846 + "description": "Denies the set_fullscreen command without any pre-configured scope.", 1847 + "type": "string", 1848 + "const": "core:window:deny-set-fullscreen" 1849 + }, 1850 + { 1851 + "description": "Denies the set_icon command without any pre-configured scope.", 1852 + "type": "string", 1853 + "const": "core:window:deny-set-icon" 1854 + }, 1855 + { 1856 + "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", 1857 + "type": "string", 1858 + "const": "core:window:deny-set-ignore-cursor-events" 1859 + }, 1860 + { 1861 + "description": "Denies the set_max_size command without any pre-configured scope.", 1862 + "type": "string", 1863 + "const": "core:window:deny-set-max-size" 1864 + }, 1865 + { 1866 + "description": "Denies the set_maximizable command without any pre-configured scope.", 1867 + "type": "string", 1868 + "const": "core:window:deny-set-maximizable" 1869 + }, 1870 + { 1871 + "description": "Denies the set_min_size command without any pre-configured scope.", 1872 + "type": "string", 1873 + "const": "core:window:deny-set-min-size" 1874 + }, 1875 + { 1876 + "description": "Denies the set_minimizable command without any pre-configured scope.", 1877 + "type": "string", 1878 + "const": "core:window:deny-set-minimizable" 1879 + }, 1880 + { 1881 + "description": "Denies the set_position command without any pre-configured scope.", 1882 + "type": "string", 1883 + "const": "core:window:deny-set-position" 1884 + }, 1885 + { 1886 + "description": "Denies the set_progress_bar command without any pre-configured scope.", 1887 + "type": "string", 1888 + "const": "core:window:deny-set-progress-bar" 1889 + }, 1890 + { 1891 + "description": "Denies the set_resizable command without any pre-configured scope.", 1892 + "type": "string", 1893 + "const": "core:window:deny-set-resizable" 1894 + }, 1895 + { 1896 + "description": "Denies the set_shadow command without any pre-configured scope.", 1897 + "type": "string", 1898 + "const": "core:window:deny-set-shadow" 1899 + }, 1900 + { 1901 + "description": "Denies the set_size command without any pre-configured scope.", 1902 + "type": "string", 1903 + "const": "core:window:deny-set-size" 1904 + }, 1905 + { 1906 + "description": "Denies the set_size_constraints command without any pre-configured scope.", 1907 + "type": "string", 1908 + "const": "core:window:deny-set-size-constraints" 1909 + }, 1910 + { 1911 + "description": "Denies the set_skip_taskbar command without any pre-configured scope.", 1912 + "type": "string", 1913 + "const": "core:window:deny-set-skip-taskbar" 1914 + }, 1915 + { 1916 + "description": "Denies the set_theme command without any pre-configured scope.", 1917 + "type": "string", 1918 + "const": "core:window:deny-set-theme" 1919 + }, 1920 + { 1921 + "description": "Denies the set_title command without any pre-configured scope.", 1922 + "type": "string", 1923 + "const": "core:window:deny-set-title" 1924 + }, 1925 + { 1926 + "description": "Denies the set_title_bar_style command without any pre-configured scope.", 1927 + "type": "string", 1928 + "const": "core:window:deny-set-title-bar-style" 1929 + }, 1930 + { 1931 + "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", 1932 + "type": "string", 1933 + "const": "core:window:deny-set-visible-on-all-workspaces" 1934 + }, 1935 + { 1936 + "description": "Denies the show command without any pre-configured scope.", 1937 + "type": "string", 1938 + "const": "core:window:deny-show" 1939 + }, 1940 + { 1941 + "description": "Denies the start_dragging command without any pre-configured scope.", 1942 + "type": "string", 1943 + "const": "core:window:deny-start-dragging" 1944 + }, 1945 + { 1946 + "description": "Denies the start_resize_dragging command without any pre-configured scope.", 1947 + "type": "string", 1948 + "const": "core:window:deny-start-resize-dragging" 1949 + }, 1950 + { 1951 + "description": "Denies the theme command without any pre-configured scope.", 1952 + "type": "string", 1953 + "const": "core:window:deny-theme" 1954 + }, 1955 + { 1956 + "description": "Denies the title command without any pre-configured scope.", 1957 + "type": "string", 1958 + "const": "core:window:deny-title" 1959 + }, 1960 + { 1961 + "description": "Denies the toggle_maximize command without any pre-configured scope.", 1962 + "type": "string", 1963 + "const": "core:window:deny-toggle-maximize" 1964 + }, 1965 + { 1966 + "description": "Denies the unmaximize command without any pre-configured scope.", 1967 + "type": "string", 1968 + "const": "core:window:deny-unmaximize" 1969 + }, 1970 + { 1971 + "description": "Denies the unminimize command without any pre-configured scope.", 1972 + "type": "string", 1973 + "const": "core:window:deny-unminimize" 1974 + }, 1975 + { 1976 + "description": "Allows reading the opened deep link via the get_current command", 1977 + "type": "string", 1978 + "const": "deep-link:default" 1979 + }, 1980 + { 1981 + "description": "Enables the get_current command without any pre-configured scope.", 1982 + "type": "string", 1983 + "const": "deep-link:allow-get-current" 1984 + }, 1985 + { 1986 + "description": "Enables the is_registered command without any pre-configured scope.", 1987 + "type": "string", 1988 + "const": "deep-link:allow-is-registered" 1989 + }, 1990 + { 1991 + "description": "Enables the register command without any pre-configured scope.", 1992 + "type": "string", 1993 + "const": "deep-link:allow-register" 1994 + }, 1995 + { 1996 + "description": "Enables the unregister command without any pre-configured scope.", 1997 + "type": "string", 1998 + "const": "deep-link:allow-unregister" 1999 + }, 2000 + { 2001 + "description": "Denies the get_current command without any pre-configured scope.", 2002 + "type": "string", 2003 + "const": "deep-link:deny-get-current" 2004 + }, 2005 + { 2006 + "description": "Denies the is_registered command without any pre-configured scope.", 2007 + "type": "string", 2008 + "const": "deep-link:deny-is-registered" 2009 + }, 2010 + { 2011 + "description": "Denies the register command without any pre-configured scope.", 2012 + "type": "string", 2013 + "const": "deep-link:deny-register" 2014 + }, 2015 + { 2016 + "description": "Denies the unregister command without any pre-configured scope.", 2017 + "type": "string", 2018 + "const": "deep-link:deny-unregister" 2019 + }, 2020 + { 2021 + "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", 2022 + "type": "string", 2023 + "const": "http:default" 2024 + }, 2025 + { 2026 + "description": "Enables the fetch command without any pre-configured scope.", 2027 + "type": "string", 2028 + "const": "http:allow-fetch" 2029 + }, 2030 + { 2031 + "description": "Enables the fetch_cancel command without any pre-configured scope.", 2032 + "type": "string", 2033 + "const": "http:allow-fetch-cancel" 2034 + }, 2035 + { 2036 + "description": "Enables the fetch_read_body command without any pre-configured scope.", 2037 + "type": "string", 2038 + "const": "http:allow-fetch-read-body" 2039 + }, 2040 + { 2041 + "description": "Enables the fetch_send command without any pre-configured scope.", 2042 + "type": "string", 2043 + "const": "http:allow-fetch-send" 2044 + }, 2045 + { 2046 + "description": "Denies the fetch command without any pre-configured scope.", 2047 + "type": "string", 2048 + "const": "http:deny-fetch" 2049 + }, 2050 + { 2051 + "description": "Denies the fetch_cancel command without any pre-configured scope.", 2052 + "type": "string", 2053 + "const": "http:deny-fetch-cancel" 2054 + }, 2055 + { 2056 + "description": "Denies the fetch_read_body command without any pre-configured scope.", 2057 + "type": "string", 2058 + "const": "http:deny-fetch-read-body" 2059 + }, 2060 + { 2061 + "description": "Denies the fetch_send command without any pre-configured scope.", 2062 + "type": "string", 2063 + "const": "http:deny-fetch-send" 2064 + }, 2065 + { 2066 + "description": "This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n", 2067 + "type": "string", 2068 + "const": "process:default" 2069 + }, 2070 + { 2071 + "description": "Enables the exit command without any pre-configured scope.", 2072 + "type": "string", 2073 + "const": "process:allow-exit" 2074 + }, 2075 + { 2076 + "description": "Enables the restart command without any pre-configured scope.", 2077 + "type": "string", 2078 + "const": "process:allow-restart" 2079 + }, 2080 + { 2081 + "description": "Denies the exit command without any pre-configured scope.", 2082 + "type": "string", 2083 + "const": "process:deny-exit" 2084 + }, 2085 + { 2086 + "description": "Denies the restart command without any pre-configured scope.", 2087 + "type": "string", 2088 + "const": "process:deny-restart" 2089 + }, 2090 + { 2091 + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", 2092 + "type": "string", 2093 + "const": "shell:default" 2094 + }, 2095 + { 2096 + "description": "Enables the execute command without any pre-configured scope.", 2097 + "type": "string", 2098 + "const": "shell:allow-execute" 2099 + }, 2100 + { 2101 + "description": "Enables the kill command without any pre-configured scope.", 2102 + "type": "string", 2103 + "const": "shell:allow-kill" 2104 + }, 2105 + { 2106 + "description": "Enables the open command without any pre-configured scope.", 2107 + "type": "string", 2108 + "const": "shell:allow-open" 2109 + }, 2110 + { 2111 + "description": "Enables the spawn command without any pre-configured scope.", 2112 + "type": "string", 2113 + "const": "shell:allow-spawn" 2114 + }, 2115 + { 2116 + "description": "Enables the stdin_write command without any pre-configured scope.", 2117 + "type": "string", 2118 + "const": "shell:allow-stdin-write" 2119 + }, 2120 + { 2121 + "description": "Denies the execute command without any pre-configured scope.", 2122 + "type": "string", 2123 + "const": "shell:deny-execute" 2124 + }, 2125 + { 2126 + "description": "Denies the kill command without any pre-configured scope.", 2127 + "type": "string", 2128 + "const": "shell:deny-kill" 2129 + }, 2130 + { 2131 + "description": "Denies the open command without any pre-configured scope.", 2132 + "type": "string", 2133 + "const": "shell:deny-open" 2134 + }, 2135 + { 2136 + "description": "Denies the spawn command without any pre-configured scope.", 2137 + "type": "string", 2138 + "const": "shell:deny-spawn" 2139 + }, 2140 + { 2141 + "description": "Denies the stdin_write command without any pre-configured scope.", 2142 + "type": "string", 2143 + "const": "shell:deny-stdin-write" 2144 + } 2145 + ] 2146 + }, 2147 + "Value": { 2148 + "description": "All supported ACL values.", 2149 + "anyOf": [ 2150 + { 2151 + "description": "Represents a null JSON value.", 2152 + "type": "null" 2153 + }, 2154 + { 2155 + "description": "Represents a [`bool`].", 2156 + "type": "boolean" 2157 + }, 2158 + { 2159 + "description": "Represents a valid ACL [`Number`].", 2160 + "allOf": [ 2161 + { 2162 + "$ref": "#/definitions/Number" 2163 + } 2164 + ] 2165 + }, 2166 + { 2167 + "description": "Represents a [`String`].", 2168 + "type": "string" 2169 + }, 2170 + { 2171 + "description": "Represents a list of other [`Value`]s.", 2172 + "type": "array", 2173 + "items": { 2174 + "$ref": "#/definitions/Value" 2175 + } 2176 + }, 2177 + { 2178 + "description": "Represents a map of [`String`] keys to [`Value`]s.", 2179 + "type": "object", 2180 + "additionalProperties": { 2181 + "$ref": "#/definitions/Value" 2182 + } 2183 + } 2184 + ] 2185 + }, 2186 + "Number": { 2187 + "description": "A valid ACL number.", 2188 + "anyOf": [ 2189 + { 2190 + "description": "Represents an [`i64`].", 2191 + "type": "integer", 2192 + "format": "int64" 2193 + }, 2194 + { 2195 + "description": "Represents a [`f64`].", 2196 + "type": "number", 2197 + "format": "double" 2198 + } 2199 + ] 2200 + }, 2201 + "Target": { 2202 + "description": "Platform target.", 2203 + "oneOf": [ 2204 + { 2205 + "description": "MacOS.", 2206 + "type": "string", 2207 + "enum": [ 2208 + "macOS" 2209 + ] 2210 + }, 2211 + { 2212 + "description": "Windows.", 2213 + "type": "string", 2214 + "enum": [ 2215 + "windows" 2216 + ] 2217 + }, 2218 + { 2219 + "description": "Linux.", 2220 + "type": "string", 2221 + "enum": [ 2222 + "linux" 2223 + ] 2224 + }, 2225 + { 2226 + "description": "Android.", 2227 + "type": "string", 2228 + "enum": [ 2229 + "android" 2230 + ] 2231 + }, 2232 + { 2233 + "description": "iOS.", 2234 + "type": "string", 2235 + "enum": [ 2236 + "iOS" 2237 + ] 2238 + } 2239 + ] 2240 + }, 2241 + "ShellScopeEntryAllowedArg": { 2242 + "description": "A command argument allowed to be executed by the webview API.", 2243 + "anyOf": [ 2244 + { 2245 + "description": "A non-configurable argument that is passed to the command in the order it was specified.", 2246 + "type": "string" 2247 + }, 2248 + { 2249 + "description": "A variable that is set while calling the command from the webview API.", 2250 + "type": "object", 2251 + "required": [ 2252 + "validator" 2253 + ], 2254 + "properties": { 2255 + "raw": { 2256 + "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.", 2257 + "default": false, 2258 + "type": "boolean" 2259 + }, 2260 + "validator": { 2261 + "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>", 2262 + "type": "string" 2263 + } 2264 + }, 2265 + "additionalProperties": false 2266 + } 2267 + ] 2268 + }, 2269 + "ShellScopeEntryAllowedArgs": { 2270 + "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.", 2271 + "anyOf": [ 2272 + { 2273 + "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", 2274 + "type": "boolean" 2275 + }, 2276 + { 2277 + "description": "A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.", 2278 + "type": "array", 2279 + "items": { 2280 + "$ref": "#/definitions/ShellScopeEntryAllowedArg" 2281 + } 2282 + } 2283 + ] 2284 + } 2285 + } 2286 + }
+45
src-tauri/gen/schemas/windows-schema.json
··· 1973 1973 "const": "core:window:deny-unminimize" 1974 1974 }, 1975 1975 { 1976 + "description": "Allows reading the opened deep link via the get_current command", 1977 + "type": "string", 1978 + "const": "deep-link:default" 1979 + }, 1980 + { 1981 + "description": "Enables the get_current command without any pre-configured scope.", 1982 + "type": "string", 1983 + "const": "deep-link:allow-get-current" 1984 + }, 1985 + { 1986 + "description": "Enables the is_registered command without any pre-configured scope.", 1987 + "type": "string", 1988 + "const": "deep-link:allow-is-registered" 1989 + }, 1990 + { 1991 + "description": "Enables the register command without any pre-configured scope.", 1992 + "type": "string", 1993 + "const": "deep-link:allow-register" 1994 + }, 1995 + { 1996 + "description": "Enables the unregister command without any pre-configured scope.", 1997 + "type": "string", 1998 + "const": "deep-link:allow-unregister" 1999 + }, 2000 + { 2001 + "description": "Denies the get_current command without any pre-configured scope.", 2002 + "type": "string", 2003 + "const": "deep-link:deny-get-current" 2004 + }, 2005 + { 2006 + "description": "Denies the is_registered command without any pre-configured scope.", 2007 + "type": "string", 2008 + "const": "deep-link:deny-is-registered" 2009 + }, 2010 + { 2011 + "description": "Denies the register command without any pre-configured scope.", 2012 + "type": "string", 2013 + "const": "deep-link:deny-register" 2014 + }, 2015 + { 2016 + "description": "Denies the unregister command without any pre-configured scope.", 2017 + "type": "string", 2018 + "const": "deep-link:deny-unregister" 2019 + }, 2020 + { 1976 2021 "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", 1977 2022 "type": "string", 1978 2023 "const": "http:default"
+1
src-tauri/rustfmt.toml
··· 1 + tab_spaces = 2
+1 -1
src-tauri/src/frontend_calls/change_final_path.rs
··· 14 14 fs::create_dir(&new_path).unwrap(); 15 15 } 16 16 }; 17 - } 17 + }
+3 -3
src-tauri/src/frontend_calls/close_splashscreen.rs
··· 1 - use tauri::Manager; 2 1 use std::env; 2 + use tauri::Manager; 3 3 4 4 #[tauri::command] 5 5 pub fn close_splashscreen(window: tauri::Window) { ··· 12 12 } 13 13 } 14 14 15 - if show{ 15 + if show { 16 16 window.get_webview_window("main").unwrap().show().unwrap(); 17 17 } 18 - } 18 + }
+14 -12
src-tauri/src/frontend_calls/config.rs
··· 1 - use std::{ fs, path::PathBuf }; 1 + use std::{fs, path::PathBuf}; 2 2 3 3 use serde_json::Value; 4 4 5 - pub fn get_config_path() -> PathBuf{ 5 + pub fn get_config_path() -> PathBuf { 6 6 let path = dirs::config_dir() 7 7 .unwrap() 8 8 .join("PhazeDev/VRChatPhotoManager/.config"); 9 9 10 - match fs::metadata(&path){ 10 + match fs::metadata(&path) { 11 11 Ok(_) => {} 12 12 Err(_) => { 13 13 fs::write(&path, b"{}").unwrap(); ··· 18 18 } 19 19 20 20 #[tauri::command] 21 - pub fn set_config_value_string( key: String, value: String ){ 21 + pub fn set_config_value_string(key: String, value: String) { 22 22 let path = get_config_path(); 23 23 24 24 let mut config: Value = serde_json::from_str(&fs::read_to_string(&path).unwrap()).unwrap(); ··· 28 28 } 29 29 30 30 #[tauri::command] 31 - pub fn get_config_value_string( key: String ) -> Option<String>{ 32 - let config: Value = serde_json::from_str(&fs::read_to_string(get_config_path()).unwrap()).unwrap(); 31 + pub fn get_config_value_string(key: String) -> Option<String> { 32 + let config: Value = 33 + serde_json::from_str(&fs::read_to_string(get_config_path()).unwrap()).unwrap(); 33 34 let string = config[key].as_str(); 34 35 35 - if string.is_some(){ 36 + if string.is_some() { 36 37 Some(string.unwrap().to_owned()) 37 - } else{ 38 + } else { 38 39 None 39 40 } 40 41 } 41 42 42 43 #[tauri::command] 43 - pub fn set_config_value_int( key: String, value: i64 ){ 44 + pub fn set_config_value_int(key: String, value: i64) { 44 45 let path = get_config_path(); 45 46 46 47 let mut config: Value = serde_json::from_str(&fs::read_to_string(&path).unwrap()).unwrap(); ··· 50 51 } 51 52 52 53 #[tauri::command] 53 - pub fn get_config_value_int( key: String ) -> Option<i64>{ 54 - let config: Value = serde_json::from_str(&fs::read_to_string(get_config_path()).unwrap()).unwrap(); 54 + pub fn get_config_value_int(key: String) -> Option<i64> { 55 + let config: Value = 56 + serde_json::from_str(&fs::read_to_string(get_config_path()).unwrap()).unwrap(); 55 57 config[key].as_i64() 56 - } 58 + }
+2 -2
src-tauri/src/frontend_calls/delete_photo.rs
··· 1 - use std::{ fs, thread, time::Duration }; 2 1 use crate::util::get_photo_path::get_photo_path; 2 + use std::{fs, thread, time::Duration}; 3 3 4 4 // Delete a photo when the users confirms the prompt in the ui 5 5 #[tauri::command] ··· 22 22 .unwrap(); 23 23 } 24 24 }); 25 - } 25 + }
+2 -2
src-tauri/src/frontend_calls/find_world_by_id.rs
··· 1 - use std::thread; 2 1 use crate::worldscraper::World; 2 + use std::thread; 3 3 use tauri::Emitter; 4 4 5 5 // Load vrchat world data ··· 9 9 let world = World::new(world_id); 10 10 window.emit("world_data", world).unwrap(); 11 11 }); 12 - } 12 + }
+1 -1
src-tauri/src/frontend_calls/get_os.rs
··· 1 1 #[tauri::command] 2 - pub fn get_os() -> String{ 2 + pub fn get_os() -> String { 3 3 #[cfg(windows)] 4 4 return "windows".into(); 5 5
+2 -2
src-tauri/src/frontend_calls/get_user_photos_path.rs
··· 1 - use std::path; 2 1 use crate::util::get_photo_path::get_photo_path; 2 + use std::path; 3 3 4 4 // Check if the photo config file exists 5 5 // if not just return the default vrchat path 6 6 #[tauri::command] 7 7 pub fn get_user_photos_path() -> path::PathBuf { 8 8 get_photo_path() 9 - } 9 + }
+3 -3
src-tauri/src/frontend_calls/load_photo_meta.rs
··· 1 - use std::{ thread, fs, io::Read }; 2 1 use crate::util::get_photo_path::get_photo_path; 3 - use tauri::Emitter; 4 2 use crate::PNGImage; 3 + use std::{fs, io::Read, thread}; 4 + use tauri::Emitter; 5 5 6 6 // Reads the PNG file and loads the image metadata from it 7 7 // then sends the metadata to the frontend, returns width, height, colour depth and so on... more info "pngmeta.rs" ··· 28 28 } 29 29 } 30 30 }); 31 - } 31 + }
+7 -10
src-tauri/src/frontend_calls/load_photos.rs
··· 1 - use std::{ thread, fs, path }; 2 1 use crate::util::get_photo_path::get_photo_path; 3 2 use regex::Regex; 3 + use std::{fs, path, thread}; 4 4 use tauri::Emitter; 5 5 6 6 // Scans all files under the "Pictures/VRChat" path ··· 39 39 40 40 let re3_match = re3.is_match(name); 41 41 42 - if re1.is_match(name) 43 - || re2.is_match(name) 44 - || re3_match 45 - { 42 + if re1.is_match(name) || re2.is_match(name) || re3_match { 46 43 let path = fname.to_path_buf().clone(); 47 44 let metadata = fs::metadata(&path).unwrap(); 48 45 ··· 51 48 52 49 let pth = path.strip_prefix(&base_dir).unwrap().to_path_buf(); 53 50 54 - if re3_match{ 51 + if re3_match { 55 52 photos.push(path::PathBuf::from("legacy://").join(pth)); 56 - } else{ 53 + } else { 57 54 photos.push(pth); 58 55 } 59 56 } ··· 71 68 72 69 println!("Found {} photos", photos.len()); 73 70 window 74 - .emit("photos_loaded", PhotosLoadedResponse { photos, size }) 75 - .unwrap(); 71 + .emit("photos_loaded", PhotosLoadedResponse { photos, size }) 72 + .unwrap(); 76 73 }); 77 - } 74 + }
+11 -11
src-tauri/src/frontend_calls/mod.rs
··· 1 + pub mod change_final_path; 1 2 pub mod close_splashscreen; 2 - pub mod start_user_auth; 3 - pub mod open_url; 4 - pub mod open_folder; 5 - pub mod get_user_photos_path; 6 - pub mod start_with_win; 3 + pub mod config; 4 + pub mod delete_photo; 7 5 pub mod find_world_by_id; 8 - pub mod sync_photos; 9 - pub mod load_photos; 6 + pub mod get_os; 7 + pub mod get_user_photos_path; 10 8 pub mod load_photo_meta; 11 - pub mod change_final_path; 12 - pub mod delete_photo; 9 + pub mod load_photos; 10 + pub mod open_folder; 11 + pub mod open_url; 13 12 pub mod relaunch; 14 - pub mod config; 15 - pub mod get_os; 13 + pub mod start_user_auth; 14 + pub mod start_with_win; 15 + pub mod sync_photos;
+1 -1
src-tauri/src/frontend_calls/open_folder.rs
··· 6 6 .arg(format!("/select,{}", url)) 7 7 .spawn() 8 8 .unwrap(); 9 - } 9 + }
+2 -2
src-tauri/src/frontend_calls/open_url.rs
··· 1 1 #[tauri::command] 2 2 pub fn open_url(url: &str) { 3 - if url.starts_with("https://"){ 3 + if url.starts_with("https://") { 4 4 open::that(url).unwrap(); 5 5 } 6 - } 6 + }
+5 -4
src-tauri/src/frontend_calls/relaunch.rs
··· 1 - use std::process::{ self, Command }; 1 + use std::process::{self, Command}; 2 2 3 3 #[tauri::command] 4 4 pub fn relaunch() { 5 - #[cfg(windows)]{ 5 + #[cfg(windows)] 6 + { 6 7 let container_folder = dirs::config_dir() 7 8 .unwrap() 8 9 .join("PhazeDev/VRChatPhotoManager"); ··· 10 11 let mut cmd = Command::new(&container_folder.join("./vrchat-photo-manager.exe")); 11 12 cmd.current_dir(container_folder); 12 13 cmd.spawn().expect("Cannot run updater"); 13 - 14 + 14 15 process::exit(0); 15 16 } 16 - } 17 + }
+1 -1
src-tauri/src/frontend_calls/start_user_auth.rs
··· 1 1 #[tauri::command] 2 2 pub fn start_user_auth() { 3 3 open::that("https://photos.phazed.xyz/api/v1/auth").unwrap(); 4 - } 4 + }
+5 -3
src-tauri/src/frontend_calls/start_with_win.rs
··· 1 - use std::{ thread, fs }; 1 + use std::{fs, thread}; 2 2 3 3 #[cfg(windows)] 4 4 use mslnk::ShellLink; ··· 25 25 Err(_) => {} 26 26 } 27 27 } else { 28 - let lnk = dirs::home_dir().unwrap().join("AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/VRChat Photo Manager.lnk"); 28 + let lnk = dirs::home_dir().unwrap().join( 29 + "AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/VRChat Photo Manager.lnk", 30 + ); 29 31 fs::remove_file(lnk).unwrap(); 30 32 } 31 33 }); 32 34 } else { 33 35 panic!("Cannot start with windows... on not windows..."); 34 36 } 35 - } 37 + }
+2 -2
src-tauri/src/frontend_calls/sync_photos.rs
··· 1 1 use crate::photosync; 2 - use std::thread; 3 2 use crate::util::get_photo_path::get_photo_path; 3 + use std::thread; 4 4 5 5 // On requested sync the photos to the cloud 6 6 #[tauri::command] ··· 8 8 thread::spawn(move || { 9 9 photosync::sync_photos(token, get_photo_path(), window); 10 10 }); 11 - } 11 + }
+37 -17
src-tauri/src/main.rs
··· 1 1 #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] 2 2 3 + mod frontend_calls; 3 4 mod photosync; 4 5 mod pngmeta; 5 - mod worldscraper; 6 - mod frontend_calls; 7 6 mod util; 7 + mod worldscraper; 8 8 9 9 use core::time; 10 10 use frontend_calls::*; ··· 12 12 use notify::{EventKind, RecursiveMode, Watcher}; 13 13 use pngmeta::PNGImage; 14 14 use regex::Regex; 15 - use std::{ env, fs, thread, }; 16 - use tauri::{ Emitter, Manager, WindowEvent }; 15 + use util::handle_deeplink; 16 + use std::{env, fs, thread}; 17 + use tauri::{Emitter, Manager, WindowEvent}; 18 + use tauri_plugin_deep_link::DeepLinkExt; 17 19 18 20 // TODO: Linux support 19 21 20 22 fn main() { 21 - tauri_plugin_deep_link::prepare("uk.phaz.vrcpm"); 22 - 23 23 // Double check the app has an install directory 24 24 let container_folder = dirs::config_dir() 25 25 .unwrap() ··· 32 32 } 33 33 } 34 34 Err(_) => { 35 + let folder = dirs::config_dir().unwrap(); 36 + match fs::metadata(&folder) { 37 + Ok(meta) => { 38 + if meta.is_file() { 39 + panic!("Cannot launch app as the container path is a file not a directory"); 40 + } 41 + } 42 + Err(_) => { 43 + fs::create_dir(&folder).unwrap(); 44 + } 45 + } 46 + 35 47 let phaz_folder = dirs::config_dir().unwrap().join("PhazeDev"); 36 48 match fs::metadata(&phaz_folder) { 37 49 Ok(meta) => { ··· 113 125 }).unwrap(); 114 126 115 127 watcher 116 - .watch(&util::get_photo_path::get_photo_path(), RecursiveMode::Recursive) 128 + .watch( 129 + &util::get_photo_path::get_photo_path(), 130 + RecursiveMode::Recursive, 131 + ) 117 132 .unwrap(); 118 133 119 134 tauri::Builder::default() 135 + .plugin(tauri_plugin_single_instance::init(| app, argv, _cwd | { 136 + app.get_webview_window("main").unwrap().show().unwrap(); 137 + util::handle_deeplink::handle_deeplink(argv[1].clone(), app); 138 + })) 139 + .plugin(tauri_plugin_deep_link::init()) 120 140 .plugin(tauri_plugin_process::init()) 121 141 .plugin(tauri_plugin_http::init()) 122 142 .plugin(tauri_plugin_shell::init()) 123 - .register_asynchronous_uri_scheme_protocol("photo", | _ctx, req, res | { 143 + .register_asynchronous_uri_scheme_protocol("photo", |_ctx, req, res| { 124 144 util::handle_uri_proto::handle_uri_proto(req, res); 125 145 }) 126 146 .on_window_event(|window, event| match event { 127 - WindowEvent::CloseRequested { api, .. } => { 128 - window.hide().unwrap(); 129 - api.prevent_close(); 130 - } 131 - _ => {} 147 + WindowEvent::CloseRequested { api, .. } => { 148 + window.hide().unwrap(); 149 + api.prevent_close(); 150 + } 151 + _ => {} 132 152 }) 133 153 .setup(|app| { 134 154 let handle = app.handle(); 135 155 156 + app.deep_link().register("vrcpm").unwrap(); 136 157 util::setup_traymenu::setup_traymenu(handle); 137 - util::setup_deeplink::setup_deeplink(handle); 138 158 139 - // I hate this approach but i have no clue how else to do this... 140 - // reads the mpsc channel and sends the events to the frontend 159 + // reads the file update mpsc channel and sends the events to the frontend 141 160 let window = app.get_webview_window("main").unwrap(); 142 161 thread::spawn(move || { 143 162 thread::sleep(time::Duration::from_millis(100)); ··· 166 185 open_url::open_url, 167 186 open_folder::open_folder, 168 187 find_world_by_id::find_world_by_id, 169 - #[cfg(windows)] start_with_win::start_with_win, 188 + #[cfg(windows)] 189 + start_with_win::start_with_win, 170 190 get_user_photos_path::get_user_photos_path, 171 191 change_final_path::change_final_path, 172 192 sync_photos::sync_photos,
+33 -36
src-tauri/src/photosync.rs
··· 109 109 let folder_name = photo.clone().replace("VRChat_", ""); 110 110 let mut folder_name = folder_name.split("-"); 111 111 let folder_name = format!( 112 - "{}-{}", 113 - folder_name.nth(0).unwrap(), 114 - folder_name.nth(0).unwrap() 112 + "{}-{}", 113 + folder_name.nth(0).unwrap(), 114 + folder_name.nth(0).unwrap() 115 115 ); 116 116 117 117 let full_path = format!("{}\\{}\\{}", path.to_str().unwrap(), folder_name, photo); 118 118 let file = fs::File::open(full_path); 119 119 120 120 match file { 121 - Ok(file) => { 122 - let res = client 123 - .put(format!( 124 - "https://photos-cdn.phazed.xyz/api/v1/photos?token={}", 125 - &token 126 - )) 127 - .header("Content-Type", "image/png") 128 - .header("filename", photo) 129 - .body(file) 130 - .timeout(Duration::from_secs(120)) 131 - .send() 132 - .unwrap() 133 - .text() 134 - .unwrap(); 121 + Ok(file) => { 122 + let res = client 123 + .put(format!( 124 + "https://photos-cdn.phazed.xyz/api/v1/photos?token={}", 125 + &token 126 + )) 127 + .header("Content-Type", "image/png") 128 + .header("filename", photo) 129 + .body(file) 130 + .timeout(Duration::from_secs(120)) 131 + .send() 132 + .unwrap() 133 + .text() 134 + .unwrap(); 135 135 136 - let res: Result<Value, Error> = serde_json::from_str(&res); 136 + let res: Result<Value, Error> = serde_json::from_str(&res); 137 137 138 - match res { 139 - Ok(res) => { 140 - if !res["ok"].as_bool().unwrap() { 141 - println!( 142 - "Failed to upload: {}", 143 - res["error"].as_str().unwrap() 144 - ); 138 + match res { 139 + Ok(res) => { 140 + if !res["ok"].as_bool().unwrap() { 141 + println!("Failed to upload: {}", res["error"].as_str().unwrap()); 145 142 146 - window 147 - .emit("sync-failed", res["error"].as_str().unwrap()) 148 - .unwrap(); 143 + window 144 + .emit("sync-failed", res["error"].as_str().unwrap()) 145 + .unwrap(); 149 146 150 - break; 151 - } 152 - } 153 - Err(err) => { 154 - dbg!(err); 155 - } 147 + break; 156 148 } 149 + } 150 + Err(err) => { 151 + dbg!(err); 152 + } 157 153 } 158 - Err(_) => {} 154 + } 155 + Err(_) => {} 159 156 } 160 157 161 158 photos_left -= 1; ··· 252 249 .unwrap(); 253 250 } 254 251 None => { 255 - break; 252 + break; 256 253 } 257 254 } 258 255 }
+3 -8
src-tauri/src/pngmeta.rs
··· 53 53 54 54 match chunk_type { 55 55 "IHDR" => { 56 - self.width = 57 - u32::from_le_bytes([data_buff[11], data_buff[10], data_buff[9], data_buff[8]]); 56 + self.width = u32::from_le_bytes([data_buff[11], data_buff[10], data_buff[9], data_buff[8]]); 58 57 59 - self.height = u32::from_le_bytes([ 60 - data_buff[15], 61 - data_buff[14], 62 - data_buff[13], 63 - data_buff[12], 64 - ]); 58 + self.height = 59 + u32::from_le_bytes([data_buff[15], data_buff[14], data_buff[13], data_buff[12]]); 65 60 66 61 self.bit_depth = data_buff[16]; 67 62 self.colour_type = data_buff[17];
+9 -5
src-tauri/src/util/check_updates.rs
··· 1 - use std::{ env, fs, path, process::{ self, Command }, thread, time::Duration }; 2 1 use crate::util; 2 + use std::{ 3 + env, fs, path, 4 + process::{self, Command}, 5 + thread, 6 + time::Duration, 7 + }; 3 8 4 - pub fn check_updates( container_folder: path::PathBuf ){ 9 + pub fn check_updates(container_folder: path::PathBuf) { 5 10 let args: Vec<String> = env::args().collect(); 6 11 7 12 let mut update = true; ··· 35 40 .bytes() 36 41 .unwrap(); 37 42 38 - fs::write(&container_folder.join("./updater.exe"), latest_installer) 39 - .unwrap(); 43 + fs::write(&container_folder.join("./updater.exe"), latest_installer).unwrap(); 40 44 } 41 45 } 42 46 ··· 48 52 } 49 53 }); 50 54 } 51 - } 55 + }
+5 -16
src-tauri/src/util/get_photo_path.rs
··· 1 - use std::{ fs, path }; 1 + use std::{fs, path}; 2 2 3 3 pub fn get_photo_path() -> path::PathBuf { 4 4 let config_path = dirs::config_dir() 5 5 .unwrap() 6 6 .join("PhazeDev/VRChatPhotoManager/.photos_path"); 7 7 8 + dbg!(&config_path); 9 + 8 10 match fs::read_to_string(config_path) { 9 - Ok(path) => { 10 - if path 11 - != dirs::picture_dir() 12 - .unwrap() 13 - .join("VRChat") 14 - .to_str() 15 - .unwrap() 16 - .to_owned() 17 - { 18 - path::PathBuf::from(path) 19 - } else { 20 - dirs::picture_dir().unwrap().join("VRChat") 21 - } 22 - } 11 + Ok(path) => path::PathBuf::from(path), 23 12 Err(_) => dirs::picture_dir().unwrap().join("VRChat"), 24 13 } 25 - } 14 + }
+1 -1
src-tauri/src/util/get_version.rs
··· 3 3 #[tauri::command] 4 4 pub fn get_version() -> String { 5 5 String::from(VERSION) 6 - } 6 + }
+22
src-tauri/src/util/handle_deeplink.rs
··· 1 + use tauri::{ AppHandle, Emitter }; 2 + 3 + pub fn handle_deeplink( url: String, handle: &AppHandle ) { 4 + let mut command: u8 = 0; 5 + let mut index: u8 = 0; 6 + 7 + for part in url.split('/').into_iter() { 8 + index += 1; 9 + 10 + if index == 3 && part == "auth-callback" { 11 + command = 1; 12 + } 13 + 14 + if index == 3 && part == "auth-denied" { 15 + handle.emit("auth-denied", "null").unwrap(); 16 + } 17 + 18 + if index == 4 && command == 1 { 19 + handle.emit("auth-callback", part).unwrap(); 20 + } 21 + } 22 + }
+56 -40
src-tauri/src/util/handle_uri_proto.rs
··· 1 - use std::{ fs, io::{ BufReader, Read }, thread }; 2 - use fast_image_resize::{ images::Image, IntoImageView, ResizeOptions, Resizer }; 3 - use image::{ codecs::png::{ PngDecoder, PngEncoder }, DynamicImage, ImageEncoder }; 4 - use tauri::{ http::{ Request, Response }, UriSchemeResponder }; 1 + use fast_image_resize::{images::Image, IntoImageView, ResizeOptions, Resizer}; 2 + use image::{ 3 + codecs::png::{PngDecoder, PngEncoder}, 4 + DynamicImage, ImageEncoder, 5 + }; 6 + use std::{ 7 + fs, 8 + io::{BufReader, Read}, 9 + thread, 10 + }; 11 + use tauri::{ 12 + http::{Request, Response}, 13 + UriSchemeResponder, 14 + }; 5 15 6 - pub fn handle_uri_proto( request: Request<Vec<u8>>, responder: UriSchemeResponder ){ 16 + pub fn handle_uri_proto(request: Request<Vec<u8>>, responder: UriSchemeResponder) { 7 17 thread::spawn(move || { 8 18 // Loads the requested image file, sends data back to the user 9 19 let uri = request.uri(); ··· 35 45 let file = fs::File::open(path); 36 46 37 47 match file { 38 - Ok(mut file) => { 39 - match uri.query().unwrap(){ 40 - "downscale" => { 41 - let decoder = PngDecoder::new(BufReader::new(&file)).unwrap(); 42 - let src_image = DynamicImage::from_decoder(decoder).unwrap(); 48 + Ok(mut file) => match uri.query().unwrap() { 49 + "downscale" => { 50 + let decoder = PngDecoder::new(BufReader::new(&file)).unwrap(); 51 + let src_image = DynamicImage::from_decoder(decoder).unwrap(); 43 52 44 - let size_multiplier: f32 = 200.0 / src_image.height() as f32; 53 + let size_multiplier: f32 = 200.0 / src_image.height() as f32; 45 54 46 - let dst_width = (src_image.width() as f32 * size_multiplier).floor() as u32; 47 - let dst_height: u32 = 200; 55 + let dst_width = (src_image.width() as f32 * size_multiplier).floor() as u32; 56 + let dst_height: u32 = 200; 48 57 49 - let mut dst_image = Image::new(dst_width, dst_height, src_image.pixel_type().unwrap()); 50 - let mut resizer = Resizer::new(); 58 + let mut dst_image = Image::new(dst_width, dst_height, src_image.pixel_type().unwrap()); 59 + let mut resizer = Resizer::new(); 51 60 52 - let opts = ResizeOptions::new() 53 - .resize_alg(fast_image_resize::ResizeAlg::Nearest); 61 + let opts = ResizeOptions::new().resize_alg(fast_image_resize::ResizeAlg::Nearest); 54 62 55 - resizer.resize(&src_image, &mut dst_image, Some(&opts)).unwrap(); 63 + resizer 64 + .resize(&src_image, &mut dst_image, Some(&opts)) 65 + .unwrap(); 56 66 57 - let mut buf = Vec::new(); 58 - let encoder = PngEncoder::new(&mut buf); 67 + let mut buf = Vec::new(); 68 + let encoder = PngEncoder::new(&mut buf); 59 69 60 - encoder.write_image(dst_image.buffer(), dst_width, dst_height, src_image.color().into()).unwrap(); 70 + encoder 71 + .write_image( 72 + dst_image.buffer(), 73 + dst_width, 74 + dst_height, 75 + src_image.color().into(), 76 + ) 77 + .unwrap(); 61 78 62 - let res = Response::builder() 63 - .status(200) 64 - .header("Access-Control-Allow-Origin", "*") 65 - .body(buf) 66 - .unwrap(); 79 + let res = Response::builder() 80 + .status(200) 81 + .header("Access-Control-Allow-Origin", "*") 82 + .body(buf) 83 + .unwrap(); 67 84 68 - responder.respond(res); 69 - }, 70 - _ => { 71 - let mut buf = Vec::new(); 72 - file.read_to_end(&mut buf).unwrap(); 85 + responder.respond(res); 86 + } 87 + _ => { 88 + let mut buf = Vec::new(); 89 + file.read_to_end(&mut buf).unwrap(); 73 90 74 - let res = Response::builder() 75 - .status(200) 76 - .header("Access-Control-Allow-Origin", "*") 77 - .body(buf) 78 - .unwrap(); 91 + let res = Response::builder() 92 + .status(200) 93 + .header("Access-Control-Allow-Origin", "*") 94 + .body(buf) 95 + .unwrap(); 79 96 80 - responder.respond(res); 81 - } 97 + responder.respond(res); 82 98 } 83 - } 99 + }, 84 100 Err(_) => { 85 101 responder.respond( 86 102 Response::builder() ··· 92 108 } 93 109 } 94 110 }); 95 - } 111 + }
+3 -3
src-tauri/src/util/mod.rs
··· 1 + pub mod check_updates; 1 2 pub mod get_photo_path; 2 3 pub mod get_version; 3 - pub mod check_updates; 4 + pub mod handle_uri_proto; 5 + pub mod handle_deeplink; 4 6 pub mod setup_traymenu; 5 - pub mod setup_deeplink; 6 - pub mod handle_uri_proto;
-28
src-tauri/src/util/setup_deeplink.rs
··· 1 - use tauri::{ AppHandle, Emitter }; 2 - 3 - pub fn setup_deeplink( handle: &AppHandle ){ 4 - let handle = handle.clone(); 5 - 6 - // Register "deep link" for authentication via vrcpm:// 7 - tauri_plugin_deep_link::register("vrcpm", move |request| { 8 - let mut command: u8 = 0; 9 - let mut index: u8 = 0; 10 - 11 - for part in request.split('/').into_iter() { 12 - index += 1; 13 - 14 - if index == 3 && part == "auth-callback" { 15 - command = 1; 16 - } 17 - 18 - if index == 3 && part == "auth-denied" { 19 - handle.emit("auth-denied", "null").unwrap(); 20 - } 21 - 22 - if index == 4 && command == 1 { 23 - handle.emit("auth-callback", part).unwrap(); 24 - } 25 - } 26 - }) 27 - .unwrap(); 28 - }
+23 -19
src-tauri/src/util/setup_traymenu.rs
··· 1 - use tauri::{ menu::{ MenuBuilder, MenuItemBuilder }, tray::{MouseButton, MouseButtonState, TrayIconBuilder, TrayIconEvent}, AppHandle, Manager, Emitter }; 1 + use tauri::{ 2 + menu::{MenuBuilder, MenuItemBuilder}, 3 + tray::{MouseButton, MouseButtonState, TrayIconBuilder, TrayIconEvent}, 4 + AppHandle, Emitter, Manager, 5 + }; 2 6 3 7 #[derive(serde::Serialize, Clone)] 4 - struct EmptyEvent{} 8 + struct EmptyEvent {} 5 9 6 - pub fn setup_traymenu( handle: &AppHandle ){ 10 + pub fn setup_traymenu(handle: &AppHandle) { 7 11 // Setup the tray icon and menu buttons 8 12 let quit = MenuItemBuilder::new("Quit") 9 13 .id("quit") ··· 24 28 .icon(tauri::image::Image::from_bytes(include_bytes!("../../icons/32x32.png")).unwrap()) 25 29 .menu(&tray_menu) 26 30 .on_menu_event(move |app: &AppHandle, event| match event.id().as_ref() { 27 - "quit" => { 28 - std::process::exit(0); 29 - } 30 - "hide" => { 31 - let window = app.get_webview_window("main").unwrap(); 31 + "quit" => { 32 + std::process::exit(0); 33 + } 34 + "hide" => { 35 + let window = app.get_webview_window("main").unwrap(); 32 36 33 - if window.is_visible().unwrap() { 34 - window.hide().unwrap(); 37 + if window.is_visible().unwrap() { 38 + window.hide().unwrap(); 35 39 36 - window.emit("hide-window", EmptyEvent {}).unwrap(); 37 - } else { 38 - window.show().unwrap(); 39 - window.set_focus().unwrap(); 40 + window.emit("hide-window", EmptyEvent {}).unwrap(); 41 + } else { 42 + window.show().unwrap(); 43 + window.set_focus().unwrap(); 40 44 41 - window.emit("show-window", EmptyEvent {}).unwrap(); 42 - } 45 + window.emit("show-window", EmptyEvent {}).unwrap(); 43 46 } 44 - _ => {} 47 + } 48 + _ => {} 45 49 }) 46 50 .on_tray_icon_event(|tray, event| { 47 51 if let TrayIconEvent::Click { 48 52 button: MouseButton::Left, 49 53 button_state: MouseButtonState::Up, 50 - .. 54 + .. 51 55 } = event 52 56 { 53 57 let window = tray.app_handle().get_webview_window("main").unwrap(); ··· 60 64 }) 61 65 .build(handle) 62 66 .unwrap(); 63 - } 67 + }
+20 -1
src/Components/PhotoList.tsx
··· 397 397 398 398 reloadFilters(); 399 399 400 - console.log(amountLoaded, photos.length); 401 400 if(amountLoaded === photos.length && !hasFirstLoaded){ 402 401 filteredPhotos = photos; 403 402 hasFirstLoaded = true; ··· 482 481 props.setPhotoSize(event.payload.size); 483 482 484 483 let doesHaveLegacy = false; 484 + 485 + if(photoPaths.length === 0){ 486 + anime({ 487 + targets: photoTreeLoadingContainer, 488 + height: 0, 489 + easing: 'easeInOutQuad', 490 + duration: 500, 491 + opacity: 0, 492 + complete: () => { 493 + photoTreeLoadingContainer.style.display = 'none'; 494 + } 495 + }) 496 + 497 + anime({ 498 + targets: '.reload-photos', 499 + opacity: 1, 500 + duration: 150, 501 + easing: 'easeInOutQuad' 502 + }) 503 + } 485 504 486 505 photoPaths.forEach(( path: string ) => { 487 506 let photo
+22
vite.config.ts.timestamp-1732900951768-804abb3ebfb15.mjs
··· 1 + // vite.config.ts 2 + import { defineConfig } from "file:///C:/Users/Liam/Documents/Projects/vrcpm-rs/node_modules/.pnpm/vite@5.4.9/node_modules/vite/dist/node/index.js"; 3 + import solid from "file:///C:/Users/Liam/Documents/Projects/vrcpm-rs/node_modules/.pnpm/vite-plugin-solid@2.10.2_solid-js@1.9.2_vite@5.4.9/node_modules/vite-plugin-solid/dist/esm/index.mjs"; 4 + var vite_config_default = defineConfig(async () => ({ 5 + plugins: [solid()], 6 + // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` 7 + // 8 + // 1. prevent vite from obscuring rust errors 9 + clearScreen: false, 10 + // 2. tauri expects a fixed port, fail if that port is not available 11 + server: { 12 + port: 1420, 13 + strictPort: true, 14 + watch: { 15 + ignored: ["src-tauri/**"] 16 + } 17 + } 18 + })); 19 + export { 20 + vite_config_default as default 21 + }; 22 + //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJDOlxcXFxVc2Vyc1xcXFxMaWFtXFxcXERvY3VtZW50c1xcXFxQcm9qZWN0c1xcXFx2cmNwbS1yc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiQzpcXFxcVXNlcnNcXFxcTGlhbVxcXFxEb2N1bWVudHNcXFxcUHJvamVjdHNcXFxcdnJjcG0tcnNcXFxcdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0M6L1VzZXJzL0xpYW0vRG9jdW1lbnRzL1Byb2plY3RzL3ZyY3BtLXJzL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVcIjtcclxuaW1wb3J0IHNvbGlkIGZyb20gXCJ2aXRlLXBsdWdpbi1zb2xpZFwiO1xyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKGFzeW5jICgpID0+ICh7XHJcbiAgcGx1Z2luczogW3NvbGlkKCldLFxyXG5cclxuICAvLyBWaXRlIG9wdGlvbnMgdGFpbG9yZWQgZm9yIFRhdXJpIGRldmVsb3BtZW50IGFuZCBvbmx5IGFwcGxpZWQgaW4gYHRhdXJpIGRldmAgb3IgYHRhdXJpIGJ1aWxkYFxyXG4gIC8vXHJcbiAgLy8gMS4gcHJldmVudCB2aXRlIGZyb20gb2JzY3VyaW5nIHJ1c3QgZXJyb3JzXHJcbiAgY2xlYXJTY3JlZW46IGZhbHNlLFxyXG4gIC8vIDIuIHRhdXJpIGV4cGVjdHMgYSBmaXhlZCBwb3J0LCBmYWlsIGlmIHRoYXQgcG9ydCBpcyBub3QgYXZhaWxhYmxlXHJcbiAgc2VydmVyOiB7XHJcbiAgICBwb3J0OiAxNDIwLFxyXG4gICAgc3RyaWN0UG9ydDogdHJ1ZSxcclxuICAgIHdhdGNoOiB7XHJcbiAgICAgIGlnbm9yZWQ6IFsgJ3NyYy10YXVyaS8qKicgXVxyXG4gICAgfVxyXG4gIH1cclxufSkpO1xyXG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQXlULFNBQVMsb0JBQW9CO0FBQ3RWLE9BQU8sV0FBVztBQUdsQixJQUFPLHNCQUFRLGFBQWEsYUFBYTtBQUFBLEVBQ3ZDLFNBQVMsQ0FBQyxNQUFNLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtqQixhQUFhO0FBQUE7QUFBQSxFQUViLFFBQVE7QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLFlBQVk7QUFBQSxJQUNaLE9BQU87QUFBQSxNQUNMLFNBQVMsQ0FBRSxjQUFlO0FBQUEsSUFDNUI7QUFBQSxFQUNGO0FBQ0YsRUFBRTsiLAogICJuYW1lcyI6IFtdCn0K