1 Commits

Author SHA1 Message Date
6dab4aadc1 Update Node.js to v24
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-07-05 00:09:44 +00:00
7 changed files with 172 additions and 200 deletions

View File

@ -6,7 +6,7 @@ name: default
steps: steps:
# Frontend # Frontend
- name: web_build - name: web_build
image: node:23 image: node:24
volumes: volumes:
- name: web_app - name: web_app
path: /tmp/web_build path: /tmp/web_build

View File

@ -724,9 +724,9 @@ dependencies = [
[[package]] [[package]]
name = "clap" name = "clap"
version = "4.5.41" version = "4.5.40"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f"
dependencies = [ dependencies = [
"clap_builder", "clap_builder",
"clap_derive", "clap_derive",
@ -734,9 +734,9 @@ dependencies = [
[[package]] [[package]]
name = "clap_builder" name = "clap_builder"
version = "4.5.41" version = "4.5.40"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e"
dependencies = [ dependencies = [
"anstream", "anstream",
"anstyle", "anstyle",
@ -746,9 +746,9 @@ dependencies = [
[[package]] [[package]]
name = "clap_derive" name = "clap_derive"
version = "4.5.41" version = "4.5.40"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce"
dependencies = [ dependencies = [
"heck", "heck",
"proc-macro2", "proc-macro2",
@ -1100,9 +1100,9 @@ dependencies = [
[[package]] [[package]]
name = "diesel" name = "diesel"
version = "2.2.12" version = "2.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "229850a212cd9b84d4f0290ad9d294afc0ae70fccaa8949dbe8b43ffafa1e20c" checksum = "a917a9209950404d5be011c81d081a2692a822f73c3d6af586f0cab5ff50f614"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"byteorder", "byteorder",

View File

@ -6,9 +6,9 @@ edition = "2024"
[dependencies] [dependencies]
env_logger = "0.11.8" env_logger = "0.11.8"
log = "0.4.27" log = "0.4.27"
diesel = { version = "2.2.12", features = ["postgres", "r2d2"] } diesel = { version = "2.2.11", features = ["postgres", "r2d2"] }
diesel_migrations = "2.2.0" diesel_migrations = "2.2.0"
clap = { version = "4.5.41", features = ["env", "derive"] } clap = { version = "4.5.40", features = ["env", "derive"] }
actix-web = "4.11.0" actix-web = "4.11.0"
actix-cors = "0.7.1" actix-cors = "0.7.1"
actix-multipart = "0.7.2" actix-multipart = "0.7.2"

View File

@ -56,7 +56,7 @@ impl FromRequest for AuthExtractor {
}; };
Box::pin(async move { Box::pin(async move {
// Check for authentication using API token // Check for authentication using OpenID
if let Some(token) = req.headers().get(constants::API_TOKEN_HEADER) { if let Some(token) = req.headers().get(constants::API_TOKEN_HEADER) {
let Ok(jwt_token) = token.to_str() else { let Ok(jwt_token) = token.to_str() else {
return Err(actix_web::error::ErrorBadRequest( return Err(actix_web::error::ErrorBadRequest(

View File

@ -16,21 +16,21 @@
"@mdi/react": "^1.6.1", "@mdi/react": "^1.6.1",
"@mui/icons-material": "^7.1.2", "@mui/icons-material": "^7.1.2",
"@mui/material": "^7.1.2", "@mui/material": "^7.1.2",
"@mui/x-charts": "^8.8.0", "@mui/x-charts": "^8.5.3",
"@mui/x-data-grid": "^8.8.0", "@mui/x-data-grid": "^8.5.3",
"@mui/x-date-pickers": "^8.8.0", "@mui/x-date-pickers": "^8.5.3",
"date-and-time": "^3.6.0", "date-and-time": "^3.6.0",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"filesize": "^10.1.6", "filesize": "^10.1.6",
"qrcode.react": "^4.2.0", "qrcode.react": "^4.2.0",
"react": "^19.1.0", "react": "^19.1.0",
"react-dom": "^19.1.0", "react-dom": "^19.1.0",
"react-router": "^7.6.3", "react-router": "^7.6.2",
"react-router-dom": "^7.6.3", "react-router-dom": "^7.6.2",
"ts-pattern": "^5.7.1" "ts-pattern": "^5.7.1"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.31.0", "@eslint/js": "^9.29.0",
"@types/react": "^19.1.8", "@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6", "@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^4.6.0", "@vitejs/plugin-react": "^4.6.0",
@ -38,7 +38,7 @@
"eslint-plugin-react-dom": "^1.49.0", "eslint-plugin-react-dom": "^1.49.0",
"eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^00.4.20", "eslint-plugin-react-refresh": "^00.4.20",
"eslint-plugin-react-x": "^1.52.3", "eslint-plugin-react-x": "^1.52.2",
"globals": "^16.2.0", "globals": "^16.2.0",
"typescript": "~5.8.3", "typescript": "~5.8.3",
"typescript-eslint": "^8.32.1", "typescript-eslint": "^8.32.1",
@ -1145,9 +1145,9 @@
} }
}, },
"node_modules/@eslint/js": { "node_modules/@eslint/js": {
"version": "9.31.0", "version": "9.29.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.29.0.tgz",
"integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==", "integrity": "sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -1544,12 +1544,12 @@
} }
}, },
"node_modules/@mui/types": { "node_modules/@mui/types": {
"version": "7.4.4", "version": "7.4.3",
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.4.tgz", "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.3.tgz",
"integrity": "sha512-p63yhbX52MO/ajXC7hDHJA5yjzJekvWD3q4YDLl1rSg+OXLczMYPvTuSuviPRCgRX8+E42RXz1D/dz9SxPSlWg==", "integrity": "sha512-2UCEiK29vtiZTeLdS2d4GndBKacVyxGvReznGXGr+CzW/YhjIX+OHUdCIczZjzcRAgKBGmE9zCIgoV9FleuyRQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.27.6" "@babel/runtime": "^7.27.1"
}, },
"peerDependencies": { "peerDependencies": {
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0"
@ -1561,14 +1561,14 @@
} }
}, },
"node_modules/@mui/utils": { "node_modules/@mui/utils": {
"version": "7.2.0", "version": "7.1.1",
"resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.2.0.tgz", "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.1.1.tgz",
"integrity": "sha512-O0i1GQL6MDzhKdy9iAu5Yr0Sz1wZjROH1o3aoztuivdCXqEeQYnEjTDiRLGuFxI9zrUbTHBwobMyQH5sNtyacw==", "integrity": "sha512-BkOt2q7MBYl7pweY2JWwfrlahhp+uGLR8S+EhiyRaofeRYUWL2YKbSGQvN4hgSN1i8poN0PaUiii1kEMrchvzg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.27.6", "@babel/runtime": "^7.27.1",
"@mui/types": "^7.4.4", "@mui/types": "^7.4.3",
"@types/prop-types": "^15.7.15", "@types/prop-types": "^15.7.14",
"clsx": "^2.1.1", "clsx": "^2.1.1",
"prop-types": "^15.8.1", "prop-types": "^15.8.1",
"react-is": "^19.1.0" "react-is": "^19.1.0"
@ -1591,16 +1591,15 @@
} }
}, },
"node_modules/@mui/x-charts": { "node_modules/@mui/x-charts": {
"version": "8.8.0", "version": "8.5.3",
"resolved": "https://registry.npmjs.org/@mui/x-charts/-/x-charts-8.8.0.tgz", "resolved": "https://registry.npmjs.org/@mui/x-charts/-/x-charts-8.5.3.tgz",
"integrity": "sha512-tqdwKoUpo8u+KZdEWO4C21Q0P3HOL/DadAZSMmTdtO1LDCO/m4S8UtHFpj2B0pZuikdiBJ5bz49I+nfBfK1Xng==", "integrity": "sha512-aLU3KNA5bfKufxCPxBYx34xOn1mY5xaYGxxImEIQhL1BDnsjdkeF7b7gitL62XHpJe7ceU0nr2PbAr8msU0ZBQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.27.6", "@babel/runtime": "^7.27.6",
"@mui/utils": "^7.2.0", "@mui/utils": "^7.1.1",
"@mui/x-charts-vendor": "8.5.3", "@mui/x-charts-vendor": "8.5.3",
"@mui/x-internal-gestures": "0.2.1", "@mui/x-internals": "8.5.3",
"@mui/x-internals": "8.8.0",
"bezier-easing": "^2.1.0", "bezier-easing": "^2.1.0",
"clsx": "^2.1.1", "clsx": "^2.1.1",
"prop-types": "^15.8.1", "prop-types": "^15.8.1",
@ -1653,14 +1652,14 @@
} }
}, },
"node_modules/@mui/x-data-grid": { "node_modules/@mui/x-data-grid": {
"version": "8.8.0", "version": "8.5.3",
"resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-8.8.0.tgz", "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-8.5.3.tgz",
"integrity": "sha512-xWoBmxHi5JvT0QvAYGYJYNy4DEi+Lez+lrsqw3YV7z0jEYyJoV9vjFCiFE4QmG6IPg62B1gZHYE5AkDLFCvPkw==", "integrity": "sha512-rA+de5yre16KFIGKRBUwb8kYIdn7SPPrZsBy1P3QxisqhC+Wz2AQg/W6WWv71aFHwplmGwsFUjU6d47Fy/wvXg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.27.6", "@babel/runtime": "^7.27.6",
"@mui/utils": "^7.2.0", "@mui/utils": "^7.1.1",
"@mui/x-internals": "8.8.0", "@mui/x-internals": "8.5.3",
"clsx": "^2.1.1", "clsx": "^2.1.1",
"prop-types": "^15.8.1", "prop-types": "^15.8.1",
"use-sync-external-store": "^1.5.0" "use-sync-external-store": "^1.5.0"
@ -1690,14 +1689,14 @@
} }
}, },
"node_modules/@mui/x-date-pickers": { "node_modules/@mui/x-date-pickers": {
"version": "8.8.0", "version": "8.5.3",
"resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-8.8.0.tgz", "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-8.5.3.tgz",
"integrity": "sha512-Rlk1wgkNHjMf22Ejv6jB+XueFYZmiwMYlJz3oRw9d8HhnshtMVjJbSNOI9yZ2wtqyEr0CGfryCnryywHpmfzeA==", "integrity": "sha512-rToJOgIfVN/mG8QPX5RSPcP7QdnNN4yk+37fBztVUnmR7mhiWdUNSHlazGpnRGRqDdr4lXRkJbTjtJLviWkhKg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.27.6", "@babel/runtime": "^7.27.6",
"@mui/utils": "^7.2.0", "@mui/utils": "^7.1.1",
"@mui/x-internals": "8.8.0", "@mui/x-internals": "8.5.3",
"@types/react-transition-group": "^4.4.12", "@types/react-transition-group": "^4.4.12",
"clsx": "^2.1.1", "clsx": "^2.1.1",
"prop-types": "^15.8.1", "prop-types": "^15.8.1",
@ -1755,23 +1754,14 @@
} }
} }
}, },
"node_modules/@mui/x-internal-gestures": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@mui/x-internal-gestures/-/x-internal-gestures-0.2.1.tgz",
"integrity": "sha512-7Po6F4/RdUrFyRwiwvh5ZNeY/bi8wavTCUe+stKAyMliKpgcYiEtH7ywTgroOEq0o56fIpyPzwC4+bbGwYFnvA==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.27.6"
}
},
"node_modules/@mui/x-internals": { "node_modules/@mui/x-internals": {
"version": "8.8.0", "version": "8.5.3",
"resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-8.8.0.tgz", "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-8.5.3.tgz",
"integrity": "sha512-qTRK5oINkAjZ7sIHpSnESLNq1xtQUmmfmGscYUSEP0uHoYh6pKkNWH9+7yzggRHuTv+4011VBwN9s+efrk+xZg==", "integrity": "sha512-ImCg4E3DT3XoDIZO0pNCbB7iw14N+YCFY3J1V28POwCD7P2f3HSIz4jwzM006oYxI6bqeE6LMfpdPRDW6s6dQw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.27.6", "@babel/runtime": "^7.27.6",
"@mui/utils": "^7.2.0", "@mui/utils": "^7.1.1",
"reselect": "^5.1.1" "reselect": "^5.1.1"
}, },
"engines": { "engines": {
@ -2244,9 +2234,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/prop-types": { "node_modules/@types/prop-types": {
"version": "15.7.15", "version": "15.7.14",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
"integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/react": { "node_modules/@types/react": {
@ -2343,14 +2333,14 @@
} }
}, },
"node_modules/@typescript-eslint/project-service": { "node_modules/@typescript-eslint/project-service": {
"version": "8.36.0", "version": "8.35.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.36.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.0.tgz",
"integrity": "sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==", "integrity": "sha512-41xatqRwWZuhUMF/aZm2fcUsOFKNcG28xqRSS6ZVr9BVJtGExosLAm5A1OxTjRMagx8nJqva+P5zNIGt8RIgbQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/tsconfig-utils": "^8.36.0", "@typescript-eslint/tsconfig-utils": "^8.35.0",
"@typescript-eslint/types": "^8.36.0", "@typescript-eslint/types": "^8.35.0",
"debug": "^4.3.4" "debug": "^4.3.4"
}, },
"engines": { "engines": {
@ -2365,9 +2355,9 @@
} }
}, },
"node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": {
"version": "8.36.0", "version": "8.35.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.36.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.0.tgz",
"integrity": "sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==", "integrity": "sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -2397,9 +2387,9 @@
} }
}, },
"node_modules/@typescript-eslint/tsconfig-utils": { "node_modules/@typescript-eslint/tsconfig-utils": {
"version": "8.36.0", "version": "8.35.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.36.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.0.tgz",
"integrity": "sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==", "integrity": "sha512-04k/7247kZzFraweuEirmvUj+W3bJLI9fX6fbo1Qm2YykuBvEhRTPl8tcxlYO8kZZW+HIXfkZNoasVb8EV4jpA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -3497,28 +3487,29 @@
} }
}, },
"node_modules/eslint-plugin-react-x": { "node_modules/eslint-plugin-react-x": {
"version": "1.52.3", "version": "1.52.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-react-x/-/eslint-plugin-react-x-1.52.3.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-react-x/-/eslint-plugin-react-x-1.52.2.tgz",
"integrity": "sha512-Sds4CXHtdgaCdzoypcY3DSshS0JtK2Eh+QbpUAPUqs0UWQ3qtQKxY0nntTSYeF+GXDfOdAYDkl/8+VFpHQwIKg==", "integrity": "sha512-Pxpf3YxCUcNgzJVT6blAJ2KvLX32pUxtXndaCZoTdiytFw/H9OZKq4Qczxx/Lpo9Ri5rm4FbIZL3BfL/HGmzBw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@eslint-react/ast": "1.52.3", "@eslint-react/ast": "1.52.2",
"@eslint-react/core": "1.52.3", "@eslint-react/core": "1.52.2",
"@eslint-react/eff": "1.52.3", "@eslint-react/eff": "1.52.2",
"@eslint-react/kit": "1.52.3", "@eslint-react/kit": "1.52.2",
"@eslint-react/shared": "1.52.3", "@eslint-react/shared": "1.52.2",
"@eslint-react/var": "1.52.3", "@eslint-react/var": "1.52.2",
"@typescript-eslint/scope-manager": "^8.36.0", "@typescript-eslint/scope-manager": "^8.34.0",
"@typescript-eslint/type-utils": "^8.36.0", "@typescript-eslint/type-utils": "^8.34.0",
"@typescript-eslint/types": "^8.36.0", "@typescript-eslint/types": "^8.34.0",
"@typescript-eslint/utils": "^8.36.0", "@typescript-eslint/utils": "^8.34.0",
"compare-versions": "^6.1.1", "compare-versions": "^6.1.1",
"is-immutable-type": "^5.0.1", "is-immutable-type": "^5.0.1",
"string-ts": "^2.2.1", "string-ts": "^2.2.1",
"ts-pattern": "^5.7.1" "ts-pattern": "^5.7.1"
}, },
"engines": { "engines": {
"bun": ">=1.0.15",
"node": ">=18.18.0" "node": ">=18.18.0"
}, },
"peerDependencies": { "peerDependencies": {
@ -3539,117 +3530,123 @@
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/@eslint-react/ast": { "node_modules/eslint-plugin-react-x/node_modules/@eslint-react/ast": {
"version": "1.52.3", "version": "1.52.2",
"resolved": "https://registry.npmjs.org/@eslint-react/ast/-/ast-1.52.3.tgz", "resolved": "https://registry.npmjs.org/@eslint-react/ast/-/ast-1.52.2.tgz",
"integrity": "sha512-71afQeBz0t5FqxLPfOgfQy2703t4T4tM5ooF/swIfUljCQxrFvIYivzYU67wrwLSnmkSfFJKp99bUCz7L3IP4Q==", "integrity": "sha512-L0Tbbzx5l7JHgkQ1TqPWQuZ4+PsXDcgtt3056FOYqstUrDRG+5ylm7h3gEWu98I3FDdgLS8q9dOzz0PGgwZCTA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@eslint-react/eff": "1.52.3", "@eslint-react/eff": "1.52.2",
"@typescript-eslint/types": "^8.36.0", "@typescript-eslint/types": "^8.34.0",
"@typescript-eslint/typescript-estree": "^8.36.0", "@typescript-eslint/typescript-estree": "^8.34.0",
"@typescript-eslint/utils": "^8.36.0", "@typescript-eslint/utils": "^8.34.0",
"string-ts": "^2.2.1", "string-ts": "^2.2.1",
"ts-pattern": "^5.7.1" "ts-pattern": "^5.7.1"
}, },
"engines": { "engines": {
"bun": ">=1.0.15",
"node": ">=18.18.0" "node": ">=18.18.0"
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/@eslint-react/core": { "node_modules/eslint-plugin-react-x/node_modules/@eslint-react/core": {
"version": "1.52.3", "version": "1.52.2",
"resolved": "https://registry.npmjs.org/@eslint-react/core/-/core-1.52.3.tgz", "resolved": "https://registry.npmjs.org/@eslint-react/core/-/core-1.52.2.tgz",
"integrity": "sha512-N/fY3q1V0F81OzKGn0ZopmHY+OQHYQiS49MvpSWhNciL+TDxOo4CSt+wayMz5/9G/B/PwGB68eprjow0AaTYzA==", "integrity": "sha512-FpxKZJHlf3zXETNL+WQP/SoYuVQNheWm1iDgW68RyHygD8mzk9CnVLDgjMrfmh2n0eaOqnWCL/IC2YzD6VpYOQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@eslint-react/ast": "1.52.3", "@eslint-react/ast": "1.52.2",
"@eslint-react/eff": "1.52.3", "@eslint-react/eff": "1.52.2",
"@eslint-react/kit": "1.52.3", "@eslint-react/kit": "1.52.2",
"@eslint-react/shared": "1.52.3", "@eslint-react/shared": "1.52.2",
"@eslint-react/var": "1.52.3", "@eslint-react/var": "1.52.2",
"@typescript-eslint/scope-manager": "^8.36.0", "@typescript-eslint/scope-manager": "^8.34.0",
"@typescript-eslint/type-utils": "^8.36.0", "@typescript-eslint/type-utils": "^8.34.0",
"@typescript-eslint/types": "^8.36.0", "@typescript-eslint/types": "^8.34.0",
"@typescript-eslint/utils": "^8.36.0", "@typescript-eslint/utils": "^8.34.0",
"birecord": "^0.1.1", "birecord": "^0.1.1",
"ts-pattern": "^5.7.1" "ts-pattern": "^5.7.1"
}, },
"engines": { "engines": {
"bun": ">=1.0.15",
"node": ">=18.18.0" "node": ">=18.18.0"
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/@eslint-react/eff": { "node_modules/eslint-plugin-react-x/node_modules/@eslint-react/eff": {
"version": "1.52.3", "version": "1.52.2",
"resolved": "https://registry.npmjs.org/@eslint-react/eff/-/eff-1.52.3.tgz", "resolved": "https://registry.npmjs.org/@eslint-react/eff/-/eff-1.52.2.tgz",
"integrity": "sha512-CU07yUuHrrBbb8C82via3GrAXkSMbcpxd6f18f/jjEmMAXzKbN2yq1t0GfG7iwIyZexDZ7R3QBa9ksk6iwtDAA==", "integrity": "sha512-YBPE2J1+PfXrR9Ct+9rQsw8uRU06zHopI508cfj0usaIBf3hz18V2GoRTVhsjniP0QbvKQdHzyPmmS/B6uyMZQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"bun": ">=1.0.15",
"node": ">=18.18.0" "node": ">=18.18.0"
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/@eslint-react/kit": { "node_modules/eslint-plugin-react-x/node_modules/@eslint-react/kit": {
"version": "1.52.3", "version": "1.52.2",
"resolved": "https://registry.npmjs.org/@eslint-react/kit/-/kit-1.52.3.tgz", "resolved": "https://registry.npmjs.org/@eslint-react/kit/-/kit-1.52.2.tgz",
"integrity": "sha512-IOsfaRSih7VdL9ZDjuqc7kjOlHOQOaK6hkSENK64dUcvcl6YwHk8/JXfV/glHTp3JxXrPSazBrnZKNXk0DzjKg==", "integrity": "sha512-k0cSgFnPlDPI1xyRzHjEWIapLG0zCy7mx1HBLg5wuKf/zzSh3iNFId53xMebR05vM2k9YH63gsvTwRkGx/77Zw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@eslint-react/eff": "1.52.3", "@eslint-react/eff": "1.52.2",
"@typescript-eslint/utils": "^8.36.0", "@typescript-eslint/utils": "^8.34.0",
"ts-pattern": "^5.7.1", "ts-pattern": "^5.7.1",
"zod": "^4.0.5" "zod": "^3.25.63"
}, },
"engines": { "engines": {
"bun": ">=1.0.15",
"node": ">=18.18.0" "node": ">=18.18.0"
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/@eslint-react/shared": { "node_modules/eslint-plugin-react-x/node_modules/@eslint-react/shared": {
"version": "1.52.3", "version": "1.52.2",
"resolved": "https://registry.npmjs.org/@eslint-react/shared/-/shared-1.52.3.tgz", "resolved": "https://registry.npmjs.org/@eslint-react/shared/-/shared-1.52.2.tgz",
"integrity": "sha512-+0/2SOkNxLKBtYVLx/BCNo5xTn+dxkzP6C63gQ2ehNudMAt3zf2DouD62cHSSbl+eSAgc0zWYg8ssm5ksLN4xw==", "integrity": "sha512-YHysVcCfmBoxt2+6Ao4HdLPUYNSem70gy+0yzOQvlQFSsGhh+uifQ68SSa/2uJBWfNUm9xQlyDsr2raeO4BlgA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@eslint-react/eff": "1.52.3", "@eslint-react/eff": "1.52.2",
"@eslint-react/kit": "1.52.3", "@eslint-react/kit": "1.52.2",
"@typescript-eslint/utils": "^8.36.0", "@typescript-eslint/utils": "^8.34.0",
"ts-pattern": "^5.7.1", "ts-pattern": "^5.7.1",
"zod": "^4.0.5" "zod": "^3.25.63"
}, },
"engines": { "engines": {
"bun": ">=1.0.15",
"node": ">=18.18.0" "node": ">=18.18.0"
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/@eslint-react/var": { "node_modules/eslint-plugin-react-x/node_modules/@eslint-react/var": {
"version": "1.52.3", "version": "1.52.2",
"resolved": "https://registry.npmjs.org/@eslint-react/var/-/var-1.52.3.tgz", "resolved": "https://registry.npmjs.org/@eslint-react/var/-/var-1.52.2.tgz",
"integrity": "sha512-i2dfgoH93MHJNXqzS0vYIIpI2e6djIfzdnpMRHUyBYjTHFSPapE7RhcHFrAVPUrd85cUxIPW3pkTKAhkhUhYeA==", "integrity": "sha512-/7IYMPsmO0tIYqkqAVnkqB4eXeVBvgBL/a9hcGCO2eUSzslYzQHSzNPhIoPLD9HXng+0CWlT+KupOFIqP9a26A==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@eslint-react/ast": "1.52.3", "@eslint-react/ast": "1.52.2",
"@eslint-react/eff": "1.52.3", "@eslint-react/eff": "1.52.2",
"@typescript-eslint/scope-manager": "^8.36.0", "@typescript-eslint/scope-manager": "^8.34.0",
"@typescript-eslint/types": "^8.36.0", "@typescript-eslint/types": "^8.34.0",
"@typescript-eslint/utils": "^8.36.0", "@typescript-eslint/utils": "^8.34.0",
"string-ts": "^2.2.1", "string-ts": "^2.2.1",
"ts-pattern": "^5.7.1" "ts-pattern": "^5.7.1"
}, },
"engines": { "engines": {
"bun": ">=1.0.15",
"node": ">=18.18.0" "node": ">=18.18.0"
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/scope-manager": { "node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/scope-manager": {
"version": "8.36.0", "version": "8.35.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.36.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.0.tgz",
"integrity": "sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==", "integrity": "sha512-+AgL5+mcoLxl1vGjwNfiWq5fLDZM1TmTPYs2UkyHfFhgERxBbqHlNjRzhThJqz+ktBqTChRYY6zwbMwy0591AA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/types": "8.36.0", "@typescript-eslint/types": "8.35.0",
"@typescript-eslint/visitor-keys": "8.36.0" "@typescript-eslint/visitor-keys": "8.35.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0" "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@ -3660,14 +3657,14 @@
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/type-utils": { "node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/type-utils": {
"version": "8.36.0", "version": "8.35.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.36.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.35.0.tgz",
"integrity": "sha512-5aaGYG8cVDd6cxfk/ynpYzxBRZJk7w/ymto6uiyUFtdCozQIsQWh7M28/6r57Fwkbweng8qAzoMCPwSJfWlmsg==", "integrity": "sha512-ceNNttjfmSEoM9PW87bWLDEIaLAyR+E6BoYJQ5PfaDau37UGca9Nyq3lBk8Bw2ad0AKvYabz6wxc7DMTO2jnNA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/typescript-estree": "8.36.0", "@typescript-eslint/typescript-estree": "8.35.0",
"@typescript-eslint/utils": "8.36.0", "@typescript-eslint/utils": "8.35.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"ts-api-utils": "^2.1.0" "ts-api-utils": "^2.1.0"
}, },
@ -3684,9 +3681,9 @@
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/types": { "node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/types": {
"version": "8.36.0", "version": "8.35.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.36.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.0.tgz",
"integrity": "sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==", "integrity": "sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -3698,16 +3695,16 @@
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/typescript-estree": { "node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/typescript-estree": {
"version": "8.36.0", "version": "8.35.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.36.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.0.tgz",
"integrity": "sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==", "integrity": "sha512-F+BhnaBemgu1Qf8oHrxyw14wq6vbL8xwWKKMwTMwYIRmFFY/1n/9T/jpbobZL8vp7QyEUcC6xGrnAO4ua8Kp7w==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/project-service": "8.36.0", "@typescript-eslint/project-service": "8.35.0",
"@typescript-eslint/tsconfig-utils": "8.36.0", "@typescript-eslint/tsconfig-utils": "8.35.0",
"@typescript-eslint/types": "8.36.0", "@typescript-eslint/types": "8.35.0",
"@typescript-eslint/visitor-keys": "8.36.0", "@typescript-eslint/visitor-keys": "8.35.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"fast-glob": "^3.3.2", "fast-glob": "^3.3.2",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
@ -3727,16 +3724,16 @@
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/utils": { "node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/utils": {
"version": "8.36.0", "version": "8.35.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.36.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.0.tgz",
"integrity": "sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==", "integrity": "sha512-nqoMu7WWM7ki5tPgLVsmPM8CkqtoPUG6xXGeefM5t4x3XumOEKMoUZPdi+7F+/EotukN4R9OWdmDxN80fqoZeg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.7.0", "@eslint-community/eslint-utils": "^4.7.0",
"@typescript-eslint/scope-manager": "8.36.0", "@typescript-eslint/scope-manager": "8.35.0",
"@typescript-eslint/types": "8.36.0", "@typescript-eslint/types": "8.35.0",
"@typescript-eslint/typescript-estree": "8.36.0" "@typescript-eslint/typescript-estree": "8.35.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0" "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@ -3751,13 +3748,13 @@
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/visitor-keys": { "node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/visitor-keys": {
"version": "8.36.0", "version": "8.35.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.36.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.0.tgz",
"integrity": "sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==", "integrity": "sha512-zTh2+1Y8ZpmeQaQVIc/ZZxsx8UzgKJyNg1PTvjzC7WMhPSVS8bfDX34k1SrwOf016qd5RU3az2UxUNue3IfQ5g==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/types": "8.36.0", "@typescript-eslint/types": "8.35.0",
"eslint-visitor-keys": "^4.2.1" "eslint-visitor-keys": "^4.2.1"
}, },
"engines": { "engines": {
@ -3807,16 +3804,6 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/eslint-plugin-react-x/node_modules/zod": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.0.5.tgz",
"integrity": "sha512-/5UuuRPStvHXu7RS+gmvRf4NXrNxpSllGwDnCBcJZtQsKrviYXm54yDGV2KYNLT5kq0lHGcl7lqWJLgSaG+tgA==",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
},
"node_modules/eslint-scope": { "node_modules/eslint-scope": {
"version": "8.3.0", "version": "8.3.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz",
@ -5223,9 +5210,9 @@
} }
}, },
"node_modules/react-router": { "node_modules/react-router": {
"version": "7.6.3", "version": "7.6.2",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-7.6.3.tgz", "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.6.2.tgz",
"integrity": "sha512-zf45LZp5skDC6I3jDLXQUu0u26jtuP4lEGbc7BbdyxenBN1vJSTA18czM2D+h5qyMBuMrD+9uB+mU37HIoKGRA==", "integrity": "sha512-U7Nv3y+bMimgWjhlT5CRdzHPu2/KVmqPwKUCChW8en5P3znxUqwlYFlbmyj8Rgp1SF6zs5X4+77kBVknkg6a0w==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"cookie": "^1.0.1", "cookie": "^1.0.1",
@ -5245,12 +5232,12 @@
} }
}, },
"node_modules/react-router-dom": { "node_modules/react-router-dom": {
"version": "7.6.3", "version": "7.6.2",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.6.3.tgz", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.6.2.tgz",
"integrity": "sha512-DiWJm9qdUAmiJrVWaeJdu4TKu13+iB/8IEi0EW/XgaHCjW/vWGrwzup0GVvaMteuZjKnh5bEvJP/K0MDnzawHw==", "integrity": "sha512-Q8zb6VlTbdYKK5JJBLQEN06oTUa/RAbG/oQS1auK1I0TbJOXktqm+QENEVJU6QvWynlXPRBXI3fiOQcSEA78rA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"react-router": "7.6.3" "react-router": "7.6.2"
}, },
"engines": { "engines": {
"node": ">=20.0.0" "node": ">=20.0.0"

View File

@ -18,21 +18,21 @@
"@mdi/react": "^1.6.1", "@mdi/react": "^1.6.1",
"@mui/icons-material": "^7.1.2", "@mui/icons-material": "^7.1.2",
"@mui/material": "^7.1.2", "@mui/material": "^7.1.2",
"@mui/x-charts": "^8.8.0", "@mui/x-charts": "^8.5.3",
"@mui/x-data-grid": "^8.8.0", "@mui/x-data-grid": "^8.5.3",
"@mui/x-date-pickers": "^8.8.0", "@mui/x-date-pickers": "^8.5.3",
"date-and-time": "^3.6.0", "date-and-time": "^3.6.0",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"filesize": "^10.1.6", "filesize": "^10.1.6",
"qrcode.react": "^4.2.0", "qrcode.react": "^4.2.0",
"react": "^19.1.0", "react": "^19.1.0",
"react-dom": "^19.1.0", "react-dom": "^19.1.0",
"react-router": "^7.6.3", "react-router": "^7.6.2",
"react-router-dom": "^7.6.3", "react-router-dom": "^7.6.2",
"ts-pattern": "^5.7.1" "ts-pattern": "^5.7.1"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.31.0", "@eslint/js": "^9.29.0",
"@types/react": "^19.1.8", "@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6", "@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^4.6.0", "@vitejs/plugin-react": "^4.6.0",
@ -40,7 +40,7 @@
"eslint-plugin-react-dom": "^1.49.0", "eslint-plugin-react-dom": "^1.49.0",
"eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^00.4.20", "eslint-plugin-react-refresh": "^00.4.20",
"eslint-plugin-react-x": "^1.52.3", "eslint-plugin-react-x": "^1.52.2",
"globals": "^16.2.0", "globals": "^16.2.0",
"typescript": "~5.8.3", "typescript": "~5.8.3",
"typescript-eslint": "^8.32.1", "typescript-eslint": "^8.32.1",

View File

@ -2,11 +2,9 @@ import DeleteIcon from "@mui/icons-material/DeleteOutlined";
import DriveFileMoveOutlineIcon from "@mui/icons-material/DriveFileMoveOutline"; import DriveFileMoveOutlineIcon from "@mui/icons-material/DriveFileMoveOutline";
import LinkOffIcon from "@mui/icons-material/LinkOff"; import LinkOffIcon from "@mui/icons-material/LinkOff";
import MoreVertIcon from "@mui/icons-material/MoreVert"; import MoreVertIcon from "@mui/icons-material/MoreVert";
import ClearIcon from "@mui/icons-material/Clear";
import RefreshIcon from "@mui/icons-material/Refresh"; import RefreshIcon from "@mui/icons-material/Refresh";
import { import {
IconButton, IconButton,
InputAdornment,
ListItemIcon, ListItemIcon,
ListItemText, ListItemText,
TextField, TextField,
@ -394,19 +392,6 @@ function MovementsTable(p: {
setFilter(e.target.value); setFilter(e.target.value);
}} }}
style={{ padding: "0px", flex: 1 }} style={{ padding: "0px", flex: 1 }}
slotProps={{
input: {
endAdornment: filter.length > 0 && (
<InputAdornment position="end">
<Tooltip title="Clear current filter">
<IconButton size="small" onClick={() => { setFilter(""); }}>
<ClearIcon />
</IconButton>
</Tooltip>
</InputAdornment>
),
},
}}
/> />
<span style={{ flex: 1 }}></span> <span style={{ flex: 1 }}></span>
<Tooltip title="Refresh table"> <Tooltip title="Refresh table">