A photo manager for VRChat.

remove account stuff / remove auto updater

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