diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 13753bd8..969a9848 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -8,6 +8,8 @@ on: - 'package.json' - 'src-tauri/**' - 'updater/**' + branches: + - main pull_request: paths: - '.github/workflows/backend.yml' @@ -69,6 +71,7 @@ jobs: build-essential \ curl \ wget \ + libwebkit2gtk-4.1-dev \ libssl-dev \ libgtk-3-dev \ libayatana-appindicator3-dev \ diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a910fe4a..684b8bb8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,6 +9,8 @@ on: - 'src-tauri/**/*' - 'src/**/*' - 'updater/**/*' + branches: + - main pull_request: paths: - '.github/workflows/build.yml' @@ -106,7 +108,7 @@ jobs: if: matrix.config.platform == 'ubuntu-latest' run: | sudo apt-get update - sudo apt-get install -y libwebkit2gtk-4.0-dev \ + sudo apt-get install -y libwebkit2gtk-4.1-dev \ build-essential \ curl \ wget \ @@ -120,7 +122,8 @@ jobs: run: | sudo apt-get install -y \ libc6:armhf \ - libwebkit2gtk-4.0-dev:armhf \ + libapparmor1:armhf \ + libwebkit2gtk-4.1-dev:armhf \ libssl-dev:armhf \ gcc-arm-linux-gnueabihf @@ -129,7 +132,8 @@ jobs: run: | sudo apt-get install -y \ libc6:arm64 \ - libwebkit2gtk-4.0-dev:arm64 \ + libapparmor1:arm64 \ + libwebkit2gtk-4.1-dev:arm64 \ libssl-dev:arm64 \ gcc-aarch64-linux-gnu @@ -201,6 +205,7 @@ jobs: themes/ icons/ injection/ + extension/ - name: (Linux) Compress build if: matrix.config.platform == 'ubuntu-latest' diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index a8fa2252..54d52997 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -7,6 +7,8 @@ on: - '**.lock' - '**.rs' - '**.toml' + branches: + - main pull_request: paths-ignore: - '**.lock' diff --git a/.gitignore b/.gitignore index 7ceb32e5..29376995 100644 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,7 @@ src-tauri/injection/preinject_min.js src-tauri/injection/shelter.js src-tauri/html - src-tauri/updater* +src-tauri/gen updater/target \ No newline at end of file diff --git a/package.json b/package.json index 9e9cc8f2..63644d77 100644 --- a/package.json +++ b/package.json @@ -20,14 +20,14 @@ "shupdate": "curl -L https://raw.githubusercontent.com/uwu/shelter-builds/main/shelter.js -o src-tauri/injection/shelter.js" }, "devDependencies": { - "@tauri-apps/api": "^1.5.3", - "@tauri-apps/cli": "^1.5.11", - "@typescript-eslint/eslint-plugin": "^7.4.0", - "@typescript-eslint/parser": "^7.4.0", + "@tauri-apps/api": "2.0.0-rc.0", + "@tauri-apps/cli": "2.0.0-rc.0", + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", "esbuild": "^0.20.2", "eslint": "^8.57.0", - "prettier": "^3.2.5", - "typescript": "^5.4.3", - "vite": "^5.2.7" + "prettier": "^3.3.3", + "typescript": "^5.5.4", + "vite": "^5.3.5" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 730a7443..a8d481b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,17 +9,17 @@ importers: .: devDependencies: '@tauri-apps/api': - specifier: ^1.5.3 - version: 1.5.3 + specifier: 2.0.0-rc.0 + version: 2.0.0-rc.0 '@tauri-apps/cli': - specifier: ^1.5.11 - version: 1.5.11 + specifier: 2.0.0-rc.0 + version: 2.0.0-rc.0 '@typescript-eslint/eslint-plugin': - specifier: ^7.4.0 - version: 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) + specifier: ^7.18.0 + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) '@typescript-eslint/parser': - specifier: ^7.4.0 - version: 7.4.0(eslint@8.57.0)(typescript@5.4.3) + specifier: ^7.18.0 + version: 7.18.0(eslint@8.57.0)(typescript@5.5.4) esbuild: specifier: ^0.20.2 version: 0.20.2 @@ -27,14 +27,14 @@ importers: specifier: ^8.57.0 version: 8.57.0 prettier: - specifier: ^3.2.5 - version: 3.2.5 + specifier: ^3.3.3 + version: 3.3.3 typescript: - specifier: ^5.4.3 - version: 5.4.3 + specifier: ^5.5.4 + version: 5.5.4 vite: - specifier: ^5.2.7 - version: 5.2.7 + specifier: ^5.3.5 + version: 5.4.2 packages: @@ -48,138 +48,276 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.20.2': resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.20.2': resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.20.2': resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.20.2': resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.20.2': resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.20.2': resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.20.2': resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.20.2': resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.20.2': resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.20.2': resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.20.2': resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.20.2': resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.20.2': resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.20.2': resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.20.2': resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.20.2': resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.20.2': resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-x64@0.20.2': resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.20.2': resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.20.2': resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.20.2': resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.20.2': resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -221,161 +359,160 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@rollup/rollup-android-arm-eabi@4.13.2': - resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==} + '@rollup/rollup-android-arm-eabi@4.21.2': + resolution: {integrity: sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.13.2': - resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==} + '@rollup/rollup-android-arm64@4.21.2': + resolution: {integrity: sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.13.2': - resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==} + '@rollup/rollup-darwin-arm64@4.21.2': + resolution: {integrity: sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.13.2': - resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==} + '@rollup/rollup-darwin-x64@4.21.2': + resolution: {integrity: sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.13.2': - resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.21.2': + resolution: {integrity: sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.13.2': - resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==} + '@rollup/rollup-linux-arm-musleabihf@4.21.2': + resolution: {integrity: sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.21.2': + resolution: {integrity: sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.13.2': - resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==} + '@rollup/rollup-linux-arm64-musl@4.21.2': + resolution: {integrity: sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.13.2': - resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==} - cpu: [ppc64le] + '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': + resolution: {integrity: sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==} + cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.13.2': - resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==} + '@rollup/rollup-linux-riscv64-gnu@4.21.2': + resolution: {integrity: sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.13.2': - resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==} + '@rollup/rollup-linux-s390x-gnu@4.21.2': + resolution: {integrity: sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.13.2': - resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==} + '@rollup/rollup-linux-x64-gnu@4.21.2': + resolution: {integrity: sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.13.2': - resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==} + '@rollup/rollup-linux-x64-musl@4.21.2': + resolution: {integrity: sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.13.2': - resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==} + '@rollup/rollup-win32-arm64-msvc@4.21.2': + resolution: {integrity: sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.13.2': - resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==} + '@rollup/rollup-win32-ia32-msvc@4.21.2': + resolution: {integrity: sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.13.2': - resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==} + '@rollup/rollup-win32-x64-msvc@4.21.2': + resolution: {integrity: sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==} cpu: [x64] os: [win32] - '@tauri-apps/api@1.5.3': - resolution: {integrity: sha512-zxnDjHHKjOsrIzZm6nO5Xapb/BxqUq1tc7cGkFXsFkGTsSWgCPH1D8mm0XS9weJY2OaR73I3k3S+b7eSzJDfqA==} - engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} + '@tauri-apps/api@2.0.0-rc.0': + resolution: {integrity: sha512-v454Qs3REHc3Za59U+/eSmBsdmF+3NE5+76+lFDaitVqN4ZglDHENDaMARYKGJVZuxiSkzyqG0SeG7lLQjVkPA==} + engines: {node: '>= 18.18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} - '@tauri-apps/cli-darwin-arm64@1.5.11': - resolution: {integrity: sha512-2NLSglDb5VfvTbMtmOKWyD+oaL/e8Z/ZZGovHtUFyUSFRabdXc6cZOlcD1BhFvYkHqm+TqGaz5qtPR5UbqDs8A==} + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.0': + resolution: {integrity: sha512-jpQc++6ESFUuBpoXvJNPTRtrmToMIByOynZ4K5SAwI9RkKUikSaDmlRZV0GisOVPT7TT08khk7MPtAQeFyjqwA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@1.5.11': - resolution: {integrity: sha512-/RQllHiJRH2fJOCudtZlaUIjofkHzP3zZgxi71ZUm7Fy80smU5TDfwpwOvB0wSVh0g/ciDjMArCSTo0MRvL+ag==} + '@tauri-apps/cli-darwin-x64@2.0.0-rc.0': + resolution: {integrity: sha512-EnqsgcNUwH29YjQ4JdBID5kILQQdIJgZ36VQgtju/BBvnd1lr+6Bswdk1/4y41hhAVz9WyHeMCnTH33CSKvNxw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@1.5.11': - resolution: {integrity: sha512-IlBuBPKmMm+a5LLUEK6a21UGr9ZYd6zKuKLq6IGM4tVweQa8Sf2kP2Nqs74dMGIUrLmMs0vuqdURpykQg+z4NQ==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.0': + resolution: {integrity: sha512-YKg/qThAmQYRToiV8lx/DvMf0VaUJAutIfv8ALq9Or4zdg7mZlAlKvF+7lZQQRmKhQ62+0gnoJS2HyN8feaagw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@1.5.11': - resolution: {integrity: sha512-w+k1bNHCU/GbmXshtAhyTwqosThUDmCEFLU4Zkin1vl2fuAtQry2RN7thfcJFepblUGL/J7yh3Q/0+BCjtspKQ==} + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.0': + resolution: {integrity: sha512-UnflWuNhH/u41GSmG1jm6qhWUM4o1AB463QCaf2fAjLo5GWiI78U6rJOOXZvOOmWIQuzsmAUZjNDORWW13+osA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@1.5.11': - resolution: {integrity: sha512-PN6/dl+OfYQ/qrAy4HRAfksJ2AyWQYn2IA/2Wwpaa7SDRz2+hzwTQkvajuvy0sQ5L2WCG7ymFYRYMbpC6Hk9Pg==} + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.0': + resolution: {integrity: sha512-sWRaDyb332gtHWHr0KvoLzkzvXqRpZ0vpQYxKF2/mIZtaUuMtU56GmRwFVX4VjQYgWb3yWmzTr+tEKjCjXbjng==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@1.5.11': - resolution: {integrity: sha512-MTVXLi89Nj7Apcvjezw92m7ZqIDKT5SFKZtVPCg6RoLUBTzko/BQoXYIRWmdoz2pgkHDUHgO2OMJ8oKzzddXbw==} + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.0': + resolution: {integrity: sha512-1dokW+9ZfhwzwYz42jYR5A0/VnGoEGVW7HyN1N6KvHeL1FpSbh0LoTsDODjVjZSjXd62+Aac/stbJqBZChQWbA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@1.5.11': - resolution: {integrity: sha512-kwzAjqFpz7rvTs7WGZLy/a5nS5t15QKr3E9FG95MNF0exTl3d29YoAUAe1Mn0mOSrTJ9Z+vYYAcI/QdcsGBP+w==} + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.0': + resolution: {integrity: sha512-7tb34p3vLEGS4pGRpmxcz7eq37yD7DVe4XFfgj8ZO0KsaRBVivzNK2snNDLnd0dVZcx/lJjZc8Cf0B5W1/x/Jw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@1.5.11': - resolution: {integrity: sha512-L+5NZ/rHrSUrMxjj6YpFYCXp6wHnq8c8SfDTBOX8dO8x+5283/vftb4vvuGIsLS4UwUFXFnLt3XQr44n84E67Q==} + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.0': + resolution: {integrity: sha512-Ilw3Gro8ZBew9yfBXcaET9lLj0g4jehWDMH6j2Wdje1rnvBbQShMaSn3WNMfJypyet5nqM88nGA3YipzmVcIBA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@1.5.11': - resolution: {integrity: sha512-oVlD9IVewrY0lZzTdb71kNXkjdgMqFq+ohb67YsJb4Rf7o8A9DTlFds1XLCe3joqLMm4M+gvBKD7YnGIdxQ9vA==} + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.0': + resolution: {integrity: sha512-AWzgDlvv0BssWH3aNsDXLRkKbGynWdm5X6DenSQKtZm5dmDBZsNlZRMgkyPb8WSHK/7ARznKs2OdnkuHWuh9ww==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@1.5.11': - resolution: {integrity: sha512-1CexcqUFCis5ypUIMOKllxUBrna09McbftWENgvVXMfA+SP+yPDPAVb8fIvUcdTIwR/yHJwcIucmTB4anww4vg==} + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.0': + resolution: {integrity: sha512-zmXDUkBmzZ6lk6jT6AoOAE2w+kmkLX5uf/vaJHHzE6WsrZ6UymH0HTLwbRXhaplvpnzXGVyLuSlv3/BK6Q69aQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@1.5.11': - resolution: {integrity: sha512-B475D7phZrq5sZ3kDABH4g2mEoUIHtnIO+r4ZGAAfsjMbZCwXxR/jlMGTEL+VO3YzjpF7gQe38IzB4vLBbVppw==} + '@tauri-apps/cli@2.0.0-rc.0': + resolution: {integrity: sha512-X9N/R7e3zeTpU0HgQi2kaNYncMFoSTzXstnUyGOcKrJcCkR4ebbA2nYqhGvIPfglLKHNFRTZwfPNhixx2Ftxxg==} engines: {node: '>= 10'} hasBin: true '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/semver@7.5.5': - resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} - - '@typescript-eslint/eslint-plugin@7.4.0': - resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} + '@typescript-eslint/eslint-plugin@7.18.0': + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -385,8 +522,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.4.0': - resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -395,12 +532,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.4.0': - resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.4.0': - resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -409,12 +546,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.4.0': - resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/typescript-estree@7.4.0': - resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -422,14 +559,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.4.0': - resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/visitor-keys@7.4.0': - resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} '@ungap/structured-clone@1.2.0': @@ -523,6 +660,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -633,6 +775,10 @@ packages: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -693,10 +839,6 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -708,8 +850,8 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} ms@2.1.2: @@ -758,23 +900,23 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + postcss@8.4.44: + resolution: {integrity: sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true @@ -797,16 +939,16 @@ packages: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true - rollup@4.13.2: - resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==} + rollup@4.21.2: + resolution: {integrity: sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true @@ -859,16 +1001,16 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} hasBin: true uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - vite@5.2.7: - resolution: {integrity: sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==} + vite@5.4.2: + resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -876,6 +1018,7 @@ packages: less: '*' lightningcss: ^1.21.0 sass: '*' + sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 @@ -888,6 +1031,8 @@ packages: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -903,9 +1048,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -917,72 +1059,141 @@ snapshots: '@esbuild/aix-ppc64@0.20.2': optional: true + '@esbuild/aix-ppc64@0.21.5': + optional: true + '@esbuild/android-arm64@0.20.2': optional: true + '@esbuild/android-arm64@0.21.5': + optional: true + '@esbuild/android-arm@0.20.2': optional: true + '@esbuild/android-arm@0.21.5': + optional: true + '@esbuild/android-x64@0.20.2': optional: true + '@esbuild/android-x64@0.21.5': + optional: true + '@esbuild/darwin-arm64@0.20.2': optional: true + '@esbuild/darwin-arm64@0.21.5': + optional: true + '@esbuild/darwin-x64@0.20.2': optional: true + '@esbuild/darwin-x64@0.21.5': + optional: true + '@esbuild/freebsd-arm64@0.20.2': optional: true + '@esbuild/freebsd-arm64@0.21.5': + optional: true + '@esbuild/freebsd-x64@0.20.2': optional: true + '@esbuild/freebsd-x64@0.21.5': + optional: true + '@esbuild/linux-arm64@0.20.2': optional: true + '@esbuild/linux-arm64@0.21.5': + optional: true + '@esbuild/linux-arm@0.20.2': optional: true + '@esbuild/linux-arm@0.21.5': + optional: true + '@esbuild/linux-ia32@0.20.2': optional: true + '@esbuild/linux-ia32@0.21.5': + optional: true + '@esbuild/linux-loong64@0.20.2': optional: true + '@esbuild/linux-loong64@0.21.5': + optional: true + '@esbuild/linux-mips64el@0.20.2': optional: true + '@esbuild/linux-mips64el@0.21.5': + optional: true + '@esbuild/linux-ppc64@0.20.2': optional: true + '@esbuild/linux-ppc64@0.21.5': + optional: true + '@esbuild/linux-riscv64@0.20.2': optional: true + '@esbuild/linux-riscv64@0.21.5': + optional: true + '@esbuild/linux-s390x@0.20.2': optional: true + '@esbuild/linux-s390x@0.21.5': + optional: true + '@esbuild/linux-x64@0.20.2': optional: true + '@esbuild/linux-x64@0.21.5': + optional: true + '@esbuild/netbsd-x64@0.20.2': optional: true + '@esbuild/netbsd-x64@0.21.5': + optional: true + '@esbuild/openbsd-x64@0.20.2': optional: true + '@esbuild/openbsd-x64@0.21.5': + optional: true + '@esbuild/sunos-x64@0.20.2': optional: true + '@esbuild/sunos-x64@0.21.5': + optional: true + '@esbuild/win32-arm64@0.20.2': optional: true + '@esbuild/win32-arm64@0.21.5': + optional: true + '@esbuild/win32-ia32@0.20.2': optional: true + '@esbuild/win32-ia32@0.21.5': + optional: true + '@esbuild/win32-x64@0.20.2': optional: true + '@esbuild/win32-x64@0.21.5': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 @@ -1030,182 +1241,180 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - '@rollup/rollup-android-arm-eabi@4.13.2': + '@rollup/rollup-android-arm-eabi@4.21.2': + optional: true + + '@rollup/rollup-android-arm64@4.21.2': optional: true - '@rollup/rollup-android-arm64@4.13.2': + '@rollup/rollup-darwin-arm64@4.21.2': optional: true - '@rollup/rollup-darwin-arm64@4.13.2': + '@rollup/rollup-darwin-x64@4.21.2': optional: true - '@rollup/rollup-darwin-x64@4.13.2': + '@rollup/rollup-linux-arm-gnueabihf@4.21.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.13.2': + '@rollup/rollup-linux-arm-musleabihf@4.21.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.13.2': + '@rollup/rollup-linux-arm64-gnu@4.21.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.13.2': + '@rollup/rollup-linux-arm64-musl@4.21.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.13.2': + '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.13.2': + '@rollup/rollup-linux-riscv64-gnu@4.21.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.13.2': + '@rollup/rollup-linux-s390x-gnu@4.21.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.13.2': + '@rollup/rollup-linux-x64-gnu@4.21.2': optional: true - '@rollup/rollup-linux-x64-musl@4.13.2': + '@rollup/rollup-linux-x64-musl@4.21.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.13.2': + '@rollup/rollup-win32-arm64-msvc@4.21.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.13.2': + '@rollup/rollup-win32-ia32-msvc@4.21.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.13.2': + '@rollup/rollup-win32-x64-msvc@4.21.2': optional: true - '@tauri-apps/api@1.5.3': {} + '@tauri-apps/api@2.0.0-rc.0': {} - '@tauri-apps/cli-darwin-arm64@1.5.11': + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.0': optional: true - '@tauri-apps/cli-darwin-x64@1.5.11': + '@tauri-apps/cli-darwin-x64@2.0.0-rc.0': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@1.5.11': + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.0': optional: true - '@tauri-apps/cli-linux-arm64-gnu@1.5.11': + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.0': optional: true - '@tauri-apps/cli-linux-arm64-musl@1.5.11': + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.0': optional: true - '@tauri-apps/cli-linux-x64-gnu@1.5.11': + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.0': optional: true - '@tauri-apps/cli-linux-x64-musl@1.5.11': + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.0': optional: true - '@tauri-apps/cli-win32-arm64-msvc@1.5.11': + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.0': optional: true - '@tauri-apps/cli-win32-ia32-msvc@1.5.11': + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.0': optional: true - '@tauri-apps/cli-win32-x64-msvc@1.5.11': + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.0': optional: true - '@tauri-apps/cli@1.5.11': + '@tauri-apps/cli@2.0.0-rc.0': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 1.5.11 - '@tauri-apps/cli-darwin-x64': 1.5.11 - '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.11 - '@tauri-apps/cli-linux-arm64-gnu': 1.5.11 - '@tauri-apps/cli-linux-arm64-musl': 1.5.11 - '@tauri-apps/cli-linux-x64-gnu': 1.5.11 - '@tauri-apps/cli-linux-x64-musl': 1.5.11 - '@tauri-apps/cli-win32-arm64-msvc': 1.5.11 - '@tauri-apps/cli-win32-ia32-msvc': 1.5.11 - '@tauri-apps/cli-win32-x64-msvc': 1.5.11 + '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.0 + '@tauri-apps/cli-darwin-x64': 2.0.0-rc.0 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.0 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.0 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.0 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.0 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.0 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.0 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.0 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.0 '@types/estree@1.0.5': {} - '@types/json-schema@7.0.15': {} - - '@types/semver@7.5.5': {} - - '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/scope-manager': 7.4.0 - '@typescript-eslint/type-utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.4.0 - debug: 4.3.4 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.18.0 eslint: 8.57.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.2 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3)': + '@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 7.4.0 - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.4.0 + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.3.4 eslint: 8.57.0 - typescript: 5.4.3 + optionalDependencies: + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.4.0': + '@typescript-eslint/scope-manager@7.18.0': dependencies: - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/visitor-keys': 7.4.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)': + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) - '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) debug: 4.3.4 eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@7.4.0': {} + '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/visitor-keys': 7.4.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3)': + '@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.5 - '@typescript-eslint/scope-manager': 7.4.0 - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) eslint: 8.57.0 - semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@7.4.0': + '@typescript-eslint/visitor-keys@7.18.0': dependencies: - '@typescript-eslint/types': 7.4.0 + '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} @@ -1309,6 +1518,32 @@ snapshots: '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + escape-string-regexp@4.0.0: {} eslint-scope@7.2.2: @@ -1459,6 +1694,8 @@ snapshots: ignore@5.2.4: {} + ignore@5.3.2: {} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 @@ -1510,10 +1747,6 @@ snapshots: lodash.merge@4.6.2: {} - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - merge2@1.4.1: {} micromatch@4.0.5: @@ -1525,7 +1758,7 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@9.0.3: + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -1568,19 +1801,19 @@ snapshots: path-type@4.0.0: {} - picocolors@1.0.0: {} + picocolors@1.1.0: {} picomatch@2.3.1: {} - postcss@8.4.38: + postcss@8.4.44: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.1.0 source-map-js: 1.2.0 prelude-ls@1.2.1: {} - prettier@3.2.5: {} + prettier@3.3.3: {} punycode@2.3.1: {} @@ -1594,34 +1827,33 @@ snapshots: dependencies: glob: 7.2.3 - rollup@4.13.2: + rollup@4.21.2: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.13.2 - '@rollup/rollup-android-arm64': 4.13.2 - '@rollup/rollup-darwin-arm64': 4.13.2 - '@rollup/rollup-darwin-x64': 4.13.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.13.2 - '@rollup/rollup-linux-arm64-gnu': 4.13.2 - '@rollup/rollup-linux-arm64-musl': 4.13.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.13.2 - '@rollup/rollup-linux-riscv64-gnu': 4.13.2 - '@rollup/rollup-linux-s390x-gnu': 4.13.2 - '@rollup/rollup-linux-x64-gnu': 4.13.2 - '@rollup/rollup-linux-x64-musl': 4.13.2 - '@rollup/rollup-win32-arm64-msvc': 4.13.2 - '@rollup/rollup-win32-ia32-msvc': 4.13.2 - '@rollup/rollup-win32-x64-msvc': 4.13.2 + '@rollup/rollup-android-arm-eabi': 4.21.2 + '@rollup/rollup-android-arm64': 4.21.2 + '@rollup/rollup-darwin-arm64': 4.21.2 + '@rollup/rollup-darwin-x64': 4.21.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.2 + '@rollup/rollup-linux-arm-musleabihf': 4.21.2 + '@rollup/rollup-linux-arm64-gnu': 4.21.2 + '@rollup/rollup-linux-arm64-musl': 4.21.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.2 + '@rollup/rollup-linux-riscv64-gnu': 4.21.2 + '@rollup/rollup-linux-s390x-gnu': 4.21.2 + '@rollup/rollup-linux-x64-gnu': 4.21.2 + '@rollup/rollup-linux-x64-musl': 4.21.2 + '@rollup/rollup-win32-arm64-msvc': 4.21.2 + '@rollup/rollup-win32-ia32-msvc': 4.21.2 + '@rollup/rollup-win32-x64-msvc': 4.21.2 fsevents: 2.3.3 run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 + semver@7.6.3: {} shebang-command@2.0.0: dependencies: @@ -1649,9 +1881,9 @@ snapshots: dependencies: is-number: 7.0.0 - ts-api-utils@1.3.0(typescript@5.4.3): + ts-api-utils@1.3.0(typescript@5.5.4): dependencies: - typescript: 5.4.3 + typescript: 5.5.4 type-check@0.4.0: dependencies: @@ -1659,17 +1891,17 @@ snapshots: type-fest@0.20.2: {} - typescript@5.4.3: {} + typescript@5.5.4: {} uri-js@4.4.1: dependencies: punycode: 2.3.1 - vite@5.2.7: + vite@5.4.2: dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.13.2 + esbuild: 0.21.5 + postcss: 8.4.44 + rollup: 4.21.2 optionalDependencies: fsevents: 2.3.3 @@ -1679,6 +1911,4 @@ snapshots: wrappy@1.0.2: {} - yallist@4.0.0: {} - yocto-queue@0.1.0: {} diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore index f4dfb82b..0c31fbf6 100644 --- a/src-tauri/.gitignore +++ b/src-tauri/.gitignore @@ -2,3 +2,4 @@ # will have compiled files and executables /target/ +gen/ \ No newline at end of file diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 7606159d..a6eca3c2 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -92,25 +92,6 @@ version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" -[[package]] -name = "arboard" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb4009533e8ff8f1450a5bcbc30f4242a1d34442221f72314bea1f5dc9c7f89" -dependencies = [ - "clipboard-win", - "core-graphics 0.23.2", - "image 0.25.2", - "log", - "objc2 0.5.2", - "objc2-app-kit", - "objc2-foundation", - "parking_lot", - "windows-sys 0.48.0", - "wl-clipboard-rs", - "x11rb", -] - [[package]] name = "arrayvec" version = "0.7.6" @@ -119,11 +100,11 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "ash" -version = "0.37.3+1.3.251" +version = "0.38.0+1.3.281" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" +checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f" dependencies = [ - "libloading 0.7.4", + "libloading 0.8.5", ] [[package]] @@ -232,7 +213,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -261,37 +242,36 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] name = "atk" -version = "0.15.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" +checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4" dependencies = [ "atk-sys", - "bitflags 1.3.2", "glib", "libc", ] [[package]] name = "atk-sys" -version = "0.15.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" +checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009" dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -332,12 +312,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -350,29 +324,20 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - [[package]] name = "bit-set" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "f0481a0e032742109b1133a095184ee93d88f3dc9e0d28a5d033dc77a073f44f" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "d2c54ff287cfc0a34f38a6b832ea1bd8e448a330b3e40a50859e6488bee07f22" [[package]] name = "bitflags" @@ -385,6 +350,9 @@ name = "bitflags" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +dependencies = [ + "serde", +] [[package]] name = "block" @@ -407,7 +375,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" dependencies = [ - "objc2 0.5.2", + "objc2", ] [[package]] @@ -444,16 +412,6 @@ dependencies = [ "alloc-stdlib", ] -[[package]] -name = "bstr" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "bumpalo" version = "3.16.0" @@ -462,9 +420,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.17.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31" +checksum = "773d90827bc3feecfb67fab12e24de0749aad83c74b9504ecde46237b5cd24e2" [[package]] name = "byteorder" @@ -472,12 +430,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" -[[package]] -name = "byteorder-lite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" - [[package]] name = "bytes" version = "1.7.1" @@ -489,43 +441,76 @@ dependencies = [ [[package]] name = "cairo-rs" -version = "0.15.12" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "cairo-sys-rs", "glib", "libc", + "once_cell", "thiserror", ] [[package]] name = "cairo-sys-rs" -version = "0.15.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" dependencies = [ "glib-sys", "libc", - "system-deps 6.2.2", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", ] [[package]] name = "cargo_toml" -version = "0.15.3" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" +checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" dependencies = [ "serde", - "toml 0.7.8", + "toml 0.8.2", ] [[package]] name = "cc" -version = "1.1.14" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d2eb3cd3d1bf4529e31c215ee6f93ec5a3d536d9f578f93d9d33ee19562932" +checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" dependencies = [ "shlex", ] @@ -547,15 +532,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "cfg-expr" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" -dependencies = [ - "smallvec", -] - [[package]] name = "cfg-expr" version = "0.15.8" @@ -599,42 +575,33 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "clipboard-win" -version = "5.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" -dependencies = [ - "error-code", -] - [[package]] name = "cocoa" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" dependencies = [ "bitflags 1.3.2", "block", - "cocoa-foundation", - "core-foundation", - "core-graphics 0.22.3", - "foreign-types 0.3.2", + "cocoa-foundation 0.1.2", + "core-foundation 0.9.4", + "core-graphics 0.23.2", + "foreign-types 0.5.0", "libc", "objc", ] [[package]] name = "cocoa" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" +checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "block", - "cocoa-foundation", - "core-foundation", - "core-graphics 0.23.2", + "cocoa-foundation 0.2.0", + "core-foundation 0.10.0", + "core-graphics 0.24.0", "foreign-types 0.5.0", "libc", "objc", @@ -648,8 +615,22 @@ checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" dependencies = [ "bitflags 1.3.2", "block", - "core-foundation", - "core-graphics-types", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" +dependencies = [ + "bitflags 2.6.0", + "block", + "core-foundation 0.10.0", + "core-graphics-types 0.2.0", "libc", "objc", ] @@ -726,6 +707,34 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "percent-encoding", + "time", + "version_check", +] + +[[package]] +name = "cookie_store" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4934e6b7e8419148b6ef56950d277af8561060b56afd59e2aadf98b59fce6baa" +dependencies = [ + "cookie", + "idna 0.5.0", + "log", + "publicsuffix", + "serde", + "serde_derive", + "serde_json", + "time", + "url", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -736,6 +745,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -744,26 +763,26 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core-graphics" -version = "0.22.3" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" dependencies = [ "bitflags 1.3.2", - "core-foundation", - "core-graphics-types", - "foreign-types 0.3.2", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "foreign-types 0.5.0", "libc", ] [[package]] name = "core-graphics" -version = "0.23.2" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-graphics-types", + "bitflags 2.6.0", + "core-foundation 0.10.0", + "core-graphics-types 0.2.0", "foreign-types 0.5.0", "libc", ] @@ -775,7 +794,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.10.0", "libc", ] @@ -874,7 +904,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -884,7 +914,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" dependencies = [ "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -908,7 +938,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -919,7 +949,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -934,6 +964,12 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +[[package]] +name = "data-url" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" + [[package]] name = "deranged" version = "0.3.11" @@ -945,14 +981,14 @@ dependencies = [ ] [[package]] -name = "derive-new" -version = "0.6.0" +name = "derivative" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 1.0.109", ] [[package]] @@ -965,7 +1001,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1062,12 +1098,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" [[package]] -name = "dlib" -version = "0.5.2" +name = "dlopen2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6" dependencies = [ - "libloading 0.8.5", + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", ] [[package]] @@ -1084,7 +1134,6 @@ name = "dorion" version = "5.0.1" dependencies = [ "async-recursion", - "auto-launch", "base64 0.22.1", "block", "chrono", @@ -1092,34 +1141,44 @@ dependencies = [ "device_query", "dirs 5.0.1", "embed_plist", + "fs4", "include-flate", "objc", "objc-foundation", "phf 0.11.2", - "reqwest 0.12.7", + "regex", + "reqwest", "rsrpc", "serde", "serde_json", "sysinfo 0.30.13", "tauri", "tauri-build", - "tauri-plugin-deep-link", + "tauri-plugin-autostart", + "tauri-plugin-http", + "tauri-plugin-notification", + "tauri-plugin-process", + "tauri-plugin-shell", + "tauri-plugin-single-instance", "tauri-plugin-window-state", "webkit2gtk", "webview2-com", "wgpu", - "window-shadows", "window-vibrancy", "window_titles", - "windows 0.39.0", - "windows-implement 0.39.0", + "windows 0.58.0", + "windows-core 0.58.0", + "windows-implement 0.58.0", ] [[package]] -name = "downcast-rs" -version = "1.2.1" +name = "dpi" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" +dependencies = [ + "serde", +] [[package]] name = "dtoa" @@ -1142,6 +1201,12 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + [[package]] name = "either" version = "1.13.0" @@ -1157,7 +1222,7 @@ dependencies = [ "cc", "memchr", "rustc_version", - "toml 0.8.19", + "toml 0.8.2", "vswhom", "winreg 0.52.0", ] @@ -1201,7 +1266,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1210,6 +1275,16 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "erased-serde" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" +dependencies = [ + "serde", + "typeid", +] + [[package]] name = "errno" version = "0.3.9" @@ -1220,12 +1295,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "error-code" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b" - [[package]] name = "event-listener" version = "5.3.1" @@ -1268,28 +1337,10 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ - "memoffset 0.9.1", + "memoffset", "rustc_version", ] -[[package]] -name = "filetime" -version = "0.2.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" -dependencies = [ - "cfg-if", - "libc", - "libredox", - "windows-sys 0.59.0", -] - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - [[package]] name = "flate2" version = "1.0.33" @@ -1355,7 +1406,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1379,6 +1430,16 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs4" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c6b3bd49c37d2aa3f3f2220233b29a7cd23f79d1fe70e5337d25fb390793de" +dependencies = [ + "rustix", + "windows-sys 0.52.0", +] + [[package]] name = "futf" version = "0.1.5" @@ -1443,7 +1504,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1486,11 +1547,10 @@ dependencies = [ [[package]] name = "gdk" -version = "0.15.4" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" +checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646" dependencies = [ - "bitflags 1.3.2", "cairo-rs", "gdk-pixbuf", "gdk-sys", @@ -1502,35 +1562,35 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.15.11" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" dependencies = [ - "bitflags 1.3.2", "gdk-pixbuf-sys", "gio", "glib", "libc", + "once_cell", ] [[package]] name = "gdk-pixbuf-sys" -version = "0.15.10" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" dependencies = [ "gio-sys", "glib-sys", "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps", ] [[package]] name = "gdk-sys" -version = "0.15.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -1540,33 +1600,47 @@ dependencies = [ "libc", "pango-sys", "pkg-config", - "system-deps 6.2.2", + "system-deps", ] [[package]] name = "gdkwayland-sys" -version = "0.15.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cca49a59ad8cfdf36ef7330fe7bdfbe1d34323220cc16a0de2679ee773aee2c2" +checksum = "a90fbf5c033c65d93792192a49a8efb5bb1e640c419682a58bb96f5ae77f3d4a" dependencies = [ "gdk-sys", "glib-sys", "gobject-sys", "libc", "pkg-config", - "system-deps 6.2.2", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2ea8a4909d530f79921290389cbd7c34cb9d623bfe970eaae65ca5f9cd9cce" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", ] [[package]] name = "gdkx11-sys" -version = "0.15.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +checksum = "fee8f00f4ee46cad2939b8990f5c70c94ff882c3028f3cc5abf950fa4ab53043" dependencies = [ "gdk-sys", "glib-sys", "libc", - "system-deps 6.2.2", + "system-deps", "x11", ] @@ -1593,16 +1667,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "gethostname" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" -dependencies = [ - "libc", - "windows-targets 0.48.5", -] - [[package]] name = "getrandom" version = "0.1.16" @@ -1635,31 +1699,33 @@ checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "gio" -version = "0.15.12" +version = "0.18.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" dependencies = [ - "bitflags 1.3.2", "futures-channel", "futures-core", "futures-io", + "futures-util", "gio-sys", "glib", "libc", "once_cell", + "pin-project-lite", + "smallvec", "thiserror", ] [[package]] name = "gio-sys" -version = "0.15.10" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps", "winapi", ] @@ -1676,19 +1742,22 @@ dependencies = [ [[package]] name = "glib" -version = "0.15.12" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "futures-channel", "futures-core", "futures-executor", "futures-task", + "futures-util", + "gio-sys", "glib-macros", "glib-sys", "gobject-sys", "libc", + "memchr", "once_cell", "smallvec", "thiserror", @@ -1696,27 +1765,26 @@ dependencies = [ [[package]] name = "glib-macros" -version = "0.15.13" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" dependencies = [ - "anyhow", "heck 0.4.1", - "proc-macro-crate 1.3.1", + "proc-macro-crate 2.0.2", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.77", ] [[package]] name = "glib-sys" -version = "0.15.10" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" dependencies = [ "libc", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -1725,19 +1793,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "globset" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" -dependencies = [ - "aho-corasick", - "bstr", - "log", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", -] - [[package]] name = "glow" version = "0.13.1" @@ -1752,22 +1807,22 @@ dependencies = [ [[package]] name = "glutin_wgl_sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead" +checksum = "0a4e1951bbd9434a81aa496fe59ccc2235af3820d27b85f9314e279609211e2c" dependencies = [ "gl_generator", ] [[package]] name = "gobject-sys" -version = "0.15.10" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" dependencies = [ "glib-sys", "libc", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -1791,9 +1846,9 @@ dependencies = [ [[package]] name = "gpu-allocator" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884" +checksum = "fdd4240fc91d3433d5e5b0fc5b67672d771850dc19bbee03c1381e19322803d7" dependencies = [ "log", "presser", @@ -1824,12 +1879,11 @@ dependencies = [ [[package]] name = "gtk" -version = "0.15.5" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" +checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c" dependencies = [ "atk", - "bitflags 1.3.2", "cairo-rs", "field-offset", "futures-channel", @@ -1840,16 +1894,15 @@ dependencies = [ "gtk-sys", "gtk3-macros", "libc", - "once_cell", "pango", "pkg-config", ] [[package]] name = "gtk-sys" -version = "0.15.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722" dependencies = [ "atk-sys", "cairo-sys-rs", @@ -1860,40 +1913,20 @@ dependencies = [ "gobject-sys", "libc", "pango-sys", - "system-deps 6.2.2", + "system-deps", ] [[package]] name = "gtk3-macros" -version = "0.15.6" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d" +checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e" dependencies = [ - "anyhow", "proc-macro-crate 1.3.1", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.4.0", - "slab", - "tokio", - "tokio-util", - "tracing", + "syn 2.0.77", ] [[package]] @@ -1908,7 +1941,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.4.0", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -1946,15 +1979,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "heck" version = "0.4.1" @@ -1985,15 +2009,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "html5ever" version = "0.26.0" @@ -2030,17 +2045,6 @@ dependencies = [ "itoa 1.0.11", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -2060,52 +2064,16 @@ dependencies = [ "bytes", "futures-util", "http 1.1.0", - "http-body 1.0.1", + "http-body", "pin-project-lite", ] -[[package]] -name = "http-range" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" - [[package]] name = "httparse" version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa 1.0.11", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.4.1" @@ -2115,9 +2083,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", + "h2", "http 1.1.0", - "http-body 1.0.1", + "http-body", "httparse", "itoa 1.0.11", "pin-project-lite", @@ -2134,26 +2102,14 @@ checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" dependencies = [ "futures-util", "http 1.1.0", - "hyper 1.4.1", + "hyper", "hyper-util", "rustls", "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper 0.14.30", - "native-tls", - "tokio", - "tokio-native-tls", + "webpki-roots", ] [[package]] @@ -2164,7 +2120,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.4.1", + "hyper", "hyper-util", "native-tls", "tokio", @@ -2182,8 +2138,8 @@ dependencies = [ "futures-channel", "futures-util", "http 1.1.0", - "http-body 1.0.1", - "hyper 1.4.1", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -2233,28 +2189,22 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" dependencies = [ "unicode-bidi", "unicode-normalization", ] [[package]] -name = "ignore" -version = "0.4.22" +name = "idna" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ - "crossbeam-deque", - "globset", - "log", - "memchr", - "regex-automata 0.4.7", - "same-file", - "walkdir", - "winapi-util", + "unicode-bidi", + "unicode-normalization", ] [[package]] @@ -2267,19 +2217,7 @@ dependencies = [ "byteorder", "color_quant", "num-traits", -] - -[[package]] -name = "image" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" -dependencies = [ - "bytemuck", - "byteorder-lite", - "num-traits", "png", - "tiff", ] [[package]] @@ -2302,7 +2240,7 @@ dependencies = [ "libflate", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -2318,9 +2256,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -2329,9 +2267,9 @@ dependencies = [ [[package]] name = "infer" -version = "0.13.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f551f8c3a39f68f986517db0d1759de85881894fdc7db798bd2a9df9cb04b7fc" +checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199" dependencies = [ "cfb", ] @@ -2346,23 +2284,29 @@ dependencies = [ ] [[package]] -name = "interprocess" -version = "1.2.1" +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is-docker" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81f2533f3be42fffe3b5e63b71aeca416c1c3bc33e4e27be018521e76b1f38fb" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" dependencies = [ - "cfg-if", - "libc", - "rustc_version", - "to_method", - "winapi", + "once_cell", ] [[package]] -name = "ipnet" -version = "2.9.0" +name = "is-wsl" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] [[package]] name = "itoa" @@ -2378,9 +2322,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "javascriptcore-rs" -version = "0.16.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" dependencies = [ "bitflags 1.3.2", "glib", @@ -2389,28 +2333,30 @@ dependencies = [ [[package]] name = "javascriptcore-rs-sys" -version = "0.4.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 5.0.0", + "system-deps", ] [[package]] name = "jni" -version = "0.20.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", + "cfg-if", "combine", "jni-sys", "log", "thiserror", "walkdir", + "windows-sys 0.45.0", ] [[package]] @@ -2419,12 +2365,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" -[[package]] -name = "jpeg-decoder" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" - [[package]] name = "js-sys" version = "0.3.70" @@ -2457,6 +2397,17 @@ dependencies = [ "serde_json", ] +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.6.0", + "serde", + "unicode-segmentation", +] + [[package]] name = "khronos-egl" version = "6.0.0" @@ -2495,9 +2446,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libappindicator" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2d3cb96d092b4824cb306c9e544c856a4cb6210c1081945187f7f1924b47e8" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" dependencies = [ "glib", "gtk", @@ -2508,9 +2459,9 @@ dependencies = [ [[package]] name = "libappindicator-sys" -version = "0.7.3" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b3b6681973cea8cc3bce7391e6d7d5502720b80a581c9a95c9cbaf592826aa" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" dependencies = [ "gtk-sys", "libloading 0.7.4", @@ -2575,7 +2526,6 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", - "redox_syscall", ] [[package]] @@ -2646,7 +2596,7 @@ version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edf7710fbff50c24124331760978fb9086d6de6288dcdb38b25a97f8b1bdebbb" dependencies = [ - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", ] @@ -2694,15 +2644,6 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.9.1" @@ -2714,13 +2655,13 @@ dependencies = [ [[package]] name = "metal" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5637e166ea14be6063a3f8ba5ccb9a4159df7d8f6d61c02fc3d480b1f90dcfcb" +checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ "bitflags 2.6.0", "block", - "core-graphics-types", + "core-graphics-types 0.1.3", "foreign-types 0.5.0", "log", "objc", @@ -2733,12 +2674,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" version = "0.7.4" @@ -2770,20 +2705,39 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "muda" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba8ac4080fb1e097c2c22acae467e46e4da72d941f02e82b67a87a2a89fa38b1" +dependencies = [ + "cocoa 0.26.0", + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc", + "once_cell", + "png", + "serde", + "thiserror", + "windows-sys 0.59.0", +] + [[package]] name = "naga" -version = "0.20.0" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e536ae46fcab0876853bd4a632ede5df4b1c2527a58f6c5a4150fe86be858231" +checksum = "8bd5a652b6faf21496f2cfd88fc49989c8db0825d1f6746b1a71a6ede24a63ad" dependencies = [ "arrayvec", "bit-set", "bitflags 2.6.0", + "cfg_aliases 0.1.1", "codespan-reporting", - "indexmap 2.4.0", + "indexmap 2.5.0", "log", - "num-traits", - "rustc-hash", + "rustc-hash 1.1.0", "spirv", "termcolor", "thiserror", @@ -2817,14 +2771,16 @@ dependencies = [ [[package]] name = "ndk" -version = "0.6.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "jni-sys", - "ndk-sys 0.3.0", + "log", + "ndk-sys 0.6.0+11769913", "num_enum", + "raw-window-handle", "thiserror", ] @@ -2836,18 +2792,18 @@ checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" [[package]] name = "ndk-sys" -version = "0.3.0" +version = "0.5.0+25.2.9519653" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" dependencies = [ "jni-sys", ] [[package]] name = "ndk-sys" -version = "0.5.0+25.2.9519653" +version = "0.6.0+11769913" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" dependencies = [ "jni-sys", ] @@ -2860,39 +2816,14 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nix" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "libc", - "memoffset 0.7.1", -] - -[[package]] -name = "nix" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "cfg_aliases 0.1.1", - "libc", -] - -[[package]] -name = "nix" -version = "0.29.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ "bitflags 2.6.0", "cfg-if", - "cfg_aliases 0.2.1", "libc", - "memoffset 0.9.1", + "memoffset", ] [[package]] @@ -2901,16 +2832,6 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - [[package]] name = "notify-rust" version = "4.11.1" @@ -2960,23 +2881,23 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.5.11" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.11" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 2.0.2", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.77", ] [[package]] @@ -3006,16 +2927,6 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" -[[package]] -name = "objc2" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" -dependencies = [ - "objc-sys", - "objc2-encode 3.0.0", -] - [[package]] name = "objc2" version = "0.5.2" @@ -3023,7 +2934,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" dependencies = [ "objc-sys", - "objc2-encode 4.0.3", + "objc2-encode", ] [[package]] @@ -3035,7 +2946,7 @@ dependencies = [ "bitflags 2.6.0", "block2", "libc", - "objc2 0.5.2", + "objc2", "objc2-core-data", "objc2-core-image", "objc2-foundation", @@ -3050,7 +2961,7 @@ checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ "bitflags 2.6.0", "block2", - "objc2 0.5.2", + "objc2", "objc2-foundation", ] @@ -3061,17 +2972,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ "block2", - "objc2 0.5.2", + "objc2", "objc2-foundation", "objc2-metal", ] -[[package]] -name = "objc2-encode" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666" - [[package]] name = "objc2-encode" version = "4.0.3" @@ -3086,8 +2991,9 @@ checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ "bitflags 2.6.0", "block2", + "dispatch", "libc", - "objc2 0.5.2", + "objc2", ] [[package]] @@ -3098,7 +3004,7 @@ checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ "bitflags 2.6.0", "block2", - "objc2 0.5.2", + "objc2", "objc2-foundation", ] @@ -3110,7 +3016,7 @@ checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ "bitflags 2.6.0", "block2", - "objc2 0.5.2", + "objc2", "objc2-foundation", "objc2-metal", ] @@ -3135,9 +3041,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.3" +version = "0.36.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" +checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" dependencies = [ "memchr", ] @@ -3150,12 +3056,13 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "open" -version = "3.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" +checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3" dependencies = [ + "is-wsl", + "libc", "pathdiff", - "windows-sys 0.42.0", ] [[package]] @@ -3181,7 +3088,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3219,19 +3126,8 @@ dependencies = [ ] [[package]] -name = "os_info" -version = "3.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae99c7fa6dd38c7cafe1ec085e804f8f555a2f8659b0dbe03f1f9963a9b51092" -dependencies = [ - "log", - "serde", - "windows-sys 0.52.0", -] - -[[package]] -name = "os_pipe" -version = "1.2.1" +name = "os_pipe" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" dependencies = [ @@ -3247,11 +3143,11 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pango" -version = "0.15.10" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" dependencies = [ - "bitflags 1.3.2", + "gio", "glib", "libc", "once_cell", @@ -3260,14 +3156,14 @@ dependencies = [ [[package]] name = "pango-sys" -version = "0.15.10" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -3317,16 +3213,6 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -[[package]] -name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset", - "indexmap 2.4.0", -] - [[package]] name = "phf" version = "0.8.0" @@ -3431,7 +3317,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3478,7 +3364,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3517,7 +3403,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" dependencies = [ "base64 0.22.1", - "indexmap 2.4.0", + "indexmap 2.5.0", "quick-xml 0.32.0", "serde", "time", @@ -3590,11 +3476,12 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" dependencies = [ - "toml_edit 0.21.1", + "toml_datetime", + "toml_edit 0.20.2", ] [[package]] @@ -3642,6 +3529,22 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" +[[package]] +name = "psl-types" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" + +[[package]] +name = "publicsuffix" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457" +dependencies = [ + "idna 0.3.0", + "psl-types", +] + [[package]] name = "quick-xml" version = "0.30.0" @@ -3670,12 +3573,51 @@ dependencies = [ ] [[package]] -name = "quick-xml" -version = "0.34.0" +name = "quinn" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f24d770aeca0eacb81ac29dfbc55ebcc09312fdd1f8bbecdc7e4a84e000e3b4" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" dependencies = [ - "memchr", + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.0.0", + "rustls", + "socket2", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring", + "rustc-hash 2.0.0", + "rustls", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +dependencies = [ + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", ] [[package]] @@ -3768,12 +3710,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "raw-window-handle" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" - [[package]] name = "raw-window-handle" version = "0.6.2" @@ -3882,48 +3818,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.30", - "hyper-tls 0.5.0", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1", - "tokio", - "tokio-native-tls", - "tokio-util", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "winreg 0.50.0", -] - [[package]] name = "reqwest" version = "0.12.7" @@ -3932,17 +3826,19 @@ checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" dependencies = [ "base64 0.22.1", "bytes", + "cookie", + "cookie_store", "encoding_rs", "futures-channel", "futures-core", "futures-util", - "h2 0.4.6", + "h2", "http 1.1.0", - "http-body 1.0.1", + "http-body", "http-body-util", - "hyper 1.4.1", + "hyper", "hyper-rustls", - "hyper-tls 0.6.0", + "hyper-tls", "hyper-util", "ipnet", "js-sys", @@ -3952,46 +3848,29 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile 2.1.3", + "quinn", + "rustls", + "rustls-pemfile", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", - "system-configuration 0.6.1", + "sync_wrapper", + "system-configuration", "tokio", "tokio-native-tls", + "tokio-rustls", + "tokio-util", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", + "webpki-roots", "windows-registry", ] -[[package]] -name = "rfd" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" -dependencies = [ - "block", - "dispatch", - "glib-sys", - "gobject-sys", - "gtk-sys", - "js-sys", - "lazy_static", - "log", - "objc", - "objc-foundation", - "objc_id", - "raw-window-handle 0.5.2", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows 0.37.0", -] - [[package]] name = "ring" version = "0.17.8" @@ -4015,8 +3894,8 @@ checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" [[package]] name = "rsrpc" -version = "0.14.0" -source = "git+https://www.github.com/SpikeHD/rsRPC?tag=v0.14.0#2784c0913be004a403e26da5bdf245c33c9da6d5" +version = "0.15.0" +source = "git+https://www.github.com/SpikeHD/rsRPC?tag=v0.15.0#f0aee4fb28e81040394871d6fdbfbc35493afa2a" dependencies = [ "chrono", "rayon", @@ -4039,20 +3918,26 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" dependencies = [ "bitflags 2.6.0", "errno", @@ -4068,21 +3953,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ "once_cell", + "ring", "rustls-pki-types", "rustls-webpki", "subtle", "zeroize", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.1.3" @@ -4101,9 +3978,9 @@ checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" [[package]] name = "rustls-webpki" -version = "0.102.6" +version = "0.102.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" dependencies = [ "ring", "rustls-pki-types", @@ -4140,6 +4017,32 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.77", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -4159,7 +4062,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "libc", "security-framework-sys", @@ -4213,6 +4116,17 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-untagged" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6" +dependencies = [ + "erased-serde", + "serde", + "typeid", +] + [[package]] name = "serde_derive" version = "1.0.209" @@ -4221,7 +4135,18 @@ checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", ] [[package]] @@ -4230,7 +4155,6 @@ version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" dependencies = [ - "indexmap 2.4.0", "itoa 1.0.11", "memchr", "ryu", @@ -4245,7 +4169,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -4279,7 +4203,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_derive", "serde_json", @@ -4296,14 +4220,14 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] name = "serialize-to-javascript" -version = "0.1.2" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" dependencies = [ "serde", "serde_json", @@ -4312,13 +4236,13 @@ dependencies = [ [[package]] name = "serialize-to-javascript-impl" -version = "0.1.2" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 1.0.109", ] [[package]] @@ -4445,31 +4369,52 @@ dependencies = [ ] [[package]] -name = "soup2" -version = "0.2.1" +name = "softbuffer" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +checksum = "d623bff5d06f60d738990980d782c8c866997d9194cfe79ecad00aa2f76826dd" dependencies = [ - "bitflags 1.3.2", + "bytemuck", + "cfg_aliases 0.2.1", + "core-graphics 0.23.2", + "foreign-types 0.5.0", + "js-sys", + "log", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "wasm-bindgen", + "web-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", "gio", "glib", "libc", - "once_cell", - "soup2-sys", + "soup3-sys", ] [[package]] -name = "soup2-sys" -version = "0.2.0" +name = "soup3-sys" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" dependencies = [ - "bitflags 1.3.2", "gio-sys", "glib-sys", "gobject-sys", "libc", - "system-deps 5.0.0", + "system-deps", ] [[package]] @@ -4498,9 +4443,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "state" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8" dependencies = [ "loom", ] @@ -4549,6 +4494,17 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + [[package]] name = "syn" version = "1.0.109" @@ -4562,21 +4518,15 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.76" +version = "2.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - [[package]] name = "sync_wrapper" version = "1.0.1" @@ -4586,15 +4536,6 @@ dependencies = [ "futures-core", ] -[[package]] -name = "sys-locale" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e801cf239ecd6ccd71f03d270d67dd53d13e90aab208bf4b8fe4ad957ea949b0" -dependencies = [ - "libc", -] - [[package]] name = "sysinfo" version = "0.29.11" @@ -4625,17 +4566,6 @@ dependencies = [ "windows 0.52.0", ] -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys 0.5.0", -] - [[package]] name = "system-configuration" version = "0.6.1" @@ -4643,18 +4573,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.6.0", - "core-foundation", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "core-foundation 0.9.4", + "system-configuration-sys", ] [[package]] @@ -4667,78 +4587,55 @@ dependencies = [ "libc", ] -[[package]] -name = "system-deps" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" -dependencies = [ - "cfg-expr 0.9.1", - "heck 0.3.3", - "pkg-config", - "toml 0.5.11", - "version-compare 0.0.11", -] - [[package]] name = "system-deps" version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" dependencies = [ - "cfg-expr 0.15.8", + "cfg-expr", "heck 0.5.0", "pkg-config", - "toml 0.8.19", - "version-compare 0.2.0", + "toml 0.8.2", + "version-compare", ] [[package]] name = "tao" -version = "0.16.9" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575c856fc21e551074869dcfaad8f706412bd5b803dfa0fbf6881c4ff4bfafab" +checksum = "d3a97abbc7d6cfd0720da3e06fcb1cf2ac87cbfdb5bbbce103a1279a211c4d81" dependencies = [ - "bitflags 1.3.2", - "cairo-rs", - "cc", - "cocoa 0.24.1", - "core-foundation", - "core-graphics 0.22.3", + "bitflags 2.6.0", + "cocoa 0.26.0", + "core-foundation 0.10.0", + "core-graphics 0.24.0", "crossbeam-channel", - "dirs-next", "dispatch", - "gdk", - "gdk-pixbuf", - "gdk-sys", + "dlopen2", + "dpi", "gdkwayland-sys", "gdkx11-sys", - "gio", - "glib", - "glib-sys", "gtk", - "image 0.24.9", "instant", "jni", "lazy_static", - "libappindicator", "libc", "log", "ndk", "ndk-context", - "ndk-sys 0.3.0", + "ndk-sys 0.6.0+11769913", "objc", "once_cell", "parking_lot", - "png", - "raw-window-handle 0.5.2", + "raw-window-handle", "scopeguard", - "serde", "tao-macros", "unicode-segmentation", - "uuid", - "windows 0.39.0", - "windows-implement 0.39.0", + "url", + "windows 0.58.0", + "windows-core 0.58.0", + "windows-version", "x11-dl", ] @@ -4750,18 +4647,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", -] - -[[package]] -name = "tar" -version = "0.4.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" -dependencies = [ - "filetime", - "libc", - "xattr", + "syn 2.0.77", ] [[package]] @@ -4772,93 +4658,83 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "1.7.2" +version = "2.0.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e33e3ba00a3b05eb6c57ef135781717d33728b48acf914bb05629e74d897d29" +checksum = "e8345ccc676ef16e26b61fc0f5340b4e770678b1e1f53f08c69ebdac5e56b422" dependencies = [ "anyhow", "bytes", - "cocoa 0.24.1", - "dirs-next", + "cocoa 0.26.0", + "dirs 5.0.1", "dunce", "embed_plist", - "encoding_rs", - "flate2", "futures-util", "getrandom 0.2.15", - "glib", "glob", "gtk", "heck 0.5.0", - "http 0.2.12", - "ico", - "ignore", - "indexmap 1.9.3", - "infer", - "nix 0.26.4", - "notify-rust", + "http 1.1.0", + "image", + "jni", + "libc", + "log", + "mime", + "muda", "objc", - "once_cell", - "open", - "os_info", - "os_pipe", "percent-encoding", - "png", - "rand 0.8.5", - "raw-window-handle 0.5.2", - "regex", - "reqwest 0.11.27", - "rfd", - "semver", + "raw-window-handle", + "reqwest", "serde", "serde_json", "serde_repr", "serialize-to-javascript", - "shared_child", "state", - "sys-locale", - "tar", + "swift-rs", + "tauri-build", "tauri-macros", "tauri-runtime", "tauri-runtime-wry", "tauri-utils", - "tempfile", "thiserror", "tokio", + "tray-icon", "url", - "uuid", + "urlpattern", "webkit2gtk", "webview2-com", - "win7-notifications", - "windows 0.39.0", + "window-vibrancy", + "windows 0.58.0", ] [[package]] name = "tauri-build" -version = "1.5.4" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fb5a90a64241ddb7217d3210d844149070a911e87e8a107a707a1d4973f164" +checksum = "7d5ad5fcfaf02cf79aa6727f6c5df38567d8dce172b00b62690c6bc46c08b7ce" dependencies = [ "anyhow", "cargo_toml", - "dirs-next", + "dirs 5.0.1", + "glob", "heck 0.5.0", "json-patch", + "schemars", "semver", "serde", "serde_json", "tauri-utils", "tauri-winres", + "toml 0.8.2", "walkdir", ] [[package]] name = "tauri-codegen" -version = "1.4.5" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93a9e3f5cebf779a63bf24903e714ec91196c307d8249a0008b882424328bcda" +checksum = "809ef6316726fc72593d296cf6f4e7461326e310c313d6a6c42b6e7f1e2671cf" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "brotli", "ico", "json-patch", @@ -4866,115 +4742,242 @@ dependencies = [ "png", "proc-macro2", "quote", - "regex", "semver", "serde", "serde_json", "sha2", + "syn 2.0.77", "tauri-utils", "thiserror", "time", + "url", "uuid", "walkdir", ] [[package]] name = "tauri-macros" -version = "1.4.6" +version = "2.0.0-rc.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1d0e989f54fe06c5ef0875c5e19cf96453d099a0a774d5192ab47e80471cdab" +checksum = "1359e8861d210d25731f8b1bfbb4d111dd06406cf73c59659366ef450364d811" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.77", "tauri-codegen", "tauri-utils", ] [[package]] -name = "tauri-plugin-deep-link" -version = "0.1.2" +name = "tauri-plugin" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4536f5f6602e8fdfaa7b3b185076c2a0704f8eb7015f4e58461eb483ec3ed1f8" +checksum = "a7dded420c86183f592d0fe925ef9447f41e26fa79f0bdfef8d3f17bfbcdbfb7" dependencies = [ - "dirs 5.0.1", - "interprocess", - "log", - "objc2 0.4.1", - "once_cell", + "anyhow", + "glob", + "plist", + "schemars", + "serde", + "serde_json", "tauri-utils", - "windows-sys 0.48.0", - "winreg 0.50.0", + "toml 0.8.2", + "walkdir", +] + +[[package]] +name = "tauri-plugin-autostart" +version = "2.0.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "992fef0cc6ef3637a8b336c9bf9758b8e718db934afd744846422c1da877dac0" +dependencies = [ + "auto-launch", + "log", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror", +] + +[[package]] +name = "tauri-plugin-fs" +version = "2.0.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "694a746b0e0c1d318198fabf4957800c42fb4b705e866e0eed7ec21476ef88db" +dependencies = [ + "anyhow", + "glob", + "schemars", + "serde", + "serde_json", + "serde_repr", + "tauri", + "tauri-plugin", + "thiserror", + "url", + "uuid", +] + +[[package]] +name = "tauri-plugin-http" +version = "2.0.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7953c340b866393dc9935612ecabf2db361ebe0f39df020228021eaffe971b9b" +dependencies = [ + "data-url", + "http 1.1.0", + "regex", + "reqwest", + "schemars", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "tauri-plugin-fs", + "thiserror", + "tokio", + "url", + "urlpattern", +] + +[[package]] +name = "tauri-plugin-notification" +version = "2.0.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bf32fba3a2650f89c7dfc532b38de566a37779e482f07dccabf45fe24444e26" +dependencies = [ + "log", + "notify-rust", + "rand 0.8.5", + "serde", + "serde_json", + "serde_repr", + "tauri", + "tauri-plugin", + "thiserror", + "time", + "url", + "win7-notifications", + "windows-version", +] + +[[package]] +name = "tauri-plugin-process" +version = "2.0.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9eb80b601682dcbd45dc5ed5f7cc214f1d994aeea730d500899cc616784559" +dependencies = [ + "tauri", + "tauri-plugin", +] + +[[package]] +name = "tauri-plugin-shell" +version = "2.0.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83800ddf78b820172efb5ed7310344e8e4f97fd30cd8237a3f20c12a79eb136" +dependencies = [ + "encoding_rs", + "log", + "open", + "os_pipe", + "regex", + "schemars", + "serde", + "serde_json", + "shared_child", + "tauri", + "tauri-plugin", + "thiserror", + "tokio", +] + +[[package]] +name = "tauri-plugin-single-instance" +version = "2.0.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d73c92c98d44d4daba0118d905f45243dfcd6eaac82216c3382a02d17cb74cf2" +dependencies = [ + "log", + "serde", + "serde_json", + "tauri", + "thiserror", + "windows-sys 0.59.0", + "zbus", ] [[package]] name = "tauri-plugin-window-state" -version = "0.1.1" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#677bade9089f2963e5858cc5062e5504787eaf7f" +version = "2.0.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba56bcec4b7a1601cf3136c9a3a98f77036b7e1a67564788c5ccd051035d028a" dependencies = [ - "bincode", "bitflags 2.6.0", "log", "serde", "serde_json", "tauri", + "tauri-plugin", "thiserror", ] [[package]] name = "tauri-runtime" -version = "0.14.5" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33fda7d213e239077fad52e96c6b734cecedb30c2382118b64f94cb5103ff3a" +checksum = "75c72b844f387bfc3341c355f3e16b8cbf4161848fa4e348670effb222cd3ba5" dependencies = [ + "dpi", "gtk", - "http 0.2.12", - "http-range", - "rand 0.8.5", - "raw-window-handle 0.5.2", + "http 1.1.0", + "jni", + "raw-window-handle", "serde", "serde_json", "tauri-utils", "thiserror", "url", - "uuid", - "webview2-com", - "windows 0.39.0", + "windows 0.58.0", ] [[package]] name = "tauri-runtime-wry" -version = "0.14.10" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18c447dcd9b0f09c7dc4b752cc33e72788805bfd761fbda5692d30c48289efec" +checksum = "73accf936a7cd01d1382de7850726fdf6c1f6ab3b01ccb7a0950cb852e332596" dependencies = [ - "arboard", - "cocoa 0.24.1", + "cocoa 0.26.0", "gtk", + "http 1.1.0", + "jni", + "log", "percent-encoding", - "rand 0.8.5", - "raw-window-handle 0.5.2", + "raw-window-handle", + "softbuffer", + "tao", "tauri-runtime", "tauri-utils", - "uuid", + "url", "webkit2gtk", "webview2-com", - "windows 0.39.0", + "windows 0.58.0", "wry", ] [[package]] name = "tauri-utils" -version = "1.6.1" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0c939e88d82903a0a7dfb28388b12a3c03504d6bd6086550edaa3b6d8beaa" +checksum = "d53d9fe87e985b273696ae22ce2b9f099a8f1b44bc8fb127467bda5fcb3e4371" dependencies = [ "brotli", + "cargo_metadata", "ctor", "dunce", "glob", - "heck 0.5.0", "html5ever", "infer", "json-patch", @@ -4984,14 +4987,19 @@ dependencies = [ "phf 0.11.2", "proc-macro2", "quote", + "regex", + "schemars", "semver", "serde", + "serde-untagged", "serde_json", "serde_with", + "swift-rs", "thiserror", + "toml 0.8.2", "url", + "urlpattern", "walkdir", - "windows-version", ] [[package]] @@ -5071,7 +5079,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5084,17 +5092,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tiff" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" -dependencies = [ - "flate2", - "jpeg-decoder", - "weezl", -] - [[package]] name = "time" version = "0.3.36" @@ -5141,17 +5138,11 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" -[[package]] -name = "to_method" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c4ceeeca15c8384bbc3e011dbd8fccb7f068a440b752b7d9b32ceb0ca0e2e8" - [[package]] name = "tokio" -version = "1.39.3" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", @@ -5173,7 +5164,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5222,15 +5213,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - [[package]] name = "toml" version = "0.7.8" @@ -5245,21 +5227,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.20", + "toml_edit 0.20.2", ] [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" dependencies = [ "serde", ] @@ -5270,35 +5252,24 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.4.0", - "toml_datetime", - "winnow 0.5.40", + "winnow", ] [[package]] name = "toml_edit" -version = "0.22.20" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.18", + "winnow", ] [[package]] @@ -5347,7 +5318,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5390,17 +5361,24 @@ dependencies = [ ] [[package]] -name = "tree_magic_mini" -version = "3.1.5" +name = "tray-icon" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469a727cac55b41448315cc10427c069c618ac59bb6a4480283fcd811749bdc2" +checksum = "131a65b2cef2081bc14dbcd414c906edbfa3bb5323dd7e748cc298614681196b" dependencies = [ - "fnv", - "home", - "memchr", - "nom", + "core-graphics 0.24.0", + "crossbeam-channel", + "dirs 5.0.1", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", "once_cell", - "petgraph", + "png", + "serde", + "thiserror", + "windows-sys 0.59.0", ] [[package]] @@ -5428,6 +5406,12 @@ dependencies = [ "utf-8", ] +[[package]] +name = "typeid" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" + [[package]] name = "typenum" version = "1.17.0" @@ -5440,11 +5424,52 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ - "memoffset 0.9.1", + "memoffset", "tempfile", "winapi", ] +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + [[package]] name = "unicode-bidi" version = "0.3.15" @@ -5491,11 +5516,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", - "idna", + "idna 0.5.0", "percent-encoding", "serde", ] +[[package]] +name = "urlpattern" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609" +dependencies = [ + "derive_more", + "regex", + "serde", + "unic-ucd-ident", + "url", +] + [[package]] name = "utf-8" version = "0.7.6" @@ -5523,12 +5561,6 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" -[[package]] -name = "version-compare" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" - [[package]] name = "version-compare" version = "0.2.0" @@ -5614,135 +5646,62 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.76", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" - -[[package]] -name = "wasm-streams" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wayland-backend" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90e11ce2ca99c97b940ee83edbae9da2d56a08f9ea8158550fd77fa31722993" -dependencies = [ - "cc", - "downcast-rs", - "rustix", - "scoped-tls", - "smallvec", - "wayland-sys", + "syn 2.0.77", + "wasm-bindgen-shared", ] [[package]] -name = "wayland-client" -version = "0.31.5" +name = "wasm-bindgen-futures" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e321577a0a165911bdcfb39cf029302479d7527b517ee58ab0f6ad09edf0943" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ - "bitflags 2.6.0", - "rustix", - "wayland-backend", - "wayland-scanner", + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", ] [[package]] -name = "wayland-protocols" -version = "0.31.2" +name = "wasm-bindgen-macro" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ - "bitflags 2.6.0", - "wayland-backend", - "wayland-client", - "wayland-scanner", + "quote", + "wasm-bindgen-macro-support", ] [[package]] -name = "wayland-protocols-wlr" -version = "0.2.0" +name = "wasm-bindgen-macro-support" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ - "bitflags 2.6.0", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-scanner", + "proc-macro2", + "quote", + "syn 2.0.77", + "wasm-bindgen-backend", + "wasm-bindgen-shared", ] [[package]] -name = "wayland-scanner" -version = "0.31.4" +name = "wasm-bindgen-shared" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7b56f89937f1cf2ee1f1259cf2936a17a1f45d8f0aa1019fae6d470d304cfa6" -dependencies = [ - "proc-macro2", - "quick-xml 0.34.0", - "quote", -] +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] -name = "wayland-sys" -version = "0.31.4" +name = "wasm-streams" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43676fe2daf68754ecf1d72026e4e6c15483198b5d24e888b74d3f22f887a148" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" dependencies = [ - "dlib", - "log", - "pkg-config", + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", ] [[package]] @@ -5757,9 +5716,9 @@ dependencies = [ [[package]] name = "webkit2gtk" -version = "0.18.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" +checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" dependencies = [ "bitflags 1.3.2", "cairo-rs", @@ -5775,20 +5734,18 @@ dependencies = [ "javascriptcore-rs", "libc", "once_cell", - "soup2", + "soup3", "webkit2gtk-sys", ] [[package]] name = "webkit2gtk-sys" -version = "0.18.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" +checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" dependencies = [ - "atk-sys", "bitflags 1.3.2", "cairo-sys-rs", - "gdk-pixbuf-sys", "gdk-sys", "gio-sys", "glib-sys", @@ -5796,71 +5753,70 @@ dependencies = [ "gtk-sys", "javascriptcore-rs-sys", "libc", - "pango-sys", "pkg-config", - "soup2-sys", - "system-deps 6.2.2", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webpki-roots" +version = "0.26.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +dependencies = [ + "rustls-pki-types", ] [[package]] name = "webview2-com" -version = "0.19.1" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178" +checksum = "6f61ff3d9d0ee4efcb461b14eb3acfda2702d10dc329f339303fc3e57215ae2c" dependencies = [ "webview2-com-macros", "webview2-com-sys", - "windows 0.39.0", - "windows-implement 0.39.0", + "windows 0.58.0", + "windows-core 0.58.0", + "windows-implement 0.58.0", + "windows-interface 0.58.0", ] [[package]] name = "webview2-com-macros" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" +checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.77", ] [[package]] name = "webview2-com-sys" -version = "0.19.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7" +checksum = "a3a3e2eeb58f82361c93f9777014668eb3d07e7d174ee4c819575a9208011886" dependencies = [ - "regex", - "serde", - "serde_json", "thiserror", - "windows 0.39.0", - "windows-bindgen", - "windows-metadata", + "windows 0.58.0", + "windows-core 0.58.0", ] -[[package]] -name = "weezl" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" - [[package]] name = "wgpu" -version = "0.20.1" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e37c7b9921b75dfd26dd973fdcbce36f13dfa6e2dc82aece584e0ed48c355c" +checksum = "e1d1c4ba43f80542cf63a0a6ed3134629ae73e8ab51e4b765a67f3aa062eb433" dependencies = [ "arrayvec", - "cfg-if", "cfg_aliases 0.1.1", "document-features", "js-sys", "log", "parking_lot", "profiling", - "raw-window-handle 0.6.2", + "raw-window-handle", "smallvec", "static_assertions", "wasm-bindgen", @@ -5873,43 +5829,41 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "0.21.1" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50819ab545b867d8a454d1d756b90cd5f15da1f2943334ca314af10583c9d39" +checksum = "0348c840d1051b8e86c3bcd31206080c5e71e5933dabd79be1ce732b0b2f089a" dependencies = [ "arrayvec", "bit-vec", "bitflags 2.6.0", "cfg_aliases 0.1.1", - "codespan-reporting", "document-features", - "indexmap 2.4.0", + "indexmap 2.5.0", "log", "naga", "once_cell", "parking_lot", "profiling", - "raw-window-handle 0.6.2", - "rustc-hash", + "raw-window-handle", + "rustc-hash 1.1.0", "smallvec", "thiserror", - "web-sys", "wgpu-hal", "wgpu-types", ] [[package]] name = "wgpu-hal" -version = "0.21.1" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172e490a87295564f3fcc0f165798d87386f6231b04d4548bca458cbbfd63222" +checksum = "f6bbf4b4de8b2a83c0401d9e5ae0080a2792055f25859a02bf9be97952bbed4f" dependencies = [ "android_system_properties", "arrayvec", "ash", "bitflags 2.6.0", "cfg_aliases 0.1.1", - "core-graphics-types", + "core-graphics-types 0.1.3", "glow", "glutin_wgl_sys", "gpu-alloc", @@ -5928,9 +5882,9 @@ dependencies = [ "once_cell", "parking_lot", "profiling", - "raw-window-handle 0.6.2", + "raw-window-handle", "renderdoc-sys", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror", "wasm-bindgen", @@ -5941,9 +5895,9 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "0.20.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1353d9a46bff7f955a680577f34c69122628cc2076e1d6f3a9be6ef00ae793ef" +checksum = "bc9d91f0e2c4b51434dfa6db77846f2793149d8e73f800fa2e41f52b8eac3c5d" dependencies = [ "bitflags 2.6.0", "js-sys", @@ -5997,27 +5951,16 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "window-shadows" -version = "0.2.2" -source = "git+https://github.com/tauri-apps/window-shadows.git?tag=window-shadows-v0.2.2#00affb720802d5a5f3b51d502b6a0437e553db91" -dependencies = [ - "cocoa 0.25.0", - "objc", - "raw-window-handle 0.5.2", - "windows-sys 0.48.0", -] - [[package]] name = "window-vibrancy" -version = "0.4.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af6abc2b9c56bd95887825a1ce56cde49a2a97c07e28db465d541f5098a2656c" +checksum = "d8cdd6999298d969289d8078dae02ce798ad23452075985cccba8b6326711ecf" dependencies = [ - "cocoa 0.25.0", + "cocoa 0.26.0", "objc", - "raw-window-handle 0.5.2", - "windows-sys 0.52.0", + "raw-window-handle", + "windows-sys 0.59.0", "windows-version", ] @@ -6030,33 +5973,6 @@ dependencies = [ "xcb", ] -[[package]] -name = "windows" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" -dependencies = [ - "windows_aarch64_msvc 0.37.0", - "windows_i686_gnu 0.37.0", - "windows_i686_msvc 0.37.0", - "windows_x86_64_gnu 0.37.0", - "windows_x86_64_msvc 0.37.0", -] - -[[package]] -name = "windows" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" -dependencies = [ - "windows-implement 0.39.0", - "windows_aarch64_msvc 0.39.0", - "windows_i686_gnu 0.39.0", - "windows_i686_msvc 0.39.0", - "windows_x86_64_gnu 0.39.0", - "windows_x86_64_msvc 0.39.0", -] - [[package]] name = "windows" version = "0.48.0" @@ -6087,13 +6003,13 @@ dependencies = [ ] [[package]] -name = "windows-bindgen" -version = "0.39.0" +name = "windows" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ - "windows-metadata", - "windows-tokens", + "windows-core 0.58.0", + "windows-targets 0.52.6", ] [[package]] @@ -6112,19 +6028,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6" dependencies = [ "windows-implement 0.56.0", - "windows-interface", + "windows-interface 0.56.0", "windows-result 0.1.2", "windows-targets 0.52.6", ] [[package]] -name = "windows-implement" -version = "0.39.0" +name = "windows-core" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ - "syn 1.0.109", - "windows-tokens", + "windows-implement 0.58.0", + "windows-interface 0.58.0", + "windows-result 0.2.0", + "windows-strings", + "windows-targets 0.52.6", ] [[package]] @@ -6135,7 +6054,18 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", ] [[package]] @@ -6146,14 +6076,19 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] -name = "windows-metadata" -version = "0.39.0" +name = "windows-interface" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] [[package]] name = "windows-registry" @@ -6196,17 +6131,11 @@ dependencies = [ [[package]] name = "windows-sys" -version = "0.42.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets 0.42.2", ] [[package]] @@ -6236,6 +6165,21 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -6267,12 +6211,6 @@ dependencies = [ "windows_x86_64_msvc 0.52.6", ] -[[package]] -name = "windows-tokens" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" - [[package]] name = "windows-version" version = "0.1.1" @@ -6300,18 +6238,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" - [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -6330,18 +6256,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" - -[[package]] -name = "windows_i686_gnu" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" - [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -6366,18 +6280,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" - -[[package]] -name = "windows_i686_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" - [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -6396,18 +6298,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" - [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -6444,18 +6334,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" - [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -6483,15 +6361,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winnow" -version = "0.6.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" -dependencies = [ - "memchr", -] - [[package]] name = "winreg" version = "0.10.1" @@ -6501,16 +6370,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "winreg" version = "0.52.0" @@ -6521,62 +6380,44 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "wl-clipboard-rs" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b41773911497b18ca8553c3daaf8ec9fe9819caf93d451d3055f69de028adb" -dependencies = [ - "derive-new", - "libc", - "log", - "nix 0.28.0", - "os_pipe", - "tempfile", - "thiserror", - "tree_magic_mini", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-protocols-wlr", -] - [[package]] name = "wry" -version = "0.24.10" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00711278ed357350d44c749c286786ecac644e044e4da410d466212152383b45" +checksum = "49b8049c8f239cdbfaaea4bacb9646f6b208938ceec0acd5b3e99cd05f70903f" dependencies = [ - "base64 0.13.1", + "base64 0.22.1", "block", - "cocoa 0.24.1", - "core-graphics 0.22.3", + "cocoa 0.26.0", + "core-graphics 0.24.0", "crossbeam-channel", + "dpi", "dunce", - "gdk", - "gio", - "glib", + "gdkx11", "gtk", "html5ever", - "http 0.2.12", + "http 1.1.0", + "javascriptcore-rs", + "jni", "kuchikiki", "libc", - "log", + "ndk", "objc", "objc_id", "once_cell", - "serde", - "serde_json", + "percent-encoding", + "raw-window-handle", "sha2", - "soup2", - "tao", + "soup3", + "tao-macros", "thiserror", - "url", "webkit2gtk", "webkit2gtk-sys", "webview2-com", - "windows 0.39.0", - "windows-implement 0.39.0", + "windows 0.58.0", + "windows-core 0.58.0", + "windows-version", + "x11-dl", ] [[package]] @@ -6600,34 +6441,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "x11rb" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" -dependencies = [ - "gethostname", - "rustix", - "x11rb-protocol", -] - -[[package]] -name = "x11rb-protocol" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" - -[[package]] -name = "xattr" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" -dependencies = [ - "libc", - "linux-raw-sys", - "rustix", -] - [[package]] name = "xcb" version = "1.4.0" @@ -6657,9 +6470,9 @@ checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601" [[package]] name = "zbus" -version = "4.4.0" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" +checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030" dependencies = [ "async-broadcast", "async-executor", @@ -6671,13 +6484,14 @@ dependencies = [ "async-task", "async-trait", "blocking", + "derivative", "enumflags2", "event-listener", "futures-core", "futures-sink", "futures-util", "hex", - "nix 0.29.0", + "nix", "ordered-stream", "rand 0.8.5", "serde", @@ -6695,14 +6509,15 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "4.4.0" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" +checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 2.0.76", + "regex", + "syn 1.0.109", "zvariant_utils", ] @@ -6735,7 +6550,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -6746,9 +6561,9 @@ checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" [[package]] name = "zvariant" -version = "4.2.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" +checksum = "4e09e8be97d44eeab994d752f341e67b3b0d80512a8b315a0671d47232ef1b65" dependencies = [ "endi", "enumflags2", @@ -6759,24 +6574,24 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "4.2.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" +checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 2.0.76", + "syn 1.0.109", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "2.1.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" +checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 1.0.109", ] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 9f6a7247..8d7fe8e3 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -15,38 +15,41 @@ strip = "debuginfo" lto = true [build-dependencies] -tauri-build = { version = "1.5.2", features = [] } +tauri-build = { version = "2.0.0-beta", features = [] } [dependencies] async-recursion = "1.1.1" base64 = "0.22.1" dirs = "5.0.1" -include-flate = "0.3.0" -serde_json = "1.0" -serde = { version = "1.0", features = ["derive"] } -tauri = { version = "1.7.2", features = ["macos-private-api", "windows7-compat", "api-all", "icon-ico", "icon-png", "system-tray", "devtools"] } -tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1"} -tauri-plugin-deep-link = { version = "^0.1.2" } -reqwest = { version = "0.12.4", features = ["blocking"] } -phf = "0.11.2" -window-shadows = { git = "https://github.com/tauri-apps/window-shadows.git", tag = "window-shadows-v0.2.2" } -sysinfo = "0.30.12" +include-flate = "0.3" +serde_json = "1" +serde = { version = "1", features = ["derive"] } + +tauri = { version = "2.0.0-rc", features = ["macos-private-api", "devtools", "tray-icon", "image-png"] } +tauri-plugin-shell = "2.0.0-rc" +tauri-plugin-single-instance = "2.0.0-rc" +tauri-plugin-process = "2.0.0-rc" +tauri-plugin-autostart = "2.0.0-rc" +tauri-plugin-notification = { version = "2.0.0-rc", features = ["win7-notifications", "windows7-compat"] } +tauri-plugin-http = "2.0.0-rc" +# window blur +window-vibrancy = "0.5.0" -# launch on startup -auto-launch = "0.5.0" +reqwest = { version = "0.12.5", features = ["blocking"] } +phf = "0.11.2" +sysinfo = "0.30" +chrono = { version = "0.4", default-features = false } +device_query = "2.1.0" +regex = "1.10" # rpc server -rsrpc = { git = "https://www.github.com/SpikeHD/rsRPC", tag = "v0.14.0" } +rsrpc = { git = "https://www.github.com/SpikeHD/rsRPC", tag = "v0.15.0" } window_titles = { git = "https://github.com/SpikeHD/window_titles", branch = "master" } - -# window blur -window-vibrancy = "0.4.3" -chrono = "0.4.38" -device_query = "2.1.0" +fs4 = { version = "0.9.1", features = ["sync"] } [target."cfg(any(target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies] -webkit2gtk = "0.18.2" -wgpu = { version = "0.20.0", default-features = false } +webkit2gtk = "2.0" +wgpu = { version = "22", default-features = false } [target.'cfg(target_os = "macos")'.dependencies] objc = "0.2" @@ -55,19 +58,26 @@ cocoa = "0.25.0" block = "0.1.6" embed_plist = "1.2.2" +[target."cfg(not(any(target_os = \"android\", target_os = \"ios\")))".dependencies] +tauri-plugin-window-state = "2.0.0-rc" + [target.'cfg(windows)'.dependencies] -webview2-com = "0.19.0" -windows-implement = "0.39.0" +webview2-com = "0.33.0" +windows-core = "0.58.0" +windows-implement = "0.58.0" [target.'cfg(windows)'.dependencies.windows] -version = "0.39.0" +version = "0.58.0" features = [ "Data_Xml_Dom", "Win32_Foundation", "Win32_Security", "Win32_System_Threading", + "Win32_UI_Shell", "Win32_UI_WindowsAndMessaging", "Win32_System_Com", + "Win32_Graphics", + "Win32_Graphics_Dwm", ] [target.armv7-unknown-linux-gnueabihf] diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json new file mode 100644 index 00000000..5384c577 --- /dev/null +++ b/src-tauri/capabilities/default.json @@ -0,0 +1,46 @@ +{ + "identifier": "default", + "description": "Default permissions", + "local": true, + "remote": { + "urls": [ + "https://discord.com/*", + "https://*.discord.com/*" + ] + }, + "platforms": [ + "macOS", + "windows", + "linux" + ], + "windows": [ + "main" + ], + "permissions": [ + "core:path:default", + "core:event:default", + "core:window:default", + "core:app:default", + "core:resources:default", + "core:menu:default", + "core:tray:default", + "core:window:allow-start-dragging", + "core:webview:default", + "shell:default", + "process:default", + "autostart:default", + "window-state:default", + "notification:default", + { + "identifier": "http:default", + "allow": [ + { + "url": "https://**/*" + }, + { + "url": "http://**/*" + } + ] + } + ] +} \ No newline at end of file diff --git a/src-tauri/extension/dnr-rules.json b/src-tauri/extension/dnr-rules.json new file mode 100644 index 00000000..a835b337 --- /dev/null +++ b/src-tauri/extension/dnr-rules.json @@ -0,0 +1,19 @@ +[ + { + "id": 1, + "priority": 1, + "action": { + "type": "modifyHeaders", + "responseHeaders": [{ + "header": "content-security-policy", + "operation": "remove" + }] + }, + "condition": { + "resourceTypes": [ + "main_frame", + "sub_frame" + ] + } + } +] \ No newline at end of file diff --git a/src-tauri/extension/manifest.json b/src-tauri/extension/manifest.json new file mode 100644 index 00000000..c5c45dcc --- /dev/null +++ b/src-tauri/extension/manifest.json @@ -0,0 +1,16 @@ +{ + "name": "Dorion Header Destroyer", + "version": "1.0", + "homepage_url": "https://github.com/SpikeHD/Dorion", + "description": "Destroy CSP in Discord request headers", + "manifest_version": 3, + "permissions": ["declarativeNetRequest"], + "host_permissions": ["*://*.discord.com/*"], + "declarative_net_request": { + "rule_resources": [{ + "id": "csp_disabler", + "path": "dnr-rules.json", + "enabled": true + }] + } +} \ No newline at end of file diff --git a/src-tauri/injection/global.d.ts b/src-tauri/injection/global.d.ts index fee3524c..58294399 100644 --- a/src-tauri/injection/global.d.ts +++ b/src-tauri/injection/global.d.ts @@ -4,7 +4,9 @@ export {} declare global { interface Window { __TAURI__: { - invoke: (cmd: string, args?: Record) => Promise + core: { + invoke: (cmd: string, args?: Record) => Promise + } event: { listen: (event: string, handler: (event: TauriEvent) => void) => () => void emit: (event: string, payload: unknown) => void @@ -19,7 +21,7 @@ declare global { getVersion: () => Promise } http: any - window: any + webviewWindow: any [key: string]: unknown } @@ -29,5 +31,8 @@ declare global { Dorion: any shelter: any nativeOpen: Window['open'] + + // Defined in initialization_script + __localStorage: Storage } -} \ No newline at end of file +} diff --git a/src-tauri/injection/postinject.ts b/src-tauri/injection/postinject.ts index bfc39678..77fe395c 100644 --- a/src-tauri/injection/postinject.ts +++ b/src-tauri/injection/postinject.ts @@ -21,7 +21,7 @@ const observer = new MutationObserver(() => { // Ensure top bar exists if we want it if (window.__DORION_CONFIG__.use_native_titlebar) - window.__TAURI__.window.appWindow.setDecorations(true) + window.__TAURI__.webviewWindow.getCurrentWebviewWindow().setDecorations(true) // This needs to render after discord is loaded if ( @@ -74,4 +74,4 @@ function notifGetter() { attributes: true, characterData: true, }) -} \ No newline at end of file +} diff --git a/src-tauri/injection/preinject.ts b/src-tauri/injection/preinject.ts index 4d53e293..4c3108da 100644 --- a/src-tauri/injection/preinject.ts +++ b/src-tauri/injection/preinject.ts @@ -1,6 +1,6 @@ import { badPostMessagePatch, createLocalStorage, proxyFetch, proxyXHR } from './shared/recreate' import { safemodeTimer, typingAnim } from './shared/ui' -import { cssSanitize, fetchImage, isJson, waitForApp, waitForElm } from './shared/util' +import { cssSanitize, fetchImage, isJson, waitForApp, waitForElm, saferEval } from './shared/util' import { applyNotificationCount } from './shared/window' // Let's expose some stuff for use in plugins and such @@ -15,7 +15,6 @@ window.Dorion = { }, recreate: { createLocalStorage, - proxyFetch }, window: { applyNotificationCount @@ -42,7 +41,7 @@ if (!window.__DORION_INITIALIZED__) window.__DORION_INITIALIZED__ = false while (!window.__TAURI__) { console.log('Waiting for definition...') - await new Promise(resolve => setTimeout(resolve, 100)) + await new Promise(resolve => setTimeout(resolve, 200)) } if (window.__DORION_INITIALIZED__) return @@ -56,7 +55,7 @@ if (!window.__DORION_INITIALIZED__) window.__DORION_INITIALIZED__ = false if (target === '_blank' || !target) { window.__TAURI__.shell.open(url as string) return null - } + } // Otherwise, use the native open return window.nativeOpen(url as string, target, features) @@ -69,7 +68,8 @@ if (!window.__DORION_INITIALIZED__) window.__DORION_INITIALIZED__ = false })() async function init() { - const { invoke, event } = window.__TAURI__ + const { event, app } = window.__TAURI__ + const { invoke } = window.__TAURI__.core const config = await invoke('read_config_file') window.__DORION_CONFIG__ = isJson(config) ? JSON.parse(config) : {} @@ -87,12 +87,12 @@ async function init() { window.Dorion.shouldShowUnreadBadge = window.__DORION_CONFIG__.unread_badge - const plugins = await invoke('load_plugins') - .catch(e => console.error('Error reading plugins: ', e)) - const version = await window.__TAURI__.app.getVersion() + await invoke('load_plugins') - await displayLoadingTop() + const version = await app.getVersion() + await displayLoadingTop() + // Start the safemode timer safemodeTimer( document.querySelector('#safemode') as HTMLDivElement @@ -106,7 +106,7 @@ async function init() { typingAnim() // Start the loading_log event listener - const logUnlisten = event.listen('loading_log', (event: TauriEvent) => { + const logUnlisten = await event.listen('loading_log', (event: TauriEvent) => { const log = event.payload as string updateOverlay({ @@ -125,10 +125,7 @@ async function init() { themeJs, }) - await invoke('load_injection_js', { - contents: injectionJs, - plugins - }) + saferEval(injectionJs) updateOverlay({ midtitle: 'Done!' @@ -164,7 +161,7 @@ async function updateOverlay(toUpdate: Record) { } async function handleThemeInjection() { - const { invoke } = window.__TAURI__ + const { invoke } = window.__TAURI__.core // This needs to exist for hot-switching to work const ts = document.createElement('style') @@ -210,7 +207,7 @@ async function handleThemeInjection() { } async function handleClientModThemeInjection() { - const { invoke } = window.__TAURI__ + const { invoke } = window.__TAURI__.core const ts = document.createElement('style') ts.id = 'dorion-client-mods-themes' @@ -244,7 +241,7 @@ async function handleClientModThemeInjection() { * Display the splashscreen */ async function displayLoadingTop() { - const { invoke } = window.__TAURI__ + const { invoke } = window.__TAURI__.core const html = await invoke('get_index') const loadingContainer = document.createElement('div') satisfies HTMLDivElement loadingContainer.id = 'loadingContainer' @@ -258,4 +255,4 @@ async function displayLoadingTop() { loadingContainer.style.height = '100vh' document.body.appendChild(loadingContainer) -} \ No newline at end of file +} diff --git a/src-tauri/injection/shared/recreate.ts b/src-tauri/injection/shared/recreate.ts index b013bb09..8eeffbf2 100644 --- a/src-tauri/injection/shared/recreate.ts +++ b/src-tauri/injection/shared/recreate.ts @@ -9,7 +9,7 @@ export function proxyFetch() { const scienceReg = /\/api\/v.*\/(science|track)/g // If it matches, just let it go through native OR its a relative URL - if (url.toString().match(discordReg) || url.toString().startsWith('/')) { + if (url.toString().match(discordReg) || url.toString().startsWith('ipc://') || url.toString().startsWith('/')) { // Block science though! if (url.toString().match(scienceReg)) { console.log(`[Fetch Proxy] Blocked URL: ${url}`) @@ -43,26 +43,7 @@ export function proxyFetch() { const response = await http.fetch(url, { responseType: 3, ...options - }) - - // Adherence to what most scripts will expect to have available when they are using fetch(). These have to pretend to be promises - response.json = async () => JSON.parse(await response.text()) - response.text = async () => { - // Decode binary array to string - return response.data.reduce((data: string, byte: number) => data + String.fromCharCode(byte), '') - } - response.arrayBuffer = async () => { - // Create a new arraybuffer - const buffer = new ArrayBuffer(response.data.length) - const view = new Uint8Array(buffer) - - // Copy the data over - response.data.forEach((byte: number, i: number) => view[i] = byte) - - return buffer - } - - response.headers = new Headers(response.headers) + }).catch((e: Error) => console.error('[Proxy Fetch] Failed to fetch: ', e)) return response } @@ -71,23 +52,17 @@ export function proxyFetch() { export function proxyXHR() { const open = XMLHttpRequest.prototype.open - XMLHttpRequest.prototype.open = function(...args: any[]) { - // @ts-expect-error this is fine - open.apply(this, args) - + XMLHttpRequest.prototype.open = function(...args: unknown[]) { const [_method, url] = args - const send = this.send - - this.send = function() { - const rgx = /\/api\/v.*\/(science|track)/g - - if (!String(url).match(rgx)) { - // @ts-expect-error this is fine - return send.apply(this, args) - } + const rgx = /\/api\/v.*\/(science|track)/g + if (String(url).match(rgx)) { console.log(`[XHR Blocker] Blocked URL: ${url}`) + return } + + // @ts-expect-error this is fine + open.apply(this, args) } } @@ -118,4 +93,4 @@ export function badPostMessagePatch() { window.__TAURI_POST_MESSAGE__ = () => { return null } -} \ No newline at end of file +} diff --git a/src-tauri/injection/shared/ui.ts b/src-tauri/injection/shared/ui.ts index d4bfc532..a0e5177c 100644 --- a/src-tauri/injection/shared/ui.ts +++ b/src-tauri/injection/shared/ui.ts @@ -20,7 +20,7 @@ export function safemodeTimer(elm: HTMLDivElement) { // If F, open plugins folder if (evt.code === 'KeyF') { - window.__TAURI__.invoke('open_themes') + window.__TAURI__.core.invoke('open_themes') } } @@ -56,7 +56,7 @@ export async function typingAnim() { } export async function applyExtraCSS() { - const { invoke } = window.__TAURI__ + const { invoke } = window.__TAURI__.core const css = await invoke('get_extra_css') const style = document.createElement('style') @@ -87,7 +87,7 @@ async function initTopBarEvents() { export async function createTopBar() { const topbar = document.createElement('div') - const content = await window.__TAURI__ + const content = await window.__TAURI__.core .invoke('get_top_bar') .catch((e) => console.error('Error reading top bar: ', e)) @@ -116,7 +116,7 @@ export async function createTopBar() { if (versionElm) versionElm.innerHTML = `Dorion - v${dorionVersion}` // Once done, remove original top bar - window.__TAURI__.invoke('remove_top_bar') + window.__TAURI__.core.invoke('remove_top_bar') initTopBarEvents() -} \ No newline at end of file +} diff --git a/src-tauri/injection/shared/util.ts b/src-tauri/injection/shared/util.ts index 9200f88c..d505cf60 100644 --- a/src-tauri/injection/shared/util.ts +++ b/src-tauri/injection/shared/util.ts @@ -55,6 +55,10 @@ export async function waitForElm(selector: string) { } export async function fetchImage(url: string) { - const { invoke } = window.__TAURI__ + const { invoke } = window.__TAURI__.core return await invoke('fetch_image', { url }) +} + +export async function saferEval(code: string) { + return eval?.(`"use strict";${code}`) } \ No newline at end of file diff --git a/src-tauri/injection/shared/window.ts b/src-tauri/injection/shared/window.ts index c5fa8805..ed5317d9 100644 --- a/src-tauri/injection/shared/window.ts +++ b/src-tauri/injection/shared/window.ts @@ -2,19 +2,19 @@ * Functions for window controls */ export function close() { - window.__TAURI__.invoke('close') + window.__TAURI__.core.invoke('close') } export function minimize() { - window.__TAURI__.invoke('minimize') + window.__TAURI__.core.invoke('minimize') } export function toggleMaximize() { - window.__TAURI__.invoke('toggle_maximize') + window.__TAURI__.core.invoke('toggle_maximize') } export async function setMaximizeIcon() { - if (await window.__TAURI__.window.appWindow.isMaximized()) { + if (await window.__TAURI__.webviewWindow.getCurrentWebviewWindow().isMaximized()) { const topmax = document.querySelector('#topmax') as HTMLDivElement topmax.classList.add('maximized') } else { @@ -27,7 +27,7 @@ export function applyNotificationCount() { // Check if we should update if (!window.Dorion.shouldShowUnreadBadge) return - const { invoke } = window.__TAURI__ + const { invoke } = window.__TAURI__.core const title = document.querySelector('title') as HTMLTitleElement const notifs = title.innerHTML.startsWith('•') ? -1 : title.innerHTML?.match(/\((.*)\)/)?.[1] @@ -42,4 +42,4 @@ export function applyNotificationCount() { invoke('notif_count', { amount: Number(notifs), }) -} \ No newline at end of file +} diff --git a/src-tauri/src/config.rs b/src-tauri/src/config.rs index 8e6f4c7e..ef39b614 100644 --- a/src-tauri/src/config.rs +++ b/src-tauri/src/config.rs @@ -4,7 +4,7 @@ use std::fs; use crate::functionality::hotkeys::KeyStruct; use crate::log; -use crate::util::paths::get_config_dir; +use crate::util::paths::get_config_file; #[derive(Serialize, Deserialize)] pub struct Config { @@ -40,14 +40,14 @@ pub struct Config { } pub fn init() { - get_config_dir(); + get_config_file(); } #[tauri::command] pub fn read_config_file() -> String { init(); - let config_file = get_config_dir(); + let config_file = get_config_file(); fs::read_to_string(config_file).expect("Config does not exist!") } @@ -56,7 +56,7 @@ pub fn read_config_file() -> String { pub fn write_config_file(contents: String) { init(); - let config_file = get_config_dir(); + let config_file = get_config_file(); fs::write(config_file, contents).expect("Error writing config!") } @@ -116,4 +116,4 @@ pub fn get_config() -> Config { pub fn set_config(config: Config) { let config_str = serde_json::to_string(&config).unwrap(); write_config_file(config_str); -} \ No newline at end of file +} diff --git a/src-tauri/src/deep_link.rs b/src-tauri/src/deep_link.rs deleted file mode 100644 index 5aaca04c..00000000 --- a/src-tauri/src/deep_link.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub fn register_deep_link_handler(win: tauri::Window) { - tauri_plugin_deep_link::register("dorion", move |_| { - win.show().unwrap_or_default(); - win.set_focus().unwrap_or_default(); - win.unminimize().unwrap_or_default(); - }) - .unwrap_or_default(); -} diff --git a/src-tauri/src/functionality/extension.rs b/src-tauri/src/functionality/extension.rs new file mode 100644 index 00000000..60ad54c5 --- /dev/null +++ b/src-tauri/src/functionality/extension.rs @@ -0,0 +1,113 @@ +use crate::log; +use tauri::WebviewWindow; + +#[cfg(target_os = "windows")] +pub fn add_extension(win: &WebviewWindow) { + use webview2_com::{ + Microsoft::Web::WebView2::Win32::{ + ICoreWebView2EnvironmentOptions6, ICoreWebView2Profile7, ICoreWebView2_13, + }, + ProfileAddBrowserExtensionCompletedHandler, + }; + use windows::core::{Interface, HSTRING}; + + win + .with_webview(|webview| unsafe { + let core = match webview.controller().CoreWebView2() { + Ok(profile) => profile, + Err(e) => { + log!("Failed to get CoreWebView2: {:?}", e); + return; + } + }; + + let casted = match core.cast::() { + Ok(profile) => profile, + Err(e) => { + log!("Failed to cast webview: {:?}", e); + return; + } + }; + + let profile = match casted.Profile() { + Ok(profile) => profile, + Err(e) => { + log!("Failed to get Profile: {:?}", e); + return; + } + }; + + let profile = match profile.cast::() { + Ok(profile) => profile, + Err(e) => { + log!("Failed to cast profile: {:?}", e); + return; + } + }; + + let environment = match casted.Environment() { + Ok(environment) => environment, + Err(e) => { + log!("Failed to get Environment: {:?}", e); + return; + } + }; + + let environment = match environment.cast::() { + Ok(environment) => environment, + Err(e) => { + log!("Failed to cast environment: {:?}", e); + return; + } + }; + + match environment.SetAreBrowserExtensionsEnabled(true) { + Ok(_) => (), + Err(e) => log!("Failed to set browser extensions enabled: {:?}", e), + }; + + log!("Attempting to add extension..."); + + let handler = ProfileAddBrowserExtensionCompletedHandler::create(Box::new(|result, _ext| { + log!("Extension added?: {:?}", result); + Ok(()) + })); + + let exe_path = match std::env::current_exe() { + Ok(path) => path, + Err(e) => { + log!("Failed to get current exe path: {:?}", e); + return; + } + }; + + let parent = match exe_path.parent() { + Some(path) => path, + None => { + log!("Failed to get parent path of current exe path!"); + return; + } + }; + + let mut ext = parent.to_path_buf(); + ext.push("extension"); + + if !ext.exists() { + log!("Extension folder does not exist!"); + return; + } + + let path_str = ext.to_str().unwrap_or_default(); + let ext = HSTRING::from(path_str); + + profile + .AddBrowserExtension(&ext, &handler) + .unwrap_or_else(|e| log!("Failed to add extension: {:?}", e)); + }) + .unwrap_or_default(); +} + +#[cfg(not(target_os = "windows"))] +pub fn add_extension(_win: &WebviewWindow) { + log!("Extension is unsupported on non-Windows platforms!"); +} diff --git a/src-tauri/src/functionality/hotkeys.rs b/src-tauri/src/functionality/hotkeys.rs index 6ee0384f..9bacc7f0 100644 --- a/src-tauri/src/functionality/hotkeys.rs +++ b/src-tauri/src/functionality/hotkeys.rs @@ -1,8 +1,13 @@ use device_query::{keymap::Keycode, DeviceState}; -use serde::{Serialize, Deserialize}; +use serde::{Deserialize, Serialize}; use std::{collections::HashMap, sync::atomic::AtomicBool}; +use tauri::{Emitter, Listener}; -use crate::{config::{get_config, set_config}, log, functionality::keyboard::js_keycode_to_key}; +use crate::{ + config::{get_config, set_config}, + functionality::keyboard::js_keycode_to_key, + log, +}; pub static KEYBINDS_CHANGED: AtomicBool = AtomicBool::new(false); pub static PTT_ENABLED: AtomicBool = AtomicBool::new(false); @@ -16,13 +21,13 @@ struct KeyComboState { #[derive(Serialize, Deserialize, Debug)] struct KeybindChangedEvent { keys: Vec, - key: String + key: String, } #[derive(Serialize, Deserialize, Debug)] pub struct KeyStruct { name: String, - code: String + code: String, } #[tauri::command] @@ -35,9 +40,9 @@ pub fn get_keybinds() -> HashMap> { pub fn set_keybinds(keybinds: HashMap>) { let mut config = get_config(); config.keybinds = Some(keybinds); - + set_config(config); - + KEYBINDS_CHANGED.store(true, std::sync::atomic::Ordering::Relaxed); } @@ -50,45 +55,46 @@ pub fn set_keybind(action: String, keys: Vec) { } #[cfg(target_os = "macos")] -pub fn start_keybind_watcher(_win: &tauri::Window) { +pub fn start_keybind_watcher(_win: &tauri::WebviewWindow) { log!("Keybinds are not supported on macOS yet."); } #[cfg(not(target_os = "macos"))] -pub fn start_keybind_watcher(win: &tauri::Window) { +pub fn start_keybind_watcher(win: &tauri::WebviewWindow) { win.listen("keybinds_changed", |evt| { - match evt.payload() { - Some(payload) => { - let keybinds: Vec = serde_json::from_str(payload).unwrap(); - let mut keybinds_map = HashMap::new(); + let payload = evt.payload(); + if payload.is_empty() { + return; + } - for keybind in keybinds { - keybinds_map.insert(keybind.key, keybind.keys); - } + let keybinds: Vec = serde_json::from_str(payload).unwrap(); + let mut keybinds_map = HashMap::new(); - set_keybinds(keybinds_map); - }, - None => {} + for keybind in keybinds { + keybinds_map.insert(keybind.key, keybind.keys); } + set_keybinds(keybinds_map); + KEYBINDS_CHANGED.store(true, std::sync::atomic::Ordering::Relaxed); }); win.listen("ptt_toggled", |evt| { #[derive(Serialize, Deserialize)] struct PTTPayload { - state: bool + state: bool, } - log!("PTT enabled: {:?}", evt.payload()); + let payload = evt.payload(); + + log!("PTT enabled: {:?}", payload); - match evt.payload() { - Some(payload) => { - let state = serde_json::from_str::(payload).unwrap(); - PTT_ENABLED.store(state.state, std::sync::atomic::Ordering::Relaxed); - }, - None => {} + if payload.is_empty() { + return; } + + let state = serde_json::from_str::(payload).unwrap(); + PTT_ENABLED.store(state.state, std::sync::atomic::Ordering::Relaxed); }); let win_thrd = win.clone(); @@ -100,16 +106,21 @@ pub fn start_keybind_watcher(win: &tauri::Window) { .map(|(action, keys)| { let keycodes = keys .iter() - .map(|key| js_keycode_to_key(key.code.clone()).unwrap_or_else(|| { - log!("Error converting key: {:?}", key); - Keycode::Key0 - }).clone()) + .map(|key| { + js_keycode_to_key(key.code.clone()).unwrap_or_else(|| { + log!("Error converting key: {:?}", key); + Keycode::Key0 + }) + }) .collect::>(); - (action.clone(), KeyComboState { - keys: keycodes, - pressed: false, - }) + ( + action.clone(), + KeyComboState { + keys: keycodes, + pressed: false, + }, + ) }) .collect::>(); @@ -138,22 +149,25 @@ pub fn start_keybind_watcher(win: &tauri::Window) { // Special consideration for PUSH_TO_TALK, where we should ask if PTT is enabled first // also check for all_pressed so we aren't spam-checking this when not all keys for it are pressed - if action == "PUSH_TO_TALK" && all_pressed { - if !PTT_ENABLED.load(std::sync::atomic::Ordering::Relaxed) { - all_pressed = false; - } + if action == "PUSH_TO_TALK" + && all_pressed + && !PTT_ENABLED.load(std::sync::atomic::Ordering::Relaxed) + { + all_pressed = false; } if all_pressed && !combo.pressed { - win_thrd.emit("keybind_pressed", Some(action.clone())).unwrap_or_default(); + win_thrd + .emit("keybind_pressed", Some(action.clone())) + .unwrap_or_default(); combo.pressed = true; } else if !all_pressed && combo.pressed { - win_thrd.emit("keybind_released", Some(action.clone())).unwrap_or_default(); + win_thrd + .emit("keybind_released", Some(action.clone())) + .unwrap_or_default(); combo.pressed = false; } } } }); } - - diff --git a/src-tauri/src/functionality/keyboard.rs b/src-tauri/src/functionality/keyboard.rs index 7054696d..19e275aa 100644 --- a/src-tauri/src/functionality/keyboard.rs +++ b/src-tauri/src/functionality/keyboard.rs @@ -1,7 +1,7 @@ use device_query::keymap::Keycode; // this sucks -pub fn js_keycode_to_key(keycode: String) -> Option { +pub fn js_keycode_to_key(keycode: String) -> Option { // Might have to make a PR not gonna lie match keycode.as_str() { "KeyA" => Some(Keycode::A), @@ -76,7 +76,6 @@ pub fn js_keycode_to_key(keycode: String) -> Option { //"PrintScreen" => Some(Keycode::PrintScreen), //"ScrollLock" => Some(Keycode::ScrollLock), //"Pause" => Some(Keycode::Pause), - "Insert" => Some(Keycode::Insert), "Home" => Some(Keycode::Home), "PageUp" => Some(Keycode::PageUp), @@ -117,7 +116,7 @@ pub fn js_keycode_to_key(keycode: String) -> Option { // "ContextMenu" => Some(Keycode::Application), "MetaLeft" => Some(Keycode::LMeta), "MetaRight" => Some(Keycode::RMeta), - + // TODO fix for PTT since it uses a slightly different system that doesn't differentiate "Control" => Some(Keycode::LControl), "Shift" => Some(Keycode::LShift), @@ -125,4 +124,4 @@ pub fn js_keycode_to_key(keycode: String) -> Option { "Meta" => Some(Keycode::LMeta), _ => None, } -} \ No newline at end of file +} diff --git a/src-tauri/src/functionality/mod.rs b/src-tauri/src/functionality/mod.rs index 979ec1c1..1af866ce 100644 --- a/src-tauri/src/functionality/mod.rs +++ b/src-tauri/src/functionality/mod.rs @@ -1,4 +1,5 @@ pub mod cache; +pub mod extension; pub mod hotkeys; pub mod keyboard; pub mod rpc; diff --git a/src-tauri/src/functionality/rpc.rs b/src-tauri/src/functionality/rpc.rs index 45133bf6..44f14425 100644 --- a/src-tauri/src/functionality/rpc.rs +++ b/src-tauri/src/functionality/rpc.rs @@ -4,6 +4,7 @@ use rsrpc::{ }; use std::sync::{Arc, Mutex}; use sysinfo::System; +use tauri::Listener; use window_titles::ConnectionTrait; use crate::util::paths::custom_detectables_path; @@ -52,7 +53,7 @@ pub fn append_to_local(detectables: Vec) { .unwrap_or_default(); } -pub fn start_rpc_server(win: tauri::Window) { +pub fn start_rpc_server(win: tauri::WebviewWindow) { let detectable = reqwest::blocking::get("https://discord.com/api/v9/applications/detectable") .expect("Request for detectable.json failed") .text() @@ -67,7 +68,7 @@ pub fn start_rpc_server(win: tauri::Window) { // When the "add_detectable" event is emitted, add the detectable to the server win.listen("add_detectable", move |event| { - let payload: Payload = serde_json::from_str(event.payload().unwrap()).unwrap_or(Payload { + let payload: Payload = serde_json::from_str(event.payload()).unwrap_or(Payload { name: String::from(""), exe: String::from(""), }); @@ -108,7 +109,7 @@ pub fn start_rpc_server(win: tauri::Window) { }); win.listen("remove_detectable", move |event| { - let payload: Payload = serde_json::from_str(event.payload().unwrap()).unwrap_or(Payload { + let payload: Payload = serde_json::from_str(event.payload()).unwrap_or(Payload { name: String::from(""), exe: String::from(""), }); diff --git a/src-tauri/src/functionality/streamer_mode.rs b/src-tauri/src/functionality/streamer_mode.rs index 115edb11..c63f27bc 100644 --- a/src-tauri/src/functionality/streamer_mode.rs +++ b/src-tauri/src/functionality/streamer_mode.rs @@ -1,4 +1,5 @@ use std::sync::atomic::{AtomicBool, Ordering}; +use tauri::Emitter; use crate::config::get_config; use sysinfo::System; @@ -7,7 +8,7 @@ use sysinfo::System; static OBS_OPEN: AtomicBool = AtomicBool::new(false); #[tauri::command] -pub fn start_streamer_mode_watcher(win: tauri::Window) { +pub fn start_streamer_mode_watcher(win: tauri::WebviewWindow) { let enabled = get_config().streamer_mode_detection.unwrap_or(false); let mut system = System::new_all(); diff --git a/src-tauri/src/functionality/tray.rs b/src-tauri/src/functionality/tray.rs index 88e0bdea..657b7305 100644 --- a/src-tauri/src/functionality/tray.rs +++ b/src-tauri/src/functionality/tray.rs @@ -1,9 +1,14 @@ use include_flate::flate; -use tauri::{AppHandle, Icon}; +use tauri::{ + image::Image, + menu::{MenuBuilder, MenuItemBuilder}, + tray::{MouseButton, MouseButtonState, TrayIconBuilder, TrayIconEvent}, + AppHandle, Manager, +}; use crate::log; -flate!(static DEFAULT: [u8] from "./icons/icon.png"); +flate!(static DEFAULT: [u8] from "./icons/32x32.png"); flate!(static CONNECTED: [u8] from "./icons/tray/connected.png"); flate!(static MUTED: [u8] from "./icons/tray/muted.png"); flate!(static DEAFENED: [u8] from "./icons/tray/deafened.png"); @@ -16,15 +21,81 @@ pub fn set_tray_icon(app: AppHandle, event: String) { log!("Setting tray icon to {}", event.as_str()); let icon = match event.as_str() { - "connected" => Icon::Raw(CONNECTED.to_vec()), - "disconnected" => Icon::Raw(DEFAULT.to_vec()), - "muted" => Icon::Raw(MUTED.to_vec()), - "deafened" => Icon::Raw(DEAFENED.to_vec()), - "speaking" => Icon::Raw(SPEAKING.to_vec()), - "video" => Icon::Raw(VIDEO.to_vec()), - "streaming" => Icon::Raw(STREAMING.to_vec()), - _ => Icon::Raw(DEFAULT.to_vec()), + "connected" => Image::from_bytes(&CONNECTED), + "disconnected" => Image::from_bytes(&DEFAULT), + "muted" => Image::from_bytes(&MUTED), + "deafened" => Image::from_bytes(&DEAFENED), + "speaking" => Image::from_bytes(&SPEAKING), + "video" => Image::from_bytes(&VIDEO), + "streaming" => Image::from_bytes(&STREAMING), + _ => Image::from_bytes(&DEFAULT), }; - app.tray_handle().set_icon(icon).unwrap_or_default(); + let icon = match icon { + Ok(icon) => icon, + Err(e) => { + log!("Error creating tray icon: {}", e); + return; + } + }; + + if let Some(tray) = app.tray_by_id("main") { + tray.set_icon(Some(icon)).unwrap_or_default(); + } +} + +pub fn create_tray(app: &AppHandle) -> Result<(), tauri::Error> { + let open_item = MenuItemBuilder::with_id("open", "Open").build(app)?; + let reload_item = MenuItemBuilder::with_id("reload", "Reload").build(app)?; + let restart_item = MenuItemBuilder::with_id("restart", "Restart").build(app)?; + let quit_item = MenuItemBuilder::with_id("quit", "Quit").build(app)?; + + let menu = MenuBuilder::new(app) + .items(&[&open_item, &reload_item, &restart_item, &quit_item]) + .id("main") + .build()?; + + TrayIconBuilder::with_id("main") + .icon(Image::from_bytes(&DEFAULT)?) + .menu(&menu) + .on_menu_event(move |app, event| match event.id().as_ref() { + "quit" => { + app.exit(0); + } + "open" => { + if let Some(win) = app.get_webview_window("main") { + win.show().unwrap_or_default(); + win.set_focus().unwrap_or_default(); + win.unminimize().unwrap_or_default(); + } + } + "restart" => { + app.restart(); + } + "reload" => { + let window = match app.get_webview_window("main") { + Some(win) => win, + None => return, + }; + window.eval("window.location.reload();").unwrap_or_default(); + } + _ => {} + }) + .on_tray_icon_event(|tray, event| { + if let TrayIconEvent::Click { + button: MouseButton::Left, + button_state: MouseButtonState::Up, + .. + } = event + { + let app = tray.app_handle(); + if let Some(webview_window) = app.get_webview_window("main") { + let _ = webview_window.show(); + let _ = webview_window.set_focus(); + } + } + }) + .build(app)?; + + Ok(()) } diff --git a/src-tauri/src/functionality/window.rs b/src-tauri/src/functionality/window.rs index 5dcdcd3c..6eb5a7aa 100644 --- a/src-tauri/src/functionality/window.rs +++ b/src-tauri/src/functionality/window.rs @@ -1,23 +1,24 @@ -use auto_launch::AutoLaunchBuilder; use tauri::Manager; -use tauri::Window; +use tauri_plugin_autostart::ManagerExt; use tauri_plugin_window_state::{AppHandleExt, StateFlags}; use crate::config::get_config; -use crate::deep_link; use crate::log; use crate::util::window_helpers::window_zoom_level; use crate::window::blur::apply_effect; +use super::extension::add_extension; +use super::tray; + // Minimize #[tauri::command] -pub fn minimize(win: Window) { +pub fn minimize(win: tauri::WebviewWindow) { win.minimize().unwrap_or_default(); } // Toggle maximize #[tauri::command] -pub fn toggle_maximize(win: Window) { +pub fn toggle_maximize(win: tauri::WebviewWindow) { if win.is_maximized().unwrap_or_default() { win.unmaximize().unwrap_or_default(); } else { @@ -27,7 +28,7 @@ pub fn toggle_maximize(win: Window) { // Close #[tauri::command] -pub fn close(win: Window) { +pub fn close(win: tauri::WebviewWindow) { // Save window state let app = win.app_handle(); app.save_window_state(StateFlags::all()).unwrap_or_default(); @@ -43,8 +44,9 @@ pub fn close(win: Window) { /** * Applies various window modifications, most being platform-dependent */ -pub fn after_build(window: &Window) { +pub fn after_build(window: &tauri::WebviewWindow) { let startup = std::env::args().any(|arg| arg == "--startup"); + let app = window.app_handle(); let config = get_config(); if config.streamer_mode_detection.unwrap_or(false) { @@ -57,11 +59,6 @@ pub fn after_build(window: &Window) { super::hotkeys::start_keybind_watcher(window); } - // Deep link registry - if !config.multi_instance.unwrap_or(false) { - deep_link::register_deep_link_handler(window.clone()); - } - // If we are opening on startup (which we know from the --startup arg), check to keep the window minimized if !startup || !config.startup_minimized.unwrap_or(false) { // Now that we are ready, and shouldn't start minimized, show the window @@ -84,42 +81,55 @@ pub fn after_build(window: &Window) { { use crate::gpu::disable_hardware_accel_linux; disable_hardware_accel_linux(window); + enable_webrtc(window); + } + + match tray::create_tray(app) { + Ok(_) => {} + Err(e) => { + log!("Error creating tray icon: {:?}", e); + } } + add_extension(window); + window_zoom_level(window.clone(), None); } pub fn setup_autostart(app: &mut tauri::App) { - let app_name = &app.package_info().name; - let current_exe = std::env::current_exe().unwrap_or_default(); - let exe_str = current_exe.to_str().unwrap_or_default(); - - // if the string is empty, just return - if exe_str.is_empty() { - return; - } - - let autolaunch = match AutoLaunchBuilder::new() - .set_app_name(app_name) - .set_app_path(exe_str) - .set_use_launch_agent(true) - .set_args(&["--startup"]) - .build() - { - Ok(autolaunch) => autolaunch, - Err(_) => return, - }; - + let autostart_manager = app.autolaunch(); let should_enable = get_config().open_on_startup.unwrap_or(false); - autolaunch.enable().unwrap_or_default(); - if !should_enable { - autolaunch.disable().unwrap_or_default(); + autostart_manager.disable().unwrap_or_default(); + } else { + autostart_manager.enable().unwrap_or_default(); } log!( "Autolaunch enabled: {}", - autolaunch.is_enabled().unwrap_or_default() + autostart_manager.is_enabled().unwrap_or_default() ); } + +#[cfg(target_os = "linux")] +pub fn enable_webrtc(window: &tauri::WebviewWindow) { + use crate::log; + use webkit2gtk::{PermissionRequestExt, SettingsExt, WebViewExt}; + + window + .with_webview(move |webview| { + let wv = webview.inner(); + let settings = WebViewExt::settings(&wv).unwrap_or_default(); + + settings.set_enable_webrtc(true); + settings.set_enable_media_stream(true); + + // We also need to handle permission requests + wv.connect_permission_request(|_, req| { + req.allow(); + true + }); + }) + .unwrap_or_else(|_| log!("Failed to enable WebRTC")); +} diff --git a/src-tauri/src/gpu.rs b/src-tauri/src/gpu.rs index e7bef2e7..1cf184fb 100644 --- a/src-tauri/src/gpu.rs +++ b/src-tauri/src/gpu.rs @@ -2,16 +2,11 @@ pub fn disable_dma() { // Disable DMA rendering on Linux + NVIDIA systems // see: https://github.com/SpikeHD/Dorion/issues/237 and https://github.com/tauri-apps/tauri/issues/9304 + use crate::log; use wgpu::{ - Backends, - DeviceType, - Dx12Compiler, - Gles3MinorVersion, - Instance, - InstanceDescriptor, + Backends, DeviceType, Dx12Compiler, Gles3MinorVersion, Instance, InstanceDescriptor, InstanceFlags, }; - use crate::log; let instance = Instance::new(InstanceDescriptor { flags: InstanceFlags::empty(), @@ -25,9 +20,11 @@ pub fn disable_dma() { match info.device_type { DeviceType::DiscreteGpu | DeviceType::IntegratedGpu | DeviceType::VirtualGpu => { - log!("NVIDIA GPU detected, disabling DMA"); - std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1"); - }, + if info.name.contains("NVIDIA") { + log!("NVIDIA GPU detected, disabling DMA"); + std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1"); + } + } _ => {} } } @@ -43,27 +40,20 @@ pub fn disable_hardware_accel_windows() { } #[cfg(target_os = "linux")] -pub fn disable_hardware_accel_linux(window: &tauri::Window) { - use webkit2gtk::{WebViewExt, SettingsExt, PermissionRequestExt, HardwareAccelerationPolicy}; +pub fn disable_hardware_accel_linux(window: &tauri::WebviewWindow) { use crate::config::get_config; use crate::log; + use webkit2gtk::{HardwareAccelerationPolicy, SettingsExt, WebViewExt}; window.with_webview(move |webview| { let config = get_config(); let wv = webview.inner(); - let wv = wv.as_ref(); - let settings = WebViewExt::settings(wv).unwrap_or_default(); + let settings = WebViewExt::settings(&wv).unwrap_or_default(); settings.set_user_agent(Some("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")); if config.disable_hardware_accel.unwrap_or(false) { settings.set_hardware_acceleration_policy(HardwareAccelerationPolicy::Never); } - - // We also need to manually ask for permission to use the microphone and camera - wv.connect_permission_request(|_, req| { - req.allow(); - true - }); }).unwrap_or_else(|_| log!("Failed to set user-agent")); -} \ No newline at end of file +} diff --git a/src-tauri/src/injection/injection_runner.rs b/src-tauri/src/injection/injection_runner.rs index 8eb6bf11..7c57a96f 100644 --- a/src-tauri/src/injection/injection_runner.rs +++ b/src-tauri/src/injection/injection_runner.rs @@ -1,24 +1,14 @@ use include_flate::flate; -use std::{ - collections::HashMap, - sync::atomic::{AtomicBool, Ordering}, -}; -use tauri::regex::Regex; +use regex::Regex; +use std::collections::HashMap; use crate::{log, processors::js_preprocess::eval_js_imports}; use super::plugin::get_plugin_list; -static TAURI_INJECTED: AtomicBool = AtomicBool::new(false); - flate!(pub static INJECTION: str from "./injection/postinject_min.js"); flate!(pub static PREINJECT: str from "./injection/preinject_min.js"); -#[tauri::command] -pub fn is_injected() { - TAURI_INJECTED.store(true, Ordering::Relaxed); -} - #[tauri::command] pub async fn get_injection_js(theme_js: &str) -> Result { let theme_rxg = Regex::new(r"/\*! __THEMES__ \*/").unwrap(); @@ -30,7 +20,7 @@ pub async fn get_injection_js(theme_js: &str) -> Result { Ok(rewritten_all) } -fn load_plugins(win: &tauri::Window, plugins: HashMap) { +pub fn load_plugins(win: &tauri::WebviewWindow, plugins: HashMap) { let plugin_list = get_plugin_list(); // Eval plugin imports @@ -74,20 +64,3 @@ fn load_plugins(win: &tauri::Window, plugins: HashMap) { .unwrap_or(()); } } - -#[tauri::command] -pub fn load_injection_js( - window: tauri::Window, - contents: String, - plugins: HashMap, -) { - // Tauri is always not injected when we call this - TAURI_INJECTED.store(false, Ordering::Relaxed); - - // Eval contents - window.eval(contents.as_str()).unwrap_or(()); - - load_plugins(&window, plugins); - - is_injected(); -} diff --git a/src-tauri/src/injection/plugin.rs b/src-tauri/src/injection/plugin.rs index 90d85337..34e59b9c 100644 --- a/src-tauri/src/injection/plugin.rs +++ b/src-tauri/src/injection/plugin.rs @@ -1,9 +1,11 @@ +use regex::Regex; use serde::{Deserialize, Serialize}; use std::{collections::HashMap, fs}; -use tauri::regex::Regex; use crate::{log, util::paths::get_plugin_dir}; +use super::injection_runner; + #[derive(Serialize, Deserialize)] pub struct PluginDetails { pub name: String, @@ -37,12 +39,15 @@ pub fn get_js_imports(js: &str) -> Vec { } #[tauri::command] -pub fn load_plugins(preload_only: Option) -> HashMap { +pub fn load_plugins(win: tauri::WebviewWindow, preload_only: Option) { let plugins_dir = get_plugin_dir(); let plugins_list = get_plugin_list(); let mut plugins: HashMap = HashMap::new(); let plugin_files = fs::read_dir(plugins_dir).unwrap(); + log!("Loading plugins..."); + log!("Preload only: {:?}", preload_only.unwrap_or(false)); + for plugin in plugin_files { let plugin = plugin.unwrap(); let plugin_name = plugin.file_name().to_str().unwrap().to_string(); @@ -68,7 +73,7 @@ pub fn load_plugins(preload_only: Option) -> HashMap { plugins.insert(plugin_name, plugin_js); } - plugins + injection_runner::load_plugins(&win, plugins.clone()); } #[tauri::command] diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 7df9e3db..ab05d7f7 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -3,12 +3,8 @@ windows_subsystem = "windows" )] -use functionality::tray; use std::time::Duration; -use tauri::{ - api::process::restart, CustomMenuItem, Manager, SystemTray, SystemTrayEvent, SystemTrayMenu, - WindowBuilder, -}; +use tauri::{Manager, WebviewWindowBuilder}; use tauri_plugin_window_state::{AppHandleExt, StateFlags, WindowExt}; use config::get_config; @@ -24,7 +20,6 @@ use util::{ logger::log, notifications, paths::get_webdata_dir, - process, window_helpers::{self, clear_cache_check, set_user_agent}, }; @@ -34,7 +29,6 @@ use crate::{ }; mod config; -mod deep_link; mod functionality; mod gpu; mod injection; @@ -44,20 +38,6 @@ mod release; mod util; mod window; -fn create_systray() -> SystemTray { - let open_btn = CustomMenuItem::new("open".to_string(), "Open"); - let reload_btn = CustomMenuItem::new("reload".to_string(), "Reload"); - let restart_brn = CustomMenuItem::new("restart".to_string(), "Restart"); - let quit_btn = CustomMenuItem::new("quit".to_string(), "Quit"); - let tray_menu = SystemTrayMenu::new() - .add_item(open_btn) - .add_item(reload_btn) - .add_item(restart_brn) - .add_item(quit_btn); - - SystemTray::new().with_menu(tray_menu) -} - #[tauri::command] fn should_disable_plugins() -> bool { std::env::args().any(|arg| arg == "--disable-plugins") @@ -78,10 +58,6 @@ fn main() { std::thread::sleep(Duration::from_millis(200)); - if !config.multi_instance.unwrap_or(false) { - tauri_plugin_deep_link::prepare("com.dorion.dev"); - } - // before anything else, check if the clear_cache file exists clear_cache_check(); @@ -105,7 +81,6 @@ fn main() { "Starting Dorion version v{}", context .config() - .package .version .as_ref() .unwrap_or(&String::from("0.0.0")) @@ -119,18 +94,7 @@ fn main() { } let parsed = reqwest::Url::parse(&url).unwrap(); - let url_ext = tauri::WindowUrl::External(parsed); - - // If another process of Dorion is already open, show a dialog - // in the future I want to actually *reveal* the other runnning process - // instead of showing a popup, but this is fine for now - if process::process_already_exists() && !config.multi_instance.unwrap_or(false) { - // Send the dorion://open deep link request - helpers::open_scheme("dorion://open".to_string()).unwrap_or_default(); - - // Exit - std::process::exit(0); - } + let url_ext = tauri::WebviewUrl::External(parsed); // Safemode check let safemode = std::env::args().any(|arg| arg == "--safemode"); @@ -140,8 +104,16 @@ fn main() { #[allow(clippy::single_match)] tauri::Builder::default() - .plugin(tauri_plugin_window_state::Builder::default().build()) - .system_tray(create_systray()) + .plugin(tauri_plugin_http::init()) + .plugin(tauri_plugin_shell::init()) + .plugin(tauri_plugin_notification::init()) + .plugin(tauri_plugin_autostart::init( + tauri_plugin_autostart::MacosLauncher::LaunchAgent, + None, + )) + .plugin(tauri_plugin_process::init()) + .plugin(tauri_plugin_notification::init()) + .plugin(tauri_plugin_window_state::Builder::new().build()) .invoke_handler(tauri::generate_handler![ should_disable_plugins, functionality::window::minimize, @@ -174,8 +146,6 @@ fn main() { functionality::hotkeys::set_keybinds, functionality::hotkeys::set_keybind, injection_runner::get_injection_js, - injection_runner::is_injected, - injection_runner::load_injection_js, config::get_config, config::set_config, config::read_config_file, @@ -194,9 +164,9 @@ fn main() { window_helpers::remove_top_bar, window_helpers::set_clear_cache, window_helpers::window_zoom_level, - tray::set_tray_icon, + functionality::tray::set_tray_icon, ]) - .on_window_event(|event| match event.event() { + .on_window_event(|window, event| match event { tauri::WindowEvent::Resized { .. } => { // Sleep for a millisecond (blocks the thread but it doesn't really matter) // https://github.com/tauri-apps/tauri/issues/6322#issuecomment-1448141495 @@ -208,105 +178,73 @@ fn main() { tauri::WindowEvent::CloseRequested { api, .. } => { // Just hide the window if the config calls for it if get_config().sys_tray.unwrap_or(false) { - event.window().hide().unwrap_or_default(); + window.hide().unwrap_or_default(); api.prevent_close(); } - event - .window() + window .app_handle() .save_window_state(StateFlags::all()) .unwrap_or_default(); } _ => {} }) - .on_system_tray_event(|app, event| match event { - SystemTrayEvent::LeftClick { - position: _, - size: _, - .. - } => { - // Reopen the window if the tray menu icon is clicked - match app.get_window("main") { - Some(win) => { - win.show().unwrap_or_default(); - win.set_focus().unwrap_or_default(); - win.unminimize().unwrap_or_default(); - } - None => {} - } - } - SystemTrayEvent::MenuItemClick { id, .. } => { - let window = match app.get_window("main") { - Some(win) => win, - None => return, - }; - - if id == "quit" { - // Close the process - window.close().unwrap_or_default(); - } - - if id == "open" { - // Reopen the window - window.show().unwrap_or_default(); - window.set_focus().unwrap_or_default(); - window.unminimize().unwrap_or_default(); - } - - if id == "restart" { - // Restart the process - restart(&app.env()); - } - - if id == "reload" { - // Reload the window - window.eval("window.location.reload();").unwrap_or_default(); - } - } - _ => {} - }) - .setup(move |app| { + .setup(move |app: &mut tauri::App| { // Init plugin list plugin::get_new_plugins(); - // Load preload plugins into a single string - let mut preload_str = String::new(); - - for script in plugin::load_plugins(Some(true)).values() { - preload_str += format!("{};", script).as_str(); - } - // First, grab preload plugins let title = format!("Dorion - v{}", app.package_info().version); - let win = WindowBuilder::new(app, "main", url_ext) + let win = WebviewWindowBuilder::new(app, "main", url_ext) .title(title.as_str()) .initialization_script( - format!( - "!window.__DORION_INITIALIZED__ && {};{};{}", - PREINJECT.as_str(), + format!(r#" + {};{} + "#, + PREINJECT.clone(), client_mods, - preload_str, ).as_str() ) .resizable(true) .min_inner_size(100.0, 100.0) - .disable_file_drop_handler() + .disable_drag_drop_handler() .data_directory(get_webdata_dir()) // Prevent flickering by starting hidden, and show later .visible(false) .decorations(true) + .shadow(true) .transparent( config.blur.unwrap_or("none".to_string()) != "none" ) .build()?; - #[cfg(any(windows, target_os = "macos"))] - window_shadows::set_shadow(&win, true).unwrap_or_default(); - // Set the user agent to one that enables all normal Discord features set_user_agent(&win); + // Multi-instance check + if !config.multi_instance.unwrap_or(false) { + log!("Multi-instance disabled, registering single instance plugin..."); + + app + .handle() + .plugin(tauri_plugin_single_instance::init( + move |app, _argv, _cwd| { + let win = match app.get_webview_window("main") { + Some(win) => win, + None => { + log!("No windows open with name \"main\"(???)"); + return; + } + }; + + win.set_focus().unwrap_or_default(); + win.unminimize().unwrap_or_default(); + win.show().unwrap_or_default(); + }, + )) + .unwrap_or_else(|_| log!("Failed to register single instance plugin")); + } + // If safemode is enabled, stop here if safemode { win.show().unwrap_or_default(); @@ -316,6 +254,8 @@ fn main() { // restore state BEFORE after_build, since that may change the window win.restore_state(StateFlags::all()).unwrap_or_default(); + plugin::load_plugins(win.clone(), Some(true)); + // begin the RPC server if needed if get_config().rpc_server.unwrap_or(false) { let win_cln = win.clone(); diff --git a/src-tauri/src/processors/css_preprocess.rs b/src-tauri/src/processors/css_preprocess.rs index 761273b2..46566d6f 100644 --- a/src-tauri/src/processors/css_preprocess.rs +++ b/src-tauri/src/processors/css_preprocess.rs @@ -1,7 +1,8 @@ use std::fs; use async_recursion::async_recursion; -use tauri::regex::Regex; +use regex::Regex; +use tauri::Emitter; use crate::config::get_config; use crate::log; @@ -25,7 +26,7 @@ pub async fn clear_css_cache() { #[tauri::command] #[async_recursion] -pub async fn localize_imports(win: tauri::Window, css: String, name: String) -> String { +pub async fn localize_imports(win: tauri::WebviewWindow, css: String, name: String) -> String { let reg = Regex::new(r#"(?m)^@import url\((?:"|'|)(?:|.+?)\/\/(.+?)(?:"|'|)\);"#).unwrap(); let mut seen_urls: Vec = vec![]; let mut new_css = css.clone(); @@ -121,7 +122,7 @@ pub async fn localize_imports(win: tauri::Window, css: String, name: String) -> let (url, processed) = result.unwrap(); - println!( + log!( "Replacing URL: {} with CSS that is {} characters long", url, processed.len() @@ -145,7 +146,6 @@ pub async fn localize_imports(win: tauri::Window, css: String, name: String) -> // Now localize images to base64 data representations new_css = localize_images(win.clone(), new_css).await; - new_css = localize_fonts(win.clone(), new_css).await; // If we need to cache css, do that if get_config().cache_css.unwrap_or(true) { @@ -164,7 +164,7 @@ pub async fn localize_imports(win: tauri::Window, css: String, name: String) -> new_css } -pub async fn localize_images(win: tauri::Window, css: String) -> String { +pub async fn localize_images(win: tauri::WebviewWindow, css: String) -> String { let img_reg = Regex::new(r#"url\((?:'|"|)(http.+?)(?:'|"|)\)"#).unwrap(); let mut new_css = css.clone(); let matches = img_reg.captures_iter(Box::leak(css.clone().into_boxed_str())); @@ -288,97 +288,3 @@ pub async fn localize_images(win: tauri::Window, css: String) -> String { new_css } - -async fn localize_fonts(win: tauri::Window, css: String) -> String { - let font_reg = Regex::new( - r#"@font-face.{0,1}\{(?:.|\n)+?src:.{0,1}url\((?:'|"|)(http.+?)\.([a-zA-Z0-9]{0,5})(?:'|"|)\)"#, - ) - .unwrap(); - let mut new_css = css.clone(); - let matches = font_reg.captures_iter(Box::leak(css.clone().into_boxed_str())); - - // This could be pretty computationally expensive for just a count, so I should change this sometime - let count = font_reg - .captures_iter(Box::leak(css.into_boxed_str())) - .count(); - - let mut tasks = Vec::new(); - - // Check if the matches iter is more than 50 - // If it is, we should just skip it - if count > 50 { - win - .emit( - "loading_log", - format!("Too many fonts to process ({}), skipping...", count), - ) - .unwrap_or_default(); - return new_css; - } - - for groups in matches { - let url = groups.get(1).unwrap().as_str(); - let filetype = groups.get(2).unwrap().as_str(); - let full_url = format!("{}.{}", url, filetype); - - // CORS allows discord media - if url.is_empty() - || url.contains("cdn.discordapp") - || url.contains("discord.com/assets") - || url.contains("fonts.gstatic.com") - { - continue; - } - - let win_clone = win.clone(); // Clone the Window handle for use in the async block - - tasks.push(std::thread::spawn(move || { - log!("Getting: {}", &full_url); - - let response = match reqwest::blocking::get(&full_url) { - Ok(r) => r, - Err(e) => { - log!("Request failed: {}", e); - log!("URL: {}", &full_url); - - win_clone - .emit("loading_log", "A font failed to import...".to_string()) - .unwrap_or_default(); - - return None; - } - }; - let bytes = response.bytes().unwrap(); - let b64 = general_purpose::STANDARD.encode(&bytes); - - win_clone - .emit("loading_log", format!("Processed font import: {}", &url)) - .unwrap_or_default(); - - Some(( - full_url.to_owned(), - format!("data:font/{};charset=utf-8;base64,{}", filetype, b64), - )) - })); - } - - for task in tasks { - let result = match task.join() { - Ok(r) => r, - Err(e) => { - log!("Error joining thread: {:?}", e); - continue; - } - }; - - if result.is_none() { - continue; - } - - let (url, b64) = result.unwrap(); - - new_css = new_css.replace(url.as_str(), b64.as_str()); - } - - new_css -} diff --git a/src-tauri/src/processors/js_preprocess.rs b/src-tauri/src/processors/js_preprocess.rs index 8ef6fb0e..d3ba3bb1 100644 --- a/src-tauri/src/processors/js_preprocess.rs +++ b/src-tauri/src/processors/js_preprocess.rs @@ -29,7 +29,7 @@ pub async fn localize_all_js(urls: Vec) -> Vec { localized } -pub fn eval_js_imports(window: &tauri::Window, scripts: Vec) { +pub fn eval_js_imports(window: &tauri::WebviewWindow, scripts: Vec) { for script in scripts { match window.eval(script.as_str()) { Ok(r) => r, diff --git a/src-tauri/src/release.rs b/src-tauri/src/release.rs index 9a38bee5..aa017122 100644 --- a/src-tauri/src/release.rs +++ b/src-tauri/src/release.rs @@ -1,10 +1,10 @@ -use tauri::Manager; +use tauri::{Emitter, Manager}; use crate::log; use crate::util::paths::{config_is_local, updater_dir}; #[tauri::command] -pub async fn update_check(win: tauri::Window) -> Vec { +pub async fn update_check(win: tauri::WebviewWindow) -> Vec { let mut to_update = vec![]; log!("Checking for updates..."); @@ -20,7 +20,7 @@ pub async fn update_check(win: tauri::Window) -> Vec { } #[tauri::command] -pub async fn do_update(win: tauri::Window, to_update: Vec) { +pub async fn do_update(win: tauri::WebviewWindow, to_update: Vec) { let updater_path = updater_dir(&win); let mut updater = std::process::Command::new(updater_path); @@ -65,7 +65,7 @@ pub async fn do_update(win: tauri::Window, to_update: Vec) { } pub async fn maybe_latest_main_release( - win: &tauri::Window, + win: &tauri::WebviewWindow, ) -> Result> { let url = "https://api.github.com/repos/SpikeHD/Dorion/releases/latest"; let client = reqwest::Client::new(); diff --git a/src-tauri/src/util/helpers.rs b/src-tauri/src/util/helpers.rs index 93f2e745..095ced5f 100644 --- a/src-tauri/src/util/helpers.rs +++ b/src-tauri/src/util/helpers.rs @@ -62,19 +62,6 @@ fn open_folder(path: PathBuf) -> Result<(), Box> { Ok(()) } -pub fn open_scheme(scheme: String) -> Result<(), Box> { - #[cfg(target_os = "windows")] - Command::new("start").arg(scheme).spawn()?; - - #[cfg(target_os = "macos")] - Command::new("open").arg(scheme).spawn()?; - - #[cfg(target_os = "linux")] - Command::new("xdg-open").arg(scheme).spawn()?; - - Ok(()) -} - #[tauri::command] pub fn get_platform() -> &'static str { #[cfg(target_os = "windows")] diff --git a/src-tauri/src/util/mod.rs b/src-tauri/src/util/mod.rs index 4a76788e..e577011c 100644 --- a/src-tauri/src/util/mod.rs +++ b/src-tauri/src/util/mod.rs @@ -3,5 +3,4 @@ pub mod helpers; pub mod logger; pub mod notifications; pub mod paths; -pub mod process; pub mod window_helpers; diff --git a/src-tauri/src/util/notifications.rs b/src-tauri/src/util/notifications.rs index b5bf9802..6f4b78da 100644 --- a/src-tauri/src/util/notifications.rs +++ b/src-tauri/src/util/notifications.rs @@ -1,14 +1,16 @@ use crate::log; -use tauri::{api::notification, Manager}; +use tauri::Manager; +use tauri_plugin_notification::NotificationExt; #[tauri::command] -pub fn send_notification(win: tauri::Window, title: String, body: String, icon: String) { +pub fn send_notification(win: tauri::WebviewWindow, title: String, body: String, icon: String) { // Write the result of the icon + let app = win.app_handle(); let client = reqwest::blocking::Client::new(); let mut res = match client.get(icon).send() { Ok(res) => res, Err(_) => { - send_notification_internal(win, title, body, String::new()); + send_notification_internal(app, title, body, String::new()); return; } }; @@ -20,7 +22,7 @@ pub fn send_notification(win: tauri::Window, title: String, body: String, icon: let file = match std::fs::File::create(&tmp_file) { Ok(file) => file, Err(_) => { - send_notification_internal(win, title, body, String::new()); + send_notification_internal(app, title, body, String::new()); return; } }; @@ -29,7 +31,7 @@ pub fn send_notification(win: tauri::Window, title: String, body: String, icon: match std::io::copy(&mut res, &mut std::io::BufWriter::new(file)) { Ok(_) => {} Err(_) => { - send_notification_internal(win, title, body, String::new()); + send_notification_internal(app, title, body, String::new()); return; } } @@ -43,22 +45,22 @@ pub fn send_notification(win: tauri::Window, title: String, body: String, icon: icon_path.push_str(&tmp_file.to_str().unwrap_or_default().replace('\\', "/")); - send_notification_internal(win, title, body, icon_path); + send_notification_internal(app, title, body, icon_path); } -fn send_notification_internal(win: tauri::Window, title: String, body: String, icon: String) { - let app = win.app_handle(); - - notification::Notification::new(&app.config().tauri.bundle.identifier) +fn send_notification_internal(app: &tauri::AppHandle, title: String, body: String, icon: String) { + app + .notification() + .builder() .title(title) .body(body) .icon(icon) - .notify(&app) + .show() .unwrap_or_default(); } #[tauri::command] -pub fn notif_count(window: tauri::Window, amount: i32) { +pub fn notif_count(window: tauri::WebviewWindow, amount: i32) { log!("Setting notification count: {}", amount); #[cfg(not(target_os = "linux"))] @@ -71,7 +73,7 @@ pub fn notif_count(window: tauri::Window, amount: i32) { } #[cfg(target_os = "windows")] -pub unsafe fn set_notif_icon(window: &tauri::Window, amount: i32) { +pub unsafe fn set_notif_icon(window: &tauri::WebviewWindow, amount: i32) { use include_flate::flate; use windows::Win32::{ System::Com::{CoCreateInstance, CoInitialize, CoUninitialize, CLSCTX_ALL}, @@ -93,7 +95,10 @@ pub unsafe fn set_notif_icon(window: &tauri::Window, amount: i32) { flate!(static ICO_8: [u8] from "./icons/notifications/8_48.png"); flate!(static ICO_9: [u8] from "./icons/notifications/9_48.png"); - CoInitialize(std::ptr::null()).unwrap_or_default(); + if CoInitialize(Some(std::ptr::null())).is_err() { + log!("Failed to initialize COM"); + return; + } let hwnd = window.hwnd(); @@ -104,18 +109,18 @@ pub unsafe fn set_notif_icon(window: &tauri::Window, amount: i32) { let hwnd = hwnd.unwrap(); let ico = match amount { - -1 => (ICO_SOME.as_ptr(), ICO_SOME.len()), - 1 => (ICO_1.as_ptr(), ICO_1.len()), - 2 => (ICO_2.as_ptr(), ICO_2.len()), - 3 => (ICO_3.as_ptr(), ICO_3.len()), - 4 => (ICO_4.as_ptr(), ICO_4.len()), - 5 => (ICO_5.as_ptr(), ICO_5.len()), - 6 => (ICO_6.as_ptr(), ICO_6.len()), - 7 => (ICO_7.as_ptr(), ICO_7.len()), - 8 => (ICO_8.as_ptr(), ICO_8.len()), - 9 => (ICO_9.as_ptr(), ICO_9.len()), + -1 => (ICO_SOME.as_ref(), ICO_SOME.len()), + 1 => (ICO_1.as_ref(), ICO_1.len()), + 2 => (ICO_2.as_ref(), ICO_2.len()), + 3 => (ICO_3.as_ref(), ICO_3.len()), + 4 => (ICO_4.as_ref(), ICO_4.len()), + 5 => (ICO_5.as_ref(), ICO_5.len()), + 6 => (ICO_6.as_ref(), ICO_6.len()), + 7 => (ICO_7.as_ref(), ICO_7.len()), + 8 => (ICO_8.as_ref(), ICO_8.len()), + 9 => (ICO_9.as_ref(), ICO_9.len()), // more than 9, just stay at 9 - _ => (ICO_9.as_ptr(), ICO_9.len()), + _ => (ICO_9.as_ref(), ICO_9.len()), }; // set the icon @@ -138,7 +143,7 @@ pub unsafe fn set_notif_icon(window: &tauri::Window, amount: i32) { let taskbar_list = taskbar_list.unwrap(); taskbar_list.HrInit().unwrap_or_default(); - let hicon = CreateIconFromResourceEx(ico.0, ico.1 as u32, true, 0x30000, 32, 32, LR_DEFAULTCOLOR); + let hicon = CreateIconFromResourceEx(ico.0, true, 0x30000, 32, 32, LR_DEFAULTCOLOR); // Apparently things can fail with a success message, lol: https://github.com/microsoft/windows-rs/issues/2108 if hicon.is_err() || amount == 0 { @@ -161,7 +166,7 @@ pub unsafe fn set_notif_icon(window: &tauri::Window, amount: i32) { // https://github.com/tauri-apps/tauri/issues/4489#issuecomment-1170050529 #[cfg(target_os = "macos")] -pub unsafe fn set_notif_icon(_window: &tauri::Window, amount: i32) { +pub unsafe fn set_notif_icon(_window: &tauri::WebviewWindow, amount: i32) { use cocoa::{appkit::NSApp, base::nil, foundation::NSString}; use objc::{msg_send, sel, sel_impl}; @@ -175,4 +180,4 @@ pub unsafe fn set_notif_icon(_window: &tauri::Window, amount: i32) { } #[cfg(target_os = "linux")] -pub fn set_notif_icon(_window: &tauri::Window, _amount: i32) {} +pub fn set_notif_icon(_window: &tauri::WebviewWindow, _amount: i32) {} diff --git a/src-tauri/src/util/paths.rs b/src-tauri/src/util/paths.rs index 78b62e85..d6d2ae13 100644 --- a/src-tauri/src/util/paths.rs +++ b/src-tauri/src/util/paths.rs @@ -1,5 +1,6 @@ use std::{fs, path::PathBuf}; +use tauri::path::BaseDirectory; use tauri::Manager; use crate::config::{default_config, get_config}; @@ -15,7 +16,7 @@ pub fn is_portable() -> bool { pub fn get_config_dir() -> PathBuf { // First check for a local config file let current_exe = std::env::current_exe().unwrap_or_default(); - let local_config_dir = current_exe.parent().unwrap().join("config.json"); + let local_config_dir = current_exe.parent().unwrap().to_path_buf(); if is_portable() { // Create file if it doesn't exist @@ -30,20 +31,25 @@ pub fn get_config_dir() -> PathBuf { return local_config_dir; } - log!("No local config file found. Using default."); - #[cfg(target_os = "windows")] let appdata = dirs::data_dir().unwrap_or_default(); #[cfg(not(target_os = "windows"))] let appdata = dirs::config_dir().unwrap_or_default(); - let config_file = appdata.join("dorion").join("config.json"); + let config_dir = appdata.join("dorion"); - if fs::metadata(appdata.join("dorion")).is_err() { + if fs::metadata(&config_dir).is_err() { fs::create_dir_all(appdata.join("dorion")).expect("Error creating appdata dir"); } + config_dir +} + +pub fn get_config_file() -> PathBuf { + let config_dir = get_config_dir(); + let config_file = config_dir.join("config.json"); + // Write default config if it doesn't exist if fs::metadata(&config_file).is_err() { fs::write( @@ -203,7 +209,7 @@ pub fn get_webdata_dir() -> PathBuf { profiles.join(profile).join("webdata") } -pub fn updater_dir(win: &tauri::Window) -> PathBuf { +pub fn updater_dir(win: &tauri::WebviewWindow) -> PathBuf { let current_exe = std::env::current_exe().unwrap_or_default(); if is_portable() { @@ -213,8 +219,8 @@ pub fn updater_dir(win: &tauri::Window) -> PathBuf { win .app_handle() - .path_resolver() - .resolve_resource(PathBuf::from("updater")) + .path() + .resolve(PathBuf::from("updater"), BaseDirectory::Resource) .unwrap_or_default() } diff --git a/src-tauri/src/util/process.rs b/src-tauri/src/util/process.rs deleted file mode 100644 index aa1b271a..00000000 --- a/src-tauri/src/util/process.rs +++ /dev/null @@ -1,16 +0,0 @@ -use sysinfo::System; - -pub fn process_already_exists() -> bool { - let mut exists = false; - let mut system = System::new_all(); - system.refresh_all(); - - for p in system.processes_by_name("Dorion") { - if std::process::id() != p.pid().as_u32() { - exists = true; - break; - } - } - - exists -} diff --git a/src-tauri/src/util/window_helpers.rs b/src-tauri/src/util/window_helpers.rs index 59c9c258..73ab4509 100644 --- a/src-tauri/src/util/window_helpers.rs +++ b/src-tauri/src/util/window_helpers.rs @@ -22,7 +22,7 @@ pub fn clear_cache_check() { } #[tauri::command] -pub fn set_clear_cache(win: tauri::Window) { +pub fn set_clear_cache(win: tauri::WebviewWindow) { // Create a file called "clear_cache" in the appdata dir // This will be read by the window when it closes let appdata = dirs::data_dir().unwrap_or_default().join("dorion"); @@ -51,7 +51,7 @@ pub fn clear_cache() { #[cfg(target_os = "windows")] #[tauri::command] -pub fn window_zoom_level(win: tauri::Window, value: Option) { +pub fn window_zoom_level(win: tauri::WebviewWindow, value: Option) { win .with_webview(move |webview| unsafe { let zoom = value.unwrap_or( @@ -69,7 +69,7 @@ pub fn window_zoom_level(win: tauri::Window, value: Option) { #[cfg(not(target_os = "windows"))] #[tauri::command] -pub fn window_zoom_level(win: tauri::Window, value: Option) { +pub fn window_zoom_level(win: tauri::WebviewWindow, value: Option) { let zoom = value.unwrap_or( get_config() .zoom @@ -85,30 +85,30 @@ pub fn window_zoom_level(win: tauri::Window, value: Option) { #[cfg(not(target_os = "macos"))] #[tauri::command] -pub fn remove_top_bar(win: tauri::Window) { +pub fn remove_top_bar(win: tauri::WebviewWindow) { win.set_decorations(false).unwrap_or(()); } // Top bar is broken for MacOS currently #[cfg(target_os = "macos")] #[tauri::command] -pub fn remove_top_bar(_win: tauri::Window) {} +pub fn remove_top_bar(_win: tauri::WebviewWindow) {} #[cfg(target_os = "windows")] -pub fn set_user_agent(win: &tauri::Window) { +pub fn set_user_agent(win: &tauri::WebviewWindow) { use webview2_com::Microsoft::Web::WebView2::Win32::ICoreWebView2Settings2; use windows::core::{Interface, HSTRING}; win .with_webview(|webview| unsafe { - let settings: ICoreWebView2Settings2 = webview + let settings = webview .controller() .CoreWebView2() .expect("Failed to get CoreWebView2!") .Settings() .expect("Failed to get Settings!") .cast::() - .expect("Failed to cast to ICoreWebView2Settings2!"); + .expect("Failed to cast settings!"); settings .SetUserAgent(&HSTRING::from(USERAGENT)) @@ -120,7 +120,7 @@ pub fn set_user_agent(win: &tauri::Window) { } #[cfg(target_os = "linux")] -pub fn set_user_agent(win: &tauri::Window) { +pub fn set_user_agent(win: &tauri::WebviewWindow) { use webkit2gtk::{SettingsExt, WebViewExt}; win @@ -134,7 +134,7 @@ pub fn set_user_agent(win: &tauri::Window) { } #[cfg(target_os = "macos")] -pub fn set_user_agent(win: &tauri::Window) { +pub fn set_user_agent(win: &tauri::WebviewWindow) { use objc::{msg_send, sel, sel_impl}; use objc_foundation::{INSString, NSString}; diff --git a/src-tauri/src/window/blur.rs b/src-tauri/src/window/blur.rs index d6049bea..552cfdd6 100644 --- a/src-tauri/src/window/blur.rs +++ b/src-tauri/src/window/blur.rs @@ -18,7 +18,7 @@ pub fn available_blurs() -> Vec<&'static str> { } #[tauri::command] -pub fn apply_effect(win: tauri::Window, effect: &str) { +pub fn apply_effect(win: tauri::WebviewWindow, effect: &str) { #[cfg(target_os = "windows")] { use window_vibrancy::{apply_acrylic, apply_blur, apply_mica}; @@ -54,7 +54,7 @@ pub fn apply_effect(win: tauri::Window, effect: &str) { // Might use this one day, today is not that day // #[tauri::command] -// pub fn remove_effect(win: tauri::Window) { +// pub fn remove_effect(win: tauri::WebviewWindow) { // #[cfg(target_os = "windows")] // { // use window_vibrancy::{clear_acrylic, clear_blur, clear_mica}; diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index f2d62065..14ff0381 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -2,114 +2,55 @@ "build": { "beforeDevCommand": "", "beforeBuildCommand": "pnpm build", - "devPath": "https://discord.com/app", - "distDir": "https://discord.com/app", - "withGlobalTauri": true + "frontendDist": "https://discord.com/app", + "devUrl": "https://discord.com/app" }, - "package": { - "productName": "Dorion", - "version": "5.0.1" - }, - "tauri": { - "macOSPrivateApi": true, - "systemTray": { - "iconPath": "icons/icon.png", - "iconAsTemplate": true + "bundle": { + "active": true, + "category": "SocialNetworking", + "copyright": "", + "targets": "all", + "externalBin": [], + "icon": [ + "icons/icon.ico", + "icons/icon.png" + ], + "windows": { + "certificateThumbprint": null, + "digestAlgorithm": "sha256", + "timestampUrl": "" }, - "allowlist": { - "all": true, - "fs": { - "all": false, - "scope": [ - "$RESOURCE/**/*" - ] - }, - "os": { - "all": false - }, - "process": { - "all": false, - "exit": false, - "relaunch": true, - "relaunchDangerousAllowSymlinkMacos": false - }, - "shell": { - "all": false, - "execute": false, - "open": true, - "scope": [], - "sidecar": false - }, - "http": { - "scope": [ - "https://**/*", - "http://**/*" - ] - }, - "path": { - "all": true - }, - "notification": { - "all": true - } + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": null }, - "bundle": { - "active": true, - "category": "DeveloperTool", - "copyright": "", + "resources": [ + "injection/shelter.js", + "icons/icon*.ico", + "icons/icon_macos.png", + "extension/*", + "updater*" + ], + "shortDescription": "", + "linux": { "deb": { "depends": [] - }, - "externalBin": [], - "icon": [ - "icons/icon.ico", - "icons/icon.png" - ], - "identifier": "com.dorion.dev", - "longDescription": "", - "macOS": { - "entitlements": null, - "exceptionDomain": "", - "frameworks": [], - "providerShortName": null, - "signingIdentity": null - }, - "resources": [ - "injection/shelter.js", - "icons/icon*.ico", - "icons/icon_macos.png", - "updater*" - ], - "shortDescription": "", - "targets": "all", - "windows": { - "certificateThumbprint": null, - "digestAlgorithm": "sha256", - "timestampUrl": "" } - }, + } + }, + "productName": "Dorion", + "version": "5.0.1", + "identifier": "com.dorion.dev", + "plugins": {}, + "app": { + "macOSPrivateApi": true, + "withGlobalTauri": true, "security": { - "dangerousRemoteDomainIpcAccess": [ - { - "enableTauriAPI": true, - "domain": "discord.com", - "windows": ["main"] - }, - { - "enableTauriAPI": true, - "domain": "ptb.discord.com", - "windows": ["main"] - }, - { - "enableTauriAPI": true, - "domain": "canary.discord.com", - "windows": ["main"] - } - ], "csp": null - }, - "updater": { - "active": false } } -} +} \ No newline at end of file diff --git a/src/extra.css b/src/extra.css index 2391fca2..6cbf23e5 100644 --- a/src/extra.css +++ b/src/extra.css @@ -1,5 +1,5 @@ :root { - --os-accent-color: "{{os_accent}}"; + --os-accent-color: '{{os_accent}}'; } ul[class^='tree'] diff --git a/updater/Cargo.toml b/updater/Cargo.toml index a27bce1a..73c54dc7 100644 --- a/updater/Cargo.toml +++ b/updater/Cargo.toml @@ -4,6 +4,7 @@ version = "0.1.0" edition = "2021" [profile.release] +lto = true strip = "debuginfo" [dependencies]