A photo manager for VRChat.

preparing for v0.1.8

+1
README.md
··· 23 23 24 24 Support for: 25 25 - Files with VRCX metadata ![image](https://github.com/phaze-the-dumb/VRChat-Photo-Manager-Rust/assets/57566773/06f44b67-083f-487e-b8b4-84c87d07604f) 26 + - Fetches world information from [VRCList](https://vrclist.com) 26 27 - Cloud backups ![image](https://github.com/phaze-the-dumb/VRChat-Photo-Manager-Rust/assets/57566773/db703c66-09cc-4120-9ba6-81fe3ef8c87d) 27 28 - And much more in the works!
+5 -1
changelog
··· 12 12 13 13 v0.1.7: 14 14 - Fixed the control icons do they actually do what they're supposed to do 15 - - Fixed window not focusing when opening from tray 15 + - Fixed window not focusing when opening from tray 16 + 17 + v0.1.8: 18 + - Migrate to tauri v2 19 + - Photo loading is slightly faster
+5 -2
package.json
··· 12 12 }, 13 13 "license": "MIT", 14 14 "dependencies": { 15 - "@tauri-apps/api": "^1.5.2", 15 + "@tauri-apps/api": "2.0.0-rc.0", 16 + "@tauri-apps/plugin-http": "2.0.0-rc.1", 17 + "@tauri-apps/plugin-process": "2.0.0-rc.0", 18 + "@tauri-apps/plugin-shell": "2.0.0-rc.0", 16 19 "@types/animejs": "^3.1.12", 17 20 "animejs": "^3.2.2", 18 21 "solid-js": "^1.7.8" 19 22 }, 20 23 "devDependencies": { 21 - "@tauri-apps/cli": "^1.5.8", 24 + "@tauri-apps/cli": "2.0.0-rc.5", 22 25 "typescript": "^5.0.2", 23 26 "vite": "^5.0.0", 24 27 "vite-plugin-solid": "^2.8.0"
+70 -39
pnpm-lock.yaml
··· 6 6 7 7 dependencies: 8 8 '@tauri-apps/api': 9 - specifier: ^1.5.2 10 - version: 1.5.2 9 + specifier: 2.0.0-rc.0 10 + version: 2.0.0-rc.0 11 + '@tauri-apps/plugin-http': 12 + specifier: 2.0.0-rc.1 13 + version: 2.0.0-rc.1 14 + '@tauri-apps/plugin-process': 15 + specifier: 2.0.0-rc.0 16 + version: 2.0.0-rc.0 17 + '@tauri-apps/plugin-shell': 18 + specifier: 2.0.0-rc.0 19 + version: 2.0.0-rc.0 11 20 '@types/animejs': 12 21 specifier: ^3.1.12 13 22 version: 3.1.12 ··· 20 29 21 30 devDependencies: 22 31 '@tauri-apps/cli': 23 - specifier: ^1.5.8 24 - version: 1.5.8 32 + specifier: 2.0.0-rc.5 33 + version: 2.0.0-rc.5 25 34 typescript: 26 35 specifier: ^5.0.2 27 36 version: 5.0.2 ··· 703 712 dev: true 704 713 optional: true 705 714 706 - /@tauri-apps/api@1.5.2: 707 - resolution: {integrity: sha512-tZK3XJiIUnUdHN7rGqA+j57dvT3/7z2bEiPfWmO3uAymv2JMBJrfGwbyDWLjGue37UVhh0gLYSkA9wV+/bASwA==} 708 - engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} 715 + /@tauri-apps/api@2.0.0-rc.0: 716 + resolution: {integrity: sha512-v454Qs3REHc3Za59U+/eSmBsdmF+3NE5+76+lFDaitVqN4ZglDHENDaMARYKGJVZuxiSkzyqG0SeG7lLQjVkPA==} 717 + engines: {node: '>= 18.18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} 709 718 dev: false 710 719 711 - /@tauri-apps/cli-darwin-arm64@1.5.8: 712 - resolution: {integrity: sha512-/AksDWfAt3NUSt8Rq2a3gTLASChKzldPVUjmJhcbtsuzFg2nx5g+hhOHxfBYzss2Te1K5mzlu+73LAMy1Sb9Gw==} 720 + /@tauri-apps/api@2.0.0-rc.2: 721 + resolution: {integrity: sha512-qIJJ1gKkzpPmEmIGTpja6XhuCD8A+vEh/wKaO7TzbxKiws5w3E+Kg4sBtwrH85hjMyqT0SgAUVaUk9XS7FBg3g==} 722 + dev: false 723 + 724 + /@tauri-apps/cli-darwin-arm64@2.0.0-rc.5: 725 + resolution: {integrity: sha512-EoduJ5SeMfBKCe7I291JBH+lkrf2E0+mQF1rP+Jq4CjWPer11OeEcUSFtHURB3Z3ItzObQ7ALPulMGhMe6E9rg==} 713 726 engines: {node: '>= 10'} 714 727 cpu: [arm64] 715 728 os: [darwin] ··· 717 730 dev: true 718 731 optional: true 719 732 720 - /@tauri-apps/cli-darwin-x64@1.5.8: 721 - resolution: {integrity: sha512-gcfSh+BFRDdbIGpggZ1+5R5SgToz2A9LthH8P4ak3OHagDzDvI6ov6zy2UQE3XDWJKdnlna2rSR1dIuRZ0T9bA==} 733 + /@tauri-apps/cli-darwin-x64@2.0.0-rc.5: 734 + resolution: {integrity: sha512-GdphvNgQWAbVGoD6e2Z5auWFXBcmmbhiwf9UNoKpBQPLfFO6EEJHjXbACr/hAZsqT0nNpZLRoh/5v5HGTmU0XQ==} 722 735 engines: {node: '>= 10'} 723 736 cpu: [x64] 724 737 os: [darwin] ··· 726 739 dev: true 727 740 optional: true 728 741 729 - /@tauri-apps/cli-linux-arm-gnueabihf@1.5.8: 730 - resolution: {integrity: sha512-ZHQYuOBGvZubPnh5n8bNaN2VMxPBZWs26960FGQWamm9569UV/TNDHb6mD0Jjk9o0f9P+f98qNhuu5Y37P+vfQ==} 742 + /@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.5: 743 + resolution: {integrity: sha512-S47KwAfyRsO2qTqSoadHP4a1cjO9kfQi4QWkoaDjb0BEETdrhPM94qp43cnKP7QWW+msOToMTdlks9HYlhRUww==} 731 744 engines: {node: '>= 10'} 732 745 cpu: [arm] 733 746 os: [linux] ··· 735 748 dev: true 736 749 optional: true 737 750 738 - /@tauri-apps/cli-linux-arm64-gnu@1.5.8: 739 - resolution: {integrity: sha512-FFs28Ew3R2EFPYKuyAIouTbp6YnR+shAmJGFNnVy7ibKHL0wxamVKqv1N5N9gUUr+EhbZu2syMBRfG9XQ5mgng==} 751 + /@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.5: 752 + resolution: {integrity: sha512-Ii9aP/24Rtlci5MaeSaqb6JOLt3cUBA4z4XmGz5VOLLZ+ntRxpfd3xNpLki04V2MOgbAu9BxLAp5UTzELc1/Rg==} 740 753 engines: {node: '>= 10'} 741 754 cpu: [arm64] 742 755 os: [linux] ··· 744 757 dev: true 745 758 optional: true 746 759 747 - /@tauri-apps/cli-linux-arm64-musl@1.5.8: 748 - resolution: {integrity: sha512-dEYvNyLMmWD0jb30FNfVPXmBq6OGg6is3km+4RlGg8tZU5Zvq78ClUZtaZuER+N/hv27+Uc6UHl9X3hin8cGGw==} 760 + /@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.5: 761 + resolution: {integrity: sha512-noV2sDusI+DsEHl0uMOZ04sQmj65Jo9yjfSg2iv1fnfjBYVbwi6Qj/MaCqyApXESQrpv1XZB3kYI+CkyPnjj2Q==} 749 762 engines: {node: '>= 10'} 750 763 cpu: [arm64] 751 764 os: [linux] ··· 753 766 dev: true 754 767 optional: true 755 768 756 - /@tauri-apps/cli-linux-x64-gnu@1.5.8: 757 - resolution: {integrity: sha512-ut3TDbtLXmZhz6Q4wim57PV02wG+AfuLSWRPhTL9MsPsg/E7Y6sJhv0bIMAq6SwC59RCH52ZGft6RH7samV2NQ==} 769 + /@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.5: 770 + resolution: {integrity: sha512-iTe9gKO+qgFRjU1sxBvbI8bIRbkOedWvFm/yh8RFi1iJcFwbVnsHWQ8z7BwoNMJLnL2dseZgrGntmS5n9/xSSQ==} 758 771 engines: {node: '>= 10'} 759 772 cpu: [x64] 760 773 os: [linux] ··· 762 775 dev: true 763 776 optional: true 764 777 765 - /@tauri-apps/cli-linux-x64-musl@1.5.8: 766 - resolution: {integrity: sha512-k6ei7ETXVZlNpFOhl/8Cnj709UbEr+VuY9xKK/HgwvNfjA5f8HQ9TSKk/Um7oeT1Y61/eEcvcgF/hDURhFJDPQ==} 778 + /@tauri-apps/cli-linux-x64-musl@2.0.0-rc.5: 779 + resolution: {integrity: sha512-R7EyfvfdMtRAKC3QxPn5jVGEH56R4g6hSnR5xXkFnEpioND7SNru5UMBGgseGJ22h/hdjFfqS2vc19291gkVsg==} 767 780 engines: {node: '>= 10'} 768 781 cpu: [x64] 769 782 os: [linux] ··· 771 784 dev: true 772 785 optional: true 773 786 774 - /@tauri-apps/cli-win32-arm64-msvc@1.5.8: 775 - resolution: {integrity: sha512-l6zm31x1inkS2K5e7otUZ90XBoK+xr2KJObFCZbzmluBE+LM0fgIXCrj7xwH/f0RCUX3VY9HHx4EIo7eLGBXKQ==} 787 + /@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.5: 788 + resolution: {integrity: sha512-EE7CF//hMWsVZpu9IWXGLDDdMhAiNfHwfLnW4Na1INHKBBb/ynhOd4gKRC3Mi/kgcMfXJAq0nBJFw1mal1q7jg==} 776 789 engines: {node: '>= 10'} 777 790 cpu: [arm64] 778 791 os: [win32] ··· 780 793 dev: true 781 794 optional: true 782 795 783 - /@tauri-apps/cli-win32-ia32-msvc@1.5.8: 784 - resolution: {integrity: sha512-0k3YpWl6PKV4Qp2N52Sb45egXafSgQXcBaO7TIJG4EDfaEf5f6StN+hYSzdnrq9idrK5x9DDCPuebZTuJ+Q8EA==} 796 + /@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.5: 797 + resolution: {integrity: sha512-zJosPEw1X1H9nTNsrYVSypRLdMLOiLAY8hlBrgsmw7dmN61lOMLyItWsbiAezYeKIpaFeADurR+5qMHHwzbqeg==} 785 798 engines: {node: '>= 10'} 786 799 cpu: [ia32] 787 800 os: [win32] ··· 789 802 dev: true 790 803 optional: true 791 804 792 - /@tauri-apps/cli-win32-x64-msvc@1.5.8: 793 - resolution: {integrity: sha512-XjBg8VMswmD9JAHKlb10NRPfBVAZoiOJBbPRte+GP1BUQtqDnbIYcOLSnUCmNZoy3fUBJuKJUBT9tDCbkMr5fQ==} 805 + /@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.5: 806 + resolution: {integrity: sha512-PqxbL/e6GraazdwEKN1oX33gYCRf0ns6yuaxHafHM5+Zsv0MZpyPTPLDot/JLKvNBefk6QXZn5fKAIETVtQaGg==} 794 807 engines: {node: '>= 10'} 795 808 cpu: [x64] 796 809 os: [win32] ··· 798 811 dev: true 799 812 optional: true 800 813 801 - /@tauri-apps/cli@1.5.8: 802 - resolution: {integrity: sha512-c/mzk5vjjfxtH5uNXSc9h1eiprsolnoBcUwAa4/SZ3gxJ176CwrUKODz3cZBOnzs8omwagwgSN/j7K8NrdFL9g==} 814 + /@tauri-apps/cli@2.0.0-rc.5: 815 + resolution: {integrity: sha512-JtFfJg8ZNOrj+S+8RKpcrNIcU5hw0X8JSNs2tUjQq0OZgqIGnRSILYjg7BaZDPEakQXUKsDEufbjbYVNJDIp8g==} 803 816 engines: {node: '>= 10'} 804 817 hasBin: true 805 818 optionalDependencies: 806 - '@tauri-apps/cli-darwin-arm64': 1.5.8 807 - '@tauri-apps/cli-darwin-x64': 1.5.8 808 - '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.8 809 - '@tauri-apps/cli-linux-arm64-gnu': 1.5.8 810 - '@tauri-apps/cli-linux-arm64-musl': 1.5.8 811 - '@tauri-apps/cli-linux-x64-gnu': 1.5.8 812 - '@tauri-apps/cli-linux-x64-musl': 1.5.8 813 - '@tauri-apps/cli-win32-arm64-msvc': 1.5.8 814 - '@tauri-apps/cli-win32-ia32-msvc': 1.5.8 815 - '@tauri-apps/cli-win32-x64-msvc': 1.5.8 819 + '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.5 820 + '@tauri-apps/cli-darwin-x64': 2.0.0-rc.5 821 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.5 822 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.5 823 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.5 824 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.5 825 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.5 826 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.5 827 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.5 828 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.5 816 829 dev: true 830 + 831 + /@tauri-apps/plugin-http@2.0.0-rc.1: 832 + resolution: {integrity: sha512-j4WdTEKx0CFa6u8ubke0mo75pCrnu6XtrFtvjsh+zjuNYgMG/l0+A1woWXHm73f2Levskhs+KbKcLQA/nr8k2w==} 833 + dependencies: 834 + '@tauri-apps/api': 2.0.0-rc.2 835 + dev: false 836 + 837 + /@tauri-apps/plugin-process@2.0.0-rc.0: 838 + resolution: {integrity: sha512-Z12D/kmQzG1vCVf+jLXPhPDUA0pEjFrsg4p0uwO2sotVLM9287IuTM+aIz9cuAYOxFLKcsnDG7amSCL9IfA1gw==} 839 + dependencies: 840 + '@tauri-apps/api': 2.0.0-rc.0 841 + dev: false 842 + 843 + /@tauri-apps/plugin-shell@2.0.0-rc.0: 844 + resolution: {integrity: sha512-bhUcQcrqZoK8H1DFXapr5r1Z75oh6Kd5Tltz97XpZFLREEqp+KhN2Fvyh8r/fKAyenYsTYUIsDsyGdjdueuF9g==} 845 + dependencies: 846 + '@tauri-apps/api': 2.0.0-rc.0 847 + dev: false 817 848 818 849 /@types/animejs@3.1.12: 819 850 resolution: {integrity: sha512-fpdH+ZtlO0kqjTOqRaBdsEmvpRNOayI8k4EVkEtitL5l6wducDOXk0rgQgfZqWf/ZX9DzXrHf257S5i9xTcISQ==}
+1680 -1046
src-tauri/Cargo.lock
··· 4 4 5 5 [[package]] 6 6 name = "addr2line" 7 - version = "0.21.0" 7 + version = "0.22.0" 8 8 source = "registry+https://github.com/rust-lang/crates.io-index" 9 - checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" 9 + checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" 10 10 dependencies = [ 11 11 "gimli", 12 12 ] ··· 18 18 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 19 19 20 20 [[package]] 21 + name = "adler2" 22 + version = "2.0.0" 23 + source = "registry+https://github.com/rust-lang/crates.io-index" 24 + checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 25 + 26 + [[package]] 21 27 name = "aho-corasick" 22 - version = "1.1.2" 28 + version = "1.1.3" 23 29 source = "registry+https://github.com/rust-lang/crates.io-index" 24 - checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" 30 + checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 25 31 dependencies = [ 26 32 "memchr", 27 33 ] ··· 58 64 59 65 [[package]] 60 66 name = "anyhow" 61 - version = "1.0.79" 67 + version = "1.0.86" 62 68 source = "registry+https://github.com/rust-lang/crates.io-index" 63 - checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" 69 + checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" 64 70 65 71 [[package]] 66 72 name = "atk" 67 - version = "0.15.1" 73 + version = "0.18.0" 68 74 source = "registry+https://github.com/rust-lang/crates.io-index" 69 - checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" 75 + checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4" 70 76 dependencies = [ 71 77 "atk-sys", 72 - "bitflags 1.3.2", 73 78 "glib", 74 79 "libc", 75 80 ] 76 81 77 82 [[package]] 78 83 name = "atk-sys" 79 - version = "0.15.1" 84 + version = "0.18.0" 80 85 source = "registry+https://github.com/rust-lang/crates.io-index" 81 - checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" 86 + checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009" 82 87 dependencies = [ 83 88 "glib-sys", 84 89 "gobject-sys", 85 90 "libc", 86 - "system-deps 6.2.0", 91 + "system-deps", 87 92 ] 88 93 89 94 [[package]] 95 + name = "atomic-waker" 96 + version = "1.1.2" 97 + source = "registry+https://github.com/rust-lang/crates.io-index" 98 + checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 99 + 100 + [[package]] 90 101 name = "autocfg" 91 - version = "1.1.0" 102 + version = "1.3.0" 92 103 source = "registry+https://github.com/rust-lang/crates.io-index" 93 - checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 104 + checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" 94 105 95 106 [[package]] 96 107 name = "backtrace" 97 - version = "0.3.69" 108 + version = "0.3.73" 98 109 source = "registry+https://github.com/rust-lang/crates.io-index" 99 - checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" 110 + checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" 100 111 dependencies = [ 101 112 "addr2line", 102 113 "cc", 103 114 "cfg-if", 104 115 "libc", 105 - "miniz_oxide", 116 + "miniz_oxide 0.7.4", 106 117 "object", 107 118 "rustc-demangle", 108 119 ] 109 120 110 121 [[package]] 111 122 name = "base64" 112 - version = "0.13.1" 113 - source = "registry+https://github.com/rust-lang/crates.io-index" 114 - checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 115 - 116 - [[package]] 117 - name = "base64" 118 123 version = "0.21.7" 119 124 source = "registry+https://github.com/rust-lang/crates.io-index" 120 125 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 121 126 122 127 [[package]] 123 128 name = "base64" 124 - version = "0.22.0" 129 + version = "0.22.1" 125 130 source = "registry+https://github.com/rust-lang/crates.io-index" 126 - checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" 131 + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 127 132 128 133 [[package]] 129 134 name = "bitflags" ··· 133 138 134 139 [[package]] 135 140 name = "bitflags" 136 - version = "2.4.2" 141 + version = "2.6.0" 137 142 source = "registry+https://github.com/rust-lang/crates.io-index" 138 - checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" 143 + checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 144 + dependencies = [ 145 + "serde", 146 + ] 139 147 140 148 [[package]] 141 149 name = "block" ··· 153 161 ] 154 162 155 163 [[package]] 164 + name = "block2" 165 + version = "0.5.1" 166 + source = "registry+https://github.com/rust-lang/crates.io-index" 167 + checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" 168 + dependencies = [ 169 + "objc2 0.5.2", 170 + ] 171 + 172 + [[package]] 156 173 name = "brotli" 157 - version = "3.4.0" 174 + version = "6.0.0" 158 175 source = "registry+https://github.com/rust-lang/crates.io-index" 159 - checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" 176 + checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" 160 177 dependencies = [ 161 178 "alloc-no-stdlib", 162 179 "alloc-stdlib", ··· 165 182 166 183 [[package]] 167 184 name = "brotli-decompressor" 168 - version = "2.5.1" 185 + version = "4.0.1" 169 186 source = "registry+https://github.com/rust-lang/crates.io-index" 170 - checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" 187 + checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" 171 188 dependencies = [ 172 189 "alloc-no-stdlib", 173 190 "alloc-stdlib", 174 191 ] 175 192 176 193 [[package]] 177 - name = "bstr" 178 - version = "1.9.0" 179 - source = "registry+https://github.com/rust-lang/crates.io-index" 180 - checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" 181 - dependencies = [ 182 - "memchr", 183 - "serde", 184 - ] 185 - 186 - [[package]] 187 194 name = "bumpalo" 188 - version = "3.14.0" 195 + version = "3.16.0" 189 196 source = "registry+https://github.com/rust-lang/crates.io-index" 190 - checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" 197 + checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 191 198 192 199 [[package]] 193 200 name = "bytemuck" 194 - version = "1.14.3" 201 + version = "1.17.0" 195 202 source = "registry+https://github.com/rust-lang/crates.io-index" 196 - checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" 203 + checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31" 197 204 198 205 [[package]] 199 206 name = "byteorder" ··· 203 210 204 211 [[package]] 205 212 name = "bytes" 206 - version = "1.5.0" 213 + version = "1.7.1" 207 214 source = "registry+https://github.com/rust-lang/crates.io-index" 208 - checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 215 + checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" 209 216 dependencies = [ 210 217 "serde", 211 218 ] 212 219 213 220 [[package]] 214 221 name = "cairo-rs" 215 - version = "0.15.12" 222 + version = "0.18.5" 216 223 source = "registry+https://github.com/rust-lang/crates.io-index" 217 - checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" 224 + checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" 218 225 dependencies = [ 219 - "bitflags 1.3.2", 226 + "bitflags 2.6.0", 220 227 "cairo-sys-rs", 221 228 "glib", 222 229 "libc", 230 + "once_cell", 223 231 "thiserror", 224 232 ] 225 233 226 234 [[package]] 227 235 name = "cairo-sys-rs" 228 - version = "0.15.1" 236 + version = "0.18.2" 229 237 source = "registry+https://github.com/rust-lang/crates.io-index" 230 - checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" 238 + checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" 231 239 dependencies = [ 232 240 "glib-sys", 233 241 "libc", 234 - "system-deps 6.2.0", 242 + "system-deps", 243 + ] 244 + 245 + [[package]] 246 + name = "camino" 247 + version = "1.1.9" 248 + source = "registry+https://github.com/rust-lang/crates.io-index" 249 + checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" 250 + dependencies = [ 251 + "serde", 252 + ] 253 + 254 + [[package]] 255 + name = "cargo-platform" 256 + version = "0.1.8" 257 + source = "registry+https://github.com/rust-lang/crates.io-index" 258 + checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" 259 + dependencies = [ 260 + "serde", 261 + ] 262 + 263 + [[package]] 264 + name = "cargo_metadata" 265 + version = "0.18.1" 266 + source = "registry+https://github.com/rust-lang/crates.io-index" 267 + checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" 268 + dependencies = [ 269 + "camino", 270 + "cargo-platform", 271 + "semver", 272 + "serde", 273 + "serde_json", 274 + "thiserror", 235 275 ] 236 276 237 277 [[package]] 238 278 name = "cargo_toml" 239 - version = "0.15.3" 279 + version = "0.17.2" 240 280 source = "registry+https://github.com/rust-lang/crates.io-index" 241 - checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" 281 + checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" 242 282 dependencies = [ 243 283 "serde", 244 - "toml 0.7.8", 284 + "toml 0.8.2", 245 285 ] 246 286 247 287 [[package]] 248 288 name = "cc" 249 - version = "1.0.83" 289 + version = "1.1.13" 250 290 source = "registry+https://github.com/rust-lang/crates.io-index" 251 - checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" 291 + checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" 252 292 dependencies = [ 253 - "libc", 293 + "shlex", 254 294 ] 255 295 256 296 [[package]] ··· 272 312 273 313 [[package]] 274 314 name = "cfg-expr" 275 - version = "0.9.1" 315 + version = "0.15.8" 276 316 source = "registry+https://github.com/rust-lang/crates.io-index" 277 - checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" 278 - dependencies = [ 279 - "smallvec", 280 - ] 281 - 282 - [[package]] 283 - name = "cfg-expr" 284 - version = "0.15.7" 285 - source = "registry+https://github.com/rust-lang/crates.io-index" 286 - checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d" 317 + checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" 287 318 dependencies = [ 288 319 "smallvec", 289 320 "target-lexicon", ··· 296 327 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 297 328 298 329 [[package]] 330 + name = "cfg_aliases" 331 + version = "0.2.1" 332 + source = "registry+https://github.com/rust-lang/crates.io-index" 333 + checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 334 + 335 + [[package]] 299 336 name = "chrono" 300 - version = "0.4.34" 337 + version = "0.4.38" 301 338 source = "registry+https://github.com/rust-lang/crates.io-index" 302 - checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" 339 + checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" 303 340 dependencies = [ 304 341 "android-tzdata", 305 342 "iana-time-zone", 306 343 "num-traits", 307 344 "serde", 308 - "windows-targets 0.52.0", 345 + "windows-targets 0.52.6", 309 346 ] 310 347 311 348 [[package]] 312 349 name = "cocoa" 313 - version = "0.24.1" 350 + version = "0.26.0" 314 351 source = "registry+https://github.com/rust-lang/crates.io-index" 315 - checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" 352 + checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" 316 353 dependencies = [ 317 - "bitflags 1.3.2", 354 + "bitflags 2.6.0", 318 355 "block", 319 356 "cocoa-foundation", 320 - "core-foundation", 321 - "core-graphics", 322 - "foreign-types", 357 + "core-foundation 0.10.0", 358 + "core-graphics 0.24.0", 359 + "foreign-types 0.5.0", 323 360 "libc", 324 361 "objc", 325 362 ] 326 363 327 364 [[package]] 328 365 name = "cocoa-foundation" 329 - version = "0.1.2" 366 + version = "0.2.0" 330 367 source = "registry+https://github.com/rust-lang/crates.io-index" 331 - checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" 368 + checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" 332 369 dependencies = [ 333 - "bitflags 1.3.2", 370 + "bitflags 2.6.0", 334 371 "block", 335 - "core-foundation", 336 - "core-graphics-types", 372 + "core-foundation 0.10.0", 373 + "core-graphics-types 0.2.0", 337 374 "libc", 338 375 "objc", 339 376 ] 340 377 341 378 [[package]] 342 - name = "color_quant" 343 - version = "1.1.0" 344 - source = "registry+https://github.com/rust-lang/crates.io-index" 345 - checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" 346 - 347 - [[package]] 348 379 name = "combine" 349 - version = "4.6.6" 380 + version = "4.6.7" 350 381 source = "registry+https://github.com/rust-lang/crates.io-index" 351 - checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" 382 + checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" 352 383 dependencies = [ 353 384 "bytes", 354 385 "memchr", ··· 361 392 checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 362 393 363 394 [[package]] 395 + name = "cookie" 396 + version = "0.18.1" 397 + source = "registry+https://github.com/rust-lang/crates.io-index" 398 + checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" 399 + dependencies = [ 400 + "percent-encoding", 401 + "time", 402 + "version_check", 403 + ] 404 + 405 + [[package]] 406 + name = "cookie_store" 407 + version = "0.21.0" 408 + source = "registry+https://github.com/rust-lang/crates.io-index" 409 + checksum = "4934e6b7e8419148b6ef56950d277af8561060b56afd59e2aadf98b59fce6baa" 410 + dependencies = [ 411 + "cookie", 412 + "idna 0.5.0", 413 + "log", 414 + "publicsuffix", 415 + "serde", 416 + "serde_derive", 417 + "serde_json", 418 + "time", 419 + "url", 420 + ] 421 + 422 + [[package]] 364 423 name = "core-foundation" 365 424 version = "0.9.4" 366 425 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 371 430 ] 372 431 373 432 [[package]] 433 + name = "core-foundation" 434 + version = "0.10.0" 435 + source = "registry+https://github.com/rust-lang/crates.io-index" 436 + checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" 437 + dependencies = [ 438 + "core-foundation-sys", 439 + "libc", 440 + ] 441 + 442 + [[package]] 374 443 name = "core-foundation-sys" 375 - version = "0.8.6" 444 + version = "0.8.7" 376 445 source = "registry+https://github.com/rust-lang/crates.io-index" 377 - checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" 446 + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 378 447 379 448 [[package]] 380 449 name = "core-graphics" 381 - version = "0.22.3" 450 + version = "0.23.2" 382 451 source = "registry+https://github.com/rust-lang/crates.io-index" 383 - checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" 452 + checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" 384 453 dependencies = [ 385 454 "bitflags 1.3.2", 386 - "core-foundation", 387 - "core-graphics-types", 388 - "foreign-types", 455 + "core-foundation 0.9.4", 456 + "core-graphics-types 0.1.3", 457 + "foreign-types 0.5.0", 389 458 "libc", 390 459 ] 391 460 392 461 [[package]] 393 - name = "core-graphics-types" 394 - version = "0.1.3" 462 + name = "core-graphics" 463 + version = "0.24.0" 395 464 source = "registry+https://github.com/rust-lang/crates.io-index" 396 - checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" 465 + checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" 397 466 dependencies = [ 398 - "bitflags 1.3.2", 399 - "core-foundation", 467 + "bitflags 2.6.0", 468 + "core-foundation 0.10.0", 469 + "core-graphics-types 0.2.0", 470 + "foreign-types 0.5.0", 400 471 "libc", 401 472 ] 402 473 403 474 [[package]] 404 - name = "cpufeatures" 405 - version = "0.2.12" 475 + name = "core-graphics-types" 476 + version = "0.1.3" 406 477 source = "registry+https://github.com/rust-lang/crates.io-index" 407 - checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" 478 + checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" 408 479 dependencies = [ 480 + "bitflags 1.3.2", 481 + "core-foundation 0.9.4", 409 482 "libc", 410 483 ] 411 484 412 485 [[package]] 413 - name = "crc32fast" 414 - version = "1.3.2" 486 + name = "core-graphics-types" 487 + version = "0.2.0" 415 488 source = "registry+https://github.com/rust-lang/crates.io-index" 416 - checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 489 + checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" 417 490 dependencies = [ 418 - "cfg-if", 491 + "bitflags 2.6.0", 492 + "core-foundation 0.10.0", 493 + "libc", 419 494 ] 420 495 421 496 [[package]] 422 - name = "crossbeam-channel" 423 - version = "0.5.11" 497 + name = "cpufeatures" 498 + version = "0.2.13" 424 499 source = "registry+https://github.com/rust-lang/crates.io-index" 425 - checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" 500 + checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" 426 501 dependencies = [ 427 - "crossbeam-utils", 502 + "libc", 428 503 ] 429 504 430 505 [[package]] 431 - name = "crossbeam-deque" 432 - version = "0.8.5" 506 + name = "crc32fast" 507 + version = "1.4.2" 433 508 source = "registry+https://github.com/rust-lang/crates.io-index" 434 - checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" 509 + checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" 435 510 dependencies = [ 436 - "crossbeam-epoch", 437 - "crossbeam-utils", 511 + "cfg-if", 438 512 ] 439 513 440 514 [[package]] 441 - name = "crossbeam-epoch" 442 - version = "0.9.18" 515 + name = "crossbeam-channel" 516 + version = "0.5.13" 443 517 source = "registry+https://github.com/rust-lang/crates.io-index" 444 - checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 518 + checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" 445 519 dependencies = [ 446 520 "crossbeam-utils", 447 521 ] 448 522 449 523 [[package]] 450 524 name = "crossbeam-utils" 451 - version = "0.8.19" 525 + version = "0.8.20" 452 526 source = "registry+https://github.com/rust-lang/crates.io-index" 453 - checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" 527 + checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" 454 528 455 529 [[package]] 456 530 name = "crypto-common" ··· 486 560 checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" 487 561 dependencies = [ 488 562 "quote", 489 - "syn 2.0.48", 563 + "syn 2.0.75", 490 564 ] 491 565 492 566 [[package]] 493 567 name = "ctor" 494 - version = "0.2.6" 568 + version = "0.2.8" 495 569 source = "registry+https://github.com/rust-lang/crates.io-index" 496 - checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" 570 + checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" 497 571 dependencies = [ 498 572 "quote", 499 - "syn 2.0.48", 573 + "syn 2.0.75", 500 574 ] 501 575 502 576 [[package]] 503 577 name = "darling" 504 - version = "0.20.5" 578 + version = "0.20.10" 505 579 source = "registry+https://github.com/rust-lang/crates.io-index" 506 - checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8" 580 + checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" 507 581 dependencies = [ 508 582 "darling_core", 509 583 "darling_macro", ··· 511 585 512 586 [[package]] 513 587 name = "darling_core" 514 - version = "0.20.5" 588 + version = "0.20.10" 515 589 source = "registry+https://github.com/rust-lang/crates.io-index" 516 - checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3" 590 + checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" 517 591 dependencies = [ 518 592 "fnv", 519 593 "ident_case", 520 594 "proc-macro2", 521 595 "quote", 522 596 "strsim", 523 - "syn 2.0.48", 597 + "syn 2.0.75", 524 598 ] 525 599 526 600 [[package]] 527 601 name = "darling_macro" 528 - version = "0.20.5" 602 + version = "0.20.10" 529 603 source = "registry+https://github.com/rust-lang/crates.io-index" 530 - checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77" 604 + checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" 531 605 dependencies = [ 532 606 "darling_core", 533 607 "quote", 534 - "syn 2.0.48", 608 + "syn 2.0.75", 535 609 ] 536 610 537 611 [[package]] 612 + name = "data-url" 613 + version = "0.3.1" 614 + source = "registry+https://github.com/rust-lang/crates.io-index" 615 + checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" 616 + 617 + [[package]] 538 618 name = "deranged" 539 619 version = "0.3.11" 540 620 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 546 626 547 627 [[package]] 548 628 name = "derive_more" 549 - version = "0.99.17" 629 + version = "0.99.18" 550 630 source = "registry+https://github.com/rust-lang/crates.io-index" 551 - checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" 631 + checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" 552 632 dependencies = [ 553 633 "convert_case", 554 634 "proc-macro2", 555 635 "quote", 556 636 "rustc_version", 557 - "syn 1.0.109", 637 + "syn 2.0.75", 558 638 ] 559 639 560 640 [[package]] ··· 577 657 ] 578 658 579 659 [[package]] 580 - name = "dirs-next" 581 - version = "2.0.0" 582 - source = "registry+https://github.com/rust-lang/crates.io-index" 583 - checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" 584 - dependencies = [ 585 - "cfg-if", 586 - "dirs-sys-next", 587 - ] 588 - 589 - [[package]] 590 660 name = "dirs-sys" 591 661 version = "0.4.1" 592 662 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 599 669 ] 600 670 601 671 [[package]] 602 - name = "dirs-sys-next" 603 - version = "0.1.2" 672 + name = "dispatch" 673 + version = "0.2.0" 674 + source = "registry+https://github.com/rust-lang/crates.io-index" 675 + checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 676 + 677 + [[package]] 678 + name = "dlopen2" 679 + version = "0.7.0" 604 680 source = "registry+https://github.com/rust-lang/crates.io-index" 605 - checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" 681 + checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6" 606 682 dependencies = [ 683 + "dlopen2_derive", 607 684 "libc", 608 - "redox_users", 685 + "once_cell", 609 686 "winapi", 610 687 ] 611 688 612 689 [[package]] 613 - name = "dispatch" 614 - version = "0.2.0" 690 + name = "dlopen2_derive" 691 + version = "0.4.0" 615 692 source = "registry+https://github.com/rust-lang/crates.io-index" 616 - checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 693 + checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" 694 + dependencies = [ 695 + "proc-macro2", 696 + "quote", 697 + "syn 2.0.75", 698 + ] 699 + 700 + [[package]] 701 + name = "dpi" 702 + version = "0.1.1" 703 + source = "registry+https://github.com/rust-lang/crates.io-index" 704 + checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" 705 + dependencies = [ 706 + "serde", 707 + ] 617 708 618 709 [[package]] 619 710 name = "dtoa" ··· 623 714 624 715 [[package]] 625 716 name = "dtoa-short" 626 - version = "0.3.4" 717 + version = "0.3.5" 627 718 source = "registry+https://github.com/rust-lang/crates.io-index" 628 - checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74" 719 + checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" 629 720 dependencies = [ 630 721 "dtoa", 631 722 ] 632 723 633 724 [[package]] 634 725 name = "dunce" 635 - version = "1.0.4" 726 + version = "1.0.5" 727 + source = "registry+https://github.com/rust-lang/crates.io-index" 728 + checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" 729 + 730 + [[package]] 731 + name = "dyn-clone" 732 + version = "1.0.17" 636 733 source = "registry+https://github.com/rust-lang/crates.io-index" 637 - checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" 734 + checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" 638 735 639 736 [[package]] 640 737 name = "embed-resource" 641 - version = "2.4.1" 738 + version = "2.4.3" 642 739 source = "registry+https://github.com/rust-lang/crates.io-index" 643 - checksum = "3bde55e389bea6a966bd467ad1ad7da0ae14546a5bc794d16d1e55e7fca44881" 740 + checksum = "4edcacde9351c33139a41e3c97eb2334351a81a2791bebb0b243df837128f602" 644 741 dependencies = [ 645 742 "cc", 646 743 "memchr", 647 744 "rustc_version", 648 - "toml 0.8.10", 745 + "toml 0.8.2", 649 746 "vswhom", 650 - "winreg 0.51.0", 747 + "winreg 0.52.0", 651 748 ] 652 749 653 750 [[package]] ··· 658 755 659 756 [[package]] 660 757 name = "encoding_rs" 661 - version = "0.8.33" 758 + version = "0.8.34" 662 759 source = "registry+https://github.com/rust-lang/crates.io-index" 663 - checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" 760 + checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" 664 761 dependencies = [ 665 762 "cfg-if", 666 763 ] ··· 672 769 checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 673 770 674 771 [[package]] 772 + name = "erased-serde" 773 + version = "0.4.5" 774 + source = "registry+https://github.com/rust-lang/crates.io-index" 775 + checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" 776 + dependencies = [ 777 + "serde", 778 + "typeid", 779 + ] 780 + 781 + [[package]] 675 782 name = "errno" 676 - version = "0.3.8" 783 + version = "0.3.9" 677 784 source = "registry+https://github.com/rust-lang/crates.io-index" 678 - checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" 785 + checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" 679 786 dependencies = [ 680 787 "libc", 681 788 "windows-sys 0.52.0", ··· 683 790 684 791 [[package]] 685 792 name = "fastrand" 686 - version = "2.0.1" 793 + version = "2.1.0" 687 794 source = "registry+https://github.com/rust-lang/crates.io-index" 688 - checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" 795 + checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" 689 796 690 797 [[package]] 691 798 name = "fdeflate" ··· 708 815 709 816 [[package]] 710 817 name = "filetime" 711 - version = "0.2.23" 818 + version = "0.2.24" 712 819 source = "registry+https://github.com/rust-lang/crates.io-index" 713 - checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" 820 + checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" 714 821 dependencies = [ 715 822 "cfg-if", 716 823 "libc", 717 - "redox_syscall", 718 - "windows-sys 0.52.0", 824 + "libredox", 825 + "windows-sys 0.59.0", 719 826 ] 720 827 721 828 [[package]] 722 829 name = "flate2" 723 - version = "1.0.28" 830 + version = "1.0.32" 724 831 source = "registry+https://github.com/rust-lang/crates.io-index" 725 - checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" 832 + checksum = "9c0596c1eac1f9e04ed902702e9878208b336edc9d6fddc8a48387349bab3666" 726 833 dependencies = [ 727 834 "crc32fast", 728 - "miniz_oxide", 835 + "miniz_oxide 0.8.0", 836 + ] 837 + 838 + [[package]] 839 + name = "fluent-uri" 840 + version = "0.1.4" 841 + source = "registry+https://github.com/rust-lang/crates.io-index" 842 + checksum = "17c704e9dbe1ddd863da1e6ff3567795087b1eb201ce80d8fa81162e1516500d" 843 + dependencies = [ 844 + "bitflags 1.3.2", 729 845 ] 730 846 731 847 [[package]] ··· 740 856 source = "registry+https://github.com/rust-lang/crates.io-index" 741 857 checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 742 858 dependencies = [ 743 - "foreign-types-shared", 859 + "foreign-types-shared 0.1.1", 860 + ] 861 + 862 + [[package]] 863 + name = "foreign-types" 864 + version = "0.5.0" 865 + source = "registry+https://github.com/rust-lang/crates.io-index" 866 + checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" 867 + dependencies = [ 868 + "foreign-types-macros", 869 + "foreign-types-shared 0.3.1", 870 + ] 871 + 872 + [[package]] 873 + name = "foreign-types-macros" 874 + version = "0.2.3" 875 + source = "registry+https://github.com/rust-lang/crates.io-index" 876 + checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" 877 + dependencies = [ 878 + "proc-macro2", 879 + "quote", 880 + "syn 2.0.75", 744 881 ] 745 882 746 883 [[package]] ··· 748 885 version = "0.1.1" 749 886 source = "registry+https://github.com/rust-lang/crates.io-index" 750 887 checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 888 + 889 + [[package]] 890 + name = "foreign-types-shared" 891 + version = "0.3.1" 892 + source = "registry+https://github.com/rust-lang/crates.io-index" 893 + checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 751 894 752 895 [[package]] 753 896 name = "form_urlencoded" ··· 818 961 dependencies = [ 819 962 "proc-macro2", 820 963 "quote", 821 - "syn 2.0.48", 964 + "syn 2.0.75", 822 965 ] 823 966 824 967 [[package]] ··· 861 1004 862 1005 [[package]] 863 1006 name = "gdk" 864 - version = "0.15.4" 1007 + version = "0.18.0" 865 1008 source = "registry+https://github.com/rust-lang/crates.io-index" 866 - checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" 1009 + checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646" 867 1010 dependencies = [ 868 - "bitflags 1.3.2", 869 1011 "cairo-rs", 870 1012 "gdk-pixbuf", 871 1013 "gdk-sys", ··· 877 1019 878 1020 [[package]] 879 1021 name = "gdk-pixbuf" 880 - version = "0.15.11" 1022 + version = "0.18.5" 881 1023 source = "registry+https://github.com/rust-lang/crates.io-index" 882 - checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" 1024 + checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" 883 1025 dependencies = [ 884 - "bitflags 1.3.2", 885 1026 "gdk-pixbuf-sys", 886 1027 "gio", 887 1028 "glib", 888 1029 "libc", 1030 + "once_cell", 889 1031 ] 890 1032 891 1033 [[package]] 892 1034 name = "gdk-pixbuf-sys" 893 - version = "0.15.10" 1035 + version = "0.18.0" 894 1036 source = "registry+https://github.com/rust-lang/crates.io-index" 895 - checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" 1037 + checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" 896 1038 dependencies = [ 897 1039 "gio-sys", 898 1040 "glib-sys", 899 1041 "gobject-sys", 900 1042 "libc", 901 - "system-deps 6.2.0", 1043 + "system-deps", 902 1044 ] 903 1045 904 1046 [[package]] 905 1047 name = "gdk-sys" 906 - version = "0.15.1" 1048 + version = "0.18.0" 907 1049 source = "registry+https://github.com/rust-lang/crates.io-index" 908 - checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" 1050 + checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2" 909 1051 dependencies = [ 910 1052 "cairo-sys-rs", 911 1053 "gdk-pixbuf-sys", ··· 915 1057 "libc", 916 1058 "pango-sys", 917 1059 "pkg-config", 918 - "system-deps 6.2.0", 1060 + "system-deps", 919 1061 ] 920 1062 921 1063 [[package]] 922 1064 name = "gdkwayland-sys" 923 - version = "0.15.3" 1065 + version = "0.18.0" 924 1066 source = "registry+https://github.com/rust-lang/crates.io-index" 925 - checksum = "cca49a59ad8cfdf36ef7330fe7bdfbe1d34323220cc16a0de2679ee773aee2c2" 1067 + checksum = "a90fbf5c033c65d93792192a49a8efb5bb1e640c419682a58bb96f5ae77f3d4a" 926 1068 dependencies = [ 927 1069 "gdk-sys", 928 1070 "glib-sys", 929 1071 "gobject-sys", 930 1072 "libc", 931 1073 "pkg-config", 932 - "system-deps 6.2.0", 1074 + "system-deps", 1075 + ] 1076 + 1077 + [[package]] 1078 + name = "gdkx11" 1079 + version = "0.18.0" 1080 + source = "registry+https://github.com/rust-lang/crates.io-index" 1081 + checksum = "db2ea8a4909d530f79921290389cbd7c34cb9d623bfe970eaae65ca5f9cd9cce" 1082 + dependencies = [ 1083 + "gdk", 1084 + "gdkx11-sys", 1085 + "gio", 1086 + "glib", 1087 + "libc", 1088 + "x11", 933 1089 ] 934 1090 935 1091 [[package]] 936 1092 name = "gdkx11-sys" 937 - version = "0.15.1" 1093 + version = "0.18.0" 938 1094 source = "registry+https://github.com/rust-lang/crates.io-index" 939 - checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" 1095 + checksum = "fee8f00f4ee46cad2939b8990f5c70c94ff882c3028f3cc5abf950fa4ab53043" 940 1096 dependencies = [ 941 1097 "gdk-sys", 942 1098 "glib-sys", 943 1099 "libc", 944 - "system-deps 6.2.0", 1100 + "system-deps", 945 1101 "x11", 946 1102 ] 947 1103 ··· 981 1137 982 1138 [[package]] 983 1139 name = "getrandom" 984 - version = "0.2.12" 1140 + version = "0.2.15" 985 1141 source = "registry+https://github.com/rust-lang/crates.io-index" 986 - checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" 1142 + checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 987 1143 dependencies = [ 988 1144 "cfg-if", 989 1145 "libc", ··· 992 1148 993 1149 [[package]] 994 1150 name = "gimli" 995 - version = "0.28.1" 1151 + version = "0.29.0" 996 1152 source = "registry+https://github.com/rust-lang/crates.io-index" 997 - checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" 1153 + checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" 998 1154 999 1155 [[package]] 1000 1156 name = "gio" 1001 - version = "0.15.12" 1157 + version = "0.18.4" 1002 1158 source = "registry+https://github.com/rust-lang/crates.io-index" 1003 - checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" 1159 + checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" 1004 1160 dependencies = [ 1005 - "bitflags 1.3.2", 1006 1161 "futures-channel", 1007 1162 "futures-core", 1008 1163 "futures-io", 1164 + "futures-util", 1009 1165 "gio-sys", 1010 1166 "glib", 1011 1167 "libc", 1012 1168 "once_cell", 1169 + "pin-project-lite", 1170 + "smallvec", 1013 1171 "thiserror", 1014 1172 ] 1015 1173 1016 1174 [[package]] 1017 1175 name = "gio-sys" 1018 - version = "0.15.10" 1176 + version = "0.18.1" 1019 1177 source = "registry+https://github.com/rust-lang/crates.io-index" 1020 - checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" 1178 + checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" 1021 1179 dependencies = [ 1022 1180 "glib-sys", 1023 1181 "gobject-sys", 1024 1182 "libc", 1025 - "system-deps 6.2.0", 1183 + "system-deps", 1026 1184 "winapi", 1027 1185 ] 1028 1186 1029 1187 [[package]] 1030 1188 name = "glib" 1031 - version = "0.15.12" 1189 + version = "0.18.5" 1032 1190 source = "registry+https://github.com/rust-lang/crates.io-index" 1033 - checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" 1191 + checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" 1034 1192 dependencies = [ 1035 - "bitflags 1.3.2", 1193 + "bitflags 2.6.0", 1036 1194 "futures-channel", 1037 1195 "futures-core", 1038 1196 "futures-executor", 1039 1197 "futures-task", 1198 + "futures-util", 1199 + "gio-sys", 1040 1200 "glib-macros", 1041 1201 "glib-sys", 1042 1202 "gobject-sys", 1043 1203 "libc", 1204 + "memchr", 1044 1205 "once_cell", 1045 1206 "smallvec", 1046 1207 "thiserror", ··· 1048 1209 1049 1210 [[package]] 1050 1211 name = "glib-macros" 1051 - version = "0.15.13" 1212 + version = "0.18.5" 1052 1213 source = "registry+https://github.com/rust-lang/crates.io-index" 1053 - checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a" 1214 + checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" 1054 1215 dependencies = [ 1055 - "anyhow", 1056 1216 "heck 0.4.1", 1057 - "proc-macro-crate", 1217 + "proc-macro-crate 2.0.2", 1058 1218 "proc-macro-error", 1059 1219 "proc-macro2", 1060 1220 "quote", 1061 - "syn 1.0.109", 1221 + "syn 2.0.75", 1062 1222 ] 1063 1223 1064 1224 [[package]] 1065 1225 name = "glib-sys" 1066 - version = "0.15.10" 1226 + version = "0.18.1" 1067 1227 source = "registry+https://github.com/rust-lang/crates.io-index" 1068 - checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" 1228 + checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" 1069 1229 dependencies = [ 1070 1230 "libc", 1071 - "system-deps 6.2.0", 1231 + "system-deps", 1072 1232 ] 1073 1233 1074 1234 [[package]] ··· 1078 1238 checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 1079 1239 1080 1240 [[package]] 1081 - name = "globset" 1082 - version = "0.4.14" 1083 - source = "registry+https://github.com/rust-lang/crates.io-index" 1084 - checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" 1085 - dependencies = [ 1086 - "aho-corasick", 1087 - "bstr", 1088 - "log", 1089 - "regex-automata 0.4.5", 1090 - "regex-syntax 0.8.2", 1091 - ] 1092 - 1093 - [[package]] 1094 1241 name = "gobject-sys" 1095 - version = "0.15.10" 1242 + version = "0.18.0" 1096 1243 source = "registry+https://github.com/rust-lang/crates.io-index" 1097 - checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" 1244 + checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" 1098 1245 dependencies = [ 1099 1246 "glib-sys", 1100 1247 "libc", 1101 - "system-deps 6.2.0", 1248 + "system-deps", 1102 1249 ] 1103 1250 1104 1251 [[package]] 1105 1252 name = "gtk" 1106 - version = "0.15.5" 1253 + version = "0.18.1" 1107 1254 source = "registry+https://github.com/rust-lang/crates.io-index" 1108 - checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" 1255 + checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c" 1109 1256 dependencies = [ 1110 1257 "atk", 1111 - "bitflags 1.3.2", 1112 1258 "cairo-rs", 1113 1259 "field-offset", 1114 1260 "futures-channel", ··· 1119 1265 "gtk-sys", 1120 1266 "gtk3-macros", 1121 1267 "libc", 1122 - "once_cell", 1123 1268 "pango", 1124 1269 "pkg-config", 1125 1270 ] 1126 1271 1127 1272 [[package]] 1128 1273 name = "gtk-sys" 1129 - version = "0.15.3" 1274 + version = "0.18.0" 1130 1275 source = "registry+https://github.com/rust-lang/crates.io-index" 1131 - checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" 1276 + checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722" 1132 1277 dependencies = [ 1133 1278 "atk-sys", 1134 1279 "cairo-sys-rs", ··· 1139 1284 "gobject-sys", 1140 1285 "libc", 1141 1286 "pango-sys", 1142 - "system-deps 6.2.0", 1287 + "system-deps", 1143 1288 ] 1144 1289 1145 1290 [[package]] 1146 1291 name = "gtk3-macros" 1147 - version = "0.15.6" 1292 + version = "0.18.0" 1148 1293 source = "registry+https://github.com/rust-lang/crates.io-index" 1149 - checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d" 1294 + checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e" 1150 1295 dependencies = [ 1151 - "anyhow", 1152 - "proc-macro-crate", 1296 + "proc-macro-crate 1.3.1", 1153 1297 "proc-macro-error", 1154 1298 "proc-macro2", 1155 1299 "quote", 1156 - "syn 1.0.109", 1300 + "syn 2.0.75", 1157 1301 ] 1158 1302 1159 1303 [[package]] 1160 1304 name = "h2" 1161 - version = "0.3.24" 1305 + version = "0.4.6" 1162 1306 source = "registry+https://github.com/rust-lang/crates.io-index" 1163 - checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" 1164 - dependencies = [ 1165 - "bytes", 1166 - "fnv", 1167 - "futures-core", 1168 - "futures-sink", 1169 - "futures-util", 1170 - "http 0.2.11", 1171 - "indexmap 2.2.2", 1172 - "slab", 1173 - "tokio", 1174 - "tokio-util", 1175 - "tracing", 1176 - ] 1177 - 1178 - [[package]] 1179 - name = "h2" 1180 - version = "0.4.4" 1181 - source = "registry+https://github.com/rust-lang/crates.io-index" 1182 - checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069" 1307 + checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" 1183 1308 dependencies = [ 1309 + "atomic-waker", 1184 1310 "bytes", 1185 1311 "fnv", 1186 1312 "futures-core", 1187 1313 "futures-sink", 1188 - "futures-util", 1189 - "http 1.1.0", 1190 - "indexmap 2.2.2", 1314 + "http", 1315 + "indexmap 2.4.0", 1191 1316 "slab", 1192 1317 "tokio", 1193 1318 "tokio-util", ··· 1202 1327 1203 1328 [[package]] 1204 1329 name = "hashbrown" 1205 - version = "0.14.3" 1330 + version = "0.14.5" 1206 1331 source = "registry+https://github.com/rust-lang/crates.io-index" 1207 - checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" 1332 + checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 1208 1333 1209 1334 [[package]] 1210 1335 name = "heck" 1211 - version = "0.3.3" 1336 + version = "0.4.1" 1212 1337 source = "registry+https://github.com/rust-lang/crates.io-index" 1213 - checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" 1214 - dependencies = [ 1215 - "unicode-segmentation", 1216 - ] 1338 + checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1217 1339 1218 1340 [[package]] 1219 1341 name = "heck" 1220 - version = "0.4.1" 1342 + version = "0.5.0" 1221 1343 source = "registry+https://github.com/rust-lang/crates.io-index" 1222 - checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1344 + checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 1223 1345 1224 1346 [[package]] 1225 1347 name = "hermit-abi" 1226 - version = "0.3.5" 1348 + version = "0.3.9" 1227 1349 source = "registry+https://github.com/rust-lang/crates.io-index" 1228 - checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3" 1350 + checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 1229 1351 1230 1352 [[package]] 1231 1353 name = "hex" ··· 1249 1371 1250 1372 [[package]] 1251 1373 name = "http" 1252 - version = "0.2.11" 1253 - source = "registry+https://github.com/rust-lang/crates.io-index" 1254 - checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" 1255 - dependencies = [ 1256 - "bytes", 1257 - "fnv", 1258 - "itoa 1.0.10", 1259 - ] 1260 - 1261 - [[package]] 1262 - name = "http" 1263 1374 version = "1.1.0" 1264 1375 source = "registry+https://github.com/rust-lang/crates.io-index" 1265 1376 checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" 1266 1377 dependencies = [ 1267 1378 "bytes", 1268 1379 "fnv", 1269 - "itoa 1.0.10", 1380 + "itoa 1.0.11", 1270 1381 ] 1271 1382 1272 1383 [[package]] 1273 1384 name = "http-body" 1274 - version = "0.4.6" 1385 + version = "1.0.1" 1275 1386 source = "registry+https://github.com/rust-lang/crates.io-index" 1276 - checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" 1387 + checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 1277 1388 dependencies = [ 1278 1389 "bytes", 1279 - "http 0.2.11", 1280 - "pin-project-lite", 1281 - ] 1282 - 1283 - [[package]] 1284 - name = "http-body" 1285 - version = "1.0.0" 1286 - source = "registry+https://github.com/rust-lang/crates.io-index" 1287 - checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" 1288 - dependencies = [ 1289 - "bytes", 1290 - "http 1.1.0", 1390 + "http", 1291 1391 ] 1292 1392 1293 1393 [[package]] 1294 1394 name = "http-body-util" 1295 - version = "0.1.1" 1395 + version = "0.1.2" 1296 1396 source = "registry+https://github.com/rust-lang/crates.io-index" 1297 - checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" 1397 + checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" 1298 1398 dependencies = [ 1299 1399 "bytes", 1300 - "futures-core", 1301 - "http 1.1.0", 1302 - "http-body 1.0.0", 1400 + "futures-util", 1401 + "http", 1402 + "http-body", 1303 1403 "pin-project-lite", 1304 1404 ] 1305 1405 1306 1406 [[package]] 1307 - name = "http-range" 1308 - version = "0.1.5" 1309 - source = "registry+https://github.com/rust-lang/crates.io-index" 1310 - checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" 1311 - 1312 - [[package]] 1313 1407 name = "httparse" 1314 - version = "1.8.0" 1315 - source = "registry+https://github.com/rust-lang/crates.io-index" 1316 - checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 1317 - 1318 - [[package]] 1319 - name = "httpdate" 1320 - version = "1.0.3" 1408 + version = "1.9.4" 1321 1409 source = "registry+https://github.com/rust-lang/crates.io-index" 1322 - checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 1410 + checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" 1323 1411 1324 1412 [[package]] 1325 1413 name = "hyper" 1326 - version = "0.14.28" 1414 + version = "1.4.1" 1327 1415 source = "registry+https://github.com/rust-lang/crates.io-index" 1328 - checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" 1416 + checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" 1329 1417 dependencies = [ 1330 1418 "bytes", 1331 1419 "futures-channel", 1332 - "futures-core", 1333 1420 "futures-util", 1334 - "h2 0.3.24", 1335 - "http 0.2.11", 1336 - "http-body 0.4.6", 1421 + "h2", 1422 + "http", 1423 + "http-body", 1337 1424 "httparse", 1338 - "httpdate", 1339 - "itoa 1.0.10", 1425 + "itoa 1.0.11", 1340 1426 "pin-project-lite", 1341 - "socket2", 1427 + "smallvec", 1342 1428 "tokio", 1343 - "tower-service", 1344 - "tracing", 1345 1429 "want", 1346 1430 ] 1347 1431 1348 1432 [[package]] 1349 - name = "hyper" 1350 - version = "1.3.1" 1433 + name = "hyper-rustls" 1434 + version = "0.27.2" 1351 1435 source = "registry+https://github.com/rust-lang/crates.io-index" 1352 - checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" 1436 + checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" 1353 1437 dependencies = [ 1354 - "bytes", 1355 - "futures-channel", 1356 1438 "futures-util", 1357 - "h2 0.4.4", 1358 - "http 1.1.0", 1359 - "http-body 1.0.0", 1360 - "httparse", 1361 - "itoa 1.0.10", 1362 - "pin-project-lite", 1363 - "smallvec", 1439 + "http", 1440 + "hyper", 1441 + "hyper-util", 1442 + "rustls", 1443 + "rustls-pki-types", 1364 1444 "tokio", 1365 - "want", 1366 - ] 1367 - 1368 - [[package]] 1369 - name = "hyper-tls" 1370 - version = "0.5.0" 1371 - source = "registry+https://github.com/rust-lang/crates.io-index" 1372 - checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" 1373 - dependencies = [ 1374 - "bytes", 1375 - "hyper 0.14.28", 1376 - "native-tls", 1377 - "tokio", 1378 - "tokio-native-tls", 1445 + "tokio-rustls", 1446 + "tower-service", 1447 + "webpki-roots", 1379 1448 ] 1380 1449 1381 1450 [[package]] ··· 1386 1455 dependencies = [ 1387 1456 "bytes", 1388 1457 "http-body-util", 1389 - "hyper 1.3.1", 1458 + "hyper", 1390 1459 "hyper-util", 1391 1460 "native-tls", 1392 1461 "tokio", ··· 1396 1465 1397 1466 [[package]] 1398 1467 name = "hyper-util" 1399 - version = "0.1.3" 1468 + version = "0.1.7" 1400 1469 source = "registry+https://github.com/rust-lang/crates.io-index" 1401 - checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" 1470 + checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" 1402 1471 dependencies = [ 1403 1472 "bytes", 1404 1473 "futures-channel", 1405 1474 "futures-util", 1406 - "http 1.1.0", 1407 - "http-body 1.0.0", 1408 - "hyper 1.3.1", 1475 + "http", 1476 + "http-body", 1477 + "hyper", 1409 1478 "pin-project-lite", 1410 1479 "socket2", 1411 1480 "tokio", ··· 1425 1494 "iana-time-zone-haiku", 1426 1495 "js-sys", 1427 1496 "wasm-bindgen", 1428 - "windows-core", 1497 + "windows-core 0.52.0", 1429 1498 ] 1430 1499 1431 1500 [[package]] ··· 1455 1524 1456 1525 [[package]] 1457 1526 name = "idna" 1458 - version = "0.5.0" 1527 + version = "0.3.0" 1459 1528 source = "registry+https://github.com/rust-lang/crates.io-index" 1460 - checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 1529 + checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" 1461 1530 dependencies = [ 1462 1531 "unicode-bidi", 1463 1532 "unicode-normalization", 1464 1533 ] 1465 1534 1466 1535 [[package]] 1467 - name = "ignore" 1468 - version = "0.4.22" 1469 - source = "registry+https://github.com/rust-lang/crates.io-index" 1470 - checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" 1471 - dependencies = [ 1472 - "crossbeam-deque", 1473 - "globset", 1474 - "log", 1475 - "memchr", 1476 - "regex-automata 0.4.5", 1477 - "same-file", 1478 - "walkdir", 1479 - "winapi-util", 1480 - ] 1481 - 1482 - [[package]] 1483 - name = "image" 1484 - version = "0.24.9" 1536 + name = "idna" 1537 + version = "0.5.0" 1485 1538 source = "registry+https://github.com/rust-lang/crates.io-index" 1486 - checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" 1539 + checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 1487 1540 dependencies = [ 1488 - "bytemuck", 1489 - "byteorder", 1490 - "color_quant", 1491 - "num-traits", 1541 + "unicode-bidi", 1542 + "unicode-normalization", 1492 1543 ] 1493 1544 1494 1545 [[package]] ··· 1504 1555 1505 1556 [[package]] 1506 1557 name = "indexmap" 1507 - version = "2.2.2" 1558 + version = "2.4.0" 1508 1559 source = "registry+https://github.com/rust-lang/crates.io-index" 1509 - checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" 1560 + checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" 1510 1561 dependencies = [ 1511 1562 "equivalent", 1512 - "hashbrown 0.14.3", 1563 + "hashbrown 0.14.5", 1513 1564 "serde", 1514 1565 ] 1515 1566 ··· 1523 1574 ] 1524 1575 1525 1576 [[package]] 1577 + name = "infer" 1578 + version = "0.15.0" 1579 + source = "registry+https://github.com/rust-lang/crates.io-index" 1580 + checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199" 1581 + dependencies = [ 1582 + "cfb", 1583 + ] 1584 + 1585 + [[package]] 1526 1586 name = "inotify" 1527 1587 version = "0.9.6" 1528 1588 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1544 1604 1545 1605 [[package]] 1546 1606 name = "instant" 1547 - version = "0.1.12" 1607 + version = "0.1.13" 1548 1608 source = "registry+https://github.com/rust-lang/crates.io-index" 1549 - checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 1609 + checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" 1550 1610 dependencies = [ 1551 1611 "cfg-if", 1552 1612 ] ··· 1566 1626 1567 1627 [[package]] 1568 1628 name = "ipnet" 1569 - version = "2.8.0" 1629 + version = "2.9.0" 1570 1630 source = "registry+https://github.com/rust-lang/crates.io-index" 1571 - checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" 1631 + checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" 1572 1632 1573 1633 [[package]] 1574 1634 name = "is-docker" ··· 1597 1657 1598 1658 [[package]] 1599 1659 name = "itoa" 1600 - version = "1.0.10" 1660 + version = "1.0.11" 1601 1661 source = "registry+https://github.com/rust-lang/crates.io-index" 1602 - checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" 1662 + checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 1603 1663 1604 1664 [[package]] 1605 1665 name = "javascriptcore-rs" 1606 - version = "0.16.0" 1666 + version = "1.1.2" 1607 1667 source = "registry+https://github.com/rust-lang/crates.io-index" 1608 - checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" 1668 + checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" 1609 1669 dependencies = [ 1610 1670 "bitflags 1.3.2", 1611 1671 "glib", ··· 1614 1674 1615 1675 [[package]] 1616 1676 name = "javascriptcore-rs-sys" 1617 - version = "0.4.0" 1677 + version = "1.1.1" 1618 1678 source = "registry+https://github.com/rust-lang/crates.io-index" 1619 - checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" 1679 + checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" 1620 1680 dependencies = [ 1621 1681 "glib-sys", 1622 1682 "gobject-sys", 1623 1683 "libc", 1624 - "system-deps 5.0.0", 1684 + "system-deps", 1625 1685 ] 1626 1686 1627 1687 [[package]] 1628 1688 name = "jni" 1629 - version = "0.20.0" 1689 + version = "0.21.1" 1630 1690 source = "registry+https://github.com/rust-lang/crates.io-index" 1631 - checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" 1691 + checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" 1632 1692 dependencies = [ 1633 1693 "cesu8", 1694 + "cfg-if", 1634 1695 "combine", 1635 1696 "jni-sys", 1636 1697 "log", 1637 1698 "thiserror", 1638 1699 "walkdir", 1700 + "windows-sys 0.45.0", 1639 1701 ] 1640 1702 1641 1703 [[package]] ··· 1646 1708 1647 1709 [[package]] 1648 1710 name = "js-sys" 1649 - version = "0.3.55" 1711 + version = "0.3.70" 1650 1712 source = "registry+https://github.com/rust-lang/crates.io-index" 1651 - checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" 1713 + checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" 1652 1714 dependencies = [ 1653 1715 "wasm-bindgen", 1654 1716 ] 1655 1717 1656 1718 [[package]] 1657 1719 name = "json-patch" 1658 - version = "1.2.0" 1720 + version = "1.4.0" 1721 + source = "registry+https://github.com/rust-lang/crates.io-index" 1722 + checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" 1723 + dependencies = [ 1724 + "serde", 1725 + "serde_json", 1726 + "thiserror", 1727 + ] 1728 + 1729 + [[package]] 1730 + name = "json-patch" 1731 + version = "2.0.0" 1659 1732 source = "registry+https://github.com/rust-lang/crates.io-index" 1660 - checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6" 1733 + checksum = "5b1fb8864823fad91877e6caea0baca82e49e8db50f8e5c9f9a453e27d3330fc" 1661 1734 dependencies = [ 1735 + "jsonptr", 1662 1736 "serde", 1663 1737 "serde_json", 1664 1738 "thiserror", 1665 - "treediff", 1739 + ] 1740 + 1741 + [[package]] 1742 + name = "jsonptr" 1743 + version = "0.4.7" 1744 + source = "registry+https://github.com/rust-lang/crates.io-index" 1745 + checksum = "1c6e529149475ca0b2820835d3dce8fcc41c6b943ca608d32f35b449255e4627" 1746 + dependencies = [ 1747 + "fluent-uri", 1748 + "serde", 1749 + "serde_json", 1750 + ] 1751 + 1752 + [[package]] 1753 + name = "keyboard-types" 1754 + version = "0.7.0" 1755 + source = "registry+https://github.com/rust-lang/crates.io-index" 1756 + checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" 1757 + dependencies = [ 1758 + "bitflags 2.6.0", 1759 + "serde", 1760 + "unicode-segmentation", 1666 1761 ] 1667 1762 1668 1763 [[package]] ··· 1700 1795 1701 1796 [[package]] 1702 1797 name = "lazy_static" 1703 - version = "1.4.0" 1798 + version = "1.5.0" 1704 1799 source = "registry+https://github.com/rust-lang/crates.io-index" 1705 - checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1800 + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1706 1801 1707 1802 [[package]] 1708 1803 name = "libappindicator" 1709 - version = "0.7.1" 1804 + version = "0.9.0" 1710 1805 source = "registry+https://github.com/rust-lang/crates.io-index" 1711 - checksum = "db2d3cb96d092b4824cb306c9e544c856a4cb6210c1081945187f7f1924b47e8" 1806 + checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" 1712 1807 dependencies = [ 1713 1808 "glib", 1714 1809 "gtk", ··· 1719 1814 1720 1815 [[package]] 1721 1816 name = "libappindicator-sys" 1722 - version = "0.7.3" 1817 + version = "0.9.0" 1723 1818 source = "registry+https://github.com/rust-lang/crates.io-index" 1724 - checksum = "f1b3b6681973cea8cc3bce7391e6d7d5502720b80a581c9a95c9cbaf592826aa" 1819 + checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" 1725 1820 dependencies = [ 1726 1821 "gtk-sys", 1727 1822 "libloading", ··· 1730 1825 1731 1826 [[package]] 1732 1827 name = "libc" 1733 - version = "0.2.153" 1828 + version = "0.2.158" 1734 1829 source = "registry+https://github.com/rust-lang/crates.io-index" 1735 - checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" 1830 + checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" 1736 1831 1737 1832 [[package]] 1738 1833 name = "libloading" ··· 1746 1841 1747 1842 [[package]] 1748 1843 name = "libredox" 1749 - version = "0.0.1" 1844 + version = "0.1.3" 1750 1845 source = "registry+https://github.com/rust-lang/crates.io-index" 1751 - checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" 1846 + checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" 1752 1847 dependencies = [ 1753 - "bitflags 2.4.2", 1848 + "bitflags 2.6.0", 1754 1849 "libc", 1755 1850 "redox_syscall", 1756 - ] 1757 - 1758 - [[package]] 1759 - name = "line-wrap" 1760 - version = "0.1.1" 1761 - source = "registry+https://github.com/rust-lang/crates.io-index" 1762 - checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" 1763 - dependencies = [ 1764 - "safemem", 1765 1851 ] 1766 1852 1767 1853 [[package]] 1768 1854 name = "linux-raw-sys" 1769 - version = "0.4.13" 1855 + version = "0.4.14" 1770 1856 source = "registry+https://github.com/rust-lang/crates.io-index" 1771 - checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" 1857 + checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" 1772 1858 1773 1859 [[package]] 1774 1860 name = "lock_api" 1775 - version = "0.4.11" 1861 + version = "0.4.12" 1776 1862 source = "registry+https://github.com/rust-lang/crates.io-index" 1777 - checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" 1863 + checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 1778 1864 dependencies = [ 1779 1865 "autocfg", 1780 1866 "scopeguard", ··· 1782 1868 1783 1869 [[package]] 1784 1870 name = "log" 1785 - version = "0.4.20" 1871 + version = "0.4.22" 1786 1872 source = "registry+https://github.com/rust-lang/crates.io-index" 1787 - checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" 1873 + checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 1788 1874 1789 1875 [[package]] 1790 1876 name = "loom" ··· 1847 1933 1848 1934 [[package]] 1849 1935 name = "memchr" 1850 - version = "2.7.1" 1936 + version = "2.7.4" 1851 1937 source = "registry+https://github.com/rust-lang/crates.io-index" 1852 - checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" 1938 + checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 1853 1939 1854 1940 [[package]] 1855 1941 name = "memoffset" 1856 - version = "0.9.0" 1942 + version = "0.9.1" 1857 1943 source = "registry+https://github.com/rust-lang/crates.io-index" 1858 - checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" 1944 + checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" 1859 1945 dependencies = [ 1860 1946 "autocfg", 1861 1947 ] ··· 1868 1954 1869 1955 [[package]] 1870 1956 name = "miniz_oxide" 1871 - version = "0.7.2" 1957 + version = "0.7.4" 1872 1958 source = "registry+https://github.com/rust-lang/crates.io-index" 1873 - checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" 1959 + checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" 1874 1960 dependencies = [ 1875 1961 "adler", 1876 1962 "simd-adler32", 1877 1963 ] 1878 1964 1879 1965 [[package]] 1966 + name = "miniz_oxide" 1967 + version = "0.8.0" 1968 + source = "registry+https://github.com/rust-lang/crates.io-index" 1969 + checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" 1970 + dependencies = [ 1971 + "adler2", 1972 + ] 1973 + 1974 + [[package]] 1880 1975 name = "mio" 1881 - version = "0.8.10" 1976 + version = "0.8.11" 1882 1977 source = "registry+https://github.com/rust-lang/crates.io-index" 1883 - checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" 1978 + checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" 1884 1979 dependencies = [ 1885 1980 "libc", 1886 1981 "log", ··· 1889 1984 ] 1890 1985 1891 1986 [[package]] 1987 + name = "mio" 1988 + version = "1.0.2" 1989 + source = "registry+https://github.com/rust-lang/crates.io-index" 1990 + checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" 1991 + dependencies = [ 1992 + "hermit-abi", 1993 + "libc", 1994 + "wasi 0.11.0+wasi-snapshot-preview1", 1995 + "windows-sys 0.52.0", 1996 + ] 1997 + 1998 + [[package]] 1892 1999 name = "mslnk" 1893 2000 version = "0.1.8" 1894 2001 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1900 2007 ] 1901 2008 1902 2009 [[package]] 2010 + name = "muda" 2011 + version = "0.14.0" 2012 + source = "registry+https://github.com/rust-lang/crates.io-index" 2013 + checksum = "86c410a9d21523a819e84881603fbc00331c8001eb899964952046671deddb9c" 2014 + dependencies = [ 2015 + "cocoa", 2016 + "crossbeam-channel", 2017 + "dpi", 2018 + "gtk", 2019 + "keyboard-types", 2020 + "objc", 2021 + "once_cell", 2022 + "png", 2023 + "serde", 2024 + "thiserror", 2025 + "windows-sys 0.59.0", 2026 + ] 2027 + 2028 + [[package]] 1903 2029 name = "native-tls" 1904 - version = "0.2.11" 2030 + version = "0.2.12" 1905 2031 source = "registry+https://github.com/rust-lang/crates.io-index" 1906 - checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" 2032 + checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" 1907 2033 dependencies = [ 1908 - "lazy_static", 1909 2034 "libc", 1910 2035 "log", 1911 2036 "openssl", ··· 1919 2044 1920 2045 [[package]] 1921 2046 name = "ndk" 1922 - version = "0.6.0" 2047 + version = "0.9.0" 1923 2048 source = "registry+https://github.com/rust-lang/crates.io-index" 1924 - checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" 2049 + checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" 1925 2050 dependencies = [ 1926 - "bitflags 1.3.2", 2051 + "bitflags 2.6.0", 1927 2052 "jni-sys", 2053 + "log", 1928 2054 "ndk-sys", 1929 2055 "num_enum", 2056 + "raw-window-handle", 1930 2057 "thiserror", 1931 2058 ] 1932 2059 ··· 1938 2065 1939 2066 [[package]] 1940 2067 name = "ndk-sys" 1941 - version = "0.3.0" 2068 + version = "0.6.0+11769913" 1942 2069 source = "registry+https://github.com/rust-lang/crates.io-index" 1943 - checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" 2070 + checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" 1944 2071 dependencies = [ 1945 2072 "jni-sys", 1946 2073 ] 1947 2074 1948 2075 [[package]] 1949 2076 name = "new_debug_unreachable" 1950 - version = "1.0.4" 2077 + version = "1.0.6" 1951 2078 source = "registry+https://github.com/rust-lang/crates.io-index" 1952 - checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" 2079 + checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 1953 2080 1954 2081 [[package]] 1955 2082 name = "nodrop" ··· 1963 2090 source = "registry+https://github.com/rust-lang/crates.io-index" 1964 2091 checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" 1965 2092 dependencies = [ 1966 - "bitflags 2.4.2", 2093 + "bitflags 2.6.0", 1967 2094 "crossbeam-channel", 1968 2095 "filetime", 1969 2096 "fsevent-sys", ··· 1971 2098 "kqueue", 1972 2099 "libc", 1973 2100 "log", 1974 - "mio", 2101 + "mio 0.8.11", 1975 2102 "walkdir", 1976 2103 "windows-sys 0.48.0", 1977 2104 ] ··· 1994 2121 1995 2122 [[package]] 1996 2123 name = "num-traits" 1997 - version = "0.2.18" 2124 + version = "0.2.19" 1998 2125 source = "registry+https://github.com/rust-lang/crates.io-index" 1999 - checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" 2126 + checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2000 2127 dependencies = [ 2001 2128 "autocfg", 2002 2129 ] 2003 2130 2004 2131 [[package]] 2005 - name = "num_cpus" 2006 - version = "1.16.0" 2007 - source = "registry+https://github.com/rust-lang/crates.io-index" 2008 - checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 2009 - dependencies = [ 2010 - "hermit-abi", 2011 - "libc", 2012 - ] 2013 - 2014 - [[package]] 2015 2132 name = "num_enum" 2016 - version = "0.5.11" 2133 + version = "0.7.3" 2017 2134 source = "registry+https://github.com/rust-lang/crates.io-index" 2018 - checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" 2135 + checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" 2019 2136 dependencies = [ 2020 2137 "num_enum_derive", 2021 2138 ] 2022 2139 2023 2140 [[package]] 2024 2141 name = "num_enum_derive" 2025 - version = "0.5.11" 2142 + version = "0.7.3" 2026 2143 source = "registry+https://github.com/rust-lang/crates.io-index" 2027 - checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" 2144 + checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" 2028 2145 dependencies = [ 2029 - "proc-macro-crate", 2146 + "proc-macro-crate 2.0.2", 2030 2147 "proc-macro2", 2031 2148 "quote", 2032 - "syn 1.0.109", 2149 + "syn 2.0.75", 2033 2150 ] 2034 2151 2035 2152 [[package]] ··· 2044 2161 2045 2162 [[package]] 2046 2163 name = "objc-sys" 2047 - version = "0.3.2" 2164 + version = "0.3.5" 2048 2165 source = "registry+https://github.com/rust-lang/crates.io-index" 2049 - checksum = "c7c71324e4180d0899963fc83d9d241ac39e699609fc1025a850aadac8257459" 2166 + checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" 2050 2167 2051 2168 [[package]] 2052 2169 name = "objc2" ··· 2055 2172 checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" 2056 2173 dependencies = [ 2057 2174 "objc-sys", 2058 - "objc2-encode", 2175 + "objc2-encode 3.0.0", 2176 + ] 2177 + 2178 + [[package]] 2179 + name = "objc2" 2180 + version = "0.5.2" 2181 + source = "registry+https://github.com/rust-lang/crates.io-index" 2182 + checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" 2183 + dependencies = [ 2184 + "objc-sys", 2185 + "objc2-encode 4.0.3", 2186 + ] 2187 + 2188 + [[package]] 2189 + name = "objc2-app-kit" 2190 + version = "0.2.2" 2191 + source = "registry+https://github.com/rust-lang/crates.io-index" 2192 + checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" 2193 + dependencies = [ 2194 + "bitflags 2.6.0", 2195 + "block2", 2196 + "libc", 2197 + "objc2 0.5.2", 2198 + "objc2-core-data", 2199 + "objc2-core-image", 2200 + "objc2-foundation", 2201 + "objc2-quartz-core", 2202 + ] 2203 + 2204 + [[package]] 2205 + name = "objc2-core-data" 2206 + version = "0.2.2" 2207 + source = "registry+https://github.com/rust-lang/crates.io-index" 2208 + checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" 2209 + dependencies = [ 2210 + "bitflags 2.6.0", 2211 + "block2", 2212 + "objc2 0.5.2", 2213 + "objc2-foundation", 2214 + ] 2215 + 2216 + [[package]] 2217 + name = "objc2-core-image" 2218 + version = "0.2.2" 2219 + source = "registry+https://github.com/rust-lang/crates.io-index" 2220 + checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" 2221 + dependencies = [ 2222 + "block2", 2223 + "objc2 0.5.2", 2224 + "objc2-foundation", 2225 + "objc2-metal", 2059 2226 ] 2060 2227 2061 2228 [[package]] ··· 2065 2232 checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666" 2066 2233 2067 2234 [[package]] 2235 + name = "objc2-encode" 2236 + version = "4.0.3" 2237 + source = "registry+https://github.com/rust-lang/crates.io-index" 2238 + checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" 2239 + 2240 + [[package]] 2241 + name = "objc2-foundation" 2242 + version = "0.2.2" 2243 + source = "registry+https://github.com/rust-lang/crates.io-index" 2244 + checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" 2245 + dependencies = [ 2246 + "bitflags 2.6.0", 2247 + "block2", 2248 + "dispatch", 2249 + "libc", 2250 + "objc2 0.5.2", 2251 + ] 2252 + 2253 + [[package]] 2254 + name = "objc2-metal" 2255 + version = "0.2.2" 2256 + source = "registry+https://github.com/rust-lang/crates.io-index" 2257 + checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" 2258 + dependencies = [ 2259 + "bitflags 2.6.0", 2260 + "block2", 2261 + "objc2 0.5.2", 2262 + "objc2-foundation", 2263 + ] 2264 + 2265 + [[package]] 2266 + name = "objc2-quartz-core" 2267 + version = "0.2.2" 2268 + source = "registry+https://github.com/rust-lang/crates.io-index" 2269 + checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" 2270 + dependencies = [ 2271 + "bitflags 2.6.0", 2272 + "block2", 2273 + "objc2 0.5.2", 2274 + "objc2-foundation", 2275 + "objc2-metal", 2276 + ] 2277 + 2278 + [[package]] 2068 2279 name = "objc_exception" 2069 2280 version = "0.1.2" 2070 2281 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2084 2295 2085 2296 [[package]] 2086 2297 name = "object" 2087 - version = "0.32.2" 2298 + version = "0.36.3" 2088 2299 source = "registry+https://github.com/rust-lang/crates.io-index" 2089 - checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" 2300 + checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" 2090 2301 dependencies = [ 2091 2302 "memchr", 2092 2303 ] ··· 2099 2310 2100 2311 [[package]] 2101 2312 name = "open" 2102 - version = "3.2.0" 2103 - source = "registry+https://github.com/rust-lang/crates.io-index" 2104 - checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" 2105 - dependencies = [ 2106 - "pathdiff", 2107 - "windows-sys 0.42.0", 2108 - ] 2109 - 2110 - [[package]] 2111 - name = "open" 2112 - version = "5.1.2" 2313 + version = "5.3.0" 2113 2314 source = "registry+https://github.com/rust-lang/crates.io-index" 2114 - checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32" 2315 + checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3" 2115 2316 dependencies = [ 2116 2317 "is-wsl", 2117 2318 "libc", ··· 2120 2321 2121 2322 [[package]] 2122 2323 name = "openssl" 2123 - version = "0.10.57" 2324 + version = "0.10.66" 2124 2325 source = "registry+https://github.com/rust-lang/crates.io-index" 2125 - checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" 2326 + checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" 2126 2327 dependencies = [ 2127 - "bitflags 2.4.2", 2328 + "bitflags 2.6.0", 2128 2329 "cfg-if", 2129 - "foreign-types", 2330 + "foreign-types 0.3.2", 2130 2331 "libc", 2131 2332 "once_cell", 2132 2333 "openssl-macros", ··· 2141 2342 dependencies = [ 2142 2343 "proc-macro2", 2143 2344 "quote", 2144 - "syn 2.0.48", 2345 + "syn 2.0.75", 2145 2346 ] 2146 2347 2147 2348 [[package]] ··· 2152 2353 2153 2354 [[package]] 2154 2355 name = "openssl-sys" 2155 - version = "0.9.93" 2356 + version = "0.9.103" 2156 2357 source = "registry+https://github.com/rust-lang/crates.io-index" 2157 - checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" 2358 + checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" 2158 2359 dependencies = [ 2159 2360 "cc", 2160 2361 "libc", ··· 2169 2370 checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 2170 2371 2171 2372 [[package]] 2373 + name = "os_pipe" 2374 + version = "1.2.1" 2375 + source = "registry+https://github.com/rust-lang/crates.io-index" 2376 + checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" 2377 + dependencies = [ 2378 + "libc", 2379 + "windows-sys 0.59.0", 2380 + ] 2381 + 2382 + [[package]] 2172 2383 name = "overload" 2173 2384 version = "0.1.1" 2174 2385 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2176 2387 2177 2388 [[package]] 2178 2389 name = "pango" 2179 - version = "0.15.10" 2390 + version = "0.18.3" 2180 2391 source = "registry+https://github.com/rust-lang/crates.io-index" 2181 - checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" 2392 + checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" 2182 2393 dependencies = [ 2183 - "bitflags 1.3.2", 2394 + "gio", 2184 2395 "glib", 2185 2396 "libc", 2186 2397 "once_cell", ··· 2189 2400 2190 2401 [[package]] 2191 2402 name = "pango-sys" 2192 - version = "0.15.10" 2403 + version = "0.18.0" 2193 2404 source = "registry+https://github.com/rust-lang/crates.io-index" 2194 - checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" 2405 + checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" 2195 2406 dependencies = [ 2196 2407 "glib-sys", 2197 2408 "gobject-sys", 2198 2409 "libc", 2199 - "system-deps 6.2.0", 2410 + "system-deps", 2200 2411 ] 2201 2412 2202 2413 [[package]] 2203 2414 name = "parking_lot" 2204 - version = "0.12.1" 2415 + version = "0.12.3" 2205 2416 source = "registry+https://github.com/rust-lang/crates.io-index" 2206 - checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 2417 + checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 2207 2418 dependencies = [ 2208 2419 "lock_api", 2209 2420 "parking_lot_core", ··· 2211 2422 2212 2423 [[package]] 2213 2424 name = "parking_lot_core" 2214 - version = "0.9.9" 2425 + version = "0.9.10" 2215 2426 source = "registry+https://github.com/rust-lang/crates.io-index" 2216 - checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" 2427 + checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 2217 2428 dependencies = [ 2218 2429 "cfg-if", 2219 2430 "libc", 2220 2431 "redox_syscall", 2221 2432 "smallvec", 2222 - "windows-targets 0.48.5", 2433 + "windows-targets 0.52.6", 2223 2434 ] 2224 2435 2225 2436 [[package]] ··· 2338 2549 "phf_shared 0.11.2", 2339 2550 "proc-macro2", 2340 2551 "quote", 2341 - "syn 2.0.48", 2552 + "syn 2.0.75", 2342 2553 ] 2343 2554 2344 2555 [[package]] ··· 2385 2596 dependencies = [ 2386 2597 "proc-macro2", 2387 2598 "quote", 2388 - "syn 2.0.48", 2599 + "syn 2.0.75", 2389 2600 ] 2390 2601 2391 2602 [[package]] 2392 2603 name = "pin-project-lite" 2393 - version = "0.2.13" 2604 + version = "0.2.14" 2394 2605 source = "registry+https://github.com/rust-lang/crates.io-index" 2395 - checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 2606 + checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" 2396 2607 2397 2608 [[package]] 2398 2609 name = "pin-utils" ··· 2402 2613 2403 2614 [[package]] 2404 2615 name = "pkg-config" 2405 - version = "0.3.29" 2616 + version = "0.3.30" 2406 2617 source = "registry+https://github.com/rust-lang/crates.io-index" 2407 - checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" 2618 + checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" 2408 2619 2409 2620 [[package]] 2410 2621 name = "plist" 2411 - version = "1.6.0" 2622 + version = "1.7.0" 2412 2623 source = "registry+https://github.com/rust-lang/crates.io-index" 2413 - checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef" 2624 + checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" 2414 2625 dependencies = [ 2415 - "base64 0.21.7", 2416 - "indexmap 2.2.2", 2417 - "line-wrap", 2626 + "base64 0.22.1", 2627 + "indexmap 2.4.0", 2418 2628 "quick-xml", 2419 2629 "serde", 2420 2630 "time", ··· 2422 2632 2423 2633 [[package]] 2424 2634 name = "png" 2425 - version = "0.17.11" 2635 + version = "0.17.13" 2426 2636 source = "registry+https://github.com/rust-lang/crates.io-index" 2427 - checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a" 2637 + checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" 2428 2638 dependencies = [ 2429 2639 "bitflags 1.3.2", 2430 2640 "crc32fast", 2431 2641 "fdeflate", 2432 2642 "flate2", 2433 - "miniz_oxide", 2643 + "miniz_oxide 0.7.4", 2434 2644 ] 2435 2645 2436 2646 [[package]] ··· 2441 2651 2442 2652 [[package]] 2443 2653 name = "ppv-lite86" 2444 - version = "0.2.17" 2654 + version = "0.2.20" 2445 2655 source = "registry+https://github.com/rust-lang/crates.io-index" 2446 - checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 2656 + checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" 2657 + dependencies = [ 2658 + "zerocopy", 2659 + ] 2447 2660 2448 2661 [[package]] 2449 2662 name = "precomputed-hash" ··· 2462 2675 ] 2463 2676 2464 2677 [[package]] 2678 + name = "proc-macro-crate" 2679 + version = "2.0.2" 2680 + source = "registry+https://github.com/rust-lang/crates.io-index" 2681 + checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" 2682 + dependencies = [ 2683 + "toml_datetime", 2684 + "toml_edit 0.20.2", 2685 + ] 2686 + 2687 + [[package]] 2465 2688 name = "proc-macro-error" 2466 2689 version = "1.0.4" 2467 2690 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2493 2716 2494 2717 [[package]] 2495 2718 name = "proc-macro2" 2496 - version = "1.0.78" 2719 + version = "1.0.86" 2497 2720 source = "registry+https://github.com/rust-lang/crates.io-index" 2498 - checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" 2721 + checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" 2499 2722 dependencies = [ 2500 2723 "unicode-ident", 2501 2724 ] 2502 2725 2503 2726 [[package]] 2727 + name = "psl-types" 2728 + version = "2.0.11" 2729 + source = "registry+https://github.com/rust-lang/crates.io-index" 2730 + checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" 2731 + 2732 + [[package]] 2733 + name = "publicsuffix" 2734 + version = "2.2.3" 2735 + source = "registry+https://github.com/rust-lang/crates.io-index" 2736 + checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457" 2737 + dependencies = [ 2738 + "idna 0.3.0", 2739 + "psl-types", 2740 + ] 2741 + 2742 + [[package]] 2504 2743 name = "quick-xml" 2505 - version = "0.31.0" 2744 + version = "0.32.0" 2506 2745 source = "registry+https://github.com/rust-lang/crates.io-index" 2507 - checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" 2746 + checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" 2508 2747 dependencies = [ 2509 2748 "memchr", 2510 2749 ] 2511 2750 2512 2751 [[package]] 2752 + name = "quinn" 2753 + version = "0.11.3" 2754 + source = "registry+https://github.com/rust-lang/crates.io-index" 2755 + checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156" 2756 + dependencies = [ 2757 + "bytes", 2758 + "pin-project-lite", 2759 + "quinn-proto", 2760 + "quinn-udp", 2761 + "rustc-hash", 2762 + "rustls", 2763 + "socket2", 2764 + "thiserror", 2765 + "tokio", 2766 + "tracing", 2767 + ] 2768 + 2769 + [[package]] 2770 + name = "quinn-proto" 2771 + version = "0.11.6" 2772 + source = "registry+https://github.com/rust-lang/crates.io-index" 2773 + checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd" 2774 + dependencies = [ 2775 + "bytes", 2776 + "rand 0.8.5", 2777 + "ring", 2778 + "rustc-hash", 2779 + "rustls", 2780 + "slab", 2781 + "thiserror", 2782 + "tinyvec", 2783 + "tracing", 2784 + ] 2785 + 2786 + [[package]] 2787 + name = "quinn-udp" 2788 + version = "0.5.4" 2789 + source = "registry+https://github.com/rust-lang/crates.io-index" 2790 + checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" 2791 + dependencies = [ 2792 + "libc", 2793 + "once_cell", 2794 + "socket2", 2795 + "tracing", 2796 + "windows-sys 0.52.0", 2797 + ] 2798 + 2799 + [[package]] 2513 2800 name = "quote" 2514 - version = "1.0.35" 2801 + version = "1.0.36" 2515 2802 source = "registry+https://github.com/rust-lang/crates.io-index" 2516 - checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" 2803 + checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" 2517 2804 dependencies = [ 2518 2805 "proc-macro2", 2519 2806 ] ··· 2578 2865 source = "registry+https://github.com/rust-lang/crates.io-index" 2579 2866 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2580 2867 dependencies = [ 2581 - "getrandom 0.2.12", 2868 + "getrandom 0.2.15", 2582 2869 ] 2583 2870 2584 2871 [[package]] ··· 2601 2888 2602 2889 [[package]] 2603 2890 name = "raw-window-handle" 2604 - version = "0.5.2" 2891 + version = "0.6.2" 2605 2892 source = "registry+https://github.com/rust-lang/crates.io-index" 2606 - checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" 2893 + checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" 2607 2894 2608 2895 [[package]] 2609 2896 name = "redox_syscall" 2610 - version = "0.4.1" 2897 + version = "0.5.3" 2611 2898 source = "registry+https://github.com/rust-lang/crates.io-index" 2612 - checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 2899 + checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" 2613 2900 dependencies = [ 2614 - "bitflags 1.3.2", 2901 + "bitflags 2.6.0", 2615 2902 ] 2616 2903 2617 2904 [[package]] 2618 2905 name = "redox_users" 2619 - version = "0.4.4" 2906 + version = "0.4.6" 2620 2907 source = "registry+https://github.com/rust-lang/crates.io-index" 2621 - checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" 2908 + checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" 2622 2909 dependencies = [ 2623 - "getrandom 0.2.12", 2910 + "getrandom 0.2.15", 2624 2911 "libredox", 2625 2912 "thiserror", 2626 2913 ] 2627 2914 2628 2915 [[package]] 2629 2916 name = "regex" 2630 - version = "1.10.4" 2917 + version = "1.10.6" 2631 2918 source = "registry+https://github.com/rust-lang/crates.io-index" 2632 - checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" 2919 + checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" 2633 2920 dependencies = [ 2634 2921 "aho-corasick", 2635 2922 "memchr", 2636 - "regex-automata 0.4.5", 2637 - "regex-syntax 0.8.2", 2923 + "regex-automata 0.4.7", 2924 + "regex-syntax 0.8.4", 2638 2925 ] 2639 2926 2640 2927 [[package]] ··· 2648 2935 2649 2936 [[package]] 2650 2937 name = "regex-automata" 2651 - version = "0.4.5" 2938 + version = "0.4.7" 2652 2939 source = "registry+https://github.com/rust-lang/crates.io-index" 2653 - checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" 2940 + checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" 2654 2941 dependencies = [ 2655 2942 "aho-corasick", 2656 2943 "memchr", 2657 - "regex-syntax 0.8.2", 2944 + "regex-syntax 0.8.4", 2658 2945 ] 2659 2946 2660 2947 [[package]] ··· 2665 2952 2666 2953 [[package]] 2667 2954 name = "regex-syntax" 2668 - version = "0.8.2" 2955 + version = "0.8.4" 2669 2956 source = "registry+https://github.com/rust-lang/crates.io-index" 2670 - checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" 2957 + checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" 2671 2958 2672 2959 [[package]] 2673 2960 name = "reqwest" 2674 - version = "0.11.20" 2961 + version = "0.12.7" 2675 2962 source = "registry+https://github.com/rust-lang/crates.io-index" 2676 - checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" 2963 + checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" 2677 2964 dependencies = [ 2678 - "base64 0.21.7", 2965 + "base64 0.22.1", 2679 2966 "bytes", 2967 + "cookie", 2968 + "cookie_store", 2680 2969 "encoding_rs", 2970 + "futures-channel", 2681 2971 "futures-core", 2682 2972 "futures-util", 2683 - "h2 0.3.24", 2684 - "http 0.2.11", 2685 - "http-body 0.4.6", 2686 - "hyper 0.14.28", 2687 - "hyper-tls 0.5.0", 2973 + "h2", 2974 + "http", 2975 + "http-body", 2976 + "http-body-util", 2977 + "hyper", 2978 + "hyper-rustls", 2979 + "hyper-tls", 2980 + "hyper-util", 2688 2981 "ipnet", 2689 2982 "js-sys", 2690 2983 "log", ··· 2693 2986 "once_cell", 2694 2987 "percent-encoding", 2695 2988 "pin-project-lite", 2989 + "quinn", 2990 + "rustls", 2991 + "rustls-pemfile", 2992 + "rustls-pki-types", 2696 2993 "serde", 2697 2994 "serde_json", 2698 2995 "serde_urlencoded", 2996 + "sync_wrapper", 2997 + "system-configuration", 2699 2998 "tokio", 2700 2999 "tokio-native-tls", 3000 + "tokio-rustls", 2701 3001 "tokio-util", 2702 3002 "tower-service", 2703 3003 "url", ··· 2705 3005 "wasm-bindgen-futures", 2706 3006 "wasm-streams", 2707 3007 "web-sys", 2708 - "winreg 0.50.0", 3008 + "webpki-roots", 3009 + "windows-registry", 2709 3010 ] 2710 3011 2711 3012 [[package]] 2712 - name = "reqwest" 2713 - version = "0.12.4" 3013 + name = "ring" 3014 + version = "0.17.8" 2714 3015 source = "registry+https://github.com/rust-lang/crates.io-index" 2715 - checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" 3016 + checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" 2716 3017 dependencies = [ 2717 - "base64 0.22.0", 2718 - "bytes", 2719 - "encoding_rs", 2720 - "futures-channel", 2721 - "futures-core", 2722 - "futures-util", 2723 - "h2 0.4.4", 2724 - "http 1.1.0", 2725 - "http-body 1.0.0", 2726 - "http-body-util", 2727 - "hyper 1.3.1", 2728 - "hyper-tls 0.6.0", 2729 - "hyper-util", 2730 - "ipnet", 2731 - "js-sys", 2732 - "log", 2733 - "mime", 2734 - "native-tls", 2735 - "once_cell", 2736 - "percent-encoding", 2737 - "pin-project-lite", 2738 - "rustls-pemfile", 2739 - "serde", 2740 - "serde_json", 2741 - "serde_urlencoded", 2742 - "sync_wrapper", 2743 - "system-configuration", 2744 - "tokio", 2745 - "tokio-native-tls", 2746 - "tower-service", 2747 - "url", 2748 - "wasm-bindgen", 2749 - "wasm-bindgen-futures", 2750 - "web-sys", 2751 - "winreg 0.52.0", 3018 + "cc", 3019 + "cfg-if", 3020 + "getrandom 0.2.15", 3021 + "libc", 3022 + "spin", 3023 + "untrusted", 3024 + "windows-sys 0.52.0", 2752 3025 ] 2753 3026 2754 3027 [[package]] 2755 3028 name = "rustc-demangle" 2756 - version = "0.1.23" 3029 + version = "0.1.24" 3030 + source = "registry+https://github.com/rust-lang/crates.io-index" 3031 + checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 3032 + 3033 + [[package]] 3034 + name = "rustc-hash" 3035 + version = "2.0.0" 2757 3036 source = "registry+https://github.com/rust-lang/crates.io-index" 2758 - checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 3037 + checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" 2759 3038 2760 3039 [[package]] 2761 3040 name = "rustc_version" ··· 2768 3047 2769 3048 [[package]] 2770 3049 name = "rustix" 2771 - version = "0.38.31" 3050 + version = "0.38.34" 2772 3051 source = "registry+https://github.com/rust-lang/crates.io-index" 2773 - checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" 3052 + checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" 2774 3053 dependencies = [ 2775 - "bitflags 2.4.2", 3054 + "bitflags 2.6.0", 2776 3055 "errno", 2777 3056 "libc", 2778 3057 "linux-raw-sys", ··· 2780 3059 ] 2781 3060 2782 3061 [[package]] 3062 + name = "rustls" 3063 + version = "0.23.12" 3064 + source = "registry+https://github.com/rust-lang/crates.io-index" 3065 + checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" 3066 + dependencies = [ 3067 + "once_cell", 3068 + "ring", 3069 + "rustls-pki-types", 3070 + "rustls-webpki", 3071 + "subtle", 3072 + "zeroize", 3073 + ] 3074 + 3075 + [[package]] 2783 3076 name = "rustls-pemfile" 2784 - version = "2.1.2" 3077 + version = "2.1.3" 2785 3078 source = "registry+https://github.com/rust-lang/crates.io-index" 2786 - checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" 3079 + checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" 2787 3080 dependencies = [ 2788 - "base64 0.22.0", 3081 + "base64 0.22.1", 2789 3082 "rustls-pki-types", 2790 3083 ] 2791 3084 2792 3085 [[package]] 2793 3086 name = "rustls-pki-types" 2794 - version = "1.4.1" 3087 + version = "1.8.0" 2795 3088 source = "registry+https://github.com/rust-lang/crates.io-index" 2796 - checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" 3089 + checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" 2797 3090 2798 3091 [[package]] 2799 - name = "rustversion" 2800 - version = "1.0.14" 3092 + name = "rustls-webpki" 3093 + version = "0.102.6" 2801 3094 source = "registry+https://github.com/rust-lang/crates.io-index" 2802 - checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" 3095 + checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" 3096 + dependencies = [ 3097 + "ring", 3098 + "rustls-pki-types", 3099 + "untrusted", 3100 + ] 2803 3101 2804 3102 [[package]] 2805 - name = "ryu" 2806 - version = "1.0.16" 3103 + name = "rustversion" 3104 + version = "1.0.17" 2807 3105 source = "registry+https://github.com/rust-lang/crates.io-index" 2808 - checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" 3106 + checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" 2809 3107 2810 3108 [[package]] 2811 - name = "safemem" 2812 - version = "0.3.3" 3109 + name = "ryu" 3110 + version = "1.0.18" 2813 3111 source = "registry+https://github.com/rust-lang/crates.io-index" 2814 - checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" 3112 + checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 2815 3113 2816 3114 [[package]] 2817 3115 name = "same-file" ··· 2824 3122 2825 3123 [[package]] 2826 3124 name = "schannel" 2827 - version = "0.1.22" 3125 + version = "0.1.23" 3126 + source = "registry+https://github.com/rust-lang/crates.io-index" 3127 + checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" 3128 + dependencies = [ 3129 + "windows-sys 0.52.0", 3130 + ] 3131 + 3132 + [[package]] 3133 + name = "schemars" 3134 + version = "0.8.21" 3135 + source = "registry+https://github.com/rust-lang/crates.io-index" 3136 + checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" 3137 + dependencies = [ 3138 + "dyn-clone", 3139 + "indexmap 1.9.3", 3140 + "schemars_derive", 3141 + "serde", 3142 + "serde_json", 3143 + "url", 3144 + ] 3145 + 3146 + [[package]] 3147 + name = "schemars_derive" 3148 + version = "0.8.21" 2828 3149 source = "registry+https://github.com/rust-lang/crates.io-index" 2829 - checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" 3150 + checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" 2830 3151 dependencies = [ 2831 - "windows-sys 0.48.0", 3152 + "proc-macro2", 3153 + "quote", 3154 + "serde_derive_internals", 3155 + "syn 2.0.75", 2832 3156 ] 2833 3157 2834 3158 [[package]] ··· 2845 3169 2846 3170 [[package]] 2847 3171 name = "security-framework" 2848 - version = "2.9.2" 3172 + version = "2.11.1" 2849 3173 source = "registry+https://github.com/rust-lang/crates.io-index" 2850 - checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" 3174 + checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 2851 3175 dependencies = [ 2852 - "bitflags 1.3.2", 2853 - "core-foundation", 3176 + "bitflags 2.6.0", 3177 + "core-foundation 0.9.4", 2854 3178 "core-foundation-sys", 2855 3179 "libc", 2856 3180 "security-framework-sys", ··· 2858 3182 2859 3183 [[package]] 2860 3184 name = "security-framework-sys" 2861 - version = "2.9.1" 3185 + version = "2.11.1" 2862 3186 source = "registry+https://github.com/rust-lang/crates.io-index" 2863 - checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" 3187 + checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" 2864 3188 dependencies = [ 2865 3189 "core-foundation-sys", 2866 3190 "libc", ··· 2888 3212 2889 3213 [[package]] 2890 3214 name = "semver" 2891 - version = "1.0.21" 3215 + version = "1.0.23" 2892 3216 source = "registry+https://github.com/rust-lang/crates.io-index" 2893 - checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" 3217 + checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" 2894 3218 dependencies = [ 2895 3219 "serde", 2896 3220 ] 2897 3221 2898 3222 [[package]] 2899 3223 name = "serde" 2900 - version = "1.0.196" 3224 + version = "1.0.208" 2901 3225 source = "registry+https://github.com/rust-lang/crates.io-index" 2902 - checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" 3226 + checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" 2903 3227 dependencies = [ 2904 3228 "serde_derive", 2905 3229 ] 2906 3230 2907 3231 [[package]] 3232 + name = "serde-untagged" 3233 + version = "0.1.6" 3234 + source = "registry+https://github.com/rust-lang/crates.io-index" 3235 + checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6" 3236 + dependencies = [ 3237 + "erased-serde", 3238 + "serde", 3239 + "typeid", 3240 + ] 3241 + 3242 + [[package]] 2908 3243 name = "serde_derive" 2909 - version = "1.0.196" 3244 + version = "1.0.208" 2910 3245 source = "registry+https://github.com/rust-lang/crates.io-index" 2911 - checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" 3246 + checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" 2912 3247 dependencies = [ 2913 3248 "proc-macro2", 2914 3249 "quote", 2915 - "syn 2.0.48", 3250 + "syn 2.0.75", 3251 + ] 3252 + 3253 + [[package]] 3254 + name = "serde_derive_internals" 3255 + version = "0.29.1" 3256 + source = "registry+https://github.com/rust-lang/crates.io-index" 3257 + checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" 3258 + dependencies = [ 3259 + "proc-macro2", 3260 + "quote", 3261 + "syn 2.0.75", 2916 3262 ] 2917 3263 2918 3264 [[package]] 2919 3265 name = "serde_json" 2920 - version = "1.0.113" 3266 + version = "1.0.125" 2921 3267 source = "registry+https://github.com/rust-lang/crates.io-index" 2922 - checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" 3268 + checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" 2923 3269 dependencies = [ 2924 - "indexmap 2.2.2", 2925 - "itoa 1.0.10", 3270 + "itoa 1.0.11", 3271 + "memchr", 2926 3272 "ryu", 2927 3273 "serde", 2928 3274 ] 2929 3275 2930 3276 [[package]] 2931 3277 name = "serde_repr" 2932 - version = "0.1.18" 3278 + version = "0.1.19" 2933 3279 source = "registry+https://github.com/rust-lang/crates.io-index" 2934 - checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" 3280 + checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" 2935 3281 dependencies = [ 2936 3282 "proc-macro2", 2937 3283 "quote", 2938 - "syn 2.0.48", 3284 + "syn 2.0.75", 2939 3285 ] 2940 3286 2941 3287 [[package]] 2942 3288 name = "serde_spanned" 2943 - version = "0.6.5" 3289 + version = "0.6.7" 2944 3290 source = "registry+https://github.com/rust-lang/crates.io-index" 2945 - checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" 3291 + checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" 2946 3292 dependencies = [ 2947 3293 "serde", 2948 3294 ] ··· 2954 3300 checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 2955 3301 dependencies = [ 2956 3302 "form_urlencoded", 2957 - "itoa 1.0.10", 3303 + "itoa 1.0.11", 2958 3304 "ryu", 2959 3305 "serde", 2960 3306 ] 2961 3307 2962 3308 [[package]] 2963 3309 name = "serde_with" 2964 - version = "3.6.1" 3310 + version = "3.9.0" 2965 3311 source = "registry+https://github.com/rust-lang/crates.io-index" 2966 - checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270" 3312 + checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" 2967 3313 dependencies = [ 2968 - "base64 0.21.7", 3314 + "base64 0.22.1", 2969 3315 "chrono", 2970 3316 "hex", 2971 3317 "indexmap 1.9.3", 2972 - "indexmap 2.2.2", 3318 + "indexmap 2.4.0", 2973 3319 "serde", 2974 3320 "serde_derive", 2975 3321 "serde_json", ··· 2979 3325 2980 3326 [[package]] 2981 3327 name = "serde_with_macros" 2982 - version = "3.6.1" 3328 + version = "3.9.0" 2983 3329 source = "registry+https://github.com/rust-lang/crates.io-index" 2984 - checksum = "865f9743393e638991566a8b7a479043c2c8da94a33e0a31f18214c9cae0a64d" 3330 + checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" 2985 3331 dependencies = [ 2986 3332 "darling", 2987 3333 "proc-macro2", 2988 3334 "quote", 2989 - "syn 2.0.48", 3335 + "syn 2.0.75", 2990 3336 ] 2991 3337 2992 3338 [[package]] ··· 3042 3388 ] 3043 3389 3044 3390 [[package]] 3391 + name = "shared_child" 3392 + version = "1.0.1" 3393 + source = "registry+https://github.com/rust-lang/crates.io-index" 3394 + checksum = "09fa9338aed9a1df411814a5b2252f7cd206c55ae9bf2fa763f8de84603aa60c" 3395 + dependencies = [ 3396 + "libc", 3397 + "windows-sys 0.59.0", 3398 + ] 3399 + 3400 + [[package]] 3401 + name = "shlex" 3402 + version = "1.3.0" 3403 + source = "registry+https://github.com/rust-lang/crates.io-index" 3404 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 3405 + 3406 + [[package]] 3045 3407 name = "simd-adler32" 3046 3408 version = "0.3.7" 3047 3409 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3064 3426 3065 3427 [[package]] 3066 3428 name = "smallvec" 3067 - version = "1.13.1" 3429 + version = "1.13.2" 3068 3430 source = "registry+https://github.com/rust-lang/crates.io-index" 3069 - checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" 3431 + checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 3070 3432 3071 3433 [[package]] 3072 3434 name = "socket2" 3073 - version = "0.5.5" 3435 + version = "0.5.7" 3074 3436 source = "registry+https://github.com/rust-lang/crates.io-index" 3075 - checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" 3437 + checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" 3076 3438 dependencies = [ 3077 3439 "libc", 3078 - "windows-sys 0.48.0", 3440 + "windows-sys 0.52.0", 3079 3441 ] 3080 3442 3081 3443 [[package]] 3082 - name = "soup2" 3083 - version = "0.2.1" 3444 + name = "softbuffer" 3445 + version = "0.4.5" 3084 3446 source = "registry+https://github.com/rust-lang/crates.io-index" 3085 - checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" 3447 + checksum = "d623bff5d06f60d738990980d782c8c866997d9194cfe79ecad00aa2f76826dd" 3086 3448 dependencies = [ 3087 - "bitflags 1.3.2", 3449 + "bytemuck", 3450 + "cfg_aliases", 3451 + "core-graphics 0.23.2", 3452 + "foreign-types 0.5.0", 3453 + "js-sys", 3454 + "log", 3455 + "objc2 0.5.2", 3456 + "objc2-app-kit", 3457 + "objc2-foundation", 3458 + "objc2-quartz-core", 3459 + "raw-window-handle", 3460 + "redox_syscall", 3461 + "wasm-bindgen", 3462 + "web-sys", 3463 + "windows-sys 0.52.0", 3464 + ] 3465 + 3466 + [[package]] 3467 + name = "soup3" 3468 + version = "0.5.0" 3469 + source = "registry+https://github.com/rust-lang/crates.io-index" 3470 + checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" 3471 + dependencies = [ 3472 + "futures-channel", 3088 3473 "gio", 3089 3474 "glib", 3090 3475 "libc", 3091 - "once_cell", 3092 - "soup2-sys", 3476 + "soup3-sys", 3093 3477 ] 3094 3478 3095 3479 [[package]] 3096 - name = "soup2-sys" 3097 - version = "0.2.0" 3480 + name = "soup3-sys" 3481 + version = "0.5.0" 3098 3482 source = "registry+https://github.com/rust-lang/crates.io-index" 3099 - checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" 3483 + checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" 3100 3484 dependencies = [ 3101 - "bitflags 1.3.2", 3102 3485 "gio-sys", 3103 3486 "glib-sys", 3104 3487 "gobject-sys", 3105 3488 "libc", 3106 - "system-deps 5.0.0", 3489 + "system-deps", 3107 3490 ] 3108 3491 3109 3492 [[package]] 3493 + name = "spin" 3494 + version = "0.9.8" 3495 + source = "registry+https://github.com/rust-lang/crates.io-index" 3496 + checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 3497 + 3498 + [[package]] 3110 3499 name = "stable_deref_trait" 3111 3500 version = "1.2.0" 3112 3501 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3114 3503 3115 3504 [[package]] 3116 3505 name = "state" 3117 - version = "0.5.3" 3506 + version = "0.6.0" 3118 3507 source = "registry+https://github.com/rust-lang/crates.io-index" 3119 - checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" 3508 + checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8" 3120 3509 dependencies = [ 3121 3510 "loom", 3122 3511 ] ··· 3149 3538 3150 3539 [[package]] 3151 3540 name = "strsim" 3152 - version = "0.10.0" 3541 + version = "0.11.1" 3153 3542 source = "registry+https://github.com/rust-lang/crates.io-index" 3154 - checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 3543 + checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 3544 + 3545 + [[package]] 3546 + name = "subtle" 3547 + version = "2.6.1" 3548 + source = "registry+https://github.com/rust-lang/crates.io-index" 3549 + checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 3550 + 3551 + [[package]] 3552 + name = "swift-rs" 3553 + version = "1.0.6" 3554 + source = "registry+https://github.com/rust-lang/crates.io-index" 3555 + checksum = "1bbdb58577b6301f8d17ae2561f32002a5bae056d444e0f69e611e504a276204" 3556 + dependencies = [ 3557 + "base64 0.21.7", 3558 + "serde", 3559 + "serde_json", 3560 + ] 3155 3561 3156 3562 [[package]] 3157 3563 name = "syn" ··· 3166 3572 3167 3573 [[package]] 3168 3574 name = "syn" 3169 - version = "2.0.48" 3575 + version = "2.0.75" 3170 3576 source = "registry+https://github.com/rust-lang/crates.io-index" 3171 - checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" 3577 + checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" 3172 3578 dependencies = [ 3173 3579 "proc-macro2", 3174 3580 "quote", ··· 3177 3583 3178 3584 [[package]] 3179 3585 name = "sync_wrapper" 3180 - version = "0.1.2" 3586 + version = "1.0.1" 3181 3587 source = "registry+https://github.com/rust-lang/crates.io-index" 3182 - checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 3588 + checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" 3589 + dependencies = [ 3590 + "futures-core", 3591 + ] 3183 3592 3184 3593 [[package]] 3185 3594 name = "system-configuration" 3186 - version = "0.5.1" 3595 + version = "0.6.0" 3187 3596 source = "registry+https://github.com/rust-lang/crates.io-index" 3188 - checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 3597 + checksum = "658bc6ee10a9b4fcf576e9b0819d95ec16f4d2c02d39fd83ac1c8789785c4a42" 3189 3598 dependencies = [ 3190 - "bitflags 1.3.2", 3191 - "core-foundation", 3599 + "bitflags 2.6.0", 3600 + "core-foundation 0.9.4", 3192 3601 "system-configuration-sys", 3193 3602 ] 3194 3603 3195 3604 [[package]] 3196 3605 name = "system-configuration-sys" 3197 - version = "0.5.0" 3606 + version = "0.6.0" 3198 3607 source = "registry+https://github.com/rust-lang/crates.io-index" 3199 - checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 3608 + checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" 3200 3609 dependencies = [ 3201 3610 "core-foundation-sys", 3202 3611 "libc", ··· 3204 3613 3205 3614 [[package]] 3206 3615 name = "system-deps" 3207 - version = "5.0.0" 3616 + version = "6.2.2" 3208 3617 source = "registry+https://github.com/rust-lang/crates.io-index" 3209 - checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" 3618 + checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" 3210 3619 dependencies = [ 3211 - "cfg-expr 0.9.1", 3212 - "heck 0.3.3", 3620 + "cfg-expr", 3621 + "heck 0.5.0", 3213 3622 "pkg-config", 3214 - "toml 0.5.11", 3215 - "version-compare 0.0.11", 3216 - ] 3217 - 3218 - [[package]] 3219 - name = "system-deps" 3220 - version = "6.2.0" 3221 - source = "registry+https://github.com/rust-lang/crates.io-index" 3222 - checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331" 3223 - dependencies = [ 3224 - "cfg-expr 0.15.7", 3225 - "heck 0.4.1", 3226 - "pkg-config", 3227 - "toml 0.8.10", 3228 - "version-compare 0.1.1", 3623 + "toml 0.8.2", 3624 + "version-compare", 3229 3625 ] 3230 3626 3231 3627 [[package]] 3232 3628 name = "tao" 3233 - version = "0.16.7" 3629 + version = "0.29.0" 3234 3630 source = "registry+https://github.com/rust-lang/crates.io-index" 3235 - checksum = "d22205b267a679ca1c590b9f178488d50981fc3e48a1b91641ae31593db875ce" 3631 + checksum = "6775bcf3c1da33f848ede9cff5883ed1e45a29f66533ce42ad06c93ae514ed59" 3236 3632 dependencies = [ 3237 - "bitflags 1.3.2", 3238 - "cairo-rs", 3239 - "cc", 3633 + "bitflags 2.6.0", 3240 3634 "cocoa", 3241 - "core-foundation", 3242 - "core-graphics", 3635 + "core-foundation 0.10.0", 3636 + "core-graphics 0.24.0", 3243 3637 "crossbeam-channel", 3244 - "dirs-next", 3245 3638 "dispatch", 3246 - "gdk", 3247 - "gdk-pixbuf", 3248 - "gdk-sys", 3639 + "dlopen2", 3640 + "dpi", 3249 3641 "gdkwayland-sys", 3250 3642 "gdkx11-sys", 3251 - "gio", 3252 - "glib", 3253 - "glib-sys", 3254 3643 "gtk", 3255 - "image", 3256 3644 "instant", 3257 3645 "jni", 3258 3646 "lazy_static", 3259 - "libappindicator", 3260 3647 "libc", 3261 3648 "log", 3262 3649 "ndk", ··· 3265 3652 "objc", 3266 3653 "once_cell", 3267 3654 "parking_lot", 3268 - "png", 3269 3655 "raw-window-handle", 3270 3656 "scopeguard", 3271 - "serde", 3272 3657 "tao-macros", 3273 3658 "unicode-segmentation", 3274 - "uuid", 3275 - "windows 0.39.0", 3276 - "windows-implement", 3659 + "url", 3660 + "windows 0.58.0", 3661 + "windows-core 0.58.0", 3662 + "windows-version", 3277 3663 "x11-dl", 3278 3664 ] 3279 3665 ··· 3289 3675 ] 3290 3676 3291 3677 [[package]] 3292 - name = "tar" 3293 - version = "0.4.40" 3294 - source = "registry+https://github.com/rust-lang/crates.io-index" 3295 - checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" 3296 - dependencies = [ 3297 - "filetime", 3298 - "libc", 3299 - "xattr", 3300 - ] 3301 - 3302 - [[package]] 3303 3678 name = "target-lexicon" 3304 - version = "0.12.13" 3679 + version = "0.12.16" 3305 3680 source = "registry+https://github.com/rust-lang/crates.io-index" 3306 - checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" 3681 + checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" 3307 3682 3308 3683 [[package]] 3309 3684 name = "tauri" 3310 - version = "1.6.1" 3685 + version = "2.0.0-rc.4" 3311 3686 source = "registry+https://github.com/rust-lang/crates.io-index" 3312 - checksum = "f078117725e36d55d29fafcbb4b1e909073807ca328ae8deb8c0b3843aac0fed" 3687 + checksum = "089bfbc9893d4129d73190496982c4d1ac0b02a9a7460a85d49c748e473c2f2e" 3313 3688 dependencies = [ 3314 3689 "anyhow", 3315 3690 "bytes", 3316 3691 "cocoa", 3317 - "dirs-next", 3692 + "dirs", 3318 3693 "dunce", 3319 3694 "embed_plist", 3320 - "encoding_rs", 3321 - "flate2", 3322 3695 "futures-util", 3323 - "glib", 3696 + "getrandom 0.2.15", 3324 3697 "glob", 3325 3698 "gtk", 3326 - "heck 0.4.1", 3327 - "http 0.2.11", 3328 - "ignore", 3329 - "indexmap 1.9.3", 3699 + "heck 0.5.0", 3700 + "http", 3701 + "jni", 3702 + "libc", 3703 + "log", 3704 + "mime", 3705 + "muda", 3330 3706 "objc", 3331 - "once_cell", 3332 - "open 3.2.0", 3333 3707 "percent-encoding", 3334 - "rand 0.8.5", 3335 3708 "raw-window-handle", 3336 - "regex", 3337 - "reqwest 0.11.20", 3338 - "semver", 3709 + "reqwest", 3339 3710 "serde", 3340 3711 "serde_json", 3341 3712 "serde_repr", 3342 3713 "serialize-to-javascript", 3343 3714 "state", 3344 - "tar", 3715 + "swift-rs", 3716 + "tauri-build", 3345 3717 "tauri-macros", 3346 3718 "tauri-runtime", 3347 3719 "tauri-runtime-wry", 3348 - "tauri-utils", 3349 - "tempfile", 3720 + "tauri-utils 2.0.0-rc.4", 3350 3721 "thiserror", 3351 3722 "tokio", 3723 + "tray-icon", 3352 3724 "url", 3353 - "uuid", 3725 + "urlpattern", 3354 3726 "webkit2gtk", 3355 3727 "webview2-com", 3356 - "windows 0.39.0", 3728 + "window-vibrancy", 3729 + "windows 0.58.0", 3357 3730 ] 3358 3731 3359 3732 [[package]] 3360 3733 name = "tauri-build" 3361 - version = "1.5.1" 3734 + version = "2.0.0-rc.4" 3362 3735 source = "registry+https://github.com/rust-lang/crates.io-index" 3363 - checksum = "e9914a4715e0b75d9f387a285c7e26b5bbfeb1249ad9f842675a82481565c532" 3736 + checksum = "a7abd4a3003014ed609030cb670ab666991bb794f4a927935f0a7ae0404f65d8" 3364 3737 dependencies = [ 3365 3738 "anyhow", 3366 3739 "cargo_toml", 3367 - "dirs-next", 3368 - "heck 0.4.1", 3369 - "json-patch", 3740 + "dirs", 3741 + "glob", 3742 + "heck 0.5.0", 3743 + "json-patch 2.0.0", 3744 + "schemars", 3370 3745 "semver", 3371 3746 "serde", 3372 3747 "serde_json", 3373 - "tauri-utils", 3748 + "tauri-utils 2.0.0-rc.4", 3374 3749 "tauri-winres", 3750 + "toml 0.8.2", 3375 3751 "walkdir", 3376 3752 ] 3377 3753 3378 3754 [[package]] 3379 3755 name = "tauri-codegen" 3380 - version = "1.4.2" 3756 + version = "2.0.0-rc.4" 3381 3757 source = "registry+https://github.com/rust-lang/crates.io-index" 3382 - checksum = "a1554c5857f65dbc377cefb6b97c8ac77b1cb2a90d30d3448114d5d6b48a77fc" 3758 + checksum = "175a0cc0f11d4278123144daa571bb72be333376b8f4ca52ce6b9504e43caafc" 3383 3759 dependencies = [ 3384 - "base64 0.21.7", 3760 + "base64 0.22.1", 3385 3761 "brotli", 3386 3762 "ico", 3387 - "json-patch", 3763 + "json-patch 2.0.0", 3388 3764 "plist", 3389 3765 "png", 3390 3766 "proc-macro2", 3391 3767 "quote", 3392 - "regex", 3393 3768 "semver", 3394 3769 "serde", 3395 3770 "serde_json", 3396 3771 "sha2", 3397 - "tauri-utils", 3772 + "syn 2.0.75", 3773 + "tauri-utils 2.0.0-rc.4", 3398 3774 "thiserror", 3399 3775 "time", 3776 + "url", 3400 3777 "uuid", 3401 3778 "walkdir", 3402 3779 ] 3403 3780 3404 3781 [[package]] 3405 3782 name = "tauri-macros" 3406 - version = "1.4.3" 3783 + version = "2.0.0-rc.4" 3407 3784 source = "registry+https://github.com/rust-lang/crates.io-index" 3408 - checksum = "277abf361a3a6993ec16bcbb179de0d6518009b851090a01adfea12ac89fa875" 3785 + checksum = "cfa65710d73b174d152a3bd48ab6e9e994ea32cd052473c223325ea10ca229b4" 3409 3786 dependencies = [ 3410 - "heck 0.4.1", 3787 + "heck 0.5.0", 3411 3788 "proc-macro2", 3412 3789 "quote", 3413 - "syn 1.0.109", 3790 + "syn 2.0.75", 3414 3791 "tauri-codegen", 3415 - "tauri-utils", 3792 + "tauri-utils 2.0.0-rc.4", 3793 + ] 3794 + 3795 + [[package]] 3796 + name = "tauri-plugin" 3797 + version = "2.0.0-rc.4" 3798 + source = "registry+https://github.com/rust-lang/crates.io-index" 3799 + checksum = "e9997e2801118206cd344e30b8b837ba8668aa52c4cdc3a14c1d44560dcce540" 3800 + dependencies = [ 3801 + "anyhow", 3802 + "glob", 3803 + "plist", 3804 + "schemars", 3805 + "serde", 3806 + "serde_json", 3807 + "tauri-utils 2.0.0-rc.4", 3808 + "toml 0.8.2", 3809 + "walkdir", 3416 3810 ] 3417 3811 3418 3812 [[package]] ··· 3424 3818 "dirs", 3425 3819 "interprocess", 3426 3820 "log", 3427 - "objc2", 3821 + "objc2 0.4.1", 3428 3822 "once_cell", 3429 - "tauri-utils", 3823 + "tauri-utils 1.6.0", 3430 3824 "windows-sys 0.48.0", 3431 3825 "winreg 0.50.0", 3432 3826 ] 3433 3827 3434 3828 [[package]] 3829 + name = "tauri-plugin-fs" 3830 + version = "2.0.0-rc.0" 3831 + source = "registry+https://github.com/rust-lang/crates.io-index" 3832 + checksum = "5df6b25b1f2b7b61565e66c4dbee9eb39e5635d2a763206e380e07cc3f601a67" 3833 + dependencies = [ 3834 + "anyhow", 3835 + "glob", 3836 + "schemars", 3837 + "serde", 3838 + "serde_json", 3839 + "serde_repr", 3840 + "tauri", 3841 + "tauri-plugin", 3842 + "thiserror", 3843 + "url", 3844 + "uuid", 3845 + ] 3846 + 3847 + [[package]] 3848 + name = "tauri-plugin-http" 3849 + version = "2.0.0-rc.0" 3850 + source = "registry+https://github.com/rust-lang/crates.io-index" 3851 + checksum = "1eef17218eaa8bd0fc6cafb7831c63d82ef83b3950d59dc817d92d5320c4f20c" 3852 + dependencies = [ 3853 + "data-url", 3854 + "http", 3855 + "regex", 3856 + "reqwest", 3857 + "schemars", 3858 + "serde", 3859 + "serde_json", 3860 + "tauri", 3861 + "tauri-plugin", 3862 + "tauri-plugin-fs", 3863 + "thiserror", 3864 + "tokio", 3865 + "url", 3866 + "urlpattern", 3867 + ] 3868 + 3869 + [[package]] 3870 + name = "tauri-plugin-process" 3871 + version = "2.0.0-rc.0" 3872 + source = "registry+https://github.com/rust-lang/crates.io-index" 3873 + checksum = "96d3663df0cd3e96feb37d46aad5d499d2edfcca5c62548ad34f1684e0019168" 3874 + dependencies = [ 3875 + "tauri", 3876 + "tauri-plugin", 3877 + ] 3878 + 3879 + [[package]] 3880 + name = "tauri-plugin-shell" 3881 + version = "2.0.0-rc.2" 3882 + source = "registry+https://github.com/rust-lang/crates.io-index" 3883 + checksum = "46315cccdbc7686bfb9f17e4aab757e5bb50118bc42e52784cae3917c59ac4d7" 3884 + dependencies = [ 3885 + "encoding_rs", 3886 + "log", 3887 + "open", 3888 + "os_pipe", 3889 + "regex", 3890 + "schemars", 3891 + "serde", 3892 + "serde_json", 3893 + "shared_child", 3894 + "tauri", 3895 + "tauri-plugin", 3896 + "thiserror", 3897 + "tokio", 3898 + ] 3899 + 3900 + [[package]] 3435 3901 name = "tauri-runtime" 3436 - version = "0.14.2" 3902 + version = "2.0.0-rc.4" 3437 3903 source = "registry+https://github.com/rust-lang/crates.io-index" 3438 - checksum = "cf2d0652aa2891ff3e9caa2401405257ea29ab8372cce01f186a5825f1bd0e76" 3904 + checksum = "ef9dcd87245b84eb27724de1108c0a1a19e826dae36a2f86c9efe94963b3cc3c" 3439 3905 dependencies = [ 3906 + "dpi", 3440 3907 "gtk", 3441 - "http 0.2.11", 3442 - "http-range", 3443 - "rand 0.8.5", 3908 + "http", 3909 + "jni", 3444 3910 "raw-window-handle", 3445 3911 "serde", 3446 3912 "serde_json", 3447 - "tauri-utils", 3913 + "tauri-utils 2.0.0-rc.4", 3448 3914 "thiserror", 3449 3915 "url", 3450 - "uuid", 3451 - "webview2-com", 3452 - "windows 0.39.0", 3916 + "windows 0.58.0", 3453 3917 ] 3454 3918 3455 3919 [[package]] 3456 3920 name = "tauri-runtime-wry" 3457 - version = "0.14.5" 3921 + version = "2.0.0-rc.4" 3458 3922 source = "registry+https://github.com/rust-lang/crates.io-index" 3459 - checksum = "067c56fc153b3caf406d7cd6de4486c80d1d66c0f414f39e94cb2f5543f6445f" 3923 + checksum = "02a73e75d1d0204f69efff29ade79299623eb140e0266856c68b880dad632457" 3460 3924 dependencies = [ 3461 3925 "cocoa", 3462 3926 "gtk", 3927 + "http", 3928 + "jni", 3929 + "log", 3463 3930 "percent-encoding", 3464 - "rand 0.8.5", 3465 3931 "raw-window-handle", 3932 + "softbuffer", 3933 + "tao", 3466 3934 "tauri-runtime", 3467 - "tauri-utils", 3468 - "uuid", 3935 + "tauri-utils 2.0.0-rc.4", 3936 + "url", 3469 3937 "webkit2gtk", 3470 3938 "webview2-com", 3471 - "windows 0.39.0", 3939 + "windows 0.58.0", 3472 3940 "wry", 3473 3941 ] 3474 3942 3475 3943 [[package]] 3476 3944 name = "tauri-utils" 3477 - version = "1.5.3" 3945 + version = "1.6.0" 3946 + source = "registry+https://github.com/rust-lang/crates.io-index" 3947 + checksum = "2826db448309d382dac14d520f0c0a40839b87b57b977e59cf5f296b3ace6a93" 3948 + dependencies = [ 3949 + "ctor", 3950 + "dunce", 3951 + "heck 0.5.0", 3952 + "html5ever", 3953 + "infer 0.13.0", 3954 + "json-patch 1.4.0", 3955 + "kuchikiki", 3956 + "log", 3957 + "memchr", 3958 + "phf 0.11.2", 3959 + "semver", 3960 + "serde", 3961 + "serde_json", 3962 + "serde_with", 3963 + "thiserror", 3964 + "url", 3965 + "windows-version", 3966 + ] 3967 + 3968 + [[package]] 3969 + name = "tauri-utils" 3970 + version = "2.0.0-rc.4" 3478 3971 source = "registry+https://github.com/rust-lang/crates.io-index" 3479 - checksum = "75ad0bbb31fccd1f4c56275d0a5c3abdf1f59999f72cb4ef8b79b4ed42082a21" 3972 + checksum = "62e4c7855f6d4270361dd55edd92ccaa91e17c4d08aae30b1fedeb8a155b8b3c" 3480 3973 dependencies = [ 3481 3974 "brotli", 3975 + "cargo_metadata", 3482 3976 "ctor", 3483 3977 "dunce", 3484 3978 "glob", 3485 - "heck 0.4.1", 3486 3979 "html5ever", 3487 - "infer", 3488 - "json-patch", 3980 + "infer 0.15.0", 3981 + "json-patch 2.0.0", 3489 3982 "kuchikiki", 3490 3983 "log", 3491 3984 "memchr", 3492 3985 "phf 0.11.2", 3493 3986 "proc-macro2", 3494 3987 "quote", 3988 + "regex", 3989 + "schemars", 3495 3990 "semver", 3496 3991 "serde", 3992 + "serde-untagged", 3497 3993 "serde_json", 3498 3994 "serde_with", 3995 + "swift-rs", 3499 3996 "thiserror", 3997 + "toml 0.8.2", 3500 3998 "url", 3999 + "urlpattern", 3501 4000 "walkdir", 3502 - "windows-version", 3503 4001 ] 3504 4002 3505 4003 [[package]] ··· 3514 4012 3515 4013 [[package]] 3516 4014 name = "tempfile" 3517 - version = "3.10.0" 4015 + version = "3.12.0" 3518 4016 source = "registry+https://github.com/rust-lang/crates.io-index" 3519 - checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" 4017 + checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" 3520 4018 dependencies = [ 3521 4019 "cfg-if", 3522 4020 "fastrand", 4021 + "once_cell", 3523 4022 "rustix", 3524 - "windows-sys 0.52.0", 4023 + "windows-sys 0.59.0", 3525 4024 ] 3526 4025 3527 4026 [[package]] ··· 3543 4042 3544 4043 [[package]] 3545 4044 name = "thiserror" 3546 - version = "1.0.56" 4045 + version = "1.0.63" 3547 4046 source = "registry+https://github.com/rust-lang/crates.io-index" 3548 - checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" 4047 + checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" 3549 4048 dependencies = [ 3550 4049 "thiserror-impl", 3551 4050 ] 3552 4051 3553 4052 [[package]] 3554 4053 name = "thiserror-impl" 3555 - version = "1.0.56" 4054 + version = "1.0.63" 3556 4055 source = "registry+https://github.com/rust-lang/crates.io-index" 3557 - checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" 4056 + checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" 3558 4057 dependencies = [ 3559 4058 "proc-macro2", 3560 4059 "quote", 3561 - "syn 2.0.48", 4060 + "syn 2.0.75", 3562 4061 ] 3563 4062 3564 4063 [[package]] 3565 4064 name = "thread_local" 3566 - version = "1.1.7" 4065 + version = "1.1.8" 3567 4066 source = "registry+https://github.com/rust-lang/crates.io-index" 3568 - checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" 4067 + checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" 3569 4068 dependencies = [ 3570 4069 "cfg-if", 3571 4070 "once_cell", ··· 3573 4072 3574 4073 [[package]] 3575 4074 name = "time" 3576 - version = "0.3.34" 4075 + version = "0.3.36" 3577 4076 source = "registry+https://github.com/rust-lang/crates.io-index" 3578 - checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" 4077 + checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" 3579 4078 dependencies = [ 3580 4079 "deranged", 3581 - "itoa 1.0.10", 4080 + "itoa 1.0.11", 3582 4081 "num-conv", 3583 4082 "powerfmt", 3584 4083 "serde", ··· 3594 4093 3595 4094 [[package]] 3596 4095 name = "time-macros" 3597 - version = "0.2.17" 4096 + version = "0.2.18" 3598 4097 source = "registry+https://github.com/rust-lang/crates.io-index" 3599 - checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" 4098 + checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" 3600 4099 dependencies = [ 3601 4100 "num-conv", 3602 4101 "time-core", ··· 3604 4103 3605 4104 [[package]] 3606 4105 name = "tinyvec" 3607 - version = "1.6.0" 4106 + version = "1.8.0" 3608 4107 source = "registry+https://github.com/rust-lang/crates.io-index" 3609 - checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 4108 + checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 3610 4109 dependencies = [ 3611 4110 "tinyvec_macros", 3612 4111 ] ··· 3625 4124 3626 4125 [[package]] 3627 4126 name = "tokio" 3628 - version = "1.36.0" 4127 + version = "1.39.3" 3629 4128 source = "registry+https://github.com/rust-lang/crates.io-index" 3630 - checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" 4129 + checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" 3631 4130 dependencies = [ 3632 4131 "backtrace", 3633 4132 "bytes", 3634 4133 "libc", 3635 - "mio", 3636 - "num_cpus", 4134 + "mio 1.0.2", 3637 4135 "pin-project-lite", 3638 4136 "socket2", 3639 - "windows-sys 0.48.0", 4137 + "tokio-macros", 4138 + "windows-sys 0.52.0", 4139 + ] 4140 + 4141 + [[package]] 4142 + name = "tokio-macros" 4143 + version = "2.4.0" 4144 + source = "registry+https://github.com/rust-lang/crates.io-index" 4145 + checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" 4146 + dependencies = [ 4147 + "proc-macro2", 4148 + "quote", 4149 + "syn 2.0.75", 3640 4150 ] 3641 4151 3642 4152 [[package]] ··· 3650 4160 ] 3651 4161 3652 4162 [[package]] 4163 + name = "tokio-rustls" 4164 + version = "0.26.0" 4165 + source = "registry+https://github.com/rust-lang/crates.io-index" 4166 + checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" 4167 + dependencies = [ 4168 + "rustls", 4169 + "rustls-pki-types", 4170 + "tokio", 4171 + ] 4172 + 4173 + [[package]] 3653 4174 name = "tokio-util" 3654 - version = "0.7.10" 4175 + version = "0.7.11" 3655 4176 source = "registry+https://github.com/rust-lang/crates.io-index" 3656 - checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" 4177 + checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" 3657 4178 dependencies = [ 3658 4179 "bytes", 3659 4180 "futures-core", 3660 4181 "futures-sink", 3661 4182 "pin-project-lite", 3662 4183 "tokio", 3663 - "tracing", 3664 - ] 3665 - 3666 - [[package]] 3667 - name = "toml" 3668 - version = "0.5.11" 3669 - source = "registry+https://github.com/rust-lang/crates.io-index" 3670 - checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 3671 - dependencies = [ 3672 - "serde", 3673 4184 ] 3674 4185 3675 4186 [[package]] ··· 3686 4197 3687 4198 [[package]] 3688 4199 name = "toml" 3689 - version = "0.8.10" 4200 + version = "0.8.2" 3690 4201 source = "registry+https://github.com/rust-lang/crates.io-index" 3691 - checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" 4202 + checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" 3692 4203 dependencies = [ 3693 4204 "serde", 3694 4205 "serde_spanned", 3695 4206 "toml_datetime", 3696 - "toml_edit 0.22.4", 4207 + "toml_edit 0.20.2", 3697 4208 ] 3698 4209 3699 4210 [[package]] 3700 4211 name = "toml_datetime" 3701 - version = "0.6.5" 4212 + version = "0.6.3" 3702 4213 source = "registry+https://github.com/rust-lang/crates.io-index" 3703 - checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" 4214 + checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" 3704 4215 dependencies = [ 3705 4216 "serde", 3706 4217 ] ··· 3711 4222 source = "registry+https://github.com/rust-lang/crates.io-index" 3712 4223 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 3713 4224 dependencies = [ 3714 - "indexmap 2.2.2", 4225 + "indexmap 2.4.0", 3715 4226 "serde", 3716 4227 "serde_spanned", 3717 4228 "toml_datetime", ··· 3720 4231 3721 4232 [[package]] 3722 4233 name = "toml_edit" 3723 - version = "0.22.4" 4234 + version = "0.20.2" 3724 4235 source = "registry+https://github.com/rust-lang/crates.io-index" 3725 - checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951" 4236 + checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" 3726 4237 dependencies = [ 3727 - "indexmap 2.2.2", 4238 + "indexmap 2.4.0", 3728 4239 "serde", 3729 4240 "serde_spanned", 3730 4241 "toml_datetime", ··· 3744 4255 "tokio", 3745 4256 "tower-layer", 3746 4257 "tower-service", 3747 - "tracing", 3748 4258 ] 3749 4259 3750 4260 [[package]] 3751 4261 name = "tower-layer" 3752 - version = "0.3.2" 4262 + version = "0.3.3" 3753 4263 source = "registry+https://github.com/rust-lang/crates.io-index" 3754 - checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" 4264 + checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 3755 4265 3756 4266 [[package]] 3757 4267 name = "tower-service" 3758 - version = "0.3.2" 4268 + version = "0.3.3" 3759 4269 source = "registry+https://github.com/rust-lang/crates.io-index" 3760 - checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 4270 + checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 3761 4271 3762 4272 [[package]] 3763 4273 name = "tracing" ··· 3765 4275 source = "registry+https://github.com/rust-lang/crates.io-index" 3766 4276 checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 3767 4277 dependencies = [ 3768 - "log", 3769 4278 "pin-project-lite", 3770 4279 "tracing-attributes", 3771 4280 "tracing-core", ··· 3779 4288 dependencies = [ 3780 4289 "proc-macro2", 3781 4290 "quote", 3782 - "syn 2.0.48", 4291 + "syn 2.0.75", 3783 4292 ] 3784 4293 3785 4294 [[package]] ··· 3822 4331 ] 3823 4332 3824 4333 [[package]] 3825 - name = "treediff" 3826 - version = "4.0.3" 4334 + name = "tray-icon" 4335 + version = "0.15.1" 3827 4336 source = "registry+https://github.com/rust-lang/crates.io-index" 3828 - checksum = "4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5" 4337 + checksum = "2b92252d649d771105448969f2b2dda4342ba48b77731b60d37c93665e26615b" 3829 4338 dependencies = [ 3830 - "serde_json", 4339 + "core-graphics 0.24.0", 4340 + "crossbeam-channel", 4341 + "dirs", 4342 + "libappindicator", 4343 + "muda", 4344 + "objc2 0.5.2", 4345 + "objc2-app-kit", 4346 + "objc2-foundation", 4347 + "once_cell", 4348 + "png", 4349 + "serde", 4350 + "thiserror", 4351 + "windows-sys 0.59.0", 3831 4352 ] 3832 4353 3833 4354 [[package]] ··· 3837 4358 checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 3838 4359 3839 4360 [[package]] 4361 + name = "typeid" 4362 + version = "1.0.2" 4363 + source = "registry+https://github.com/rust-lang/crates.io-index" 4364 + checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" 4365 + 4366 + [[package]] 3840 4367 name = "typenum" 3841 4368 version = "1.17.0" 3842 4369 source = "registry+https://github.com/rust-lang/crates.io-index" 3843 4370 checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 3844 4371 3845 4372 [[package]] 4373 + name = "unic-char-property" 4374 + version = "0.9.0" 4375 + source = "registry+https://github.com/rust-lang/crates.io-index" 4376 + checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" 4377 + dependencies = [ 4378 + "unic-char-range", 4379 + ] 4380 + 4381 + [[package]] 4382 + name = "unic-char-range" 4383 + version = "0.9.0" 4384 + source = "registry+https://github.com/rust-lang/crates.io-index" 4385 + checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" 4386 + 4387 + [[package]] 4388 + name = "unic-common" 4389 + version = "0.9.0" 4390 + source = "registry+https://github.com/rust-lang/crates.io-index" 4391 + checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" 4392 + 4393 + [[package]] 4394 + name = "unic-ucd-ident" 4395 + version = "0.9.0" 4396 + source = "registry+https://github.com/rust-lang/crates.io-index" 4397 + checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" 4398 + dependencies = [ 4399 + "unic-char-property", 4400 + "unic-char-range", 4401 + "unic-ucd-version", 4402 + ] 4403 + 4404 + [[package]] 4405 + name = "unic-ucd-version" 4406 + version = "0.9.0" 4407 + source = "registry+https://github.com/rust-lang/crates.io-index" 4408 + checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" 4409 + dependencies = [ 4410 + "unic-common", 4411 + ] 4412 + 4413 + [[package]] 3846 4414 name = "unicode-bidi" 3847 4415 version = "0.3.15" 3848 4416 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3856 4424 3857 4425 [[package]] 3858 4426 name = "unicode-normalization" 3859 - version = "0.1.22" 4427 + version = "0.1.23" 3860 4428 source = "registry+https://github.com/rust-lang/crates.io-index" 3861 - checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 4429 + checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" 3862 4430 dependencies = [ 3863 4431 "tinyvec", 3864 4432 ] ··· 3870 4438 checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" 3871 4439 3872 4440 [[package]] 4441 + name = "untrusted" 4442 + version = "0.9.0" 4443 + source = "registry+https://github.com/rust-lang/crates.io-index" 4444 + checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 4445 + 4446 + [[package]] 3873 4447 name = "url" 3874 - version = "2.5.0" 4448 + version = "2.5.2" 3875 4449 source = "registry+https://github.com/rust-lang/crates.io-index" 3876 - checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" 4450 + checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" 3877 4451 dependencies = [ 3878 4452 "form_urlencoded", 3879 - "idna", 4453 + "idna 0.5.0", 3880 4454 "percent-encoding", 3881 4455 "serde", 3882 4456 ] 3883 4457 3884 4458 [[package]] 4459 + name = "urlpattern" 4460 + version = "0.2.0" 4461 + source = "registry+https://github.com/rust-lang/crates.io-index" 4462 + checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609" 4463 + dependencies = [ 4464 + "derive_more", 4465 + "regex", 4466 + "serde", 4467 + "unic-ucd-ident", 4468 + "url", 4469 + ] 4470 + 4471 + [[package]] 3885 4472 name = "utf-8" 3886 4473 version = "0.7.6" 3887 4474 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3889 4476 3890 4477 [[package]] 3891 4478 name = "uuid" 3892 - version = "1.7.0" 4479 + version = "1.10.0" 3893 4480 source = "registry+https://github.com/rust-lang/crates.io-index" 3894 - checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" 4481 + checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" 3895 4482 dependencies = [ 3896 - "getrandom 0.2.12", 4483 + "getrandom 0.2.15", 3897 4484 ] 3898 4485 3899 4486 [[package]] ··· 3910 4497 3911 4498 [[package]] 3912 4499 name = "version-compare" 3913 - version = "0.0.11" 3914 - source = "registry+https://github.com/rust-lang/crates.io-index" 3915 - checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" 3916 - 3917 - [[package]] 3918 - name = "version-compare" 3919 - version = "0.1.1" 4500 + version = "0.2.0" 3920 4501 source = "registry+https://github.com/rust-lang/crates.io-index" 3921 - checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" 4502 + checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" 3922 4503 3923 4504 [[package]] 3924 4505 name = "version_check" 3925 - version = "0.9.4" 4506 + version = "0.9.5" 3926 4507 source = "registry+https://github.com/rust-lang/crates.io-index" 3927 - checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 4508 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 3928 4509 3929 4510 [[package]] 3930 4511 name = "vrcpm-rs" ··· 3933 4514 "dirs", 3934 4515 "mslnk", 3935 4516 "notify", 3936 - "open 5.1.2", 4517 + "open", 3937 4518 "regex", 3938 - "reqwest 0.12.4", 4519 + "reqwest", 3939 4520 "serde", 3940 4521 "serde_json", 3941 4522 "tauri", 3942 4523 "tauri-build", 3943 4524 "tauri-plugin-deep-link", 4525 + "tauri-plugin-http", 4526 + "tauri-plugin-process", 4527 + "tauri-plugin-shell", 3944 4528 ] 3945 4529 3946 4530 [[package]] ··· 3965 4549 3966 4550 [[package]] 3967 4551 name = "walkdir" 3968 - version = "2.4.0" 4552 + version = "2.5.0" 3969 4553 source = "registry+https://github.com/rust-lang/crates.io-index" 3970 - checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" 4554 + checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 3971 4555 dependencies = [ 3972 4556 "same-file", 3973 4557 "winapi-util", ··· 3996 4580 3997 4581 [[package]] 3998 4582 name = "wasm-bindgen" 3999 - version = "0.2.78" 4583 + version = "0.2.93" 4000 4584 source = "registry+https://github.com/rust-lang/crates.io-index" 4001 - checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" 4585 + checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" 4002 4586 dependencies = [ 4003 4587 "cfg-if", 4588 + "once_cell", 4004 4589 "wasm-bindgen-macro", 4005 4590 ] 4006 4591 4007 4592 [[package]] 4008 4593 name = "wasm-bindgen-backend" 4009 - version = "0.2.78" 4594 + version = "0.2.93" 4010 4595 source = "registry+https://github.com/rust-lang/crates.io-index" 4011 - checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" 4596 + checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" 4012 4597 dependencies = [ 4013 4598 "bumpalo", 4014 - "lazy_static", 4015 4599 "log", 4600 + "once_cell", 4016 4601 "proc-macro2", 4017 4602 "quote", 4018 - "syn 1.0.109", 4603 + "syn 2.0.75", 4019 4604 "wasm-bindgen-shared", 4020 4605 ] 4021 4606 4022 4607 [[package]] 4023 4608 name = "wasm-bindgen-futures" 4024 - version = "0.4.28" 4609 + version = "0.4.43" 4025 4610 source = "registry+https://github.com/rust-lang/crates.io-index" 4026 - checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" 4611 + checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" 4027 4612 dependencies = [ 4028 4613 "cfg-if", 4029 4614 "js-sys", ··· 4033 4618 4034 4619 [[package]] 4035 4620 name = "wasm-bindgen-macro" 4036 - version = "0.2.78" 4621 + version = "0.2.93" 4037 4622 source = "registry+https://github.com/rust-lang/crates.io-index" 4038 - checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" 4623 + checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" 4039 4624 dependencies = [ 4040 4625 "quote", 4041 4626 "wasm-bindgen-macro-support", ··· 4043 4628 4044 4629 [[package]] 4045 4630 name = "wasm-bindgen-macro-support" 4046 - version = "0.2.78" 4631 + version = "0.2.93" 4047 4632 source = "registry+https://github.com/rust-lang/crates.io-index" 4048 - checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" 4633 + checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" 4049 4634 dependencies = [ 4050 4635 "proc-macro2", 4051 4636 "quote", 4052 - "syn 1.0.109", 4637 + "syn 2.0.75", 4053 4638 "wasm-bindgen-backend", 4054 4639 "wasm-bindgen-shared", 4055 4640 ] 4056 4641 4057 4642 [[package]] 4058 4643 name = "wasm-bindgen-shared" 4059 - version = "0.2.78" 4644 + version = "0.2.93" 4060 4645 source = "registry+https://github.com/rust-lang/crates.io-index" 4061 - checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" 4646 + checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" 4062 4647 4063 4648 [[package]] 4064 4649 name = "wasm-streams" 4065 - version = "0.3.0" 4650 + version = "0.4.0" 4066 4651 source = "registry+https://github.com/rust-lang/crates.io-index" 4067 - checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7" 4652 + checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" 4068 4653 dependencies = [ 4069 4654 "futures-util", 4070 4655 "js-sys", ··· 4075 4660 4076 4661 [[package]] 4077 4662 name = "web-sys" 4078 - version = "0.3.55" 4663 + version = "0.3.70" 4079 4664 source = "registry+https://github.com/rust-lang/crates.io-index" 4080 - checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" 4665 + checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" 4081 4666 dependencies = [ 4082 4667 "js-sys", 4083 4668 "wasm-bindgen", ··· 4085 4670 4086 4671 [[package]] 4087 4672 name = "webkit2gtk" 4088 - version = "0.18.2" 4673 + version = "2.0.1" 4089 4674 source = "registry+https://github.com/rust-lang/crates.io-index" 4090 - checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" 4675 + checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" 4091 4676 dependencies = [ 4092 4677 "bitflags 1.3.2", 4093 4678 "cairo-rs", ··· 4103 4688 "javascriptcore-rs", 4104 4689 "libc", 4105 4690 "once_cell", 4106 - "soup2", 4691 + "soup3", 4107 4692 "webkit2gtk-sys", 4108 4693 ] 4109 4694 4110 4695 [[package]] 4111 4696 name = "webkit2gtk-sys" 4112 - version = "0.18.0" 4697 + version = "2.0.1" 4113 4698 source = "registry+https://github.com/rust-lang/crates.io-index" 4114 - checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" 4699 + checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" 4115 4700 dependencies = [ 4116 - "atk-sys", 4117 4701 "bitflags 1.3.2", 4118 4702 "cairo-sys-rs", 4119 - "gdk-pixbuf-sys", 4120 4703 "gdk-sys", 4121 4704 "gio-sys", 4122 4705 "glib-sys", ··· 4124 4707 "gtk-sys", 4125 4708 "javascriptcore-rs-sys", 4126 4709 "libc", 4127 - "pango-sys", 4128 4710 "pkg-config", 4129 - "soup2-sys", 4130 - "system-deps 6.2.0", 4711 + "soup3-sys", 4712 + "system-deps", 4713 + ] 4714 + 4715 + [[package]] 4716 + name = "webpki-roots" 4717 + version = "0.26.3" 4718 + source = "registry+https://github.com/rust-lang/crates.io-index" 4719 + checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" 4720 + dependencies = [ 4721 + "rustls-pki-types", 4131 4722 ] 4132 4723 4133 4724 [[package]] 4134 4725 name = "webview2-com" 4135 - version = "0.19.1" 4726 + version = "0.33.0" 4136 4727 source = "registry+https://github.com/rust-lang/crates.io-index" 4137 - checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178" 4728 + checksum = "6f61ff3d9d0ee4efcb461b14eb3acfda2702d10dc329f339303fc3e57215ae2c" 4138 4729 dependencies = [ 4139 4730 "webview2-com-macros", 4140 4731 "webview2-com-sys", 4141 - "windows 0.39.0", 4732 + "windows 0.58.0", 4733 + "windows-core 0.58.0", 4142 4734 "windows-implement", 4735 + "windows-interface", 4143 4736 ] 4144 4737 4145 4738 [[package]] 4146 4739 name = "webview2-com-macros" 4147 - version = "0.6.0" 4740 + version = "0.8.0" 4148 4741 source = "registry+https://github.com/rust-lang/crates.io-index" 4149 - checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" 4742 + checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" 4150 4743 dependencies = [ 4151 4744 "proc-macro2", 4152 4745 "quote", 4153 - "syn 1.0.109", 4746 + "syn 2.0.75", 4154 4747 ] 4155 4748 4156 4749 [[package]] 4157 4750 name = "webview2-com-sys" 4158 - version = "0.19.0" 4751 + version = "0.33.0" 4159 4752 source = "registry+https://github.com/rust-lang/crates.io-index" 4160 - checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7" 4753 + checksum = "a3a3e2eeb58f82361c93f9777014668eb3d07e7d174ee4c819575a9208011886" 4161 4754 dependencies = [ 4162 - "regex", 4163 - "serde", 4164 - "serde_json", 4165 4755 "thiserror", 4166 - "windows 0.39.0", 4167 - "windows-bindgen", 4168 - "windows-metadata", 4756 + "windows 0.58.0", 4757 + "windows-core 0.58.0", 4169 4758 ] 4170 4759 4171 4760 [[package]] ··· 4186 4775 4187 4776 [[package]] 4188 4777 name = "winapi-util" 4189 - version = "0.1.6" 4778 + version = "0.1.9" 4190 4779 source = "registry+https://github.com/rust-lang/crates.io-index" 4191 - checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" 4780 + checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 4192 4781 dependencies = [ 4193 - "winapi", 4782 + "windows-sys 0.59.0", 4194 4783 ] 4195 4784 4196 4785 [[package]] ··· 4200 4789 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 4201 4790 4202 4791 [[package]] 4203 - name = "windows" 4204 - version = "0.39.0" 4792 + name = "window-vibrancy" 4793 + version = "0.5.1" 4205 4794 source = "registry+https://github.com/rust-lang/crates.io-index" 4206 - checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" 4795 + checksum = "d8cdd6999298d969289d8078dae02ce798ad23452075985cccba8b6326711ecf" 4207 4796 dependencies = [ 4208 - "windows-implement", 4209 - "windows_aarch64_msvc 0.39.0", 4210 - "windows_i686_gnu 0.39.0", 4211 - "windows_i686_msvc 0.39.0", 4212 - "windows_x86_64_gnu 0.39.0", 4213 - "windows_x86_64_msvc 0.39.0", 4797 + "cocoa", 4798 + "objc", 4799 + "raw-window-handle", 4800 + "windows-sys 0.59.0", 4801 + "windows-version", 4214 4802 ] 4215 4803 4216 4804 [[package]] ··· 4223 4811 ] 4224 4812 4225 4813 [[package]] 4226 - name = "windows-bindgen" 4227 - version = "0.39.0" 4814 + name = "windows" 4815 + version = "0.58.0" 4228 4816 source = "registry+https://github.com/rust-lang/crates.io-index" 4229 - checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41" 4817 + checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" 4230 4818 dependencies = [ 4231 - "windows-metadata", 4232 - "windows-tokens", 4819 + "windows-core 0.58.0", 4820 + "windows-targets 0.52.6", 4233 4821 ] 4234 4822 4235 4823 [[package]] ··· 4238 4826 source = "registry+https://github.com/rust-lang/crates.io-index" 4239 4827 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 4240 4828 dependencies = [ 4241 - "windows-targets 0.52.0", 4829 + "windows-targets 0.52.6", 4830 + ] 4831 + 4832 + [[package]] 4833 + name = "windows-core" 4834 + version = "0.58.0" 4835 + source = "registry+https://github.com/rust-lang/crates.io-index" 4836 + checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" 4837 + dependencies = [ 4838 + "windows-implement", 4839 + "windows-interface", 4840 + "windows-result", 4841 + "windows-strings", 4842 + "windows-targets 0.52.6", 4242 4843 ] 4243 4844 4244 4845 [[package]] 4245 4846 name = "windows-implement" 4246 - version = "0.39.0" 4847 + version = "0.58.0" 4848 + source = "registry+https://github.com/rust-lang/crates.io-index" 4849 + checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" 4850 + dependencies = [ 4851 + "proc-macro2", 4852 + "quote", 4853 + "syn 2.0.75", 4854 + ] 4855 + 4856 + [[package]] 4857 + name = "windows-interface" 4858 + version = "0.58.0" 4859 + source = "registry+https://github.com/rust-lang/crates.io-index" 4860 + checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" 4861 + dependencies = [ 4862 + "proc-macro2", 4863 + "quote", 4864 + "syn 2.0.75", 4865 + ] 4866 + 4867 + [[package]] 4868 + name = "windows-registry" 4869 + version = "0.2.0" 4870 + source = "registry+https://github.com/rust-lang/crates.io-index" 4871 + checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" 4872 + dependencies = [ 4873 + "windows-result", 4874 + "windows-strings", 4875 + "windows-targets 0.52.6", 4876 + ] 4877 + 4878 + [[package]] 4879 + name = "windows-result" 4880 + version = "0.2.0" 4247 4881 source = "registry+https://github.com/rust-lang/crates.io-index" 4248 - checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" 4882 + checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" 4249 4883 dependencies = [ 4250 - "syn 1.0.109", 4251 - "windows-tokens", 4884 + "windows-targets 0.52.6", 4252 4885 ] 4253 4886 4254 4887 [[package]] 4255 - name = "windows-metadata" 4256 - version = "0.39.0" 4888 + name = "windows-strings" 4889 + version = "0.1.0" 4257 4890 source = "registry+https://github.com/rust-lang/crates.io-index" 4258 - checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" 4891 + checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" 4892 + dependencies = [ 4893 + "windows-result", 4894 + "windows-targets 0.52.6", 4895 + ] 4259 4896 4260 4897 [[package]] 4261 4898 name = "windows-sys" 4262 - version = "0.42.0" 4899 + version = "0.45.0" 4263 4900 source = "registry+https://github.com/rust-lang/crates.io-index" 4264 - checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" 4901 + checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 4265 4902 dependencies = [ 4266 - "windows_aarch64_gnullvm 0.42.2", 4267 - "windows_aarch64_msvc 0.42.2", 4268 - "windows_i686_gnu 0.42.2", 4269 - "windows_i686_msvc 0.42.2", 4270 - "windows_x86_64_gnu 0.42.2", 4271 - "windows_x86_64_gnullvm 0.42.2", 4272 - "windows_x86_64_msvc 0.42.2", 4903 + "windows-targets 0.42.2", 4273 4904 ] 4274 4905 4275 4906 [[package]] ··· 4287 4918 source = "registry+https://github.com/rust-lang/crates.io-index" 4288 4919 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 4289 4920 dependencies = [ 4290 - "windows-targets 0.52.0", 4921 + "windows-targets 0.52.6", 4922 + ] 4923 + 4924 + [[package]] 4925 + name = "windows-sys" 4926 + version = "0.59.0" 4927 + source = "registry+https://github.com/rust-lang/crates.io-index" 4928 + checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 4929 + dependencies = [ 4930 + "windows-targets 0.52.6", 4931 + ] 4932 + 4933 + [[package]] 4934 + name = "windows-targets" 4935 + version = "0.42.2" 4936 + source = "registry+https://github.com/rust-lang/crates.io-index" 4937 + checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 4938 + dependencies = [ 4939 + "windows_aarch64_gnullvm 0.42.2", 4940 + "windows_aarch64_msvc 0.42.2", 4941 + "windows_i686_gnu 0.42.2", 4942 + "windows_i686_msvc 0.42.2", 4943 + "windows_x86_64_gnu 0.42.2", 4944 + "windows_x86_64_gnullvm 0.42.2", 4945 + "windows_x86_64_msvc 0.42.2", 4291 4946 ] 4292 4947 4293 4948 [[package]] ··· 4307 4962 4308 4963 [[package]] 4309 4964 name = "windows-targets" 4310 - version = "0.52.0" 4965 + version = "0.52.6" 4311 4966 source = "registry+https://github.com/rust-lang/crates.io-index" 4312 - checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" 4967 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 4313 4968 dependencies = [ 4314 - "windows_aarch64_gnullvm 0.52.0", 4315 - "windows_aarch64_msvc 0.52.0", 4316 - "windows_i686_gnu 0.52.0", 4317 - "windows_i686_msvc 0.52.0", 4318 - "windows_x86_64_gnu 0.52.0", 4319 - "windows_x86_64_gnullvm 0.52.0", 4320 - "windows_x86_64_msvc 0.52.0", 4969 + "windows_aarch64_gnullvm 0.52.6", 4970 + "windows_aarch64_msvc 0.52.6", 4971 + "windows_i686_gnu 0.52.6", 4972 + "windows_i686_gnullvm", 4973 + "windows_i686_msvc 0.52.6", 4974 + "windows_x86_64_gnu 0.52.6", 4975 + "windows_x86_64_gnullvm 0.52.6", 4976 + "windows_x86_64_msvc 0.52.6", 4321 4977 ] 4322 4978 4323 4979 [[package]] 4324 - name = "windows-tokens" 4325 - version = "0.39.0" 4326 - source = "registry+https://github.com/rust-lang/crates.io-index" 4327 - checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" 4328 - 4329 - [[package]] 4330 4980 name = "windows-version" 4331 - version = "0.1.0" 4981 + version = "0.1.1" 4332 4982 source = "registry+https://github.com/rust-lang/crates.io-index" 4333 - checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4" 4983 + checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515" 4334 4984 dependencies = [ 4335 - "windows-targets 0.52.0", 4985 + "windows-targets 0.52.6", 4336 4986 ] 4337 4987 4338 4988 [[package]] ··· 4349 4999 4350 5000 [[package]] 4351 5001 name = "windows_aarch64_gnullvm" 4352 - version = "0.52.0" 5002 + version = "0.52.6" 4353 5003 source = "registry+https://github.com/rust-lang/crates.io-index" 4354 - checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" 4355 - 4356 - [[package]] 4357 - name = "windows_aarch64_msvc" 4358 - version = "0.39.0" 4359 - source = "registry+https://github.com/rust-lang/crates.io-index" 4360 - checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" 5004 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 4361 5005 4362 5006 [[package]] 4363 5007 name = "windows_aarch64_msvc" ··· 4373 5017 4374 5018 [[package]] 4375 5019 name = "windows_aarch64_msvc" 4376 - version = "0.52.0" 5020 + version = "0.52.6" 4377 5021 source = "registry+https://github.com/rust-lang/crates.io-index" 4378 - checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" 4379 - 4380 - [[package]] 4381 - name = "windows_i686_gnu" 4382 - version = "0.39.0" 4383 - source = "registry+https://github.com/rust-lang/crates.io-index" 4384 - checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" 5022 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 4385 5023 4386 5024 [[package]] 4387 5025 name = "windows_i686_gnu" ··· 4397 5035 4398 5036 [[package]] 4399 5037 name = "windows_i686_gnu" 4400 - version = "0.52.0" 5038 + version = "0.52.6" 4401 5039 source = "registry+https://github.com/rust-lang/crates.io-index" 4402 - checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" 5040 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 4403 5041 4404 5042 [[package]] 4405 - name = "windows_i686_msvc" 4406 - version = "0.39.0" 5043 + name = "windows_i686_gnullvm" 5044 + version = "0.52.6" 4407 5045 source = "registry+https://github.com/rust-lang/crates.io-index" 4408 - checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" 5046 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 4409 5047 4410 5048 [[package]] 4411 5049 name = "windows_i686_msvc" ··· 4421 5059 4422 5060 [[package]] 4423 5061 name = "windows_i686_msvc" 4424 - version = "0.52.0" 5062 + version = "0.52.6" 4425 5063 source = "registry+https://github.com/rust-lang/crates.io-index" 4426 - checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" 4427 - 4428 - [[package]] 4429 - name = "windows_x86_64_gnu" 4430 - version = "0.39.0" 4431 - source = "registry+https://github.com/rust-lang/crates.io-index" 4432 - checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" 5064 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 4433 5065 4434 5066 [[package]] 4435 5067 name = "windows_x86_64_gnu" ··· 4445 5077 4446 5078 [[package]] 4447 5079 name = "windows_x86_64_gnu" 4448 - version = "0.52.0" 5080 + version = "0.52.6" 4449 5081 source = "registry+https://github.com/rust-lang/crates.io-index" 4450 - checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" 5082 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 4451 5083 4452 5084 [[package]] 4453 5085 name = "windows_x86_64_gnullvm" ··· 4463 5095 4464 5096 [[package]] 4465 5097 name = "windows_x86_64_gnullvm" 4466 - version = "0.52.0" 4467 - source = "registry+https://github.com/rust-lang/crates.io-index" 4468 - checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" 4469 - 4470 - [[package]] 4471 - name = "windows_x86_64_msvc" 4472 - version = "0.39.0" 5098 + version = "0.52.6" 4473 5099 source = "registry+https://github.com/rust-lang/crates.io-index" 4474 - checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" 5100 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 4475 5101 4476 5102 [[package]] 4477 5103 name = "windows_x86_64_msvc" ··· 4487 5113 4488 5114 [[package]] 4489 5115 name = "windows_x86_64_msvc" 4490 - version = "0.52.0" 5116 + version = "0.52.6" 4491 5117 source = "registry+https://github.com/rust-lang/crates.io-index" 4492 - checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" 5118 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 4493 5119 4494 5120 [[package]] 4495 5121 name = "winnow" 4496 - version = "0.5.39" 5122 + version = "0.5.40" 4497 5123 source = "registry+https://github.com/rust-lang/crates.io-index" 4498 - checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29" 5124 + checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" 4499 5125 dependencies = [ 4500 5126 "memchr", 4501 5127 ] ··· 4512 5138 4513 5139 [[package]] 4514 5140 name = "winreg" 4515 - version = "0.51.0" 4516 - source = "registry+https://github.com/rust-lang/crates.io-index" 4517 - checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc" 4518 - dependencies = [ 4519 - "cfg-if", 4520 - "windows-sys 0.48.0", 4521 - ] 4522 - 4523 - [[package]] 4524 - name = "winreg" 4525 5141 version = "0.52.0" 4526 5142 source = "registry+https://github.com/rust-lang/crates.io-index" 4527 5143 checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" ··· 4532 5148 4533 5149 [[package]] 4534 5150 name = "wry" 4535 - version = "0.24.7" 5151 + version = "0.42.0" 4536 5152 source = "registry+https://github.com/rust-lang/crates.io-index" 4537 - checksum = "6ad85d0e067359e409fcb88903c3eac817c392e5d638258abfb3da5ad8ba6fc4" 5153 + checksum = "49b8049c8f239cdbfaaea4bacb9646f6b208938ceec0acd5b3e99cd05f70903f" 4538 5154 dependencies = [ 4539 - "base64 0.13.1", 5155 + "base64 0.22.1", 4540 5156 "block", 4541 5157 "cocoa", 4542 - "core-graphics", 5158 + "core-graphics 0.24.0", 4543 5159 "crossbeam-channel", 5160 + "dpi", 4544 5161 "dunce", 4545 - "gdk", 4546 - "gio", 4547 - "glib", 5162 + "gdkx11", 4548 5163 "gtk", 4549 5164 "html5ever", 4550 - "http 0.2.11", 5165 + "http", 5166 + "javascriptcore-rs", 5167 + "jni", 4551 5168 "kuchikiki", 4552 5169 "libc", 4553 - "log", 5170 + "ndk", 4554 5171 "objc", 4555 5172 "objc_id", 4556 5173 "once_cell", 4557 - "serde", 4558 - "serde_json", 5174 + "percent-encoding", 5175 + "raw-window-handle", 4559 5176 "sha2", 4560 - "soup2", 4561 - "tao", 5177 + "soup3", 5178 + "tao-macros", 4562 5179 "thiserror", 4563 - "url", 4564 5180 "webkit2gtk", 4565 5181 "webkit2gtk-sys", 4566 5182 "webview2-com", 4567 - "windows 0.39.0", 4568 - "windows-implement", 5183 + "windows 0.58.0", 5184 + "windows-core 0.58.0", 5185 + "windows-version", 5186 + "x11-dl", 4569 5187 ] 4570 5188 4571 5189 [[package]] ··· 4590 5208 ] 4591 5209 4592 5210 [[package]] 4593 - name = "xattr" 4594 - version = "1.3.1" 5211 + name = "zerocopy" 5212 + version = "0.7.35" 4595 5213 source = "registry+https://github.com/rust-lang/crates.io-index" 4596 - checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" 5214 + checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 4597 5215 dependencies = [ 4598 - "libc", 4599 - "linux-raw-sys", 4600 - "rustix", 5216 + "byteorder", 5217 + "zerocopy-derive", 5218 + ] 5219 + 5220 + [[package]] 5221 + name = "zerocopy-derive" 5222 + version = "0.7.35" 5223 + source = "registry+https://github.com/rust-lang/crates.io-index" 5224 + checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 5225 + dependencies = [ 5226 + "proc-macro2", 5227 + "quote", 5228 + "syn 2.0.75", 4601 5229 ] 5230 + 5231 + [[package]] 5232 + name = "zeroize" 5233 + version = "1.8.1" 5234 + source = "registry+https://github.com/rust-lang/crates.io-index" 5235 + checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
+5 -2
src-tauri/Cargo.toml
··· 8 8 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 9 9 10 10 [build-dependencies] 11 - tauri-build = { version = "1.5", features = [] } 11 + tauri-build = { version = "2.0.0-rc", features = [] } 12 12 13 13 [dependencies] 14 - tauri = { version = "1.6", features = [ "window-show", "window-maximize", "window-close", "window-unmaximize", "window-unminimize", "window-hide", "window-minimize", "window-start-dragging", "process-relaunch", "system-tray", "http-all", "shell-open"] } 14 + tauri = { version = "2.0.0-rc", features = ["tray-icon"] } 15 15 serde = { version = "1.0", features = ["derive"] } 16 16 serde_json = "1.0" 17 17 open = "5.1.2" ··· 21 21 regex = "1.10.4" 22 22 reqwest = { version = "0.12", features = ["blocking"] } 23 23 mslnk = "0.1.8" 24 + tauri-plugin-shell = "2.0.0-rc.2" 25 + tauri-plugin-http = "2.0.0-rc.0" 26 + tauri-plugin-process = "2.0.0-rc.0" 24 27 25 28 [features] 26 29 # this feature is used for production builds or when `devPath` points to the filesystem
+35
src-tauri/capabilities/migrated.json
··· 1 + { 2 + "identifier": "migrated", 3 + "description": "permissions that were migrated from v1", 4 + "local": true, 5 + "windows": [ 6 + "main" 7 + ], 8 + "permissions": [ 9 + "core:default", 10 + "core:window:allow-maximize", 11 + "core:window:allow-unmaximize", 12 + "core:window:allow-minimize", 13 + "core:window:allow-unminimize", 14 + "core:window:allow-show", 15 + "core:window:allow-hide", 16 + "core:window:allow-close", 17 + "core:window:allow-start-dragging", 18 + "shell:allow-open", 19 + { 20 + "identifier": "http:default", 21 + "allow": [ 22 + { 23 + "url": "https://photos.phazed.xyz/*" 24 + }, 25 + { 26 + "url": "https://photos-cdn.phazed.xyz/*" 27 + } 28 + ] 29 + }, 30 + "process:allow-restart", 31 + "shell:default", 32 + "http:default", 33 + "process:default" 34 + ] 35 + }
+1
src-tauri/gen/schemas/acl-manifests.json
··· 1 + {"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-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-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-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-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-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-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"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-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-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-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-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-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-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-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#","definitions":{"ShellAllowedArg":{"anyOf":[{"description":"A non-configurable argument that is passed to the command in the order it was specified.","type":"string"},{"additionalProperties":false,"description":"A variable that is set while calling the command from the webview API.","properties":{"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."},"ShellAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellAllowedArg"},"type":"array"}],"description":"A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"A command allowed to be executed by the webview API.","properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellAllowedArgs"}],"description":"The allowed arguments for the command execution."},"cmd":{"description":"The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"},"sidecar":{"description":"If this command is a sidecar command.","type":"boolean"}},"required":["args","cmd","name","sidecar"],"title":"Entry","type":"object"}}}
+1
src-tauri/gen/schemas/capabilities.json
··· 1 + {"migrated":{"identifier":"migrated","description":"permissions that were migrated from v1","local":true,"windows":["main"],"permissions":["core:default","core:window:allow-maximize","core:window:allow-unmaximize","core:window:allow-minimize","core:window:allow-unminimize","core:window:allow-show","core:window:allow-hide","core:window:allow-close","core:window:allow-start-dragging","shell:allow-open",{"identifier":"http:default","allow":[{"url":"https://photos.phazed.xyz/*"},{"url":"https://photos-cdn.phazed.xyz/*"}]},"process:allow-restart","shell:default","http:default","process:default"]}}
+2708
src-tauri/gen/schemas/desktop-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 + "oneOf": [ 137 + { 138 + "type": "object", 139 + "required": [ 140 + "identifier" 141 + ], 142 + "properties": { 143 + "identifier": { 144 + "oneOf": [ 145 + { 146 + "description": "http:default -> 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", 147 + "type": "string", 148 + "enum": [ 149 + "http:default" 150 + ] 151 + }, 152 + { 153 + "description": "http:allow-fetch -> Enables the fetch command without any pre-configured scope.", 154 + "type": "string", 155 + "enum": [ 156 + "http:allow-fetch" 157 + ] 158 + }, 159 + { 160 + "description": "http:allow-fetch-cancel -> Enables the fetch_cancel command without any pre-configured scope.", 161 + "type": "string", 162 + "enum": [ 163 + "http:allow-fetch-cancel" 164 + ] 165 + }, 166 + { 167 + "description": "http:allow-fetch-read-body -> Enables the fetch_read_body command without any pre-configured scope.", 168 + "type": "string", 169 + "enum": [ 170 + "http:allow-fetch-read-body" 171 + ] 172 + }, 173 + { 174 + "description": "http:allow-fetch-send -> Enables the fetch_send command without any pre-configured scope.", 175 + "type": "string", 176 + "enum": [ 177 + "http:allow-fetch-send" 178 + ] 179 + }, 180 + { 181 + "description": "http:deny-fetch -> Denies the fetch command without any pre-configured scope.", 182 + "type": "string", 183 + "enum": [ 184 + "http:deny-fetch" 185 + ] 186 + }, 187 + { 188 + "description": "http:deny-fetch-cancel -> Denies the fetch_cancel command without any pre-configured scope.", 189 + "type": "string", 190 + "enum": [ 191 + "http:deny-fetch-cancel" 192 + ] 193 + }, 194 + { 195 + "description": "http:deny-fetch-read-body -> Denies the fetch_read_body command without any pre-configured scope.", 196 + "type": "string", 197 + "enum": [ 198 + "http:deny-fetch-read-body" 199 + ] 200 + }, 201 + { 202 + "description": "http:deny-fetch-send -> Denies the fetch_send command without any pre-configured scope.", 203 + "type": "string", 204 + "enum": [ 205 + "http:deny-fetch-send" 206 + ] 207 + } 208 + ] 209 + }, 210 + "allow": { 211 + "items": { 212 + "title": "HttpScopeEntry", 213 + "description": "HTTP scope entry.", 214 + "anyOf": [ 215 + { 216 + "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/\"", 217 + "type": "string" 218 + }, 219 + { 220 + "type": "object", 221 + "required": [ 222 + "url" 223 + ], 224 + "properties": { 225 + "url": { 226 + "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/\"", 227 + "type": "string" 228 + } 229 + } 230 + } 231 + ] 232 + } 233 + }, 234 + "deny": { 235 + "items": { 236 + "title": "HttpScopeEntry", 237 + "description": "HTTP scope entry.", 238 + "anyOf": [ 239 + { 240 + "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/\"", 241 + "type": "string" 242 + }, 243 + { 244 + "type": "object", 245 + "required": [ 246 + "url" 247 + ], 248 + "properties": { 249 + "url": { 250 + "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/\"", 251 + "type": "string" 252 + } 253 + } 254 + } 255 + ] 256 + } 257 + } 258 + } 259 + }, 260 + { 261 + "type": "object", 262 + "required": [ 263 + "identifier" 264 + ], 265 + "properties": { 266 + "identifier": { 267 + "oneOf": [ 268 + { 269 + "description": "shell:default -> 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", 270 + "type": "string", 271 + "enum": [ 272 + "shell:default" 273 + ] 274 + }, 275 + { 276 + "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", 277 + "type": "string", 278 + "enum": [ 279 + "shell:allow-execute" 280 + ] 281 + }, 282 + { 283 + "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", 284 + "type": "string", 285 + "enum": [ 286 + "shell:allow-kill" 287 + ] 288 + }, 289 + { 290 + "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", 291 + "type": "string", 292 + "enum": [ 293 + "shell:allow-open" 294 + ] 295 + }, 296 + { 297 + "description": "shell:allow-spawn -> Enables the spawn command without any pre-configured scope.", 298 + "type": "string", 299 + "enum": [ 300 + "shell:allow-spawn" 301 + ] 302 + }, 303 + { 304 + "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", 305 + "type": "string", 306 + "enum": [ 307 + "shell:allow-stdin-write" 308 + ] 309 + }, 310 + { 311 + "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", 312 + "type": "string", 313 + "enum": [ 314 + "shell:deny-execute" 315 + ] 316 + }, 317 + { 318 + "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", 319 + "type": "string", 320 + "enum": [ 321 + "shell:deny-kill" 322 + ] 323 + }, 324 + { 325 + "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", 326 + "type": "string", 327 + "enum": [ 328 + "shell:deny-open" 329 + ] 330 + }, 331 + { 332 + "description": "shell:deny-spawn -> Denies the spawn command without any pre-configured scope.", 333 + "type": "string", 334 + "enum": [ 335 + "shell:deny-spawn" 336 + ] 337 + }, 338 + { 339 + "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", 340 + "type": "string", 341 + "enum": [ 342 + "shell:deny-stdin-write" 343 + ] 344 + } 345 + ] 346 + }, 347 + "allow": { 348 + "items": { 349 + "title": "Entry", 350 + "description": "A command allowed to be executed by the webview API.", 351 + "type": "object", 352 + "required": [ 353 + "args", 354 + "cmd", 355 + "name", 356 + "sidecar" 357 + ], 358 + "properties": { 359 + "args": { 360 + "description": "The allowed arguments for the command execution.", 361 + "allOf": [ 362 + { 363 + "$ref": "#/definitions/ShellAllowedArgs" 364 + } 365 + ] 366 + }, 367 + "cmd": { 368 + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", 369 + "type": "string" 370 + }, 371 + "name": { 372 + "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.", 373 + "type": "string" 374 + }, 375 + "sidecar": { 376 + "description": "If this command is a sidecar command.", 377 + "type": "boolean" 378 + } 379 + } 380 + } 381 + }, 382 + "deny": { 383 + "items": { 384 + "title": "Entry", 385 + "description": "A command allowed to be executed by the webview API.", 386 + "type": "object", 387 + "required": [ 388 + "args", 389 + "cmd", 390 + "name", 391 + "sidecar" 392 + ], 393 + "properties": { 394 + "args": { 395 + "description": "The allowed arguments for the command execution.", 396 + "allOf": [ 397 + { 398 + "$ref": "#/definitions/ShellAllowedArgs" 399 + } 400 + ] 401 + }, 402 + "cmd": { 403 + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", 404 + "type": "string" 405 + }, 406 + "name": { 407 + "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.", 408 + "type": "string" 409 + }, 410 + "sidecar": { 411 + "description": "If this command is a sidecar command.", 412 + "type": "boolean" 413 + } 414 + } 415 + } 416 + } 417 + } 418 + } 419 + ] 420 + } 421 + ] 422 + }, 423 + "Identifier": { 424 + "oneOf": [ 425 + { 426 + "description": "core:app:default -> Default permissions for the plugin.", 427 + "type": "string", 428 + "enum": [ 429 + "core:app:default" 430 + ] 431 + }, 432 + { 433 + "description": "core:app:allow-app-hide -> Enables the app_hide command without any pre-configured scope.", 434 + "type": "string", 435 + "enum": [ 436 + "core:app:allow-app-hide" 437 + ] 438 + }, 439 + { 440 + "description": "core:app:allow-app-show -> Enables the app_show command without any pre-configured scope.", 441 + "type": "string", 442 + "enum": [ 443 + "core:app:allow-app-show" 444 + ] 445 + }, 446 + { 447 + "description": "core:app:allow-default-window-icon -> Enables the default_window_icon command without any pre-configured scope.", 448 + "type": "string", 449 + "enum": [ 450 + "core:app:allow-default-window-icon" 451 + ] 452 + }, 453 + { 454 + "description": "core:app:allow-name -> Enables the name command without any pre-configured scope.", 455 + "type": "string", 456 + "enum": [ 457 + "core:app:allow-name" 458 + ] 459 + }, 460 + { 461 + "description": "core:app:allow-tauri-version -> Enables the tauri_version command without any pre-configured scope.", 462 + "type": "string", 463 + "enum": [ 464 + "core:app:allow-tauri-version" 465 + ] 466 + }, 467 + { 468 + "description": "core:app:allow-version -> Enables the version command without any pre-configured scope.", 469 + "type": "string", 470 + "enum": [ 471 + "core:app:allow-version" 472 + ] 473 + }, 474 + { 475 + "description": "core:app:deny-app-hide -> Denies the app_hide command without any pre-configured scope.", 476 + "type": "string", 477 + "enum": [ 478 + "core:app:deny-app-hide" 479 + ] 480 + }, 481 + { 482 + "description": "core:app:deny-app-show -> Denies the app_show command without any pre-configured scope.", 483 + "type": "string", 484 + "enum": [ 485 + "core:app:deny-app-show" 486 + ] 487 + }, 488 + { 489 + "description": "core:app:deny-default-window-icon -> Denies the default_window_icon command without any pre-configured scope.", 490 + "type": "string", 491 + "enum": [ 492 + "core:app:deny-default-window-icon" 493 + ] 494 + }, 495 + { 496 + "description": "core:app:deny-name -> Denies the name command without any pre-configured scope.", 497 + "type": "string", 498 + "enum": [ 499 + "core:app:deny-name" 500 + ] 501 + }, 502 + { 503 + "description": "core:app:deny-tauri-version -> Denies the tauri_version command without any pre-configured scope.", 504 + "type": "string", 505 + "enum": [ 506 + "core:app:deny-tauri-version" 507 + ] 508 + }, 509 + { 510 + "description": "core:app:deny-version -> Denies the version command without any pre-configured scope.", 511 + "type": "string", 512 + "enum": [ 513 + "core:app:deny-version" 514 + ] 515 + }, 516 + { 517 + "description": "core:event:default -> Default permissions for the plugin.", 518 + "type": "string", 519 + "enum": [ 520 + "core:event:default" 521 + ] 522 + }, 523 + { 524 + "description": "core:event:allow-emit -> Enables the emit command without any pre-configured scope.", 525 + "type": "string", 526 + "enum": [ 527 + "core:event:allow-emit" 528 + ] 529 + }, 530 + { 531 + "description": "core:event:allow-emit-to -> Enables the emit_to command without any pre-configured scope.", 532 + "type": "string", 533 + "enum": [ 534 + "core:event:allow-emit-to" 535 + ] 536 + }, 537 + { 538 + "description": "core:event:allow-listen -> Enables the listen command without any pre-configured scope.", 539 + "type": "string", 540 + "enum": [ 541 + "core:event:allow-listen" 542 + ] 543 + }, 544 + { 545 + "description": "core:event:allow-unlisten -> Enables the unlisten command without any pre-configured scope.", 546 + "type": "string", 547 + "enum": [ 548 + "core:event:allow-unlisten" 549 + ] 550 + }, 551 + { 552 + "description": "core:event:deny-emit -> Denies the emit command without any pre-configured scope.", 553 + "type": "string", 554 + "enum": [ 555 + "core:event:deny-emit" 556 + ] 557 + }, 558 + { 559 + "description": "core:event:deny-emit-to -> Denies the emit_to command without any pre-configured scope.", 560 + "type": "string", 561 + "enum": [ 562 + "core:event:deny-emit-to" 563 + ] 564 + }, 565 + { 566 + "description": "core:event:deny-listen -> Denies the listen command without any pre-configured scope.", 567 + "type": "string", 568 + "enum": [ 569 + "core:event:deny-listen" 570 + ] 571 + }, 572 + { 573 + "description": "core:event:deny-unlisten -> Denies the unlisten command without any pre-configured scope.", 574 + "type": "string", 575 + "enum": [ 576 + "core:event:deny-unlisten" 577 + ] 578 + }, 579 + { 580 + "description": "core:image:default -> Default permissions for the plugin.", 581 + "type": "string", 582 + "enum": [ 583 + "core:image:default" 584 + ] 585 + }, 586 + { 587 + "description": "core:image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.", 588 + "type": "string", 589 + "enum": [ 590 + "core:image:allow-from-bytes" 591 + ] 592 + }, 593 + { 594 + "description": "core:image:allow-from-path -> Enables the from_path command without any pre-configured scope.", 595 + "type": "string", 596 + "enum": [ 597 + "core:image:allow-from-path" 598 + ] 599 + }, 600 + { 601 + "description": "core:image:allow-new -> Enables the new command without any pre-configured scope.", 602 + "type": "string", 603 + "enum": [ 604 + "core:image:allow-new" 605 + ] 606 + }, 607 + { 608 + "description": "core:image:allow-rgba -> Enables the rgba command without any pre-configured scope.", 609 + "type": "string", 610 + "enum": [ 611 + "core:image:allow-rgba" 612 + ] 613 + }, 614 + { 615 + "description": "core:image:allow-size -> Enables the size command without any pre-configured scope.", 616 + "type": "string", 617 + "enum": [ 618 + "core:image:allow-size" 619 + ] 620 + }, 621 + { 622 + "description": "core:image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.", 623 + "type": "string", 624 + "enum": [ 625 + "core:image:deny-from-bytes" 626 + ] 627 + }, 628 + { 629 + "description": "core:image:deny-from-path -> Denies the from_path command without any pre-configured scope.", 630 + "type": "string", 631 + "enum": [ 632 + "core:image:deny-from-path" 633 + ] 634 + }, 635 + { 636 + "description": "core:image:deny-new -> Denies the new command without any pre-configured scope.", 637 + "type": "string", 638 + "enum": [ 639 + "core:image:deny-new" 640 + ] 641 + }, 642 + { 643 + "description": "core:image:deny-rgba -> Denies the rgba command without any pre-configured scope.", 644 + "type": "string", 645 + "enum": [ 646 + "core:image:deny-rgba" 647 + ] 648 + }, 649 + { 650 + "description": "core:image:deny-size -> Denies the size command without any pre-configured scope.", 651 + "type": "string", 652 + "enum": [ 653 + "core:image:deny-size" 654 + ] 655 + }, 656 + { 657 + "description": "core:menu:default -> Default permissions for the plugin.", 658 + "type": "string", 659 + "enum": [ 660 + "core:menu:default" 661 + ] 662 + }, 663 + { 664 + "description": "core:menu:allow-append -> Enables the append command without any pre-configured scope.", 665 + "type": "string", 666 + "enum": [ 667 + "core:menu:allow-append" 668 + ] 669 + }, 670 + { 671 + "description": "core:menu:allow-create-default -> Enables the create_default command without any pre-configured scope.", 672 + "type": "string", 673 + "enum": [ 674 + "core:menu:allow-create-default" 675 + ] 676 + }, 677 + { 678 + "description": "core:menu:allow-get -> Enables the get command without any pre-configured scope.", 679 + "type": "string", 680 + "enum": [ 681 + "core:menu:allow-get" 682 + ] 683 + }, 684 + { 685 + "description": "core:menu:allow-insert -> Enables the insert command without any pre-configured scope.", 686 + "type": "string", 687 + "enum": [ 688 + "core:menu:allow-insert" 689 + ] 690 + }, 691 + { 692 + "description": "core:menu:allow-is-checked -> Enables the is_checked command without any pre-configured scope.", 693 + "type": "string", 694 + "enum": [ 695 + "core:menu:allow-is-checked" 696 + ] 697 + }, 698 + { 699 + "description": "core:menu:allow-is-enabled -> Enables the is_enabled command without any pre-configured scope.", 700 + "type": "string", 701 + "enum": [ 702 + "core:menu:allow-is-enabled" 703 + ] 704 + }, 705 + { 706 + "description": "core:menu:allow-items -> Enables the items command without any pre-configured scope.", 707 + "type": "string", 708 + "enum": [ 709 + "core:menu:allow-items" 710 + ] 711 + }, 712 + { 713 + "description": "core:menu:allow-new -> Enables the new command without any pre-configured scope.", 714 + "type": "string", 715 + "enum": [ 716 + "core:menu:allow-new" 717 + ] 718 + }, 719 + { 720 + "description": "core:menu:allow-popup -> Enables the popup command without any pre-configured scope.", 721 + "type": "string", 722 + "enum": [ 723 + "core:menu:allow-popup" 724 + ] 725 + }, 726 + { 727 + "description": "core:menu:allow-prepend -> Enables the prepend command without any pre-configured scope.", 728 + "type": "string", 729 + "enum": [ 730 + "core:menu:allow-prepend" 731 + ] 732 + }, 733 + { 734 + "description": "core:menu:allow-remove -> Enables the remove command without any pre-configured scope.", 735 + "type": "string", 736 + "enum": [ 737 + "core:menu:allow-remove" 738 + ] 739 + }, 740 + { 741 + "description": "core:menu:allow-remove-at -> Enables the remove_at command without any pre-configured scope.", 742 + "type": "string", 743 + "enum": [ 744 + "core:menu:allow-remove-at" 745 + ] 746 + }, 747 + { 748 + "description": "core:menu:allow-set-accelerator -> Enables the set_accelerator command without any pre-configured scope.", 749 + "type": "string", 750 + "enum": [ 751 + "core:menu:allow-set-accelerator" 752 + ] 753 + }, 754 + { 755 + "description": "core:menu:allow-set-as-app-menu -> Enables the set_as_app_menu command without any pre-configured scope.", 756 + "type": "string", 757 + "enum": [ 758 + "core:menu:allow-set-as-app-menu" 759 + ] 760 + }, 761 + { 762 + "description": "core:menu:allow-set-as-help-menu-for-nsapp -> Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", 763 + "type": "string", 764 + "enum": [ 765 + "core:menu:allow-set-as-help-menu-for-nsapp" 766 + ] 767 + }, 768 + { 769 + "description": "core:menu:allow-set-as-window-menu -> Enables the set_as_window_menu command without any pre-configured scope.", 770 + "type": "string", 771 + "enum": [ 772 + "core:menu:allow-set-as-window-menu" 773 + ] 774 + }, 775 + { 776 + "description": "core:menu:allow-set-as-windows-menu-for-nsapp -> Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", 777 + "type": "string", 778 + "enum": [ 779 + "core:menu:allow-set-as-windows-menu-for-nsapp" 780 + ] 781 + }, 782 + { 783 + "description": "core:menu:allow-set-checked -> Enables the set_checked command without any pre-configured scope.", 784 + "type": "string", 785 + "enum": [ 786 + "core:menu:allow-set-checked" 787 + ] 788 + }, 789 + { 790 + "description": "core:menu:allow-set-enabled -> Enables the set_enabled command without any pre-configured scope.", 791 + "type": "string", 792 + "enum": [ 793 + "core:menu:allow-set-enabled" 794 + ] 795 + }, 796 + { 797 + "description": "core:menu:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", 798 + "type": "string", 799 + "enum": [ 800 + "core:menu:allow-set-icon" 801 + ] 802 + }, 803 + { 804 + "description": "core:menu:allow-set-text -> Enables the set_text command without any pre-configured scope.", 805 + "type": "string", 806 + "enum": [ 807 + "core:menu:allow-set-text" 808 + ] 809 + }, 810 + { 811 + "description": "core:menu:allow-text -> Enables the text command without any pre-configured scope.", 812 + "type": "string", 813 + "enum": [ 814 + "core:menu:allow-text" 815 + ] 816 + }, 817 + { 818 + "description": "core:menu:deny-append -> Denies the append command without any pre-configured scope.", 819 + "type": "string", 820 + "enum": [ 821 + "core:menu:deny-append" 822 + ] 823 + }, 824 + { 825 + "description": "core:menu:deny-create-default -> Denies the create_default command without any pre-configured scope.", 826 + "type": "string", 827 + "enum": [ 828 + "core:menu:deny-create-default" 829 + ] 830 + }, 831 + { 832 + "description": "core:menu:deny-get -> Denies the get command without any pre-configured scope.", 833 + "type": "string", 834 + "enum": [ 835 + "core:menu:deny-get" 836 + ] 837 + }, 838 + { 839 + "description": "core:menu:deny-insert -> Denies the insert command without any pre-configured scope.", 840 + "type": "string", 841 + "enum": [ 842 + "core:menu:deny-insert" 843 + ] 844 + }, 845 + { 846 + "description": "core:menu:deny-is-checked -> Denies the is_checked command without any pre-configured scope.", 847 + "type": "string", 848 + "enum": [ 849 + "core:menu:deny-is-checked" 850 + ] 851 + }, 852 + { 853 + "description": "core:menu:deny-is-enabled -> Denies the is_enabled command without any pre-configured scope.", 854 + "type": "string", 855 + "enum": [ 856 + "core:menu:deny-is-enabled" 857 + ] 858 + }, 859 + { 860 + "description": "core:menu:deny-items -> Denies the items command without any pre-configured scope.", 861 + "type": "string", 862 + "enum": [ 863 + "core:menu:deny-items" 864 + ] 865 + }, 866 + { 867 + "description": "core:menu:deny-new -> Denies the new command without any pre-configured scope.", 868 + "type": "string", 869 + "enum": [ 870 + "core:menu:deny-new" 871 + ] 872 + }, 873 + { 874 + "description": "core:menu:deny-popup -> Denies the popup command without any pre-configured scope.", 875 + "type": "string", 876 + "enum": [ 877 + "core:menu:deny-popup" 878 + ] 879 + }, 880 + { 881 + "description": "core:menu:deny-prepend -> Denies the prepend command without any pre-configured scope.", 882 + "type": "string", 883 + "enum": [ 884 + "core:menu:deny-prepend" 885 + ] 886 + }, 887 + { 888 + "description": "core:menu:deny-remove -> Denies the remove command without any pre-configured scope.", 889 + "type": "string", 890 + "enum": [ 891 + "core:menu:deny-remove" 892 + ] 893 + }, 894 + { 895 + "description": "core:menu:deny-remove-at -> Denies the remove_at command without any pre-configured scope.", 896 + "type": "string", 897 + "enum": [ 898 + "core:menu:deny-remove-at" 899 + ] 900 + }, 901 + { 902 + "description": "core:menu:deny-set-accelerator -> Denies the set_accelerator command without any pre-configured scope.", 903 + "type": "string", 904 + "enum": [ 905 + "core:menu:deny-set-accelerator" 906 + ] 907 + }, 908 + { 909 + "description": "core:menu:deny-set-as-app-menu -> Denies the set_as_app_menu command without any pre-configured scope.", 910 + "type": "string", 911 + "enum": [ 912 + "core:menu:deny-set-as-app-menu" 913 + ] 914 + }, 915 + { 916 + "description": "core:menu:deny-set-as-help-menu-for-nsapp -> Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", 917 + "type": "string", 918 + "enum": [ 919 + "core:menu:deny-set-as-help-menu-for-nsapp" 920 + ] 921 + }, 922 + { 923 + "description": "core:menu:deny-set-as-window-menu -> Denies the set_as_window_menu command without any pre-configured scope.", 924 + "type": "string", 925 + "enum": [ 926 + "core:menu:deny-set-as-window-menu" 927 + ] 928 + }, 929 + { 930 + "description": "core:menu:deny-set-as-windows-menu-for-nsapp -> Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", 931 + "type": "string", 932 + "enum": [ 933 + "core:menu:deny-set-as-windows-menu-for-nsapp" 934 + ] 935 + }, 936 + { 937 + "description": "core:menu:deny-set-checked -> Denies the set_checked command without any pre-configured scope.", 938 + "type": "string", 939 + "enum": [ 940 + "core:menu:deny-set-checked" 941 + ] 942 + }, 943 + { 944 + "description": "core:menu:deny-set-enabled -> Denies the set_enabled command without any pre-configured scope.", 945 + "type": "string", 946 + "enum": [ 947 + "core:menu:deny-set-enabled" 948 + ] 949 + }, 950 + { 951 + "description": "core:menu:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", 952 + "type": "string", 953 + "enum": [ 954 + "core:menu:deny-set-icon" 955 + ] 956 + }, 957 + { 958 + "description": "core:menu:deny-set-text -> Denies the set_text command without any pre-configured scope.", 959 + "type": "string", 960 + "enum": [ 961 + "core:menu:deny-set-text" 962 + ] 963 + }, 964 + { 965 + "description": "core:menu:deny-text -> Denies the text command without any pre-configured scope.", 966 + "type": "string", 967 + "enum": [ 968 + "core:menu:deny-text" 969 + ] 970 + }, 971 + { 972 + "description": "core:path:default -> Default permissions for the plugin.", 973 + "type": "string", 974 + "enum": [ 975 + "core:path:default" 976 + ] 977 + }, 978 + { 979 + "description": "core:path:allow-basename -> Enables the basename command without any pre-configured scope.", 980 + "type": "string", 981 + "enum": [ 982 + "core:path:allow-basename" 983 + ] 984 + }, 985 + { 986 + "description": "core:path:allow-dirname -> Enables the dirname command without any pre-configured scope.", 987 + "type": "string", 988 + "enum": [ 989 + "core:path:allow-dirname" 990 + ] 991 + }, 992 + { 993 + "description": "core:path:allow-extname -> Enables the extname command without any pre-configured scope.", 994 + "type": "string", 995 + "enum": [ 996 + "core:path:allow-extname" 997 + ] 998 + }, 999 + { 1000 + "description": "core:path:allow-is-absolute -> Enables the is_absolute command without any pre-configured scope.", 1001 + "type": "string", 1002 + "enum": [ 1003 + "core:path:allow-is-absolute" 1004 + ] 1005 + }, 1006 + { 1007 + "description": "core:path:allow-join -> Enables the join command without any pre-configured scope.", 1008 + "type": "string", 1009 + "enum": [ 1010 + "core:path:allow-join" 1011 + ] 1012 + }, 1013 + { 1014 + "description": "core:path:allow-normalize -> Enables the normalize command without any pre-configured scope.", 1015 + "type": "string", 1016 + "enum": [ 1017 + "core:path:allow-normalize" 1018 + ] 1019 + }, 1020 + { 1021 + "description": "core:path:allow-resolve -> Enables the resolve command without any pre-configured scope.", 1022 + "type": "string", 1023 + "enum": [ 1024 + "core:path:allow-resolve" 1025 + ] 1026 + }, 1027 + { 1028 + "description": "core:path:allow-resolve-directory -> Enables the resolve_directory command without any pre-configured scope.", 1029 + "type": "string", 1030 + "enum": [ 1031 + "core:path:allow-resolve-directory" 1032 + ] 1033 + }, 1034 + { 1035 + "description": "core:path:deny-basename -> Denies the basename command without any pre-configured scope.", 1036 + "type": "string", 1037 + "enum": [ 1038 + "core:path:deny-basename" 1039 + ] 1040 + }, 1041 + { 1042 + "description": "core:path:deny-dirname -> Denies the dirname command without any pre-configured scope.", 1043 + "type": "string", 1044 + "enum": [ 1045 + "core:path:deny-dirname" 1046 + ] 1047 + }, 1048 + { 1049 + "description": "core:path:deny-extname -> Denies the extname command without any pre-configured scope.", 1050 + "type": "string", 1051 + "enum": [ 1052 + "core:path:deny-extname" 1053 + ] 1054 + }, 1055 + { 1056 + "description": "core:path:deny-is-absolute -> Denies the is_absolute command without any pre-configured scope.", 1057 + "type": "string", 1058 + "enum": [ 1059 + "core:path:deny-is-absolute" 1060 + ] 1061 + }, 1062 + { 1063 + "description": "core:path:deny-join -> Denies the join command without any pre-configured scope.", 1064 + "type": "string", 1065 + "enum": [ 1066 + "core:path:deny-join" 1067 + ] 1068 + }, 1069 + { 1070 + "description": "core:path:deny-normalize -> Denies the normalize command without any pre-configured scope.", 1071 + "type": "string", 1072 + "enum": [ 1073 + "core:path:deny-normalize" 1074 + ] 1075 + }, 1076 + { 1077 + "description": "core:path:deny-resolve -> Denies the resolve command without any pre-configured scope.", 1078 + "type": "string", 1079 + "enum": [ 1080 + "core:path:deny-resolve" 1081 + ] 1082 + }, 1083 + { 1084 + "description": "core:path:deny-resolve-directory -> Denies the resolve_directory command without any pre-configured scope.", 1085 + "type": "string", 1086 + "enum": [ 1087 + "core:path:deny-resolve-directory" 1088 + ] 1089 + }, 1090 + { 1091 + "description": "core:resources:default -> Default permissions for the plugin.", 1092 + "type": "string", 1093 + "enum": [ 1094 + "core:resources:default" 1095 + ] 1096 + }, 1097 + { 1098 + "description": "core:resources:allow-close -> Enables the close command without any pre-configured scope.", 1099 + "type": "string", 1100 + "enum": [ 1101 + "core:resources:allow-close" 1102 + ] 1103 + }, 1104 + { 1105 + "description": "core:resources:deny-close -> Denies the close command without any pre-configured scope.", 1106 + "type": "string", 1107 + "enum": [ 1108 + "core:resources:deny-close" 1109 + ] 1110 + }, 1111 + { 1112 + "description": "core:tray:default -> Default permissions for the plugin.", 1113 + "type": "string", 1114 + "enum": [ 1115 + "core:tray:default" 1116 + ] 1117 + }, 1118 + { 1119 + "description": "core:tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.", 1120 + "type": "string", 1121 + "enum": [ 1122 + "core:tray:allow-get-by-id" 1123 + ] 1124 + }, 1125 + { 1126 + "description": "core:tray:allow-new -> Enables the new command without any pre-configured scope.", 1127 + "type": "string", 1128 + "enum": [ 1129 + "core:tray:allow-new" 1130 + ] 1131 + }, 1132 + { 1133 + "description": "core:tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.", 1134 + "type": "string", 1135 + "enum": [ 1136 + "core:tray:allow-remove-by-id" 1137 + ] 1138 + }, 1139 + { 1140 + "description": "core:tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", 1141 + "type": "string", 1142 + "enum": [ 1143 + "core:tray:allow-set-icon" 1144 + ] 1145 + }, 1146 + { 1147 + "description": "core:tray:allow-set-icon-as-template -> Enables the set_icon_as_template command without any pre-configured scope.", 1148 + "type": "string", 1149 + "enum": [ 1150 + "core:tray:allow-set-icon-as-template" 1151 + ] 1152 + }, 1153 + { 1154 + "description": "core:tray:allow-set-menu -> Enables the set_menu command without any pre-configured scope.", 1155 + "type": "string", 1156 + "enum": [ 1157 + "core:tray:allow-set-menu" 1158 + ] 1159 + }, 1160 + { 1161 + "description": "core:tray:allow-set-show-menu-on-left-click -> Enables the set_show_menu_on_left_click command without any pre-configured scope.", 1162 + "type": "string", 1163 + "enum": [ 1164 + "core:tray:allow-set-show-menu-on-left-click" 1165 + ] 1166 + }, 1167 + { 1168 + "description": "core:tray:allow-set-temp-dir-path -> Enables the set_temp_dir_path command without any pre-configured scope.", 1169 + "type": "string", 1170 + "enum": [ 1171 + "core:tray:allow-set-temp-dir-path" 1172 + ] 1173 + }, 1174 + { 1175 + "description": "core:tray:allow-set-title -> Enables the set_title command without any pre-configured scope.", 1176 + "type": "string", 1177 + "enum": [ 1178 + "core:tray:allow-set-title" 1179 + ] 1180 + }, 1181 + { 1182 + "description": "core:tray:allow-set-tooltip -> Enables the set_tooltip command without any pre-configured scope.", 1183 + "type": "string", 1184 + "enum": [ 1185 + "core:tray:allow-set-tooltip" 1186 + ] 1187 + }, 1188 + { 1189 + "description": "core:tray:allow-set-visible -> Enables the set_visible command without any pre-configured scope.", 1190 + "type": "string", 1191 + "enum": [ 1192 + "core:tray:allow-set-visible" 1193 + ] 1194 + }, 1195 + { 1196 + "description": "core:tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.", 1197 + "type": "string", 1198 + "enum": [ 1199 + "core:tray:deny-get-by-id" 1200 + ] 1201 + }, 1202 + { 1203 + "description": "core:tray:deny-new -> Denies the new command without any pre-configured scope.", 1204 + "type": "string", 1205 + "enum": [ 1206 + "core:tray:deny-new" 1207 + ] 1208 + }, 1209 + { 1210 + "description": "core:tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.", 1211 + "type": "string", 1212 + "enum": [ 1213 + "core:tray:deny-remove-by-id" 1214 + ] 1215 + }, 1216 + { 1217 + "description": "core:tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", 1218 + "type": "string", 1219 + "enum": [ 1220 + "core:tray:deny-set-icon" 1221 + ] 1222 + }, 1223 + { 1224 + "description": "core:tray:deny-set-icon-as-template -> Denies the set_icon_as_template command without any pre-configured scope.", 1225 + "type": "string", 1226 + "enum": [ 1227 + "core:tray:deny-set-icon-as-template" 1228 + ] 1229 + }, 1230 + { 1231 + "description": "core:tray:deny-set-menu -> Denies the set_menu command without any pre-configured scope.", 1232 + "type": "string", 1233 + "enum": [ 1234 + "core:tray:deny-set-menu" 1235 + ] 1236 + }, 1237 + { 1238 + "description": "core:tray:deny-set-show-menu-on-left-click -> Denies the set_show_menu_on_left_click command without any pre-configured scope.", 1239 + "type": "string", 1240 + "enum": [ 1241 + "core:tray:deny-set-show-menu-on-left-click" 1242 + ] 1243 + }, 1244 + { 1245 + "description": "core:tray:deny-set-temp-dir-path -> Denies the set_temp_dir_path command without any pre-configured scope.", 1246 + "type": "string", 1247 + "enum": [ 1248 + "core:tray:deny-set-temp-dir-path" 1249 + ] 1250 + }, 1251 + { 1252 + "description": "core:tray:deny-set-title -> Denies the set_title command without any pre-configured scope.", 1253 + "type": "string", 1254 + "enum": [ 1255 + "core:tray:deny-set-title" 1256 + ] 1257 + }, 1258 + { 1259 + "description": "core:tray:deny-set-tooltip -> Denies the set_tooltip command without any pre-configured scope.", 1260 + "type": "string", 1261 + "enum": [ 1262 + "core:tray:deny-set-tooltip" 1263 + ] 1264 + }, 1265 + { 1266 + "description": "core:tray:deny-set-visible -> Denies the set_visible command without any pre-configured scope.", 1267 + "type": "string", 1268 + "enum": [ 1269 + "core:tray:deny-set-visible" 1270 + ] 1271 + }, 1272 + { 1273 + "description": "core:webview:default -> Default permissions for the plugin.", 1274 + "type": "string", 1275 + "enum": [ 1276 + "core:webview:default" 1277 + ] 1278 + }, 1279 + { 1280 + "description": "core:webview:allow-create-webview -> Enables the create_webview command without any pre-configured scope.", 1281 + "type": "string", 1282 + "enum": [ 1283 + "core:webview:allow-create-webview" 1284 + ] 1285 + }, 1286 + { 1287 + "description": "core:webview:allow-create-webview-window -> Enables the create_webview_window command without any pre-configured scope.", 1288 + "type": "string", 1289 + "enum": [ 1290 + "core:webview:allow-create-webview-window" 1291 + ] 1292 + }, 1293 + { 1294 + "description": "core:webview:allow-get-all-webviews -> Enables the get_all_webviews command without any pre-configured scope.", 1295 + "type": "string", 1296 + "enum": [ 1297 + "core:webview:allow-get-all-webviews" 1298 + ] 1299 + }, 1300 + { 1301 + "description": "core:webview:allow-internal-toggle-devtools -> Enables the internal_toggle_devtools command without any pre-configured scope.", 1302 + "type": "string", 1303 + "enum": [ 1304 + "core:webview:allow-internal-toggle-devtools" 1305 + ] 1306 + }, 1307 + { 1308 + "description": "core:webview:allow-print -> Enables the print command without any pre-configured scope.", 1309 + "type": "string", 1310 + "enum": [ 1311 + "core:webview:allow-print" 1312 + ] 1313 + }, 1314 + { 1315 + "description": "core:webview:allow-reparent -> Enables the reparent command without any pre-configured scope.", 1316 + "type": "string", 1317 + "enum": [ 1318 + "core:webview:allow-reparent" 1319 + ] 1320 + }, 1321 + { 1322 + "description": "core:webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.", 1323 + "type": "string", 1324 + "enum": [ 1325 + "core:webview:allow-set-webview-focus" 1326 + ] 1327 + }, 1328 + { 1329 + "description": "core:webview:allow-set-webview-position -> Enables the set_webview_position command without any pre-configured scope.", 1330 + "type": "string", 1331 + "enum": [ 1332 + "core:webview:allow-set-webview-position" 1333 + ] 1334 + }, 1335 + { 1336 + "description": "core:webview:allow-set-webview-size -> Enables the set_webview_size command without any pre-configured scope.", 1337 + "type": "string", 1338 + "enum": [ 1339 + "core:webview:allow-set-webview-size" 1340 + ] 1341 + }, 1342 + { 1343 + "description": "core:webview:allow-set-webview-zoom -> Enables the set_webview_zoom command without any pre-configured scope.", 1344 + "type": "string", 1345 + "enum": [ 1346 + "core:webview:allow-set-webview-zoom" 1347 + ] 1348 + }, 1349 + { 1350 + "description": "core:webview:allow-webview-close -> Enables the webview_close command without any pre-configured scope.", 1351 + "type": "string", 1352 + "enum": [ 1353 + "core:webview:allow-webview-close" 1354 + ] 1355 + }, 1356 + { 1357 + "description": "core:webview:allow-webview-position -> Enables the webview_position command without any pre-configured scope.", 1358 + "type": "string", 1359 + "enum": [ 1360 + "core:webview:allow-webview-position" 1361 + ] 1362 + }, 1363 + { 1364 + "description": "core:webview:allow-webview-size -> Enables the webview_size command without any pre-configured scope.", 1365 + "type": "string", 1366 + "enum": [ 1367 + "core:webview:allow-webview-size" 1368 + ] 1369 + }, 1370 + { 1371 + "description": "core:webview:deny-create-webview -> Denies the create_webview command without any pre-configured scope.", 1372 + "type": "string", 1373 + "enum": [ 1374 + "core:webview:deny-create-webview" 1375 + ] 1376 + }, 1377 + { 1378 + "description": "core:webview:deny-create-webview-window -> Denies the create_webview_window command without any pre-configured scope.", 1379 + "type": "string", 1380 + "enum": [ 1381 + "core:webview:deny-create-webview-window" 1382 + ] 1383 + }, 1384 + { 1385 + "description": "core:webview:deny-get-all-webviews -> Denies the get_all_webviews command without any pre-configured scope.", 1386 + "type": "string", 1387 + "enum": [ 1388 + "core:webview:deny-get-all-webviews" 1389 + ] 1390 + }, 1391 + { 1392 + "description": "core:webview:deny-internal-toggle-devtools -> Denies the internal_toggle_devtools command without any pre-configured scope.", 1393 + "type": "string", 1394 + "enum": [ 1395 + "core:webview:deny-internal-toggle-devtools" 1396 + ] 1397 + }, 1398 + { 1399 + "description": "core:webview:deny-print -> Denies the print command without any pre-configured scope.", 1400 + "type": "string", 1401 + "enum": [ 1402 + "core:webview:deny-print" 1403 + ] 1404 + }, 1405 + { 1406 + "description": "core:webview:deny-reparent -> Denies the reparent command without any pre-configured scope.", 1407 + "type": "string", 1408 + "enum": [ 1409 + "core:webview:deny-reparent" 1410 + ] 1411 + }, 1412 + { 1413 + "description": "core:webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.", 1414 + "type": "string", 1415 + "enum": [ 1416 + "core:webview:deny-set-webview-focus" 1417 + ] 1418 + }, 1419 + { 1420 + "description": "core:webview:deny-set-webview-position -> Denies the set_webview_position command without any pre-configured scope.", 1421 + "type": "string", 1422 + "enum": [ 1423 + "core:webview:deny-set-webview-position" 1424 + ] 1425 + }, 1426 + { 1427 + "description": "core:webview:deny-set-webview-size -> Denies the set_webview_size command without any pre-configured scope.", 1428 + "type": "string", 1429 + "enum": [ 1430 + "core:webview:deny-set-webview-size" 1431 + ] 1432 + }, 1433 + { 1434 + "description": "core:webview:deny-set-webview-zoom -> Denies the set_webview_zoom command without any pre-configured scope.", 1435 + "type": "string", 1436 + "enum": [ 1437 + "core:webview:deny-set-webview-zoom" 1438 + ] 1439 + }, 1440 + { 1441 + "description": "core:webview:deny-webview-close -> Denies the webview_close command without any pre-configured scope.", 1442 + "type": "string", 1443 + "enum": [ 1444 + "core:webview:deny-webview-close" 1445 + ] 1446 + }, 1447 + { 1448 + "description": "core:webview:deny-webview-position -> Denies the webview_position command without any pre-configured scope.", 1449 + "type": "string", 1450 + "enum": [ 1451 + "core:webview:deny-webview-position" 1452 + ] 1453 + }, 1454 + { 1455 + "description": "core:webview:deny-webview-size -> Denies the webview_size command without any pre-configured scope.", 1456 + "type": "string", 1457 + "enum": [ 1458 + "core:webview:deny-webview-size" 1459 + ] 1460 + }, 1461 + { 1462 + "description": "core:window:default -> Default permissions for the plugin.", 1463 + "type": "string", 1464 + "enum": [ 1465 + "core:window:default" 1466 + ] 1467 + }, 1468 + { 1469 + "description": "core:window:allow-available-monitors -> Enables the available_monitors command without any pre-configured scope.", 1470 + "type": "string", 1471 + "enum": [ 1472 + "core:window:allow-available-monitors" 1473 + ] 1474 + }, 1475 + { 1476 + "description": "core:window:allow-center -> Enables the center command without any pre-configured scope.", 1477 + "type": "string", 1478 + "enum": [ 1479 + "core:window:allow-center" 1480 + ] 1481 + }, 1482 + { 1483 + "description": "core:window:allow-close -> Enables the close command without any pre-configured scope.", 1484 + "type": "string", 1485 + "enum": [ 1486 + "core:window:allow-close" 1487 + ] 1488 + }, 1489 + { 1490 + "description": "core:window:allow-create -> Enables the create command without any pre-configured scope.", 1491 + "type": "string", 1492 + "enum": [ 1493 + "core:window:allow-create" 1494 + ] 1495 + }, 1496 + { 1497 + "description": "core:window:allow-current-monitor -> Enables the current_monitor command without any pre-configured scope.", 1498 + "type": "string", 1499 + "enum": [ 1500 + "core:window:allow-current-monitor" 1501 + ] 1502 + }, 1503 + { 1504 + "description": "core:window:allow-cursor-position -> Enables the cursor_position command without any pre-configured scope.", 1505 + "type": "string", 1506 + "enum": [ 1507 + "core:window:allow-cursor-position" 1508 + ] 1509 + }, 1510 + { 1511 + "description": "core:window:allow-destroy -> Enables the destroy command without any pre-configured scope.", 1512 + "type": "string", 1513 + "enum": [ 1514 + "core:window:allow-destroy" 1515 + ] 1516 + }, 1517 + { 1518 + "description": "core:window:allow-get-all-windows -> Enables the get_all_windows command without any pre-configured scope.", 1519 + "type": "string", 1520 + "enum": [ 1521 + "core:window:allow-get-all-windows" 1522 + ] 1523 + }, 1524 + { 1525 + "description": "core:window:allow-hide -> Enables the hide command without any pre-configured scope.", 1526 + "type": "string", 1527 + "enum": [ 1528 + "core:window:allow-hide" 1529 + ] 1530 + }, 1531 + { 1532 + "description": "core:window:allow-inner-position -> Enables the inner_position command without any pre-configured scope.", 1533 + "type": "string", 1534 + "enum": [ 1535 + "core:window:allow-inner-position" 1536 + ] 1537 + }, 1538 + { 1539 + "description": "core:window:allow-inner-size -> Enables the inner_size command without any pre-configured scope.", 1540 + "type": "string", 1541 + "enum": [ 1542 + "core:window:allow-inner-size" 1543 + ] 1544 + }, 1545 + { 1546 + "description": "core:window:allow-internal-toggle-maximize -> Enables the internal_toggle_maximize command without any pre-configured scope.", 1547 + "type": "string", 1548 + "enum": [ 1549 + "core:window:allow-internal-toggle-maximize" 1550 + ] 1551 + }, 1552 + { 1553 + "description": "core:window:allow-is-closable -> Enables the is_closable command without any pre-configured scope.", 1554 + "type": "string", 1555 + "enum": [ 1556 + "core:window:allow-is-closable" 1557 + ] 1558 + }, 1559 + { 1560 + "description": "core:window:allow-is-decorated -> Enables the is_decorated command without any pre-configured scope.", 1561 + "type": "string", 1562 + "enum": [ 1563 + "core:window:allow-is-decorated" 1564 + ] 1565 + }, 1566 + { 1567 + "description": "core:window:allow-is-focused -> Enables the is_focused command without any pre-configured scope.", 1568 + "type": "string", 1569 + "enum": [ 1570 + "core:window:allow-is-focused" 1571 + ] 1572 + }, 1573 + { 1574 + "description": "core:window:allow-is-fullscreen -> Enables the is_fullscreen command without any pre-configured scope.", 1575 + "type": "string", 1576 + "enum": [ 1577 + "core:window:allow-is-fullscreen" 1578 + ] 1579 + }, 1580 + { 1581 + "description": "core:window:allow-is-maximizable -> Enables the is_maximizable command without any pre-configured scope.", 1582 + "type": "string", 1583 + "enum": [ 1584 + "core:window:allow-is-maximizable" 1585 + ] 1586 + }, 1587 + { 1588 + "description": "core:window:allow-is-maximized -> Enables the is_maximized command without any pre-configured scope.", 1589 + "type": "string", 1590 + "enum": [ 1591 + "core:window:allow-is-maximized" 1592 + ] 1593 + }, 1594 + { 1595 + "description": "core:window:allow-is-minimizable -> Enables the is_minimizable command without any pre-configured scope.", 1596 + "type": "string", 1597 + "enum": [ 1598 + "core:window:allow-is-minimizable" 1599 + ] 1600 + }, 1601 + { 1602 + "description": "core:window:allow-is-minimized -> Enables the is_minimized command without any pre-configured scope.", 1603 + "type": "string", 1604 + "enum": [ 1605 + "core:window:allow-is-minimized" 1606 + ] 1607 + }, 1608 + { 1609 + "description": "core:window:allow-is-resizable -> Enables the is_resizable command without any pre-configured scope.", 1610 + "type": "string", 1611 + "enum": [ 1612 + "core:window:allow-is-resizable" 1613 + ] 1614 + }, 1615 + { 1616 + "description": "core:window:allow-is-visible -> Enables the is_visible command without any pre-configured scope.", 1617 + "type": "string", 1618 + "enum": [ 1619 + "core:window:allow-is-visible" 1620 + ] 1621 + }, 1622 + { 1623 + "description": "core:window:allow-maximize -> Enables the maximize command without any pre-configured scope.", 1624 + "type": "string", 1625 + "enum": [ 1626 + "core:window:allow-maximize" 1627 + ] 1628 + }, 1629 + { 1630 + "description": "core:window:allow-minimize -> Enables the minimize command without any pre-configured scope.", 1631 + "type": "string", 1632 + "enum": [ 1633 + "core:window:allow-minimize" 1634 + ] 1635 + }, 1636 + { 1637 + "description": "core:window:allow-monitor-from-point -> Enables the monitor_from_point command without any pre-configured scope.", 1638 + "type": "string", 1639 + "enum": [ 1640 + "core:window:allow-monitor-from-point" 1641 + ] 1642 + }, 1643 + { 1644 + "description": "core:window:allow-outer-position -> Enables the outer_position command without any pre-configured scope.", 1645 + "type": "string", 1646 + "enum": [ 1647 + "core:window:allow-outer-position" 1648 + ] 1649 + }, 1650 + { 1651 + "description": "core:window:allow-outer-size -> Enables the outer_size command without any pre-configured scope.", 1652 + "type": "string", 1653 + "enum": [ 1654 + "core:window:allow-outer-size" 1655 + ] 1656 + }, 1657 + { 1658 + "description": "core:window:allow-primary-monitor -> Enables the primary_monitor command without any pre-configured scope.", 1659 + "type": "string", 1660 + "enum": [ 1661 + "core:window:allow-primary-monitor" 1662 + ] 1663 + }, 1664 + { 1665 + "description": "core:window:allow-request-user-attention -> Enables the request_user_attention command without any pre-configured scope.", 1666 + "type": "string", 1667 + "enum": [ 1668 + "core:window:allow-request-user-attention" 1669 + ] 1670 + }, 1671 + { 1672 + "description": "core:window:allow-scale-factor -> Enables the scale_factor command without any pre-configured scope.", 1673 + "type": "string", 1674 + "enum": [ 1675 + "core:window:allow-scale-factor" 1676 + ] 1677 + }, 1678 + { 1679 + "description": "core:window:allow-set-always-on-bottom -> Enables the set_always_on_bottom command without any pre-configured scope.", 1680 + "type": "string", 1681 + "enum": [ 1682 + "core:window:allow-set-always-on-bottom" 1683 + ] 1684 + }, 1685 + { 1686 + "description": "core:window:allow-set-always-on-top -> Enables the set_always_on_top command without any pre-configured scope.", 1687 + "type": "string", 1688 + "enum": [ 1689 + "core:window:allow-set-always-on-top" 1690 + ] 1691 + }, 1692 + { 1693 + "description": "core:window:allow-set-closable -> Enables the set_closable command without any pre-configured scope.", 1694 + "type": "string", 1695 + "enum": [ 1696 + "core:window:allow-set-closable" 1697 + ] 1698 + }, 1699 + { 1700 + "description": "core:window:allow-set-content-protected -> Enables the set_content_protected command without any pre-configured scope.", 1701 + "type": "string", 1702 + "enum": [ 1703 + "core:window:allow-set-content-protected" 1704 + ] 1705 + }, 1706 + { 1707 + "description": "core:window:allow-set-cursor-grab -> Enables the set_cursor_grab command without any pre-configured scope.", 1708 + "type": "string", 1709 + "enum": [ 1710 + "core:window:allow-set-cursor-grab" 1711 + ] 1712 + }, 1713 + { 1714 + "description": "core:window:allow-set-cursor-icon -> Enables the set_cursor_icon command without any pre-configured scope.", 1715 + "type": "string", 1716 + "enum": [ 1717 + "core:window:allow-set-cursor-icon" 1718 + ] 1719 + }, 1720 + { 1721 + "description": "core:window:allow-set-cursor-position -> Enables the set_cursor_position command without any pre-configured scope.", 1722 + "type": "string", 1723 + "enum": [ 1724 + "core:window:allow-set-cursor-position" 1725 + ] 1726 + }, 1727 + { 1728 + "description": "core:window:allow-set-cursor-visible -> Enables the set_cursor_visible command without any pre-configured scope.", 1729 + "type": "string", 1730 + "enum": [ 1731 + "core:window:allow-set-cursor-visible" 1732 + ] 1733 + }, 1734 + { 1735 + "description": "core:window:allow-set-decorations -> Enables the set_decorations command without any pre-configured scope.", 1736 + "type": "string", 1737 + "enum": [ 1738 + "core:window:allow-set-decorations" 1739 + ] 1740 + }, 1741 + { 1742 + "description": "core:window:allow-set-effects -> Enables the set_effects command without any pre-configured scope.", 1743 + "type": "string", 1744 + "enum": [ 1745 + "core:window:allow-set-effects" 1746 + ] 1747 + }, 1748 + { 1749 + "description": "core:window:allow-set-focus -> Enables the set_focus command without any pre-configured scope.", 1750 + "type": "string", 1751 + "enum": [ 1752 + "core:window:allow-set-focus" 1753 + ] 1754 + }, 1755 + { 1756 + "description": "core:window:allow-set-fullscreen -> Enables the set_fullscreen command without any pre-configured scope.", 1757 + "type": "string", 1758 + "enum": [ 1759 + "core:window:allow-set-fullscreen" 1760 + ] 1761 + }, 1762 + { 1763 + "description": "core:window:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", 1764 + "type": "string", 1765 + "enum": [ 1766 + "core:window:allow-set-icon" 1767 + ] 1768 + }, 1769 + { 1770 + "description": "core:window:allow-set-ignore-cursor-events -> Enables the set_ignore_cursor_events command without any pre-configured scope.", 1771 + "type": "string", 1772 + "enum": [ 1773 + "core:window:allow-set-ignore-cursor-events" 1774 + ] 1775 + }, 1776 + { 1777 + "description": "core:window:allow-set-max-size -> Enables the set_max_size command without any pre-configured scope.", 1778 + "type": "string", 1779 + "enum": [ 1780 + "core:window:allow-set-max-size" 1781 + ] 1782 + }, 1783 + { 1784 + "description": "core:window:allow-set-maximizable -> Enables the set_maximizable command without any pre-configured scope.", 1785 + "type": "string", 1786 + "enum": [ 1787 + "core:window:allow-set-maximizable" 1788 + ] 1789 + }, 1790 + { 1791 + "description": "core:window:allow-set-min-size -> Enables the set_min_size command without any pre-configured scope.", 1792 + "type": "string", 1793 + "enum": [ 1794 + "core:window:allow-set-min-size" 1795 + ] 1796 + }, 1797 + { 1798 + "description": "core:window:allow-set-minimizable -> Enables the set_minimizable command without any pre-configured scope.", 1799 + "type": "string", 1800 + "enum": [ 1801 + "core:window:allow-set-minimizable" 1802 + ] 1803 + }, 1804 + { 1805 + "description": "core:window:allow-set-position -> Enables the set_position command without any pre-configured scope.", 1806 + "type": "string", 1807 + "enum": [ 1808 + "core:window:allow-set-position" 1809 + ] 1810 + }, 1811 + { 1812 + "description": "core:window:allow-set-progress-bar -> Enables the set_progress_bar command without any pre-configured scope.", 1813 + "type": "string", 1814 + "enum": [ 1815 + "core:window:allow-set-progress-bar" 1816 + ] 1817 + }, 1818 + { 1819 + "description": "core:window:allow-set-resizable -> Enables the set_resizable command without any pre-configured scope.", 1820 + "type": "string", 1821 + "enum": [ 1822 + "core:window:allow-set-resizable" 1823 + ] 1824 + }, 1825 + { 1826 + "description": "core:window:allow-set-shadow -> Enables the set_shadow command without any pre-configured scope.", 1827 + "type": "string", 1828 + "enum": [ 1829 + "core:window:allow-set-shadow" 1830 + ] 1831 + }, 1832 + { 1833 + "description": "core:window:allow-set-size -> Enables the set_size command without any pre-configured scope.", 1834 + "type": "string", 1835 + "enum": [ 1836 + "core:window:allow-set-size" 1837 + ] 1838 + }, 1839 + { 1840 + "description": "core:window:allow-set-size-constraints -> Enables the set_size_constraints command without any pre-configured scope.", 1841 + "type": "string", 1842 + "enum": [ 1843 + "core:window:allow-set-size-constraints" 1844 + ] 1845 + }, 1846 + { 1847 + "description": "core:window:allow-set-skip-taskbar -> Enables the set_skip_taskbar command without any pre-configured scope.", 1848 + "type": "string", 1849 + "enum": [ 1850 + "core:window:allow-set-skip-taskbar" 1851 + ] 1852 + }, 1853 + { 1854 + "description": "core:window:allow-set-title -> Enables the set_title command without any pre-configured scope.", 1855 + "type": "string", 1856 + "enum": [ 1857 + "core:window:allow-set-title" 1858 + ] 1859 + }, 1860 + { 1861 + "description": "core:window:allow-set-title-bar-style -> Enables the set_title_bar_style command without any pre-configured scope.", 1862 + "type": "string", 1863 + "enum": [ 1864 + "core:window:allow-set-title-bar-style" 1865 + ] 1866 + }, 1867 + { 1868 + "description": "core:window:allow-set-visible-on-all-workspaces -> Enables the set_visible_on_all_workspaces command without any pre-configured scope.", 1869 + "type": "string", 1870 + "enum": [ 1871 + "core:window:allow-set-visible-on-all-workspaces" 1872 + ] 1873 + }, 1874 + { 1875 + "description": "core:window:allow-show -> Enables the show command without any pre-configured scope.", 1876 + "type": "string", 1877 + "enum": [ 1878 + "core:window:allow-show" 1879 + ] 1880 + }, 1881 + { 1882 + "description": "core:window:allow-start-dragging -> Enables the start_dragging command without any pre-configured scope.", 1883 + "type": "string", 1884 + "enum": [ 1885 + "core:window:allow-start-dragging" 1886 + ] 1887 + }, 1888 + { 1889 + "description": "core:window:allow-start-resize-dragging -> Enables the start_resize_dragging command without any pre-configured scope.", 1890 + "type": "string", 1891 + "enum": [ 1892 + "core:window:allow-start-resize-dragging" 1893 + ] 1894 + }, 1895 + { 1896 + "description": "core:window:allow-theme -> Enables the theme command without any pre-configured scope.", 1897 + "type": "string", 1898 + "enum": [ 1899 + "core:window:allow-theme" 1900 + ] 1901 + }, 1902 + { 1903 + "description": "core:window:allow-title -> Enables the title command without any pre-configured scope.", 1904 + "type": "string", 1905 + "enum": [ 1906 + "core:window:allow-title" 1907 + ] 1908 + }, 1909 + { 1910 + "description": "core:window:allow-toggle-maximize -> Enables the toggle_maximize command without any pre-configured scope.", 1911 + "type": "string", 1912 + "enum": [ 1913 + "core:window:allow-toggle-maximize" 1914 + ] 1915 + }, 1916 + { 1917 + "description": "core:window:allow-unmaximize -> Enables the unmaximize command without any pre-configured scope.", 1918 + "type": "string", 1919 + "enum": [ 1920 + "core:window:allow-unmaximize" 1921 + ] 1922 + }, 1923 + { 1924 + "description": "core:window:allow-unminimize -> Enables the unminimize command without any pre-configured scope.", 1925 + "type": "string", 1926 + "enum": [ 1927 + "core:window:allow-unminimize" 1928 + ] 1929 + }, 1930 + { 1931 + "description": "core:window:deny-available-monitors -> Denies the available_monitors command without any pre-configured scope.", 1932 + "type": "string", 1933 + "enum": [ 1934 + "core:window:deny-available-monitors" 1935 + ] 1936 + }, 1937 + { 1938 + "description": "core:window:deny-center -> Denies the center command without any pre-configured scope.", 1939 + "type": "string", 1940 + "enum": [ 1941 + "core:window:deny-center" 1942 + ] 1943 + }, 1944 + { 1945 + "description": "core:window:deny-close -> Denies the close command without any pre-configured scope.", 1946 + "type": "string", 1947 + "enum": [ 1948 + "core:window:deny-close" 1949 + ] 1950 + }, 1951 + { 1952 + "description": "core:window:deny-create -> Denies the create command without any pre-configured scope.", 1953 + "type": "string", 1954 + "enum": [ 1955 + "core:window:deny-create" 1956 + ] 1957 + }, 1958 + { 1959 + "description": "core:window:deny-current-monitor -> Denies the current_monitor command without any pre-configured scope.", 1960 + "type": "string", 1961 + "enum": [ 1962 + "core:window:deny-current-monitor" 1963 + ] 1964 + }, 1965 + { 1966 + "description": "core:window:deny-cursor-position -> Denies the cursor_position command without any pre-configured scope.", 1967 + "type": "string", 1968 + "enum": [ 1969 + "core:window:deny-cursor-position" 1970 + ] 1971 + }, 1972 + { 1973 + "description": "core:window:deny-destroy -> Denies the destroy command without any pre-configured scope.", 1974 + "type": "string", 1975 + "enum": [ 1976 + "core:window:deny-destroy" 1977 + ] 1978 + }, 1979 + { 1980 + "description": "core:window:deny-get-all-windows -> Denies the get_all_windows command without any pre-configured scope.", 1981 + "type": "string", 1982 + "enum": [ 1983 + "core:window:deny-get-all-windows" 1984 + ] 1985 + }, 1986 + { 1987 + "description": "core:window:deny-hide -> Denies the hide command without any pre-configured scope.", 1988 + "type": "string", 1989 + "enum": [ 1990 + "core:window:deny-hide" 1991 + ] 1992 + }, 1993 + { 1994 + "description": "core:window:deny-inner-position -> Denies the inner_position command without any pre-configured scope.", 1995 + "type": "string", 1996 + "enum": [ 1997 + "core:window:deny-inner-position" 1998 + ] 1999 + }, 2000 + { 2001 + "description": "core:window:deny-inner-size -> Denies the inner_size command without any pre-configured scope.", 2002 + "type": "string", 2003 + "enum": [ 2004 + "core:window:deny-inner-size" 2005 + ] 2006 + }, 2007 + { 2008 + "description": "core:window:deny-internal-toggle-maximize -> Denies the internal_toggle_maximize command without any pre-configured scope.", 2009 + "type": "string", 2010 + "enum": [ 2011 + "core:window:deny-internal-toggle-maximize" 2012 + ] 2013 + }, 2014 + { 2015 + "description": "core:window:deny-is-closable -> Denies the is_closable command without any pre-configured scope.", 2016 + "type": "string", 2017 + "enum": [ 2018 + "core:window:deny-is-closable" 2019 + ] 2020 + }, 2021 + { 2022 + "description": "core:window:deny-is-decorated -> Denies the is_decorated command without any pre-configured scope.", 2023 + "type": "string", 2024 + "enum": [ 2025 + "core:window:deny-is-decorated" 2026 + ] 2027 + }, 2028 + { 2029 + "description": "core:window:deny-is-focused -> Denies the is_focused command without any pre-configured scope.", 2030 + "type": "string", 2031 + "enum": [ 2032 + "core:window:deny-is-focused" 2033 + ] 2034 + }, 2035 + { 2036 + "description": "core:window:deny-is-fullscreen -> Denies the is_fullscreen command without any pre-configured scope.", 2037 + "type": "string", 2038 + "enum": [ 2039 + "core:window:deny-is-fullscreen" 2040 + ] 2041 + }, 2042 + { 2043 + "description": "core:window:deny-is-maximizable -> Denies the is_maximizable command without any pre-configured scope.", 2044 + "type": "string", 2045 + "enum": [ 2046 + "core:window:deny-is-maximizable" 2047 + ] 2048 + }, 2049 + { 2050 + "description": "core:window:deny-is-maximized -> Denies the is_maximized command without any pre-configured scope.", 2051 + "type": "string", 2052 + "enum": [ 2053 + "core:window:deny-is-maximized" 2054 + ] 2055 + }, 2056 + { 2057 + "description": "core:window:deny-is-minimizable -> Denies the is_minimizable command without any pre-configured scope.", 2058 + "type": "string", 2059 + "enum": [ 2060 + "core:window:deny-is-minimizable" 2061 + ] 2062 + }, 2063 + { 2064 + "description": "core:window:deny-is-minimized -> Denies the is_minimized command without any pre-configured scope.", 2065 + "type": "string", 2066 + "enum": [ 2067 + "core:window:deny-is-minimized" 2068 + ] 2069 + }, 2070 + { 2071 + "description": "core:window:deny-is-resizable -> Denies the is_resizable command without any pre-configured scope.", 2072 + "type": "string", 2073 + "enum": [ 2074 + "core:window:deny-is-resizable" 2075 + ] 2076 + }, 2077 + { 2078 + "description": "core:window:deny-is-visible -> Denies the is_visible command without any pre-configured scope.", 2079 + "type": "string", 2080 + "enum": [ 2081 + "core:window:deny-is-visible" 2082 + ] 2083 + }, 2084 + { 2085 + "description": "core:window:deny-maximize -> Denies the maximize command without any pre-configured scope.", 2086 + "type": "string", 2087 + "enum": [ 2088 + "core:window:deny-maximize" 2089 + ] 2090 + }, 2091 + { 2092 + "description": "core:window:deny-minimize -> Denies the minimize command without any pre-configured scope.", 2093 + "type": "string", 2094 + "enum": [ 2095 + "core:window:deny-minimize" 2096 + ] 2097 + }, 2098 + { 2099 + "description": "core:window:deny-monitor-from-point -> Denies the monitor_from_point command without any pre-configured scope.", 2100 + "type": "string", 2101 + "enum": [ 2102 + "core:window:deny-monitor-from-point" 2103 + ] 2104 + }, 2105 + { 2106 + "description": "core:window:deny-outer-position -> Denies the outer_position command without any pre-configured scope.", 2107 + "type": "string", 2108 + "enum": [ 2109 + "core:window:deny-outer-position" 2110 + ] 2111 + }, 2112 + { 2113 + "description": "core:window:deny-outer-size -> Denies the outer_size command without any pre-configured scope.", 2114 + "type": "string", 2115 + "enum": [ 2116 + "core:window:deny-outer-size" 2117 + ] 2118 + }, 2119 + { 2120 + "description": "core:window:deny-primary-monitor -> Denies the primary_monitor command without any pre-configured scope.", 2121 + "type": "string", 2122 + "enum": [ 2123 + "core:window:deny-primary-monitor" 2124 + ] 2125 + }, 2126 + { 2127 + "description": "core:window:deny-request-user-attention -> Denies the request_user_attention command without any pre-configured scope.", 2128 + "type": "string", 2129 + "enum": [ 2130 + "core:window:deny-request-user-attention" 2131 + ] 2132 + }, 2133 + { 2134 + "description": "core:window:deny-scale-factor -> Denies the scale_factor command without any pre-configured scope.", 2135 + "type": "string", 2136 + "enum": [ 2137 + "core:window:deny-scale-factor" 2138 + ] 2139 + }, 2140 + { 2141 + "description": "core:window:deny-set-always-on-bottom -> Denies the set_always_on_bottom command without any pre-configured scope.", 2142 + "type": "string", 2143 + "enum": [ 2144 + "core:window:deny-set-always-on-bottom" 2145 + ] 2146 + }, 2147 + { 2148 + "description": "core:window:deny-set-always-on-top -> Denies the set_always_on_top command without any pre-configured scope.", 2149 + "type": "string", 2150 + "enum": [ 2151 + "core:window:deny-set-always-on-top" 2152 + ] 2153 + }, 2154 + { 2155 + "description": "core:window:deny-set-closable -> Denies the set_closable command without any pre-configured scope.", 2156 + "type": "string", 2157 + "enum": [ 2158 + "core:window:deny-set-closable" 2159 + ] 2160 + }, 2161 + { 2162 + "description": "core:window:deny-set-content-protected -> Denies the set_content_protected command without any pre-configured scope.", 2163 + "type": "string", 2164 + "enum": [ 2165 + "core:window:deny-set-content-protected" 2166 + ] 2167 + }, 2168 + { 2169 + "description": "core:window:deny-set-cursor-grab -> Denies the set_cursor_grab command without any pre-configured scope.", 2170 + "type": "string", 2171 + "enum": [ 2172 + "core:window:deny-set-cursor-grab" 2173 + ] 2174 + }, 2175 + { 2176 + "description": "core:window:deny-set-cursor-icon -> Denies the set_cursor_icon command without any pre-configured scope.", 2177 + "type": "string", 2178 + "enum": [ 2179 + "core:window:deny-set-cursor-icon" 2180 + ] 2181 + }, 2182 + { 2183 + "description": "core:window:deny-set-cursor-position -> Denies the set_cursor_position command without any pre-configured scope.", 2184 + "type": "string", 2185 + "enum": [ 2186 + "core:window:deny-set-cursor-position" 2187 + ] 2188 + }, 2189 + { 2190 + "description": "core:window:deny-set-cursor-visible -> Denies the set_cursor_visible command without any pre-configured scope.", 2191 + "type": "string", 2192 + "enum": [ 2193 + "core:window:deny-set-cursor-visible" 2194 + ] 2195 + }, 2196 + { 2197 + "description": "core:window:deny-set-decorations -> Denies the set_decorations command without any pre-configured scope.", 2198 + "type": "string", 2199 + "enum": [ 2200 + "core:window:deny-set-decorations" 2201 + ] 2202 + }, 2203 + { 2204 + "description": "core:window:deny-set-effects -> Denies the set_effects command without any pre-configured scope.", 2205 + "type": "string", 2206 + "enum": [ 2207 + "core:window:deny-set-effects" 2208 + ] 2209 + }, 2210 + { 2211 + "description": "core:window:deny-set-focus -> Denies the set_focus command without any pre-configured scope.", 2212 + "type": "string", 2213 + "enum": [ 2214 + "core:window:deny-set-focus" 2215 + ] 2216 + }, 2217 + { 2218 + "description": "core:window:deny-set-fullscreen -> Denies the set_fullscreen command without any pre-configured scope.", 2219 + "type": "string", 2220 + "enum": [ 2221 + "core:window:deny-set-fullscreen" 2222 + ] 2223 + }, 2224 + { 2225 + "description": "core:window:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", 2226 + "type": "string", 2227 + "enum": [ 2228 + "core:window:deny-set-icon" 2229 + ] 2230 + }, 2231 + { 2232 + "description": "core:window:deny-set-ignore-cursor-events -> Denies the set_ignore_cursor_events command without any pre-configured scope.", 2233 + "type": "string", 2234 + "enum": [ 2235 + "core:window:deny-set-ignore-cursor-events" 2236 + ] 2237 + }, 2238 + { 2239 + "description": "core:window:deny-set-max-size -> Denies the set_max_size command without any pre-configured scope.", 2240 + "type": "string", 2241 + "enum": [ 2242 + "core:window:deny-set-max-size" 2243 + ] 2244 + }, 2245 + { 2246 + "description": "core:window:deny-set-maximizable -> Denies the set_maximizable command without any pre-configured scope.", 2247 + "type": "string", 2248 + "enum": [ 2249 + "core:window:deny-set-maximizable" 2250 + ] 2251 + }, 2252 + { 2253 + "description": "core:window:deny-set-min-size -> Denies the set_min_size command without any pre-configured scope.", 2254 + "type": "string", 2255 + "enum": [ 2256 + "core:window:deny-set-min-size" 2257 + ] 2258 + }, 2259 + { 2260 + "description": "core:window:deny-set-minimizable -> Denies the set_minimizable command without any pre-configured scope.", 2261 + "type": "string", 2262 + "enum": [ 2263 + "core:window:deny-set-minimizable" 2264 + ] 2265 + }, 2266 + { 2267 + "description": "core:window:deny-set-position -> Denies the set_position command without any pre-configured scope.", 2268 + "type": "string", 2269 + "enum": [ 2270 + "core:window:deny-set-position" 2271 + ] 2272 + }, 2273 + { 2274 + "description": "core:window:deny-set-progress-bar -> Denies the set_progress_bar command without any pre-configured scope.", 2275 + "type": "string", 2276 + "enum": [ 2277 + "core:window:deny-set-progress-bar" 2278 + ] 2279 + }, 2280 + { 2281 + "description": "core:window:deny-set-resizable -> Denies the set_resizable command without any pre-configured scope.", 2282 + "type": "string", 2283 + "enum": [ 2284 + "core:window:deny-set-resizable" 2285 + ] 2286 + }, 2287 + { 2288 + "description": "core:window:deny-set-shadow -> Denies the set_shadow command without any pre-configured scope.", 2289 + "type": "string", 2290 + "enum": [ 2291 + "core:window:deny-set-shadow" 2292 + ] 2293 + }, 2294 + { 2295 + "description": "core:window:deny-set-size -> Denies the set_size command without any pre-configured scope.", 2296 + "type": "string", 2297 + "enum": [ 2298 + "core:window:deny-set-size" 2299 + ] 2300 + }, 2301 + { 2302 + "description": "core:window:deny-set-size-constraints -> Denies the set_size_constraints command without any pre-configured scope.", 2303 + "type": "string", 2304 + "enum": [ 2305 + "core:window:deny-set-size-constraints" 2306 + ] 2307 + }, 2308 + { 2309 + "description": "core:window:deny-set-skip-taskbar -> Denies the set_skip_taskbar command without any pre-configured scope.", 2310 + "type": "string", 2311 + "enum": [ 2312 + "core:window:deny-set-skip-taskbar" 2313 + ] 2314 + }, 2315 + { 2316 + "description": "core:window:deny-set-title -> Denies the set_title command without any pre-configured scope.", 2317 + "type": "string", 2318 + "enum": [ 2319 + "core:window:deny-set-title" 2320 + ] 2321 + }, 2322 + { 2323 + "description": "core:window:deny-set-title-bar-style -> Denies the set_title_bar_style command without any pre-configured scope.", 2324 + "type": "string", 2325 + "enum": [ 2326 + "core:window:deny-set-title-bar-style" 2327 + ] 2328 + }, 2329 + { 2330 + "description": "core:window:deny-set-visible-on-all-workspaces -> Denies the set_visible_on_all_workspaces command without any pre-configured scope.", 2331 + "type": "string", 2332 + "enum": [ 2333 + "core:window:deny-set-visible-on-all-workspaces" 2334 + ] 2335 + }, 2336 + { 2337 + "description": "core:window:deny-show -> Denies the show command without any pre-configured scope.", 2338 + "type": "string", 2339 + "enum": [ 2340 + "core:window:deny-show" 2341 + ] 2342 + }, 2343 + { 2344 + "description": "core:window:deny-start-dragging -> Denies the start_dragging command without any pre-configured scope.", 2345 + "type": "string", 2346 + "enum": [ 2347 + "core:window:deny-start-dragging" 2348 + ] 2349 + }, 2350 + { 2351 + "description": "core:window:deny-start-resize-dragging -> Denies the start_resize_dragging command without any pre-configured scope.", 2352 + "type": "string", 2353 + "enum": [ 2354 + "core:window:deny-start-resize-dragging" 2355 + ] 2356 + }, 2357 + { 2358 + "description": "core:window:deny-theme -> Denies the theme command without any pre-configured scope.", 2359 + "type": "string", 2360 + "enum": [ 2361 + "core:window:deny-theme" 2362 + ] 2363 + }, 2364 + { 2365 + "description": "core:window:deny-title -> Denies the title command without any pre-configured scope.", 2366 + "type": "string", 2367 + "enum": [ 2368 + "core:window:deny-title" 2369 + ] 2370 + }, 2371 + { 2372 + "description": "core:window:deny-toggle-maximize -> Denies the toggle_maximize command without any pre-configured scope.", 2373 + "type": "string", 2374 + "enum": [ 2375 + "core:window:deny-toggle-maximize" 2376 + ] 2377 + }, 2378 + { 2379 + "description": "core:window:deny-unmaximize -> Denies the unmaximize command without any pre-configured scope.", 2380 + "type": "string", 2381 + "enum": [ 2382 + "core:window:deny-unmaximize" 2383 + ] 2384 + }, 2385 + { 2386 + "description": "core:window:deny-unminimize -> Denies the unminimize command without any pre-configured scope.", 2387 + "type": "string", 2388 + "enum": [ 2389 + "core:window:deny-unminimize" 2390 + ] 2391 + }, 2392 + { 2393 + "description": "http:default -> 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", 2394 + "type": "string", 2395 + "enum": [ 2396 + "http:default" 2397 + ] 2398 + }, 2399 + { 2400 + "description": "http:allow-fetch -> Enables the fetch command without any pre-configured scope.", 2401 + "type": "string", 2402 + "enum": [ 2403 + "http:allow-fetch" 2404 + ] 2405 + }, 2406 + { 2407 + "description": "http:allow-fetch-cancel -> Enables the fetch_cancel command without any pre-configured scope.", 2408 + "type": "string", 2409 + "enum": [ 2410 + "http:allow-fetch-cancel" 2411 + ] 2412 + }, 2413 + { 2414 + "description": "http:allow-fetch-read-body -> Enables the fetch_read_body command without any pre-configured scope.", 2415 + "type": "string", 2416 + "enum": [ 2417 + "http:allow-fetch-read-body" 2418 + ] 2419 + }, 2420 + { 2421 + "description": "http:allow-fetch-send -> Enables the fetch_send command without any pre-configured scope.", 2422 + "type": "string", 2423 + "enum": [ 2424 + "http:allow-fetch-send" 2425 + ] 2426 + }, 2427 + { 2428 + "description": "http:deny-fetch -> Denies the fetch command without any pre-configured scope.", 2429 + "type": "string", 2430 + "enum": [ 2431 + "http:deny-fetch" 2432 + ] 2433 + }, 2434 + { 2435 + "description": "http:deny-fetch-cancel -> Denies the fetch_cancel command without any pre-configured scope.", 2436 + "type": "string", 2437 + "enum": [ 2438 + "http:deny-fetch-cancel" 2439 + ] 2440 + }, 2441 + { 2442 + "description": "http:deny-fetch-read-body -> Denies the fetch_read_body command without any pre-configured scope.", 2443 + "type": "string", 2444 + "enum": [ 2445 + "http:deny-fetch-read-body" 2446 + ] 2447 + }, 2448 + { 2449 + "description": "http:deny-fetch-send -> Denies the fetch_send command without any pre-configured scope.", 2450 + "type": "string", 2451 + "enum": [ 2452 + "http:deny-fetch-send" 2453 + ] 2454 + }, 2455 + { 2456 + "description": "process:default -> 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", 2457 + "type": "string", 2458 + "enum": [ 2459 + "process:default" 2460 + ] 2461 + }, 2462 + { 2463 + "description": "process:allow-exit -> Enables the exit command without any pre-configured scope.", 2464 + "type": "string", 2465 + "enum": [ 2466 + "process:allow-exit" 2467 + ] 2468 + }, 2469 + { 2470 + "description": "process:allow-restart -> Enables the restart command without any pre-configured scope.", 2471 + "type": "string", 2472 + "enum": [ 2473 + "process:allow-restart" 2474 + ] 2475 + }, 2476 + { 2477 + "description": "process:deny-exit -> Denies the exit command without any pre-configured scope.", 2478 + "type": "string", 2479 + "enum": [ 2480 + "process:deny-exit" 2481 + ] 2482 + }, 2483 + { 2484 + "description": "process:deny-restart -> Denies the restart command without any pre-configured scope.", 2485 + "type": "string", 2486 + "enum": [ 2487 + "process:deny-restart" 2488 + ] 2489 + }, 2490 + { 2491 + "description": "shell:default -> 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", 2492 + "type": "string", 2493 + "enum": [ 2494 + "shell:default" 2495 + ] 2496 + }, 2497 + { 2498 + "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", 2499 + "type": "string", 2500 + "enum": [ 2501 + "shell:allow-execute" 2502 + ] 2503 + }, 2504 + { 2505 + "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", 2506 + "type": "string", 2507 + "enum": [ 2508 + "shell:allow-kill" 2509 + ] 2510 + }, 2511 + { 2512 + "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", 2513 + "type": "string", 2514 + "enum": [ 2515 + "shell:allow-open" 2516 + ] 2517 + }, 2518 + { 2519 + "description": "shell:allow-spawn -> Enables the spawn command without any pre-configured scope.", 2520 + "type": "string", 2521 + "enum": [ 2522 + "shell:allow-spawn" 2523 + ] 2524 + }, 2525 + { 2526 + "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", 2527 + "type": "string", 2528 + "enum": [ 2529 + "shell:allow-stdin-write" 2530 + ] 2531 + }, 2532 + { 2533 + "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", 2534 + "type": "string", 2535 + "enum": [ 2536 + "shell:deny-execute" 2537 + ] 2538 + }, 2539 + { 2540 + "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", 2541 + "type": "string", 2542 + "enum": [ 2543 + "shell:deny-kill" 2544 + ] 2545 + }, 2546 + { 2547 + "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", 2548 + "type": "string", 2549 + "enum": [ 2550 + "shell:deny-open" 2551 + ] 2552 + }, 2553 + { 2554 + "description": "shell:deny-spawn -> Denies the spawn command without any pre-configured scope.", 2555 + "type": "string", 2556 + "enum": [ 2557 + "shell:deny-spawn" 2558 + ] 2559 + }, 2560 + { 2561 + "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", 2562 + "type": "string", 2563 + "enum": [ 2564 + "shell:deny-stdin-write" 2565 + ] 2566 + } 2567 + ] 2568 + }, 2569 + "Value": { 2570 + "description": "All supported ACL values.", 2571 + "anyOf": [ 2572 + { 2573 + "description": "Represents a null JSON value.", 2574 + "type": "null" 2575 + }, 2576 + { 2577 + "description": "Represents a [`bool`].", 2578 + "type": "boolean" 2579 + }, 2580 + { 2581 + "description": "Represents a valid ACL [`Number`].", 2582 + "allOf": [ 2583 + { 2584 + "$ref": "#/definitions/Number" 2585 + } 2586 + ] 2587 + }, 2588 + { 2589 + "description": "Represents a [`String`].", 2590 + "type": "string" 2591 + }, 2592 + { 2593 + "description": "Represents a list of other [`Value`]s.", 2594 + "type": "array", 2595 + "items": { 2596 + "$ref": "#/definitions/Value" 2597 + } 2598 + }, 2599 + { 2600 + "description": "Represents a map of [`String`] keys to [`Value`]s.", 2601 + "type": "object", 2602 + "additionalProperties": { 2603 + "$ref": "#/definitions/Value" 2604 + } 2605 + } 2606 + ] 2607 + }, 2608 + "Number": { 2609 + "description": "A valid ACL number.", 2610 + "anyOf": [ 2611 + { 2612 + "description": "Represents an [`i64`].", 2613 + "type": "integer", 2614 + "format": "int64" 2615 + }, 2616 + { 2617 + "description": "Represents a [`f64`].", 2618 + "type": "number", 2619 + "format": "double" 2620 + } 2621 + ] 2622 + }, 2623 + "Target": { 2624 + "description": "Platform target.", 2625 + "oneOf": [ 2626 + { 2627 + "description": "MacOS.", 2628 + "type": "string", 2629 + "enum": [ 2630 + "macOS" 2631 + ] 2632 + }, 2633 + { 2634 + "description": "Windows.", 2635 + "type": "string", 2636 + "enum": [ 2637 + "windows" 2638 + ] 2639 + }, 2640 + { 2641 + "description": "Linux.", 2642 + "type": "string", 2643 + "enum": [ 2644 + "linux" 2645 + ] 2646 + }, 2647 + { 2648 + "description": "Android.", 2649 + "type": "string", 2650 + "enum": [ 2651 + "android" 2652 + ] 2653 + }, 2654 + { 2655 + "description": "iOS.", 2656 + "type": "string", 2657 + "enum": [ 2658 + "iOS" 2659 + ] 2660 + } 2661 + ] 2662 + }, 2663 + "ShellAllowedArg": { 2664 + "description": "A command argument allowed to be executed by the webview API.", 2665 + "anyOf": [ 2666 + { 2667 + "description": "A non-configurable argument that is passed to the command in the order it was specified.", 2668 + "type": "string" 2669 + }, 2670 + { 2671 + "description": "A variable that is set while calling the command from the webview API.", 2672 + "type": "object", 2673 + "required": [ 2674 + "validator" 2675 + ], 2676 + "properties": { 2677 + "raw": { 2678 + "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.", 2679 + "default": false, 2680 + "type": "boolean" 2681 + }, 2682 + "validator": { 2683 + "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>", 2684 + "type": "string" 2685 + } 2686 + }, 2687 + "additionalProperties": false 2688 + } 2689 + ] 2690 + }, 2691 + "ShellAllowedArgs": { 2692 + "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", 2693 + "anyOf": [ 2694 + { 2695 + "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", 2696 + "type": "boolean" 2697 + }, 2698 + { 2699 + "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.", 2700 + "type": "array", 2701 + "items": { 2702 + "$ref": "#/definitions/ShellAllowedArg" 2703 + } 2704 + } 2705 + ] 2706 + } 2707 + } 2708 + }
+2708
src-tauri/gen/schemas/windows-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 + "oneOf": [ 137 + { 138 + "type": "object", 139 + "required": [ 140 + "identifier" 141 + ], 142 + "properties": { 143 + "identifier": { 144 + "oneOf": [ 145 + { 146 + "description": "http:default -> 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", 147 + "type": "string", 148 + "enum": [ 149 + "http:default" 150 + ] 151 + }, 152 + { 153 + "description": "http:allow-fetch -> Enables the fetch command without any pre-configured scope.", 154 + "type": "string", 155 + "enum": [ 156 + "http:allow-fetch" 157 + ] 158 + }, 159 + { 160 + "description": "http:allow-fetch-cancel -> Enables the fetch_cancel command without any pre-configured scope.", 161 + "type": "string", 162 + "enum": [ 163 + "http:allow-fetch-cancel" 164 + ] 165 + }, 166 + { 167 + "description": "http:allow-fetch-read-body -> Enables the fetch_read_body command without any pre-configured scope.", 168 + "type": "string", 169 + "enum": [ 170 + "http:allow-fetch-read-body" 171 + ] 172 + }, 173 + { 174 + "description": "http:allow-fetch-send -> Enables the fetch_send command without any pre-configured scope.", 175 + "type": "string", 176 + "enum": [ 177 + "http:allow-fetch-send" 178 + ] 179 + }, 180 + { 181 + "description": "http:deny-fetch -> Denies the fetch command without any pre-configured scope.", 182 + "type": "string", 183 + "enum": [ 184 + "http:deny-fetch" 185 + ] 186 + }, 187 + { 188 + "description": "http:deny-fetch-cancel -> Denies the fetch_cancel command without any pre-configured scope.", 189 + "type": "string", 190 + "enum": [ 191 + "http:deny-fetch-cancel" 192 + ] 193 + }, 194 + { 195 + "description": "http:deny-fetch-read-body -> Denies the fetch_read_body command without any pre-configured scope.", 196 + "type": "string", 197 + "enum": [ 198 + "http:deny-fetch-read-body" 199 + ] 200 + }, 201 + { 202 + "description": "http:deny-fetch-send -> Denies the fetch_send command without any pre-configured scope.", 203 + "type": "string", 204 + "enum": [ 205 + "http:deny-fetch-send" 206 + ] 207 + } 208 + ] 209 + }, 210 + "allow": { 211 + "items": { 212 + "title": "HttpScopeEntry", 213 + "description": "HTTP scope entry.", 214 + "anyOf": [ 215 + { 216 + "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/\"", 217 + "type": "string" 218 + }, 219 + { 220 + "type": "object", 221 + "required": [ 222 + "url" 223 + ], 224 + "properties": { 225 + "url": { 226 + "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/\"", 227 + "type": "string" 228 + } 229 + } 230 + } 231 + ] 232 + } 233 + }, 234 + "deny": { 235 + "items": { 236 + "title": "HttpScopeEntry", 237 + "description": "HTTP scope entry.", 238 + "anyOf": [ 239 + { 240 + "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/\"", 241 + "type": "string" 242 + }, 243 + { 244 + "type": "object", 245 + "required": [ 246 + "url" 247 + ], 248 + "properties": { 249 + "url": { 250 + "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/\"", 251 + "type": "string" 252 + } 253 + } 254 + } 255 + ] 256 + } 257 + } 258 + } 259 + }, 260 + { 261 + "type": "object", 262 + "required": [ 263 + "identifier" 264 + ], 265 + "properties": { 266 + "identifier": { 267 + "oneOf": [ 268 + { 269 + "description": "shell:default -> 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", 270 + "type": "string", 271 + "enum": [ 272 + "shell:default" 273 + ] 274 + }, 275 + { 276 + "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", 277 + "type": "string", 278 + "enum": [ 279 + "shell:allow-execute" 280 + ] 281 + }, 282 + { 283 + "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", 284 + "type": "string", 285 + "enum": [ 286 + "shell:allow-kill" 287 + ] 288 + }, 289 + { 290 + "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", 291 + "type": "string", 292 + "enum": [ 293 + "shell:allow-open" 294 + ] 295 + }, 296 + { 297 + "description": "shell:allow-spawn -> Enables the spawn command without any pre-configured scope.", 298 + "type": "string", 299 + "enum": [ 300 + "shell:allow-spawn" 301 + ] 302 + }, 303 + { 304 + "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", 305 + "type": "string", 306 + "enum": [ 307 + "shell:allow-stdin-write" 308 + ] 309 + }, 310 + { 311 + "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", 312 + "type": "string", 313 + "enum": [ 314 + "shell:deny-execute" 315 + ] 316 + }, 317 + { 318 + "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", 319 + "type": "string", 320 + "enum": [ 321 + "shell:deny-kill" 322 + ] 323 + }, 324 + { 325 + "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", 326 + "type": "string", 327 + "enum": [ 328 + "shell:deny-open" 329 + ] 330 + }, 331 + { 332 + "description": "shell:deny-spawn -> Denies the spawn command without any pre-configured scope.", 333 + "type": "string", 334 + "enum": [ 335 + "shell:deny-spawn" 336 + ] 337 + }, 338 + { 339 + "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", 340 + "type": "string", 341 + "enum": [ 342 + "shell:deny-stdin-write" 343 + ] 344 + } 345 + ] 346 + }, 347 + "allow": { 348 + "items": { 349 + "title": "Entry", 350 + "description": "A command allowed to be executed by the webview API.", 351 + "type": "object", 352 + "required": [ 353 + "args", 354 + "cmd", 355 + "name", 356 + "sidecar" 357 + ], 358 + "properties": { 359 + "args": { 360 + "description": "The allowed arguments for the command execution.", 361 + "allOf": [ 362 + { 363 + "$ref": "#/definitions/ShellAllowedArgs" 364 + } 365 + ] 366 + }, 367 + "cmd": { 368 + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", 369 + "type": "string" 370 + }, 371 + "name": { 372 + "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.", 373 + "type": "string" 374 + }, 375 + "sidecar": { 376 + "description": "If this command is a sidecar command.", 377 + "type": "boolean" 378 + } 379 + } 380 + } 381 + }, 382 + "deny": { 383 + "items": { 384 + "title": "Entry", 385 + "description": "A command allowed to be executed by the webview API.", 386 + "type": "object", 387 + "required": [ 388 + "args", 389 + "cmd", 390 + "name", 391 + "sidecar" 392 + ], 393 + "properties": { 394 + "args": { 395 + "description": "The allowed arguments for the command execution.", 396 + "allOf": [ 397 + { 398 + "$ref": "#/definitions/ShellAllowedArgs" 399 + } 400 + ] 401 + }, 402 + "cmd": { 403 + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", 404 + "type": "string" 405 + }, 406 + "name": { 407 + "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.", 408 + "type": "string" 409 + }, 410 + "sidecar": { 411 + "description": "If this command is a sidecar command.", 412 + "type": "boolean" 413 + } 414 + } 415 + } 416 + } 417 + } 418 + } 419 + ] 420 + } 421 + ] 422 + }, 423 + "Identifier": { 424 + "oneOf": [ 425 + { 426 + "description": "core:app:default -> Default permissions for the plugin.", 427 + "type": "string", 428 + "enum": [ 429 + "core:app:default" 430 + ] 431 + }, 432 + { 433 + "description": "core:app:allow-app-hide -> Enables the app_hide command without any pre-configured scope.", 434 + "type": "string", 435 + "enum": [ 436 + "core:app:allow-app-hide" 437 + ] 438 + }, 439 + { 440 + "description": "core:app:allow-app-show -> Enables the app_show command without any pre-configured scope.", 441 + "type": "string", 442 + "enum": [ 443 + "core:app:allow-app-show" 444 + ] 445 + }, 446 + { 447 + "description": "core:app:allow-default-window-icon -> Enables the default_window_icon command without any pre-configured scope.", 448 + "type": "string", 449 + "enum": [ 450 + "core:app:allow-default-window-icon" 451 + ] 452 + }, 453 + { 454 + "description": "core:app:allow-name -> Enables the name command without any pre-configured scope.", 455 + "type": "string", 456 + "enum": [ 457 + "core:app:allow-name" 458 + ] 459 + }, 460 + { 461 + "description": "core:app:allow-tauri-version -> Enables the tauri_version command without any pre-configured scope.", 462 + "type": "string", 463 + "enum": [ 464 + "core:app:allow-tauri-version" 465 + ] 466 + }, 467 + { 468 + "description": "core:app:allow-version -> Enables the version command without any pre-configured scope.", 469 + "type": "string", 470 + "enum": [ 471 + "core:app:allow-version" 472 + ] 473 + }, 474 + { 475 + "description": "core:app:deny-app-hide -> Denies the app_hide command without any pre-configured scope.", 476 + "type": "string", 477 + "enum": [ 478 + "core:app:deny-app-hide" 479 + ] 480 + }, 481 + { 482 + "description": "core:app:deny-app-show -> Denies the app_show command without any pre-configured scope.", 483 + "type": "string", 484 + "enum": [ 485 + "core:app:deny-app-show" 486 + ] 487 + }, 488 + { 489 + "description": "core:app:deny-default-window-icon -> Denies the default_window_icon command without any pre-configured scope.", 490 + "type": "string", 491 + "enum": [ 492 + "core:app:deny-default-window-icon" 493 + ] 494 + }, 495 + { 496 + "description": "core:app:deny-name -> Denies the name command without any pre-configured scope.", 497 + "type": "string", 498 + "enum": [ 499 + "core:app:deny-name" 500 + ] 501 + }, 502 + { 503 + "description": "core:app:deny-tauri-version -> Denies the tauri_version command without any pre-configured scope.", 504 + "type": "string", 505 + "enum": [ 506 + "core:app:deny-tauri-version" 507 + ] 508 + }, 509 + { 510 + "description": "core:app:deny-version -> Denies the version command without any pre-configured scope.", 511 + "type": "string", 512 + "enum": [ 513 + "core:app:deny-version" 514 + ] 515 + }, 516 + { 517 + "description": "core:event:default -> Default permissions for the plugin.", 518 + "type": "string", 519 + "enum": [ 520 + "core:event:default" 521 + ] 522 + }, 523 + { 524 + "description": "core:event:allow-emit -> Enables the emit command without any pre-configured scope.", 525 + "type": "string", 526 + "enum": [ 527 + "core:event:allow-emit" 528 + ] 529 + }, 530 + { 531 + "description": "core:event:allow-emit-to -> Enables the emit_to command without any pre-configured scope.", 532 + "type": "string", 533 + "enum": [ 534 + "core:event:allow-emit-to" 535 + ] 536 + }, 537 + { 538 + "description": "core:event:allow-listen -> Enables the listen command without any pre-configured scope.", 539 + "type": "string", 540 + "enum": [ 541 + "core:event:allow-listen" 542 + ] 543 + }, 544 + { 545 + "description": "core:event:allow-unlisten -> Enables the unlisten command without any pre-configured scope.", 546 + "type": "string", 547 + "enum": [ 548 + "core:event:allow-unlisten" 549 + ] 550 + }, 551 + { 552 + "description": "core:event:deny-emit -> Denies the emit command without any pre-configured scope.", 553 + "type": "string", 554 + "enum": [ 555 + "core:event:deny-emit" 556 + ] 557 + }, 558 + { 559 + "description": "core:event:deny-emit-to -> Denies the emit_to command without any pre-configured scope.", 560 + "type": "string", 561 + "enum": [ 562 + "core:event:deny-emit-to" 563 + ] 564 + }, 565 + { 566 + "description": "core:event:deny-listen -> Denies the listen command without any pre-configured scope.", 567 + "type": "string", 568 + "enum": [ 569 + "core:event:deny-listen" 570 + ] 571 + }, 572 + { 573 + "description": "core:event:deny-unlisten -> Denies the unlisten command without any pre-configured scope.", 574 + "type": "string", 575 + "enum": [ 576 + "core:event:deny-unlisten" 577 + ] 578 + }, 579 + { 580 + "description": "core:image:default -> Default permissions for the plugin.", 581 + "type": "string", 582 + "enum": [ 583 + "core:image:default" 584 + ] 585 + }, 586 + { 587 + "description": "core:image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.", 588 + "type": "string", 589 + "enum": [ 590 + "core:image:allow-from-bytes" 591 + ] 592 + }, 593 + { 594 + "description": "core:image:allow-from-path -> Enables the from_path command without any pre-configured scope.", 595 + "type": "string", 596 + "enum": [ 597 + "core:image:allow-from-path" 598 + ] 599 + }, 600 + { 601 + "description": "core:image:allow-new -> Enables the new command without any pre-configured scope.", 602 + "type": "string", 603 + "enum": [ 604 + "core:image:allow-new" 605 + ] 606 + }, 607 + { 608 + "description": "core:image:allow-rgba -> Enables the rgba command without any pre-configured scope.", 609 + "type": "string", 610 + "enum": [ 611 + "core:image:allow-rgba" 612 + ] 613 + }, 614 + { 615 + "description": "core:image:allow-size -> Enables the size command without any pre-configured scope.", 616 + "type": "string", 617 + "enum": [ 618 + "core:image:allow-size" 619 + ] 620 + }, 621 + { 622 + "description": "core:image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.", 623 + "type": "string", 624 + "enum": [ 625 + "core:image:deny-from-bytes" 626 + ] 627 + }, 628 + { 629 + "description": "core:image:deny-from-path -> Denies the from_path command without any pre-configured scope.", 630 + "type": "string", 631 + "enum": [ 632 + "core:image:deny-from-path" 633 + ] 634 + }, 635 + { 636 + "description": "core:image:deny-new -> Denies the new command without any pre-configured scope.", 637 + "type": "string", 638 + "enum": [ 639 + "core:image:deny-new" 640 + ] 641 + }, 642 + { 643 + "description": "core:image:deny-rgba -> Denies the rgba command without any pre-configured scope.", 644 + "type": "string", 645 + "enum": [ 646 + "core:image:deny-rgba" 647 + ] 648 + }, 649 + { 650 + "description": "core:image:deny-size -> Denies the size command without any pre-configured scope.", 651 + "type": "string", 652 + "enum": [ 653 + "core:image:deny-size" 654 + ] 655 + }, 656 + { 657 + "description": "core:menu:default -> Default permissions for the plugin.", 658 + "type": "string", 659 + "enum": [ 660 + "core:menu:default" 661 + ] 662 + }, 663 + { 664 + "description": "core:menu:allow-append -> Enables the append command without any pre-configured scope.", 665 + "type": "string", 666 + "enum": [ 667 + "core:menu:allow-append" 668 + ] 669 + }, 670 + { 671 + "description": "core:menu:allow-create-default -> Enables the create_default command without any pre-configured scope.", 672 + "type": "string", 673 + "enum": [ 674 + "core:menu:allow-create-default" 675 + ] 676 + }, 677 + { 678 + "description": "core:menu:allow-get -> Enables the get command without any pre-configured scope.", 679 + "type": "string", 680 + "enum": [ 681 + "core:menu:allow-get" 682 + ] 683 + }, 684 + { 685 + "description": "core:menu:allow-insert -> Enables the insert command without any pre-configured scope.", 686 + "type": "string", 687 + "enum": [ 688 + "core:menu:allow-insert" 689 + ] 690 + }, 691 + { 692 + "description": "core:menu:allow-is-checked -> Enables the is_checked command without any pre-configured scope.", 693 + "type": "string", 694 + "enum": [ 695 + "core:menu:allow-is-checked" 696 + ] 697 + }, 698 + { 699 + "description": "core:menu:allow-is-enabled -> Enables the is_enabled command without any pre-configured scope.", 700 + "type": "string", 701 + "enum": [ 702 + "core:menu:allow-is-enabled" 703 + ] 704 + }, 705 + { 706 + "description": "core:menu:allow-items -> Enables the items command without any pre-configured scope.", 707 + "type": "string", 708 + "enum": [ 709 + "core:menu:allow-items" 710 + ] 711 + }, 712 + { 713 + "description": "core:menu:allow-new -> Enables the new command without any pre-configured scope.", 714 + "type": "string", 715 + "enum": [ 716 + "core:menu:allow-new" 717 + ] 718 + }, 719 + { 720 + "description": "core:menu:allow-popup -> Enables the popup command without any pre-configured scope.", 721 + "type": "string", 722 + "enum": [ 723 + "core:menu:allow-popup" 724 + ] 725 + }, 726 + { 727 + "description": "core:menu:allow-prepend -> Enables the prepend command without any pre-configured scope.", 728 + "type": "string", 729 + "enum": [ 730 + "core:menu:allow-prepend" 731 + ] 732 + }, 733 + { 734 + "description": "core:menu:allow-remove -> Enables the remove command without any pre-configured scope.", 735 + "type": "string", 736 + "enum": [ 737 + "core:menu:allow-remove" 738 + ] 739 + }, 740 + { 741 + "description": "core:menu:allow-remove-at -> Enables the remove_at command without any pre-configured scope.", 742 + "type": "string", 743 + "enum": [ 744 + "core:menu:allow-remove-at" 745 + ] 746 + }, 747 + { 748 + "description": "core:menu:allow-set-accelerator -> Enables the set_accelerator command without any pre-configured scope.", 749 + "type": "string", 750 + "enum": [ 751 + "core:menu:allow-set-accelerator" 752 + ] 753 + }, 754 + { 755 + "description": "core:menu:allow-set-as-app-menu -> Enables the set_as_app_menu command without any pre-configured scope.", 756 + "type": "string", 757 + "enum": [ 758 + "core:menu:allow-set-as-app-menu" 759 + ] 760 + }, 761 + { 762 + "description": "core:menu:allow-set-as-help-menu-for-nsapp -> Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", 763 + "type": "string", 764 + "enum": [ 765 + "core:menu:allow-set-as-help-menu-for-nsapp" 766 + ] 767 + }, 768 + { 769 + "description": "core:menu:allow-set-as-window-menu -> Enables the set_as_window_menu command without any pre-configured scope.", 770 + "type": "string", 771 + "enum": [ 772 + "core:menu:allow-set-as-window-menu" 773 + ] 774 + }, 775 + { 776 + "description": "core:menu:allow-set-as-windows-menu-for-nsapp -> Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", 777 + "type": "string", 778 + "enum": [ 779 + "core:menu:allow-set-as-windows-menu-for-nsapp" 780 + ] 781 + }, 782 + { 783 + "description": "core:menu:allow-set-checked -> Enables the set_checked command without any pre-configured scope.", 784 + "type": "string", 785 + "enum": [ 786 + "core:menu:allow-set-checked" 787 + ] 788 + }, 789 + { 790 + "description": "core:menu:allow-set-enabled -> Enables the set_enabled command without any pre-configured scope.", 791 + "type": "string", 792 + "enum": [ 793 + "core:menu:allow-set-enabled" 794 + ] 795 + }, 796 + { 797 + "description": "core:menu:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", 798 + "type": "string", 799 + "enum": [ 800 + "core:menu:allow-set-icon" 801 + ] 802 + }, 803 + { 804 + "description": "core:menu:allow-set-text -> Enables the set_text command without any pre-configured scope.", 805 + "type": "string", 806 + "enum": [ 807 + "core:menu:allow-set-text" 808 + ] 809 + }, 810 + { 811 + "description": "core:menu:allow-text -> Enables the text command without any pre-configured scope.", 812 + "type": "string", 813 + "enum": [ 814 + "core:menu:allow-text" 815 + ] 816 + }, 817 + { 818 + "description": "core:menu:deny-append -> Denies the append command without any pre-configured scope.", 819 + "type": "string", 820 + "enum": [ 821 + "core:menu:deny-append" 822 + ] 823 + }, 824 + { 825 + "description": "core:menu:deny-create-default -> Denies the create_default command without any pre-configured scope.", 826 + "type": "string", 827 + "enum": [ 828 + "core:menu:deny-create-default" 829 + ] 830 + }, 831 + { 832 + "description": "core:menu:deny-get -> Denies the get command without any pre-configured scope.", 833 + "type": "string", 834 + "enum": [ 835 + "core:menu:deny-get" 836 + ] 837 + }, 838 + { 839 + "description": "core:menu:deny-insert -> Denies the insert command without any pre-configured scope.", 840 + "type": "string", 841 + "enum": [ 842 + "core:menu:deny-insert" 843 + ] 844 + }, 845 + { 846 + "description": "core:menu:deny-is-checked -> Denies the is_checked command without any pre-configured scope.", 847 + "type": "string", 848 + "enum": [ 849 + "core:menu:deny-is-checked" 850 + ] 851 + }, 852 + { 853 + "description": "core:menu:deny-is-enabled -> Denies the is_enabled command without any pre-configured scope.", 854 + "type": "string", 855 + "enum": [ 856 + "core:menu:deny-is-enabled" 857 + ] 858 + }, 859 + { 860 + "description": "core:menu:deny-items -> Denies the items command without any pre-configured scope.", 861 + "type": "string", 862 + "enum": [ 863 + "core:menu:deny-items" 864 + ] 865 + }, 866 + { 867 + "description": "core:menu:deny-new -> Denies the new command without any pre-configured scope.", 868 + "type": "string", 869 + "enum": [ 870 + "core:menu:deny-new" 871 + ] 872 + }, 873 + { 874 + "description": "core:menu:deny-popup -> Denies the popup command without any pre-configured scope.", 875 + "type": "string", 876 + "enum": [ 877 + "core:menu:deny-popup" 878 + ] 879 + }, 880 + { 881 + "description": "core:menu:deny-prepend -> Denies the prepend command without any pre-configured scope.", 882 + "type": "string", 883 + "enum": [ 884 + "core:menu:deny-prepend" 885 + ] 886 + }, 887 + { 888 + "description": "core:menu:deny-remove -> Denies the remove command without any pre-configured scope.", 889 + "type": "string", 890 + "enum": [ 891 + "core:menu:deny-remove" 892 + ] 893 + }, 894 + { 895 + "description": "core:menu:deny-remove-at -> Denies the remove_at command without any pre-configured scope.", 896 + "type": "string", 897 + "enum": [ 898 + "core:menu:deny-remove-at" 899 + ] 900 + }, 901 + { 902 + "description": "core:menu:deny-set-accelerator -> Denies the set_accelerator command without any pre-configured scope.", 903 + "type": "string", 904 + "enum": [ 905 + "core:menu:deny-set-accelerator" 906 + ] 907 + }, 908 + { 909 + "description": "core:menu:deny-set-as-app-menu -> Denies the set_as_app_menu command without any pre-configured scope.", 910 + "type": "string", 911 + "enum": [ 912 + "core:menu:deny-set-as-app-menu" 913 + ] 914 + }, 915 + { 916 + "description": "core:menu:deny-set-as-help-menu-for-nsapp -> Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", 917 + "type": "string", 918 + "enum": [ 919 + "core:menu:deny-set-as-help-menu-for-nsapp" 920 + ] 921 + }, 922 + { 923 + "description": "core:menu:deny-set-as-window-menu -> Denies the set_as_window_menu command without any pre-configured scope.", 924 + "type": "string", 925 + "enum": [ 926 + "core:menu:deny-set-as-window-menu" 927 + ] 928 + }, 929 + { 930 + "description": "core:menu:deny-set-as-windows-menu-for-nsapp -> Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", 931 + "type": "string", 932 + "enum": [ 933 + "core:menu:deny-set-as-windows-menu-for-nsapp" 934 + ] 935 + }, 936 + { 937 + "description": "core:menu:deny-set-checked -> Denies the set_checked command without any pre-configured scope.", 938 + "type": "string", 939 + "enum": [ 940 + "core:menu:deny-set-checked" 941 + ] 942 + }, 943 + { 944 + "description": "core:menu:deny-set-enabled -> Denies the set_enabled command without any pre-configured scope.", 945 + "type": "string", 946 + "enum": [ 947 + "core:menu:deny-set-enabled" 948 + ] 949 + }, 950 + { 951 + "description": "core:menu:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", 952 + "type": "string", 953 + "enum": [ 954 + "core:menu:deny-set-icon" 955 + ] 956 + }, 957 + { 958 + "description": "core:menu:deny-set-text -> Denies the set_text command without any pre-configured scope.", 959 + "type": "string", 960 + "enum": [ 961 + "core:menu:deny-set-text" 962 + ] 963 + }, 964 + { 965 + "description": "core:menu:deny-text -> Denies the text command without any pre-configured scope.", 966 + "type": "string", 967 + "enum": [ 968 + "core:menu:deny-text" 969 + ] 970 + }, 971 + { 972 + "description": "core:path:default -> Default permissions for the plugin.", 973 + "type": "string", 974 + "enum": [ 975 + "core:path:default" 976 + ] 977 + }, 978 + { 979 + "description": "core:path:allow-basename -> Enables the basename command without any pre-configured scope.", 980 + "type": "string", 981 + "enum": [ 982 + "core:path:allow-basename" 983 + ] 984 + }, 985 + { 986 + "description": "core:path:allow-dirname -> Enables the dirname command without any pre-configured scope.", 987 + "type": "string", 988 + "enum": [ 989 + "core:path:allow-dirname" 990 + ] 991 + }, 992 + { 993 + "description": "core:path:allow-extname -> Enables the extname command without any pre-configured scope.", 994 + "type": "string", 995 + "enum": [ 996 + "core:path:allow-extname" 997 + ] 998 + }, 999 + { 1000 + "description": "core:path:allow-is-absolute -> Enables the is_absolute command without any pre-configured scope.", 1001 + "type": "string", 1002 + "enum": [ 1003 + "core:path:allow-is-absolute" 1004 + ] 1005 + }, 1006 + { 1007 + "description": "core:path:allow-join -> Enables the join command without any pre-configured scope.", 1008 + "type": "string", 1009 + "enum": [ 1010 + "core:path:allow-join" 1011 + ] 1012 + }, 1013 + { 1014 + "description": "core:path:allow-normalize -> Enables the normalize command without any pre-configured scope.", 1015 + "type": "string", 1016 + "enum": [ 1017 + "core:path:allow-normalize" 1018 + ] 1019 + }, 1020 + { 1021 + "description": "core:path:allow-resolve -> Enables the resolve command without any pre-configured scope.", 1022 + "type": "string", 1023 + "enum": [ 1024 + "core:path:allow-resolve" 1025 + ] 1026 + }, 1027 + { 1028 + "description": "core:path:allow-resolve-directory -> Enables the resolve_directory command without any pre-configured scope.", 1029 + "type": "string", 1030 + "enum": [ 1031 + "core:path:allow-resolve-directory" 1032 + ] 1033 + }, 1034 + { 1035 + "description": "core:path:deny-basename -> Denies the basename command without any pre-configured scope.", 1036 + "type": "string", 1037 + "enum": [ 1038 + "core:path:deny-basename" 1039 + ] 1040 + }, 1041 + { 1042 + "description": "core:path:deny-dirname -> Denies the dirname command without any pre-configured scope.", 1043 + "type": "string", 1044 + "enum": [ 1045 + "core:path:deny-dirname" 1046 + ] 1047 + }, 1048 + { 1049 + "description": "core:path:deny-extname -> Denies the extname command without any pre-configured scope.", 1050 + "type": "string", 1051 + "enum": [ 1052 + "core:path:deny-extname" 1053 + ] 1054 + }, 1055 + { 1056 + "description": "core:path:deny-is-absolute -> Denies the is_absolute command without any pre-configured scope.", 1057 + "type": "string", 1058 + "enum": [ 1059 + "core:path:deny-is-absolute" 1060 + ] 1061 + }, 1062 + { 1063 + "description": "core:path:deny-join -> Denies the join command without any pre-configured scope.", 1064 + "type": "string", 1065 + "enum": [ 1066 + "core:path:deny-join" 1067 + ] 1068 + }, 1069 + { 1070 + "description": "core:path:deny-normalize -> Denies the normalize command without any pre-configured scope.", 1071 + "type": "string", 1072 + "enum": [ 1073 + "core:path:deny-normalize" 1074 + ] 1075 + }, 1076 + { 1077 + "description": "core:path:deny-resolve -> Denies the resolve command without any pre-configured scope.", 1078 + "type": "string", 1079 + "enum": [ 1080 + "core:path:deny-resolve" 1081 + ] 1082 + }, 1083 + { 1084 + "description": "core:path:deny-resolve-directory -> Denies the resolve_directory command without any pre-configured scope.", 1085 + "type": "string", 1086 + "enum": [ 1087 + "core:path:deny-resolve-directory" 1088 + ] 1089 + }, 1090 + { 1091 + "description": "core:resources:default -> Default permissions for the plugin.", 1092 + "type": "string", 1093 + "enum": [ 1094 + "core:resources:default" 1095 + ] 1096 + }, 1097 + { 1098 + "description": "core:resources:allow-close -> Enables the close command without any pre-configured scope.", 1099 + "type": "string", 1100 + "enum": [ 1101 + "core:resources:allow-close" 1102 + ] 1103 + }, 1104 + { 1105 + "description": "core:resources:deny-close -> Denies the close command without any pre-configured scope.", 1106 + "type": "string", 1107 + "enum": [ 1108 + "core:resources:deny-close" 1109 + ] 1110 + }, 1111 + { 1112 + "description": "core:tray:default -> Default permissions for the plugin.", 1113 + "type": "string", 1114 + "enum": [ 1115 + "core:tray:default" 1116 + ] 1117 + }, 1118 + { 1119 + "description": "core:tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.", 1120 + "type": "string", 1121 + "enum": [ 1122 + "core:tray:allow-get-by-id" 1123 + ] 1124 + }, 1125 + { 1126 + "description": "core:tray:allow-new -> Enables the new command without any pre-configured scope.", 1127 + "type": "string", 1128 + "enum": [ 1129 + "core:tray:allow-new" 1130 + ] 1131 + }, 1132 + { 1133 + "description": "core:tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.", 1134 + "type": "string", 1135 + "enum": [ 1136 + "core:tray:allow-remove-by-id" 1137 + ] 1138 + }, 1139 + { 1140 + "description": "core:tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", 1141 + "type": "string", 1142 + "enum": [ 1143 + "core:tray:allow-set-icon" 1144 + ] 1145 + }, 1146 + { 1147 + "description": "core:tray:allow-set-icon-as-template -> Enables the set_icon_as_template command without any pre-configured scope.", 1148 + "type": "string", 1149 + "enum": [ 1150 + "core:tray:allow-set-icon-as-template" 1151 + ] 1152 + }, 1153 + { 1154 + "description": "core:tray:allow-set-menu -> Enables the set_menu command without any pre-configured scope.", 1155 + "type": "string", 1156 + "enum": [ 1157 + "core:tray:allow-set-menu" 1158 + ] 1159 + }, 1160 + { 1161 + "description": "core:tray:allow-set-show-menu-on-left-click -> Enables the set_show_menu_on_left_click command without any pre-configured scope.", 1162 + "type": "string", 1163 + "enum": [ 1164 + "core:tray:allow-set-show-menu-on-left-click" 1165 + ] 1166 + }, 1167 + { 1168 + "description": "core:tray:allow-set-temp-dir-path -> Enables the set_temp_dir_path command without any pre-configured scope.", 1169 + "type": "string", 1170 + "enum": [ 1171 + "core:tray:allow-set-temp-dir-path" 1172 + ] 1173 + }, 1174 + { 1175 + "description": "core:tray:allow-set-title -> Enables the set_title command without any pre-configured scope.", 1176 + "type": "string", 1177 + "enum": [ 1178 + "core:tray:allow-set-title" 1179 + ] 1180 + }, 1181 + { 1182 + "description": "core:tray:allow-set-tooltip -> Enables the set_tooltip command without any pre-configured scope.", 1183 + "type": "string", 1184 + "enum": [ 1185 + "core:tray:allow-set-tooltip" 1186 + ] 1187 + }, 1188 + { 1189 + "description": "core:tray:allow-set-visible -> Enables the set_visible command without any pre-configured scope.", 1190 + "type": "string", 1191 + "enum": [ 1192 + "core:tray:allow-set-visible" 1193 + ] 1194 + }, 1195 + { 1196 + "description": "core:tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.", 1197 + "type": "string", 1198 + "enum": [ 1199 + "core:tray:deny-get-by-id" 1200 + ] 1201 + }, 1202 + { 1203 + "description": "core:tray:deny-new -> Denies the new command without any pre-configured scope.", 1204 + "type": "string", 1205 + "enum": [ 1206 + "core:tray:deny-new" 1207 + ] 1208 + }, 1209 + { 1210 + "description": "core:tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.", 1211 + "type": "string", 1212 + "enum": [ 1213 + "core:tray:deny-remove-by-id" 1214 + ] 1215 + }, 1216 + { 1217 + "description": "core:tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", 1218 + "type": "string", 1219 + "enum": [ 1220 + "core:tray:deny-set-icon" 1221 + ] 1222 + }, 1223 + { 1224 + "description": "core:tray:deny-set-icon-as-template -> Denies the set_icon_as_template command without any pre-configured scope.", 1225 + "type": "string", 1226 + "enum": [ 1227 + "core:tray:deny-set-icon-as-template" 1228 + ] 1229 + }, 1230 + { 1231 + "description": "core:tray:deny-set-menu -> Denies the set_menu command without any pre-configured scope.", 1232 + "type": "string", 1233 + "enum": [ 1234 + "core:tray:deny-set-menu" 1235 + ] 1236 + }, 1237 + { 1238 + "description": "core:tray:deny-set-show-menu-on-left-click -> Denies the set_show_menu_on_left_click command without any pre-configured scope.", 1239 + "type": "string", 1240 + "enum": [ 1241 + "core:tray:deny-set-show-menu-on-left-click" 1242 + ] 1243 + }, 1244 + { 1245 + "description": "core:tray:deny-set-temp-dir-path -> Denies the set_temp_dir_path command without any pre-configured scope.", 1246 + "type": "string", 1247 + "enum": [ 1248 + "core:tray:deny-set-temp-dir-path" 1249 + ] 1250 + }, 1251 + { 1252 + "description": "core:tray:deny-set-title -> Denies the set_title command without any pre-configured scope.", 1253 + "type": "string", 1254 + "enum": [ 1255 + "core:tray:deny-set-title" 1256 + ] 1257 + }, 1258 + { 1259 + "description": "core:tray:deny-set-tooltip -> Denies the set_tooltip command without any pre-configured scope.", 1260 + "type": "string", 1261 + "enum": [ 1262 + "core:tray:deny-set-tooltip" 1263 + ] 1264 + }, 1265 + { 1266 + "description": "core:tray:deny-set-visible -> Denies the set_visible command without any pre-configured scope.", 1267 + "type": "string", 1268 + "enum": [ 1269 + "core:tray:deny-set-visible" 1270 + ] 1271 + }, 1272 + { 1273 + "description": "core:webview:default -> Default permissions for the plugin.", 1274 + "type": "string", 1275 + "enum": [ 1276 + "core:webview:default" 1277 + ] 1278 + }, 1279 + { 1280 + "description": "core:webview:allow-create-webview -> Enables the create_webview command without any pre-configured scope.", 1281 + "type": "string", 1282 + "enum": [ 1283 + "core:webview:allow-create-webview" 1284 + ] 1285 + }, 1286 + { 1287 + "description": "core:webview:allow-create-webview-window -> Enables the create_webview_window command without any pre-configured scope.", 1288 + "type": "string", 1289 + "enum": [ 1290 + "core:webview:allow-create-webview-window" 1291 + ] 1292 + }, 1293 + { 1294 + "description": "core:webview:allow-get-all-webviews -> Enables the get_all_webviews command without any pre-configured scope.", 1295 + "type": "string", 1296 + "enum": [ 1297 + "core:webview:allow-get-all-webviews" 1298 + ] 1299 + }, 1300 + { 1301 + "description": "core:webview:allow-internal-toggle-devtools -> Enables the internal_toggle_devtools command without any pre-configured scope.", 1302 + "type": "string", 1303 + "enum": [ 1304 + "core:webview:allow-internal-toggle-devtools" 1305 + ] 1306 + }, 1307 + { 1308 + "description": "core:webview:allow-print -> Enables the print command without any pre-configured scope.", 1309 + "type": "string", 1310 + "enum": [ 1311 + "core:webview:allow-print" 1312 + ] 1313 + }, 1314 + { 1315 + "description": "core:webview:allow-reparent -> Enables the reparent command without any pre-configured scope.", 1316 + "type": "string", 1317 + "enum": [ 1318 + "core:webview:allow-reparent" 1319 + ] 1320 + }, 1321 + { 1322 + "description": "core:webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.", 1323 + "type": "string", 1324 + "enum": [ 1325 + "core:webview:allow-set-webview-focus" 1326 + ] 1327 + }, 1328 + { 1329 + "description": "core:webview:allow-set-webview-position -> Enables the set_webview_position command without any pre-configured scope.", 1330 + "type": "string", 1331 + "enum": [ 1332 + "core:webview:allow-set-webview-position" 1333 + ] 1334 + }, 1335 + { 1336 + "description": "core:webview:allow-set-webview-size -> Enables the set_webview_size command without any pre-configured scope.", 1337 + "type": "string", 1338 + "enum": [ 1339 + "core:webview:allow-set-webview-size" 1340 + ] 1341 + }, 1342 + { 1343 + "description": "core:webview:allow-set-webview-zoom -> Enables the set_webview_zoom command without any pre-configured scope.", 1344 + "type": "string", 1345 + "enum": [ 1346 + "core:webview:allow-set-webview-zoom" 1347 + ] 1348 + }, 1349 + { 1350 + "description": "core:webview:allow-webview-close -> Enables the webview_close command without any pre-configured scope.", 1351 + "type": "string", 1352 + "enum": [ 1353 + "core:webview:allow-webview-close" 1354 + ] 1355 + }, 1356 + { 1357 + "description": "core:webview:allow-webview-position -> Enables the webview_position command without any pre-configured scope.", 1358 + "type": "string", 1359 + "enum": [ 1360 + "core:webview:allow-webview-position" 1361 + ] 1362 + }, 1363 + { 1364 + "description": "core:webview:allow-webview-size -> Enables the webview_size command without any pre-configured scope.", 1365 + "type": "string", 1366 + "enum": [ 1367 + "core:webview:allow-webview-size" 1368 + ] 1369 + }, 1370 + { 1371 + "description": "core:webview:deny-create-webview -> Denies the create_webview command without any pre-configured scope.", 1372 + "type": "string", 1373 + "enum": [ 1374 + "core:webview:deny-create-webview" 1375 + ] 1376 + }, 1377 + { 1378 + "description": "core:webview:deny-create-webview-window -> Denies the create_webview_window command without any pre-configured scope.", 1379 + "type": "string", 1380 + "enum": [ 1381 + "core:webview:deny-create-webview-window" 1382 + ] 1383 + }, 1384 + { 1385 + "description": "core:webview:deny-get-all-webviews -> Denies the get_all_webviews command without any pre-configured scope.", 1386 + "type": "string", 1387 + "enum": [ 1388 + "core:webview:deny-get-all-webviews" 1389 + ] 1390 + }, 1391 + { 1392 + "description": "core:webview:deny-internal-toggle-devtools -> Denies the internal_toggle_devtools command without any pre-configured scope.", 1393 + "type": "string", 1394 + "enum": [ 1395 + "core:webview:deny-internal-toggle-devtools" 1396 + ] 1397 + }, 1398 + { 1399 + "description": "core:webview:deny-print -> Denies the print command without any pre-configured scope.", 1400 + "type": "string", 1401 + "enum": [ 1402 + "core:webview:deny-print" 1403 + ] 1404 + }, 1405 + { 1406 + "description": "core:webview:deny-reparent -> Denies the reparent command without any pre-configured scope.", 1407 + "type": "string", 1408 + "enum": [ 1409 + "core:webview:deny-reparent" 1410 + ] 1411 + }, 1412 + { 1413 + "description": "core:webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.", 1414 + "type": "string", 1415 + "enum": [ 1416 + "core:webview:deny-set-webview-focus" 1417 + ] 1418 + }, 1419 + { 1420 + "description": "core:webview:deny-set-webview-position -> Denies the set_webview_position command without any pre-configured scope.", 1421 + "type": "string", 1422 + "enum": [ 1423 + "core:webview:deny-set-webview-position" 1424 + ] 1425 + }, 1426 + { 1427 + "description": "core:webview:deny-set-webview-size -> Denies the set_webview_size command without any pre-configured scope.", 1428 + "type": "string", 1429 + "enum": [ 1430 + "core:webview:deny-set-webview-size" 1431 + ] 1432 + }, 1433 + { 1434 + "description": "core:webview:deny-set-webview-zoom -> Denies the set_webview_zoom command without any pre-configured scope.", 1435 + "type": "string", 1436 + "enum": [ 1437 + "core:webview:deny-set-webview-zoom" 1438 + ] 1439 + }, 1440 + { 1441 + "description": "core:webview:deny-webview-close -> Denies the webview_close command without any pre-configured scope.", 1442 + "type": "string", 1443 + "enum": [ 1444 + "core:webview:deny-webview-close" 1445 + ] 1446 + }, 1447 + { 1448 + "description": "core:webview:deny-webview-position -> Denies the webview_position command without any pre-configured scope.", 1449 + "type": "string", 1450 + "enum": [ 1451 + "core:webview:deny-webview-position" 1452 + ] 1453 + }, 1454 + { 1455 + "description": "core:webview:deny-webview-size -> Denies the webview_size command without any pre-configured scope.", 1456 + "type": "string", 1457 + "enum": [ 1458 + "core:webview:deny-webview-size" 1459 + ] 1460 + }, 1461 + { 1462 + "description": "core:window:default -> Default permissions for the plugin.", 1463 + "type": "string", 1464 + "enum": [ 1465 + "core:window:default" 1466 + ] 1467 + }, 1468 + { 1469 + "description": "core:window:allow-available-monitors -> Enables the available_monitors command without any pre-configured scope.", 1470 + "type": "string", 1471 + "enum": [ 1472 + "core:window:allow-available-monitors" 1473 + ] 1474 + }, 1475 + { 1476 + "description": "core:window:allow-center -> Enables the center command without any pre-configured scope.", 1477 + "type": "string", 1478 + "enum": [ 1479 + "core:window:allow-center" 1480 + ] 1481 + }, 1482 + { 1483 + "description": "core:window:allow-close -> Enables the close command without any pre-configured scope.", 1484 + "type": "string", 1485 + "enum": [ 1486 + "core:window:allow-close" 1487 + ] 1488 + }, 1489 + { 1490 + "description": "core:window:allow-create -> Enables the create command without any pre-configured scope.", 1491 + "type": "string", 1492 + "enum": [ 1493 + "core:window:allow-create" 1494 + ] 1495 + }, 1496 + { 1497 + "description": "core:window:allow-current-monitor -> Enables the current_monitor command without any pre-configured scope.", 1498 + "type": "string", 1499 + "enum": [ 1500 + "core:window:allow-current-monitor" 1501 + ] 1502 + }, 1503 + { 1504 + "description": "core:window:allow-cursor-position -> Enables the cursor_position command without any pre-configured scope.", 1505 + "type": "string", 1506 + "enum": [ 1507 + "core:window:allow-cursor-position" 1508 + ] 1509 + }, 1510 + { 1511 + "description": "core:window:allow-destroy -> Enables the destroy command without any pre-configured scope.", 1512 + "type": "string", 1513 + "enum": [ 1514 + "core:window:allow-destroy" 1515 + ] 1516 + }, 1517 + { 1518 + "description": "core:window:allow-get-all-windows -> Enables the get_all_windows command without any pre-configured scope.", 1519 + "type": "string", 1520 + "enum": [ 1521 + "core:window:allow-get-all-windows" 1522 + ] 1523 + }, 1524 + { 1525 + "description": "core:window:allow-hide -> Enables the hide command without any pre-configured scope.", 1526 + "type": "string", 1527 + "enum": [ 1528 + "core:window:allow-hide" 1529 + ] 1530 + }, 1531 + { 1532 + "description": "core:window:allow-inner-position -> Enables the inner_position command without any pre-configured scope.", 1533 + "type": "string", 1534 + "enum": [ 1535 + "core:window:allow-inner-position" 1536 + ] 1537 + }, 1538 + { 1539 + "description": "core:window:allow-inner-size -> Enables the inner_size command without any pre-configured scope.", 1540 + "type": "string", 1541 + "enum": [ 1542 + "core:window:allow-inner-size" 1543 + ] 1544 + }, 1545 + { 1546 + "description": "core:window:allow-internal-toggle-maximize -> Enables the internal_toggle_maximize command without any pre-configured scope.", 1547 + "type": "string", 1548 + "enum": [ 1549 + "core:window:allow-internal-toggle-maximize" 1550 + ] 1551 + }, 1552 + { 1553 + "description": "core:window:allow-is-closable -> Enables the is_closable command without any pre-configured scope.", 1554 + "type": "string", 1555 + "enum": [ 1556 + "core:window:allow-is-closable" 1557 + ] 1558 + }, 1559 + { 1560 + "description": "core:window:allow-is-decorated -> Enables the is_decorated command without any pre-configured scope.", 1561 + "type": "string", 1562 + "enum": [ 1563 + "core:window:allow-is-decorated" 1564 + ] 1565 + }, 1566 + { 1567 + "description": "core:window:allow-is-focused -> Enables the is_focused command without any pre-configured scope.", 1568 + "type": "string", 1569 + "enum": [ 1570 + "core:window:allow-is-focused" 1571 + ] 1572 + }, 1573 + { 1574 + "description": "core:window:allow-is-fullscreen -> Enables the is_fullscreen command without any pre-configured scope.", 1575 + "type": "string", 1576 + "enum": [ 1577 + "core:window:allow-is-fullscreen" 1578 + ] 1579 + }, 1580 + { 1581 + "description": "core:window:allow-is-maximizable -> Enables the is_maximizable command without any pre-configured scope.", 1582 + "type": "string", 1583 + "enum": [ 1584 + "core:window:allow-is-maximizable" 1585 + ] 1586 + }, 1587 + { 1588 + "description": "core:window:allow-is-maximized -> Enables the is_maximized command without any pre-configured scope.", 1589 + "type": "string", 1590 + "enum": [ 1591 + "core:window:allow-is-maximized" 1592 + ] 1593 + }, 1594 + { 1595 + "description": "core:window:allow-is-minimizable -> Enables the is_minimizable command without any pre-configured scope.", 1596 + "type": "string", 1597 + "enum": [ 1598 + "core:window:allow-is-minimizable" 1599 + ] 1600 + }, 1601 + { 1602 + "description": "core:window:allow-is-minimized -> Enables the is_minimized command without any pre-configured scope.", 1603 + "type": "string", 1604 + "enum": [ 1605 + "core:window:allow-is-minimized" 1606 + ] 1607 + }, 1608 + { 1609 + "description": "core:window:allow-is-resizable -> Enables the is_resizable command without any pre-configured scope.", 1610 + "type": "string", 1611 + "enum": [ 1612 + "core:window:allow-is-resizable" 1613 + ] 1614 + }, 1615 + { 1616 + "description": "core:window:allow-is-visible -> Enables the is_visible command without any pre-configured scope.", 1617 + "type": "string", 1618 + "enum": [ 1619 + "core:window:allow-is-visible" 1620 + ] 1621 + }, 1622 + { 1623 + "description": "core:window:allow-maximize -> Enables the maximize command without any pre-configured scope.", 1624 + "type": "string", 1625 + "enum": [ 1626 + "core:window:allow-maximize" 1627 + ] 1628 + }, 1629 + { 1630 + "description": "core:window:allow-minimize -> Enables the minimize command without any pre-configured scope.", 1631 + "type": "string", 1632 + "enum": [ 1633 + "core:window:allow-minimize" 1634 + ] 1635 + }, 1636 + { 1637 + "description": "core:window:allow-monitor-from-point -> Enables the monitor_from_point command without any pre-configured scope.", 1638 + "type": "string", 1639 + "enum": [ 1640 + "core:window:allow-monitor-from-point" 1641 + ] 1642 + }, 1643 + { 1644 + "description": "core:window:allow-outer-position -> Enables the outer_position command without any pre-configured scope.", 1645 + "type": "string", 1646 + "enum": [ 1647 + "core:window:allow-outer-position" 1648 + ] 1649 + }, 1650 + { 1651 + "description": "core:window:allow-outer-size -> Enables the outer_size command without any pre-configured scope.", 1652 + "type": "string", 1653 + "enum": [ 1654 + "core:window:allow-outer-size" 1655 + ] 1656 + }, 1657 + { 1658 + "description": "core:window:allow-primary-monitor -> Enables the primary_monitor command without any pre-configured scope.", 1659 + "type": "string", 1660 + "enum": [ 1661 + "core:window:allow-primary-monitor" 1662 + ] 1663 + }, 1664 + { 1665 + "description": "core:window:allow-request-user-attention -> Enables the request_user_attention command without any pre-configured scope.", 1666 + "type": "string", 1667 + "enum": [ 1668 + "core:window:allow-request-user-attention" 1669 + ] 1670 + }, 1671 + { 1672 + "description": "core:window:allow-scale-factor -> Enables the scale_factor command without any pre-configured scope.", 1673 + "type": "string", 1674 + "enum": [ 1675 + "core:window:allow-scale-factor" 1676 + ] 1677 + }, 1678 + { 1679 + "description": "core:window:allow-set-always-on-bottom -> Enables the set_always_on_bottom command without any pre-configured scope.", 1680 + "type": "string", 1681 + "enum": [ 1682 + "core:window:allow-set-always-on-bottom" 1683 + ] 1684 + }, 1685 + { 1686 + "description": "core:window:allow-set-always-on-top -> Enables the set_always_on_top command without any pre-configured scope.", 1687 + "type": "string", 1688 + "enum": [ 1689 + "core:window:allow-set-always-on-top" 1690 + ] 1691 + }, 1692 + { 1693 + "description": "core:window:allow-set-closable -> Enables the set_closable command without any pre-configured scope.", 1694 + "type": "string", 1695 + "enum": [ 1696 + "core:window:allow-set-closable" 1697 + ] 1698 + }, 1699 + { 1700 + "description": "core:window:allow-set-content-protected -> Enables the set_content_protected command without any pre-configured scope.", 1701 + "type": "string", 1702 + "enum": [ 1703 + "core:window:allow-set-content-protected" 1704 + ] 1705 + }, 1706 + { 1707 + "description": "core:window:allow-set-cursor-grab -> Enables the set_cursor_grab command without any pre-configured scope.", 1708 + "type": "string", 1709 + "enum": [ 1710 + "core:window:allow-set-cursor-grab" 1711 + ] 1712 + }, 1713 + { 1714 + "description": "core:window:allow-set-cursor-icon -> Enables the set_cursor_icon command without any pre-configured scope.", 1715 + "type": "string", 1716 + "enum": [ 1717 + "core:window:allow-set-cursor-icon" 1718 + ] 1719 + }, 1720 + { 1721 + "description": "core:window:allow-set-cursor-position -> Enables the set_cursor_position command without any pre-configured scope.", 1722 + "type": "string", 1723 + "enum": [ 1724 + "core:window:allow-set-cursor-position" 1725 + ] 1726 + }, 1727 + { 1728 + "description": "core:window:allow-set-cursor-visible -> Enables the set_cursor_visible command without any pre-configured scope.", 1729 + "type": "string", 1730 + "enum": [ 1731 + "core:window:allow-set-cursor-visible" 1732 + ] 1733 + }, 1734 + { 1735 + "description": "core:window:allow-set-decorations -> Enables the set_decorations command without any pre-configured scope.", 1736 + "type": "string", 1737 + "enum": [ 1738 + "core:window:allow-set-decorations" 1739 + ] 1740 + }, 1741 + { 1742 + "description": "core:window:allow-set-effects -> Enables the set_effects command without any pre-configured scope.", 1743 + "type": "string", 1744 + "enum": [ 1745 + "core:window:allow-set-effects" 1746 + ] 1747 + }, 1748 + { 1749 + "description": "core:window:allow-set-focus -> Enables the set_focus command without any pre-configured scope.", 1750 + "type": "string", 1751 + "enum": [ 1752 + "core:window:allow-set-focus" 1753 + ] 1754 + }, 1755 + { 1756 + "description": "core:window:allow-set-fullscreen -> Enables the set_fullscreen command without any pre-configured scope.", 1757 + "type": "string", 1758 + "enum": [ 1759 + "core:window:allow-set-fullscreen" 1760 + ] 1761 + }, 1762 + { 1763 + "description": "core:window:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", 1764 + "type": "string", 1765 + "enum": [ 1766 + "core:window:allow-set-icon" 1767 + ] 1768 + }, 1769 + { 1770 + "description": "core:window:allow-set-ignore-cursor-events -> Enables the set_ignore_cursor_events command without any pre-configured scope.", 1771 + "type": "string", 1772 + "enum": [ 1773 + "core:window:allow-set-ignore-cursor-events" 1774 + ] 1775 + }, 1776 + { 1777 + "description": "core:window:allow-set-max-size -> Enables the set_max_size command without any pre-configured scope.", 1778 + "type": "string", 1779 + "enum": [ 1780 + "core:window:allow-set-max-size" 1781 + ] 1782 + }, 1783 + { 1784 + "description": "core:window:allow-set-maximizable -> Enables the set_maximizable command without any pre-configured scope.", 1785 + "type": "string", 1786 + "enum": [ 1787 + "core:window:allow-set-maximizable" 1788 + ] 1789 + }, 1790 + { 1791 + "description": "core:window:allow-set-min-size -> Enables the set_min_size command without any pre-configured scope.", 1792 + "type": "string", 1793 + "enum": [ 1794 + "core:window:allow-set-min-size" 1795 + ] 1796 + }, 1797 + { 1798 + "description": "core:window:allow-set-minimizable -> Enables the set_minimizable command without any pre-configured scope.", 1799 + "type": "string", 1800 + "enum": [ 1801 + "core:window:allow-set-minimizable" 1802 + ] 1803 + }, 1804 + { 1805 + "description": "core:window:allow-set-position -> Enables the set_position command without any pre-configured scope.", 1806 + "type": "string", 1807 + "enum": [ 1808 + "core:window:allow-set-position" 1809 + ] 1810 + }, 1811 + { 1812 + "description": "core:window:allow-set-progress-bar -> Enables the set_progress_bar command without any pre-configured scope.", 1813 + "type": "string", 1814 + "enum": [ 1815 + "core:window:allow-set-progress-bar" 1816 + ] 1817 + }, 1818 + { 1819 + "description": "core:window:allow-set-resizable -> Enables the set_resizable command without any pre-configured scope.", 1820 + "type": "string", 1821 + "enum": [ 1822 + "core:window:allow-set-resizable" 1823 + ] 1824 + }, 1825 + { 1826 + "description": "core:window:allow-set-shadow -> Enables the set_shadow command without any pre-configured scope.", 1827 + "type": "string", 1828 + "enum": [ 1829 + "core:window:allow-set-shadow" 1830 + ] 1831 + }, 1832 + { 1833 + "description": "core:window:allow-set-size -> Enables the set_size command without any pre-configured scope.", 1834 + "type": "string", 1835 + "enum": [ 1836 + "core:window:allow-set-size" 1837 + ] 1838 + }, 1839 + { 1840 + "description": "core:window:allow-set-size-constraints -> Enables the set_size_constraints command without any pre-configured scope.", 1841 + "type": "string", 1842 + "enum": [ 1843 + "core:window:allow-set-size-constraints" 1844 + ] 1845 + }, 1846 + { 1847 + "description": "core:window:allow-set-skip-taskbar -> Enables the set_skip_taskbar command without any pre-configured scope.", 1848 + "type": "string", 1849 + "enum": [ 1850 + "core:window:allow-set-skip-taskbar" 1851 + ] 1852 + }, 1853 + { 1854 + "description": "core:window:allow-set-title -> Enables the set_title command without any pre-configured scope.", 1855 + "type": "string", 1856 + "enum": [ 1857 + "core:window:allow-set-title" 1858 + ] 1859 + }, 1860 + { 1861 + "description": "core:window:allow-set-title-bar-style -> Enables the set_title_bar_style command without any pre-configured scope.", 1862 + "type": "string", 1863 + "enum": [ 1864 + "core:window:allow-set-title-bar-style" 1865 + ] 1866 + }, 1867 + { 1868 + "description": "core:window:allow-set-visible-on-all-workspaces -> Enables the set_visible_on_all_workspaces command without any pre-configured scope.", 1869 + "type": "string", 1870 + "enum": [ 1871 + "core:window:allow-set-visible-on-all-workspaces" 1872 + ] 1873 + }, 1874 + { 1875 + "description": "core:window:allow-show -> Enables the show command without any pre-configured scope.", 1876 + "type": "string", 1877 + "enum": [ 1878 + "core:window:allow-show" 1879 + ] 1880 + }, 1881 + { 1882 + "description": "core:window:allow-start-dragging -> Enables the start_dragging command without any pre-configured scope.", 1883 + "type": "string", 1884 + "enum": [ 1885 + "core:window:allow-start-dragging" 1886 + ] 1887 + }, 1888 + { 1889 + "description": "core:window:allow-start-resize-dragging -> Enables the start_resize_dragging command without any pre-configured scope.", 1890 + "type": "string", 1891 + "enum": [ 1892 + "core:window:allow-start-resize-dragging" 1893 + ] 1894 + }, 1895 + { 1896 + "description": "core:window:allow-theme -> Enables the theme command without any pre-configured scope.", 1897 + "type": "string", 1898 + "enum": [ 1899 + "core:window:allow-theme" 1900 + ] 1901 + }, 1902 + { 1903 + "description": "core:window:allow-title -> Enables the title command without any pre-configured scope.", 1904 + "type": "string", 1905 + "enum": [ 1906 + "core:window:allow-title" 1907 + ] 1908 + }, 1909 + { 1910 + "description": "core:window:allow-toggle-maximize -> Enables the toggle_maximize command without any pre-configured scope.", 1911 + "type": "string", 1912 + "enum": [ 1913 + "core:window:allow-toggle-maximize" 1914 + ] 1915 + }, 1916 + { 1917 + "description": "core:window:allow-unmaximize -> Enables the unmaximize command without any pre-configured scope.", 1918 + "type": "string", 1919 + "enum": [ 1920 + "core:window:allow-unmaximize" 1921 + ] 1922 + }, 1923 + { 1924 + "description": "core:window:allow-unminimize -> Enables the unminimize command without any pre-configured scope.", 1925 + "type": "string", 1926 + "enum": [ 1927 + "core:window:allow-unminimize" 1928 + ] 1929 + }, 1930 + { 1931 + "description": "core:window:deny-available-monitors -> Denies the available_monitors command without any pre-configured scope.", 1932 + "type": "string", 1933 + "enum": [ 1934 + "core:window:deny-available-monitors" 1935 + ] 1936 + }, 1937 + { 1938 + "description": "core:window:deny-center -> Denies the center command without any pre-configured scope.", 1939 + "type": "string", 1940 + "enum": [ 1941 + "core:window:deny-center" 1942 + ] 1943 + }, 1944 + { 1945 + "description": "core:window:deny-close -> Denies the close command without any pre-configured scope.", 1946 + "type": "string", 1947 + "enum": [ 1948 + "core:window:deny-close" 1949 + ] 1950 + }, 1951 + { 1952 + "description": "core:window:deny-create -> Denies the create command without any pre-configured scope.", 1953 + "type": "string", 1954 + "enum": [ 1955 + "core:window:deny-create" 1956 + ] 1957 + }, 1958 + { 1959 + "description": "core:window:deny-current-monitor -> Denies the current_monitor command without any pre-configured scope.", 1960 + "type": "string", 1961 + "enum": [ 1962 + "core:window:deny-current-monitor" 1963 + ] 1964 + }, 1965 + { 1966 + "description": "core:window:deny-cursor-position -> Denies the cursor_position command without any pre-configured scope.", 1967 + "type": "string", 1968 + "enum": [ 1969 + "core:window:deny-cursor-position" 1970 + ] 1971 + }, 1972 + { 1973 + "description": "core:window:deny-destroy -> Denies the destroy command without any pre-configured scope.", 1974 + "type": "string", 1975 + "enum": [ 1976 + "core:window:deny-destroy" 1977 + ] 1978 + }, 1979 + { 1980 + "description": "core:window:deny-get-all-windows -> Denies the get_all_windows command without any pre-configured scope.", 1981 + "type": "string", 1982 + "enum": [ 1983 + "core:window:deny-get-all-windows" 1984 + ] 1985 + }, 1986 + { 1987 + "description": "core:window:deny-hide -> Denies the hide command without any pre-configured scope.", 1988 + "type": "string", 1989 + "enum": [ 1990 + "core:window:deny-hide" 1991 + ] 1992 + }, 1993 + { 1994 + "description": "core:window:deny-inner-position -> Denies the inner_position command without any pre-configured scope.", 1995 + "type": "string", 1996 + "enum": [ 1997 + "core:window:deny-inner-position" 1998 + ] 1999 + }, 2000 + { 2001 + "description": "core:window:deny-inner-size -> Denies the inner_size command without any pre-configured scope.", 2002 + "type": "string", 2003 + "enum": [ 2004 + "core:window:deny-inner-size" 2005 + ] 2006 + }, 2007 + { 2008 + "description": "core:window:deny-internal-toggle-maximize -> Denies the internal_toggle_maximize command without any pre-configured scope.", 2009 + "type": "string", 2010 + "enum": [ 2011 + "core:window:deny-internal-toggle-maximize" 2012 + ] 2013 + }, 2014 + { 2015 + "description": "core:window:deny-is-closable -> Denies the is_closable command without any pre-configured scope.", 2016 + "type": "string", 2017 + "enum": [ 2018 + "core:window:deny-is-closable" 2019 + ] 2020 + }, 2021 + { 2022 + "description": "core:window:deny-is-decorated -> Denies the is_decorated command without any pre-configured scope.", 2023 + "type": "string", 2024 + "enum": [ 2025 + "core:window:deny-is-decorated" 2026 + ] 2027 + }, 2028 + { 2029 + "description": "core:window:deny-is-focused -> Denies the is_focused command without any pre-configured scope.", 2030 + "type": "string", 2031 + "enum": [ 2032 + "core:window:deny-is-focused" 2033 + ] 2034 + }, 2035 + { 2036 + "description": "core:window:deny-is-fullscreen -> Denies the is_fullscreen command without any pre-configured scope.", 2037 + "type": "string", 2038 + "enum": [ 2039 + "core:window:deny-is-fullscreen" 2040 + ] 2041 + }, 2042 + { 2043 + "description": "core:window:deny-is-maximizable -> Denies the is_maximizable command without any pre-configured scope.", 2044 + "type": "string", 2045 + "enum": [ 2046 + "core:window:deny-is-maximizable" 2047 + ] 2048 + }, 2049 + { 2050 + "description": "core:window:deny-is-maximized -> Denies the is_maximized command without any pre-configured scope.", 2051 + "type": "string", 2052 + "enum": [ 2053 + "core:window:deny-is-maximized" 2054 + ] 2055 + }, 2056 + { 2057 + "description": "core:window:deny-is-minimizable -> Denies the is_minimizable command without any pre-configured scope.", 2058 + "type": "string", 2059 + "enum": [ 2060 + "core:window:deny-is-minimizable" 2061 + ] 2062 + }, 2063 + { 2064 + "description": "core:window:deny-is-minimized -> Denies the is_minimized command without any pre-configured scope.", 2065 + "type": "string", 2066 + "enum": [ 2067 + "core:window:deny-is-minimized" 2068 + ] 2069 + }, 2070 + { 2071 + "description": "core:window:deny-is-resizable -> Denies the is_resizable command without any pre-configured scope.", 2072 + "type": "string", 2073 + "enum": [ 2074 + "core:window:deny-is-resizable" 2075 + ] 2076 + }, 2077 + { 2078 + "description": "core:window:deny-is-visible -> Denies the is_visible command without any pre-configured scope.", 2079 + "type": "string", 2080 + "enum": [ 2081 + "core:window:deny-is-visible" 2082 + ] 2083 + }, 2084 + { 2085 + "description": "core:window:deny-maximize -> Denies the maximize command without any pre-configured scope.", 2086 + "type": "string", 2087 + "enum": [ 2088 + "core:window:deny-maximize" 2089 + ] 2090 + }, 2091 + { 2092 + "description": "core:window:deny-minimize -> Denies the minimize command without any pre-configured scope.", 2093 + "type": "string", 2094 + "enum": [ 2095 + "core:window:deny-minimize" 2096 + ] 2097 + }, 2098 + { 2099 + "description": "core:window:deny-monitor-from-point -> Denies the monitor_from_point command without any pre-configured scope.", 2100 + "type": "string", 2101 + "enum": [ 2102 + "core:window:deny-monitor-from-point" 2103 + ] 2104 + }, 2105 + { 2106 + "description": "core:window:deny-outer-position -> Denies the outer_position command without any pre-configured scope.", 2107 + "type": "string", 2108 + "enum": [ 2109 + "core:window:deny-outer-position" 2110 + ] 2111 + }, 2112 + { 2113 + "description": "core:window:deny-outer-size -> Denies the outer_size command without any pre-configured scope.", 2114 + "type": "string", 2115 + "enum": [ 2116 + "core:window:deny-outer-size" 2117 + ] 2118 + }, 2119 + { 2120 + "description": "core:window:deny-primary-monitor -> Denies the primary_monitor command without any pre-configured scope.", 2121 + "type": "string", 2122 + "enum": [ 2123 + "core:window:deny-primary-monitor" 2124 + ] 2125 + }, 2126 + { 2127 + "description": "core:window:deny-request-user-attention -> Denies the request_user_attention command without any pre-configured scope.", 2128 + "type": "string", 2129 + "enum": [ 2130 + "core:window:deny-request-user-attention" 2131 + ] 2132 + }, 2133 + { 2134 + "description": "core:window:deny-scale-factor -> Denies the scale_factor command without any pre-configured scope.", 2135 + "type": "string", 2136 + "enum": [ 2137 + "core:window:deny-scale-factor" 2138 + ] 2139 + }, 2140 + { 2141 + "description": "core:window:deny-set-always-on-bottom -> Denies the set_always_on_bottom command without any pre-configured scope.", 2142 + "type": "string", 2143 + "enum": [ 2144 + "core:window:deny-set-always-on-bottom" 2145 + ] 2146 + }, 2147 + { 2148 + "description": "core:window:deny-set-always-on-top -> Denies the set_always_on_top command without any pre-configured scope.", 2149 + "type": "string", 2150 + "enum": [ 2151 + "core:window:deny-set-always-on-top" 2152 + ] 2153 + }, 2154 + { 2155 + "description": "core:window:deny-set-closable -> Denies the set_closable command without any pre-configured scope.", 2156 + "type": "string", 2157 + "enum": [ 2158 + "core:window:deny-set-closable" 2159 + ] 2160 + }, 2161 + { 2162 + "description": "core:window:deny-set-content-protected -> Denies the set_content_protected command without any pre-configured scope.", 2163 + "type": "string", 2164 + "enum": [ 2165 + "core:window:deny-set-content-protected" 2166 + ] 2167 + }, 2168 + { 2169 + "description": "core:window:deny-set-cursor-grab -> Denies the set_cursor_grab command without any pre-configured scope.", 2170 + "type": "string", 2171 + "enum": [ 2172 + "core:window:deny-set-cursor-grab" 2173 + ] 2174 + }, 2175 + { 2176 + "description": "core:window:deny-set-cursor-icon -> Denies the set_cursor_icon command without any pre-configured scope.", 2177 + "type": "string", 2178 + "enum": [ 2179 + "core:window:deny-set-cursor-icon" 2180 + ] 2181 + }, 2182 + { 2183 + "description": "core:window:deny-set-cursor-position -> Denies the set_cursor_position command without any pre-configured scope.", 2184 + "type": "string", 2185 + "enum": [ 2186 + "core:window:deny-set-cursor-position" 2187 + ] 2188 + }, 2189 + { 2190 + "description": "core:window:deny-set-cursor-visible -> Denies the set_cursor_visible command without any pre-configured scope.", 2191 + "type": "string", 2192 + "enum": [ 2193 + "core:window:deny-set-cursor-visible" 2194 + ] 2195 + }, 2196 + { 2197 + "description": "core:window:deny-set-decorations -> Denies the set_decorations command without any pre-configured scope.", 2198 + "type": "string", 2199 + "enum": [ 2200 + "core:window:deny-set-decorations" 2201 + ] 2202 + }, 2203 + { 2204 + "description": "core:window:deny-set-effects -> Denies the set_effects command without any pre-configured scope.", 2205 + "type": "string", 2206 + "enum": [ 2207 + "core:window:deny-set-effects" 2208 + ] 2209 + }, 2210 + { 2211 + "description": "core:window:deny-set-focus -> Denies the set_focus command without any pre-configured scope.", 2212 + "type": "string", 2213 + "enum": [ 2214 + "core:window:deny-set-focus" 2215 + ] 2216 + }, 2217 + { 2218 + "description": "core:window:deny-set-fullscreen -> Denies the set_fullscreen command without any pre-configured scope.", 2219 + "type": "string", 2220 + "enum": [ 2221 + "core:window:deny-set-fullscreen" 2222 + ] 2223 + }, 2224 + { 2225 + "description": "core:window:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", 2226 + "type": "string", 2227 + "enum": [ 2228 + "core:window:deny-set-icon" 2229 + ] 2230 + }, 2231 + { 2232 + "description": "core:window:deny-set-ignore-cursor-events -> Denies the set_ignore_cursor_events command without any pre-configured scope.", 2233 + "type": "string", 2234 + "enum": [ 2235 + "core:window:deny-set-ignore-cursor-events" 2236 + ] 2237 + }, 2238 + { 2239 + "description": "core:window:deny-set-max-size -> Denies the set_max_size command without any pre-configured scope.", 2240 + "type": "string", 2241 + "enum": [ 2242 + "core:window:deny-set-max-size" 2243 + ] 2244 + }, 2245 + { 2246 + "description": "core:window:deny-set-maximizable -> Denies the set_maximizable command without any pre-configured scope.", 2247 + "type": "string", 2248 + "enum": [ 2249 + "core:window:deny-set-maximizable" 2250 + ] 2251 + }, 2252 + { 2253 + "description": "core:window:deny-set-min-size -> Denies the set_min_size command without any pre-configured scope.", 2254 + "type": "string", 2255 + "enum": [ 2256 + "core:window:deny-set-min-size" 2257 + ] 2258 + }, 2259 + { 2260 + "description": "core:window:deny-set-minimizable -> Denies the set_minimizable command without any pre-configured scope.", 2261 + "type": "string", 2262 + "enum": [ 2263 + "core:window:deny-set-minimizable" 2264 + ] 2265 + }, 2266 + { 2267 + "description": "core:window:deny-set-position -> Denies the set_position command without any pre-configured scope.", 2268 + "type": "string", 2269 + "enum": [ 2270 + "core:window:deny-set-position" 2271 + ] 2272 + }, 2273 + { 2274 + "description": "core:window:deny-set-progress-bar -> Denies the set_progress_bar command without any pre-configured scope.", 2275 + "type": "string", 2276 + "enum": [ 2277 + "core:window:deny-set-progress-bar" 2278 + ] 2279 + }, 2280 + { 2281 + "description": "core:window:deny-set-resizable -> Denies the set_resizable command without any pre-configured scope.", 2282 + "type": "string", 2283 + "enum": [ 2284 + "core:window:deny-set-resizable" 2285 + ] 2286 + }, 2287 + { 2288 + "description": "core:window:deny-set-shadow -> Denies the set_shadow command without any pre-configured scope.", 2289 + "type": "string", 2290 + "enum": [ 2291 + "core:window:deny-set-shadow" 2292 + ] 2293 + }, 2294 + { 2295 + "description": "core:window:deny-set-size -> Denies the set_size command without any pre-configured scope.", 2296 + "type": "string", 2297 + "enum": [ 2298 + "core:window:deny-set-size" 2299 + ] 2300 + }, 2301 + { 2302 + "description": "core:window:deny-set-size-constraints -> Denies the set_size_constraints command without any pre-configured scope.", 2303 + "type": "string", 2304 + "enum": [ 2305 + "core:window:deny-set-size-constraints" 2306 + ] 2307 + }, 2308 + { 2309 + "description": "core:window:deny-set-skip-taskbar -> Denies the set_skip_taskbar command without any pre-configured scope.", 2310 + "type": "string", 2311 + "enum": [ 2312 + "core:window:deny-set-skip-taskbar" 2313 + ] 2314 + }, 2315 + { 2316 + "description": "core:window:deny-set-title -> Denies the set_title command without any pre-configured scope.", 2317 + "type": "string", 2318 + "enum": [ 2319 + "core:window:deny-set-title" 2320 + ] 2321 + }, 2322 + { 2323 + "description": "core:window:deny-set-title-bar-style -> Denies the set_title_bar_style command without any pre-configured scope.", 2324 + "type": "string", 2325 + "enum": [ 2326 + "core:window:deny-set-title-bar-style" 2327 + ] 2328 + }, 2329 + { 2330 + "description": "core:window:deny-set-visible-on-all-workspaces -> Denies the set_visible_on_all_workspaces command without any pre-configured scope.", 2331 + "type": "string", 2332 + "enum": [ 2333 + "core:window:deny-set-visible-on-all-workspaces" 2334 + ] 2335 + }, 2336 + { 2337 + "description": "core:window:deny-show -> Denies the show command without any pre-configured scope.", 2338 + "type": "string", 2339 + "enum": [ 2340 + "core:window:deny-show" 2341 + ] 2342 + }, 2343 + { 2344 + "description": "core:window:deny-start-dragging -> Denies the start_dragging command without any pre-configured scope.", 2345 + "type": "string", 2346 + "enum": [ 2347 + "core:window:deny-start-dragging" 2348 + ] 2349 + }, 2350 + { 2351 + "description": "core:window:deny-start-resize-dragging -> Denies the start_resize_dragging command without any pre-configured scope.", 2352 + "type": "string", 2353 + "enum": [ 2354 + "core:window:deny-start-resize-dragging" 2355 + ] 2356 + }, 2357 + { 2358 + "description": "core:window:deny-theme -> Denies the theme command without any pre-configured scope.", 2359 + "type": "string", 2360 + "enum": [ 2361 + "core:window:deny-theme" 2362 + ] 2363 + }, 2364 + { 2365 + "description": "core:window:deny-title -> Denies the title command without any pre-configured scope.", 2366 + "type": "string", 2367 + "enum": [ 2368 + "core:window:deny-title" 2369 + ] 2370 + }, 2371 + { 2372 + "description": "core:window:deny-toggle-maximize -> Denies the toggle_maximize command without any pre-configured scope.", 2373 + "type": "string", 2374 + "enum": [ 2375 + "core:window:deny-toggle-maximize" 2376 + ] 2377 + }, 2378 + { 2379 + "description": "core:window:deny-unmaximize -> Denies the unmaximize command without any pre-configured scope.", 2380 + "type": "string", 2381 + "enum": [ 2382 + "core:window:deny-unmaximize" 2383 + ] 2384 + }, 2385 + { 2386 + "description": "core:window:deny-unminimize -> Denies the unminimize command without any pre-configured scope.", 2387 + "type": "string", 2388 + "enum": [ 2389 + "core:window:deny-unminimize" 2390 + ] 2391 + }, 2392 + { 2393 + "description": "http:default -> 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", 2394 + "type": "string", 2395 + "enum": [ 2396 + "http:default" 2397 + ] 2398 + }, 2399 + { 2400 + "description": "http:allow-fetch -> Enables the fetch command without any pre-configured scope.", 2401 + "type": "string", 2402 + "enum": [ 2403 + "http:allow-fetch" 2404 + ] 2405 + }, 2406 + { 2407 + "description": "http:allow-fetch-cancel -> Enables the fetch_cancel command without any pre-configured scope.", 2408 + "type": "string", 2409 + "enum": [ 2410 + "http:allow-fetch-cancel" 2411 + ] 2412 + }, 2413 + { 2414 + "description": "http:allow-fetch-read-body -> Enables the fetch_read_body command without any pre-configured scope.", 2415 + "type": "string", 2416 + "enum": [ 2417 + "http:allow-fetch-read-body" 2418 + ] 2419 + }, 2420 + { 2421 + "description": "http:allow-fetch-send -> Enables the fetch_send command without any pre-configured scope.", 2422 + "type": "string", 2423 + "enum": [ 2424 + "http:allow-fetch-send" 2425 + ] 2426 + }, 2427 + { 2428 + "description": "http:deny-fetch -> Denies the fetch command without any pre-configured scope.", 2429 + "type": "string", 2430 + "enum": [ 2431 + "http:deny-fetch" 2432 + ] 2433 + }, 2434 + { 2435 + "description": "http:deny-fetch-cancel -> Denies the fetch_cancel command without any pre-configured scope.", 2436 + "type": "string", 2437 + "enum": [ 2438 + "http:deny-fetch-cancel" 2439 + ] 2440 + }, 2441 + { 2442 + "description": "http:deny-fetch-read-body -> Denies the fetch_read_body command without any pre-configured scope.", 2443 + "type": "string", 2444 + "enum": [ 2445 + "http:deny-fetch-read-body" 2446 + ] 2447 + }, 2448 + { 2449 + "description": "http:deny-fetch-send -> Denies the fetch_send command without any pre-configured scope.", 2450 + "type": "string", 2451 + "enum": [ 2452 + "http:deny-fetch-send" 2453 + ] 2454 + }, 2455 + { 2456 + "description": "process:default -> 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", 2457 + "type": "string", 2458 + "enum": [ 2459 + "process:default" 2460 + ] 2461 + }, 2462 + { 2463 + "description": "process:allow-exit -> Enables the exit command without any pre-configured scope.", 2464 + "type": "string", 2465 + "enum": [ 2466 + "process:allow-exit" 2467 + ] 2468 + }, 2469 + { 2470 + "description": "process:allow-restart -> Enables the restart command without any pre-configured scope.", 2471 + "type": "string", 2472 + "enum": [ 2473 + "process:allow-restart" 2474 + ] 2475 + }, 2476 + { 2477 + "description": "process:deny-exit -> Denies the exit command without any pre-configured scope.", 2478 + "type": "string", 2479 + "enum": [ 2480 + "process:deny-exit" 2481 + ] 2482 + }, 2483 + { 2484 + "description": "process:deny-restart -> Denies the restart command without any pre-configured scope.", 2485 + "type": "string", 2486 + "enum": [ 2487 + "process:deny-restart" 2488 + ] 2489 + }, 2490 + { 2491 + "description": "shell:default -> 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", 2492 + "type": "string", 2493 + "enum": [ 2494 + "shell:default" 2495 + ] 2496 + }, 2497 + { 2498 + "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", 2499 + "type": "string", 2500 + "enum": [ 2501 + "shell:allow-execute" 2502 + ] 2503 + }, 2504 + { 2505 + "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", 2506 + "type": "string", 2507 + "enum": [ 2508 + "shell:allow-kill" 2509 + ] 2510 + }, 2511 + { 2512 + "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", 2513 + "type": "string", 2514 + "enum": [ 2515 + "shell:allow-open" 2516 + ] 2517 + }, 2518 + { 2519 + "description": "shell:allow-spawn -> Enables the spawn command without any pre-configured scope.", 2520 + "type": "string", 2521 + "enum": [ 2522 + "shell:allow-spawn" 2523 + ] 2524 + }, 2525 + { 2526 + "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", 2527 + "type": "string", 2528 + "enum": [ 2529 + "shell:allow-stdin-write" 2530 + ] 2531 + }, 2532 + { 2533 + "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", 2534 + "type": "string", 2535 + "enum": [ 2536 + "shell:deny-execute" 2537 + ] 2538 + }, 2539 + { 2540 + "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", 2541 + "type": "string", 2542 + "enum": [ 2543 + "shell:deny-kill" 2544 + ] 2545 + }, 2546 + { 2547 + "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", 2548 + "type": "string", 2549 + "enum": [ 2550 + "shell:deny-open" 2551 + ] 2552 + }, 2553 + { 2554 + "description": "shell:deny-spawn -> Denies the spawn command without any pre-configured scope.", 2555 + "type": "string", 2556 + "enum": [ 2557 + "shell:deny-spawn" 2558 + ] 2559 + }, 2560 + { 2561 + "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", 2562 + "type": "string", 2563 + "enum": [ 2564 + "shell:deny-stdin-write" 2565 + ] 2566 + } 2567 + ] 2568 + }, 2569 + "Value": { 2570 + "description": "All supported ACL values.", 2571 + "anyOf": [ 2572 + { 2573 + "description": "Represents a null JSON value.", 2574 + "type": "null" 2575 + }, 2576 + { 2577 + "description": "Represents a [`bool`].", 2578 + "type": "boolean" 2579 + }, 2580 + { 2581 + "description": "Represents a valid ACL [`Number`].", 2582 + "allOf": [ 2583 + { 2584 + "$ref": "#/definitions/Number" 2585 + } 2586 + ] 2587 + }, 2588 + { 2589 + "description": "Represents a [`String`].", 2590 + "type": "string" 2591 + }, 2592 + { 2593 + "description": "Represents a list of other [`Value`]s.", 2594 + "type": "array", 2595 + "items": { 2596 + "$ref": "#/definitions/Value" 2597 + } 2598 + }, 2599 + { 2600 + "description": "Represents a map of [`String`] keys to [`Value`]s.", 2601 + "type": "object", 2602 + "additionalProperties": { 2603 + "$ref": "#/definitions/Value" 2604 + } 2605 + } 2606 + ] 2607 + }, 2608 + "Number": { 2609 + "description": "A valid ACL number.", 2610 + "anyOf": [ 2611 + { 2612 + "description": "Represents an [`i64`].", 2613 + "type": "integer", 2614 + "format": "int64" 2615 + }, 2616 + { 2617 + "description": "Represents a [`f64`].", 2618 + "type": "number", 2619 + "format": "double" 2620 + } 2621 + ] 2622 + }, 2623 + "Target": { 2624 + "description": "Platform target.", 2625 + "oneOf": [ 2626 + { 2627 + "description": "MacOS.", 2628 + "type": "string", 2629 + "enum": [ 2630 + "macOS" 2631 + ] 2632 + }, 2633 + { 2634 + "description": "Windows.", 2635 + "type": "string", 2636 + "enum": [ 2637 + "windows" 2638 + ] 2639 + }, 2640 + { 2641 + "description": "Linux.", 2642 + "type": "string", 2643 + "enum": [ 2644 + "linux" 2645 + ] 2646 + }, 2647 + { 2648 + "description": "Android.", 2649 + "type": "string", 2650 + "enum": [ 2651 + "android" 2652 + ] 2653 + }, 2654 + { 2655 + "description": "iOS.", 2656 + "type": "string", 2657 + "enum": [ 2658 + "iOS" 2659 + ] 2660 + } 2661 + ] 2662 + }, 2663 + "ShellAllowedArg": { 2664 + "description": "A command argument allowed to be executed by the webview API.", 2665 + "anyOf": [ 2666 + { 2667 + "description": "A non-configurable argument that is passed to the command in the order it was specified.", 2668 + "type": "string" 2669 + }, 2670 + { 2671 + "description": "A variable that is set while calling the command from the webview API.", 2672 + "type": "object", 2673 + "required": [ 2674 + "validator" 2675 + ], 2676 + "properties": { 2677 + "raw": { 2678 + "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.", 2679 + "default": false, 2680 + "type": "boolean" 2681 + }, 2682 + "validator": { 2683 + "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>", 2684 + "type": "string" 2685 + } 2686 + }, 2687 + "additionalProperties": false 2688 + } 2689 + ] 2690 + }, 2691 + "ShellAllowedArgs": { 2692 + "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", 2693 + "anyOf": [ 2694 + { 2695 + "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", 2696 + "type": "boolean" 2697 + }, 2698 + { 2699 + "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.", 2700 + "type": "array", 2701 + "items": { 2702 + "$ref": "#/definitions/ShellAllowedArg" 2703 + } 2704 + } 2705 + ] 2706 + } 2707 + } 2708 + }
+386 -324
src-tauri/src/main.rs
··· 1 1 #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] 2 2 3 + mod photosync; 3 4 mod pngmeta; 4 5 mod worldscraper; 5 - mod photosync; 6 6 7 - use tauri::{ http::ResponseBuilder, CustomMenuItem, Manager, SystemTray, SystemTrayEvent, SystemTrayMenu, SystemTrayMenuItem, WindowEvent }; 8 7 use core::time; 9 - use std::{ env, fs, io::Read, path, process::{ self, Command }, thread, time::Duration }; 8 + use mslnk::ShellLink; 9 + use notify::{EventKind, RecursiveMode, Watcher}; 10 + use pngmeta::PNGImage; 10 11 use regex::Regex; 11 - use pngmeta::PNGImage; 12 + use std::{ 13 + env, fs, 14 + io::Read, 15 + path, 16 + process::{self, Command}, 17 + thread, 18 + time::Duration, 19 + }; 20 + use tauri::{ 21 + http::Response, menu::{ MenuBuilder, MenuItemBuilder }, tray::{ MouseButton, MouseButtonState, TrayIconBuilder, TrayIconEvent }, AppHandle, Emitter, Manager, WindowEvent 22 + }; 12 23 use worldscraper::World; 13 - use mslnk::ShellLink; 14 - use notify::{ EventKind, RecursiveMode, Watcher }; 15 - 16 - #[derive(Clone, serde::Serialize)] 17 - struct PhotoLoadResponse{ 18 - data: String, 19 - path: String, 20 - } 21 24 22 25 // Scans all files under the "Pictures/VRChat" path 23 26 // then sends the list of photos to the frontend 24 27 #[derive(Clone, serde::Serialize)] 25 - struct PhotosLoadedResponse{ 26 - photos: Vec<path::PathBuf>, 27 - size: usize 28 + struct PhotosLoadedResponse { 29 + photos: Vec<path::PathBuf>, 30 + size: usize, 28 31 } 29 32 30 33 const VERSION: &str = env!("CARGO_PKG_VERSION"); 31 34 32 - pub fn get_photo_path() -> path::PathBuf{ 33 - let config_path = dirs::home_dir().unwrap().join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager\\.photos_path"); 35 + pub fn get_photo_path() -> path::PathBuf { 36 + let config_path = dirs::home_dir() 37 + .unwrap() 38 + .join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager\\.photos_path"); 34 39 35 - match fs::read_to_string(config_path){ 36 - Ok(path) => { 37 - if path != dirs::picture_dir().unwrap().join("VRChat").to_str().unwrap().to_owned(){ 38 - path::PathBuf::from(path) 39 - } else{ 40 - dirs::picture_dir().unwrap().join("VRChat") 41 - } 42 - } 43 - Err(_) => { 44 - dirs::picture_dir().unwrap().join("VRChat") 40 + match fs::read_to_string(config_path) { 41 + Ok(path) => { 42 + if path 43 + != dirs::picture_dir() 44 + .unwrap() 45 + .join("VRChat") 46 + .to_str() 47 + .unwrap() 48 + .to_owned() 49 + { 50 + path::PathBuf::from(path) 51 + } else { 52 + dirs::picture_dir().unwrap().join("VRChat") 53 + } 54 + } 55 + Err(_) => dirs::picture_dir().unwrap().join("VRChat"), 45 56 } 46 - } 47 57 } 48 58 49 59 #[tauri::command] 50 60 fn close_splashscreen(window: tauri::Window) { 51 - window.get_window("main").unwrap().show().unwrap(); 61 + window.get_webview_window("main").unwrap().show().unwrap(); 52 62 } 53 63 54 64 #[tauri::command] 55 65 fn start_user_auth() { 56 - open::that("https://photos.phazed.xyz/api/v1/auth").unwrap(); 66 + open::that("https://photos.phazed.xyz/api/v1/auth").unwrap(); 57 67 } 58 68 59 69 #[tauri::command] 60 - fn open_url( url: &str ) { 61 - open::that(url).unwrap(); 70 + fn open_url(url: &str) { 71 + open::that(url).unwrap(); 62 72 } 63 73 64 74 // Check if the photo config file exists 65 75 // if not just return the default vrchat path 66 76 #[tauri::command] 67 77 fn get_user_photos_path() -> path::PathBuf { 68 - get_photo_path() 78 + get_photo_path() 69 79 } 70 80 71 81 // When the user changes the start with windows toggle 72 82 // create and delete the shortcut from the startup folder 73 83 #[tauri::command] 74 - fn start_with_win( start: bool ){ 75 - thread::spawn(move || { 76 - if start{ 77 - let target = dirs::home_dir().unwrap().join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager\\vrchat-photo-manager.exe"); 78 - match fs::metadata(&target){ 79 - Ok(_) => { 80 - let lnk = dirs::home_dir().unwrap().join("AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\VRChat Photo Manager.lnk"); 84 + fn start_with_win(start: bool) { 85 + thread::spawn(move || { 86 + if start { 87 + let target = dirs::home_dir() 88 + .unwrap() 89 + .join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager\\vrchat-photo-manager.exe"); 90 + match fs::metadata(&target) { 91 + Ok(_) => { 92 + let lnk = dirs::home_dir().unwrap().join("AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\VRChat Photo Manager.lnk"); 81 93 82 - let sl = ShellLink::new(target).unwrap(); 83 - sl.create_lnk(lnk).unwrap(); 84 - }, 85 - Err(_) => {} 86 - } 87 - } else{ 88 - let lnk = dirs::home_dir().unwrap().join("AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\VRChat Photo Manager.lnk"); 89 - fs::remove_file(lnk).unwrap(); 90 - } 91 - }); 94 + let sl = ShellLink::new(target).unwrap(); 95 + sl.create_lnk(lnk).unwrap(); 96 + } 97 + Err(_) => {} 98 + } 99 + } else { 100 + let lnk = dirs::home_dir().unwrap().join("AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\VRChat Photo Manager.lnk"); 101 + fs::remove_file(lnk).unwrap(); 102 + } 103 + }); 92 104 } 93 105 94 106 // Load vrchat world data 95 107 #[tauri::command] 96 - fn find_world_by_id( world_id: String, window: tauri::Window ){ 97 - thread::spawn(move || { 98 - let world = World::new(world_id); 99 - window.emit("world_data", world).unwrap(); 100 - }); 108 + fn find_world_by_id(world_id: String, window: tauri::Window) { 109 + thread::spawn(move || { 110 + let world = World::new(world_id); 111 + window.emit("world_data", world).unwrap(); 112 + }); 101 113 } 102 114 103 115 // On requested sync the photos to the cloud 104 116 #[tauri::command] 105 - fn sync_photos( token: String, window: tauri::Window ){ 106 - thread::spawn(move || { 107 - photosync::sync_photos(token, get_photo_path(), window); 108 - }); 117 + fn sync_photos(token: String, window: tauri::Window) { 118 + thread::spawn(move || { 119 + photosync::sync_photos(token, get_photo_path(), window); 120 + }); 109 121 } 110 122 111 123 #[tauri::command] 112 124 fn load_photos(window: tauri::Window) { 113 - thread::spawn(move || { 114 - let base_dir = get_photo_path(); 125 + thread::spawn(move || { 126 + let base_dir = get_photo_path(); 115 127 116 - let mut photos: Vec<path::PathBuf> = Vec::new(); 117 - let mut size: usize = 0; 128 + let mut photos: Vec<path::PathBuf> = Vec::new(); 129 + let mut size: usize = 0; 118 130 119 - for folder in fs::read_dir(&base_dir).unwrap() { 120 - let f = folder.unwrap(); 131 + for folder in fs::read_dir(&base_dir).unwrap() { 132 + let f = folder.unwrap(); 121 133 122 - if f.metadata().unwrap().is_dir() { 123 - for photo in fs::read_dir(f.path()).unwrap() { 124 - let p = photo.unwrap(); 134 + if f.metadata().unwrap().is_dir() { 135 + for photo in fs::read_dir(f.path()).unwrap() { 136 + let p = photo.unwrap(); 125 137 126 - if p.metadata().unwrap().is_file() { 127 - let fname = p.path(); 138 + if p.metadata().unwrap().is_file() { 139 + let fname = p.path(); 128 140 129 - let re1 = Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}.png").unwrap(); 130 - let re2 = Regex::new( 141 + let re1 = Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}.png").unwrap(); 142 + let re2 = Regex::new( 131 143 r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png").unwrap(); 132 144 133 - if 134 - re1.is_match(p.file_name().to_str().unwrap()) || 135 - re2.is_match(p.file_name().to_str().unwrap()) 136 - { 137 - let path = fname.to_path_buf().clone(); 138 - let metadata = fs::metadata(&path).unwrap(); 145 + if re1.is_match(p.file_name().to_str().unwrap()) 146 + || re2.is_match(p.file_name().to_str().unwrap()) 147 + { 148 + let path = fname.to_path_buf().clone(); 149 + let metadata = fs::metadata(&path).unwrap(); 139 150 140 - if metadata.is_file() { 141 - size += metadata.len() as usize; 151 + if metadata.is_file() { 152 + size += metadata.len() as usize; 142 153 143 - let path = path.strip_prefix(&base_dir).unwrap().to_path_buf(); 144 - photos.push(path); 145 - } 146 - } else{ 147 - println!("Ignoring {:#?} as it doesn't match regex", p.file_name()); 154 + let path = path.strip_prefix(&base_dir).unwrap().to_path_buf(); 155 + photos.push(path); 156 + } 157 + } else { 158 + println!("Ignoring {:#?} as it doesn't match regex", p.file_name()); 159 + } 160 + } else { 161 + println!("Ignoring {:#?} as it is a directory", p.file_name()); 162 + } 163 + } 164 + } else { 165 + println!("Ignoring {:#?} as it isn't a directory", f.file_name()); 148 166 } 149 - } else { 150 - println!("Ignoring {:#?} as it is a directory", p.file_name()); 151 - } 152 167 } 153 - } else { 154 - println!("Ignoring {:#?} as it isn't a directory", f.file_name()); 155 - } 156 - } 157 168 158 - println!("Found {} photos", photos.len()); 159 - window.emit("photos_loaded", PhotosLoadedResponse{ photos, size }).unwrap(); 160 - }); 169 + println!("Found {} photos", photos.len()); 170 + window 171 + .emit("photos_loaded", PhotosLoadedResponse { photos, size }) 172 + .unwrap(); 173 + }); 161 174 } 162 175 163 176 // Reads the PNG file and loads the image metadata from it 164 177 // then sends the metadata to the frontend, returns width, height, colour depth and so on... more info "pngmeta.rs" 165 178 #[tauri::command] 166 - fn load_photo_meta( photo: &str, window: tauri::Window ){ 167 - let photo = photo.to_string(); 179 + fn load_photo_meta(photo: &str, window: tauri::Window) { 180 + let photo = photo.to_string(); 168 181 169 - thread::spawn(move || { 170 - let base_dir = get_photo_path().join(&photo); 182 + thread::spawn(move || { 183 + let base_dir = get_photo_path().join(&photo); 171 184 172 - let file = fs::File::open(base_dir.clone()); 185 + let file = fs::File::open(base_dir.clone()); 173 186 174 - match file{ 175 - Ok(mut file) => { 176 - let mut buffer = Vec::new(); 187 + match file { 188 + Ok(mut file) => { 189 + let mut buffer = Vec::new(); 177 190 178 - let _out = file.read_to_end(&mut buffer); 179 - window.emit("photo_meta_loaded", PNGImage::new(buffer, photo)).unwrap(); 180 - } 181 - Err(_) => { 182 - println!("Cannot read image file"); 183 - } 184 - } 185 - }); 191 + let _out = file.read_to_end(&mut buffer); 192 + window 193 + .emit("photo_meta_loaded", PNGImage::new(buffer, photo)) 194 + .unwrap(); 195 + } 196 + Err(_) => { 197 + println!("Cannot read image file"); 198 + } 199 + } 200 + }); 186 201 } 187 202 188 203 // Delete a photo when the users confirms the prompt in the ui 189 204 #[tauri::command] 190 - fn delete_photo( path: String, token: String, is_syncing: bool ){ 191 - thread::spawn(move || { 192 - let p = get_photo_path().join(&path); 193 - fs::remove_file(p).unwrap(); 205 + fn delete_photo(path: String, token: String, is_syncing: bool) { 206 + thread::spawn(move || { 207 + let p = get_photo_path().join(&path); 208 + fs::remove_file(p).unwrap(); 194 209 195 - let photo = path.split("\\").last().unwrap(); 210 + let photo = path.split("\\").last().unwrap(); 196 211 197 - if is_syncing { 198 - let client = reqwest::blocking::Client::new(); 199 - client.delete(format!("https://photos-cdn.phazed.xyz/api/v1/photos?token={}&photo={}", token, photo)) 200 - .timeout(Duration::from_secs(120)) 201 - .send().unwrap(); 202 - } 203 - }); 212 + if is_syncing { 213 + let client = reqwest::blocking::Client::new(); 214 + client 215 + .delete(format!( 216 + "https://photos-cdn.phazed.xyz/api/v1/photos?token={}&photo={}", 217 + token, photo 218 + )) 219 + .timeout(Duration::from_secs(120)) 220 + .send() 221 + .unwrap(); 222 + } 223 + }); 204 224 } 205 225 206 226 #[tauri::command] 207 - fn change_final_path( new_path: &str ){ 208 - let config_path = dirs::home_dir().unwrap().join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager\\.photos_path"); 209 - fs::write(&config_path, new_path.as_bytes()).unwrap(); 227 + fn change_final_path(new_path: &str) { 228 + let config_path = dirs::home_dir() 229 + .unwrap() 230 + .join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager\\.photos_path"); 231 + fs::write(&config_path, new_path.as_bytes()).unwrap(); 210 232 211 - match fs::metadata(&new_path){ 212 - Ok(_) => {} 213 - Err(_) => { 214 - fs::create_dir(&new_path).unwrap(); 215 - } 216 - }; 233 + match fs::metadata(&new_path) { 234 + Ok(_) => {} 235 + Err(_) => { 236 + fs::create_dir(&new_path).unwrap(); 237 + } 238 + }; 217 239 } 218 240 219 241 #[tauri::command] 220 - fn get_version() -> String{ 221 - String::from(VERSION) 242 + fn get_version() -> String { 243 + String::from(VERSION) 222 244 } 223 245 224 246 #[tauri::command] 225 - fn relaunch(){ 226 - let container_folder = dirs::home_dir().unwrap().join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager"); 247 + fn relaunch() { 248 + let container_folder = dirs::home_dir() 249 + .unwrap() 250 + .join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager"); 227 251 228 - let mut cmd = Command::new(&container_folder.join("./vrchat-photo-manager.exe")); 229 - cmd.current_dir(container_folder); 230 - cmd.spawn().expect("Cannot run updater"); 252 + let mut cmd = Command::new(&container_folder.join("./vrchat-photo-manager.exe")); 253 + cmd.current_dir(container_folder); 254 + cmd.spawn().expect("Cannot run updater"); 231 255 232 - process::exit(0); 256 + process::exit(0); 233 257 } 234 258 235 259 fn main() { 236 - std::env::set_var("WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS", "--ignore-gpu-blacklist"); 237 - tauri_plugin_deep_link::prepare("uk.phaz.vrcpm"); 238 - 239 - // Double check the app has an install directory 240 - let container_folder = dirs::home_dir().unwrap().join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager"); 241 - match fs::metadata(&container_folder){ 242 - Ok(meta) => { 243 - if meta.is_file(){ 244 - panic!("Cannot launch app as the container path is a file not a directory"); 245 - } 246 - }, 247 - Err(_) => { 248 - fs::create_dir(&container_folder).unwrap(); 249 - } 250 - } 251 - 252 - let sync_lock_path = dirs::home_dir().unwrap().join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager\\.sync_lock"); 253 - match fs::metadata(&sync_lock_path){ 254 - Ok(_) => { fs::remove_file(&sync_lock_path).unwrap(); } 255 - Err(_) => {} 256 - } 257 - 258 - println!("Loading App..."); 259 - let photos_path = get_photo_path(); 260 + std::env::set_var( 261 + "WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS", 262 + "--ignore-gpu-blacklist", 263 + ); 264 + tauri_plugin_deep_link::prepare("uk.phaz.vrcpm"); 260 265 261 - match fs::metadata(&photos_path){ 262 - Ok(_) => {} 263 - Err(_) => { 264 - fs::create_dir(&photos_path).unwrap(); 266 + // Double check the app has an install directory 267 + let container_folder = dirs::home_dir() 268 + .unwrap() 269 + .join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager"); 270 + match fs::metadata(&container_folder) { 271 + Ok(meta) => { 272 + if meta.is_file() { 273 + panic!("Cannot launch app as the container path is a file not a directory"); 274 + } 275 + } 276 + Err(_) => { 277 + fs::create_dir(&container_folder).unwrap(); 278 + } 265 279 } 266 - }; 267 280 268 - let args: Vec<String> = env::args().collect(); 269 - 270 - let mut update = true; 271 - for arg in args{ 272 - if arg == "--no-update"{ 273 - update = false; 281 + let sync_lock_path = dirs::home_dir() 282 + .unwrap() 283 + .join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager\\.sync_lock"); 284 + match fs::metadata(&sync_lock_path) { 285 + Ok(_) => { 286 + fs::remove_file(&sync_lock_path).unwrap(); 287 + } 288 + Err(_) => {} 274 289 } 275 - } 276 290 277 - if update{ 278 - // Auto update 279 - thread::spawn(move || { 280 - let client = reqwest::blocking::Client::new(); 291 + println!("Loading App..."); 292 + let photos_path = get_photo_path(); 281 293 282 - let latest_version = client.get("https://cdn.phaz.uk/vrcpm/latest") 283 - .send().unwrap().text().unwrap(); 294 + match fs::metadata(&photos_path) { 295 + Ok(_) => {} 296 + Err(_) => { 297 + fs::create_dir(&photos_path).unwrap(); 298 + } 299 + }; 284 300 285 - if latest_version != VERSION{ 286 - match fs::metadata(&container_folder.join("./updater.exe")){ 287 - Ok(_) => {} 288 - Err(_) => { 289 - let latest_installer = client.get("https://cdn.phaz.uk/vrcpm/vrcpm-installer.exe") 290 - .timeout(Duration::from_secs(120)) 291 - .send().unwrap().bytes().unwrap(); 301 + let args: Vec<String> = env::args().collect(); 292 302 293 - fs::write(&container_folder.join("./updater.exe"), latest_installer).unwrap(); 294 - } 303 + let mut update = true; 304 + for arg in args { 305 + if arg == "--no-update" { 306 + update = false; 295 307 } 308 + } 296 309 297 - let mut cmd = Command::new(&container_folder.join("./updater.exe")); 298 - cmd.current_dir(container_folder); 299 - cmd.spawn().expect("Cannot run updater"); 310 + if update { 311 + // Auto update 312 + thread::spawn(move || { 313 + let client = reqwest::blocking::Client::new(); 300 314 301 - process::exit(0); 302 - } 303 - }); 304 - } 315 + let latest_version = client 316 + .get("https://cdn.phaz.uk/vrcpm/latest") 317 + .send() 318 + .unwrap() 319 + .text() 320 + .unwrap(); 305 321 306 - // Setup the tray icon and menu buttons 307 - let quit = CustomMenuItem::new("quit".to_string(), "Quit"); 308 - let hide = CustomMenuItem::new("hide".to_string(), "Hide / Show"); 322 + if latest_version != VERSION { 323 + match fs::metadata(&container_folder.join("./updater.exe")) { 324 + Ok(_) => {} 325 + Err(_) => { 326 + let latest_installer = client 327 + .get("https://cdn.phaz.uk/vrcpm/vrcpm-installer.exe") 328 + .timeout(Duration::from_secs(120)) 329 + .send() 330 + .unwrap() 331 + .bytes() 332 + .unwrap(); 309 333 310 - let tray_menu = SystemTrayMenu::new() 311 - .add_item(quit) 312 - .add_native_item(SystemTrayMenuItem::Separator) 313 - .add_item(hide); 334 + fs::write(&container_folder.join("./updater.exe"), latest_installer) 335 + .unwrap(); 336 + } 337 + } 314 338 315 - let tray = SystemTray::new().with_menu(tray_menu); 339 + let mut cmd = Command::new(&container_folder.join("./updater.exe")); 340 + cmd.current_dir(container_folder); 341 + cmd.spawn().expect("Cannot run updater"); 316 342 317 - // Listen for file updates, store each update in an mpsc channel and send to the frontend 318 - let (sender, receiver) = std::sync::mpsc::channel(); 319 - let mut watcher = notify::recommended_watcher(move | res: Result<notify::Event, notify::Error> | { 343 + process::exit(0); 344 + } 345 + }); 346 + } 347 + 348 + // Listen for file updates, store each update in an mpsc channel and send to the frontend 349 + let (sender, receiver) = std::sync::mpsc::channel(); 350 + let mut watcher = notify::recommended_watcher(move | res: Result<notify::Event, notify::Error> | { 320 351 match res { 321 352 Ok(event) => { 322 353 match event.kind{ ··· 354 385 } 355 386 }).unwrap(); 356 387 357 - watcher.watch(&get_photo_path(), RecursiveMode::Recursive).unwrap(); 388 + watcher 389 + .watch(&get_photo_path(), RecursiveMode::Recursive) 390 + .unwrap(); 358 391 359 - tauri::Builder::default() 360 - .system_tray(tray) 361 - .on_system_tray_event(|app, event| match event { 362 - SystemTrayEvent::LeftClick { 363 - position: _, 364 - size: _, 365 - .. 366 - } => { 367 - let window = app.get_window("main").unwrap(); 392 + tauri::Builder::default() 393 + .plugin(tauri_plugin_process::init()) 394 + .plugin(tauri_plugin_http::init()) 395 + .plugin(tauri_plugin_shell::init()) 396 + .register_asynchronous_uri_scheme_protocol("photo", move |_app, request, responder| { 397 + thread::spawn(move || { 398 + // Loads the requested image file, sends data back to the user 399 + let uri = request.uri(); 400 + 401 + if request.method() != "GET" { 402 + responder.respond(Response::builder() 403 + .status(404) 404 + .header("Access-Control-Allow-Origin", "*") 405 + .body(Vec::new()) 406 + .unwrap()); 407 + 408 + return; 409 + } 410 + 411 + let path = uri.path().split_at(1).1; 412 + let file = fs::File::open(path); 413 + 414 + match file { 415 + Ok(mut file) => { 416 + let mut buffer = Vec::new(); 417 + 418 + let _out = file.read_to_end(&mut buffer); 368 419 369 - window.show().unwrap(); 370 - window.set_focus().unwrap(); 371 - } 372 - SystemTrayEvent::MenuItemClick { id, .. } => { 373 - match id.as_str() { 374 - "quit" => { 375 - std::process::exit(0); 376 - } 377 - "hide" => { 378 - let window = app.get_window("main").unwrap(); 420 + let res = Response::builder() 421 + .status(200) 422 + .header("Access-Control-Allow-Origin", "*") 423 + .body(buffer) 424 + .unwrap(); 379 425 380 - if window.is_visible().unwrap() { 426 + responder.respond(res); 427 + } 428 + Err(_) => { 429 + responder.respond(Response::builder() 430 + .status(404) 431 + .header("Access-Control-Allow-Origin", "*") 432 + .body(b"File Not Found") 433 + .unwrap()); 434 + } 435 + } 436 + }); 437 + }) 438 + .on_window_event(| window, event | match event { 439 + WindowEvent::CloseRequested { api, .. } => { 381 440 window.hide().unwrap(); 382 - } else{ 383 - window.show().unwrap(); 384 - window.set_focus().unwrap(); 441 + api.prevent_close(); 385 442 } 386 - } 387 - _ => {} 388 - } 389 - } 390 - _ => {} 391 - }) 392 - .on_window_event(| event | match event.event() { 393 - WindowEvent::CloseRequested { api, .. } => { 394 - event.window().hide().unwrap(); 395 - api.prevent_close(); 396 - } 397 - _ => {} 398 - }) 399 - .register_uri_scheme_protocol("photo", | _app, request | { 400 - // Loads the requested image file, sends data back to the user 401 - let uri = request.uri(); 443 + _ => {} 444 + }) 445 + .setup(|app| { 446 + let handle = app.handle().clone(); 402 447 403 - if request.method() != "GET" { 404 - return ResponseBuilder::new() 405 - .status(404) 406 - .header("Access-Control-Allow-Origin", "*") 407 - .body(Vec::new()); 408 - } 448 + // Setup the tray icon and menu buttons 449 + let quit = MenuItemBuilder::new("Quit").id("quit").build(&handle).unwrap(); 450 + let hide = MenuItemBuilder::new("Hide / Show").id("hide").build(&handle).unwrap(); 409 451 410 - let path = uri.replace("photo://localhost/", ""); 411 - let file = fs::File::open(path); 452 + let tray_menu = MenuBuilder::new(&handle) 453 + .items(&[ &quit, &hide ]) 454 + .build().unwrap(); 412 455 413 - match file{ 414 - Ok(mut file) => { 415 - let mut buffer = Vec::new(); 456 + TrayIconBuilder::with_id("vrcpm-tray") 457 + .menu(&tray_menu) 458 + .on_menu_event(move | app: &AppHandle, event |{ 459 + match event.id().as_ref() { 460 + "quit" => { 461 + std::process::exit(0); 462 + } 463 + "hide" => { 464 + let window = app.get_webview_window("main").unwrap(); 416 465 417 - let _out = file.read_to_end(&mut buffer); 466 + if window.is_visible().unwrap() { 467 + window.hide().unwrap(); 468 + } else { 469 + window.show().unwrap(); 470 + window.set_focus().unwrap(); 471 + } 472 + } 473 + _ => {} 474 + } 475 + }) 476 + .on_tray_icon_event(| tray, event |{ 477 + if let TrayIconEvent::Click { 478 + button: MouseButton::Left, 479 + button_state: MouseButtonState::Up, 480 + .. 481 + } = event{ 482 + let window = tray.app_handle().get_webview_window("main").unwrap(); 418 483 419 - ResponseBuilder::new() 420 - .status(200) 421 - .header("Access-Control-Allow-Origin", "*") 422 - .body(buffer) 423 - }, 424 - Err(_) => { 425 - ResponseBuilder::new() 426 - .status(404) 427 - .header("Access-Control-Allow-Origin", "*") 428 - .body("File Not Found".into()) 429 - } 430 - } 431 - }) 432 - .setup(|app| { 433 - let handle = app.handle(); 484 + window.show().unwrap(); 485 + window.set_focus().unwrap(); 486 + } 487 + }) 488 + .build(&handle).unwrap(); 434 489 435 - // Register "deep link" for authentication via vrcpm:// 436 - tauri_plugin_deep_link::register( 437 - "vrcpm", 438 - move | request | { 439 - let mut command: u8 = 0; 440 - let mut index: u8 = 0; 490 + // Register "deep link" for authentication via vrcpm:// 491 + tauri_plugin_deep_link::register("vrcpm", move |request| { 492 + let mut command: u8 = 0; 493 + let mut index: u8 = 0; 441 494 442 - for part in request.split('/').into_iter() { 443 - index += 1; 495 + for part in request.split('/').into_iter() { 496 + index += 1; 444 497 445 - if index == 3 && part == "auth-callback"{ 446 - command = 1; 447 - } 498 + if index == 3 && part == "auth-callback" { 499 + command = 1; 500 + } 448 501 449 - if index == 3 && part == "auth-denied"{ 450 - handle.emit_all("auth-denied", "null").unwrap(); 451 - } 502 + if index == 3 && part == "auth-denied" { 503 + handle.emit("auth-denied", "null").unwrap(); 504 + } 452 505 453 - if index == 4 && command == 1 { 454 - handle.emit_all("auth-callback", part).unwrap(); 455 - } 456 - } 457 - } 458 - ).unwrap(); 506 + if index == 4 && command == 1 { 507 + handle.emit("auth-callback", part).unwrap(); 508 + } 509 + } 510 + }) 511 + .unwrap(); 459 512 460 - // I hate this approach but i have no clue how else to do this... 461 - // reads the mpsc channel and sends the events to the frontend 462 - let window = app.get_window("main").unwrap(); 463 - thread::spawn(move || { 464 - thread::sleep(time::Duration::from_millis(100)); 513 + // I hate this approach but i have no clue how else to do this... 514 + // reads the mpsc channel and sends the events to the frontend 515 + let window = app.get_webview_window("main").unwrap(); 516 + thread::spawn(move || { 517 + thread::sleep(time::Duration::from_millis(100)); 465 518 466 - for event in receiver { 467 - match event.0 { 468 - 1 => { 469 - window.emit("photo_create", event.1).unwrap(); 470 - }, 471 - 2 => { 472 - window.emit("photo_remove", event.1).unwrap(); 473 - }, 474 - _ => {} 475 - } 476 - } 477 - }); 519 + for event in receiver { 520 + match event.0 { 521 + 1 => { 522 + window.emit("photo_create", event.1).unwrap(); 523 + } 524 + 2 => { 525 + window.emit("photo_remove", event.1).unwrap(); 526 + } 527 + _ => {} 528 + } 529 + } 530 + }); 478 531 479 - Ok(()) 480 - }) 481 - .invoke_handler(tauri::generate_handler![ 482 - start_user_auth, load_photos, close_splashscreen, 483 - load_photo_meta, delete_photo, open_url, 484 - find_world_by_id, start_with_win, get_user_photos_path, 485 - change_final_path, sync_photos, get_version, relaunch 486 - ]) 487 - .run(tauri::generate_context!()) 488 - .expect("error while running tauri application"); 489 - } 532 + Ok(()) 533 + }) 534 + .invoke_handler(tauri::generate_handler![ 535 + start_user_auth, 536 + load_photos, 537 + close_splashscreen, 538 + load_photo_meta, 539 + delete_photo, 540 + open_url, 541 + find_world_by_id, 542 + start_with_win, 543 + get_user_photos_path, 544 + change_final_path, 545 + sync_photos, 546 + get_version, 547 + relaunch 548 + ]) 549 + .run(tauri::generate_context!()) 550 + .expect("error while running tauri application"); 551 + }
+208 -148
src-tauri/src/photosync.rs
··· 1 - use std::{ fs, io::Write, path, time::Duration }; 2 1 use regex::Regex; 3 2 use reqwest; 4 3 use serde::Serialize; 5 - use serde_json::{ Value, Error }; 6 - use tauri::Manager; 4 + use serde_json::{Error, Value}; 5 + use std::{fs, io::Write, path, time::Duration}; 6 + use tauri::Emitter; 7 7 8 8 #[derive(Clone, Serialize)] 9 - struct PhotoUploadMeta{ 10 - photos_uploading: usize, 11 - photos_total: usize 9 + struct PhotoUploadMeta { 10 + photos_uploading: usize, 11 + photos_total: usize, 12 12 } 13 13 14 - pub fn sync_photos( token: String, path: path::PathBuf, window: tauri::Window ){ 15 - let sync_lock_path = dirs::home_dir().unwrap().join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager\\.sync_lock"); 16 - match fs::metadata(&sync_lock_path){ 17 - Ok(_) => { return; } 18 - Err(_) => {} 19 - } 14 + pub fn sync_photos(token: String, path: path::PathBuf, window: tauri::Window) { 15 + let sync_lock_path = dirs::home_dir() 16 + .unwrap() 17 + .join("AppData\\Roaming\\PhazeDev\\VRChatPhotoManager\\.sync_lock"); 18 + match fs::metadata(&sync_lock_path) { 19 + Ok(_) => { 20 + return; 21 + } 22 + Err(_) => {} 23 + } 24 + 25 + fs::write(&sync_lock_path, "Currently Syncing").unwrap(); 20 26 21 - fs::write(&sync_lock_path, "Currently Syncing").unwrap(); 27 + match fs::metadata(&path) { 28 + Ok(_) => {} 29 + Err(_) => { 30 + fs::create_dir(&path).unwrap(); 31 + } 32 + }; 22 33 23 - match fs::metadata(&path){ 24 - Ok(_) => {} 25 - Err(_) => { 26 - fs::create_dir(&path).unwrap(); 27 - } 28 - }; 34 + let mut photos: Vec<String> = Vec::new(); 29 35 30 - let mut photos: Vec<String> = Vec::new(); 36 + for folder in fs::read_dir(&path).unwrap() { 37 + let f = folder.unwrap(); 31 38 32 - for folder in fs::read_dir(&path).unwrap() { 33 - let f = folder.unwrap(); 39 + if f.metadata().unwrap().is_dir() { 40 + match fs::read_dir(f.path()) { 41 + Ok(dir) => { 42 + for photo in dir { 43 + let p = photo.unwrap(); 34 44 35 - if f.metadata().unwrap().is_dir() { 36 - match fs::read_dir(f.path()) { 37 - Ok(dir) => { 38 - for photo in dir { 39 - let p = photo.unwrap(); 40 - 41 - let re1 = Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}.png").unwrap(); 42 - let re2 = Regex::new( 45 + let re1 = Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}.png").unwrap(); 46 + let re2 = Regex::new( 43 47 r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png").unwrap(); 44 48 45 - if 46 - re1.is_match(p.file_name().to_str().unwrap()) || 47 - re2.is_match(p.file_name().to_str().unwrap()) 48 - { 49 - photos.push(p.file_name().into_string().unwrap()); 49 + if re1.is_match(p.file_name().to_str().unwrap()) 50 + || re2.is_match(p.file_name().to_str().unwrap()) 51 + { 52 + photos.push(p.file_name().into_string().unwrap()); 53 + } 54 + } 55 + } 56 + Err(_) => {} 50 57 } 51 - } 52 58 } 53 - Err(_) => {} 54 - } 55 59 } 56 - } 57 60 58 - let body = reqwest::blocking::get(format!("https://photos-cdn.phazed.xyz/api/v1/photos/exists?token={}", &token)).unwrap() 59 - .text().unwrap(); 61 + let body = reqwest::blocking::get(format!( 62 + "https://photos-cdn.phazed.xyz/api/v1/photos/exists?token={}", 63 + &token 64 + )) 65 + .unwrap() 66 + .text() 67 + .unwrap(); 60 68 61 - let body: Value = serde_json::from_str(&body).unwrap(); 69 + let body: Value = serde_json::from_str(&body).unwrap(); 62 70 63 - let mut photos_to_upload: Vec<String> = Vec::new(); 64 - let uploaded_photos = body["files"].as_array().unwrap(); 71 + let mut photos_to_upload: Vec<String> = Vec::new(); 72 + let uploaded_photos = body["files"].as_array().unwrap(); 65 73 66 - let photos_len = photos.len(); 74 + let photos_len = photos.len(); 67 75 68 - for photo in &photos{ 69 - let mut found_photo = false; 76 + for photo in &photos { 77 + let mut found_photo = false; 70 78 71 - for uploaded_photo in uploaded_photos{ 72 - if photo == uploaded_photo.as_str().unwrap(){ 73 - found_photo = true; 74 - break; 75 - } 76 - } 79 + for uploaded_photo in uploaded_photos { 80 + if photo == uploaded_photo.as_str().unwrap() { 81 + found_photo = true; 82 + break; 83 + } 84 + } 77 85 78 - if !found_photo { 79 - photos_to_upload.push(photo.clone()); 86 + if !found_photo { 87 + photos_to_upload.push(photo.clone()); 88 + } 80 89 } 81 - } 82 90 83 - window.emit_all("photos-upload-meta", PhotoUploadMeta { photos_uploading: photos_to_upload.len(), photos_total: photos_len }).unwrap(); 84 - let mut photos_left = photos_to_upload.len(); 91 + window 92 + .emit( 93 + "photos-upload-meta", 94 + PhotoUploadMeta { 95 + photos_uploading: photos_to_upload.len(), 96 + photos_total: photos_len, 97 + }, 98 + ) 99 + .unwrap(); 100 + let mut photos_left = photos_to_upload.len(); 85 101 86 - let client = reqwest::blocking::Client::new(); 102 + let client = reqwest::blocking::Client::new(); 87 103 88 - loop { 89 - match photos_to_upload.pop(){ 90 - Some(photo) => { 91 - let folder_name = photo.clone().replace("VRChat_", ""); 92 - let mut folder_name = folder_name.split("-"); 93 - let folder_name = format!("{}-{}", folder_name.nth(0).unwrap(), folder_name.nth(0).unwrap()); 104 + loop { 105 + match photos_to_upload.pop() { 106 + Some(photo) => { 107 + let folder_name = photo.clone().replace("VRChat_", ""); 108 + let mut folder_name = folder_name.split("-"); 109 + let folder_name = format!( 110 + "{}-{}", 111 + folder_name.nth(0).unwrap(), 112 + folder_name.nth(0).unwrap() 113 + ); 94 114 95 - let full_path = format!("{}\\{}\\{}", path.to_str().unwrap(), folder_name, photo); 96 - let file = fs::File::open(full_path); 115 + let full_path = format!("{}\\{}\\{}", path.to_str().unwrap(), folder_name, photo); 116 + let file = fs::File::open(full_path); 97 117 98 - match file{ 99 - Ok(file) => { 100 - let res = client.put(format!("https://photos-cdn.phazed.xyz/api/v1/photos?token={}", &token)) 101 - .header("Content-Type", "image/png") 102 - .header("filename", photo) 103 - .body(file) 104 - .timeout(Duration::from_secs(120)) 105 - .send().unwrap().text().unwrap(); 118 + match file { 119 + Ok(file) => { 120 + let res = client 121 + .put(format!( 122 + "https://photos-cdn.phazed.xyz/api/v1/photos?token={}", 123 + &token 124 + )) 125 + .header("Content-Type", "image/png") 126 + .header("filename", photo) 127 + .body(file) 128 + .timeout(Duration::from_secs(120)) 129 + .send() 130 + .unwrap() 131 + .text() 132 + .unwrap(); 106 133 107 - let res: Result<Value, Error> = serde_json::from_str(&res); 134 + let res: Result<Value, Error> = serde_json::from_str(&res); 108 135 109 - match res { 110 - Ok(res) => { 111 - if !res["ok"].as_bool().unwrap(){ 112 - println!("Failed to upload: {}", res["error"].as_str().unwrap()); 113 - window.emit_all("sync-failed", res["error"].as_str().unwrap()).unwrap(); 114 - break; 136 + match res { 137 + Ok(res) => { 138 + if !res["ok"].as_bool().unwrap() { 139 + println!( 140 + "Failed to upload: {}", 141 + res["error"].as_str().unwrap() 142 + ); 143 + window 144 + .emit("sync-failed", res["error"].as_str().unwrap()) 145 + .unwrap(); 146 + break; 147 + } 148 + } 149 + Err(err) => { 150 + dbg!(err); 151 + } 152 + } 153 + } 154 + Err(_) => {} 115 155 } 116 - } 117 - Err(err) => { 118 - dbg!(err); 119 - } 156 + 157 + photos_left -= 1; 158 + window 159 + .emit( 160 + "photos-upload-meta", 161 + PhotoUploadMeta { 162 + photos_uploading: photos_left, 163 + photos_total: photos_len, 164 + }, 165 + ) 166 + .unwrap(); 120 167 } 121 - } 122 - Err(_) => {} 168 + None => { 169 + break; 170 + } 123 171 } 124 - 125 - photos_left -= 1; 126 - window.emit_all("photos-upload-meta", PhotoUploadMeta { photos_uploading: photos_left, photos_total: photos_len }).unwrap(); 127 - } 128 - None => { 129 - break; 130 - } 131 172 } 132 - } 133 173 134 - println!("Finished Uploading."); 135 - let mut photos_to_download: Vec<String> = Vec::new(); 174 + println!("Finished Uploading."); 175 + let mut photos_to_download: Vec<String> = Vec::new(); 136 176 137 - for photo in uploaded_photos{ 138 - let mut found_photo = false; 139 - let photo = photo.as_str().unwrap().to_string(); 177 + for photo in uploaded_photos { 178 + let mut found_photo = false; 179 + let photo = photo.as_str().unwrap().to_string(); 140 180 141 - for uploaded_photo in &photos{ 142 - if &photo == uploaded_photo{ 143 - found_photo = true; 144 - break; 145 - } 146 - } 181 + for uploaded_photo in &photos { 182 + if &photo == uploaded_photo { 183 + found_photo = true; 184 + break; 185 + } 186 + } 147 187 148 - if !found_photo { 149 - photos_to_download.push(photo); 188 + if !found_photo { 189 + photos_to_download.push(photo); 190 + } 150 191 } 151 - } 152 192 153 - photos_to_download.reverse(); 193 + photos_to_download.reverse(); 154 194 155 - let photos_len = photos_to_download.len(); 156 - let mut photos_left = photos_to_download.len(); 195 + let photos_len = photos_to_download.len(); 196 + let mut photos_left = photos_to_download.len(); 157 197 158 - loop { 159 - match photos_to_download.pop(){ 160 - Some(photo) => { 161 - let folder_name = photo.clone().replace("VRChat_", ""); 162 - let mut folder_name = folder_name.split("-"); 163 - let folder_name = format!("{}-{}", folder_name.nth(0).unwrap(), folder_name.nth(0).unwrap()); 198 + loop { 199 + match photos_to_download.pop() { 200 + Some(photo) => { 201 + let folder_name = photo.clone().replace("VRChat_", ""); 202 + let mut folder_name = folder_name.split("-"); 203 + let folder_name = format!( 204 + "{}-{}", 205 + folder_name.nth(0).unwrap(), 206 + folder_name.nth(0).unwrap() 207 + ); 208 + 209 + let full_path = format!("{}\\{}\\{}", path.to_str().unwrap(), folder_name, photo); 210 + 211 + let res = client 212 + .get(format!( 213 + "https://photos-cdn.phazed.xyz/api/v1/photos?token={}&photo={}", 214 + &token, &photo 215 + )) 216 + .timeout(Duration::from_secs(120)) 217 + .send() 218 + .unwrap() 219 + .bytes(); 164 220 165 - let full_path = format!("{}\\{}\\{}", path.to_str().unwrap(), folder_name, photo); 221 + match res { 222 + Ok(res) => { 223 + let folder_path = format!("{}\\{}", path.to_str().unwrap(), folder_name); 224 + match fs::metadata(&folder_path) { 225 + Ok(_) => {} 226 + Err(_) => { 227 + fs::create_dir(folder_path).unwrap(); 228 + } 229 + } 166 230 167 - let res = client.get(format!("https://photos-cdn.phazed.xyz/api/v1/photos?token={}&photo={}", &token, &photo)) 168 - .timeout(Duration::from_secs(120)) 169 - .send().unwrap().bytes(); 231 + let mut file = fs::File::create(full_path).unwrap(); 232 + file.write_all(&res).unwrap(); 233 + } 234 + Err(err) => { 235 + dbg!(err); 236 + } 237 + } 170 238 171 - match res { 172 - Ok(res) => { 173 - let folder_path = format!("{}\\{}", path.to_str().unwrap(), folder_name); 174 - match fs::metadata(&folder_path){ 175 - Ok(_) => {} 176 - Err(_) => { fs::create_dir(folder_path).unwrap(); } 239 + photos_left -= 1; 240 + window 241 + .emit( 242 + "photos-download-meta", 243 + PhotoUploadMeta { 244 + photos_uploading: photos_left, 245 + photos_total: photos_len, 246 + }, 247 + ) 248 + .unwrap(); 177 249 } 178 - 179 - let mut file = fs::File::create(full_path).unwrap(); 180 - file.write_all(&res).unwrap(); 181 - } 182 - Err(err) => { 183 - dbg!(err); 184 - } 250 + None => { 251 + break; 252 + } 185 253 } 186 - 187 - photos_left -= 1; 188 - window.emit_all("photos-download-meta", PhotoUploadMeta { photos_uploading: photos_left, photos_total: photos_len }).unwrap(); 189 - } 190 - None => { 191 - break; 192 - } 193 254 } 194 - } 195 255 196 - println!("Finished Downloading."); 256 + println!("Finished Downloading."); 197 257 198 - fs::remove_file(&sync_lock_path).unwrap(); 199 - window.emit_all("sync-finished", "h").unwrap(); 200 - } 258 + fs::remove_file(&sync_lock_path).unwrap(); 259 + window.emit("sync-finished", "h").unwrap(); 260 + }
+90 -79
src-tauri/src/pngmeta.rs
··· 2 2 use std::str; 3 3 4 4 #[derive(Clone)] 5 - pub struct PNGImage{ 6 - width: u32, 7 - height: u32, 8 - bit_depth: u8, 9 - colour_type: u8, 10 - compression_method: u8, 11 - filter_method: u8, 12 - interlace_method: u8, 13 - metadata: String, 14 - path: String 5 + pub struct PNGImage { 6 + width: u32, 7 + height: u32, 8 + bit_depth: u8, 9 + colour_type: u8, 10 + compression_method: u8, 11 + filter_method: u8, 12 + interlace_method: u8, 13 + metadata: String, 14 + path: String, 15 15 } 16 16 17 - impl PNGImage{ 18 - pub fn new(buff: Vec<u8>, path: String) -> PNGImage { 19 - let mut img = PNGImage { 20 - width: 0, 21 - height: 0, 22 - bit_depth: 0, 23 - colour_type: 0, 24 - compression_method: 0, 25 - filter_method: 0, 26 - interlace_method: 0, 27 - metadata: "".to_string(), 28 - path: path 29 - }; 17 + impl PNGImage { 18 + pub fn new(buff: Vec<u8>, path: String) -> PNGImage { 19 + let mut img = PNGImage { 20 + width: 0, 21 + height: 0, 22 + bit_depth: 0, 23 + colour_type: 0, 24 + compression_method: 0, 25 + filter_method: 0, 26 + interlace_method: 0, 27 + metadata: "".to_string(), 28 + path: path, 29 + }; 30 + 31 + if buff[0] != 0x89 32 + || buff[1] != 0x50 33 + || buff[2] != 0x4E 34 + || buff[3] != 0x47 35 + || buff[4] != 0x0D 36 + || buff[5] != 0x0A 37 + || buff[6] != 0x1A 38 + || buff[7] != 0x0A 39 + { 40 + panic!("Image is not a PNG file"); 41 + } 30 42 31 - if 32 - buff[0] != 0x89 || buff[1] != 0x50 || buff[2] != 0x4E || buff[3] != 0x47 || 33 - buff[4] != 0x0D || buff[5] != 0x0A || buff[6] != 0x1A || buff[7] != 0x0A 34 - { 35 - panic!("Image is not a PNG file"); 43 + img.read_png_chunk(8, buff); 44 + 45 + img 36 46 } 37 - 38 - img.read_png_chunk(8, buff); 39 - 40 - img 41 - } 47 + 48 + fn read_png_chunk(&mut self, start_byte: usize, buff: Vec<u8>) { 49 + let data_buff = buff[start_byte..].to_vec(); 42 50 43 - fn read_png_chunk(&mut self, start_byte: usize, buff: Vec<u8>){ 44 - let data_buff = buff[start_byte..].to_vec(); 51 + let length = u32::from_le_bytes([data_buff[3], data_buff[2], data_buff[1], data_buff[0]]); 52 + let chunk_type = str::from_utf8(&data_buff[4..8]).unwrap(); 45 53 46 - let length = u32::from_le_bytes([ data_buff[3], data_buff[2], data_buff[1], data_buff[0] ]); 47 - let chunk_type = str::from_utf8(&data_buff[4..8]).unwrap(); 54 + match chunk_type { 55 + "IHDR" => { 56 + self.width = 57 + u32::from_le_bytes([data_buff[11], data_buff[10], data_buff[9], data_buff[8]]); 58 + self.height = u32::from_le_bytes([ 59 + data_buff[15], 60 + data_buff[14], 61 + data_buff[13], 62 + data_buff[12], 63 + ]); 64 + self.bit_depth = data_buff[16]; 65 + self.colour_type = data_buff[17]; 66 + self.compression_method = data_buff[18]; 67 + self.filter_method = data_buff[19]; 68 + self.interlace_method = data_buff[20]; 48 69 49 - match chunk_type{ 50 - "IHDR" => { 51 - self.width = u32::from_le_bytes([ data_buff[11], data_buff[10], data_buff[9], data_buff[8] ]); 52 - self.height = u32::from_le_bytes([ data_buff[15], data_buff[14], data_buff[13], data_buff[12] ]); 53 - self.bit_depth = data_buff[16]; 54 - self.colour_type = data_buff[17]; 55 - self.compression_method = data_buff[18]; 56 - self.filter_method = data_buff[19]; 57 - self.interlace_method = data_buff[20]; 70 + self.read_png_chunk((length + 12) as usize, data_buff); 71 + } 72 + "iTXt" => { 73 + let end_byte = (8 + length) as usize; 74 + let d = str::from_utf8(&data_buff[8..end_byte]).unwrap(); 58 75 59 - self.read_png_chunk((length + 12) as usize, data_buff); 60 - }, 61 - "iTXt" => { 62 - let end_byte = (8 + length) as usize; 63 - let d = str::from_utf8(&data_buff[8..end_byte]).unwrap(); 64 - 65 - self.metadata = d.to_string(); 76 + self.metadata = d.to_string(); 66 77 67 - self.read_png_chunk((length + 12) as usize, data_buff); 68 - }, 69 - "IEND" => {}, 70 - "IDAT" => {}, 71 - _ => { 72 - self.read_png_chunk((length + 12) as usize, data_buff); 73 - } 78 + self.read_png_chunk((length + 12) as usize, data_buff); 79 + } 80 + "IEND" => {} 81 + "IDAT" => {} 82 + _ => { 83 + self.read_png_chunk((length + 12) as usize, data_buff); 84 + } 85 + } 74 86 } 75 - } 76 87 } 77 88 78 - impl Serialize for PNGImage{ 79 - fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 80 - where 81 - S: Serializer, 82 - { 83 - let mut s = serializer.serialize_struct("PNGImage", 7)?; 84 - s.serialize_field("width", &self.width)?; 85 - s.serialize_field("height", &self.height)?; 86 - s.serialize_field("bit_depth", &self.bit_depth)?; 87 - s.serialize_field("colour_type", &self.colour_type)?; 88 - s.serialize_field("compression_method", &self.compression_method)?; 89 - s.serialize_field("filter_method", &self.filter_method)?; 90 - s.serialize_field("interlace_method", &self.interlace_method)?; 91 - s.serialize_field("metadata", &self.metadata)?; 92 - s.serialize_field("path", &self.path)?; 93 - s.end() 94 - } 95 - } 89 + impl Serialize for PNGImage { 90 + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 91 + where 92 + S: Serializer, 93 + { 94 + let mut s = serializer.serialize_struct("PNGImage", 7)?; 95 + s.serialize_field("width", &self.width)?; 96 + s.serialize_field("height", &self.height)?; 97 + s.serialize_field("bit_depth", &self.bit_depth)?; 98 + s.serialize_field("colour_type", &self.colour_type)?; 99 + s.serialize_field("compression_method", &self.compression_method)?; 100 + s.serialize_field("filter_method", &self.filter_method)?; 101 + s.serialize_field("interlace_method", &self.interlace_method)?; 102 + s.serialize_field("metadata", &self.metadata)?; 103 + s.serialize_field("path", &self.path)?; 104 + s.end() 105 + } 106 + }
+101 -97
src-tauri/src/worldscraper.rs
··· 1 - use serde::ser::{ Serialize, SerializeStruct, Serializer }; 1 + use serde::ser::{Serialize, SerializeStruct, Serializer}; 2 2 use serde_json::json; 3 3 4 4 #[derive(Clone)] 5 - pub struct World{ 6 - id: String, 7 - name: String, 8 - author: String, 9 - author_id: String, 10 - desc: String, 11 - img: String, 12 - max_users: u64, 13 - visits: u64, 14 - favourites: u64, 15 - tags: String, 16 - from: String, 17 - from_site: String, 18 - found: bool 5 + pub struct World { 6 + id: String, 7 + name: String, 8 + author: String, 9 + author_id: String, 10 + desc: String, 11 + img: String, 12 + max_users: u64, 13 + visits: u64, 14 + favourites: u64, 15 + tags: String, 16 + from: String, 17 + from_site: String, 18 + found: bool, 19 19 } 20 20 21 - impl World{ 22 - pub fn new( world_id: String ) -> World { 23 - println!("Fetching world data for {}", &world_id); 21 + impl World { 22 + pub fn new(world_id: String) -> World { 23 + println!("Fetching world data for {}", &world_id); 24 24 25 - let mut world = World { 26 - id: world_id.clone(), 27 - name: "".into(), 28 - author: "".into(), 29 - author_id: "".into(), 30 - desc: "".into(), 31 - img: "".into(), 32 - max_users: 0, 33 - visits: 0, 34 - favourites: 0, 35 - tags: "".into(), 36 - from: "https://vrclist.com/worlds/".into(), 37 - from_site: "vrclist.com".into(), 38 - found: false 39 - }; 25 + let mut world = World { 26 + id: world_id.clone(), 27 + name: "".into(), 28 + author: "".into(), 29 + author_id: "".into(), 30 + desc: "".into(), 31 + img: "".into(), 32 + max_users: 0, 33 + visits: 0, 34 + favourites: 0, 35 + tags: "".into(), 36 + from: "https://vrclist.com/worlds/".into(), 37 + from_site: "vrclist.com".into(), 38 + found: false, 39 + }; 40 40 41 - let client = reqwest::blocking::Client::new(); 41 + let client = reqwest::blocking::Client::new(); 42 42 43 - let world_id_str = world_id.to_owned(); 44 - let fixed_id_req = client.post("https://api.vrclist.com/worlds/id-convert") 45 - .header("Content-Type", "application/json") 46 - .header("User-Agent", "VRChat-Photo-Manager-Rust/0.0.1") 47 - .body(json!({ "world_id": world_id_str }).to_string()) 48 - .send() 49 - .unwrap() 50 - .text() 51 - .unwrap(); 43 + let world_id_str = world_id.to_owned(); 44 + let fixed_id_req = client 45 + .post("https://api.vrclist.com/worlds/id-convert") 46 + .header("Content-Type", "application/json") 47 + .header("User-Agent", "VRChat-Photo-Manager-Rust/0.0.1") 48 + .body(json!({ "world_id": world_id_str }).to_string()) 49 + .send() 50 + .unwrap() 51 + .text() 52 + .unwrap(); 52 53 53 - if &fixed_id_req == "" { 54 - return world; 55 - } 54 + if &fixed_id_req == "" { 55 + return world; 56 + } 56 57 57 - world.found = true; 58 + world.found = true; 58 59 59 - let fixed_id: serde_json::Value = serde_json::from_str(&fixed_id_req).unwrap(); 60 - world.from = format!("https://vrclist.com/worlds/{}", fixed_id["id"].to_string()); 60 + let fixed_id: serde_json::Value = serde_json::from_str(&fixed_id_req).unwrap(); 61 + world.from = format!("https://vrclist.com/worlds/{}", fixed_id["id"].to_string()); 61 62 62 - let world_data = client.post("https://api.vrclist.com/worlds/single") 63 - .header("Content-Type", "application/json") 64 - .header("User-Agent", "VRChat-Photo-Manager-Rust/0.0.1") 65 - .body(json!({ "id": fixed_id["id"].to_string() }).to_string()) 66 - .send() 67 - .unwrap() 68 - .text() 69 - .unwrap(); 63 + let world_data = client 64 + .post("https://api.vrclist.com/worlds/single") 65 + .header("Content-Type", "application/json") 66 + .header("User-Agent", "VRChat-Photo-Manager-Rust/0.0.1") 67 + .body(json!({ "id": fixed_id["id"].to_string() }).to_string()) 68 + .send() 69 + .unwrap() 70 + .text() 71 + .unwrap(); 70 72 71 - let world_data: serde_json::Value = serde_json::from_str(&world_data).unwrap(); 73 + let world_data: serde_json::Value = serde_json::from_str(&world_data).unwrap(); 72 74 73 - world.name = world_data["name"].to_string(); 74 - world.author = world_data["authorName"].to_string(); 75 - world.author_id = world_data["authorId"].to_string(); 76 - world.desc = world_data["description"].to_string(); 77 - world.img = world_data["imageUrl"].to_string(); 78 - world.tags = world_data["tags"].to_string(); 75 + world.name = world_data["name"].to_string(); 76 + world.author = world_data["authorName"].to_string(); 77 + world.author_id = world_data["authorId"].to_string(); 78 + world.desc = world_data["description"].to_string(); 79 + world.img = world_data["imageUrl"].to_string(); 80 + world.tags = world_data["tags"].to_string(); 79 81 80 - match world_data["vrchat_visits"].as_u64() { 81 - Some(visits) => { world.visits = visits }, 82 - None => {} 83 - } 82 + match world_data["vrchat_visits"].as_u64() { 83 + Some(visits) => world.visits = visits, 84 + None => {} 85 + } 86 + 87 + match world_data["capacity"].as_u64() { 88 + Some(cap) => { 89 + world.max_users = cap; 90 + } 91 + None => {} 92 + } 84 93 85 - match world_data["capacity"].as_u64() { 86 - Some(cap) => { world.max_users = cap; }, 87 - None => {} 94 + println!("Fetched world data for {}", &world_id); 95 + world 88 96 } 89 - 90 - println!("Fetched world data for {}", &world_id); 91 - world 92 - } 93 97 } 94 98 95 - impl Serialize for World{ 96 - fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 97 - where 98 - S: Serializer, 99 - { 100 - let mut s = serializer.serialize_struct("World", 7)?; 101 - s.serialize_field("id", &self.id)?; 102 - s.serialize_field("name", &self.name)?; 103 - s.serialize_field("author", &self.author)?; 104 - s.serialize_field("authorId", &self.author_id)?; 105 - s.serialize_field("desc", &self.desc)?; 106 - s.serialize_field("img", &self.img)?; 107 - s.serialize_field("maxUsers", &self.max_users)?; 108 - s.serialize_field("visits", &self.visits)?; 109 - s.serialize_field("favourites", &self.favourites)?; 110 - s.serialize_field("tags", &self.tags)?; 111 - s.serialize_field("from", &self.from)?; 112 - s.serialize_field("fromSite", &self.from_site)?; 113 - s.serialize_field("found", &self.found)?; 99 + impl Serialize for World { 100 + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 101 + where 102 + S: Serializer, 103 + { 104 + let mut s = serializer.serialize_struct("World", 7)?; 105 + s.serialize_field("id", &self.id)?; 106 + s.serialize_field("name", &self.name)?; 107 + s.serialize_field("author", &self.author)?; 108 + s.serialize_field("authorId", &self.author_id)?; 109 + s.serialize_field("desc", &self.desc)?; 110 + s.serialize_field("img", &self.img)?; 111 + s.serialize_field("maxUsers", &self.max_users)?; 112 + s.serialize_field("visits", &self.visits)?; 113 + s.serialize_field("favourites", &self.favourites)?; 114 + s.serialize_field("tags", &self.tags)?; 115 + s.serialize_field("from", &self.from)?; 116 + s.serialize_field("fromSite", &self.from_site)?; 117 + s.serialize_field("found", &self.found)?; 114 118 115 - s.end() 116 - } 117 - } 119 + s.end() 120 + } 121 + }
+22 -48
src-tauri/tauri.conf.json
··· 2 2 "build": { 3 3 "beforeDevCommand": "pnpm dev", 4 4 "beforeBuildCommand": "pnpm build", 5 - "devPath": "http://localhost:1420", 6 - "distDir": "../dist" 5 + "frontendDist": "../dist", 6 + "devUrl": "http://localhost:1420" 7 7 }, 8 - "package": { 9 - "productName": "vrchat-photo-manager", 10 - "version": "0.0.1" 8 + "bundle": { 9 + "active": true, 10 + "targets": "all", 11 + "icon": [ 12 + "icons/32x32.png", 13 + "icons/128x128.png", 14 + "icons/128x128@2x.png", 15 + "icons/icon.ico" 16 + ] 11 17 }, 12 - "tauri": { 13 - "systemTray": { 18 + "productName": "vrchat-photo-manager", 19 + "version": "0.0.1", 20 + "identifier": "uk.phaz.vrcpm", 21 + "plugins": {}, 22 + "app": { 23 + "security": { 24 + "csp": "https://photos.phazed.xyz; connect-src ipc: http://ipc.localhost" 25 + }, 26 + "trayIcon": { 14 27 "iconPath": "./icons/icon.ico", 15 28 "title": "VRChat Photo Manager" 16 29 }, 17 - "allowlist": { 18 - "all": false, 19 - "shell": { 20 - "all": false, 21 - "open": true 22 - }, 23 - "http": { 24 - "all": true, 25 - "request": true, 26 - "scope": [ "https://photos.phazed.xyz/*", "https://photos-cdn.phazed.xyz/*" ] 27 - }, 28 - "window": { 29 - "close": true, 30 - "hide": true, 31 - "show": true, 32 - "maximize": true, 33 - "minimize": true, 34 - "unmaximize": true, 35 - "unminimize": true, 36 - "startDragging": true 37 - }, 38 - "process": { 39 - "relaunch": true 40 - } 41 - }, 42 30 "windows": [ 43 31 { 44 32 "fullscreen": false, ··· 52 40 "decorations": false, 53 41 "transparent": true 54 42 } 55 - ], 56 - "security": { 57 - "csp": "https://photos.phazed.xyz" 58 - }, 59 - "bundle": { 60 - "active": true, 61 - "targets": "all", 62 - "identifier": "uk.phaz.vrcpm", 63 - "icon": [ 64 - "icons/32x32.png", 65 - "icons/128x128.png", 66 - "icons/128x128@2x.png", 67 - "icons/icon.ico" 68 - ] 69 - } 43 + ] 70 44 } 71 - } 45 + }
+15 -19
src/Components/App.tsx
··· 1 1 import { createSignal, createEffect, Switch, Match, onMount } from "solid-js"; 2 2 import { listen } from '@tauri-apps/api/event'; 3 - import { fetch, ResponseType } from "@tauri-apps/api/http" 3 + import { fetch } from "@tauri-apps/plugin-http" 4 4 import anime from "animejs"; 5 - import { invoke } from '@tauri-apps/api/tauri'; 5 + import { invoke } from '@tauri-apps/api/core'; 6 6 7 7 import NavBar from "./NavBar"; 8 8 import PhotoList from "./PhotoList"; ··· 36 36 } 37 37 38 38 if(localStorage.getItem('token')){ 39 - fetch<any>('https://photos.phazed.xyz/api/v1/account?token='+localStorage.getItem('token'), { 40 - method: 'GET', 41 - responseType: ResponseType.JSON 42 - }) 39 + fetch('https://photos.phazed.xyz/api/v1/account?token='+localStorage.getItem('token')) 40 + .then(data => data.json()) 43 41 .then(data => { 44 - if(!data.data.ok){ 42 + if(!data.ok){ 45 43 return console.error(data); 46 44 } 47 45 48 46 console.log(data.data); 49 - setLoggedIn({ loggedIn: true, username: data.data.user.username, avatar: data.data.user.avatar, id: data.data.user._id, serverVersion: data.data.user.serverVersion }); 50 - setStorageInfo({ storage: data.data.user.storage, used: data.data.user.used, sync: data.data.user.settings.enableSync }); 47 + setLoggedIn({ loggedIn: true, username: data.user.username, avatar: data.user.avatar, id: data.user._id, serverVersion: data.user.serverVersion }); 48 + setStorageInfo({ storage: data.user.storage, used: data.user.used, sync: data.user.settings.enableSync }); 51 49 52 - if(!isPhotosSyncing() && data.data.user.settings.enableSync){ 50 + if(!isPhotosSyncing() && data.user.settings.enableSync){ 53 51 setIsPhotosSyncing(true); 54 52 invoke('sync_photos', { token: localStorage.getItem('token') }); 55 53 } ··· 115 113 listen('auth-callback', ( event: any ) => { 116 114 let token = event.payload; 117 115 118 - fetch<any>('https://photos.phazed.xyz/api/v1/account?token='+token, { 119 - method: 'GET', 120 - responseType: ResponseType.JSON 121 - }) 116 + fetch('https://photos.phazed.xyz/api/v1/account?token='+token) 117 + .then(data => data.json()) 122 118 .then(data => { 123 - if(!data.data.ok){ 119 + if(!data.ok){ 124 120 console.error(data); 125 121 return setLoadingType('none'); 126 122 } 127 123 128 - console.log(data.data); 124 + console.log(data); 129 125 localStorage.setItem('token', token); 130 126 131 127 setLoadingType('none'); 132 - setLoggedIn({ loggedIn: true, username: data.data.user.username, avatar: data.data.user.avatar, id: data.data.user._id, serverVersion: data.data.user.serverVersion }); 133 - setStorageInfo({ storage: data.data.user.storage, used: data.data.user.used, sync: data.data.user.settings.enableSync }); 128 + setLoggedIn({ loggedIn: true, username: data.user.username, avatar: data.user.avatar, id: data.user._id, serverVersion: data.user.serverVersion }); 129 + setStorageInfo({ storage: data.user.storage, used: data.user.used, sync: data.user.settings.enableSync }); 134 130 135 - if(!isPhotosSyncing() && data.data.user.settings.enableSync){ 131 + if(!isPhotosSyncing() && data.user.settings.enableSync){ 136 132 setIsPhotosSyncing(true); 137 133 invoke('sync_photos', { token: localStorage.getItem('token') }); 138 134 }
+8 -11
src/Components/NavBar.tsx
··· 1 - import { invoke } from '@tauri-apps/api/tauri'; 1 + import { invoke } from '@tauri-apps/api/core'; 2 2 import { listen } from '@tauri-apps/api/event'; 3 - import { fetch, ResponseType } from "@tauri-apps/api/http"; 4 - import { appWindow } from '@tauri-apps/api/window'; 3 + import { fetch } from "@tauri-apps/plugin-http"; 4 + import { getCurrentWebviewWindow } from '@tauri-apps/api/webviewWindow'; 5 5 import anime from 'animejs'; 6 6 import { Show, createSignal, onMount } from 'solid-js'; 7 + const appWindow = getCurrentWebviewWindow() 7 8 8 9 class NavBarProps{ 9 10 setLoadingType!: ( type: string ) => string; ··· 156 157 duration: 250 157 158 }) 158 159 159 - fetch<any>('https://photos.phazed.xyz/api/v1/account?token='+localStorage.getItem('token')!, { 160 - method: 'GET', 161 - responseType: ResponseType.JSON 162 - }) 160 + fetch('https://photos.phazed.xyz/api/v1/account?token='+localStorage.getItem('token')!) 161 + .then(data => data.json()) 163 162 .then(data => { 164 163 if(!data.data.ok){ 165 164 console.error(data); ··· 178 177 179 178 <Show when={props.loggedIn().loggedIn == false} fallback={ 180 179 <div class="dropdown-button" onClick={() => { 181 - fetch<any>('https://photos.phazed.xyz/api/v1/deauth?token='+localStorage.getItem('token')!, { 182 - method: 'DELETE', 183 - responseType: ResponseType.JSON 184 - }) 180 + fetch('https://photos.phazed.xyz/api/v1/deauth?token='+localStorage.getItem('token')!) 181 + .then(data => data.json()) 185 182 .then(data => { 186 183 console.log(data); 187 184
+4 -2
src/Components/PhotoList.tsx
··· 1 1 import { createEffect, onMount } from "solid-js"; 2 - import { invoke } from '@tauri-apps/api/tauri'; 2 + import { invoke } from '@tauri-apps/api/core'; 3 3 import { listen } from '@tauri-apps/api/event'; 4 4 5 5 import anime from "animejs"; ··· 25 25 setIsPhotosSyncing!: ( syncing: boolean ) => boolean; 26 26 } 27 27 28 + // TODO: Photo filtering / Searching (By users, By date, By world) 28 29 let PhotoList = ( props: PhotoListProps ) => { 29 30 let amountLoaded = 0; 30 31 let imagesLoading = 0; ··· 106 107 107 108 this.imageEl = document.createElement('img'); 108 109 this.imageEl.crossOrigin = 'anonymous'; 109 - this.imageEl.src = 'https://photo.localhost/' + photoPath + this.path; 110 + 111 + this.imageEl.src = "http://photo.localhost/" + photoPath + this.path; 110 112 111 113 this.imageEl.onload = () => { 112 114 this.image!.width = this.scaledWidth!;
+3 -2
src/Components/PhotoViewer.tsx
··· 1 1 import { For, Show, createEffect, onMount } from "solid-js"; 2 - import { invoke } from '@tauri-apps/api/tauri'; 2 + import { invoke } from '@tauri-apps/api/core'; 3 3 import { listen } from '@tauri-apps/api/event'; 4 4 import anime from 'animejs'; 5 5 ··· 33 33 34 34 let worldCache: WorldCache[] = JSON.parse(localStorage.getItem('worldCache') || "[]"); 35 35 36 + // TODO: Context Menu, (Open file in explorer, Copy Image) 36 37 let PhotoViewer = ( props: PhotoViewerProps ) => { 37 38 let viewer: HTMLElement; 38 39 let imageViewer: HTMLElement; ··· 116 117 if(!photoPath) 117 118 photoPath = await invoke('get_user_photos_path') + '/'; 118 119 119 - imageViewer.style.background = 'url(\'https://photo.localhost/' + (photoPath + props.currentPhotoView().path).split('\\').join('/') +'\')'; 120 + imageViewer.style.background = 'url(\'http://photo.localhost/' + (photoPath + props.currentPhotoView().path).split('\\').join('/') +'\')'; 120 121 })(); 121 122 122 123 anime({
+10 -12
src/Components/SettingsMenu.tsx
··· 1 1 import { createSignal, onMount, Show } from "solid-js"; 2 2 import { bytesToFormatted } from "../utils"; 3 - import { invoke } from '@tauri-apps/api/tauri'; 3 + import { invoke } from '@tauri-apps/api/core'; 4 4 import anime from "animejs"; 5 - import { fetch, ResponseType } from "@tauri-apps/api/http" 5 + import { fetch } from "@tauri-apps/plugin-http" 6 6 7 7 class SettingsMenuProps{ 8 8 setLoadingType!: ( type: string ) => string; ··· 171 171 }) 172 172 173 173 let refreshAccount = () => { 174 - fetch<any>('https://photos.phazed.xyz/api/v1/account?token='+localStorage.getItem('token')!, { 175 - method: 'GET', 176 - responseType: ResponseType.JSON 177 - }) 174 + fetch('https://photos.phazed.xyz/api/v1/account?token='+localStorage.getItem('token')!) 175 + .then(data => data.json()) 178 176 .then(data => { 179 - if(!data.data.ok){ 177 + if(!data.ok){ 180 178 console.error(data); 181 179 return; 182 180 } 183 181 184 182 console.log(data.data); 185 - props.setLoggedIn({ loggedIn: true, username: data.data.user.username, avatar: data.data.user.avatar, id: data.data.user._id, serverVersion: data.data.user.serverVersion }); 186 - props.setStorageInfo({ storage: data.data.user.storage, used: data.data.user.used, sync: data.data.user.settings.enableSync }); 183 + props.setLoggedIn({ loggedIn: true, username: data.user.username, avatar: data.user.avatar, id: data.user._id, serverVersion: data.user.serverVersion }); 184 + props.setStorageInfo({ storage: data.user.storage, used: data.user.used, sync: data.user.settings.enableSync }); 187 185 }) 188 186 .catch(e => { 189 187 console.error(e); ··· 375 373 props.setStorageInfo({ used: 0, storage: 0, sync: false }); 376 374 setDeletingPhotos(true); 377 375 378 - fetch<any>('https://photos-cdn.phazed.xyz/api/v1/allphotos', { 376 + fetch('https://photos-cdn.phazed.xyz/api/v1/allphotos', { 379 377 method: 'DELETE', 380 - headers: { auth: localStorage.getItem("token")! }, 381 - responseType: ResponseType.JSON 378 + headers: { auth: localStorage.getItem("token")! } 382 379 }) 380 + .then(data => data.json()) 383 381 .then(data => { 384 382 console.log(data); 385 383 setDeletingPhotos(false);
+1
src/styles.css
··· 69 69 } 70 70 71 71 .control-lights .light{ 72 + user-select: none; 72 73 font-size: 20px; 73 74 text-align: center; 74 75 color: white;