diff --git a/package.json b/package.json index 41c36fb..16d8bd1 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "@tauri-apps/api": "2.7.0", "@tauri-apps/plugin-dialog": "2.3.1", "@tauri-apps/plugin-fs": "2.4.1", + "@tauri-apps/plugin-notification": "2.3.0", "@tauri-apps/plugin-opener": "2.4.0", "@tauri-apps/plugin-os": "2.3.0", "axios": "1.10.0", @@ -21,12 +22,12 @@ "react-dom": "19.1.0" }, "devDependencies": { - "@fortawesome/fontawesome-svg-core": "6.7.2", - "@fortawesome/free-brands-svg-icons": "6.7.2", - "@fortawesome/free-solid-svg-icons": "6.7.2", + "@fortawesome/fontawesome-svg-core": "7.0.0", + "@fortawesome/free-brands-svg-icons": "7.0.0", + "@fortawesome/free-solid-svg-icons": "7.0.0", "@fortawesome/react-fontawesome": "0.2.2", "@tailwindcss/postcss": "4.1.11", - "@tauri-apps/cli": "2.7.0", + "@tauri-apps/cli": "2.7.1", "@types/crypto-js": "4.2.2", "@types/react": "19.1.8", "@types/react-dom": "19.1.6", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 98e3cbe..5d7e6da 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -25,7 +25,8 @@ tauri-plugin-fs = "2.4.1" zip = "4.3.0" libc = "0.2.174" tauri-plugin-dialog = "2.3.1" +tauri-plugin-notification = "2.3.0" [target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies] -tauri-plugin-single-instance = "2.3.1" +tauri-plugin-single-instance = "2.3.2" diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index 967ef86..e3460d1 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -23,6 +23,7 @@ "fs:default", "fs:allow-applocaldata-read", "fs:allow-applocaldata-write", - "dialog:default" + "dialog:default", + "notification:default" ] } \ No newline at end of file diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 3028bc8..f2c9918 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -210,6 +210,7 @@ fn download_leaderboard(app: AppHandle, content: String) { pub fn run() { #[allow(unused_variables)] tauri::Builder::default() + .plugin(tauri_plugin_notification::init()) .plugin(tauri_plugin_single_instance::init(|app, _args, _cwd| { let _ = app .get_webview_window("main") diff --git a/src/componets/Sidebar.tsx b/src/componets/Sidebar.tsx index 3c14c81..60e5237 100644 --- a/src/componets/Sidebar.tsx +++ b/src/componets/Sidebar.tsx @@ -72,8 +72,8 @@ export default function Sidebar({ setShowPopup, setPopupMode, setFadeOut }: Side /> diff --git a/src/main.tsx b/src/main.tsx index 13b8dce..8d2c9ec 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -13,6 +13,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faAdd, faRemove, faX } from '@fortawesome/free-solid-svg-icons' import '@fontsource/roboto' import Leaderboards from './routes/Leaderboards' +import { isPermissionGranted, requestPermission, sendNotification } from '@tauri-apps/plugin-notification' function App () { const [hash, setHash] = useState(window.location.hash || '#installs') @@ -32,32 +33,48 @@ function App () { next?.() } - listen('download-progress', (event) => { - const [versionName, progStr] = event.payload.split(':') - const prog = Number(progStr) + useEffect(() => { + const unlistenProgress = listen('download-progress', (event) => { + const [versionName, progStr] = event.payload.split(':') + const prog = Number(progStr) - setDownloadProgress(prev => { - const i = prev.findIndex(d => d.version.version === versionName) - if (i === -1) return prev - const copy = [...prev] - copy[i] = { ...copy[i], progress: prog } - return copy + setDownloadProgress(prev => { + const i = prev.findIndex(d => d.version.version === versionName) + if (i === -1) return prev + const copy = [...prev] + copy[i] = { ...copy[i], progress: prog } + return copy + }) }) - }) - listen('download-done', (event) => { - const versionName = event.payload - setDownloadProgress(prev => prev.filter(d => d.version.version !== versionName)) - activeDownloads-- - runNext() - }) + const unlistenDone = listen('download-done', async (event) => { + const versionName = event.payload + setDownloadProgress(prev => prev.filter(d => d.version.version !== versionName)) + activeDownloads-- + runNext() + if (downloadProgress.length === 0) { + await notifyUser('Downloads Complete', 'All downloads have completed.') + } + }) - listen('download-failed', (event) => { - const versionName = event.payload - setDownloadProgress(prev => prev.filter(d => d.version.version !== versionName)) - activeDownloads-- - runNext() - }) + const unlistenFailed = listen('download-failed', async (event) => { + const versionName = event.payload + setDownloadProgress(prev => + prev.map(d => + d.version.version === versionName ? { ...d, failed: true } : d + ) + ) + activeDownloads-- + runNext() + await notifyUser('Download Failed', `The download for version ${versionName} has failed.`) + }) + + return () => { + unlistenProgress.then(f => f()) + unlistenDone.then(f => f()) + unlistenFailed.then(f => f()) + } + }, []) function downloadVersions(versions: LauncherVersion[]) { const newDownloads = versions.map(v => new DownloadProgress(v, 0, false, true)) @@ -92,6 +109,17 @@ function App () { } } + async function notifyUser(title: string, body: string) { + let permissionGranted = await isPermissionGranted(); + if (!permissionGranted) { + const permission = await requestPermission(); + permissionGranted = permission === 'granted'; + } + if (permissionGranted) { + sendNotification({ title, body }); + } + } + useEffect(() => { const onHashChange = () => setHash(window.location.hash || '#installs') window.addEventListener('hashchange', onHashChange) diff --git a/yarn.lock b/yarn.lock index 778ceca..a9d0b10 100644 --- a/yarn.lock +++ b/yarn.lock @@ -330,31 +330,31 @@ resolved "https://registry.yarnpkg.com/@fontsource/roboto/-/roboto-5.2.6.tgz#93a2a5ef98cc79880355de0aac71def215b873e7" integrity sha512-hzarG7yAhMoP418smNgfY4fO7UmuUEm5JUtbxCoCcFHT0hOJB+d/qAEyoNjz7YkPU5OjM2LM8rJnW8hfm0JLaA== -"@fortawesome/fontawesome-common-types@6.7.2": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz#7123d74b0c1e726794aed1184795dbce12186470" - integrity sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg== +"@fortawesome/fontawesome-common-types@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-7.0.0.tgz#1a03eb151263bffcc9c4d0b0b0ffef04496e4382" + integrity sha512-PGMrIYXLGA5K8RWy8zwBkd4vFi4z7ubxtet6Yn13Plf6krRTwPbdlCwlcfmoX0R7B4Z643QvrtHmdQ5fNtfFCg== -"@fortawesome/fontawesome-svg-core@6.7.2": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz#0ac6013724d5cc327c1eb81335b91300a4fce2f2" - integrity sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA== +"@fortawesome/fontawesome-svg-core@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.0.0.tgz#57c0c6105a84cacd62d06e61d1b259f5dade560b" + integrity sha512-obBEF+zd98r/KtKVW6A+8UGWeaOoyMpl6Q9P3FzHsOnsg742aXsl8v+H/zp09qSSu/a/Hxe9LNKzbBaQq1CEbA== dependencies: - "@fortawesome/fontawesome-common-types" "6.7.2" + "@fortawesome/fontawesome-common-types" "7.0.0" -"@fortawesome/free-brands-svg-icons@6.7.2": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.2.tgz#4ebee8098f31da5446dda81edc344025eb59b27e" - integrity sha512-zu0evbcRTgjKfrr77/2XX+bU+kuGfjm0LbajJHVIgBWNIDzrhpRxiCPNT8DW5AdmSsq7Mcf9D1bH0aSeSUSM+Q== +"@fortawesome/free-brands-svg-icons@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-7.0.0.tgz#2510ed99f4406bb8e6459316a7d9b2432fa41b55" + integrity sha512-C8oY28gq/Qx/cHReJa2AunKJUHvUZDVoPlSTHtAvjriaNfi+5nugW4cx7yA/xN3f/nYkElw11gFBoJ2xUDDFgg== dependencies: - "@fortawesome/fontawesome-common-types" "6.7.2" + "@fortawesome/fontawesome-common-types" "7.0.0" -"@fortawesome/free-solid-svg-icons@6.7.2": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz#fe25883b5eb8464a82918599950d283c465b57f6" - integrity sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA== +"@fortawesome/free-solid-svg-icons@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-7.0.0.tgz#26362f9f97e33fc3739752af584a015d8a365850" + integrity sha512-njSLAllkOddYDCXgTFboXn54Oe5FcvpkWq+FoetOHR64PbN0608kM02Lze0xtISGpXgP+i26VyXRQA0Irh3Obw== dependencies: - "@fortawesome/fontawesome-common-types" "6.7.2" + "@fortawesome/fontawesome-common-types" "7.0.0" "@fortawesome/react-fontawesome@0.2.2": version "0.2.2" @@ -632,77 +632,77 @@ resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-2.6.0.tgz#efd873bf04b0d72cea81f9397e16218f5deafe0f" integrity sha512-hRNcdercfgpzgFrMXWwNDBN0B7vNzOzRepy6ZAmhxi5mDLVPNrTpo9MGg2tN/F7JRugj4d2aF7E1rtPXAHaetg== -"@tauri-apps/cli-darwin-arm64@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.7.0.tgz#578afae1dde87b0e0bd4379c55baaf023f1ebd95" - integrity sha512-4sSrBlZuGb78UKkVQHdexzrYCamsiFQXFFuh9EI8vdq9PgTG8oXByQNIMx+p01HB594kLhaySrgozst6EFPoVQ== +"@tauri-apps/cli-darwin-arm64@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.7.1.tgz#dc20102b0ef0b515ef8b332e6941249ae70b52cf" + integrity sha512-j2NXQN6+08G03xYiyKDKqbCV2Txt+hUKg0a8hYr92AmoCU8fgCjHyva/p16lGFGUG3P2Yu0xiNe1hXL9ZuRMzA== -"@tauri-apps/cli-darwin-x64@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.7.0.tgz#6b182c797c00a0cd7fb04caa3957ecdaf80e6598" - integrity sha512-Uec0pKyw5/w4UmcRLyPt/+JG4dsIKj0TeKtF3PDz4EAGOevjSBaLIgu8aC62s3wKLCtDydTdIMMQ1ENHTJgfPA== +"@tauri-apps/cli-darwin-x64@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.7.1.tgz#84c9f51f12d10ea8c38dffb8e23620ac96f4d71f" + integrity sha512-CdYAefeM35zKsc91qIyKzbaO7FhzTyWKsE8hj7tEJ1INYpoh1NeNNyL/NSEA3Nebi5ilugioJ5tRK8ZXG8y3gw== -"@tauri-apps/cli-linux-arm-gnueabihf@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.7.0.tgz#032bc0b268baf440fda9bc6d0741b86e7fa701bd" - integrity sha512-ZE7y/3MW9i1DccnHyktBDbryMWVFdnIfdqQoJ40iBzQGoBIQk4DonA5zROcqw0qGRTsXfTRnVjIXnh5eLkoCzQ== +"@tauri-apps/cli-linux-arm-gnueabihf@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.7.1.tgz#71757594b8b75d05c24008a7db595db685d54321" + integrity sha512-dnvyJrTA1UJxJjQ8q1N/gWomjP8Twij1BUQu2fdcT3OPpqlrbOk5R1yT0oD/721xoKNjroB5BXCsmmlykllxNg== -"@tauri-apps/cli-linux-arm64-gnu@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.7.0.tgz#3c75441a01f168a1348b7a1bf8a6398095cd872f" - integrity sha512-cWGl8OL+FjPWib+K8YK1S6o2Z34+f2LxnFRziTPdHwrdlVNO2xYkJmrT6X3PyHtccf/IByicxVvjkExLlpZ4+A== +"@tauri-apps/cli-linux-arm64-gnu@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.7.1.tgz#13444a904524b6fc4b9de0e722a6aeaa8a7c0a60" + integrity sha512-FtBW6LJPNRTws3qyUc294AqCWU91l/H0SsFKq6q4Q45MSS4x6wxLxou8zB53tLDGEPx3JSoPLcDaSfPlSbyujQ== -"@tauri-apps/cli-linux-arm64-musl@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.7.0.tgz#92fb90e9e519324e3b59120862e8661bbcaf1dbb" - integrity sha512-MftwAsMDw9dmKosbHdSHyCa0jgKjt9UslJsRpXym8dmbw+gzD3YrY41GORq0HbCYImC5rS/qQf9eELoLcqY/BQ== +"@tauri-apps/cli-linux-arm64-musl@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.7.1.tgz#a344802fc7a49a2e79abf2dda90d3eaa028540c2" + integrity sha512-/HXY0t4FHkpFzjeYS5c16mlA6z0kzn5uKLWptTLTdFSnYpr8FCnOP4Sdkvm2TDQPF2ERxXtNCd+WR/jQugbGnA== -"@tauri-apps/cli-linux-riscv64-gnu@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.7.0.tgz#a4650d3a6aff7550492e9c084de0209234090fe2" - integrity sha512-QwL4YhckgtozR7wlXOTRKijkgViz4B0OeXqhsIrhQock2HDxqCh5VqhGQ9LRJ6HsXY1JkAYZQUAFvcBj2DHUXQ== +"@tauri-apps/cli-linux-riscv64-gnu@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.7.1.tgz#813c7125321445096de133044b54bd5c985220e9" + integrity sha512-GeW5lVI2GhhnaYckiDzstG2j2Jwlud5d2XefRGwlOK+C/bVGLT1le8MNPYK8wgRlpeK8fG1WnJJYD6Ke7YQ8bg== -"@tauri-apps/cli-linux-x64-gnu@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.7.0.tgz#768438a0f4cc79ac2d73f8ec73c7219057d48f4a" - integrity sha512-4MwN2sqUEYGKjwcs0afPp79DkiydAfkGNdBTPfvNrDUmhbT6JE95RhYyzfZLfXNinsdB4nbZmYGEPIv5NpK2KQ== +"@tauri-apps/cli-linux-x64-gnu@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.7.1.tgz#8fd8d0f39e133dd4344be933d75ded3f47bf898c" + integrity sha512-DprxKQkPxIPYwUgg+cscpv2lcIUhn2nxEPlk0UeaiV9vATxCXyytxr1gLcj3xgjGyNPlM0MlJyYaPy1JmRg1cA== -"@tauri-apps/cli-linux-x64-musl@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.7.0.tgz#be6731c31b09f94c95a577e7ccbcb94de6fca8ac" - integrity sha512-N1hygCRW0X4msCpdG3/UXb+Z8wpc4lYRqlkhbbxLOjzHwjuLS+86GYAvRLe7JIePVXVUI5BfX1HeurdbWWINTg== +"@tauri-apps/cli-linux-x64-musl@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.7.1.tgz#d6b9ce5fe640beb0cf306b44de7e91907b81e3c7" + integrity sha512-KLlq3kOK7OUyDR757c0zQjPULpGZpLhNB0lZmZpHXvoOUcqZoCXJHh4dT/mryWZJp5ilrem5l8o9ngrDo0X1AA== -"@tauri-apps/cli-win32-arm64-msvc@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.7.0.tgz#42162414743849128248e45c964f2074335890a3" - integrity sha512-sqVDkwvUsuHeUVlMXpkXPo4gWFXuOcNbme0xPQ1r07hqBxYJlqwDY9XS0sC/7XljnO6anJaSr8FJkuixnIqyUQ== +"@tauri-apps/cli-win32-arm64-msvc@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.7.1.tgz#16b0374ff4c3b3ac0abbd6f293bea4388ce9b6a1" + integrity sha512-dH7KUjKkSypCeWPiainHyXoES3obS+JIZVoSwSZfKq2gWgs48FY3oT0hQNYrWveE+VR4VoR3b/F3CPGbgFvksA== -"@tauri-apps/cli-win32-ia32-msvc@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.7.0.tgz#f31ba05b498782bf24336e9793091da0b6f847ed" - integrity sha512-2sZFAZZC8fwc65d5ACrTUgKPYbZgd3DAN5gI4WzCyTQgPqLq/7CWD25Wt7+scTV7FhT1zjL88hI10yPsEE0kkA== +"@tauri-apps/cli-win32-ia32-msvc@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.7.1.tgz#5dbea2353a5eda49525938c853966a4260c900b8" + integrity sha512-1oeibfyWQPVcijOrTg709qhbXArjX3x1MPjrmA5anlygwrbByxLBcLXvotcOeULFcnH2FYUMMLLant8kgvwE5A== -"@tauri-apps/cli-win32-x64-msvc@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.7.0.tgz#2a434666a76d69cbc4c1faf9986f34f9785d8336" - integrity sha512-mGqRRpqdZ5iKLaQwP1paz89koLVrE/mUOrq6boftHDxF8K1sU/9Um/E7SLrkfeICiWbVG5yY7j2N/j8/D80blw== +"@tauri-apps/cli-win32-x64-msvc@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.7.1.tgz#32d0635504d06529846e112ab4de2c88b0f37414" + integrity sha512-D7Q9kDObutuirCNLxYQ7KAg2Xxg99AjcdYz/KuMw5HvyEPbkC9Q7JL0vOrQOrHEHxIQ2lYzFOZvKKoC2yyqXcg== -"@tauri-apps/cli@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-2.7.0.tgz#91795ec9b180cbcbeb78b1c48082c19d8d9f212d" - integrity sha512-ozyxKm5YvivvLyrgHKyl6L+6y1/TkkeoA0cppPqxDv+ldbbtYiXx7dH8/G20tINh7dE+omSimN36i9M1ClGxtQ== +"@tauri-apps/cli@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-2.7.1.tgz#19af06286ee9ae6dca21d1cec33489e950a5b52f" + integrity sha512-RcGWR4jOUEl92w3uvI0h61Llkfj9lwGD1iwvDRD2isMrDhOzjeeeVn9aGzeW1jubQ/kAbMYfydcA4BA0Cy733Q== optionalDependencies: - "@tauri-apps/cli-darwin-arm64" "2.7.0" - "@tauri-apps/cli-darwin-x64" "2.7.0" - "@tauri-apps/cli-linux-arm-gnueabihf" "2.7.0" - "@tauri-apps/cli-linux-arm64-gnu" "2.7.0" - "@tauri-apps/cli-linux-arm64-musl" "2.7.0" - "@tauri-apps/cli-linux-riscv64-gnu" "2.7.0" - "@tauri-apps/cli-linux-x64-gnu" "2.7.0" - "@tauri-apps/cli-linux-x64-musl" "2.7.0" - "@tauri-apps/cli-win32-arm64-msvc" "2.7.0" - "@tauri-apps/cli-win32-ia32-msvc" "2.7.0" - "@tauri-apps/cli-win32-x64-msvc" "2.7.0" + "@tauri-apps/cli-darwin-arm64" "2.7.1" + "@tauri-apps/cli-darwin-x64" "2.7.1" + "@tauri-apps/cli-linux-arm-gnueabihf" "2.7.1" + "@tauri-apps/cli-linux-arm64-gnu" "2.7.1" + "@tauri-apps/cli-linux-arm64-musl" "2.7.1" + "@tauri-apps/cli-linux-riscv64-gnu" "2.7.1" + "@tauri-apps/cli-linux-x64-gnu" "2.7.1" + "@tauri-apps/cli-linux-x64-musl" "2.7.1" + "@tauri-apps/cli-win32-arm64-msvc" "2.7.1" + "@tauri-apps/cli-win32-ia32-msvc" "2.7.1" + "@tauri-apps/cli-win32-x64-msvc" "2.7.1" "@tauri-apps/plugin-dialog@2.3.1": version "2.3.1" @@ -718,6 +718,13 @@ dependencies: "@tauri-apps/api" "^2.6.0" +"@tauri-apps/plugin-notification@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/plugin-notification/-/plugin-notification-2.3.0.tgz#714b971ed4efa020766efd921c2b03b66bcc5129" + integrity sha512-QDwXo9VzAlH97c0veuf19TZI6cRBPfJDl2O6hNEDvI66j60lOO9z+PL6MJrj8A6Y+t55r7mGhe3rQWLmOre2HA== + dependencies: + "@tauri-apps/api" "^2.6.0" + "@tauri-apps/plugin-opener@2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@tauri-apps/plugin-opener/-/plugin-opener-2.4.0.tgz#57eae5998e1c396791af16832a9dde16eca06439"