A photo manager for VRChat.

remove account stuff / remove auto updater

+9 -7
build-release.sh
··· 6 NO_STRIP=true pnpm tauri build 7 8 # Windows builds 9 - pnpm tauri build --target x86_64-pc-windows-gnu 10 - pnpm tauri build --debug --target x86_64-pc-windows-gnu 11 12 # Move Files 13 14 mkdir builds 15 mkdir builds/$VERSION 16 17 - mv src-tauri/target/release/bundle/appimage/vrchat-photo-manager_0.0.1_amd64.AppImage builds/$VERSION/vrchat-photo-manager_linux_amd64.AppImage 18 - mv src-tauri/target/release/bundle/deb/vrchat-photo-manager_0.0.1_amd64.deb builds/$VERSION/vrchat-photo-manager_linux_amd64.deb 19 - mv src-tauri/target/release/bundle/rpm/vrchat-photo-manager-0.0.1-1.x86_64.rpm builds/$VERSION/vrchat-photo-manager_linux_x86_64.rpm 20 21 - mv src-tauri/target/x86_64-pc-windows-gnu/release/VRChatPhotoManager.exe builds/$VERSION/vrcpm-$VERSION.exe 22 - mv src-tauri/target/x86_64-pc-windows-gnu/debug/VRChatPhotoManager.exe builds/$VERSION/vrcpm-$VERSION-debug.exe
··· 6 NO_STRIP=true pnpm tauri build 7 8 # Windows builds 9 + pnpm tauri build --runner cargo-xwin --target x86_64-pc-windows-msvc 10 + pnpm tauri build --debug --runner cargo-xwin --target x86_64-pc-windows-msvc 11 12 # Move Files 13 14 mkdir builds 15 mkdir builds/$VERSION 16 17 + mv src-tauri/target/release/bundle/appimage/vrchat-photo-manager_0.0.1_amd64.AppImage builds/$VERSION/vrcpm-$VERSION.AppImage 18 + mv src-tauri/target/release/bundle/deb/vrchat-photo-manager_0.0.1_amd64.deb builds/$VERSION/vrcpm-$VERSION.deb 19 + mv src-tauri/target/release/bundle/rpm/vrchat-photo-manager-0.0.1-1.x86_64.rpm builds/$VERSION/vrcpm-$VERSION.rpm 20 21 + mv src-tauri/target/x86_64-pc-windows-msvc/release/VRChatPhotoManager.exe builds/$VERSION/vrcpm-$VERSION.exe 22 + mv src-tauri/target/x86_64-pc-windows-msvc/debug/VRChatPhotoManager.exe builds/$VERSION/vrcpm-$VERSION-debug.exe 23 + 24 + mv src-tauri/target/x86_64-pc-windows-msvc/release/bundle/nsis/vrchat-photo-manager_0.0.1_x64-setup.exe builds/$VERSION/vrcpm-$VERSION-setup.exe
+4 -2
changelog
··· 95 - Fixed the "Start with windows" button appearing on linux 96 - Fixed linux tray icon title 97 - Fixed build-release.sh script outputting the wrong names for windows builds 98 - - Fixed clipboard on linux ( and speeded it up on windows ) 99 - - Fixed some icons not fading out when moving to the settings menu
··· 95 - Fixed the "Start with windows" button appearing on linux 96 - Fixed linux tray icon title 97 - Fixed build-release.sh script outputting the wrong names for windows builds 98 + - Fixed clipboard on linux ( and sped it up on windows ) 99 + - Fixed some icons not fading out when moving to the settings menu 100 + - Removed the auto updater 101 + - Removed account login stuff
+2 -2
package.json
··· 19 "@tauri-apps/plugin-shell": "2.0.0-rc.0", 20 "@types/animejs": "^3.1.13", 21 "animejs": "^3.2.2", 22 - "solid-js": "^1.9.7" 23 }, 24 "devDependencies": { 25 "@tauri-apps/cli": "2.0.0-rc.5", 26 - "typescript": "^5.8.3", 27 "vite": "^5.4.19", 28 "vite-plugin-solid": "^2.11.8" 29 }
··· 19 "@tauri-apps/plugin-shell": "2.0.0-rc.0", 20 "@types/animejs": "^3.1.13", 21 "animejs": "^3.2.2", 22 + "solid-js": "^1.9.9" 23 }, 24 "devDependencies": { 25 "@tauri-apps/cli": "2.0.0-rc.5", 26 + "typescript": "^5.9.2", 27 "vite": "^5.4.19", 28 "vite-plugin-solid": "^2.11.8" 29 }
+104 -98
pnpm-lock.yaml
··· 30 specifier: ^3.2.2 31 version: 3.2.2 32 solid-js: 33 - specifier: ^1.9.7 34 - version: 1.9.7 35 devDependencies: 36 '@tauri-apps/cli': 37 specifier: 2.0.0-rc.5 38 version: 2.0.0-rc.5 39 typescript: 40 - specifier: ^5.8.3 41 - version: 5.8.3 42 vite: 43 specifier: ^5.4.19 44 version: 5.4.19 45 vite-plugin-solid: 46 specifier: ^2.11.8 47 - version: 2.11.8(solid-js@1.9.7)(vite@5.4.19) 48 49 packages: 50 ··· 60 resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} 61 engines: {node: '>=6.9.0'} 62 63 - '@babel/core@7.28.0': 64 - resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} 65 engines: {node: '>=6.9.0'} 66 67 - '@babel/generator@7.28.0': 68 - resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} 69 engines: {node: '>=6.9.0'} 70 71 '@babel/helper-compilation-targets@7.27.2': ··· 84 resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} 85 engines: {node: '>=6.9.0'} 86 87 - '@babel/helper-module-transforms@7.27.3': 88 - resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} 89 engines: {node: '>=6.9.0'} 90 peerDependencies: 91 '@babel/core': ^7.0.0 ··· 106 resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} 107 engines: {node: '>=6.9.0'} 108 109 - '@babel/helpers@7.28.2': 110 - resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} 111 engines: {node: '>=6.9.0'} 112 113 - '@babel/parser@7.28.0': 114 - resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} 115 engines: {node: '>=6.0.0'} 116 hasBin: true 117 ··· 125 resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} 126 engines: {node: '>=6.9.0'} 127 128 - '@babel/traverse@7.28.0': 129 - resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} 130 engines: {node: '>=6.9.0'} 131 132 '@babel/types@7.28.2': ··· 271 cpu: [x64] 272 os: [win32] 273 274 - '@jridgewell/gen-mapping@0.3.12': 275 - resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} 276 277 '@jridgewell/resolve-uri@3.1.2': 278 resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 279 engines: {node: '>=6.0.0'} 280 281 - '@jridgewell/sourcemap-codec@1.5.4': 282 - resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} 283 284 - '@jridgewell/trace-mapping@0.3.29': 285 - resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} 286 287 '@rollup/rollup-android-arm-eabi@4.46.2': 288 resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} ··· 480 '@types/babel__template@7.4.4': 481 resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 482 483 - '@types/babel__traverse@7.20.7': 484 - resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} 485 486 '@types/estree@1.0.8': 487 resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} ··· 489 animejs@3.2.2: 490 resolution: {integrity: sha512-Ao95qWLpDPXXM+WrmwcKbl6uNlC5tjnowlaRYtuVDHHoygjtIPfDUoK9NthrlZsQSKjZXlmji2TrBUAVbiH0LQ==} 491 492 - babel-plugin-jsx-dom-expressions@0.39.8: 493 - resolution: {integrity: sha512-/MVOIIjonylDXnrWmG23ZX82m9mtKATsVHB7zYlPfDR9Vdd/NBE48if+wv27bSkBtyO7EPMUlcUc4J63QwuACQ==} 494 peerDependencies: 495 '@babel/core': ^7.20.12 496 497 - babel-preset-solid@1.9.6: 498 - resolution: {integrity: sha512-HXTK9f93QxoH8dYn1M2mJdOlWgMsR88Lg/ul6QCZGkNTktjTE5HAf93YxQumHoCudLEtZrU1cFCMFOVho6GqFg==} 499 peerDependencies: 500 '@babel/core': ^7.0.0 501 502 - browserslist@4.25.1: 503 - resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} 504 engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 505 hasBin: true 506 507 - caniuse-lite@1.0.30001731: 508 - resolution: {integrity: sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==} 509 510 convert-source-map@2.0.0: 511 resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} ··· 522 supports-color: 523 optional: true 524 525 - electron-to-chromium@1.5.193: 526 - resolution: {integrity: sha512-eePuBZXM9OVCwfYUhd2OzESeNGnWmLyeu0XAEjf7xjijNjHFdeJSzuRUGN4ueT2tEYo5YqjHramKEFxz67p3XA==} 527 528 entities@6.0.1: 529 resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} ··· 614 resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} 615 engines: {node: '>=10'} 616 617 - solid-js@1.9.7: 618 - resolution: {integrity: sha512-/saTKi8iWEM233n5OSi1YHCCuh66ZIQ7aK2hsToPe4tqGm7qAejU1SwNuTPivbWAYq7SjuHVVYxxuZQNRbICiw==} 619 620 solid-refresh@0.6.3: 621 resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} ··· 626 resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 627 engines: {node: '>=0.10.0'} 628 629 - typescript@5.8.3: 630 - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} 631 engines: {node: '>=14.17'} 632 hasBin: true 633 ··· 696 697 '@ampproject/remapping@2.3.0': 698 dependencies: 699 - '@jridgewell/gen-mapping': 0.3.12 700 - '@jridgewell/trace-mapping': 0.3.29 701 702 '@babel/code-frame@7.27.1': 703 dependencies: ··· 707 708 '@babel/compat-data@7.28.0': {} 709 710 - '@babel/core@7.28.0': 711 dependencies: 712 '@ampproject/remapping': 2.3.0 713 '@babel/code-frame': 7.27.1 714 - '@babel/generator': 7.28.0 715 '@babel/helper-compilation-targets': 7.27.2 716 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) 717 - '@babel/helpers': 7.28.2 718 - '@babel/parser': 7.28.0 719 '@babel/template': 7.27.2 720 - '@babel/traverse': 7.28.0 721 '@babel/types': 7.28.2 722 convert-source-map: 2.0.0 723 debug: 4.4.1 ··· 727 transitivePeerDependencies: 728 - supports-color 729 730 - '@babel/generator@7.28.0': 731 dependencies: 732 - '@babel/parser': 7.28.0 733 '@babel/types': 7.28.2 734 - '@jridgewell/gen-mapping': 0.3.12 735 - '@jridgewell/trace-mapping': 0.3.29 736 jsesc: 3.1.0 737 738 '@babel/helper-compilation-targets@7.27.2': 739 dependencies: 740 '@babel/compat-data': 7.28.0 741 '@babel/helper-validator-option': 7.27.1 742 - browserslist: 4.25.1 743 lru-cache: 5.1.1 744 semver: 6.3.1 745 ··· 751 752 '@babel/helper-module-imports@7.27.1': 753 dependencies: 754 - '@babel/traverse': 7.28.0 755 '@babel/types': 7.28.2 756 transitivePeerDependencies: 757 - supports-color 758 759 - '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': 760 dependencies: 761 - '@babel/core': 7.28.0 762 '@babel/helper-module-imports': 7.27.1 763 '@babel/helper-validator-identifier': 7.27.1 764 - '@babel/traverse': 7.28.0 765 transitivePeerDependencies: 766 - supports-color 767 ··· 773 774 '@babel/helper-validator-option@7.27.1': {} 775 776 - '@babel/helpers@7.28.2': 777 dependencies: 778 '@babel/template': 7.27.2 779 '@babel/types': 7.28.2 780 781 - '@babel/parser@7.28.0': 782 dependencies: 783 '@babel/types': 7.28.2 784 785 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': 786 dependencies: 787 - '@babel/core': 7.28.0 788 '@babel/helper-plugin-utils': 7.27.1 789 790 '@babel/template@7.27.2': 791 dependencies: 792 '@babel/code-frame': 7.27.1 793 - '@babel/parser': 7.28.0 794 '@babel/types': 7.28.2 795 796 - '@babel/traverse@7.28.0': 797 dependencies: 798 '@babel/code-frame': 7.27.1 799 - '@babel/generator': 7.28.0 800 '@babel/helper-globals': 7.28.0 801 - '@babel/parser': 7.28.0 802 '@babel/template': 7.27.2 803 '@babel/types': 7.28.2 804 debug: 4.4.1 ··· 879 '@esbuild/win32-x64@0.21.5': 880 optional: true 881 882 - '@jridgewell/gen-mapping@0.3.12': 883 dependencies: 884 - '@jridgewell/sourcemap-codec': 1.5.4 885 - '@jridgewell/trace-mapping': 0.3.29 886 887 '@jridgewell/resolve-uri@3.1.2': {} 888 889 - '@jridgewell/sourcemap-codec@1.5.4': {} 890 891 - '@jridgewell/trace-mapping@0.3.29': 892 dependencies: 893 '@jridgewell/resolve-uri': 3.1.2 894 - '@jridgewell/sourcemap-codec': 1.5.4 895 896 '@rollup/rollup-android-arm-eabi@4.46.2': 897 optional: true ··· 1020 1021 '@types/babel__core@7.20.5': 1022 dependencies: 1023 - '@babel/parser': 7.28.0 1024 '@babel/types': 7.28.2 1025 '@types/babel__generator': 7.27.0 1026 '@types/babel__template': 7.4.4 1027 - '@types/babel__traverse': 7.20.7 1028 1029 '@types/babel__generator@7.27.0': 1030 dependencies: ··· 1032 1033 '@types/babel__template@7.4.4': 1034 dependencies: 1035 - '@babel/parser': 7.28.0 1036 '@babel/types': 7.28.2 1037 1038 - '@types/babel__traverse@7.20.7': 1039 dependencies: 1040 '@babel/types': 7.28.2 1041 ··· 1043 1044 animejs@3.2.2: {} 1045 1046 - babel-plugin-jsx-dom-expressions@0.39.8(@babel/core@7.28.0): 1047 dependencies: 1048 - '@babel/core': 7.28.0 1049 '@babel/helper-module-imports': 7.18.6 1050 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) 1051 '@babel/types': 7.28.2 1052 html-entities: 2.3.3 1053 parse5: 7.3.0 1054 validate-html-nesting: 1.2.3 1055 1056 - babel-preset-solid@1.9.6(@babel/core@7.28.0): 1057 dependencies: 1058 - '@babel/core': 7.28.0 1059 - babel-plugin-jsx-dom-expressions: 0.39.8(@babel/core@7.28.0) 1060 1061 - browserslist@4.25.1: 1062 dependencies: 1063 - caniuse-lite: 1.0.30001731 1064 - electron-to-chromium: 1.5.193 1065 node-releases: 2.0.19 1066 - update-browserslist-db: 1.1.3(browserslist@4.25.1) 1067 1068 - caniuse-lite@1.0.30001731: {} 1069 1070 convert-source-map@2.0.0: {} 1071 ··· 1075 dependencies: 1076 ms: 2.1.3 1077 1078 - electron-to-chromium@1.5.193: {} 1079 1080 entities@6.0.1: {} 1081 ··· 1182 1183 seroval@1.3.2: {} 1184 1185 - solid-js@1.9.7: 1186 dependencies: 1187 csstype: 3.1.3 1188 seroval: 1.3.2 1189 seroval-plugins: 1.3.2(seroval@1.3.2) 1190 1191 - solid-refresh@0.6.3(solid-js@1.9.7): 1192 dependencies: 1193 - '@babel/generator': 7.28.0 1194 '@babel/helper-module-imports': 7.27.1 1195 '@babel/types': 7.28.2 1196 - solid-js: 1.9.7 1197 transitivePeerDependencies: 1198 - supports-color 1199 1200 source-map-js@1.2.1: {} 1201 1202 - typescript@5.8.3: {} 1203 1204 - update-browserslist-db@1.1.3(browserslist@4.25.1): 1205 dependencies: 1206 - browserslist: 4.25.1 1207 escalade: 3.2.0 1208 picocolors: 1.1.1 1209 1210 validate-html-nesting@1.2.3: {} 1211 1212 - vite-plugin-solid@2.11.8(solid-js@1.9.7)(vite@5.4.19): 1213 dependencies: 1214 - '@babel/core': 7.28.0 1215 '@types/babel__core': 7.20.5 1216 - babel-preset-solid: 1.9.6(@babel/core@7.28.0) 1217 merge-anything: 5.1.7 1218 - solid-js: 1.9.7 1219 - solid-refresh: 0.6.3(solid-js@1.9.7) 1220 vite: 5.4.19 1221 vitefu: 1.1.1(vite@5.4.19) 1222 transitivePeerDependencies:
··· 30 specifier: ^3.2.2 31 version: 3.2.2 32 solid-js: 33 + specifier: ^1.9.9 34 + version: 1.9.9 35 devDependencies: 36 '@tauri-apps/cli': 37 specifier: 2.0.0-rc.5 38 version: 2.0.0-rc.5 39 typescript: 40 + specifier: ^5.9.2 41 + version: 5.9.2 42 vite: 43 specifier: ^5.4.19 44 version: 5.4.19 45 vite-plugin-solid: 46 specifier: ^2.11.8 47 + version: 2.11.8(solid-js@1.9.9)(vite@5.4.19) 48 49 packages: 50 ··· 60 resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} 61 engines: {node: '>=6.9.0'} 62 63 + '@babel/core@7.28.3': 64 + resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} 65 engines: {node: '>=6.9.0'} 66 67 + '@babel/generator@7.28.3': 68 + resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} 69 engines: {node: '>=6.9.0'} 70 71 '@babel/helper-compilation-targets@7.27.2': ··· 84 resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} 85 engines: {node: '>=6.9.0'} 86 87 + '@babel/helper-module-transforms@7.28.3': 88 + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} 89 engines: {node: '>=6.9.0'} 90 peerDependencies: 91 '@babel/core': ^7.0.0 ··· 106 resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} 107 engines: {node: '>=6.9.0'} 108 109 + '@babel/helpers@7.28.3': 110 + resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==} 111 engines: {node: '>=6.9.0'} 112 113 + '@babel/parser@7.28.3': 114 + resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} 115 engines: {node: '>=6.0.0'} 116 hasBin: true 117 ··· 125 resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} 126 engines: {node: '>=6.9.0'} 127 128 + '@babel/traverse@7.28.3': 129 + resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} 130 engines: {node: '>=6.9.0'} 131 132 '@babel/types@7.28.2': ··· 271 cpu: [x64] 272 os: [win32] 273 274 + '@jridgewell/gen-mapping@0.3.13': 275 + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 276 277 '@jridgewell/resolve-uri@3.1.2': 278 resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 279 engines: {node: '>=6.0.0'} 280 281 + '@jridgewell/sourcemap-codec@1.5.5': 282 + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 283 284 + '@jridgewell/trace-mapping@0.3.30': 285 + resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} 286 287 '@rollup/rollup-android-arm-eabi@4.46.2': 288 resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} ··· 480 '@types/babel__template@7.4.4': 481 resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 482 483 + '@types/babel__traverse@7.28.0': 484 + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} 485 486 '@types/estree@1.0.8': 487 resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} ··· 489 animejs@3.2.2: 490 resolution: {integrity: sha512-Ao95qWLpDPXXM+WrmwcKbl6uNlC5tjnowlaRYtuVDHHoygjtIPfDUoK9NthrlZsQSKjZXlmji2TrBUAVbiH0LQ==} 491 492 + babel-plugin-jsx-dom-expressions@0.40.1: 493 + resolution: {integrity: sha512-b4iHuirqK7RgaMzB2Lsl7MqrlDgQtVRSSazyrmx7wB3T759ggGjod5Rkok5MfHjQXhR7tRPmdwoeGPqBnW2KfA==} 494 peerDependencies: 495 '@babel/core': ^7.20.12 496 497 + babel-preset-solid@1.9.9: 498 + resolution: {integrity: sha512-pCnxWrciluXCeli/dj5PIEHgbNzim3evtTn12snjqqg8QZWJNMjH1AWIp4iG/tbVjqQ72aBEymMSagvmgxubXw==} 499 peerDependencies: 500 '@babel/core': ^7.0.0 501 + solid-js: ^1.9.8 502 + peerDependenciesMeta: 503 + solid-js: 504 + optional: true 505 506 + browserslist@4.25.2: 507 + resolution: {integrity: sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==} 508 engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 509 hasBin: true 510 511 + caniuse-lite@1.0.30001735: 512 + resolution: {integrity: sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==} 513 514 convert-source-map@2.0.0: 515 resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} ··· 526 supports-color: 527 optional: true 528 529 + electron-to-chromium@1.5.202: 530 + resolution: {integrity: sha512-NxbYjRmiHcHXV1Ws3fWUW+SLb62isauajk45LUJ/HgIOkUA7jLZu/X2Iif+X9FBNK8QkF9Zb4Q2mcwXCcY30mg==} 531 532 entities@6.0.1: 533 resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} ··· 618 resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} 619 engines: {node: '>=10'} 620 621 + solid-js@1.9.9: 622 + resolution: {integrity: sha512-A0ZBPJQldAeGCTW0YRYJmt7RCeh5rbFfPZ2aOttgYnctHE7HgKeHCBB/PVc2P7eOfmNXqMFFFoYYdm3S4dcbkA==} 623 624 solid-refresh@0.6.3: 625 resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} ··· 630 resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 631 engines: {node: '>=0.10.0'} 632 633 + typescript@5.9.2: 634 + resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} 635 engines: {node: '>=14.17'} 636 hasBin: true 637 ··· 700 701 '@ampproject/remapping@2.3.0': 702 dependencies: 703 + '@jridgewell/gen-mapping': 0.3.13 704 + '@jridgewell/trace-mapping': 0.3.30 705 706 '@babel/code-frame@7.27.1': 707 dependencies: ··· 711 712 '@babel/compat-data@7.28.0': {} 713 714 + '@babel/core@7.28.3': 715 dependencies: 716 '@ampproject/remapping': 2.3.0 717 '@babel/code-frame': 7.27.1 718 + '@babel/generator': 7.28.3 719 '@babel/helper-compilation-targets': 7.27.2 720 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) 721 + '@babel/helpers': 7.28.3 722 + '@babel/parser': 7.28.3 723 '@babel/template': 7.27.2 724 + '@babel/traverse': 7.28.3 725 '@babel/types': 7.28.2 726 convert-source-map: 2.0.0 727 debug: 4.4.1 ··· 731 transitivePeerDependencies: 732 - supports-color 733 734 + '@babel/generator@7.28.3': 735 dependencies: 736 + '@babel/parser': 7.28.3 737 '@babel/types': 7.28.2 738 + '@jridgewell/gen-mapping': 0.3.13 739 + '@jridgewell/trace-mapping': 0.3.30 740 jsesc: 3.1.0 741 742 '@babel/helper-compilation-targets@7.27.2': 743 dependencies: 744 '@babel/compat-data': 7.28.0 745 '@babel/helper-validator-option': 7.27.1 746 + browserslist: 4.25.2 747 lru-cache: 5.1.1 748 semver: 6.3.1 749 ··· 755 756 '@babel/helper-module-imports@7.27.1': 757 dependencies: 758 + '@babel/traverse': 7.28.3 759 '@babel/types': 7.28.2 760 transitivePeerDependencies: 761 - supports-color 762 763 + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)': 764 dependencies: 765 + '@babel/core': 7.28.3 766 '@babel/helper-module-imports': 7.27.1 767 '@babel/helper-validator-identifier': 7.27.1 768 + '@babel/traverse': 7.28.3 769 transitivePeerDependencies: 770 - supports-color 771 ··· 777 778 '@babel/helper-validator-option@7.27.1': {} 779 780 + '@babel/helpers@7.28.3': 781 dependencies: 782 '@babel/template': 7.27.2 783 '@babel/types': 7.28.2 784 785 + '@babel/parser@7.28.3': 786 dependencies: 787 '@babel/types': 7.28.2 788 789 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.3)': 790 dependencies: 791 + '@babel/core': 7.28.3 792 '@babel/helper-plugin-utils': 7.27.1 793 794 '@babel/template@7.27.2': 795 dependencies: 796 '@babel/code-frame': 7.27.1 797 + '@babel/parser': 7.28.3 798 '@babel/types': 7.28.2 799 800 + '@babel/traverse@7.28.3': 801 dependencies: 802 '@babel/code-frame': 7.27.1 803 + '@babel/generator': 7.28.3 804 '@babel/helper-globals': 7.28.0 805 + '@babel/parser': 7.28.3 806 '@babel/template': 7.27.2 807 '@babel/types': 7.28.2 808 debug: 4.4.1 ··· 883 '@esbuild/win32-x64@0.21.5': 884 optional: true 885 886 + '@jridgewell/gen-mapping@0.3.13': 887 dependencies: 888 + '@jridgewell/sourcemap-codec': 1.5.5 889 + '@jridgewell/trace-mapping': 0.3.30 890 891 '@jridgewell/resolve-uri@3.1.2': {} 892 893 + '@jridgewell/sourcemap-codec@1.5.5': {} 894 895 + '@jridgewell/trace-mapping@0.3.30': 896 dependencies: 897 '@jridgewell/resolve-uri': 3.1.2 898 + '@jridgewell/sourcemap-codec': 1.5.5 899 900 '@rollup/rollup-android-arm-eabi@4.46.2': 901 optional: true ··· 1024 1025 '@types/babel__core@7.20.5': 1026 dependencies: 1027 + '@babel/parser': 7.28.3 1028 '@babel/types': 7.28.2 1029 '@types/babel__generator': 7.27.0 1030 '@types/babel__template': 7.4.4 1031 + '@types/babel__traverse': 7.28.0 1032 1033 '@types/babel__generator@7.27.0': 1034 dependencies: ··· 1036 1037 '@types/babel__template@7.4.4': 1038 dependencies: 1039 + '@babel/parser': 7.28.3 1040 '@babel/types': 7.28.2 1041 1042 + '@types/babel__traverse@7.28.0': 1043 dependencies: 1044 '@babel/types': 7.28.2 1045 ··· 1047 1048 animejs@3.2.2: {} 1049 1050 + babel-plugin-jsx-dom-expressions@0.40.1(@babel/core@7.28.3): 1051 dependencies: 1052 + '@babel/core': 7.28.3 1053 '@babel/helper-module-imports': 7.18.6 1054 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.3) 1055 '@babel/types': 7.28.2 1056 html-entities: 2.3.3 1057 parse5: 7.3.0 1058 validate-html-nesting: 1.2.3 1059 1060 + babel-preset-solid@1.9.9(@babel/core@7.28.3)(solid-js@1.9.9): 1061 dependencies: 1062 + '@babel/core': 7.28.3 1063 + babel-plugin-jsx-dom-expressions: 0.40.1(@babel/core@7.28.3) 1064 + optionalDependencies: 1065 + solid-js: 1.9.9 1066 1067 + browserslist@4.25.2: 1068 dependencies: 1069 + caniuse-lite: 1.0.30001735 1070 + electron-to-chromium: 1.5.202 1071 node-releases: 2.0.19 1072 + update-browserslist-db: 1.1.3(browserslist@4.25.2) 1073 1074 + caniuse-lite@1.0.30001735: {} 1075 1076 convert-source-map@2.0.0: {} 1077 ··· 1081 dependencies: 1082 ms: 2.1.3 1083 1084 + electron-to-chromium@1.5.202: {} 1085 1086 entities@6.0.1: {} 1087 ··· 1188 1189 seroval@1.3.2: {} 1190 1191 + solid-js@1.9.9: 1192 dependencies: 1193 csstype: 3.1.3 1194 seroval: 1.3.2 1195 seroval-plugins: 1.3.2(seroval@1.3.2) 1196 1197 + solid-refresh@0.6.3(solid-js@1.9.9): 1198 dependencies: 1199 + '@babel/generator': 7.28.3 1200 '@babel/helper-module-imports': 7.27.1 1201 '@babel/types': 7.28.2 1202 + solid-js: 1.9.9 1203 transitivePeerDependencies: 1204 - supports-color 1205 1206 source-map-js@1.2.1: {} 1207 1208 + typescript@5.9.2: {} 1209 1210 + update-browserslist-db@1.1.3(browserslist@4.25.2): 1211 dependencies: 1212 + browserslist: 4.25.2 1213 escalade: 3.2.0 1214 picocolors: 1.1.1 1215 1216 validate-html-nesting@1.2.3: {} 1217 1218 + vite-plugin-solid@2.11.8(solid-js@1.9.9)(vite@5.4.19): 1219 dependencies: 1220 + '@babel/core': 7.28.3 1221 '@types/babel__core': 7.20.5 1222 + babel-preset-solid: 1.9.9(@babel/core@7.28.3)(solid-js@1.9.9) 1223 merge-anything: 5.1.7 1224 + solid-js: 1.9.9 1225 + solid-refresh: 0.6.3(solid-js@1.9.9) 1226 vite: 5.4.19 1227 vitefu: 1.1.1(vite@5.4.19) 1228 transitivePeerDependencies:
+228 -249
src-tauri/Cargo.lock
··· 91 92 [[package]] 93 name = "anyhow" 94 - version = "1.0.98" 95 source = "registry+https://github.com/rust-lang/crates.io-index" 96 - checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" 97 98 [[package]] 99 name = "arbitrary" 100 - version = "1.4.1" 101 source = "registry+https://github.com/rust-lang/crates.io-index" 102 - checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" 103 104 [[package]] 105 name = "arboard" ··· 110 "clipboard-win", 111 "image", 112 "log", 113 - "objc2 0.6.1", 114 "objc2-app-kit", 115 "objc2-core-foundation", 116 "objc2-core-graphics", ··· 129 dependencies = [ 130 "proc-macro2", 131 "quote", 132 - "syn 2.0.104", 133 ] 134 135 [[package]] ··· 177 ] 178 179 [[package]] 180 - name = "async-fs" 181 - version = "2.1.3" 182 - source = "registry+https://github.com/rust-lang/crates.io-index" 183 - checksum = "09f7e37c0ed80b2a977691c47dae8625cfb21e205827106c64f7c588766b2e50" 184 - dependencies = [ 185 - "async-lock", 186 - "blocking", 187 - "futures-lite", 188 - ] 189 - 190 - [[package]] 191 name = "async-io" 192 version = "2.5.0" 193 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 207 208 [[package]] 209 name = "async-lock" 210 - version = "3.4.0" 211 source = "registry+https://github.com/rust-lang/crates.io-index" 212 - checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" 213 dependencies = [ 214 "event-listener", 215 "event-listener-strategy", ··· 242 dependencies = [ 243 "proc-macro2", 244 "quote", 245 - "syn 2.0.104", 246 ] 247 248 [[package]] ··· 271 272 [[package]] 273 name = "async-trait" 274 - version = "0.1.88" 275 source = "registry+https://github.com/rust-lang/crates.io-index" 276 - checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" 277 dependencies = [ 278 "proc-macro2", 279 "quote", 280 - "syn 2.0.104", 281 ] 282 283 [[package]] ··· 331 332 [[package]] 333 name = "avif-serialize" 334 - version = "0.8.5" 335 source = "registry+https://github.com/rust-lang/crates.io-index" 336 - checksum = "2ea8ef51aced2b9191c08197f55450d830876d9933f8f48a429b354f1d496b42" 337 dependencies = [ 338 "arrayvec", 339 ] ··· 416 source = "registry+https://github.com/rust-lang/crates.io-index" 417 checksum = "340d2f0bdb2a43c1d3cd40513185b2bd7def0aa1052f956455114bc98f82dcf2" 418 dependencies = [ 419 - "objc2 0.6.1", 420 ] 421 422 [[package]] ··· 467 468 [[package]] 469 name = "bytemuck" 470 - version = "1.23.1" 471 source = "registry+https://github.com/rust-lang/crates.io-index" 472 - checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" 473 474 [[package]] 475 name = "byteorder" ··· 519 520 [[package]] 521 name = "camino" 522 - version = "1.1.10" 523 source = "registry+https://github.com/rust-lang/crates.io-index" 524 - checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" 525 dependencies = [ 526 "serde", 527 ] ··· 546 "semver", 547 "serde", 548 "serde_json", 549 - "thiserror 2.0.12", 550 ] 551 552 [[package]] ··· 556 checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" 557 dependencies = [ 558 "serde", 559 - "toml 0.9.4", 560 ] 561 562 [[package]] 563 name = "cc" 564 - version = "1.2.30" 565 source = "registry+https://github.com/rust-lang/crates.io-index" 566 - checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" 567 dependencies = [ 568 "jobserver", 569 "libc", ··· 853 checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" 854 dependencies = [ 855 "quote", 856 - "syn 2.0.104", 857 ] 858 859 [[package]] ··· 863 checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" 864 dependencies = [ 865 "quote", 866 - "syn 2.0.104", 867 ] 868 869 [[package]] ··· 887 "proc-macro2", 888 "quote", 889 "strsim", 890 - "syn 2.0.104", 891 ] 892 893 [[package]] ··· 898 dependencies = [ 899 "darling_core", 900 "quote", 901 - "syn 2.0.104", 902 ] 903 904 [[package]] ··· 918 ] 919 920 [[package]] 921 - name = "derivative" 922 - version = "2.2.0" 923 - source = "registry+https://github.com/rust-lang/crates.io-index" 924 - checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 925 - dependencies = [ 926 - "proc-macro2", 927 - "quote", 928 - "syn 1.0.109", 929 - ] 930 - 931 - [[package]] 932 name = "derive_more" 933 version = "0.99.20" 934 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 938 "proc-macro2", 939 "quote", 940 "rustc_version", 941 - "syn 2.0.104", 942 ] 943 944 [[package]] ··· 1006 checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" 1007 dependencies = [ 1008 "bitflags 2.9.1", 1009 - "objc2 0.6.1", 1010 ] 1011 1012 [[package]] ··· 1017 dependencies = [ 1018 "proc-macro2", 1019 "quote", 1020 - "syn 2.0.104", 1021 ] 1022 1023 [[package]] ··· 1040 dependencies = [ 1041 "proc-macro2", 1042 "quote", 1043 - "syn 2.0.104", 1044 ] 1045 1046 [[package]] ··· 1112 "cc", 1113 "memchr", 1114 "rustc_version", 1115 - "toml 0.9.4", 1116 "vswhom", 1117 "winreg", 1118 ] ··· 1156 dependencies = [ 1157 "proc-macro2", 1158 "quote", 1159 - "syn 2.0.104", 1160 ] 1161 1162 [[package]] ··· 1176 dependencies = [ 1177 "proc-macro2", 1178 "quote", 1179 - "syn 2.0.104", 1180 ] 1181 1182 [[package]] ··· 1213 1214 [[package]] 1215 name = "event-listener" 1216 - version = "5.4.0" 1217 source = "registry+https://github.com/rust-lang/crates.io-index" 1218 - checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" 1219 dependencies = [ 1220 "concurrent-queue", 1221 "parking", ··· 1341 dependencies = [ 1342 "proc-macro2", 1343 "quote", 1344 - "syn 2.0.104", 1345 ] 1346 1347 [[package]] ··· 1419 1420 [[package]] 1421 name = "futures-lite" 1422 - version = "2.6.0" 1423 source = "registry+https://github.com/rust-lang/crates.io-index" 1424 - checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" 1425 dependencies = [ 1426 "fastrand", 1427 "futures-core", ··· 1438 dependencies = [ 1439 "proc-macro2", 1440 "quote", 1441 - "syn 2.0.104", 1442 ] 1443 1444 [[package]] ··· 1714 checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" 1715 dependencies = [ 1716 "heck 0.4.1", 1717 - "proc-macro-crate 2.0.2", 1718 "proc-macro-error", 1719 "proc-macro2", 1720 "quote", 1721 - "syn 2.0.104", 1722 ] 1723 1724 [[package]] ··· 1733 1734 [[package]] 1735 name = "glob" 1736 - version = "0.3.2" 1737 source = "registry+https://github.com/rust-lang/crates.io-index" 1738 - checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" 1739 1740 [[package]] 1741 name = "gobject-sys" ··· 1797 "proc-macro-error", 1798 "proc-macro2", 1799 "quote", 1800 - "syn 2.0.104", 1801 ] 1802 1803 [[package]] 1804 name = "h2" 1805 - version = "0.4.11" 1806 source = "registry+https://github.com/rust-lang/crates.io-index" 1807 - checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" 1808 dependencies = [ 1809 "atomic-waker", 1810 "bytes", ··· 1843 1844 [[package]] 1845 name = "hashbrown" 1846 - version = "0.15.4" 1847 source = "registry+https://github.com/rust-lang/crates.io-index" 1848 - checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" 1849 1850 [[package]] 1851 name = "heck" ··· 2206 checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" 2207 dependencies = [ 2208 "equivalent", 2209 - "hashbrown 0.15.4", 2210 "serde", 2211 ] 2212 ··· 2247 dependencies = [ 2248 "proc-macro2", 2249 "quote", 2250 - "syn 2.0.104", 2251 ] 2252 2253 [[package]] ··· 2485 2486 [[package]] 2487 name = "libc" 2488 - version = "0.2.174" 2489 source = "registry+https://github.com/rust-lang/crates.io-index" 2490 - checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" 2491 2492 [[package]] 2493 name = "libfuzzer-sys" ··· 2603 dependencies = [ 2604 "proc-macro2", 2605 "quote", 2606 - "syn 2.0.104", 2607 ] 2608 2609 [[package]] ··· 2703 "dpi", 2704 "gtk", 2705 "keyboard-types", 2706 - "objc2 0.6.1", 2707 "objc2-app-kit", 2708 "objc2-core-foundation", 2709 "objc2-foundation 0.3.1", 2710 "once_cell", 2711 "png", 2712 "serde", 2713 - "thiserror 2.0.12", 2714 "windows-sys 0.60.2", 2715 ] 2716 ··· 2769 2770 [[package]] 2771 name = "nix" 2772 - version = "0.27.1" 2773 source = "registry+https://github.com/rust-lang/crates.io-index" 2774 - checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" 2775 dependencies = [ 2776 "bitflags 2.9.1", 2777 "cfg-if", 2778 "libc", 2779 "memoffset", 2780 ] ··· 2844 dependencies = [ 2845 "proc-macro2", 2846 "quote", 2847 - "syn 2.0.104", 2848 ] 2849 2850 [[package]] ··· 2892 source = "registry+https://github.com/rust-lang/crates.io-index" 2893 checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" 2894 dependencies = [ 2895 - "proc-macro-crate 2.0.2", 2896 "proc-macro2", 2897 "quote", 2898 - "syn 2.0.104", 2899 ] 2900 2901 [[package]] ··· 2916 2917 [[package]] 2918 name = "objc2" 2919 - version = "0.6.1" 2920 source = "registry+https://github.com/rust-lang/crates.io-index" 2921 - checksum = "88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551" 2922 dependencies = [ 2923 "objc2-encode", 2924 "objc2-exception-helper", ··· 2933 "bitflags 2.9.1", 2934 "block2 0.6.1", 2935 "libc", 2936 - "objc2 0.6.1", 2937 "objc2-cloud-kit", 2938 "objc2-core-data", 2939 "objc2-core-foundation", ··· 2950 checksum = "17614fdcd9b411e6ff1117dfb1d0150f908ba83a7df81b1f118005fe0a8ea15d" 2951 dependencies = [ 2952 "bitflags 2.9.1", 2953 - "objc2 0.6.1", 2954 "objc2-foundation 0.3.1", 2955 ] 2956 ··· 2961 checksum = "291fbbf7d29287518e8686417cf7239c74700fd4b607623140a7d4a3c834329d" 2962 dependencies = [ 2963 "bitflags 2.9.1", 2964 - "objc2 0.6.1", 2965 "objc2-foundation 0.3.1", 2966 ] 2967 ··· 2973 dependencies = [ 2974 "bitflags 2.9.1", 2975 "dispatch2", 2976 - "objc2 0.6.1", 2977 ] 2978 2979 [[package]] ··· 2984 dependencies = [ 2985 "bitflags 2.9.1", 2986 "dispatch2", 2987 - "objc2 0.6.1", 2988 "objc2-core-foundation", 2989 "objc2-io-surface", 2990 ] ··· 2995 source = "registry+https://github.com/rust-lang/crates.io-index" 2996 checksum = "79b3dc0cc4386b6ccf21c157591b34a7f44c8e75b064f85502901ab2188c007e" 2997 dependencies = [ 2998 - "objc2 0.6.1", 2999 "objc2-foundation 0.3.1", 3000 ] 3001 ··· 3035 "bitflags 2.9.1", 3036 "block2 0.6.1", 3037 "libc", 3038 - "objc2 0.6.1", 3039 "objc2-core-foundation", 3040 ] 3041 ··· 3046 checksum = "7282e9ac92529fa3457ce90ebb15f4ecbc383e8338060960760fa2cf75420c3c" 3047 dependencies = [ 3048 "bitflags 2.9.1", 3049 - "objc2 0.6.1", 3050 "objc2-core-foundation", 3051 ] 3052 ··· 3082 checksum = "90ffb6a0cd5f182dc964334388560b12a57f7b74b3e2dec5e2722aa2dfb2ccd5" 3083 dependencies = [ 3084 "bitflags 2.9.1", 3085 - "objc2 0.6.1", 3086 "objc2-foundation 0.3.1", 3087 ] 3088 ··· 3093 checksum = "25b1312ad7bc8a0e92adae17aa10f90aae1fb618832f9b993b022b591027daed" 3094 dependencies = [ 3095 "bitflags 2.9.1", 3096 - "objc2 0.6.1", 3097 "objc2-core-foundation", 3098 "objc2-foundation 0.3.1", 3099 ] ··· 3106 dependencies = [ 3107 "bitflags 2.9.1", 3108 "block2 0.6.1", 3109 - "objc2 0.6.1", 3110 "objc2-app-kit", 3111 "objc2-core-foundation", 3112 "objc2-foundation 0.3.1", ··· 3162 dependencies = [ 3163 "proc-macro2", 3164 "quote", 3165 - "syn 2.0.104", 3166 ] 3167 3168 [[package]] ··· 3395 "phf_shared 0.11.3", 3396 "proc-macro2", 3397 "quote", 3398 - "syn 2.0.104", 3399 ] 3400 3401 [[package]] ··· 3482 3483 [[package]] 3484 name = "polling" 3485 - version = "3.9.0" 3486 source = "registry+https://github.com/rust-lang/crates.io-index" 3487 - checksum = "8ee9b2fa7a4517d2c91ff5bc6c297a427a96749d15f98fcdbb22c05571a4d4b7" 3488 dependencies = [ 3489 "cfg-if", 3490 "concurrent-queue", ··· 3536 3537 [[package]] 3538 name = "proc-macro-crate" 3539 - version = "2.0.2" 3540 source = "registry+https://github.com/rust-lang/crates.io-index" 3541 - checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" 3542 dependencies = [ 3543 - "toml_datetime 0.6.3", 3544 "toml_edit 0.20.2", 3545 ] 3546 3547 [[package]] ··· 3576 3577 [[package]] 3578 name = "proc-macro2" 3579 - version = "1.0.95" 3580 source = "registry+https://github.com/rust-lang/crates.io-index" 3581 - checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" 3582 dependencies = [ 3583 "unicode-ident", 3584 ] ··· 3599 checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" 3600 dependencies = [ 3601 "quote", 3602 - "syn 2.0.104", 3603 ] 3604 3605 [[package]] ··· 3635 3636 [[package]] 3637 name = "quick-xml" 3638 - version = "0.38.0" 3639 source = "registry+https://github.com/rust-lang/crates.io-index" 3640 - checksum = "8927b0664f5c5a98265138b7e3f90aa19a6b21353182469ace36d4ac527b7b1b" 3641 dependencies = [ 3642 "memchr", 3643 ] ··· 3656 "rustc-hash", 3657 "rustls", 3658 "socket2 0.5.10", 3659 - "thiserror 2.0.12", 3660 "tokio", 3661 "tracing", 3662 "web-time", ··· 3677 "rustls", 3678 "rustls-pki-types", 3679 "slab", 3680 - "thiserror 2.0.12", 3681 "tinyvec", 3682 "tracing", 3683 "web-time", ··· 3880 3881 [[package]] 3882 name = "rayon" 3883 - version = "1.10.0" 3884 source = "registry+https://github.com/rust-lang/crates.io-index" 3885 - checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" 3886 dependencies = [ 3887 "either", 3888 "rayon-core", ··· 3890 3891 [[package]] 3892 name = "rayon-core" 3893 - version = "1.12.1" 3894 source = "registry+https://github.com/rust-lang/crates.io-index" 3895 - checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 3896 dependencies = [ 3897 "crossbeam-deque", 3898 "crossbeam-utils", ··· 3926 dependencies = [ 3927 "getrandom 0.2.16", 3928 "libredox", 3929 - "thiserror 2.0.12", 3930 ] 3931 3932 [[package]] ··· 3946 dependencies = [ 3947 "proc-macro2", 3948 "quote", 3949 - "syn 2.0.104", 3950 ] 3951 3952 [[package]] ··· 3980 3981 [[package]] 3982 name = "reqwest" 3983 - version = "0.12.22" 3984 source = "registry+https://github.com/rust-lang/crates.io-index" 3985 - checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" 3986 dependencies = [ 3987 "base64 0.22.1", 3988 "bytes", ··· 4142 4143 [[package]] 4144 name = "rustversion" 4145 - version = "1.0.21" 4146 source = "registry+https://github.com/rust-lang/crates.io-index" 4147 - checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" 4148 4149 [[package]] 4150 name = "ryu" ··· 4218 "proc-macro2", 4219 "quote", 4220 "serde_derive_internals", 4221 - "syn 2.0.104", 4222 ] 4223 4224 [[package]] ··· 4288 4289 [[package]] 4290 name = "serde-untagged" 4291 - version = "0.1.7" 4292 source = "registry+https://github.com/rust-lang/crates.io-index" 4293 - checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e" 4294 dependencies = [ 4295 "erased-serde", 4296 "serde", ··· 4305 dependencies = [ 4306 "proc-macro2", 4307 "quote", 4308 - "syn 2.0.104", 4309 ] 4310 4311 [[package]] ··· 4316 dependencies = [ 4317 "proc-macro2", 4318 "quote", 4319 - "syn 2.0.104", 4320 ] 4321 4322 [[package]] 4323 name = "serde_json" 4324 - version = "1.0.141" 4325 source = "registry+https://github.com/rust-lang/crates.io-index" 4326 - checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" 4327 dependencies = [ 4328 "itoa", 4329 "memchr", ··· 4339 dependencies = [ 4340 "proc-macro2", 4341 "quote", 4342 - "syn 2.0.104", 4343 ] 4344 4345 [[package]] ··· 4401 "darling", 4402 "proc-macro2", 4403 "quote", 4404 - "syn 2.0.104", 4405 ] 4406 4407 [[package]] ··· 4437 ] 4438 4439 [[package]] 4440 - name = "sha1" 4441 - version = "0.10.6" 4442 - source = "registry+https://github.com/rust-lang/crates.io-index" 4443 - checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 4444 - dependencies = [ 4445 - "cfg-if", 4446 - "cpufeatures", 4447 - "digest", 4448 - ] 4449 - 4450 - [[package]] 4451 name = "sha2" 4452 version = "0.10.9" 4453 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4498 4499 [[package]] 4500 name = "signal-hook-registry" 4501 - version = "1.4.5" 4502 source = "registry+https://github.com/rust-lang/crates.io-index" 4503 - checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" 4504 dependencies = [ 4505 "libc", 4506 ] ··· 4534 4535 [[package]] 4536 name = "slab" 4537 - version = "0.4.10" 4538 source = "registry+https://github.com/rust-lang/crates.io-index" 4539 - checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" 4540 4541 [[package]] 4542 name = "smallvec" ··· 4685 4686 [[package]] 4687 name = "syn" 4688 - version = "2.0.104" 4689 source = "registry+https://github.com/rust-lang/crates.io-index" 4690 - checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" 4691 dependencies = [ 4692 "proc-macro2", 4693 "quote", ··· 4711 dependencies = [ 4712 "proc-macro2", 4713 "quote", 4714 - "syn 2.0.104", 4715 ] 4716 4717 [[package]] ··· 4771 "ndk", 4772 "ndk-context", 4773 "ndk-sys", 4774 - "objc2 0.6.1", 4775 "objc2-app-kit", 4776 "objc2-foundation 0.3.1", 4777 "once_cell", ··· 4795 dependencies = [ 4796 "proc-macro2", 4797 "quote", 4798 - "syn 2.0.104", 4799 ] 4800 4801 [[package]] ··· 4826 "log", 4827 "mime", 4828 "muda", 4829 - "objc2 0.6.1", 4830 "objc2-app-kit", 4831 "objc2-foundation 0.3.1", 4832 "objc2-ui-kit", ··· 4844 "tauri-runtime", 4845 "tauri-runtime-wry", 4846 "tauri-utils", 4847 - "thiserror 2.0.12", 4848 "tokio", 4849 "tray-icon", 4850 "url", ··· 4895 "serde", 4896 "serde_json", 4897 "sha2", 4898 - "syn 2.0.104", 4899 "tauri-utils", 4900 - "thiserror 2.0.12", 4901 "time", 4902 "url", 4903 "uuid", ··· 4913 "heck 0.5.0", 4914 "proc-macro2", 4915 "quote", 4916 - "syn 2.0.104", 4917 "tauri-codegen", 4918 "tauri-utils", 4919 ] ··· 4948 "tauri", 4949 "tauri-plugin", 4950 "tauri-utils", 4951 - "thiserror 2.0.12", 4952 "tracing", 4953 "url", 4954 "windows-registry", ··· 4972 "tauri", 4973 "tauri-plugin", 4974 "tauri-utils", 4975 - "thiserror 2.0.12", 4976 "toml 0.8.2", 4977 "url", 4978 ] ··· 4995 "tauri", 4996 "tauri-plugin", 4997 "tauri-plugin-fs", 4998 - "thiserror 2.0.12", 4999 "tokio", 5000 "url", 5001 "urlpattern", ··· 5028 "shared_child", 5029 "tauri", 5030 "tauri-plugin", 5031 - "thiserror 2.0.12", 5032 "tokio", 5033 ] 5034 5035 [[package]] 5036 name = "tauri-plugin-single-instance" 5037 - version = "2.2.0" 5038 source = "registry+https://github.com/rust-lang/crates.io-index" 5039 - checksum = "0f36019ee9832dc99e4450bb55a21cfad8633b19c2c18bd17c7741939b070ede" 5040 dependencies = [ 5041 "serde", 5042 "serde_json", 5043 "tauri", 5044 "tauri-plugin-deep-link", 5045 - "thiserror 2.0.12", 5046 "tracing", 5047 - "windows-sys 0.59.0", 5048 "zbus", 5049 ] 5050 ··· 5059 "gtk", 5060 "http", 5061 "jni", 5062 - "objc2 0.6.1", 5063 "objc2-ui-kit", 5064 "raw-window-handle", 5065 "serde", 5066 "serde_json", 5067 "tauri-utils", 5068 - "thiserror 2.0.12", 5069 "url", 5070 "windows", 5071 ] ··· 5080 "http", 5081 "jni", 5082 "log", 5083 - "objc2 0.6.1", 5084 "objc2-app-kit", 5085 "objc2-foundation 0.3.1", 5086 "once_cell", ··· 5127 "serde_json", 5128 "serde_with", 5129 "swift-rs", 5130 - "thiserror 2.0.12", 5131 "toml 0.8.2", 5132 "url", 5133 "urlpattern", ··· 5137 5138 [[package]] 5139 name = "tauri-winres" 5140 - version = "0.3.2" 5141 source = "registry+https://github.com/rust-lang/crates.io-index" 5142 - checksum = "7c6d9028d41d4de835e3c482c677a8cb88137ac435d6ff9a71f392d4421576c9" 5143 dependencies = [ 5144 "embed-resource", 5145 - "indexmap 2.10.0", 5146 - "toml 0.9.4", 5147 ] 5148 5149 [[package]] ··· 5181 5182 [[package]] 5183 name = "thiserror" 5184 - version = "2.0.12" 5185 source = "registry+https://github.com/rust-lang/crates.io-index" 5186 - checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" 5187 dependencies = [ 5188 - "thiserror-impl 2.0.12", 5189 ] 5190 5191 [[package]] ··· 5196 dependencies = [ 5197 "proc-macro2", 5198 "quote", 5199 - "syn 2.0.104", 5200 ] 5201 5202 [[package]] 5203 name = "thiserror-impl" 5204 - version = "2.0.12" 5205 source = "registry+https://github.com/rust-lang/crates.io-index" 5206 - checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" 5207 dependencies = [ 5208 "proc-macro2", 5209 "quote", 5210 - "syn 2.0.104", 5211 ] 5212 5213 [[package]] ··· 5288 5289 [[package]] 5290 name = "tokio" 5291 - version = "1.47.0" 5292 source = "registry+https://github.com/rust-lang/crates.io-index" 5293 - checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35" 5294 dependencies = [ 5295 "backtrace", 5296 "bytes", ··· 5312 dependencies = [ 5313 "proc-macro2", 5314 "quote", 5315 - "syn 2.0.104", 5316 ] 5317 5318 [[package]] ··· 5337 5338 [[package]] 5339 name = "tokio-util" 5340 - version = "0.7.15" 5341 source = "registry+https://github.com/rust-lang/crates.io-index" 5342 - checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" 5343 dependencies = [ 5344 "bytes", 5345 "futures-core", ··· 5356 dependencies = [ 5357 "serde", 5358 "serde_spanned 0.6.9", 5359 - "toml_datetime 0.6.3", 5360 "toml_edit 0.20.2", 5361 ] 5362 5363 [[package]] 5364 name = "toml" 5365 - version = "0.9.4" 5366 source = "registry+https://github.com/rust-lang/crates.io-index" 5367 - checksum = "41ae868b5a0f67631c14589f7e250c1ea2c574ee5ba21c6c8dd4b1485705a5a1" 5368 dependencies = [ 5369 "indexmap 2.10.0", 5370 "serde", ··· 5377 5378 [[package]] 5379 name = "toml_datetime" 5380 - version = "0.6.3" 5381 source = "registry+https://github.com/rust-lang/crates.io-index" 5382 - checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" 5383 dependencies = [ 5384 "serde", 5385 ] ··· 5400 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 5401 dependencies = [ 5402 "indexmap 2.10.0", 5403 - "toml_datetime 0.6.3", 5404 "winnow 0.5.40", 5405 ] 5406 ··· 5413 "indexmap 2.10.0", 5414 "serde", 5415 "serde_spanned 0.6.9", 5416 - "toml_datetime 0.6.3", 5417 "winnow 0.5.40", 5418 ] 5419 5420 [[package]] 5421 name = "toml_parser" 5422 - version = "1.0.1" 5423 source = "registry+https://github.com/rust-lang/crates.io-index" 5424 - checksum = "97200572db069e74c512a14117b296ba0a80a30123fbbb5aa1f4a348f639ca30" 5425 dependencies = [ 5426 "winnow 0.7.12", 5427 ] ··· 5496 dependencies = [ 5497 "proc-macro2", 5498 "quote", 5499 - "syn 2.0.104", 5500 ] 5501 5502 [[package]] ··· 5518 "dirs 6.0.0", 5519 "libappindicator", 5520 "muda", 5521 - "objc2 0.6.1", 5522 "objc2-app-kit", 5523 "objc2-core-foundation", 5524 "objc2-core-graphics", ··· 5526 "once_cell", 5527 "png", 5528 "serde", 5529 - "thiserror 2.0.12", 5530 "windows-sys 0.59.0", 5531 ] 5532 ··· 5656 5657 [[package]] 5658 name = "uuid" 5659 - version = "1.17.0" 5660 source = "registry+https://github.com/rust-lang/crates.io-index" 5661 - checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" 5662 dependencies = [ 5663 "getrandom 0.3.3", 5664 "js-sys", ··· 5777 "log", 5778 "proc-macro2", 5779 "quote", 5780 - "syn 2.0.104", 5781 "wasm-bindgen-shared", 5782 ] 5783 ··· 5812 dependencies = [ 5813 "proc-macro2", 5814 "quote", 5815 - "syn 2.0.104", 5816 "wasm-bindgen-backend", 5817 "wasm-bindgen-shared", 5818 ] ··· 5934 dependencies = [ 5935 "proc-macro2", 5936 "quote", 5937 - "syn 2.0.104", 5938 ] 5939 5940 [[package]] ··· 5943 source = "registry+https://github.com/rust-lang/crates.io-index" 5944 checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" 5945 dependencies = [ 5946 - "thiserror 2.0.12", 5947 "windows", 5948 "windows-core", 5949 ] ··· 5991 source = "registry+https://github.com/rust-lang/crates.io-index" 5992 checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" 5993 dependencies = [ 5994 - "objc2 0.6.1", 5995 "objc2-app-kit", 5996 "objc2-core-foundation", 5997 "objc2-foundation 0.3.1", ··· 6054 dependencies = [ 6055 "proc-macro2", 6056 "quote", 6057 - "syn 2.0.104", 6058 ] 6059 6060 [[package]] ··· 6065 dependencies = [ 6066 "proc-macro2", 6067 "quote", 6068 - "syn 2.0.104", 6069 ] 6070 6071 [[package]] ··· 6433 version = "0.7.12" 6434 source = "registry+https://github.com/rust-lang/crates.io-index" 6435 checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" 6436 6437 [[package]] 6438 name = "winreg" ··· 6480 "kuchikiki", 6481 "libc", 6482 "ndk", 6483 - "objc2 0.6.1", 6484 "objc2-app-kit", 6485 "objc2-core-foundation", 6486 "objc2-foundation 0.3.1", ··· 6492 "sha2", 6493 "soup3", 6494 "tao-macros", 6495 - "thiserror 2.0.12", 6496 "url", 6497 "webkit2gtk", 6498 "webkit2gtk-sys", ··· 6542 checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" 6543 6544 [[package]] 6545 - name = "xdg-home" 6546 - version = "1.3.0" 6547 - source = "registry+https://github.com/rust-lang/crates.io-index" 6548 - checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" 6549 - dependencies = [ 6550 - "libc", 6551 - "windows-sys 0.59.0", 6552 - ] 6553 - 6554 - [[package]] 6555 name = "yoke" 6556 version = "0.8.0" 6557 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6571 dependencies = [ 6572 "proc-macro2", 6573 "quote", 6574 - "syn 2.0.104", 6575 "synstructure", 6576 ] 6577 6578 [[package]] 6579 name = "zbus" 6580 - version = "4.0.1" 6581 source = "registry+https://github.com/rust-lang/crates.io-index" 6582 - checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030" 6583 dependencies = [ 6584 "async-broadcast", 6585 "async-executor", 6586 - "async-fs", 6587 "async-io", 6588 "async-lock", 6589 "async-process", ··· 6591 "async-task", 6592 "async-trait", 6593 "blocking", 6594 - "derivative", 6595 "enumflags2", 6596 "event-listener", 6597 "futures-core", 6598 - "futures-sink", 6599 - "futures-util", 6600 "hex", 6601 "nix", 6602 "ordered-stream", 6603 - "rand 0.8.5", 6604 "serde", 6605 "serde_repr", 6606 - "sha1", 6607 - "static_assertions", 6608 "tracing", 6609 "uds_windows", 6610 - "windows-sys 0.52.0", 6611 - "xdg-home", 6612 "zbus_macros", 6613 "zbus_names", 6614 "zvariant", ··· 6616 6617 [[package]] 6618 name = "zbus_macros" 6619 - version = "4.0.1" 6620 source = "registry+https://github.com/rust-lang/crates.io-index" 6621 - checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7" 6622 dependencies = [ 6623 - "proc-macro-crate 1.3.1", 6624 "proc-macro2", 6625 "quote", 6626 - "regex", 6627 - "syn 1.0.109", 6628 "zvariant_utils", 6629 ] 6630 6631 [[package]] 6632 name = "zbus_names" 6633 - version = "3.0.0" 6634 source = "registry+https://github.com/rust-lang/crates.io-index" 6635 - checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" 6636 dependencies = [ 6637 "serde", 6638 "static_assertions", 6639 "zvariant", 6640 ] 6641 ··· 6656 dependencies = [ 6657 "proc-macro2", 6658 "quote", 6659 - "syn 2.0.104", 6660 ] 6661 6662 [[package]] ··· 6676 dependencies = [ 6677 "proc-macro2", 6678 "quote", 6679 - "syn 2.0.104", 6680 "synstructure", 6681 ] 6682 ··· 6699 6700 [[package]] 6701 name = "zerovec" 6702 - version = "0.11.2" 6703 source = "registry+https://github.com/rust-lang/crates.io-index" 6704 - checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" 6705 dependencies = [ 6706 "yoke", 6707 "zerofrom", ··· 6716 dependencies = [ 6717 "proc-macro2", 6718 "quote", 6719 - "syn 2.0.104", 6720 ] 6721 6722 [[package]] ··· 6745 6746 [[package]] 6747 name = "zvariant" 6748 - version = "4.0.0" 6749 source = "registry+https://github.com/rust-lang/crates.io-index" 6750 - checksum = "4e09e8be97d44eeab994d752f341e67b3b0d80512a8b315a0671d47232ef1b65" 6751 dependencies = [ 6752 "endi", 6753 "enumflags2", 6754 "serde", 6755 - "static_assertions", 6756 "zvariant_derive", 6757 ] 6758 6759 [[package]] 6760 name = "zvariant_derive" 6761 - version = "4.0.0" 6762 source = "registry+https://github.com/rust-lang/crates.io-index" 6763 - checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e" 6764 dependencies = [ 6765 - "proc-macro-crate 1.3.1", 6766 "proc-macro2", 6767 "quote", 6768 - "syn 1.0.109", 6769 "zvariant_utils", 6770 ] 6771 6772 [[package]] 6773 name = "zvariant_utils" 6774 - version = "1.1.0" 6775 source = "registry+https://github.com/rust-lang/crates.io-index" 6776 - checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172" 6777 dependencies = [ 6778 "proc-macro2", 6779 "quote", 6780 - "syn 1.0.109", 6781 ]
··· 91 92 [[package]] 93 name = "anyhow" 94 + version = "1.0.99" 95 source = "registry+https://github.com/rust-lang/crates.io-index" 96 + checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" 97 98 [[package]] 99 name = "arbitrary" 100 + version = "1.4.2" 101 source = "registry+https://github.com/rust-lang/crates.io-index" 102 + checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" 103 104 [[package]] 105 name = "arboard" ··· 110 "clipboard-win", 111 "image", 112 "log", 113 + "objc2 0.6.2", 114 "objc2-app-kit", 115 "objc2-core-foundation", 116 "objc2-core-graphics", ··· 129 dependencies = [ 130 "proc-macro2", 131 "quote", 132 + "syn 2.0.105", 133 ] 134 135 [[package]] ··· 177 ] 178 179 [[package]] 180 name = "async-io" 181 version = "2.5.0" 182 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 196 197 [[package]] 198 name = "async-lock" 199 + version = "3.4.1" 200 source = "registry+https://github.com/rust-lang/crates.io-index" 201 + checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" 202 dependencies = [ 203 "event-listener", 204 "event-listener-strategy", ··· 231 dependencies = [ 232 "proc-macro2", 233 "quote", 234 + "syn 2.0.105", 235 ] 236 237 [[package]] ··· 260 261 [[package]] 262 name = "async-trait" 263 + version = "0.1.89" 264 source = "registry+https://github.com/rust-lang/crates.io-index" 265 + checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" 266 dependencies = [ 267 "proc-macro2", 268 "quote", 269 + "syn 2.0.105", 270 ] 271 272 [[package]] ··· 320 321 [[package]] 322 name = "avif-serialize" 323 + version = "0.8.6" 324 source = "registry+https://github.com/rust-lang/crates.io-index" 325 + checksum = "47c8fbc0f831f4519fe8b810b6a7a91410ec83031b8233f730a0480029f6a23f" 326 dependencies = [ 327 "arrayvec", 328 ] ··· 405 source = "registry+https://github.com/rust-lang/crates.io-index" 406 checksum = "340d2f0bdb2a43c1d3cd40513185b2bd7def0aa1052f956455114bc98f82dcf2" 407 dependencies = [ 408 + "objc2 0.6.2", 409 ] 410 411 [[package]] ··· 456 457 [[package]] 458 name = "bytemuck" 459 + version = "1.23.2" 460 source = "registry+https://github.com/rust-lang/crates.io-index" 461 + checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" 462 463 [[package]] 464 name = "byteorder" ··· 508 509 [[package]] 510 name = "camino" 511 + version = "1.1.11" 512 source = "registry+https://github.com/rust-lang/crates.io-index" 513 + checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" 514 dependencies = [ 515 "serde", 516 ] ··· 535 "semver", 536 "serde", 537 "serde_json", 538 + "thiserror 2.0.14", 539 ] 540 541 [[package]] ··· 545 checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" 546 dependencies = [ 547 "serde", 548 + "toml 0.9.5", 549 ] 550 551 [[package]] 552 name = "cc" 553 + version = "1.2.32" 554 source = "registry+https://github.com/rust-lang/crates.io-index" 555 + checksum = "2352e5597e9c544d5e6d9c95190d5d27738ade584fa8db0a16e130e5c2b5296e" 556 dependencies = [ 557 "jobserver", 558 "libc", ··· 842 checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" 843 dependencies = [ 844 "quote", 845 + "syn 2.0.105", 846 ] 847 848 [[package]] ··· 852 checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" 853 dependencies = [ 854 "quote", 855 + "syn 2.0.105", 856 ] 857 858 [[package]] ··· 876 "proc-macro2", 877 "quote", 878 "strsim", 879 + "syn 2.0.105", 880 ] 881 882 [[package]] ··· 887 dependencies = [ 888 "darling_core", 889 "quote", 890 + "syn 2.0.105", 891 ] 892 893 [[package]] ··· 907 ] 908 909 [[package]] 910 name = "derive_more" 911 version = "0.99.20" 912 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 916 "proc-macro2", 917 "quote", 918 "rustc_version", 919 + "syn 2.0.105", 920 ] 921 922 [[package]] ··· 984 checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" 985 dependencies = [ 986 "bitflags 2.9.1", 987 + "objc2 0.6.2", 988 ] 989 990 [[package]] ··· 995 dependencies = [ 996 "proc-macro2", 997 "quote", 998 + "syn 2.0.105", 999 ] 1000 1001 [[package]] ··· 1018 dependencies = [ 1019 "proc-macro2", 1020 "quote", 1021 + "syn 2.0.105", 1022 ] 1023 1024 [[package]] ··· 1090 "cc", 1091 "memchr", 1092 "rustc_version", 1093 + "toml 0.9.5", 1094 "vswhom", 1095 "winreg", 1096 ] ··· 1134 dependencies = [ 1135 "proc-macro2", 1136 "quote", 1137 + "syn 2.0.105", 1138 ] 1139 1140 [[package]] ··· 1154 dependencies = [ 1155 "proc-macro2", 1156 "quote", 1157 + "syn 2.0.105", 1158 ] 1159 1160 [[package]] ··· 1191 1192 [[package]] 1193 name = "event-listener" 1194 + version = "5.4.1" 1195 source = "registry+https://github.com/rust-lang/crates.io-index" 1196 + checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" 1197 dependencies = [ 1198 "concurrent-queue", 1199 "parking", ··· 1319 dependencies = [ 1320 "proc-macro2", 1321 "quote", 1322 + "syn 2.0.105", 1323 ] 1324 1325 [[package]] ··· 1397 1398 [[package]] 1399 name = "futures-lite" 1400 + version = "2.6.1" 1401 source = "registry+https://github.com/rust-lang/crates.io-index" 1402 + checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" 1403 dependencies = [ 1404 "fastrand", 1405 "futures-core", ··· 1416 dependencies = [ 1417 "proc-macro2", 1418 "quote", 1419 + "syn 2.0.105", 1420 ] 1421 1422 [[package]] ··· 1692 checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" 1693 dependencies = [ 1694 "heck 0.4.1", 1695 + "proc-macro-crate 2.0.0", 1696 "proc-macro-error", 1697 "proc-macro2", 1698 "quote", 1699 + "syn 2.0.105", 1700 ] 1701 1702 [[package]] ··· 1711 1712 [[package]] 1713 name = "glob" 1714 + version = "0.3.3" 1715 source = "registry+https://github.com/rust-lang/crates.io-index" 1716 + checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 1717 1718 [[package]] 1719 name = "gobject-sys" ··· 1775 "proc-macro-error", 1776 "proc-macro2", 1777 "quote", 1778 + "syn 2.0.105", 1779 ] 1780 1781 [[package]] 1782 name = "h2" 1783 + version = "0.4.12" 1784 source = "registry+https://github.com/rust-lang/crates.io-index" 1785 + checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" 1786 dependencies = [ 1787 "atomic-waker", 1788 "bytes", ··· 1821 1822 [[package]] 1823 name = "hashbrown" 1824 + version = "0.15.5" 1825 source = "registry+https://github.com/rust-lang/crates.io-index" 1826 + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 1827 1828 [[package]] 1829 name = "heck" ··· 2184 checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" 2185 dependencies = [ 2186 "equivalent", 2187 + "hashbrown 0.15.5", 2188 "serde", 2189 ] 2190 ··· 2225 dependencies = [ 2226 "proc-macro2", 2227 "quote", 2228 + "syn 2.0.105", 2229 ] 2230 2231 [[package]] ··· 2463 2464 [[package]] 2465 name = "libc" 2466 + version = "0.2.175" 2467 source = "registry+https://github.com/rust-lang/crates.io-index" 2468 + checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" 2469 2470 [[package]] 2471 name = "libfuzzer-sys" ··· 2581 dependencies = [ 2582 "proc-macro2", 2583 "quote", 2584 + "syn 2.0.105", 2585 ] 2586 2587 [[package]] ··· 2681 "dpi", 2682 "gtk", 2683 "keyboard-types", 2684 + "objc2 0.6.2", 2685 "objc2-app-kit", 2686 "objc2-core-foundation", 2687 "objc2-foundation 0.3.1", 2688 "once_cell", 2689 "png", 2690 "serde", 2691 + "thiserror 2.0.14", 2692 "windows-sys 0.60.2", 2693 ] 2694 ··· 2747 2748 [[package]] 2749 name = "nix" 2750 + version = "0.30.1" 2751 source = "registry+https://github.com/rust-lang/crates.io-index" 2752 + checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" 2753 dependencies = [ 2754 "bitflags 2.9.1", 2755 "cfg-if", 2756 + "cfg_aliases", 2757 "libc", 2758 "memoffset", 2759 ] ··· 2823 dependencies = [ 2824 "proc-macro2", 2825 "quote", 2826 + "syn 2.0.105", 2827 ] 2828 2829 [[package]] ··· 2871 source = "registry+https://github.com/rust-lang/crates.io-index" 2872 checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" 2873 dependencies = [ 2874 + "proc-macro-crate 1.3.1", 2875 "proc-macro2", 2876 "quote", 2877 + "syn 2.0.105", 2878 ] 2879 2880 [[package]] ··· 2895 2896 [[package]] 2897 name = "objc2" 2898 + version = "0.6.2" 2899 source = "registry+https://github.com/rust-lang/crates.io-index" 2900 + checksum = "561f357ba7f3a2a61563a186a163d0a3a5247e1089524a3981d49adb775078bc" 2901 dependencies = [ 2902 "objc2-encode", 2903 "objc2-exception-helper", ··· 2912 "bitflags 2.9.1", 2913 "block2 0.6.1", 2914 "libc", 2915 + "objc2 0.6.2", 2916 "objc2-cloud-kit", 2917 "objc2-core-data", 2918 "objc2-core-foundation", ··· 2929 checksum = "17614fdcd9b411e6ff1117dfb1d0150f908ba83a7df81b1f118005fe0a8ea15d" 2930 dependencies = [ 2931 "bitflags 2.9.1", 2932 + "objc2 0.6.2", 2933 "objc2-foundation 0.3.1", 2934 ] 2935 ··· 2940 checksum = "291fbbf7d29287518e8686417cf7239c74700fd4b607623140a7d4a3c834329d" 2941 dependencies = [ 2942 "bitflags 2.9.1", 2943 + "objc2 0.6.2", 2944 "objc2-foundation 0.3.1", 2945 ] 2946 ··· 2952 dependencies = [ 2953 "bitflags 2.9.1", 2954 "dispatch2", 2955 + "objc2 0.6.2", 2956 ] 2957 2958 [[package]] ··· 2963 dependencies = [ 2964 "bitflags 2.9.1", 2965 "dispatch2", 2966 + "objc2 0.6.2", 2967 "objc2-core-foundation", 2968 "objc2-io-surface", 2969 ] ··· 2974 source = "registry+https://github.com/rust-lang/crates.io-index" 2975 checksum = "79b3dc0cc4386b6ccf21c157591b34a7f44c8e75b064f85502901ab2188c007e" 2976 dependencies = [ 2977 + "objc2 0.6.2", 2978 "objc2-foundation 0.3.1", 2979 ] 2980 ··· 3014 "bitflags 2.9.1", 3015 "block2 0.6.1", 3016 "libc", 3017 + "objc2 0.6.2", 3018 "objc2-core-foundation", 3019 ] 3020 ··· 3025 checksum = "7282e9ac92529fa3457ce90ebb15f4ecbc383e8338060960760fa2cf75420c3c" 3026 dependencies = [ 3027 "bitflags 2.9.1", 3028 + "objc2 0.6.2", 3029 "objc2-core-foundation", 3030 ] 3031 ··· 3061 checksum = "90ffb6a0cd5f182dc964334388560b12a57f7b74b3e2dec5e2722aa2dfb2ccd5" 3062 dependencies = [ 3063 "bitflags 2.9.1", 3064 + "objc2 0.6.2", 3065 "objc2-foundation 0.3.1", 3066 ] 3067 ··· 3072 checksum = "25b1312ad7bc8a0e92adae17aa10f90aae1fb618832f9b993b022b591027daed" 3073 dependencies = [ 3074 "bitflags 2.9.1", 3075 + "objc2 0.6.2", 3076 "objc2-core-foundation", 3077 "objc2-foundation 0.3.1", 3078 ] ··· 3085 dependencies = [ 3086 "bitflags 2.9.1", 3087 "block2 0.6.1", 3088 + "objc2 0.6.2", 3089 "objc2-app-kit", 3090 "objc2-core-foundation", 3091 "objc2-foundation 0.3.1", ··· 3141 dependencies = [ 3142 "proc-macro2", 3143 "quote", 3144 + "syn 2.0.105", 3145 ] 3146 3147 [[package]] ··· 3374 "phf_shared 0.11.3", 3375 "proc-macro2", 3376 "quote", 3377 + "syn 2.0.105", 3378 ] 3379 3380 [[package]] ··· 3461 3462 [[package]] 3463 name = "polling" 3464 + version = "3.10.0" 3465 source = "registry+https://github.com/rust-lang/crates.io-index" 3466 + checksum = "b5bd19146350fe804f7cb2669c851c03d69da628803dab0d98018142aaa5d829" 3467 dependencies = [ 3468 "cfg-if", 3469 "concurrent-queue", ··· 3515 3516 [[package]] 3517 name = "proc-macro-crate" 3518 + version = "2.0.0" 3519 source = "registry+https://github.com/rust-lang/crates.io-index" 3520 + checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" 3521 dependencies = [ 3522 "toml_edit 0.20.2", 3523 + ] 3524 + 3525 + [[package]] 3526 + name = "proc-macro-crate" 3527 + version = "3.3.0" 3528 + source = "registry+https://github.com/rust-lang/crates.io-index" 3529 + checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" 3530 + dependencies = [ 3531 + "toml_edit 0.22.27", 3532 ] 3533 3534 [[package]] ··· 3563 3564 [[package]] 3565 name = "proc-macro2" 3566 + version = "1.0.97" 3567 source = "registry+https://github.com/rust-lang/crates.io-index" 3568 + checksum = "d61789d7719defeb74ea5fe81f2fdfdbd28a803847077cecce2ff14e1472f6f1" 3569 dependencies = [ 3570 "unicode-ident", 3571 ] ··· 3586 checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" 3587 dependencies = [ 3588 "quote", 3589 + "syn 2.0.105", 3590 ] 3591 3592 [[package]] ··· 3622 3623 [[package]] 3624 name = "quick-xml" 3625 + version = "0.38.1" 3626 source = "registry+https://github.com/rust-lang/crates.io-index" 3627 + checksum = "9845d9dccf565065824e69f9f235fafba1587031eda353c1f1561cd6a6be78f4" 3628 dependencies = [ 3629 "memchr", 3630 ] ··· 3643 "rustc-hash", 3644 "rustls", 3645 "socket2 0.5.10", 3646 + "thiserror 2.0.14", 3647 "tokio", 3648 "tracing", 3649 "web-time", ··· 3664 "rustls", 3665 "rustls-pki-types", 3666 "slab", 3667 + "thiserror 2.0.14", 3668 "tinyvec", 3669 "tracing", 3670 "web-time", ··· 3867 3868 [[package]] 3869 name = "rayon" 3870 + version = "1.11.0" 3871 source = "registry+https://github.com/rust-lang/crates.io-index" 3872 + checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" 3873 dependencies = [ 3874 "either", 3875 "rayon-core", ··· 3877 3878 [[package]] 3879 name = "rayon-core" 3880 + version = "1.13.0" 3881 source = "registry+https://github.com/rust-lang/crates.io-index" 3882 + checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" 3883 dependencies = [ 3884 "crossbeam-deque", 3885 "crossbeam-utils", ··· 3913 dependencies = [ 3914 "getrandom 0.2.16", 3915 "libredox", 3916 + "thiserror 2.0.14", 3917 ] 3918 3919 [[package]] ··· 3933 dependencies = [ 3934 "proc-macro2", 3935 "quote", 3936 + "syn 2.0.105", 3937 ] 3938 3939 [[package]] ··· 3967 3968 [[package]] 3969 name = "reqwest" 3970 + version = "0.12.23" 3971 source = "registry+https://github.com/rust-lang/crates.io-index" 3972 + checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" 3973 dependencies = [ 3974 "base64 0.22.1", 3975 "bytes", ··· 4129 4130 [[package]] 4131 name = "rustversion" 4132 + version = "1.0.22" 4133 source = "registry+https://github.com/rust-lang/crates.io-index" 4134 + checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 4135 4136 [[package]] 4137 name = "ryu" ··· 4205 "proc-macro2", 4206 "quote", 4207 "serde_derive_internals", 4208 + "syn 2.0.105", 4209 ] 4210 4211 [[package]] ··· 4275 4276 [[package]] 4277 name = "serde-untagged" 4278 + version = "0.1.8" 4279 source = "registry+https://github.com/rust-lang/crates.io-index" 4280 + checksum = "34836a629bcbc6f1afdf0907a744870039b1e14c0561cb26094fa683b158eff3" 4281 dependencies = [ 4282 "erased-serde", 4283 "serde", ··· 4292 dependencies = [ 4293 "proc-macro2", 4294 "quote", 4295 + "syn 2.0.105", 4296 ] 4297 4298 [[package]] ··· 4303 dependencies = [ 4304 "proc-macro2", 4305 "quote", 4306 + "syn 2.0.105", 4307 ] 4308 4309 [[package]] 4310 name = "serde_json" 4311 + version = "1.0.142" 4312 source = "registry+https://github.com/rust-lang/crates.io-index" 4313 + checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" 4314 dependencies = [ 4315 "itoa", 4316 "memchr", ··· 4326 dependencies = [ 4327 "proc-macro2", 4328 "quote", 4329 + "syn 2.0.105", 4330 ] 4331 4332 [[package]] ··· 4388 "darling", 4389 "proc-macro2", 4390 "quote", 4391 + "syn 2.0.105", 4392 ] 4393 4394 [[package]] ··· 4424 ] 4425 4426 [[package]] 4427 name = "sha2" 4428 version = "0.10.9" 4429 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4474 4475 [[package]] 4476 name = "signal-hook-registry" 4477 + version = "1.4.6" 4478 source = "registry+https://github.com/rust-lang/crates.io-index" 4479 + checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" 4480 dependencies = [ 4481 "libc", 4482 ] ··· 4510 4511 [[package]] 4512 name = "slab" 4513 + version = "0.4.11" 4514 source = "registry+https://github.com/rust-lang/crates.io-index" 4515 + checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 4516 4517 [[package]] 4518 name = "smallvec" ··· 4661 4662 [[package]] 4663 name = "syn" 4664 + version = "2.0.105" 4665 source = "registry+https://github.com/rust-lang/crates.io-index" 4666 + checksum = "7bc3fcb250e53458e712715cf74285c1f889686520d79294a9ef3bd7aa1fc619" 4667 dependencies = [ 4668 "proc-macro2", 4669 "quote", ··· 4687 dependencies = [ 4688 "proc-macro2", 4689 "quote", 4690 + "syn 2.0.105", 4691 ] 4692 4693 [[package]] ··· 4747 "ndk", 4748 "ndk-context", 4749 "ndk-sys", 4750 + "objc2 0.6.2", 4751 "objc2-app-kit", 4752 "objc2-foundation 0.3.1", 4753 "once_cell", ··· 4771 dependencies = [ 4772 "proc-macro2", 4773 "quote", 4774 + "syn 2.0.105", 4775 ] 4776 4777 [[package]] ··· 4802 "log", 4803 "mime", 4804 "muda", 4805 + "objc2 0.6.2", 4806 "objc2-app-kit", 4807 "objc2-foundation 0.3.1", 4808 "objc2-ui-kit", ··· 4820 "tauri-runtime", 4821 "tauri-runtime-wry", 4822 "tauri-utils", 4823 + "thiserror 2.0.14", 4824 "tokio", 4825 "tray-icon", 4826 "url", ··· 4871 "serde", 4872 "serde_json", 4873 "sha2", 4874 + "syn 2.0.105", 4875 "tauri-utils", 4876 + "thiserror 2.0.14", 4877 "time", 4878 "url", 4879 "uuid", ··· 4889 "heck 0.5.0", 4890 "proc-macro2", 4891 "quote", 4892 + "syn 2.0.105", 4893 "tauri-codegen", 4894 "tauri-utils", 4895 ] ··· 4924 "tauri", 4925 "tauri-plugin", 4926 "tauri-utils", 4927 + "thiserror 2.0.14", 4928 "tracing", 4929 "url", 4930 "windows-registry", ··· 4948 "tauri", 4949 "tauri-plugin", 4950 "tauri-utils", 4951 + "thiserror 2.0.14", 4952 "toml 0.8.2", 4953 "url", 4954 ] ··· 4971 "tauri", 4972 "tauri-plugin", 4973 "tauri-plugin-fs", 4974 + "thiserror 2.0.14", 4975 "tokio", 4976 "url", 4977 "urlpattern", ··· 5004 "shared_child", 5005 "tauri", 5006 "tauri-plugin", 5007 + "thiserror 2.0.14", 5008 "tokio", 5009 ] 5010 5011 [[package]] 5012 name = "tauri-plugin-single-instance" 5013 + version = "2.3.2" 5014 source = "registry+https://github.com/rust-lang/crates.io-index" 5015 + checksum = "50a0e5a4ce43cb3a733c3aef85e8478bc769dac743c615e26639cbf5d953faf7" 5016 dependencies = [ 5017 "serde", 5018 "serde_json", 5019 "tauri", 5020 "tauri-plugin-deep-link", 5021 + "thiserror 2.0.14", 5022 "tracing", 5023 + "windows-sys 0.60.2", 5024 "zbus", 5025 ] 5026 ··· 5035 "gtk", 5036 "http", 5037 "jni", 5038 + "objc2 0.6.2", 5039 "objc2-ui-kit", 5040 "raw-window-handle", 5041 "serde", 5042 "serde_json", 5043 "tauri-utils", 5044 + "thiserror 2.0.14", 5045 "url", 5046 "windows", 5047 ] ··· 5056 "http", 5057 "jni", 5058 "log", 5059 + "objc2 0.6.2", 5060 "objc2-app-kit", 5061 "objc2-foundation 0.3.1", 5062 "once_cell", ··· 5103 "serde_json", 5104 "serde_with", 5105 "swift-rs", 5106 + "thiserror 2.0.14", 5107 "toml 0.8.2", 5108 "url", 5109 "urlpattern", ··· 5113 5114 [[package]] 5115 name = "tauri-winres" 5116 + version = "0.3.3" 5117 source = "registry+https://github.com/rust-lang/crates.io-index" 5118 + checksum = "fd21509dd1fa9bd355dc29894a6ff10635880732396aa38c0066c1e6c1ab8074" 5119 dependencies = [ 5120 "embed-resource", 5121 + "toml 0.9.5", 5122 ] 5123 5124 [[package]] ··· 5156 5157 [[package]] 5158 name = "thiserror" 5159 + version = "2.0.14" 5160 source = "registry+https://github.com/rust-lang/crates.io-index" 5161 + checksum = "0b0949c3a6c842cbde3f1686d6eea5a010516deb7085f79db747562d4102f41e" 5162 dependencies = [ 5163 + "thiserror-impl 2.0.14", 5164 ] 5165 5166 [[package]] ··· 5171 dependencies = [ 5172 "proc-macro2", 5173 "quote", 5174 + "syn 2.0.105", 5175 ] 5176 5177 [[package]] 5178 name = "thiserror-impl" 5179 + version = "2.0.14" 5180 source = "registry+https://github.com/rust-lang/crates.io-index" 5181 + checksum = "cc5b44b4ab9c2fdd0e0512e6bece8388e214c0749f5862b114cc5b7a25daf227" 5182 dependencies = [ 5183 "proc-macro2", 5184 "quote", 5185 + "syn 2.0.105", 5186 ] 5187 5188 [[package]] ··· 5263 5264 [[package]] 5265 name = "tokio" 5266 + version = "1.47.1" 5267 source = "registry+https://github.com/rust-lang/crates.io-index" 5268 + checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" 5269 dependencies = [ 5270 "backtrace", 5271 "bytes", ··· 5287 dependencies = [ 5288 "proc-macro2", 5289 "quote", 5290 + "syn 2.0.105", 5291 ] 5292 5293 [[package]] ··· 5312 5313 [[package]] 5314 name = "tokio-util" 5315 + version = "0.7.16" 5316 source = "registry+https://github.com/rust-lang/crates.io-index" 5317 + checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" 5318 dependencies = [ 5319 "bytes", 5320 "futures-core", ··· 5331 dependencies = [ 5332 "serde", 5333 "serde_spanned 0.6.9", 5334 + "toml_datetime 0.6.11", 5335 "toml_edit 0.20.2", 5336 ] 5337 5338 [[package]] 5339 name = "toml" 5340 + version = "0.9.5" 5341 source = "registry+https://github.com/rust-lang/crates.io-index" 5342 + checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" 5343 dependencies = [ 5344 "indexmap 2.10.0", 5345 "serde", ··· 5352 5353 [[package]] 5354 name = "toml_datetime" 5355 + version = "0.6.11" 5356 source = "registry+https://github.com/rust-lang/crates.io-index" 5357 + checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" 5358 dependencies = [ 5359 "serde", 5360 ] ··· 5375 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 5376 dependencies = [ 5377 "indexmap 2.10.0", 5378 + "toml_datetime 0.6.11", 5379 "winnow 0.5.40", 5380 ] 5381 ··· 5388 "indexmap 2.10.0", 5389 "serde", 5390 "serde_spanned 0.6.9", 5391 + "toml_datetime 0.6.11", 5392 "winnow 0.5.40", 5393 ] 5394 5395 [[package]] 5396 + name = "toml_edit" 5397 + version = "0.22.27" 5398 + source = "registry+https://github.com/rust-lang/crates.io-index" 5399 + checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" 5400 + dependencies = [ 5401 + "indexmap 2.10.0", 5402 + "toml_datetime 0.6.11", 5403 + "winnow 0.7.12", 5404 + ] 5405 + 5406 + [[package]] 5407 name = "toml_parser" 5408 + version = "1.0.2" 5409 source = "registry+https://github.com/rust-lang/crates.io-index" 5410 + checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" 5411 dependencies = [ 5412 "winnow 0.7.12", 5413 ] ··· 5482 dependencies = [ 5483 "proc-macro2", 5484 "quote", 5485 + "syn 2.0.105", 5486 ] 5487 5488 [[package]] ··· 5504 "dirs 6.0.0", 5505 "libappindicator", 5506 "muda", 5507 + "objc2 0.6.2", 5508 "objc2-app-kit", 5509 "objc2-core-foundation", 5510 "objc2-core-graphics", ··· 5512 "once_cell", 5513 "png", 5514 "serde", 5515 + "thiserror 2.0.14", 5516 "windows-sys 0.59.0", 5517 ] 5518 ··· 5642 5643 [[package]] 5644 name = "uuid" 5645 + version = "1.18.0" 5646 source = "registry+https://github.com/rust-lang/crates.io-index" 5647 + checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" 5648 dependencies = [ 5649 "getrandom 0.3.3", 5650 "js-sys", ··· 5763 "log", 5764 "proc-macro2", 5765 "quote", 5766 + "syn 2.0.105", 5767 "wasm-bindgen-shared", 5768 ] 5769 ··· 5798 dependencies = [ 5799 "proc-macro2", 5800 "quote", 5801 + "syn 2.0.105", 5802 "wasm-bindgen-backend", 5803 "wasm-bindgen-shared", 5804 ] ··· 5920 dependencies = [ 5921 "proc-macro2", 5922 "quote", 5923 + "syn 2.0.105", 5924 ] 5925 5926 [[package]] ··· 5929 source = "registry+https://github.com/rust-lang/crates.io-index" 5930 checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" 5931 dependencies = [ 5932 + "thiserror 2.0.14", 5933 "windows", 5934 "windows-core", 5935 ] ··· 5977 source = "registry+https://github.com/rust-lang/crates.io-index" 5978 checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" 5979 dependencies = [ 5980 + "objc2 0.6.2", 5981 "objc2-app-kit", 5982 "objc2-core-foundation", 5983 "objc2-foundation 0.3.1", ··· 6040 dependencies = [ 6041 "proc-macro2", 6042 "quote", 6043 + "syn 2.0.105", 6044 ] 6045 6046 [[package]] ··· 6051 dependencies = [ 6052 "proc-macro2", 6053 "quote", 6054 + "syn 2.0.105", 6055 ] 6056 6057 [[package]] ··· 6419 version = "0.7.12" 6420 source = "registry+https://github.com/rust-lang/crates.io-index" 6421 checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" 6422 + dependencies = [ 6423 + "memchr", 6424 + ] 6425 6426 [[package]] 6427 name = "winreg" ··· 6469 "kuchikiki", 6470 "libc", 6471 "ndk", 6472 + "objc2 0.6.2", 6473 "objc2-app-kit", 6474 "objc2-core-foundation", 6475 "objc2-foundation 0.3.1", ··· 6481 "sha2", 6482 "soup3", 6483 "tao-macros", 6484 + "thiserror 2.0.14", 6485 "url", 6486 "webkit2gtk", 6487 "webkit2gtk-sys", ··· 6531 checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" 6532 6533 [[package]] 6534 name = "yoke" 6535 version = "0.8.0" 6536 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6550 dependencies = [ 6551 "proc-macro2", 6552 "quote", 6553 + "syn 2.0.105", 6554 "synstructure", 6555 ] 6556 6557 [[package]] 6558 name = "zbus" 6559 + version = "5.9.0" 6560 source = "registry+https://github.com/rust-lang/crates.io-index" 6561 + checksum = "4bb4f9a464286d42851d18a605f7193b8febaf5b0919d71c6399b7b26e5b0aad" 6562 dependencies = [ 6563 "async-broadcast", 6564 "async-executor", 6565 "async-io", 6566 "async-lock", 6567 "async-process", ··· 6569 "async-task", 6570 "async-trait", 6571 "blocking", 6572 "enumflags2", 6573 "event-listener", 6574 "futures-core", 6575 + "futures-lite", 6576 "hex", 6577 "nix", 6578 "ordered-stream", 6579 "serde", 6580 "serde_repr", 6581 "tracing", 6582 "uds_windows", 6583 + "windows-sys 0.59.0", 6584 + "winnow 0.7.12", 6585 "zbus_macros", 6586 "zbus_names", 6587 "zvariant", ··· 6589 6590 [[package]] 6591 name = "zbus_macros" 6592 + version = "5.9.0" 6593 source = "registry+https://github.com/rust-lang/crates.io-index" 6594 + checksum = "ef9859f68ee0c4ee2e8cde84737c78e3f4c54f946f2a38645d0d4c7a95327659" 6595 dependencies = [ 6596 + "proc-macro-crate 3.3.0", 6597 "proc-macro2", 6598 "quote", 6599 + "syn 2.0.105", 6600 + "zbus_names", 6601 + "zvariant", 6602 "zvariant_utils", 6603 ] 6604 6605 [[package]] 6606 name = "zbus_names" 6607 + version = "4.2.0" 6608 source = "registry+https://github.com/rust-lang/crates.io-index" 6609 + checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" 6610 dependencies = [ 6611 "serde", 6612 "static_assertions", 6613 + "winnow 0.7.12", 6614 "zvariant", 6615 ] 6616 ··· 6631 dependencies = [ 6632 "proc-macro2", 6633 "quote", 6634 + "syn 2.0.105", 6635 ] 6636 6637 [[package]] ··· 6651 dependencies = [ 6652 "proc-macro2", 6653 "quote", 6654 + "syn 2.0.105", 6655 "synstructure", 6656 ] 6657 ··· 6674 6675 [[package]] 6676 name = "zerovec" 6677 + version = "0.11.4" 6678 source = "registry+https://github.com/rust-lang/crates.io-index" 6679 + checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" 6680 dependencies = [ 6681 "yoke", 6682 "zerofrom", ··· 6691 dependencies = [ 6692 "proc-macro2", 6693 "quote", 6694 + "syn 2.0.105", 6695 ] 6696 6697 [[package]] ··· 6720 6721 [[package]] 6722 name = "zvariant" 6723 + version = "5.6.0" 6724 source = "registry+https://github.com/rust-lang/crates.io-index" 6725 + checksum = "d91b3680bb339216abd84714172b5138a4edac677e641ef17e1d8cb1b3ca6e6f" 6726 dependencies = [ 6727 "endi", 6728 "enumflags2", 6729 "serde", 6730 + "winnow 0.7.12", 6731 "zvariant_derive", 6732 + "zvariant_utils", 6733 ] 6734 6735 [[package]] 6736 name = "zvariant_derive" 6737 + version = "5.6.0" 6738 source = "registry+https://github.com/rust-lang/crates.io-index" 6739 + checksum = "3a8c68501be459a8dbfffbe5d792acdd23b4959940fc87785fb013b32edbc208" 6740 dependencies = [ 6741 + "proc-macro-crate 3.3.0", 6742 "proc-macro2", 6743 "quote", 6744 + "syn 2.0.105", 6745 "zvariant_utils", 6746 ] 6747 6748 [[package]] 6749 name = "zvariant_utils" 6750 + version = "3.2.0" 6751 source = "registry+https://github.com/rust-lang/crates.io-index" 6752 + checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34" 6753 dependencies = [ 6754 "proc-macro2", 6755 "quote", 6756 + "serde", 6757 + "static_assertions", 6758 + "syn 2.0.105", 6759 + "winnow 0.7.12", 6760 ]
+5 -6
src-tauri/Cargo.toml
··· 11 tauri-build = { version = "2.0.0-rc", features = [] } 12 13 [dependencies] 14 - tauri = { version = "2.0.0-rc", features = ["tray-icon", "image-png", "devtools"] } 15 serde = { version = "1.0", features = ["derive"] } 16 serde_json = "1.0" 17 open = "5.1.2" ··· 20 notify = "6.1.1" 21 regex = "1.10.4" 22 reqwest = { version = "0.12", features = ["blocking"] } 23 - tauri-plugin-single-instance = { version = "2.0.0", features = ["deep-link"] } 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" 27 image = "0.25.2" 28 fast_image_resize = { version = "4.2.1", features = [ "image" ] } 29 arboard = "3.6.0" 30 - 31 [target.'cfg(windows)'.dependencies] 32 mslnk = { version = "0.1.8" } 33
··· 11 tauri-build = { version = "2.0.0-rc", features = [] } 12 13 [dependencies] 14 + tauri = { version = "2.7.0", features = [ "tray-icon", "image-png", "devtools" ] } 15 serde = { version = "1.0", features = ["derive"] } 16 serde_json = "1.0" 17 open = "5.1.2" ··· 20 notify = "6.1.1" 21 regex = "1.10.4" 22 reqwest = { version = "0.12", features = ["blocking"] } 23 image = "0.25.2" 24 fast_image_resize = { version = "4.2.1", features = [ "image" ] } 25 arboard = "3.6.0" 26 + tauri-plugin-single-instance = { version = "2.3.2", features = ["deep-link"] } 27 + tauri-plugin-shell = "2.3.0" 28 + tauri-plugin-http = "2.5.1" 29 + tauri-plugin-process = "2.3.0" 30 [target.'cfg(windows)'.dependencies] 31 mslnk = { version = "0.1.8" } 32
+4 -4
src-tauri/src/frontend_calls/copy_image.rs
··· 1 - use std::{borrow::Cow, fs::{self, File}, io::BufReader, sync::Mutex}; 2 3 - use arboard::{Clipboard, ImageData}; 4 - use image::{codecs::png::PngDecoder, EncodableLayout, GenericImageView, ImageDecoder}; 5 use tauri::State; 6 7 - use crate::{ frontend_calls::get_user_photos_path::get_user_photos_path, pngmeta::PNGImage, util::cache::Cache }; 8 9 #[tauri::command] 10 pub fn copy_image( path: String, clipboard: State<Mutex<Clipboard>>, cache: State<Cache> ) {
··· 1 + use std::{ borrow::Cow, sync::Mutex }; 2 3 + use arboard::{ Clipboard, ImageData }; 4 + use image::GenericImageView; 5 use tauri::State; 6 7 + use crate::{ frontend_calls::get_user_photos_path::get_user_photos_path, util::cache::Cache }; 8 9 #[tauri::command] 10 pub fn copy_image( path: String, clipboard: State<Mutex<Clipboard>>, cache: State<Cache> ) {
+2 -16
src-tauri/src/frontend_calls/delete_photo.rs
··· 1 use tauri::State; 2 3 use crate::util::cache::Cache; 4 - use std::{ fs, thread, time::Duration }; 5 6 // Delete a photo when the users confirms the prompt in the ui 7 #[tauri::command] 8 - pub fn delete_photo(path: String, token: String, is_syncing: bool, cache: State<Cache>) { 9 let photo_path = cache.get("photo-path".into()); 10 11 thread::spawn(move || { 12 let p = photo_path.unwrap() + "/" + &path; 13 fs::remove_file(p).unwrap(); 14 - 15 - let photo = path.split("/").last().unwrap(); 16 - 17 - if is_syncing { 18 - let client = reqwest::blocking::Client::new(); 19 - client 20 - .delete(format!( 21 - "https://photos-cdn.phazed.xyz/api/v1/photos?token={}&photo={}", 22 - token, photo 23 - )) 24 - .timeout(Duration::from_secs(120)) 25 - .send() 26 - .unwrap(); 27 - } 28 }); 29 }
··· 1 use tauri::State; 2 3 use crate::util::cache::Cache; 4 + use std::{ fs, thread }; 5 6 // Delete a photo when the users confirms the prompt in the ui 7 #[tauri::command] 8 + pub fn delete_photo(path: String, cache: State<Cache>) { 9 let photo_path = cache.get("photo-path".into()); 10 11 thread::spawn(move || { 12 let p = photo_path.unwrap() + "/" + &path; 13 fs::remove_file(p).unwrap(); 14 }); 15 }
-2
src-tauri/src/frontend_calls/mod.rs
··· 9 pub mod load_photos; 10 pub mod open_folder; 11 pub mod open_url; 12 - pub mod relaunch; 13 - pub mod start_user_auth; 14 pub mod start_with_win; 15 pub mod sync_photos; 16 pub mod copy_image;
··· 9 pub mod load_photos; 10 pub mod open_folder; 11 pub mod open_url; 12 pub mod start_with_win; 13 pub mod sync_photos; 14 pub mod copy_image;
-17
src-tauri/src/frontend_calls/relaunch.rs
··· 1 - use std::process::{ self, Command }; 2 - 3 - #[tauri::command] 4 - pub fn relaunch() { 5 - #[cfg(windows)] 6 - { 7 - let container_folder = dirs::config_dir() 8 - .unwrap() 9 - .join("PhazeDev/VRChatPhotoManager"); 10 - 11 - let mut cmd = Command::new(&container_folder.join("./vrchat-photo-manager.exe")); 12 - cmd.current_dir(container_folder); 13 - cmd.spawn().expect("Cannot run updater"); 14 - 15 - process::exit(0); 16 - } 17 - }
···
-4
src-tauri/src/frontend_calls/start_user_auth.rs
··· 1 - #[tauri::command] 2 - pub fn start_user_auth() { 3 - open::that("https://photos.phazed.xyz/api/v1/auth").unwrap(); 4 - }
···
+1 -8
src-tauri/src/main.rs
··· 89 } 90 }; 91 92 - // Updater only supports windows, so don't update if on linux 93 - #[cfg(windows)] 94 - util::check_updates::check_updates(container_folder); 95 - 96 // Listen for file updates, store each update in an mpsc channel and send to the frontend 97 let (sender, receiver) = std::sync::mpsc::channel(); 98 let mut watcher = notify::recommended_watcher(move | res: Result<notify::Event, notify::Error> | { ··· 146 let clipboard = Clipboard::new().unwrap(); 147 148 tauri::Builder::default() 149 - .plugin(tauri_plugin_single_instance::init(| app, argv, _cwd | { 150 app.get_webview_window("main").unwrap().show().unwrap(); 151 - util::handle_deeplink::handle_deeplink(argv[1].clone(), app); 152 })) 153 .plugin(tauri_plugin_deep_link::init()) 154 .plugin(tauri_plugin_process::init()) ··· 194 Ok(()) 195 }) 196 .invoke_handler(tauri::generate_handler![ 197 - start_user_auth::start_user_auth, 198 load_photos::load_photos, 199 close_splashscreen::close_splashscreen, 200 load_photo_meta::load_photo_meta, ··· 208 change_final_path::change_final_path, 209 sync_photos::sync_photos, 210 util::get_version::get_version, 211 - relaunch::relaunch, 212 config::set_config_value_string, 213 config::get_config_value_string, 214 config::set_config_value_int,
··· 89 } 90 }; 91 92 // Listen for file updates, store each update in an mpsc channel and send to the frontend 93 let (sender, receiver) = std::sync::mpsc::channel(); 94 let mut watcher = notify::recommended_watcher(move | res: Result<notify::Event, notify::Error> | { ··· 142 let clipboard = Clipboard::new().unwrap(); 143 144 tauri::Builder::default() 145 + .plugin(tauri_plugin_single_instance::init(| app, _argv, _cwd | { 146 app.get_webview_window("main").unwrap().show().unwrap(); 147 })) 148 .plugin(tauri_plugin_deep_link::init()) 149 .plugin(tauri_plugin_process::init()) ··· 189 Ok(()) 190 }) 191 .invoke_handler(tauri::generate_handler![ 192 load_photos::load_photos, 193 close_splashscreen::close_splashscreen, 194 load_photo_meta::load_photo_meta, ··· 202 change_final_path::change_final_path, 203 sync_photos::sync_photos, 204 util::get_version::get_version, 205 config::set_config_value_string, 206 config::get_config_value_string, 207 config::set_config_value_int,
-55
src-tauri/src/util/check_updates.rs
··· 1 - use crate::util; 2 - use std::{ 3 - env, fs, path, 4 - process::{ self, Command }, 5 - thread, 6 - time::Duration, 7 - }; 8 - 9 - pub fn check_updates(container_folder: path::PathBuf) { 10 - let args: Vec<String> = env::args().collect(); 11 - 12 - let mut update = true; 13 - for arg in args { 14 - if arg == "--no-update" { 15 - update = false; 16 - } 17 - } 18 - 19 - if update { 20 - // Auto update 21 - thread::spawn(move || { 22 - let client = reqwest::blocking::Client::new(); 23 - 24 - let latest_version = client 25 - .get("https://cdn.phaz.uk/vrcpm/latest") 26 - .send() 27 - .unwrap() 28 - .text() 29 - .unwrap(); 30 - 31 - if latest_version != util::get_version::get_version() { 32 - match fs::metadata(&container_folder.join("./updater.exe")) { 33 - Ok(_) => {} 34 - Err(_) => { 35 - let latest_installer = client 36 - .get("https://cdn.phaz.uk/vrcpm/vrcpm-installer.exe") 37 - .timeout(Duration::from_secs(120)) 38 - .send() 39 - .unwrap() 40 - .bytes() 41 - .unwrap(); 42 - 43 - fs::write(&container_folder.join("./updater.exe"), latest_installer).unwrap(); 44 - } 45 - } 46 - 47 - let mut cmd = Command::new(&container_folder.join("./updater.exe")); 48 - cmd.current_dir(container_folder); 49 - cmd.spawn().expect("Cannot run updater"); 50 - 51 - process::exit(0); 52 - } 53 - }); 54 - } 55 - }
···
-22
src-tauri/src/util/handle_deeplink.rs
··· 1 - use tauri::{ AppHandle, Emitter }; 2 - 3 - pub fn handle_deeplink( url: String, handle: &AppHandle ) { 4 - let mut command: u8 = 0; 5 - let mut index: u8 = 0; 6 - 7 - for part in url.split('/').into_iter() { 8 - index += 1; 9 - 10 - if index == 3 && part == "auth-callback" { 11 - command = 1; 12 - } 13 - 14 - if index == 3 && part == "auth-denied" { 15 - handle.emit("auth-denied", "null").unwrap(); 16 - } 17 - 18 - if index == 4 && command == 1 { 19 - handle.emit("auth-callback", part).unwrap(); 20 - } 21 - } 22 - }
···
-2
src-tauri/src/util/mod.rs
··· 1 - pub mod check_updates; 2 pub mod get_photo_path; 3 pub mod get_version; 4 pub mod handle_uri_proto; 5 - pub mod handle_deeplink; 6 pub mod setup_traymenu; 7 pub mod cache;
··· 1 pub mod get_photo_path; 2 pub mod get_version; 3 pub mod handle_uri_proto; 4 pub mod setup_traymenu; 5 pub mod cache;
+1 -1
src-tauri/tauri.conf.json
··· 23 }, 24 "app": { 25 "security": { 26 - "csp": "https://photos.phazed.xyz; connect-src ipc: http://ipc.localhost" 27 }, 28 "windows": [ 29 {
··· 23 }, 24 "app": { 25 "security": { 26 + "csp": "connect-src ipc: http://ipc.localhost" 27 }, 28 "windows": [ 29 {
-133
src/Components/Managers/AccountManager.tsx
··· 1 - import { invoke } from "@tauri-apps/api/core"; 2 - 3 - import { ProfileData } from "../Structs/ProfileData"; 4 - import { StorageData } from "../Structs/StorageData"; 5 - import { Accessor, createSignal, Setter } from "solid-js"; 6 - 7 - import { listen } from "@tauri-apps/api/event"; 8 - import { fetch } from "@tauri-apps/plugin-http"; 9 - 10 - export class AccountManager{ 11 - public Profile: Accessor<ProfileData | null>; 12 - public Storage: Accessor<StorageData | null>; 13 - 14 - public hasAccount: Accessor<boolean>; 15 - public isLoading: Accessor<boolean>; 16 - 17 - private _setProfile: Setter<ProfileData | null>; 18 - private _setStorage: Setter<StorageData | null>; 19 - 20 - private _setHasAccount: Setter<boolean>; 21 - private _setIsLoading: Setter<boolean>; 22 - 23 - private _loginEventCallbacks: Array<() => void> = []; 24 - 25 - private _emitLoginCallbacks(){ 26 - this._loginEventCallbacks.forEach(e => e()); 27 - } 28 - 29 - constructor(){ 30 - let [ hasAccount, setHasAccount ] = createSignal(false); 31 - let [ isLoading, setIsLoading ] = createSignal(true); 32 - 33 - let [ profile, setProfile ] = createSignal<ProfileData | null>(null); 34 - let [ storage, setStorage ] = createSignal<StorageData | null>(null); 35 - 36 - this.Profile = profile; 37 - this.Storage = storage; 38 - 39 - this.hasAccount = hasAccount; 40 - this.isLoading = isLoading; 41 - 42 - this._setProfile = setProfile; 43 - this._setStorage = setStorage; 44 - 45 - this._setHasAccount = setHasAccount; 46 - this._setIsLoading = setIsLoading; 47 - 48 - invoke('get_config_value_string', { key: 'token' }) 49 - .then(( token: any ) => { 50 - this.verifyToken(token); 51 - }) 52 - 53 - listen('auth-callback', ( event: any ) => { 54 - window.LoadingManager.SetLoading(""); 55 - 56 - let token = event.payload; 57 - this.verifyToken(token); 58 - }) 59 - 60 - listen('auth-denied', () => { 61 - window.LoadingManager.SetLoading(""); 62 - console.warn('Authetication Denied'); 63 - }) 64 - } 65 - 66 - private async verifyToken( token: string ){ 67 - if(!token){ 68 - this._setHasAccount(false); 69 - this._setIsLoading(false); 70 - 71 - return this._emitLoginCallbacks(); 72 - } 73 - 74 - let dat = await fetch('https://photos.phazed.xyz/api/v1/account?token='+token); 75 - if(dat.status !== 200){ 76 - this._setHasAccount(false); 77 - this._setIsLoading(false); 78 - 79 - return this._emitLoginCallbacks(); 80 - } 81 - 82 - let json = await dat.json(); 83 - 84 - let profile = new ProfileData(); 85 - let storage = new StorageData(); 86 - 87 - profile.id = json.user._id; 88 - profile.username = json.user.username; 89 - profile.avatar = json.user.avatar; 90 - profile.serverVersion = json.user.serverVersion; 91 - 92 - storage.used = json.user.used; 93 - storage.total = json.user.storage; 94 - storage.isSyncing = json.user.settings.enableSync; 95 - 96 - this._setProfile(profile); 97 - this._setStorage(storage); 98 - 99 - this._setHasAccount(true); 100 - this._setIsLoading(false); 101 - 102 - this._emitLoginCallbacks(); 103 - } 104 - 105 - public login(){ 106 - window.LoadingManager.SetLoading("Waiting for Authentication"); 107 - invoke('start_user_auth'); 108 - } 109 - 110 - public async logout(){ 111 - let dat = await fetch('https://photos.phazed.xyz/api/v1/deauth?token='+(await invoke('get_config_value_string', { key: 'token' }))!) 112 - if(dat.status !== 200) 113 - throw new Error(dat.statusText); 114 - 115 - let json = await dat.json(); 116 - if(!json.ok) 117 - throw new Error(json.error); 118 - 119 - invoke('set_config_value_string', { key: 'token', value: '' }); 120 - window.location.reload(); 121 - 122 - return json; 123 - } 124 - 125 - public async Refresh(){ 126 - let token: string = await invoke('get_config_value_string', { key: 'token' }); 127 - await this.verifyToken(token); 128 - } 129 - 130 - public onLoginFinish( cb: () => void ){ 131 - this._loginEventCallbacks.push(cb); 132 - } 133 - }
···
+1 -1
src/Components/Managers/PhotoManager.tsx
··· 117 photo.onMetaLoaded = () => this.ReloadFilters(); 118 photo.loadMeta(); 119 120 - if(!window.SyncManager.IsSyncing() && window.AccountManager.Storage()?.isSyncing){ 121 window.SyncManager.TriggerSync(); 122 } 123 })
··· 117 photo.onMetaLoaded = () => this.ReloadFilters(); 118 photo.loadMeta(); 119 120 + if(!window.SyncManager.IsSyncing()){ 121 window.SyncManager.TriggerSync(); 122 } 123 })
-28
src/Components/NavBar.tsx
··· 1 - import { invoke } from '@tauri-apps/api/core'; 2 import { emit } from '@tauri-apps/api/event'; 3 import { getCurrentWebviewWindow } from '@tauri-apps/api/webviewWindow'; 4 import anime from 'animejs'; ··· 87 </Show> 88 </div> 89 <div class="account" onClick={() => setDropdownVisibility(!dropdownVisible)}> 90 - <Show when={window.AccountManager.hasAccount()}> 91 - <div class="user-pfp" style={{ background: 92 - `url('https://cdn.phazed.xyz/id/avatars/${window.AccountManager.Profile()?.id}/${window.AccountManager.Profile()?.avatar}.png')` }}></div> 93 - </Show> 94 <div class="icon"> 95 <img draggable="false" width="24" height="24" src="/icon/caret-down-solid.svg"></img> 96 </div> ··· 122 window.ViewManager.ChangeState(ViewState.SETTINGS); 123 setDropdownVisibility(false); 124 }}>Settings</div> 125 - 126 - <Show when={!window.AccountManager.hasAccount()} fallback={ 127 - <div class="dropdown-button" onClick={async () => { 128 - window.AccountManager.logout() 129 - .then(data => { 130 - console.log(data); 131 - setDropdownVisibility(false); 132 - }) 133 - .catch(e => { 134 - console.error(e); 135 - 136 - invoke('set_config_value_string', { key: 'token', value: '' }); 137 - window.location.reload(); 138 - 139 - setDropdownVisibility(false); 140 - }) 141 - }}>Sign Out</div> 142 - }> 143 - <div class="dropdown-button" onClick={() => { 144 - window.AccountManager.login(); 145 - setDropdownVisibility(false); 146 - }}>Sign In</div> 147 - </Show> 148 </div> 149 </> 150 )
··· 1 import { emit } from '@tauri-apps/api/event'; 2 import { getCurrentWebviewWindow } from '@tauri-apps/api/webviewWindow'; 3 import anime from 'animejs'; ··· 86 </Show> 87 </div> 88 <div class="account" onClick={() => setDropdownVisibility(!dropdownVisible)}> 89 <div class="icon"> 90 <img draggable="false" width="24" height="24" src="/icon/caret-down-solid.svg"></img> 91 </div> ··· 117 window.ViewManager.ChangeState(ViewState.SETTINGS); 118 setDropdownVisibility(false); 119 }}>Settings</div> 120 </div> 121 </> 122 )
+9 -2
src/Components/PhotoList.tsx
··· 98 } 99 } 100 101 let render = () => { 102 if(!quitRender) 103 requestAnimationFrame(render); ··· 118 ctx.clearRect(0, 0, photoContainer.width, photoContainer.height); 119 ctxBG.clearRect(0, 0, photoContainerBG.width, photoContainerBG.height); 120 121 - scroll = scroll + (targetScroll - scroll) * 0.2; 122 123 window.PhotoListRenderingManager.Render(ctx, photoContainer!, scroll); 124 ··· 133 } 134 135 ctxBG.drawImage(photoContainer, 0, 0); 136 } 137 138 listen('hide-window', () => { ··· 192 anime.set(scrollToTop, { opacity: 0, translateY: '-10px', display: 'none' }); 193 194 photoContainer.onwheel = ( e: WheelEvent ) => { 195 - targetScroll += e.deltaY; 196 197 if(targetScroll < 0) 198 targetScroll = 0;
··· 98 } 99 } 100 101 + let fps = 0; 102 + setInterval(() => { 103 + console.log('FPS: ' + fps); 104 + fps = 0; 105 + }, 1000); 106 + 107 let render = () => { 108 if(!quitRender) 109 requestAnimationFrame(render); ··· 124 ctx.clearRect(0, 0, photoContainer.width, photoContainer.height); 125 ctxBG.clearRect(0, 0, photoContainerBG.width, photoContainerBG.height); 126 127 + scroll = scroll + (targetScroll - scroll) * 0.1; 128 129 window.PhotoListRenderingManager.Render(ctx, photoContainer!, scroll); 130 ··· 139 } 140 141 ctxBG.drawImage(photoContainer, 0, 0); 142 + fps += 1; 143 } 144 145 listen('hide-window', () => { ··· 199 anime.set(scrollToTop, { opacity: 0, translateY: '-10px', display: 'none' }); 200 201 photoContainer.onwheel = ( e: WheelEvent ) => { 202 + targetScroll += e.deltaY * 2; 203 204 if(targetScroll < 0) 205 targetScroll = 0;
-1
src/Components/PhotoViewer.tsx
··· 458 onClick={() => window.ConfirmationBoxManager.SetConfirmationBox("Are you sure you want to delete this photo?", async () => { invoke("delete_photo", { 459 path: window.PhotoViewerManager.CurrentPhoto()?.path, 460 token: (await invoke('get_config_value_string', { key: 'token' })) || "none", 461 - isSyncing: window.AccountManager.hasAccount() ? window.AccountManager.Storage()?.isSyncing : false 462 }); 463 })}> 464 <div class="icon" style={{ width: '12px', margin: '0' }}>
··· 458 onClick={() => window.ConfirmationBoxManager.SetConfirmationBox("Are you sure you want to delete this photo?", async () => { invoke("delete_photo", { 459 path: window.PhotoViewerManager.CurrentPhoto()?.path, 460 token: (await invoke('get_config_value_string', { key: 'token' })) || "none", 461 }); 462 })}> 463 <div class="icon" style={{ width: '12px', margin: '0' }}>
+1 -1
src/Components/SettingsMenu.tsx
··· 280 finalPathConfirm.style.display = 'none'; 281 282 await invoke('change_final_path', { newPath: finalPathData }); 283 - await invoke('relaunch'); 284 285 anime({ 286 targets: '.settings',
··· 280 finalPathConfirm.style.display = 'none'; 281 282 await invoke('change_final_path', { newPath: finalPathData }); 283 + window.location.reload(); 284 285 anime({ 286 targets: '.settings',
-3
src/index.tsx
··· 3 4 declare global{ 5 interface Window { 6 - AccountManager: AccountManager; 7 LoadingManager: LoadingManager; 8 PhotoManager: PhotoManager; 9 ConfirmationBoxManager: ConfirmationBoxManager; ··· 27 import App from "./Components/App"; 28 import { invoke } from "@tauri-apps/api/core"; 29 30 - import { AccountManager } from "./Components/Managers/AccountManager"; 31 import { LoadingManager } from "./Components/Managers/LoadingManager"; 32 import { PhotoManager } from "./Components/Managers/PhotoManager"; 33 import { ConfirmationBoxManager } from "./Components/Managers/ConfirmationBoxManager"; ··· 37 import { SyncManager } from "./Components/Managers/SyncManager"; 38 import { ViewManager } from "./Components/Managers/ViewManager"; 39 40 - window.AccountManager = new AccountManager(); 41 window.LoadingManager = new LoadingManager(); 42 window.PhotoManager = new PhotoManager(); 43 window.ConfirmationBoxManager = new ConfirmationBoxManager();
··· 3 4 declare global{ 5 interface Window { 6 LoadingManager: LoadingManager; 7 PhotoManager: PhotoManager; 8 ConfirmationBoxManager: ConfirmationBoxManager; ··· 26 import App from "./Components/App"; 27 import { invoke } from "@tauri-apps/api/core"; 28 29 import { LoadingManager } from "./Components/Managers/LoadingManager"; 30 import { PhotoManager } from "./Components/Managers/PhotoManager"; 31 import { ConfirmationBoxManager } from "./Components/Managers/ConfirmationBoxManager"; ··· 35 import { SyncManager } from "./Components/Managers/SyncManager"; 36 import { ViewManager } from "./Components/Managers/ViewManager"; 37 38 window.LoadingManager = new LoadingManager(); 39 window.PhotoManager = new PhotoManager(); 40 window.ConfirmationBoxManager = new ConfirmationBoxManager();
+1 -2
src/styles.css
··· 333 top: 0; 334 left: 0; 335 z-index: -1; 336 - filter: blur(100px); 337 - -webkit-filter: blur(100px); 338 } 339 340 .single-photo-container{
··· 333 top: 0; 334 left: 0; 335 z-index: -1; 336 + /* filter: blur(100px); */ 337 } 338 339 .single-photo-container{
+1 -1
vite.config.ts
··· 11 12 // https://vitejs.dev/config/ 13 export default defineConfig(async () => ({ 14 - plugins: [solid(),], //fullReloadAlways], 15 16 // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` 17 //
··· 11 12 // https://vitejs.dev/config/ 13 export default defineConfig(async () => ({ 14 + plugins: [solid(), fullReloadAlways], 15 16 // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` 17 //