Update to Tauri 2 (#1016)

This should hopefully resolve some of the issues.
This commit is contained in:
Christopher Serr
2025-02-23 21:39:22 +01:00
committed by GitHub
parent 349d95ebb0
commit e515d366d0
12 changed files with 2836 additions and 1465 deletions
+2 -2
View File
@@ -122,13 +122,13 @@ jobs:
if: matrix.platform == 'tauri' && startsWith(matrix.os, 'ubuntu')
run: |
sudo apt update
sudo apt install libwebkit2gtk-4.0-dev \
sudo apt install libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev
+164 -187
View File
@@ -17,7 +17,7 @@
"devDependencies": {
"@babel/plugin-proposal-explicit-resource-management": "^7.25.9",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.13",
"@tauri-apps/cli": "^1.6.0",
"@tauri-apps/cli": "^2.2.7",
"@types/markdown-it": "^14.1.2",
"@types/node": "^22.13.1",
"@types/react": "^19.0.10",
@@ -114,16 +114,6 @@
"url": "https://opencollective.com/babel"
}
},
"node_modules/@babel/core/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/generator": {
"version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz",
@@ -171,16 +161,6 @@
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-compilation-targets/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
"version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz",
@@ -203,16 +183,6 @@
"@babel/core": "^7.0.0"
}
},
"node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/helper-create-regexp-features-plugin": {
"version": "7.26.3",
"resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz",
@@ -231,16 +201,6 @@
"@babel/core": "^7.0.0"
}
},
"node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz",
@@ -785,16 +745,6 @@
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-classes/node_modules/globals": {
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/plugin-transform-computed-properties": {
"version": "7.25.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz",
@@ -1577,16 +1527,6 @@
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/preset-env/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/preset-modules": {
"version": "0.1.6-no-external-plugins",
"resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
@@ -1648,16 +1588,6 @@
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse/node_modules/globals": {
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/types": {
"version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz",
@@ -1752,9 +1682,9 @@
}
},
"node_modules/@eslint/core": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.11.0.tgz",
"integrity": "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==",
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz",
"integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -1765,9 +1695,9 @@
}
},
"node_modules/@eslint/eslintrc": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz",
"integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==",
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz",
"integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1788,10 +1718,23 @@
"url": "https://opencollective.com/eslint"
}
},
"node_modules/@eslint/eslintrc/node_modules/globals": {
"version": "14.0.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
"integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@eslint/js": {
"version": "9.20.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.20.0.tgz",
"integrity": "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==",
"version": "9.21.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz",
"integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1809,13 +1752,13 @@
}
},
"node_modules/@eslint/plugin-kit": {
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.6.tgz",
"integrity": "sha512-+0TjwR1eAUdZtvv/ir1mGX+v0tUoR3VEPB8Up0LLJC+whRW0GgBBtpbOkg/a/U4Dxa6l5a3l9AJ1aWIQVyoWJA==",
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz",
"integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@eslint/core": "^0.11.0",
"@eslint/core": "^0.12.0",
"levn": "^0.4.1"
},
"engines": {
@@ -2980,14 +2923,11 @@
}
},
"node_modules/@tauri-apps/cli": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.6.3.tgz",
"integrity": "sha512-q46umd6QLRKDd4Gg6WyZBGa2fWvk0pbeUA5vFomm4uOs1/17LIciHv2iQ4UD+2Yv5H7AO8YiE1t50V0POiEGEw==",
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.2.7.tgz",
"integrity": "sha512-ZnsS2B4BplwXP37celanNANiIy8TCYhvg5RT09n72uR/o+navFZtGpFSqljV8fy1Y4ixIPds8FrGSXJCN2BerA==",
"dev": true,
"license": "Apache-2.0 OR MIT",
"dependencies": {
"semver": ">=7.5.2"
},
"bin": {
"tauri": "tauri.js"
},
@@ -2999,27 +2939,27 @@
"url": "https://opencollective.com/tauri"
},
"optionalDependencies": {
"@tauri-apps/cli-darwin-arm64": "1.6.3",
"@tauri-apps/cli-darwin-x64": "1.6.3",
"@tauri-apps/cli-linux-arm-gnueabihf": "1.6.3",
"@tauri-apps/cli-linux-arm64-gnu": "1.6.3",
"@tauri-apps/cli-linux-arm64-musl": "1.6.3",
"@tauri-apps/cli-linux-x64-gnu": "1.6.3",
"@tauri-apps/cli-linux-x64-musl": "1.6.3",
"@tauri-apps/cli-win32-arm64-msvc": "1.6.3",
"@tauri-apps/cli-win32-ia32-msvc": "1.6.3",
"@tauri-apps/cli-win32-x64-msvc": "1.6.3"
"@tauri-apps/cli-darwin-arm64": "2.2.7",
"@tauri-apps/cli-darwin-x64": "2.2.7",
"@tauri-apps/cli-linux-arm-gnueabihf": "2.2.7",
"@tauri-apps/cli-linux-arm64-gnu": "2.2.7",
"@tauri-apps/cli-linux-arm64-musl": "2.2.7",
"@tauri-apps/cli-linux-x64-gnu": "2.2.7",
"@tauri-apps/cli-linux-x64-musl": "2.2.7",
"@tauri-apps/cli-win32-arm64-msvc": "2.2.7",
"@tauri-apps/cli-win32-ia32-msvc": "2.2.7",
"@tauri-apps/cli-win32-x64-msvc": "2.2.7"
}
},
"node_modules/@tauri-apps/cli-darwin-arm64": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.6.3.tgz",
"integrity": "sha512-fQN6IYSL8bG4NvkdKE4sAGF4dF/QqqQq4hOAU+t8ksOzHJr0hUlJYfncFeJYutr/MMkdF7hYKadSb0j5EE9r0A==",
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.2.7.tgz",
"integrity": "sha512-54kcpxZ3X1Rq+pPTzk3iIcjEVY4yv493uRx/80rLoAA95vAC0c//31Whz75UVddDjJfZvXlXZ3uSZ+bnCOnt0A==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"license": "Apache-2.0 OR MIT",
"optional": true,
"os": [
"darwin"
@@ -3029,14 +2969,14 @@
}
},
"node_modules/@tauri-apps/cli-darwin-x64": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.6.3.tgz",
"integrity": "sha512-1yTXZzLajKAYINJOJhZfmMhCzweHSgKQ3bEgJSn6t+1vFkOgY8Yx4oFgWcybrrWI5J1ZLZAl47+LPOY81dLcyA==",
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.2.7.tgz",
"integrity": "sha512-Vgu2XtBWemLnarB+6LqQeLanDlRj7CeFN//H8bVVdjbNzxcSxsvbLYMBP8+3boa7eBnjDrqMImRySSgL6IrwTw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"license": "Apache-2.0 OR MIT",
"optional": true,
"os": [
"darwin"
@@ -3046,14 +2986,14 @@
}
},
"node_modules/@tauri-apps/cli-linux-arm-gnueabihf": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.6.3.tgz",
"integrity": "sha512-CjTEr9r9xgjcvos09AQw8QMRPuH152B1jvlZt4PfAsyJNPFigzuwed5/SF7XAd8bFikA7zArP4UT12RdBxrx7w==",
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.2.7.tgz",
"integrity": "sha512-+Clha2iQAiK9zoY/KKW0KLHkR0k36O78YLx5Sl98tWkwI3OBZFg5H5WT1plH/4sbZIS2aLFN6dw58/JlY9Bu/g==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"license": "Apache-2.0 OR MIT",
"optional": true,
"os": [
"linux"
@@ -3063,14 +3003,14 @@
}
},
"node_modules/@tauri-apps/cli-linux-arm64-gnu": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.6.3.tgz",
"integrity": "sha512-G9EUUS4M8M/Jz1UKZqvJmQQCKOzgTb8/0jZKvfBuGfh5AjFBu8LHvlFpwkKVm1l4951Xg4ulUp6P9Q7WRJ9XSA==",
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.2.7.tgz",
"integrity": "sha512-Z/Lp4SQe6BUEOays9BQAEum2pvZF4w9igyXijP+WbkOejZx4cDvarFJ5qXrqSLmBh7vxrdZcLwoLk9U//+yQrg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"license": "Apache-2.0 OR MIT",
"optional": true,
"os": [
"linux"
@@ -3080,14 +3020,14 @@
}
},
"node_modules/@tauri-apps/cli-linux-arm64-musl": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.6.3.tgz",
"integrity": "sha512-MuBTHJyNpZRbPVG8IZBN8+Zs7aKqwD22tkWVBcL1yOGL4zNNTJlkfL+zs5qxRnHlUsn6YAlbW/5HKocfpxVwBw==",
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.2.7.tgz",
"integrity": "sha512-+8HZ+txff/Y3YjAh80XcLXcX8kpGXVdr1P8AfjLHxHdS6QD4Md+acSxGTTNbplmHuBaSHJvuTvZf9tU1eDCTDg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"license": "Apache-2.0 OR MIT",
"optional": true,
"os": [
"linux"
@@ -3097,14 +3037,14 @@
}
},
"node_modules/@tauri-apps/cli-linux-x64-gnu": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.6.3.tgz",
"integrity": "sha512-Uvi7M+NK3tAjCZEY1WGel+dFlzJmqcvu3KND+nqa22762NFmOuBIZ4KJR/IQHfpEYqKFNUhJfCGnpUDfiC3Oxg==",
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.2.7.tgz",
"integrity": "sha512-ahlSnuCnUntblp9dG7/w5ZWZOdzRFi3zl0oScgt7GF4KNAOEa7duADsxPA4/FT2hLRa0SvpqtD4IYFvCxoVv3Q==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"license": "Apache-2.0 OR MIT",
"optional": true,
"os": [
"linux"
@@ -3114,14 +3054,14 @@
}
},
"node_modules/@tauri-apps/cli-linux-x64-musl": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.6.3.tgz",
"integrity": "sha512-rc6B342C0ra8VezB/OJom9j/N+9oW4VRA4qMxS2f4bHY2B/z3J9NPOe6GOILeg4v/CV62ojkLsC3/K/CeF3fqQ==",
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.2.7.tgz",
"integrity": "sha512-+qKAWnJRSX+pjjRbKAQgTdFY8ecdcu8UdJ69i7wn3ZcRn2nMMzOO2LOMOTQV42B7/Q64D1pIpmZj9yblTMvadA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"license": "Apache-2.0 OR MIT",
"optional": true,
"os": [
"linux"
@@ -3131,14 +3071,14 @@
}
},
"node_modules/@tauri-apps/cli-win32-arm64-msvc": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-1.6.3.tgz",
"integrity": "sha512-cSH2qOBYuYC4UVIFtrc1YsGfc5tfYrotoHrpTvRjUGu0VywvmyNk82+ZsHEnWZ2UHmu3l3lXIGRqSWveLln0xg==",
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.2.7.tgz",
"integrity": "sha512-aa86nRnrwT04u9D9fhf5JVssuAZlUCCc8AjqQjqODQjMd4BMA2+d4K9qBMpEG/1kVh95vZaNsLogjEaqSTTw4A==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"license": "Apache-2.0 OR MIT",
"optional": true,
"os": [
"win32"
@@ -3148,14 +3088,14 @@
}
},
"node_modules/@tauri-apps/cli-win32-ia32-msvc": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.6.3.tgz",
"integrity": "sha512-T8V6SJQqE4PSWmYBl0ChQVmS6AR2hXFHURH2DwAhgSGSQ6uBXgwlYFcfIeQpBQA727K2Eq8X2hGfvmoySyHMRw==",
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.2.7.tgz",
"integrity": "sha512-EiJ5/25tLSQOSGvv+t6o3ZBfOTKB5S3vb+hHQuKbfmKdRF0XQu2YPdIi1CQw1DU97ZAE0Dq4frvnyYEKWgMzVQ==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"license": "Apache-2.0 OR MIT",
"optional": true,
"os": [
"win32"
@@ -3165,14 +3105,14 @@
}
},
"node_modules/@tauri-apps/cli-win32-x64-msvc": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.6.3.tgz",
"integrity": "sha512-HUkWZ+lYHI/Gjkh2QjHD/OBDpqLVmvjZGpLK9losur1Eg974Jip6k+vsoTUxQBCBDfj30eDBct9E1FvXOspWeg==",
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.2.7.tgz",
"integrity": "sha512-ZB8Kw90j8Ld+9tCWyD2fWCYfIrzbQohJ4DJSidNwbnehlZzP7wAz6Z3xjsvUdKtQ3ibtfoeTqVInzCCEpI+pWg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"license": "Apache-2.0 OR MIT",
"optional": true,
"os": [
"win32"
@@ -3373,9 +3313,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
"version": "22.13.4",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz",
"integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==",
"version": "22.13.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz",
"integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3684,6 +3624,19 @@
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@typescript-eslint/utils": {
"version": "8.24.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.1.tgz",
@@ -4263,16 +4216,6 @@
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
"node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/babel-plugin-polyfill-corejs3": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz",
@@ -4977,6 +4920,19 @@
}
}
},
"node_modules/css-loader/node_modules/semver": {
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/css-select": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
@@ -5398,9 +5354,9 @@
}
},
"node_modules/electron-to-chromium": {
"version": "1.5.102",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.102.tgz",
"integrity": "sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==",
"version": "1.5.103",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.103.tgz",
"integrity": "sha512-P6+XzIkfndgsrjROJWfSvVEgNHtPgbhVyTkwLjUM2HU/h7pZRORgaTlHqfAikqxKmdJMLW8fftrdGWbd/Ds0FA==",
"dev": true,
"license": "ISC"
},
@@ -5644,22 +5600,22 @@
}
},
"node_modules/eslint": {
"version": "9.20.1",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.1.tgz",
"integrity": "sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==",
"version": "9.21.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz",
"integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
"@eslint/config-array": "^0.19.0",
"@eslint/core": "^0.11.0",
"@eslint/eslintrc": "^3.2.0",
"@eslint/js": "9.20.0",
"@eslint/plugin-kit": "^0.2.5",
"@eslint/config-array": "^0.19.2",
"@eslint/core": "^0.12.0",
"@eslint/eslintrc": "^3.3.0",
"@eslint/js": "9.21.0",
"@eslint/plugin-kit": "^0.2.7",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.1",
"@humanwhocodes/retry": "^0.4.2",
"@types/estree": "^1.0.6",
"@types/json-schema": "^7.0.15",
"ajv": "^6.12.4",
@@ -6331,18 +6287,18 @@
}
},
"node_modules/get-intrinsic": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz",
"integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==",
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.0.0",
"es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
"get-proto": "^1.0.0",
"get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
@@ -6437,16 +6393,13 @@
"license": "BSD-2-Clause"
},
"node_modules/globals": {
"version": "14.0.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
"integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
"node": ">=4"
}
},
"node_modules/globalthis": {
@@ -9727,16 +9680,13 @@
}
},
"node_modules/semver": {
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/send": {
@@ -10024,6 +9974,20 @@
"node": ">=8"
}
},
"node_modules/sharp/node_modules/semver": {
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
"dev": true,
"license": "ISC",
"peer": true,
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -10679,6 +10643,19 @@
"webpack": "^5.0.0"
}
},
"node_modules/ts-loader/node_modules/semver": {
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
@@ -11849,9 +11826,9 @@
"license": "ISC"
},
"node_modules/ws": {
"version": "8.18.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
"integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"version": "8.18.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz",
"integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==",
"dev": true,
"license": "MIT",
"engines": {
+1 -1
View File
@@ -26,7 +26,7 @@
"devDependencies": {
"@babel/plugin-proposal-explicit-resource-management": "^7.25.9",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.13",
"@tauri-apps/cli": "^1.6.0",
"@tauri-apps/cli": "^2.2.7",
"@types/markdown-it": "^14.1.2",
"@types/node": "^22.13.1",
"@types/react": "^19.0.10",
+2598 -1204
View File
File diff suppressed because it is too large Load Diff
+4 -5
View File
@@ -8,18 +8,17 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[build-dependencies]
tauri-build = { version = "1", features = [] }
tauri-build = { version = "2", features = [] }
[dependencies]
tauri = { version = "1", features = [
"dialog-all",
"http-all",
"linux-protocol-headers",
tauri = { version = "2", features = [
] }
serde = { version = "1" }
serde_derive = { version = "1" }
serde_json = "1"
livesplit-core = { path = "../livesplit-core" }
tauri-plugin-dialog = "2"
tauri-plugin-http = "2"
[features]
# This feature is used for production builds or when a dev server is not specified, DO NOT REMOVE!!
+26
View File
@@ -0,0 +1,26 @@
{
"identifier": "migrated",
"description": "permissions that were migrated from v1",
"local": true,
"windows": [
"main"
],
"permissions": [
"core:default",
"dialog:allow-open",
"dialog:allow-save",
"dialog:allow-message",
"dialog:allow-ask",
"dialog:allow-confirm",
{
"identifier": "http:default",
"allow": [
{
"url": "https://www.speedrun.com/static/*"
}
]
},
"dialog:default",
"http:default"
]
}
+6 -4
View File
@@ -13,11 +13,11 @@ use livesplit_core::{
networking::server_protocol::Command,
HotkeyConfig, HotkeySystem, TimeSpan, TimingMethod,
};
use tauri::{Manager, Window};
use tauri::{Emitter, Manager, WebviewWindow};
struct State {
hotkey_system: RwLock<Option<HotkeySystem<TauriCommandSink>>>,
window: RwLock<Option<Window>>,
window: RwLock<Option<WebviewWindow>>,
}
#[tauri::command]
@@ -70,7 +70,7 @@ fn settings_changed(state: tauri::State<'_, State>, always_on_top: bool) {
}
#[derive(Clone)]
struct TauriCommandSink(Arc<RwLock<Option<Window>>>);
struct TauriCommandSink(Arc<RwLock<Option<WebviewWindow>>>);
impl TauriCommandSink {
fn send(&self, command: Command) {
@@ -207,12 +207,14 @@ fn main() {
let sink = TauriCommandSink(Arc::new(RwLock::new(None)));
let hotkey_system = RwLock::new(HotkeySystem::new(sink.clone()).ok());
tauri::Builder::default()
.plugin(tauri_plugin_http::init())
.plugin(tauri_plugin_dialog::init())
.manage(State {
hotkey_system,
window: RwLock::new(None),
})
.setup(move |app| {
let main_window = app.windows().values().next().unwrap().clone();
let main_window = app.webview_windows().values().next().unwrap().clone();
app.state::<State>()
.window
.write()
+21 -34
View File
@@ -1,48 +1,35 @@
{
"build": {
"devPath": "target/dist",
"distDir": "target/dist",
"withGlobalTauri": true
"frontendDist": "target/dist"
},
"package": {
"productName": "LiveSplit One",
"version": "0.1.0"
"bundle": {
"active": true,
"targets": "all",
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/[email protected]",
"icons/icon.icns",
"icons/icon.ico"
]
},
"tauri": {
"allowlist": {
"all": false,
"dialog": {
"all": true
},
"http": {
"all": true,
"request": true,
"scope": [
"https://www.speedrun.com/static/*"
]
}
},
"productName": "LiveSplit One",
"mainBinaryName": "LiveSplit One",
"version": "0.1.0",
"identifier": "org.livesplit.one",
"plugins": {},
"app": {
"withGlobalTauri": true,
"windows": [
{
"title": "LiveSplit One",
"width": 850,
"height": 750
"height": 750,
"useHttpsScheme": true
}
],
"security": {
"csp": null
},
"bundle": {
"active": true,
"targets": "all",
"identifier": "org.livesplit.one",
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/[email protected]",
"icons/icon.icns",
"icons/icon.ico"
]
}
}
}
}
+4 -10
View File
@@ -1,15 +1,9 @@
export async function corsBustingFetch(url: string, signal?: AbortSignal): Promise<ArrayBuffer> {
let response: Response | undefined;
if (window.__TAURI__ != null) {
const response = await window.__TAURI__.http.fetch(
url,
{ responseType: 3 },
);
if (signal != null) {
signal.throwIfAborted();
}
return new Uint8Array(response.data);
response = await window.__TAURI__.http.fetch(url, { signal });
} else {
const response = await fetch(url, { signal });
return response.arrayBuffer();
response = await fetch(url, { signal });
}
return response.arrayBuffer();
}
+6 -6
View File
@@ -14,12 +14,12 @@ class GlobalHotkeys implements HotkeyImplementation {
public async config(): Promise<HotkeyConfig> {
return expect(HotkeyConfig.parseJson(
await window.__TAURI__!.tauri.invoke("get_hotkey_config"),
await window.__TAURI__!.core.invoke("get_hotkey_config"),
), "Couldn't parse the hotkey config.");
}
public setConfig(config: HotkeyConfig): void {
window.__TAURI__!.tauri.invoke("set_hotkey_config", { config: config.asJson() });
window.__TAURI__!.core.invoke("set_hotkey_config", { config: config.asJson() });
if (this.hotkeySystem != null) {
this.hotkeySystem.setConfig(config);
} else {
@@ -28,7 +28,7 @@ class GlobalHotkeys implements HotkeyImplementation {
}
setConfigJson(configJson: unknown): void {
window.__TAURI__!.tauri.invoke("set_hotkey_config", { config: configJson });
window.__TAURI__!.core.invoke("set_hotkey_config", { config: configJson });
if (this.hotkeySystem != null) {
const config = HotkeyConfig.parseJson(configJson);
if (config != null) {
@@ -38,17 +38,17 @@ class GlobalHotkeys implements HotkeyImplementation {
}
public activate(): void {
window.__TAURI__!.tauri.invoke("set_hotkey_activation", { active: true });
window.__TAURI__!.core.invoke("set_hotkey_activation", { active: true });
this.hotkeySystem?.activate();
}
public deactivate(): void {
window.__TAURI__!.tauri.invoke("set_hotkey_activation", { active: false });
window.__TAURI__!.core.invoke("set_hotkey_activation", { active: false });
this.hotkeySystem?.deactivate();
}
public resolve(keyCode: string): Promise<string> {
return window.__TAURI__!.tauri.invoke("resolve_hotkey", { keyCode });
return window.__TAURI__!.core.invoke("resolve_hotkey", { keyCode });
}
}
+3 -11
View File
@@ -1,13 +1,13 @@
declare var __TAURI__: GlobalTauri | undefined;
declare interface GlobalTauri {
tauri: TauriModule;
core: CoreModule;
event: TauriEventModule;
notification: TauriNotificationModule;
http: TauriHttpModule;
}
declare interface TauriModule {
declare interface CoreModule {
invoke<T>(cmd: string, args?: Record<string, unknown>): Promise<T>;
}
@@ -27,15 +27,7 @@ declare interface TauriNotification {
}
declare interface TauriHttpModule {
fetch(url: string, options: { responseType: 3 }): Promise<TauriResponse<Array<number>>>;
}
declare interface TauriResponse<T> {
data: T,
}
declare interface TauriHttpOptions {
responseType: number;
fetch(url: string, init?: RequestInit): Promise<Response>;
}
declare interface TauriEvent {
+1 -1
View File
@@ -672,7 +672,7 @@ export class LiveSplit extends React.Component<Props, State> {
}
private updateTauriSettings(generalSettings: GeneralSettings) {
window.__TAURI__?.tauri.invoke("settings_changed", {
window.__TAURI__?.core.invoke("settings_changed", {
alwaysOnTop: generalSettings.alwaysOnTop,
});
}