From dd1bf652eeda0929cb1601c71ad5526f0c46f54d Mon Sep 17 00:00:00 2001 From: Sekwah Date: Wed, 25 Oct 2023 05:46:23 +0100 Subject: [PATCH] feat(tauri): auto updater --- .github/workflows/build-tauri.yml | 84 +- .github/workflows/build.yml | 18 +- .github/workflows/release-please.yml | 32 +- .github/workflows/test-build-thingy.yml | 30 + .gitignore | 2 + app/renderer/package.json | 8 +- .../contexts/connectors/TauriConnector.tsx | 2 +- .../src/extensions/window.extension.ts | 1 + app/shareables/package.json | 3 +- app/tauri/Cargo.lock | 873 +++++++++++++----- app/tauri/Cargo.toml | 15 +- app/tauri/installer/nsis/header.bmp | Bin 0 -> 25818 bytes app/tauri/installer/nsis/sidebar.bmp | Bin 0 -> 206038 bytes app/tauri/installer/{ => wix}/banner.bmp | Bin app/tauri/installer/{ => wix}/dialog.bmp | Bin app/tauri/release-prep/release-prep.js | 192 ++++ app/tauri/release.conf.json | 18 + app/tauri/src/global_shortcuts.rs | 4 +- app/tauri/src/main.rs | 21 +- app/tauri/src/system_tray.rs | 4 +- app/tauri/src/updater.rs | 84 ++ app/tauri/tauri.conf.json | 17 +- package.json | 6 +- yarn.lock | 175 ++-- 24 files changed, 1230 insertions(+), 359 deletions(-) create mode 100644 .github/workflows/test-build-thingy.yml create mode 100644 app/tauri/installer/nsis/header.bmp create mode 100644 app/tauri/installer/nsis/sidebar.bmp rename app/tauri/installer/{ => wix}/banner.bmp (100%) rename app/tauri/installer/{ => wix}/dialog.bmp (100%) create mode 100644 app/tauri/release-prep/release-prep.js create mode 100644 app/tauri/release.conf.json create mode 100644 app/tauri/src/updater.rs diff --git a/.github/workflows/build-tauri.yml b/.github/workflows/build-tauri.yml index 9cbe53bd..eb15e6c7 100644 --- a/.github/workflows/build-tauri.yml +++ b/.github/workflows/build-tauri.yml @@ -1,7 +1,13 @@ -name: Test Build Tauri +name: Build Tauri on: push: + branches-ignore: + - "master" + paths-ignore: + - "website" + workflow_call: + workflow_dispatch: jobs: build: name: "Test Build" @@ -13,20 +19,38 @@ jobs: include: - os: ubuntu-22.04 name: linux + # https://tauri.app/v1/guides/building/linux#cross-compiling-tauri-applications-for-arm-based-devices + # Cross Compiling is also more of a pain it seems for linux atm, explore later + targets: "x86_64-unknown-linux-gnu" + tauri_target: ["x86_64-unknown-linux-gnu"] - os: macos-latest name: mac + targets: "aarch64-apple-darwin,x86_64-apple-darwin" + tauri_target: ["universal-apple-darwin"] - os: windows-latest name: win + targets: "aarch64-pc-windows-msvc,x86_64-pc-windows-msvc" + # The MSI installer is better integrated with the Add/Remove menu and feels more modern. + # The only real added benefit of NSIS is that the installer can have a custom logo. + # Also, nsis is the only one that currently works on arm64 + # Another note is embedBootstrapper is enabled to improve support on window 7. Though windows 7 doesn't support arm64. + tauri_target: ["'aarch64-pc-windows-msvc --bundles nsis,updater'", "'x86_64-pc-windows-msvc --bundles msi,updater'"] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Use Node.js 18.x - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: - node-version: 16.x + node-version: 18.x cache: "yarn" - name: install Rust stable uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.targets }} + - name: Rust cache + uses: swatinem/rust-cache@v2 + with: + workspaces: './app/tauri -> target' - name: install dependencies (ubuntu only) if: matrix.os == 'ubuntu-22.04' run: | @@ -36,14 +60,50 @@ jobs: run: | yarn install --immutable --network-timeout 120000 - name: Build - run: yarn build:tauri + shell: bash + run: | + for target in ${{ join(matrix.tauri_target, ' ') }}; do + yarn build:tauri --target $target --config ./app/tauri/release.conf.json + done + env: + TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} # Possibly set up some basic unit testing just to make sure parts render and none of the libraries are straight up breaking - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v3 + with: + name: tauri-${{ matrix.name }} + path: | + app/tauri/target/*/release/bundle/**/*.AppImage + app/tauri/target/*/release/bundle/**/*.dmg + app/tauri/target/*/release/bundle/**/*.deb + app/tauri/target/*/release/bundle/**/msi/*.msi + app/tauri/target/*/release/bundle/**/nsis/*.exe + app/tauri/target/*/release/bundle/appimage/**/*.tar.gz + app/tauri/target/*/release/bundle/macos/**/*.tar.gz + app/tauri/target/*/release/bundle/**/*.zip + app/tauri/target/*/release/bundle/**/*.sig + generate-updater-file: + needs: build + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Download all artifacts + uses: actions/download-artifact@v3 + with: + path: artifacts + - name: Display structure of downloaded files + shell: bash + run: ls -R + - name: Use Node.js 18.x + uses: actions/setup-node@v3 + with: + node-version: 18.x + cache: "yarn" + - name: Generate updater file + run: node app/tauri/release-prep/release-prep.js + - uses: actions/upload-artifact@v3 with: - name: built-app-${{ matrix.name }} + name: tauri-release path: | - app/tauri/target/release/bundle/deb/*.deb - app/tauri/target/release/bundle/appimage/*.AppImage - app/tauri/target/release/bundle/msi/*.msi - app/tauri/target/release/bundle/dmg/*.dmg - app/tauri/target/release/bundle/macos/*.app + release/* \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ef19d15a..2b9eaf9d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -53,37 +53,37 @@ jobs: with: name: built-app-all-in-one-${{ matrix.name }} path: | - app/main/dist/Pomatez-v+([0-9]).+([0-9]).+([0-9])-win-*.exe + app/electron/dist/Pomatez-v+([0-9]).+([0-9]).+([0-9])-win-*.exe - name: Upload ia32 builds uses: actions/upload-artifact@v3 with: name: built-app-ia32-${{ matrix.name }} path: | - app/main/dist/Pomatez*ia32*.* + app/electron/dist/Pomatez*ia32*.* - name: Upload x64 builds uses: actions/upload-artifact@v3 with: name: built-app-x64-${{ matrix.name }} path: | - app/main/dist/Pomatez*x64*.* - app/main/dist/Pomatez*x86_64*.* - app/main/dist/Pomatez*amd64*.* + app/electron/dist/Pomatez*x64*.* + app/electron/dist/Pomatez*x86_64*.* + app/electron/dist/Pomatez*amd64*.* - name: Upload arm64 builds uses: actions/upload-artifact@v3 with: name: built-app-arm64-${{ matrix.name }} path: | - app/main/dist/Pomatez*arm64*.* - app/main/dist/Pomatez*aarch64*.* + app/electron/dist/Pomatez*arm64*.* + app/electron/dist/Pomatez*aarch64*.* - name: Upload armv7l builds uses: actions/upload-artifact@v3 with: name: built-app-armv7l-${{ matrix.name }} path: | - app/main/dist/Pomatez*armv7l*.* + app/electron/dist/Pomatez*armv7l*.* - name: Upload autoupdaters uses: actions/upload-artifact@v3 with: name: built-app-AutoUpdater-${{ matrix.name }} path: | - app/main/dist/latest* + app/electron/dist/latest* diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 6bb9646b..1c41b655 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -20,15 +20,21 @@ jobs: release_created: ${{ steps.release.outputs.release_created }} sha: ${{ steps.release.outputs.sha }} upload_url: ${{ steps.release.outputs.upload_url }} - build: - name: "Build" + build-node: + name: "Build Node" needs: release-please if: needs.release-please.outputs.release_created uses: ./.github/workflows/build.yml + build-tauri: + name: "Build Tauri" + needs: release-please + if: needs.release-please.outputs.release_created + uses: ./.github/workflows/build-tauri.yml publish: name: Publish needs: - - build + - build-node + - build-tauri - release-please runs-on: ubuntu-latest steps: @@ -42,15 +48,15 @@ jobs: with: tag_name: ${{ needs.release-please.outputs.tag }} files: | - **/latest* - **/*.deb - **/*.rpm - **/*.dmg - **/*.AppImage - **/*.zip - **/*.exe - **/*.snap - **/*.blockmap + built-*/latest* + built-*/*.deb + built-*/*.rpm + built-*/*.dmg + built-*/*.AppImage + built-*/*.zip + built-*/*.exe + built-*/*.snap + built-*/*.blockmap publish-to-homebrew-cask: name: Publish to Homebrew Cask needs: @@ -75,4 +81,4 @@ jobs: installers-regex: 'setup\.exe$' max-versions-to-keep: 5 # keep only latest 5 versions release-tag: ${{ needs.release-please.outputs.tag }} - token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/test-build-thingy.yml b/.github/workflows/test-build-thingy.yml new file mode 100644 index 00000000..6d06e9b3 --- /dev/null +++ b/.github/workflows/test-build-thingy.yml @@ -0,0 +1,30 @@ +name: Release +on: + push: + workflow_call: + workflow_dispatch: + +permissions: + contents: write + pull-requests: write +jobs: + build-node: + name: "Build Node" + uses: ./.github/workflows/build.yml + build-tauri: + name: "Build Tauri" + uses: ./.github/workflows/build-tauri.yml + secrets: inherit + publish: + name: Publish + needs: + - build-node + - build-tauri + runs-on: ubuntu-latest + steps: + - name: Download artifact + uses: actions/download-artifact@v3 + - name: Display structure of downloaded files + shell: bash + run: ls -R + diff --git a/.gitignore b/.gitignore index 78d48e2d..064763b4 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ /dist /build +/artifacts/ .DS_Store .env.local @@ -20,3 +21,4 @@ yarn-error.log* .idea/ *.iml /lerna-debug.log +/release/ diff --git a/app/renderer/package.json b/app/renderer/package.json index 2ed89b9d..b9a161ed 100644 --- a/app/renderer/package.json +++ b/app/renderer/package.json @@ -33,10 +33,10 @@ }, "dependencies": { "@pomatez/shareables": "*", - "@tauri-apps/api": "2.0.0-alpha.8", - "@tauri-apps/plugin-autostart": "^2.0.0-alpha.1", - "@tauri-apps/plugin-global-shortcut": "^2.0.0-alpha.1", - "@tauri-apps/plugin-window": "^2.0.0-alpha.1", + "@tauri-apps/api": "2.0.0-alpha.11", + "@tauri-apps/plugin-autostart": "2.0.0-alpha.2", + "@tauri-apps/plugin-global-shortcut": "2.0.0-alpha.2", + "@tauri-apps/plugin-window": "2.0.0-alpha.1", "@types/autosize": "^3.0.7", "@types/jest": "^26.0.24", "@types/node": "^14.18.63", diff --git a/app/renderer/src/contexts/connectors/TauriConnector.tsx b/app/renderer/src/contexts/connectors/TauriConnector.tsx index ec2a5e82..49a3ce4a 100644 --- a/app/renderer/src/contexts/connectors/TauriConnector.tsx +++ b/app/renderer/src/contexts/connectors/TauriConnector.tsx @@ -17,7 +17,7 @@ import { import { encodeSvg } from "../../utils"; import { TraySVG } from "../../components"; import { enable, disable } from "@tauri-apps/plugin-autostart"; -import { invoke } from "@tauri-apps/api/tauri"; +import { invoke } from "@tauri-apps/api/primitives"; export const TauriConnectorProvider: React.FC = ({ children }) => { const settings: SettingTypes = useSelector( diff --git a/app/renderer/src/extensions/window.extension.ts b/app/renderer/src/extensions/window.extension.ts index 2ea2aaed..6bf260f7 100644 --- a/app/renderer/src/extensions/window.extension.ts +++ b/app/renderer/src/extensions/window.extension.ts @@ -10,6 +10,7 @@ declare global { options?: Electron.OpenExternalOptions ) => Promise; }; + __TAURI__: {}; } } diff --git a/app/shareables/package.json b/app/shareables/package.json index eb76ad79..ad0a9fe1 100644 --- a/app/shareables/package.json +++ b/app/shareables/package.json @@ -11,6 +11,7 @@ "scripts": { "prepare": "yarn build", "start": "rollup -c -w", - "build": "rollup -c" + "build": "rollup -c", + "dev:renderer": "rollup -c" } } diff --git a/app/tauri/Cargo.lock b/app/tauri/Cargo.lock index c354c274..bd58969f 100644 --- a/app/tauri/Cargo.lock +++ b/app/tauri/Cargo.lock @@ -8,6 +8,17 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aes" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + [[package]] name = "aho-corasick" version = "1.1.1" @@ -177,21 +188,20 @@ dependencies = [ [[package]] name = "atk" -version = "0.16.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39991bc421ddf72f70159011b323ff49b0f783cc676a7287c59453da2e2531cf" +checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4" dependencies = [ "atk-sys", - "bitflags", "glib", "libc", ] [[package]] name = "atk-sys" -version = "0.16.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ad703eb64dc058024f0e57ccfa069e15a413b98dbd50a1a950e743b7f11148" +checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009" dependencies = [ "glib-sys", "gobject-sys", @@ -234,12 +244,27 @@ version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] + [[package]] name = "block" version = "0.1.6" @@ -318,13 +343,34 @@ dependencies = [ "serde", ] +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + [[package]] name = "cairo-rs" -version = "0.16.7" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3125b15ec28b84c238f6f476c6034016a5f6cc0221cb514ca46c532139fc97d" +checksum = "1c0466dfa8c0ee78deef390c274ad756801e0a6dbb86c5ef0924a298c5761c4d" dependencies = [ - "bitflags", + "bitflags 2.4.1", "cairo-sys-rs", "glib", "libc", @@ -334,9 +380,9 @@ dependencies = [ [[package]] name = "cairo-sys-rs" -version = "0.16.3" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48f4af05fabdcfa9658178e1326efa061853f040ce7d72e33af6885196f421" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" dependencies = [ "glib-sys", "libc", @@ -345,12 +391,12 @@ dependencies = [ [[package]] name = "cargo_toml" -version = "0.15.3" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" +checksum = "e3f9629bc6c4388ea699781dc988c2b99766d7679b151c81990b4fa1208fafd3" dependencies = [ "serde", - "toml 0.7.8", + "toml 0.8.6", ] [[package]] @@ -359,6 +405,7 @@ version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ + "jobserver", "libc", ] @@ -407,13 +454,23 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "cocoa" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "cocoa-foundation", "core-foundation", @@ -429,7 +486,7 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "cocoa-foundation", "core-foundation", @@ -445,7 +502,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "core-foundation", "core-graphics-types", @@ -479,6 +536,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + [[package]] name = "convert_case" version = "0.4.0" @@ -507,7 +570,7 @@ version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-graphics-types", "foreign-types 0.3.2", @@ -520,7 +583,7 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-graphics-types", "foreign-types 0.5.0", @@ -533,7 +596,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "foreign-types 0.3.2", "libc", @@ -615,12 +678,12 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.26" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583" dependencies = [ "quote", - "syn 1.0.107", + "syn 2.0.37", ] [[package]] @@ -696,6 +759,7 @@ checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ "block-buffer", "crypto-common", + "subtle", ] [[package]] @@ -873,14 +937,26 @@ dependencies = [ "rustc_version 0.3.3", ] +[[package]] +name = "filetime" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.3.5", + "windows-sys 0.48.0", +] + [[package]] name = "flate2" -version = "1.0.25" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.7.1", ] [[package]] @@ -1048,11 +1124,10 @@ dependencies = [ [[package]] name = "gdk" -version = "0.16.2" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9cb33da481c6c040404a11f8212d193889e9b435db2c14fd86987f630d3ce1" +checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646" dependencies = [ - "bitflags", "cairo-rs", "gdk-pixbuf", "gdk-sys", @@ -1064,22 +1139,22 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.16.7" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3578c60dee9d029ad86593ed88cb40f35c1b83360e12498d055022385dd9a05" +checksum = "bbc9c2ed73a81d556b65d08879ba4ee58808a6b1927ce915262185d6d547c6f3" dependencies = [ - "bitflags", "gdk-pixbuf-sys", "gio", "glib", "libc", + "once_cell", ] [[package]] name = "gdk-pixbuf-sys" -version = "0.16.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3092cf797a5f1210479ea38070d9ae8a5b8e9f8f1be9f32f4643c529c7d70016" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" dependencies = [ "gio-sys", "glib-sys", @@ -1090,9 +1165,9 @@ dependencies = [ [[package]] name = "gdk-sys" -version = "0.16.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76354f97a913e55b984759a997b693aa7dc71068c9e98bcce51aa167a0a5c5a" +checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -1107,9 +1182,9 @@ dependencies = [ [[package]] name = "gdkwayland-sys" -version = "0.16.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4511710212ed3020b61a8622a37aa6f0dd2a84516575da92e9b96928dcbe83ba" +checksum = "a90fbf5c033c65d93792192a49a8efb5bb1e640c419682a58bb96f5ae77f3d4a" dependencies = [ "gdk-sys", "glib-sys", @@ -1121,9 +1196,9 @@ dependencies = [ [[package]] name = "gdkx11-sys" -version = "0.16.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa2bf8b5b8c414bc5d05e48b271896d0fd3ddb57464a3108438082da61de6af" +checksum = "fee8f00f4ee46cad2939b8990f5c70c94ff882c3028f3cc5abf950fa4ab53043" dependencies = [ "gdk-sys", "glib-sys", @@ -1179,11 +1254,10 @@ dependencies = [ [[package]] name = "gio" -version = "0.16.7" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a1c84b4534a290a29160ef5c6eff2a9c95833111472e824fc5cb78b513dd092" +checksum = "57052f84e8e5999b258e8adf8f5f2af0ac69033864936b8b6838321db2f759b1" dependencies = [ - "bitflags", "futures-channel", "futures-core", "futures-io", @@ -1199,9 +1273,9 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.16.3" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9b693b8e39d042a95547fc258a7b07349b1f0b48f4b2fa3108ba3c51c0b5229" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" dependencies = [ "glib-sys", "gobject-sys", @@ -1212,11 +1286,11 @@ dependencies = [ [[package]] name = "glib" -version = "0.16.9" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16aa2475c9debed5a32832cb5ff2af5a3f9e1ab9e69df58eaadc1ab2004d6eba" +checksum = "1c316afb01ce8067c5eaab1fc4f2cd47dc21ce7b6296358605e2ffab23ccbd19" dependencies = [ - "bitflags", + "bitflags 2.4.1", "futures-channel", "futures-core", "futures-executor", @@ -1227,6 +1301,7 @@ dependencies = [ "glib-sys", "gobject-sys", "libc", + "memchr", "once_cell", "smallvec", "thiserror", @@ -1234,24 +1309,23 @@ dependencies = [ [[package]] name = "glib-macros" -version = "0.16.8" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb1a9325847aa46f1e96ffea37611b9d51fc4827e67f79e7de502a297560a67b" +checksum = "f8da903822b136d42360518653fcf154455defc437d3e7a81475bf9a95ff1e47" dependencies = [ - "anyhow", "heck", "proc-macro-crate", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.37", ] [[package]] name = "glib-sys" -version = "0.16.3" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61a4f46316d06bfa33a7ac22df6f0524c8be58e3db2d9ca99ccb1f357b62a65" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" dependencies = [ "libc", "system-deps", @@ -1270,7 +1344,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08c12993a445d59000c3994fcd3d179e7da026a4234cc46db652987aa2785e4a" dependencies = [ "crossbeam-channel", - "keyboard-types", + "keyboard-types 0.6.2", "once_cell", "thiserror", "windows-sys 0.48.0", @@ -1279,9 +1353,9 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.16.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3520bb9c07ae2a12c7f2fbb24d4efc11231c8146a86956413fb1a79bb760a0f1" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" dependencies = [ "glib-sys", "libc", @@ -1290,12 +1364,11 @@ dependencies = [ [[package]] name = "gtk" -version = "0.16.2" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4d3507d43908c866c805f74c9dd593c0ce7ba5c38e576e41846639cdcd4bee6" +checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c" dependencies = [ "atk", - "bitflags", "cairo-rs", "field-offset", "futures-channel", @@ -1306,16 +1379,15 @@ dependencies = [ "gtk-sys", "gtk3-macros", "libc", - "once_cell", "pango", "pkg-config", ] [[package]] name = "gtk-sys" -version = "0.16.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b5f8946685d5fe44497007786600c2f368ff6b1e61a16251c89f72a97520a3" +checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722" dependencies = [ "atk-sys", "cairo-sys-rs", @@ -1331,16 +1403,15 @@ dependencies = [ [[package]] name = "gtk3-macros" -version = "0.16.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "096eb63c6fedf03bafe65e5924595785eaf1bcb7200dac0f2cbe9c9738f05ad8" +checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e" dependencies = [ - "anyhow", "proc-macro-crate", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.37", ] [[package]] @@ -1401,6 +1472,15 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + [[package]] name = "html5ever" version = "0.26.0" @@ -1473,6 +1553,19 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + [[package]] name = "iana-time-zone" version = "0.1.57" @@ -1559,20 +1652,20 @@ dependencies = [ [[package]] name = "infer" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a898e4b7951673fce96614ce5751d13c40fc5674bc2d759288e46c3ab62598b3" +checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199" dependencies = [ "cfb", ] [[package]] -name = "infer" -version = "0.15.0" +name = "inout" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "cfb", + "generic-array", ] [[package]] @@ -1615,20 +1708,20 @@ checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" [[package]] name = "javascriptcore-rs" -version = "1.0.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cfcc681b896b083864a4a3c3b3ea196f14ff66b8641a68fde209c6d84434056" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "glib", "javascriptcore-rs-sys", ] [[package]] name = "javascriptcore-rs-sys" -version = "1.0.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0983ba5b3ab9a0c0918de02c42dc71f795d6de08092f88a98ce9fdfdee4ba91" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" dependencies = [ "glib-sys", "gobject-sys", @@ -1658,6 +1751,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" version = "0.3.60" @@ -1669,9 +1771,9 @@ dependencies = [ [[package]] name = "json-patch" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f7765dccf8c39c3a470fc694efe322969d791e713ca46bc7b5c506886157572" +checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6" dependencies = [ "serde", "serde_json", @@ -1685,7 +1787,18 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7668b7cff6a51fe61cdde64cd27c8a220786f399501b57ebe36f7d8112fd68" dependencies = [ - "bitflags", + "bitflags 1.3.2", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.4.1", "serde", "unicode-segmentation", ] @@ -1711,9 +1824,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libappindicator" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e1edfdc9b0853358306c6dfb4b77c79c779174256fe93d80c0b5ebca451a2f" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" dependencies = [ "glib", "gtk", @@ -1724,9 +1837,9 @@ dependencies = [ [[package]] name = "libappindicator-sys" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08fcb2bea89cee9613982501ec83eaa2d09256b24540ae463c52a28906163918" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" dependencies = [ "gtk-sys", "libloading", @@ -1869,6 +1982,12 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "minisign-verify" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "933dca44d65cdd53b355d0b73d380a2ff5da71f87f036053188bf1eab6a19881" + [[package]] name = "miniz_oxide" version = "0.6.2" @@ -1878,6 +1997,15 @@ dependencies = [ "adler", ] +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + [[package]] name = "mio" version = "0.8.8" @@ -1892,16 +2020,14 @@ dependencies = [ [[package]] name = "muda" -version = "0.8.7" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe753ec4d3e8137a1d3ecb1aee1192b8f7661fe1247641968f5bf5f2e6ebbe" +checksum = "9767ce3b12d2928f17ff4f91b29e7e872a8594033d82bf00e56017cc23bb8410" dependencies = [ "cocoa 0.25.0", "crossbeam-channel", - "gdk", - "gdk-pixbuf", "gtk", - "keyboard-types", + "keyboard-types 0.7.0", "objc", "once_cell", "png", @@ -1909,13 +2035,31 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "ndk" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "jni-sys", "ndk-sys", "num_enum", @@ -1950,7 +2094,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.7.1", @@ -2067,6 +2211,50 @@ version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +[[package]] +name = "openssl" +version = "0.10.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" +dependencies = [ + "bitflags 2.4.1", + "cfg-if", + "foreign-types 0.3.2", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "ordered-stream" version = "0.2.0" @@ -2085,11 +2273,10 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pango" -version = "0.16.5" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdff66b271861037b89d028656184059e03b0b6ccb36003820be19f7200b1e94" +checksum = "06a9e54b831d033206160096b825f2070cf5fda7e35167b1c01e9e774f9202d1" dependencies = [ - "bitflags", "gio", "glib", "libc", @@ -2099,9 +2286,9 @@ dependencies = [ [[package]] name = "pango-sys" -version = "0.16.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e134909a9a293e04d2cc31928aa95679c5e4df954d0b85483159bd20d8f047f" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" dependencies = [ "glib-sys", "gobject-sys", @@ -2133,11 +2320,34 @@ checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "windows-sys 0.42.0", ] +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest", + "hmac", + "password-hash", + "sha2", +] + [[package]] name = "percent-encoding" version = "2.3.0" @@ -2171,9 +2381,17 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" dependencies = [ - "phf_macros 0.10.0", "phf_shared 0.10.0", - "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros 0.11.2", + "phf_shared 0.11.2", ] [[package]] @@ -2216,6 +2434,16 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + [[package]] name = "phf_macros" version = "0.8.0" @@ -2232,16 +2460,15 @@ dependencies = [ [[package]] name = "phf_macros" -version = "0.10.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", + "phf_generator 0.11.2", + "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.37", ] [[package]] @@ -2262,6 +2489,15 @@ dependencies = [ "siphasher", ] +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project-lite" version = "0.2.9" @@ -2300,10 +2536,10 @@ version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crc32fast", "flate2", - "miniz_oxide", + "miniz_oxide 0.6.2", ] [[package]] @@ -2313,7 +2549,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" dependencies = [ "autocfg", - "bitflags", + "bitflags 1.3.2", "cfg-if", "concurrent-queue", "libc", @@ -2328,13 +2564,16 @@ version = "1.3.0" dependencies = [ "base64 0.21.4", "lazy_static", + "reqwest", "serde", "serde_json", "tauri", "tauri-build", "tauri-plugin-autostart", "tauri-plugin-global-shortcut", + "tauri-plugin-updater", "tauri-plugin-window", + "url", ] [[package]] @@ -2504,7 +2743,16 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", ] [[package]] @@ -2514,7 +2762,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ "getrandom 0.2.8", - "redox_syscall", + "redox_syscall 0.2.16", "thiserror", ] @@ -2573,9 +2821,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.20" +version = "0.11.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" dependencies = [ "base64 0.21.4", "bytes", @@ -2586,17 +2834,21 @@ dependencies = [ "http", "http-body", "hyper", + "hyper-tls", "ipnet", "js-sys", "log", "mime", + "native-tls", "once_cell", "percent-encoding", "pin-project-lite", "serde", "serde_json", "serde_urlencoded", + "system-configuration", "tokio", + "tokio-native-tls", "tokio-util", "tower-service", "url", @@ -2631,7 +2883,7 @@ version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", @@ -2666,6 +2918,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -2678,13 +2939,36 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "selectors" version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cssparser", "derive_more", "fxhash", @@ -2712,6 +2996,9 @@ name = "semver" version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +dependencies = [ + "serde", +] [[package]] name = "semver-parser" @@ -2766,9 +3053,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" +checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" dependencies = [ "serde", ] @@ -2929,24 +3216,22 @@ dependencies = [ [[package]] name = "soup3" -version = "0.3.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82bc46048125fefd69d30b32b9d263d6556c9ffe82a7a7df181a86d912da5616" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" dependencies = [ - "bitflags", "futures-channel", "gio", "glib", "libc", - "once_cell", "soup3-sys", ] [[package]] name = "soup3-sys" -version = "0.3.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "014bbeb1c4cdb30739dc181e8d98b7908f124d9555843afa89b5570aaf4ec62b" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" dependencies = [ "gio-sys", "glib-sys", @@ -3008,6 +3293,12 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + [[package]] name = "swift-rs" version = "1.0.6" @@ -3041,6 +3332,27 @@ dependencies = [ "unicode-ident", ] +[[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", +] + +[[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", +] + [[package]] name = "system-deps" version = "6.0.3" @@ -3056,11 +3368,11 @@ dependencies = [ [[package]] name = "tao" -version = "0.22.2" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f76221bce9db3af6b2b9cca4e92d8ea46c4cc88d785bc4b1a5cbcaab06f0b56" +checksum = "f130523fee9820ad78141d443e6cef75043acade79107bc483872bc183928c0f" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-rs", "cc", "cocoa 0.24.1", @@ -3097,7 +3409,7 @@ dependencies = [ "unicode-segmentation", "url", "uuid", - "windows 0.48.0", + "windows 0.51.1", "windows-implement", "x11-dl", "zbus", @@ -3114,11 +3426,22 @@ dependencies = [ "syn 1.0.107", ] +[[package]] +name = "tar" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +dependencies = [ + "filetime", + "libc", + "xattr", +] + [[package]] name = "tauri" -version = "2.0.0-alpha.14" +version = "2.0.0-alpha.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46acc0b6d20fe3a7c27e6036d9ef52d2c28afd1b6178ffc2dd4881f9994fecd7" +checksum = "892f45e7f10c9481488633f506496eeb3c69034c17fc71d5562d1e87b5442f78" dependencies = [ "anyhow", "bytes", @@ -3126,12 +3449,12 @@ dependencies = [ "dirs-next", "embed_plist", "futures-util", - "glib", + "getrandom 0.2.8", "glob", "gtk", "heck", "http", - "infer 0.15.0", + "infer", "jni", "libc", "log", @@ -3141,7 +3464,6 @@ dependencies = [ "once_cell", "percent-encoding", "png", - "rand 0.8.5", "raw-window-handle", "reqwest", "serde", @@ -3159,20 +3481,21 @@ dependencies = [ "tokio", "tray-icon", "url", - "uuid", "webkit2gtk", "webview2-com", - "windows 0.48.0", + "window-vibrancy", + "windows 0.51.1", ] [[package]] name = "tauri-build" -version = "2.0.0-alpha.8" +version = "2.0.0-alpha.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc47d3c84f4aeac397cd956267f3b8060c5a2dba78288a5ccf9a8b7a8c1e7025" +checksum = "9d5f06f1cbb5507f4de803f8e1fab01c71cb9515297a90d3adba4fa6c06a194c" dependencies = [ "anyhow", "cargo_toml", + "dirs-next", "heck", "json-patch", "plist", @@ -3187,9 +3510,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0-alpha.7" +version = "2.0.0-alpha.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f98a67c7ef3cb3c25de91fe1fa16cc3681997f6ec99da0a7496d6feae2ea91e" +checksum = "28094b389b0981aba46eeba7dcda6216c23fdf7288b2e0414e69fbc55aa55676" dependencies = [ "base64 0.21.4", "brotli", @@ -3213,9 +3536,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-alpha.7" +version = "2.0.0-alpha.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b01cb5f945c71e040c5d191c32598565ae26cc266a9d5d4f7dd2dc324c5cfdd0" +checksum = "c1df582259285a81324d4d38846433bfd3c0440c7a268f730acb7c29350f25cf" dependencies = [ "heck", "proc-macro2", @@ -3227,9 +3550,9 @@ dependencies = [ [[package]] name = "tauri-plugin-autostart" -version = "2.0.0-alpha.2" +version = "2.0.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f67ab81fb8a86b98627843c00b6d2f3951d18827a02272feb5830b8ce96d9c59" +checksum = "48f4ecdf2f0476e79d597cf20e4194a58adef9aa126ab4956b8d4c0a7ea5acd8" dependencies = [ "auto-launch", "log", @@ -3241,9 +3564,9 @@ dependencies = [ [[package]] name = "tauri-plugin-global-shortcut" -version = "2.0.0-alpha.2" +version = "2.0.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a55e25d565b5eafaa4357ac49d52dd5826ac78c8eb0dc6a9c2d6ff60ab75ce" +checksum = "e538923ec48c26d2f5891d3e5db1e57a314a388321e2277d10b29a8c5fe76c24" dependencies = [ "global-hotkey", "log", @@ -3253,6 +3576,33 @@ dependencies = [ "thiserror", ] +[[package]] +name = "tauri-plugin-updater" +version = "2.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6960df5f0427429b387cf9a8c75898a1841c5f746d8c0563fcea11283111696e" +dependencies = [ + "base64 0.21.4", + "dirs-next", + "flate2", + "futures-util", + "http", + "minisign-verify", + "percent-encoding", + "reqwest", + "semver 1.0.16", + "serde", + "serde_json", + "tar", + "tauri", + "tempfile", + "thiserror", + "time", + "tokio", + "url", + "zip", +] + [[package]] name = "tauri-plugin-window" version = "2.0.0-alpha.2" @@ -3266,51 +3616,47 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "1.0.0-alpha.1" +version = "1.0.0-alpha.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525c4dea52547a13e58816c655bd0928f6c30026515e7b2a77166bcd984da6d0" +checksum = "f46889d91efc090ac4031c7c423c30c5280d6984cb071b729b748d643aa3df40" dependencies = [ "gtk", "http", "jni", - "rand 0.8.5", "raw-window-handle", "serde", "serde_json", "tauri-utils", "thiserror", "url", - "uuid", - "windows 0.48.0", + "windows 0.51.1", ] [[package]] name = "tauri-runtime-wry" -version = "1.0.0-alpha.2" +version = "1.0.0-alpha.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fce46e920b62699045e02db3006017d24324119189dfab2b12261aeebf98f4be" +checksum = "b083797e147019c318db883a51868014751b578ba0d1ef3aadd34199a3bbcf61" dependencies = [ "cocoa 0.24.1", "gtk", "http", "jni", "percent-encoding", - "rand 0.8.5", "raw-window-handle", "tauri-runtime", "tauri-utils", - "uuid", "webkit2gtk", "webview2-com", - "windows 0.48.0", + "windows 0.51.1", "wry", ] [[package]] name = "tauri-utils" -version = "2.0.0-alpha.7" +version = "2.0.0-alpha.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06bcd7c6f67fd6371dcc22da7d7f26ec12c4eae26ad7bc54943bb9f35b5db302" +checksum = "68e138783ca404416a4afe34f22f804d533c28fb73f87870f365c6ecdcee6c23" dependencies = [ "brotli", "ctor", @@ -3318,11 +3664,12 @@ dependencies = [ "glob", "heck", "html5ever", - "infer 0.12.0", + "infer", "json-patch", "kuchikiki", + "log", "memchr", - "phf 0.10.1", + "phf 0.11.2", "proc-macro2", "quote", "semver 1.0.16", @@ -3332,7 +3679,7 @@ dependencies = [ "thiserror", "url", "walkdir", - "windows 0.48.0", + "windows 0.51.1", ] [[package]] @@ -3354,7 +3701,7 @@ dependencies = [ "cfg-if", "fastrand 1.8.0", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "remove_dir_all", "winapi", ] @@ -3464,6 +3811,16 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.8" @@ -3496,14 +3853,26 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.20.7", ] [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" dependencies = [ "serde", ] @@ -3521,6 +3890,19 @@ dependencies = [ "winnow", ] +[[package]] +name = "toml_edit" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +dependencies = [ + "indexmap 2.0.2", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + [[package]] name = "tower-service" version = "0.3.2" @@ -3591,9 +3973,9 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.8.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b164327e17101c78ba3dfdf879b977027ef1bd7855668ac30063de21fc02447" +checksum = "1a7dce8a4b6d7a566ca78fa43f37efc7a3ec427480828d35fe3474c4f0c75396" dependencies = [ "cocoa 0.25.0", "core-graphics 0.23.1", @@ -3705,6 +4087,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version-compare" version = "0.1.1" @@ -3866,11 +4254,11 @@ dependencies = [ [[package]] name = "webkit2gtk" -version = "1.1.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8db2963d7f1bd4ac2a208ab925881b4779dd20fee853b09a0bbf69289827c2" +checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-rs", "gdk", "gdk-sys", @@ -3890,11 +4278,11 @@ dependencies = [ [[package]] name = "webkit2gtk-sys" -version = "1.1.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864ebc9a39649baf49e46c713cd8b741cca14dd59d24cd77bc611ba9419fa18d" +checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-sys-rs", "gdk-sys", "gio-sys", @@ -3910,13 +4298,14 @@ dependencies = [ [[package]] name = "webview2-com" -version = "0.25.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e563ffe8e84d42e43ffacbace8780c0244fc8910346f334613559d92e203ad" +checksum = "cd15556ff1d1d6bc850dbb362762bae86069773dd30177c90d3bfa917080dc73" dependencies = [ "webview2-com-macros", "webview2-com-sys", - "windows 0.48.0", + "windows 0.51.1", + "windows-core", "windows-implement", "windows-interface", ] @@ -3934,17 +4323,13 @@ dependencies = [ [[package]] name = "webview2-com-sys" -version = "0.25.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d39576804304cf9ead192467ef47f7859a1a12fec3bd459d5ba34b8cd65ed5" +checksum = "3775bb005c3170497ec411b36005708b57ad486bfa3d23864c92f5973858ce8d" dependencies = [ - "regex", - "serde", - "serde_json", "thiserror", - "windows 0.48.0", - "windows-bindgen", - "windows-metadata", + "windows 0.51.1", + "windows-core", ] [[package]] @@ -3978,6 +4363,18 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "window-vibrancy" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5931735e675b972fada30c7a402915d4d827aa5ef6c929c133d640c4b785e963" +dependencies = [ + "cocoa 0.25.0", + "objc", + "raw-window-handle", + "windows-sys 0.48.0", +] + [[package]] name = "windows" version = "0.39.0" @@ -3997,49 +4394,52 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +dependencies = [ + "windows-core", "windows-implement", "windows-interface", "windows-targets 0.48.5", ] [[package]] -name = "windows-bindgen" -version = "0.48.0" +name = "windows-core" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe21a77bc54b7312dbd66f041605e098990c98be48cd52967b85b5e60e75ae6" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows-metadata", - "windows-tokens", + "windows-targets 0.48.5", ] [[package]] name = "windows-implement" -version = "0.48.0" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c" +checksum = "fb2b158efec5af20d8846836622f50a87e6556b9153a42772fa047f773c0e555" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.37", ] [[package]] name = "windows-interface" -version = "0.48.0" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7" +checksum = "0546e63e1ce64c04403d2311fa0e3ab5ae3a367bd524b4a38d8d8d18c70cfa76" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.37", ] -[[package]] -name = "windows-metadata" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422ee0e5f0e2cc372bb6addbfff9a8add712155cd743df9c15f6ab000f31432d" - [[package]] name = "windows-sys" version = "0.42.0" @@ -4103,12 +4503,6 @@ dependencies = [ "windows_x86_64_msvc 0.48.5", ] -[[package]] -name = "windows-tokens" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b34c9a3b28cb41db7385546f7f9a8179348dffc89923dde66857b1ba5312f6b4" - [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -4263,19 +4657,16 @@ dependencies = [ [[package]] name = "wry" -version = "0.33.0" +version = "0.34.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf906b43b8042615c85a978dceb4d4b72214d27b850b54abc3edeb7c5a67abab" +checksum = "3f1e29660f22d8eec141f41f59b7fef231e4113c370c89b90ae3a0db8dec1927" dependencies = [ "base64 0.21.4", "block", - "cocoa 0.24.1", - "core-graphics 0.22.3", + "cocoa 0.25.0", + "core-graphics 0.23.1", "crossbeam-channel", "dunce", - "gdk", - "gio", - "glib", "gtk", "html5ever", "http", @@ -4296,7 +4687,7 @@ dependencies = [ "webkit2gtk", "webkit2gtk-sys", "webview2-com", - "windows 0.48.0", + "windows 0.51.1", "windows-implement", ] @@ -4321,6 +4712,15 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "xattr" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea263437ca03c1522846a4ddafbca2542d0ad5ed9b784909d4b27b76f62bc34a" +dependencies = [ + "libc", +] + [[package]] name = "xdg-home" version = "1.0.0" @@ -4403,6 +4803,55 @@ dependencies = [ "zvariant", ] +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2", + "sha1", + "time", + "zstd", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.9+zstd.1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +dependencies = [ + "cc", + "pkg-config", +] + [[package]] name = "zvariant" version = "3.15.0" diff --git a/app/tauri/Cargo.toml b/app/tauri/Cargo.toml index cef9db1d..a02cd88e 100644 --- a/app/tauri/Cargo.toml +++ b/app/tauri/Cargo.toml @@ -7,28 +7,31 @@ version = "1.3.0" description = "Attractive pomodoro timer for Windows, Mac, and Linux." authors = ["Roldan Montilla Jr"] license = "MIT" -repository = "https://github.com/roldanjr/pomatez" +repository = "https://github.com/zidoro/pomatez" edition = "2021" rust-version = "1.57" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [build-dependencies] -tauri-build = { version = "2.0.0-alpha.8", features = [] } +tauri-build = { version = "2.0.0-alpha.10", features = [] } [dependencies] serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } -tauri = { version = "2.0.0-alpha.14", features = ["tray-icon", "icon-png"] } -tauri-plugin-window = "2.0.0-alpha" -tauri-plugin-autostart = "2.0.0-alpha" +url = "2.4.1" +tauri = { version = "2.0.0-alpha.17", features = ["tray-icon", "icon-png"] } +reqwest = { version = "0.11.22", features = ["json"] } +tauri-plugin-window = "2.0.0-alpha.2" +tauri-plugin-autostart = "2.0.0-alpha.3" lazy_static = "1.4.0" base64 = { version = "0.21.4", features = [] } # This one is for toying with global hotkeys from the browser mostly # We can use https://github.com/tauri-apps/global-hotkey directly tbh [target."cfg(not(any(target_os = \"android\", target_os = \"ios\")))".dependencies] -tauri-plugin-global-shortcut = "2.0.0-alpha" +tauri-plugin-global-shortcut = "2.0.0-alpha.3" +tauri-plugin-updater = "2.0.0-alpha.3" [features] # by default Tauri runs in production mode diff --git a/app/tauri/installer/nsis/header.bmp b/app/tauri/installer/nsis/header.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1614b8482805b2b89ce94ce9397096e97f63bf6a GIT binary patch literal 25818 zcmeI4F=!M)6o%LC$}P7@p=gnShyf7~Y!a}DV3B}D0u~Z2Bv^=8NJt|gg#-%;R~(We z7z-g5!dV2)@=^q15r|+Q78X~exWZzJfa|}v$>iPM&NzFwdp9F***hlt_I5Y#oA+kk zo7tJX_v4Y*-frT16rTz{WqdAp0lq!&J>-|K#h>;8e1*I@t^sCPB)~tNTS2$7pW%rJ zf4B1AaoPW6vzFm;Q|xYuPYYswOjLbQ^>W<VR$Ni7j}GOGW@ycs6E=mQ0#1W(`!|{qt`j_%{Lw{+jXxX{9bnv zqcsf0w_1l%E8gBxX?fZozv5pS$$1|e@h3<9wORk*RjK2q)xbq-w1i>vNK^x`F}91a*bLE^mkb*(O&uxP z%p$@LR3iB>4mF8GXLxwdu>Qh`;ntJWpzdI$lyCG%!^QCUXy{JT@BxO;upz5{-JnA= zc9D8KZ*e-$PAoGttTl<#4zn>F2Sbu3TfNT=L)Yw(876E1e=y zlJ*?7L$*V01u+q_9hzuKdyeCFh$Ls@#rcj1v-Y%v;iS9Qd+D!od#J4|N@0I?C}Yb+ z0r3ZTW+llCm6)`GVi?9qqp{?v3b}6U`&6ly*l!GMfKC@$bL_mt}@p zR7zn_43Rsd{S|6*-DQ2hhngZYRASN!dSVF0&)hJ;Sn*(-Xd5XgO_>>LQ7MJJG6ah9 zXxpih&L=fO80vDynTyO&iAgIUbM?{6X^ccA!fQ5&{V<>pXlMx$c_83GE*!HMRX4ndw2;u5^4>k@*A#o87yqOqb>P(N+%_d5x8 z4GiH}-j8Ui06VwC9BlLt`+%gxK<3`A_B~DNB0H!)g(Q%$=j=;gKJ{i z!!W|wiq@k%>)#Bv;76+`ItUPIvx*^}2Tm0Wx5?E`2E%jXt~hMq=8kT*F^tuSz#k+( z%oS{kK@^(q*Bx5MB(;{=$xuEj)}zI;qF9m=n$B_m-iRVV_g4^(^<+6i36l$I4KPEs QZd{QtLsv+tpVRaH0_{R2uK)l5 literal 0 HcmV?d00001 diff --git a/app/tauri/installer/nsis/sidebar.bmp b/app/tauri/installer/nsis/sidebar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c4ea52ae33f6656695550011f5dd6dd3071b1fbc GIT binary patch literal 206038 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 2) { + const changes = match[2] + .trim() + .split("\n") + .map((line) => line.replace(linkRegex, "").trim()) // Remove links and trim each line + .join("\n"); + return `Version: ${match[1]}\nChanges:\n${changes}`; + } + + return "No changes found or changelog is not in the expected format."; +} + +// https://tauri.app/v1/guides/distribution/updater/ +const data = { + version, + notes: extractLatestChanges( + fs.readFileSync( + path.join(__dirname, "..", "..", "..", "CHANGELOG.md"), + { encoding: "utf8" } + ) + ), + pub_date: new Date().toISOString(), + platforms: {}, +}; + +function getSignatureContent(signaturePath) { + return fs.readFileSync(signaturePath, { encoding: "utf8" }); +} + +/** + * This is needed solely so that tar.gz files are not renamed to .gz + * @param fileName + * @returns {*|string} + */ +function getFileExtension(fileName) { + const match = fileName.match(/\.[0-9a-z]+(\.gz)?$/i); + return match ? match[0] : ""; +} + +/** + * only needs the updater file, not the release file + * @param platform + * @param artifactSubPath + * @param fileGlob + * @param nameOverwrite - if you want to overwrite the name of the file in the release folder + */ +function addPlatformUpdater( + platform, + artifactSubPath, + fileGlob, + nameOverwrite +) { + const fullPath = path.join(artifactsPath, artifactSubPath); + const files = fs.readdirSync(fullPath); + const file = files.find((file) => file.match(fileGlob)); + + if (file) { + const signaturePath = path.join(fullPath, `${file}.sig`); + const signature = getSignatureContent(signaturePath); + + // Extract the file extension + const extension = getFileExtension(file); + + // copy the file into the release folder and rename it so that its clear it's an update file rather than for install + const originalFilePath = path.join(fullPath, file); + const releaseFileName = `${ + nameOverwrite ? nameOverwrite : platform + }-update${extension}`; + const releaseFilePath = path.join(releasePath, releaseFileName); + fs.copyFileSync(originalFilePath, releaseFilePath); + + const url = `${github_url}${releaseFileName}`; + + data.platforms[platform] = { + signature: signature.trim(), + url: url, + }; + + console.log(`File copied to ${releaseFilePath}`); + } +} + +/** + * Recursively searches for files with the given glob pattern and copies them to the release folder. + * @param {string} searchPath - The starting directory to begin the search. + * @param {string} fileExtension - The file extension to search for. + */ +function addReleaseFiles(searchPath, ...fileExtension) { + fs.readdirSync(searchPath, { withFileTypes: true }).forEach( + (entry) => { + const entryPath = path.join(searchPath, entry.name); + if (entry.isDirectory()) { + // Recurse if entry is a directory + addReleaseFiles(entryPath, ...fileExtension); + } else if ( + entry.isFile() && + fileExtension.find((ext) => ext === path.extname(entry.name)) + ) { + // Copy file if it matches the extension + const ext = path.extname(entry.name); + const baseName = path.basename(entry.name, ext); + + // TODO remove once we are set on replacing electron for some of the base files and/or are sure most of the bugs are gone + const releaseFilePath = path.join( + releasePath, + `${baseName}-tauri-beta${ext}` + ); + fs.copyFileSync(entryPath, releaseFilePath); + console.log(`Release file copied to ${releaseFilePath}`); + } + } + ); +} + +addPlatformUpdater( + "darwin-x86_64", + "tauri-mac/universal-apple-darwin/release/bundle/macos", + /\.tar\.gz$/, + "darwin-universal" +); +addPlatformUpdater( + "darwin-aarch64", + "tauri-mac/universal-apple-darwin/release/bundle/macos", + /\.tar\.gz$/, + "darwin-universal" +); +// Need to look into linus for arm, I don't believe it's supported for tauri at least. +addPlatformUpdater( + "linux-x86_64", + "tauri-linux/x86_64-unknown-linux-gnu/release/bundle/appimage", + /\.AppImage.tar.gz$/ +); +addPlatformUpdater( + "windows-x86_64", + "tauri-win/x86_64-pc-windows-msvc/release/bundle/msi", + /\.zip$/ +); +addPlatformUpdater( + "windows-aarch64", + "tauri-win/aarch64-pc-windows-msvc/release/bundle/nsis", + /\.zip$/ +); + +addReleaseFiles( + artifactsPath, + ".AppImage", + ".exe", + ".dmg", + ".msi", + ".deb" +); + +fs.writeFile( + path.join(releasePath, "tauri-updater.json"), + JSON.stringify(data, null, 2), + (err) => { + if (err) throw err; + console.log("Data written to file"); + } +); + +// The release action will upload the contends of the release folder and any files from artifacts that match the expected extensions. diff --git a/app/tauri/release.conf.json b/app/tauri/release.conf.json new file mode 100644 index 00000000..4453c119 --- /dev/null +++ b/app/tauri/release.conf.json @@ -0,0 +1,18 @@ +{ + "plugins": { + "updater": { + "dialog": true, + "endpoints": [ + "https://api.github.com/repos/sekwah41/pomatez/this/is/not/a/valid/url/and/will/be/set/in/main/rs" + ] + } + }, + "tauri": { + "bundle": { + "updater": { + "active": true, + "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDVDNUI3N0FBQTI3NkEwOTQKUldTVW9IYWlxbmRiWElmTjM2blhVVzJ4RW9iaXhZa0xHY0lKNWMxQ2FnUks2bXBCSG5UcXZiQzkK" + } + } + } +} diff --git a/app/tauri/src/global_shortcuts.rs b/app/tauri/src/global_shortcuts.rs index 2a87923a..5c89a24b 100644 --- a/app/tauri/src/global_shortcuts.rs +++ b/app/tauri/src/global_shortcuts.rs @@ -1,5 +1,5 @@ use lazy_static::lazy_static; -use tauri::{Wry, Builder, Manager, AppHandle, App}; +use tauri::{Manager, AppHandle, App}; use tauri_plugin_global_shortcut::{GlobalShortcutExt, Modifiers, Shortcut}; use tauri_plugin_global_shortcut::Code; @@ -17,7 +17,7 @@ impl PomatezGlobalShortcutsSetup for App { fn setup_global_shortcuts(&self) { let window = self.get_window("main").expect("Failed to get window"); let global_shortcut_plugin = { - tauri_plugin_global_shortcut::Builder::with_handler(move |shortcut| { + tauri_plugin_global_shortcut::Builder::with_handler(move |_app_handle, shortcut| { println!("Shortcut pressed: {:?}", shortcut); match shortcut.id() { key if SHOW_SHORTCUT.id() == key => { diff --git a/app/tauri/src/main.rs b/app/tauri/src/main.rs index 3150f28b..eca83c34 100644 --- a/app/tauri/src/main.rs +++ b/app/tauri/src/main.rs @@ -3,28 +3,36 @@ all(not(debug_assertions), target_os = "windows"), windows_subsystem = "windows" )] -use tauri::RunEvent; +#[cfg(debug_assertions)] +use tauri::{Manager}; +use tauri::{RunEvent}; use tauri_plugin_autostart::MacosLauncher; -use tauri_plugin_global_shortcut::GlobalShortcutExt; use tauri_plugin_window; #[macro_use] mod commands; mod system_tray; mod global_shortcuts; +mod updater; use commands::PomatezCommands; use system_tray::PomatezTray; use global_shortcuts::{PomatezGlobalShortcutsSetup, PomatezGlobalShortcutsRegister}; +use crate::updater::PomatezUpdater; fn main() { let app = tauri::Builder::default() .plugin(tauri_plugin_autostart::init(MacosLauncher::LaunchAgent, None)) .plugin(tauri_plugin_window::init()) + .plugin(tauri_plugin_updater::Builder::new().build()) .register_pomatez_commands() .setup(|app| { - app.setup_global_shortcuts(); - app.set_pomatez_system_tray(); + #[cfg(desktop)] + { + app.setup_global_shortcuts(); + app.set_pomatez_system_tray(); + app.check_for_update(); + } Ok(()) }) @@ -33,7 +41,12 @@ fn main() { app.run(|app_handle, e| match e { RunEvent::Ready => { + #[cfg(desktop)] app_handle.register_global_shortcuts(); + + #[cfg(debug_assertions)] + app_handle.get_window("main").unwrap().open_devtools(); + println!("Pomatez is ready"); } _ => {} diff --git a/app/tauri/src/system_tray.rs b/app/tauri/src/system_tray.rs index 50d3b9b6..026c13fa 100644 --- a/app/tauri/src/system_tray.rs +++ b/app/tauri/src/system_tray.rs @@ -1,5 +1,5 @@ use std::path::PathBuf; -use tauri::{App, Builder, Icon, Manager, Runtime, Wry}; +use tauri::{App, Icon, Manager, Runtime}; use tauri::{ menu::{MenuBuilder, MenuItemBuilder}, tray::{ClickType, TrayIconBuilder}, @@ -77,7 +77,7 @@ impl PomatezTray for App { } _ => {} }) - .on_tray_event(|tray, event| { + .on_tray_icon_event(|tray, event| { if event.click_type == ClickType::Left { let app = tray.app_handle(); let window = app.get_window("main").unwrap(); diff --git a/app/tauri/src/updater.rs b/app/tauri/src/updater.rs new file mode 100644 index 00000000..c1c3e39d --- /dev/null +++ b/app/tauri/src/updater.rs @@ -0,0 +1,84 @@ +use serde::Deserialize; +use tauri::{App}; +use tauri_plugin_updater::UpdaterExt; +use url::Url; + +pub trait PomatezUpdater { + fn check_for_update(&self); +} + +#[derive(Deserialize, Debug)] +struct LatestRelease { + // While we could get the latest version or other info, we just want to find the tauri-release.json asset. + assets: Vec, +} + +#[derive(Deserialize, Debug)] +struct Asset { + name: String, + browser_download_url: String, +} + +impl PomatezUpdater for App { + fn check_for_update(&self) { + let handle = self.handle().clone(); + tauri::async_runtime::spawn(async move { + // Todo maybe check that its a supported platform first e.g. windows, macos, linux (AppImage) + + // If its not a supported platform maybe open the release page. + + println!("Checking for updates"); + // Custom configure the updater. + // If we use this endpoint even if the url changes e.g. org name change or project name change the updates should still follow. + let github_releases_endpoint = "https://api.github.com/repos/sekwah41/pomatez/releases/latest"; + let github_releases_endpoint = match Url::parse(github_releases_endpoint) { + Ok(url) => url, + Err(e) => { + println!("Failed to parse url: {:?}. Failed to check for updates", e); + return; + } + }; + let client = reqwest::Client::new(); + let req = client.get(github_releases_endpoint.clone()) + .header("Content-Type", "application/json") + // If this is not set you will get a 403 forbidden error. + .header("User-Agent", "pomatez"); + let response = req.send().await.expect("Failed to send request"); + if response.status() != reqwest::StatusCode::OK { + println!("Non OK status code: {:?}. Failed to check for updates", response.status()); + return; + } + let latest_release = response.json::().await.expect("Failed to parse latest release response"); + + // Find an asset named "tauri-release.json". + let tauri_release_asset = latest_release.assets.iter().find(|asset| asset.name == "tauri-release.json"); + + // If we found the asset, set it as the updater endpoint. + let tauri_release_asset = match tauri_release_asset { + Some(tauri_release_asset) => tauri_release_asset, + None => { + println!("Failed to find tauri-release.json asset. Failed to check for updates\n\nFound Assets are:"); + // Print a list of the assets found + for asset in latest_release.assets { + println!(" {:?}", asset.name); + } + return; + } + }; + + let tauri_release_endpoint = match Url::parse(&tauri_release_asset.browser_download_url) { + Ok(url) => url, + Err(e) => { + println!("Failed to parse url: {:?}. Failed to check for updates", e); + return; + } + }; + let updater_builder = handle.updater_builder().endpoints(vec!(tauri_release_endpoint)); + let updater = updater_builder.build() + .expect("could not build updater"); + println!("Checking for updates"); + let response = updater.check().await; + println!("Update check response: {:?}", response); + }); + } +} \ No newline at end of file diff --git a/app/tauri/tauri.conf.json b/app/tauri/tauri.conf.json index 9e3fd477..3170d6bf 100644 --- a/app/tauri/tauri.conf.json +++ b/app/tauri/tauri.conf.json @@ -10,7 +10,6 @@ "productName": "Pomatez", "version": "1.3.0" }, - "plugins": {}, "tauri": { "bundle": { "active": true, @@ -39,14 +38,24 @@ "publisher": "Roldan Montilla Jr", "resources": ["icons/icon.png"], "shortDescription": "", - "targets": ["deb", "appimage", "msi", "dmg", "updater"], + "targets": ["deb", "appimage", "msi", "nsis", "dmg", "updater"], "windows": { "certificateThumbprint": null, "digestAlgorithm": "sha256", "timestampUrl": "", + "webviewInstallMode": { + "type": "embedBootstrapper" + }, "wix": { - "bannerPath": "./installer/banner.bmp", - "dialogImagePath": "./installer/dialog.bmp", + "bannerPath": "./installer/wix/banner.bmp", + "dialogImagePath": "./installer/wix/dialog.bmp", + "license": "../../LICENSE" + }, + "nsis": { + "headerImage": "./installer/nsis/header.bmp", + "sidebarImage": "./installer/nsis/sidebar.bmp", + "installerIcon": "./icons/icon.ico", + "installMode": "both", "license": "../../LICENSE" } } diff --git a/package.json b/package.json index f3ead324..8782c9a4 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "build:linux": "yarn build && lerna run build:linux --stream", "build:snap": "yarn build && lerna run build:snap --stream", "build:tauri": "tauri build", + "build:updaterfile": "node app/tauri/release-prep/release-prep.js", "release:mw": "yarn build && lerna run release:mw --stream", "release": "yarn build && lerna run release --stream", "clean": "lerna exec -- rimraf build/ dist/", @@ -46,7 +47,7 @@ ] }, "devDependencies": { - "@tauri-apps/cli": "^2.0.0-alpha.14", + "@tauri-apps/cli": "^2.0.0-alpha.17", "commitizen": "^4.1.2", "copyfiles": "2.4.1", "cross-env": "^7.0.3", @@ -64,8 +65,5 @@ "resolutions": { "//": "Check https://github.com/facebook/create-react-app/issues/11773 to see if it has been fixed yet", "react-error-overlay": "6.0.9" - }, - "dependencies": { - "@tauri-apps/api": "^2.0.0-alpha.8" } } diff --git a/yarn.lock b/yarn.lock index 890d72ea..fb6aac1f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3649,97 +3649,102 @@ dependencies: defer-to-connect "^1.0.1" +"@tauri-apps/api@2.0.0-alpha.11": + version "2.0.0-alpha.11" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-2.0.0-alpha.11.tgz#091afafc1d49a7009aa8ea18864e4f4e38133905" + integrity sha512-aw7jic+MQAe/LH4fYhbd3bwx3YjXhDIwqKJIn5QO4yKmGdVURIhZSFcyeKkSe4P6Itdto0Pcz99vLfkgBwdQKw== + "@tauri-apps/api@2.0.0-alpha.6": version "2.0.0-alpha.6" resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-2.0.0-alpha.6.tgz#16b94359e5c8266ed2b774b4f2e1339c594c4cb4" integrity sha512-ZMOc3eu9amwvkC6M69h3hWt4/EsFaAXmtkiw4xd2LN59/lTb4ZQiVfq2QKlRcu1rj3n/Tcr7U30ZopvHwXBGIg== -"@tauri-apps/api@2.0.0-alpha.8", "@tauri-apps/api@^2.0.0-alpha.8": - version "2.0.0-alpha.8" - resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-2.0.0-alpha.8.tgz#8caecf6e514ab2090f207e466aef9fec6fa0ed0b" - integrity sha512-3hZ+7EzUA11KN+O/Y4KgmjR+ldhXLdNllkw//hv/AaNsktEopCRBuKfVRLzVK3yov+Z+GzgxqFlwgJ1v6g1iKw== - -"@tauri-apps/cli-darwin-arm64@2.0.0-alpha.14": - version "2.0.0-alpha.14" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.0.0-alpha.14.tgz#1f27250f5659d0b058be36837c7e95afc721dc2f" - integrity sha512-3K416rvSUt8el/fdPnSnHJOI2j5Os9Kyy17XZp+z3PKRRuo/iJPp9L3w0zFGYsh7C+ylzV4OBUSVTi+e+gO5qA== - -"@tauri-apps/cli-darwin-x64@2.0.0-alpha.14": - version "2.0.0-alpha.14" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.0.0-alpha.14.tgz#446f87b8629756cd68985ba368e0df0da1dfd7a3" - integrity sha512-aLEUGG8Z0UpTENe4/UG6DU8bnB2e1uxyxYvcmFKrHv+EAtR9nLH14alBxPl2K54YXy3JLR4bKROW15a/sFrX9g== - -"@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-alpha.14": - version "2.0.0-alpha.14" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.0.0-alpha.14.tgz#3212d346a519f8ba0ab9370f5fbf449275c18368" - integrity sha512-Lu7unNvurBccxfHIaUQ0gPgUioTkQBMtWGrqO/auZ/JbjPR1W2eBlRwVNXf+nBWX9HwomPR3YD5yZuZmzxRV2g== - -"@tauri-apps/cli-linux-arm64-gnu@2.0.0-alpha.14": - version "2.0.0-alpha.14" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.0.0-alpha.14.tgz#577e9d66b23250f14792c5e25a732aad02290319" - integrity sha512-g8HkwKvAsWLLMJzPup7B1BCilYmXKwXdee7sf8QFbaIUSccR8i5pXLK5N/quKw5lmldYgFveEyuW9Qs8RgTYnQ== - -"@tauri-apps/cli-linux-arm64-musl@2.0.0-alpha.14": - version "2.0.0-alpha.14" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.0.0-alpha.14.tgz#72c24b8de5ab37ea6c0060be8965d48856c018de" - integrity sha512-ag4UuX6zg7vmBFWmg9ChyiJI7GTMkc8tjr/qobd3Lg9ddmjnVWwLUHt6v1kYhXiU7iLPD5DYDIjU8x/POc3hSA== - -"@tauri-apps/cli-linux-x64-gnu@2.0.0-alpha.14": - version "2.0.0-alpha.14" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.0.0-alpha.14.tgz#d9abbd46b689751162ff8f2aca3c213bf24d3028" - integrity sha512-+CviROc4fzrGqqyHQXh3uc2dGr/oYr19I8r2k+LJ2CDfmtj7CbNd/oC5oehHbHdw1oGFKuDPudrTGvzdRNygYA== - -"@tauri-apps/cli-linux-x64-musl@2.0.0-alpha.14": - version "2.0.0-alpha.14" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.0.0-alpha.14.tgz#6dfc09a7c335d019db08f28637b51bb3f67f7cfb" - integrity sha512-aCP51HOAQXgVhyPHXKy627bYVRkNnpCvSU3L03pYV8YDoGo+veeuek5UiW7PlNdwx52B/yC3Jz7Dr3gEbFimfQ== - -"@tauri-apps/cli-win32-arm64-msvc@2.0.0-alpha.14": - version "2.0.0-alpha.14" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.0.0-alpha.14.tgz#9154b1340bb04967347e96fdba618697b427b537" - integrity sha512-b6Ei5ERUF0KS1bttM7i6U62GmjIvlgK03XZqvL/KLNvUfqRMu8F7JA1ejSExgTxhEhKSWA768HiTXpXk2GjFFw== - -"@tauri-apps/cli-win32-ia32-msvc@2.0.0-alpha.14": - version "2.0.0-alpha.14" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.0.0-alpha.14.tgz#e80318d4a495575e80fb77fc62babd9867e15523" - integrity sha512-TDkvu5pd37bKxZ6N+BqngCNGcefY7aHxyJ3BdBGxF+wRMjEMh70mgEXk8i0uM/aUi/Kl1GQoO6xJfUDlIMPXOA== - -"@tauri-apps/cli-win32-x64-msvc@2.0.0-alpha.14": - version "2.0.0-alpha.14" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.0.0-alpha.14.tgz#eef8d38a0cc39c9b8c23bd9e8c16c290fb441f2a" - integrity sha512-9yfoEe2RSykKr5hCifVAL5o0gHXgRCS+Wo+RJjQ9L2+QHY7XPLZYAhj/h8jdcAdRveyIQwat3k7wl+SW87v1eg== - -"@tauri-apps/cli@^2.0.0-alpha.14": - version "2.0.0-alpha.14" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-2.0.0-alpha.14.tgz#f4b0b83fccdc3f70b75d3779e3fd6b93b971af60" - integrity sha512-4/IQwN5S94D6LTXQrDWbSea0pGb9TTC4BwxHUFmhep4NjFxms161v1zadAUIsq/N2x6WwCBGrsdq9SIkgKv49Q== +"@tauri-apps/api@2.0.0-alpha.9": + version "2.0.0-alpha.9" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-2.0.0-alpha.9.tgz#5684ea6f94f6ca52351202212e4925e583f70efc" + integrity sha512-Q5BiIQa2ToICdaJSYZdmtwbKSfdk+uQbQ7xMnbWI5C5C3frEVFlT92kVXgZFKIwrTLZBWHfiowkPR6rbFqAHIg== + +"@tauri-apps/cli-darwin-arm64@2.0.0-alpha.17": + version "2.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.0.0-alpha.17.tgz#e893b708e41e7a60266135e7edf04373a30e9bbb" + integrity sha512-WDqekRiVwMu/hKsf/xBHcfi/YZ7X9o6Piy4Qolt+YYyfi4wh5ZYZnom+7kIZBlSCc32gtXGViBXEivhcKzFQ3w== + +"@tauri-apps/cli-darwin-x64@2.0.0-alpha.17": + version "2.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.0.0-alpha.17.tgz#3f4abeed3f7412f5e14df364274b43aa91341c3f" + integrity sha512-WcQ+iSIaxr80gpa+ji+4e7dD0w/s3VCo29DU3wT/uQBKrCfkJUwmUAqEwyrR7INWcOurLF0IizR71In3NrYJiw== + +"@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-alpha.17": + version "2.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.0.0-alpha.17.tgz#52622438fdb5a5a73c13716025ad3203b890a27c" + integrity sha512-xgVc3Pv0Wf7aWqi0eH1iEemi9uQJJfMCVqBjPrK65Bm1LsBmMw99QS5YH8XPCMfB01Jfdzf3Ty9ZCW8/vjqz3w== + +"@tauri-apps/cli-linux-arm64-gnu@2.0.0-alpha.17": + version "2.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.0.0-alpha.17.tgz#693a4d5bd50e5f5c6af0f297398e57953c8d3565" + integrity sha512-QEx92085i+I4lOdboJ0PK+DSrlHq613HTqiSO4YteD5uCXsq2R9uAcFXM08quQYpRl4b9GeG99vig5GDOZMOkw== + +"@tauri-apps/cli-linux-arm64-musl@2.0.0-alpha.17": + version "2.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.0.0-alpha.17.tgz#77b0492d3fa64c4c8d27e741a26f15ae34a5077a" + integrity sha512-Iq0YHtg1yOvx3xxne6aHRS46SG6o6aQPACORGcJneGL6UjOQ7M34zKI9fX2tOWB5YEcVZBOvtNEZQOUeG2bw7g== + +"@tauri-apps/cli-linux-x64-gnu@2.0.0-alpha.17": + version "2.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.0.0-alpha.17.tgz#2e280fac702fb77145c0c66f1af59f13b455b53c" + integrity sha512-CAdd2EhGsFWu3nr0o650dfTLOJhICRoqETKmAgSEpQNtpXuJwrqxA3XrIa1sUkgWZacf3dgQwyNNlvB8oYOHKg== + +"@tauri-apps/cli-linux-x64-musl@2.0.0-alpha.17": + version "2.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.0.0-alpha.17.tgz#6d18765b451487038308f0a7c94bf7aac81ca458" + integrity sha512-xMhqAvcD0+b7creRhf7XnMTeoMAmmp1FvtNfosWCdWl7o9YHkqyNlkSp9rn96lhP2DG/Ew2CHxKOZaPql9gnlw== + +"@tauri-apps/cli-win32-arm64-msvc@2.0.0-alpha.17": + version "2.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.0.0-alpha.17.tgz#e1af9e0298f63e810a93b5dd36748770cf68959e" + integrity sha512-j8Q6JkDGW1N8brMjg74/AkVwyg14VVfQUFoai9Ocbf8q9gGNE5IRr7KvbWjqDntUihbc7MURwcXjcsJ4duYe/A== + +"@tauri-apps/cli-win32-ia32-msvc@2.0.0-alpha.17": + version "2.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.0.0-alpha.17.tgz#7b638be46ce7f48ee797c36baccea6651bd5c713" + integrity sha512-YIdSHH2Y9Rcg8Z5WoRUTlEi1DZj/Okrz4q0b+z8xwJQFSGsxUhpc3U81iBW1yw/7AtXiLtzr8AiBrLAw4ZYGHA== + +"@tauri-apps/cli-win32-x64-msvc@2.0.0-alpha.17": + version "2.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.0.0-alpha.17.tgz#b3b33f8c2cb640f9794aa66a340bf4af4e047cf6" + integrity sha512-+1stlGdRdiuyU+q1AlqieZhD2WpdLuP8EZxv2KbbjifLDt6fg1FUrcocmpIa8qsrXue7vg2sTrWNuy4aq/v4bw== + +"@tauri-apps/cli@^2.0.0-alpha.17": + version "2.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-2.0.0-alpha.17.tgz#666c71ce677c309b7980af6bb3c2ffb042d71410" + integrity sha512-fXz1KQzolqHY40bmNa/mzrdid4zlIaI/catXN8iqSO/1aNXNpLhg+6PWrwW5foiD7kJ6lgLlCtICW/1jRE5BZg== optionalDependencies: - "@tauri-apps/cli-darwin-arm64" "2.0.0-alpha.14" - "@tauri-apps/cli-darwin-x64" "2.0.0-alpha.14" - "@tauri-apps/cli-linux-arm-gnueabihf" "2.0.0-alpha.14" - "@tauri-apps/cli-linux-arm64-gnu" "2.0.0-alpha.14" - "@tauri-apps/cli-linux-arm64-musl" "2.0.0-alpha.14" - "@tauri-apps/cli-linux-x64-gnu" "2.0.0-alpha.14" - "@tauri-apps/cli-linux-x64-musl" "2.0.0-alpha.14" - "@tauri-apps/cli-win32-arm64-msvc" "2.0.0-alpha.14" - "@tauri-apps/cli-win32-ia32-msvc" "2.0.0-alpha.14" - "@tauri-apps/cli-win32-x64-msvc" "2.0.0-alpha.14" - -"@tauri-apps/plugin-autostart@^2.0.0-alpha.1": - version "2.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/plugin-autostart/-/plugin-autostart-2.0.0-alpha.1.tgz#4617d0a1aeb3b620e156e2ec010865de2bb947ec" - integrity sha512-xs72S8KCYzt9puML4vrmPvg2/wpUuRg4NMEp+12A7XwCP4mQ9js0fFPKSma770TVeJGpzhdJFvDTdWgrVyhYng== - dependencies: - "@tauri-apps/api" "2.0.0-alpha.6" - -"@tauri-apps/plugin-global-shortcut@^2.0.0-alpha.1": - version "2.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/plugin-global-shortcut/-/plugin-global-shortcut-2.0.0-alpha.1.tgz#d5abec71d7b731b3530712fb21c05bf6d11fd9c4" - integrity sha512-86pqnvoylSZV7R/SjK1WlLhTWydIhRS5qjHl6IqIcY4sYRuBMovMNj8fMLhFt2Ppq4dRiSx5jbrlQDY82HJtaQ== - dependencies: - "@tauri-apps/api" "2.0.0-alpha.6" - -"@tauri-apps/plugin-window@^2.0.0-alpha.1": + "@tauri-apps/cli-darwin-arm64" "2.0.0-alpha.17" + "@tauri-apps/cli-darwin-x64" "2.0.0-alpha.17" + "@tauri-apps/cli-linux-arm-gnueabihf" "2.0.0-alpha.17" + "@tauri-apps/cli-linux-arm64-gnu" "2.0.0-alpha.17" + "@tauri-apps/cli-linux-arm64-musl" "2.0.0-alpha.17" + "@tauri-apps/cli-linux-x64-gnu" "2.0.0-alpha.17" + "@tauri-apps/cli-linux-x64-musl" "2.0.0-alpha.17" + "@tauri-apps/cli-win32-arm64-msvc" "2.0.0-alpha.17" + "@tauri-apps/cli-win32-ia32-msvc" "2.0.0-alpha.17" + "@tauri-apps/cli-win32-x64-msvc" "2.0.0-alpha.17" + +"@tauri-apps/plugin-autostart@2.0.0-alpha.2": + version "2.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@tauri-apps/plugin-autostart/-/plugin-autostart-2.0.0-alpha.2.tgz#adbf3b564d75b996f12cadce98a729d5d83d418b" + integrity sha512-BDdnmiQwOtQkFpubGL+QaZbYo71cQRCcbC5vBmlxrNXn/J4WfyJ7yoU8cvaMemWTbeVsUOcFP0lKsYffXi+t3g== + dependencies: + "@tauri-apps/api" "2.0.0-alpha.9" + +"@tauri-apps/plugin-global-shortcut@2.0.0-alpha.2": + version "2.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@tauri-apps/plugin-global-shortcut/-/plugin-global-shortcut-2.0.0-alpha.2.tgz#7af492a6c5f31e04d3a3083ec63d97a6cf5e1238" + integrity sha512-V9JzFNufJBP6CRz/DRl0dIY/IJsSK05tRyDDVag9GJzexmQZp3ESXrPS22V4/s1jNIoKFlYTlUgvXryPHm+LIw== + dependencies: + "@tauri-apps/api" "2.0.0-alpha.9" + +"@tauri-apps/plugin-window@2.0.0-alpha.1": version "2.0.0-alpha.1" resolved "https://registry.yarnpkg.com/@tauri-apps/plugin-window/-/plugin-window-2.0.0-alpha.1.tgz#28a0217100fc5a34fb2a6d76103ba056b2348286" integrity sha512-dFOAgal/3Txz3SQ+LNQq0AK1EPC+acdaFlwPVB/6KXUZYmaFleIlzgxDVoJCQ+/xOhxvYrdQaFLefh0I/Kldbg==