Add notifications & update dependencies

This commit is contained in:
2025-07-22 15:27:13 -07:00
parent 3631c8be49
commit 7077bf6bea
7 changed files with 147 additions and 108 deletions

View File

@@ -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",

View File

@@ -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"

View File

@@ -23,6 +23,7 @@
"fs:default",
"fs:allow-applocaldata-read",
"fs:allow-applocaldata-write",
"dialog:default"
"dialog:default",
"notification:default"
]
}

View File

@@ -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")

View File

@@ -72,8 +72,8 @@ export default function Sidebar({ setShowPopup, setPopupMode, setFadeOut }: Side
/>
</div>
<nav className="nav-links">
<a draggable={false} href="#installs" className={`link ${(window.location.hash || '#installs') === '#installs' ? 'active' : ''}`}><FontAwesomeIcon icon={faServer} className="mr-2" /> Installs</a>
<a draggable={false} href="#settings" className={`link ${(window.location.hash || '#installs') === '#settings' ? 'active' : ''}`}><FontAwesomeIcon icon={faCog} className="mr-2" /> Settings</a>
<a draggable={false} href="#installs" className={`link ${(window.location.hash || '#installs') === '#installs' ? 'active' : ''}`}><FontAwesomeIcon icon={faServer} className="mr-1" /> Installs</a>
<a draggable={false} href="#settings" className={`link ${(window.location.hash || '#installs') === '#settings' ? 'active' : ''}`}><FontAwesomeIcon icon={faCog} className="mr-1" /> Settings</a>
<a draggable={false} href="#leaderboards" className={`link ${(window.location.hash || '#installs') === '#leaderboards' ? 'active' : ''}`}><FontAwesomeIcon icon={faRankingStar} className="mr-1" /> Leaderboards</a>
<a draggable={false} onClick={() => openUrl("https://berrydash.lncvrt.xyz/discord")} className="link"><FontAwesomeIcon icon={faDiscord} className="mr-1" /> Community</a>
</nav>

View File

@@ -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<string>('download-progress', (event) => {
const [versionName, progStr] = event.payload.split(':')
const prog = Number(progStr)
useEffect(() => {
const unlistenProgress = listen<string>('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<string>('download-done', (event) => {
const versionName = event.payload
setDownloadProgress(prev => prev.filter(d => d.version.version !== versionName))
activeDownloads--
runNext()
})
const unlistenDone = listen<string>('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<string>('download-failed', (event) => {
const versionName = event.payload
setDownloadProgress(prev => prev.filter(d => d.version.version !== versionName))
activeDownloads--
runNext()
})
const unlistenFailed = listen<string>('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)

163
yarn.lock
View File

@@ -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"