From 06a2734acb664cc4b7df8d90ee1863f7087f9227 Mon Sep 17 00:00:00 2001 From: burtonjong Date: Sat, 31 Jan 2026 15:44:08 -0700 Subject: [PATCH 1/6] feat: add react compiler cleanup packages --- package.json | 6 - packages/client/next.config.mjs | 1 + packages/client/package.json | 11 +- packages/server/package.json | 9 +- yarn.lock | 527 +++++++++++++++++--------------- 5 files changed, 289 insertions(+), 265 deletions(-) diff --git a/package.json b/package.json index 993891f3..0e7970e8 100644 --- a/package.json +++ b/package.json @@ -29,12 +29,6 @@ "schema:sync": "lerna run schema:sync --scope=db", "schema:drop": "lerna run schema:drop --scope=db" }, - "dependencies": { - "@mantine/dates": "^8.0.1", - "@mantine/notifications": "^7.17.3", - "esbuild": "^0.23.0", - "uuid": "^11.0.5" - }, "devDependencies": { "@types/eslint": "^9.6.0", "@typescript-eslint/eslint-plugin": "^7.4.0", diff --git a/packages/client/next.config.mjs b/packages/client/next.config.mjs index 4f6c313f..2bd88ead 100644 --- a/packages/client/next.config.mjs +++ b/packages/client/next.config.mjs @@ -2,6 +2,7 @@ const nextConfig = { reactStrictMode: true, transpilePackages: ["@shared/heliostypes"], + reactCompiler: true, }; export default nextConfig; diff --git a/packages/client/package.json b/packages/client/package.json index 815ca80c..a7254af4 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -29,13 +29,13 @@ "framer-motion": "^11.0.6", "lodash": "^4.17.21", "mapbox-gl": "^3.5.1", - "next": "15.1.4", + "next": "16.1.6", "next-themes": "^0.4.6", "plotly.js-dist-min": "^2.35.3", "rc-slider": "^11.1.8", - "react": "19.0.0", + "react": "19.2.4", "react-chartjs-2": "^5.3.0", - "react-dom": "19.0.0", + "react-dom": "19.2.4", "react-icons": "^5.0.1", "react-indiana-drag-scroll": "^2.2.0", "react-map-gl": "^7.1.7", @@ -52,12 +52,13 @@ "@types/plotly.js": "^3.0.0", "@types/plotly.js-dist-min": "^2", "@types/prettier": "^3.0.0", - "@types/react": "19.0.7", - "@types/react-dom": "19.0.3", + "@types/react": "19.2.10", + "@types/react-dom": "19.2.3", "@types/react-plotly.js": "^2.6.3", "@typescript-eslint/eslint-plugin": "^7.16.0", "@typescript-eslint/parser": "^7.16.0", "autoprefixer": "^10.4.19", + "babel-plugin-react-compiler": "^1.0.0", "eslint": "8.57.0", "eslint-config-next": "15.1.4", "eslint-config-prettier": "^9.1.0", diff --git a/packages/server/package.json b/packages/server/package.json index d242428e..a9eb44f8 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -25,11 +25,9 @@ "log4js": "^6.9.1", "module-alias": "^2.2.3", "mqtt": "^5.8.0", - "rimraf": "^5.0.5", "socket.io": "^4.7.5", - "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", - "typescript": "^5.5.3" + "uuid": "^11.0.5" }, "devDependencies": { "@timescaledb/core": "^0.0.1", @@ -52,6 +50,9 @@ "eslint-plugin-typescript-sort-keys": "^3.2.0", "globals": "^15.8.0", "nodemon": "^3.1.0", - "prettier": "^3.3.3" + "prettier": "^3.3.3", + "rimraf": "^5.0.5", + "ts-node": "^10.9.2", + "typescript": "^5.5.3" } } diff --git a/yarn.lock b/yarn.lock index 20936431..2b544aba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5858,6 +5858,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.26.0": + version: 7.29.0 + resolution: "@babel/types@npm:7.29.0" + dependencies: + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.28.5" + checksum: 10c0/23cc3466e83bcbfab8b9bd0edaafdb5d4efdb88b82b3be6728bbade5ba2f0996f84f63b1c5f7a8c0d67efded28300898a5f930b171bb40b311bca2029c4e9b4f + languageName: node + linkType: hard + "@balena/dockerignore@npm:^1.0.2": version: 1.0.2 resolution: "@balena/dockerignore@npm:1.0.2" @@ -5951,7 +5961,7 @@ __metadata: languageName: node linkType: hard -"@emnapi/runtime@npm:^1.1.0, @emnapi/runtime@npm:^1.2.0, @emnapi/runtime@npm:^1.4.3": +"@emnapi/runtime@npm:^1.1.0, @emnapi/runtime@npm:^1.4.3": version: 1.7.1 resolution: "@emnapi/runtime@npm:1.7.1" dependencies: @@ -5960,6 +5970,15 @@ __metadata: languageName: node linkType: hard +"@emnapi/runtime@npm:^1.7.0": + version: 1.8.1 + resolution: "@emnapi/runtime@npm:1.8.1" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/f4929d75e37aafb24da77d2f58816761fe3f826aad2e37fa6d4421dac9060cbd5098eea1ac3c9ecc4526b89deb58153852fa432f87021dc57863f2ff726d713f + languageName: node + linkType: hard + "@emnapi/wasi-threads@npm:1.1.0": version: 1.1.0 resolution: "@emnapi/wasi-threads@npm:1.1.0" @@ -6925,11 +6944,18 @@ __metadata: languageName: node linkType: hard -"@img/sharp-darwin-arm64@npm:0.33.5": - version: 0.33.5 - resolution: "@img/sharp-darwin-arm64@npm:0.33.5" +"@img/colour@npm:^1.0.0": + version: 1.0.0 + resolution: "@img/colour@npm:1.0.0" + checksum: 10c0/02261719c1e0d7aa5a2d585981954f2ac126f0c432400aa1a01b925aa2c41417b7695da8544ee04fd29eba7ecea8eaf9b8bef06f19dc8faba78f94eeac40667d + languageName: node + linkType: hard + +"@img/sharp-darwin-arm64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-darwin-arm64@npm:0.34.5" dependencies: - "@img/sharp-libvips-darwin-arm64": "npm:1.0.4" + "@img/sharp-libvips-darwin-arm64": "npm:1.2.4" dependenciesMeta: "@img/sharp-libvips-darwin-arm64": optional: true @@ -6937,11 +6963,11 @@ __metadata: languageName: node linkType: hard -"@img/sharp-darwin-x64@npm:0.33.5": - version: 0.33.5 - resolution: "@img/sharp-darwin-x64@npm:0.33.5" +"@img/sharp-darwin-x64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-darwin-x64@npm:0.34.5" dependencies: - "@img/sharp-libvips-darwin-x64": "npm:1.0.4" + "@img/sharp-libvips-darwin-x64": "npm:1.2.4" dependenciesMeta: "@img/sharp-libvips-darwin-x64": optional: true @@ -6949,67 +6975,81 @@ __metadata: languageName: node linkType: hard -"@img/sharp-libvips-darwin-arm64@npm:1.0.4": - version: 1.0.4 - resolution: "@img/sharp-libvips-darwin-arm64@npm:1.0.4" +"@img/sharp-libvips-darwin-arm64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-darwin-arm64@npm:1.2.4" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@img/sharp-libvips-darwin-x64@npm:1.0.4": - version: 1.0.4 - resolution: "@img/sharp-libvips-darwin-x64@npm:1.0.4" +"@img/sharp-libvips-darwin-x64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-darwin-x64@npm:1.2.4" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@img/sharp-libvips-linux-arm64@npm:1.0.4": - version: 1.0.4 - resolution: "@img/sharp-libvips-linux-arm64@npm:1.0.4" +"@img/sharp-libvips-linux-arm64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linux-arm64@npm:1.2.4" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@img/sharp-libvips-linux-arm@npm:1.0.5": - version: 1.0.5 - resolution: "@img/sharp-libvips-linux-arm@npm:1.0.5" +"@img/sharp-libvips-linux-arm@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linux-arm@npm:1.2.4" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@img/sharp-libvips-linux-s390x@npm:1.0.4": - version: 1.0.4 - resolution: "@img/sharp-libvips-linux-s390x@npm:1.0.4" +"@img/sharp-libvips-linux-ppc64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linux-ppc64@npm:1.2.4" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-riscv64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linux-riscv64@npm:1.2.4" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-s390x@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linux-s390x@npm:1.2.4" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@img/sharp-libvips-linux-x64@npm:1.0.4": - version: 1.0.4 - resolution: "@img/sharp-libvips-linux-x64@npm:1.0.4" +"@img/sharp-libvips-linux-x64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linux-x64@npm:1.2.4" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@img/sharp-libvips-linuxmusl-arm64@npm:1.0.4": - version: 1.0.4 - resolution: "@img/sharp-libvips-linuxmusl-arm64@npm:1.0.4" +"@img/sharp-libvips-linuxmusl-arm64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linuxmusl-arm64@npm:1.2.4" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@img/sharp-libvips-linuxmusl-x64@npm:1.0.4": - version: 1.0.4 - resolution: "@img/sharp-libvips-linuxmusl-x64@npm:1.0.4" +"@img/sharp-libvips-linuxmusl-x64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linuxmusl-x64@npm:1.2.4" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@img/sharp-linux-arm64@npm:0.33.5": - version: 0.33.5 - resolution: "@img/sharp-linux-arm64@npm:0.33.5" +"@img/sharp-linux-arm64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linux-arm64@npm:0.34.5" dependencies: - "@img/sharp-libvips-linux-arm64": "npm:1.0.4" + "@img/sharp-libvips-linux-arm64": "npm:1.2.4" dependenciesMeta: "@img/sharp-libvips-linux-arm64": optional: true @@ -7017,11 +7057,11 @@ __metadata: languageName: node linkType: hard -"@img/sharp-linux-arm@npm:0.33.5": - version: 0.33.5 - resolution: "@img/sharp-linux-arm@npm:0.33.5" +"@img/sharp-linux-arm@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linux-arm@npm:0.34.5" dependencies: - "@img/sharp-libvips-linux-arm": "npm:1.0.5" + "@img/sharp-libvips-linux-arm": "npm:1.2.4" dependenciesMeta: "@img/sharp-libvips-linux-arm": optional: true @@ -7029,11 +7069,35 @@ __metadata: languageName: node linkType: hard -"@img/sharp-linux-s390x@npm:0.33.5": - version: 0.33.5 - resolution: "@img/sharp-linux-s390x@npm:0.33.5" +"@img/sharp-linux-ppc64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linux-ppc64@npm:0.34.5" + dependencies: + "@img/sharp-libvips-linux-ppc64": "npm:1.2.4" + dependenciesMeta: + "@img/sharp-libvips-linux-ppc64": + optional: true + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-riscv64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linux-riscv64@npm:0.34.5" + dependencies: + "@img/sharp-libvips-linux-riscv64": "npm:1.2.4" + dependenciesMeta: + "@img/sharp-libvips-linux-riscv64": + optional: true + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-s390x@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linux-s390x@npm:0.34.5" dependencies: - "@img/sharp-libvips-linux-s390x": "npm:1.0.4" + "@img/sharp-libvips-linux-s390x": "npm:1.2.4" dependenciesMeta: "@img/sharp-libvips-linux-s390x": optional: true @@ -7041,11 +7105,11 @@ __metadata: languageName: node linkType: hard -"@img/sharp-linux-x64@npm:0.33.5": - version: 0.33.5 - resolution: "@img/sharp-linux-x64@npm:0.33.5" +"@img/sharp-linux-x64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linux-x64@npm:0.34.5" dependencies: - "@img/sharp-libvips-linux-x64": "npm:1.0.4" + "@img/sharp-libvips-linux-x64": "npm:1.2.4" dependenciesMeta: "@img/sharp-libvips-linux-x64": optional: true @@ -7053,11 +7117,11 @@ __metadata: languageName: node linkType: hard -"@img/sharp-linuxmusl-arm64@npm:0.33.5": - version: 0.33.5 - resolution: "@img/sharp-linuxmusl-arm64@npm:0.33.5" +"@img/sharp-linuxmusl-arm64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linuxmusl-arm64@npm:0.34.5" dependencies: - "@img/sharp-libvips-linuxmusl-arm64": "npm:1.0.4" + "@img/sharp-libvips-linuxmusl-arm64": "npm:1.2.4" dependenciesMeta: "@img/sharp-libvips-linuxmusl-arm64": optional: true @@ -7065,11 +7129,11 @@ __metadata: languageName: node linkType: hard -"@img/sharp-linuxmusl-x64@npm:0.33.5": - version: 0.33.5 - resolution: "@img/sharp-linuxmusl-x64@npm:0.33.5" +"@img/sharp-linuxmusl-x64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linuxmusl-x64@npm:0.34.5" dependencies: - "@img/sharp-libvips-linuxmusl-x64": "npm:1.0.4" + "@img/sharp-libvips-linuxmusl-x64": "npm:1.2.4" dependenciesMeta: "@img/sharp-libvips-linuxmusl-x64": optional: true @@ -7077,25 +7141,32 @@ __metadata: languageName: node linkType: hard -"@img/sharp-wasm32@npm:0.33.5": - version: 0.33.5 - resolution: "@img/sharp-wasm32@npm:0.33.5" +"@img/sharp-wasm32@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-wasm32@npm:0.34.5" dependencies: - "@emnapi/runtime": "npm:^1.2.0" + "@emnapi/runtime": "npm:^1.7.0" conditions: cpu=wasm32 languageName: node linkType: hard -"@img/sharp-win32-ia32@npm:0.33.5": - version: 0.33.5 - resolution: "@img/sharp-win32-ia32@npm:0.33.5" +"@img/sharp-win32-arm64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-win32-arm64@npm:0.34.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@img/sharp-win32-ia32@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-win32-ia32@npm:0.34.5" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@img/sharp-win32-x64@npm:0.33.5": - version: 0.33.5 - resolution: "@img/sharp-win32-x64@npm:0.33.5" +"@img/sharp-win32-x64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-win32-x64@npm:0.34.5" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -7484,21 +7555,6 @@ __metadata: languageName: node linkType: hard -"@mantine/dates@npm:^8.0.1": - version: 8.3.9 - resolution: "@mantine/dates@npm:8.3.9" - dependencies: - clsx: "npm:^2.1.1" - peerDependencies: - "@mantine/core": 8.3.9 - "@mantine/hooks": 8.3.9 - dayjs: ">=1.0.0" - react: ^18.x || ^19.x - react-dom: ^18.x || ^19.x - checksum: 10c0/6ea59bac4de23566dedfa0a7508a89ab7340cb9c98a868967a0f9c2db1e20bd743b95f91d9b42563a9cbc490e3abfee62f5c5beca72d1bb554852729932e84a0 - languageName: node - linkType: hard - "@mantine/hooks@npm:^7.17.0": version: 7.17.8 resolution: "@mantine/hooks@npm:7.17.8" @@ -7798,10 +7854,10 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:15.1.4": - version: 15.1.4 - resolution: "@next/env@npm:15.1.4" - checksum: 10c0/88b8e81f97b49abdad40c7ebe5be93b0387d6c138a5c66cc1dce3a9db9d4eac8e258a1b617544ee23085111b5cdc6d5206389596e18c3370ff74cb54e60966f5 +"@next/env@npm:16.1.6": + version: 16.1.6 + resolution: "@next/env@npm:16.1.6" + checksum: 10c0/ed7023edb94b9b2e5da3f9c99d08b614da9757c1edd0ecec792fce4d336b4f0c64db1a84955e07cfbd848b9e61c4118fff28f4098cd7b0a7f97814a90565ebe6 languageName: node linkType: hard @@ -7814,58 +7870,58 @@ __metadata: languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:15.1.4": - version: 15.1.4 - resolution: "@next/swc-darwin-arm64@npm:15.1.4" +"@next/swc-darwin-arm64@npm:16.1.6": + version: 16.1.6 + resolution: "@next/swc-darwin-arm64@npm:16.1.6" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:15.1.4": - version: 15.1.4 - resolution: "@next/swc-darwin-x64@npm:15.1.4" +"@next/swc-darwin-x64@npm:16.1.6": + version: 16.1.6 + resolution: "@next/swc-darwin-x64@npm:16.1.6" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:15.1.4": - version: 15.1.4 - resolution: "@next/swc-linux-arm64-gnu@npm:15.1.4" +"@next/swc-linux-arm64-gnu@npm:16.1.6": + version: 16.1.6 + resolution: "@next/swc-linux-arm64-gnu@npm:16.1.6" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:15.1.4": - version: 15.1.4 - resolution: "@next/swc-linux-arm64-musl@npm:15.1.4" +"@next/swc-linux-arm64-musl@npm:16.1.6": + version: 16.1.6 + resolution: "@next/swc-linux-arm64-musl@npm:16.1.6" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:15.1.4": - version: 15.1.4 - resolution: "@next/swc-linux-x64-gnu@npm:15.1.4" +"@next/swc-linux-x64-gnu@npm:16.1.6": + version: 16.1.6 + resolution: "@next/swc-linux-x64-gnu@npm:16.1.6" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:15.1.4": - version: 15.1.4 - resolution: "@next/swc-linux-x64-musl@npm:15.1.4" +"@next/swc-linux-x64-musl@npm:16.1.6": + version: 16.1.6 + resolution: "@next/swc-linux-x64-musl@npm:16.1.6" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:15.1.4": - version: 15.1.4 - resolution: "@next/swc-win32-arm64-msvc@npm:15.1.4" +"@next/swc-win32-arm64-msvc@npm:16.1.6": + version: 16.1.6 + resolution: "@next/swc-win32-arm64-msvc@npm:16.1.6" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:15.1.4": - version: 15.1.4 - resolution: "@next/swc-win32-x64-msvc@npm:15.1.4" +"@next/swc-win32-x64-msvc@npm:16.1.6": + version: 16.1.6 + resolution: "@next/swc-win32-x64-msvc@npm:16.1.6" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -10636,13 +10692,6 @@ __metadata: languageName: node linkType: hard -"@swc/counter@npm:0.1.3": - version: 0.1.3 - resolution: "@swc/counter@npm:0.1.3" - checksum: 10c0/8424f60f6bf8694cfd2a9bca45845bce29f26105cda8cf19cdb9fd3e78dc6338699e4db77a89ae449260bafa1cc6bec307e81e7fb96dbf7dcfce0eea55151356 - languageName: node - linkType: hard - "@swc/helpers@npm:0.5.15": version: 0.5.15 resolution: "@swc/helpers@npm:0.5.15" @@ -11103,12 +11152,12 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:19.0.3": - version: 19.0.3 - resolution: "@types/react-dom@npm:19.0.3" +"@types/react-dom@npm:19.2.3": + version: 19.2.3 + resolution: "@types/react-dom@npm:19.2.3" peerDependencies: - "@types/react": ^19.0.0 - checksum: 10c0/3867427b333cbe8cbba496d7cc20ec9676d32c25ae44f4d1263a4129d42e57cf4adf0039ad263432f1215b88075c27d326e7eb4ed646128235d01a76e661d48f + "@types/react": ^19.2.0 + checksum: 10c0/b486ebe0f4e2fb35e2e108df1d8fc0927ca5d6002d5771e8a739de11239fe62d0e207c50886185253c99eb9dedfeeb956ea7429e5ba17f6693c7acb4c02f8cd1 languageName: node linkType: hard @@ -11149,12 +11198,12 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:19.0.7": - version: 19.0.7 - resolution: "@types/react@npm:19.0.7" +"@types/react@npm:19.2.10": + version: 19.2.10 + resolution: "@types/react@npm:19.2.10" dependencies: - csstype: "npm:^3.0.2" - checksum: 10c0/818e546fa03a2a65ac2652fc472891ac96684211e8967bc25e1da6a8a09e2301ad972b1b038d128f8b4cbbd7691f6f57fee274db568169e9b6b01556abbb5bee + csstype: "npm:^3.2.2" + checksum: 10c0/17b96203a79ad3fa3cee8f1f1f324b93f005bc125755e29ac149402807275feaf3f00a4e65b8405f633923ac993da5737fd9800d27ee49911f3ed51dc27478f9 languageName: node linkType: hard @@ -12678,6 +12727,15 @@ __metadata: languageName: node linkType: hard +"babel-plugin-react-compiler@npm:^1.0.0": + version: 1.0.0 + resolution: "babel-plugin-react-compiler@npm:1.0.0" + dependencies: + "@babel/types": "npm:^7.26.0" + checksum: 10c0/9406267ada8d7dbdfe8906b40ecadb816a5f4cee2922bee23f7729293b369624ee135b5a9b0f263851c263c9787522ac5d97016c9a2b82d1668300e42b18aff8 + languageName: node + linkType: hard + "babel-plugin-syntax-trailing-function-commas@npm:^7.0.0-beta.0": version: 7.0.0-beta.0 resolution: "babel-plugin-syntax-trailing-function-commas@npm:7.0.0-beta.0" @@ -12786,6 +12844,15 @@ __metadata: languageName: node linkType: hard +"baseline-browser-mapping@npm:^2.8.3": + version: 2.9.19 + resolution: "baseline-browser-mapping@npm:2.9.19" + bin: + baseline-browser-mapping: dist/cli.js + checksum: 10c0/569928db78bcd081953d7db79e4243a59a579a34b4ae1806b9b42d3b7f84e5bc40e6e82ae4fa06e7bef8291bf747b33b3f9ef5d3c6e1e420cb129d9295536129 + languageName: node + linkType: hard + "before-after-hook@npm:^2.2.0": version: 2.2.3 resolution: "before-after-hook@npm:2.2.3" @@ -13029,15 +13096,6 @@ __metadata: languageName: node linkType: hard -"busboy@npm:1.6.0": - version: 1.6.0 - resolution: "busboy@npm:1.6.0" - dependencies: - streamsearch: "npm:^1.1.0" - checksum: 10c0/fa7e836a2b82699b6e074393428b91ae579d4f9e21f5ac468e1b459a244341d722d2d22d10920cdd849743dbece6dca11d72de939fb75a7448825cf2babfba1f - languageName: node - linkType: hard - "byte-size@npm:8.1.1": version: 8.1.1 resolution: "byte-size@npm:8.1.1" @@ -13525,13 +13583,14 @@ __metadata: "@types/plotly.js": "npm:^3.0.0" "@types/plotly.js-dist-min": "npm:^2" "@types/prettier": "npm:^3.0.0" - "@types/react": "npm:19.0.7" - "@types/react-dom": "npm:19.0.3" + "@types/react": "npm:19.2.10" + "@types/react-dom": "npm:19.2.3" "@types/react-plotly.js": "npm:^2.6.3" "@types/three": "npm:^0.161.2" "@typescript-eslint/eslint-plugin": "npm:^7.16.0" "@typescript-eslint/parser": "npm:^7.16.0" autoprefixer: "npm:^10.4.19" + babel-plugin-react-compiler: "npm:^1.0.0" chart.js: "npm:^4.4.8" dayjs: "npm:^1.11.13" eslint: "npm:8.57.0" @@ -13544,7 +13603,7 @@ __metadata: gltf-pipeline: "npm:^4.1.0" lodash: "npm:^4.17.21" mapbox-gl: "npm:^3.5.1" - next: "npm:15.1.4" + next: "npm:16.1.6" next-themes: "npm:^0.4.6" plotly.js-dist-min: "npm:^2.35.3" postcss: "npm:^8.5.3" @@ -13553,9 +13612,9 @@ __metadata: prettier: "npm:^3.3.2" prettier-plugin-tailwindcss: "npm:^0.6.6" rc-slider: "npm:^11.1.8" - react: "npm:19.0.0" + react: "npm:19.2.4" react-chartjs-2: "npm:^5.3.0" - react-dom: "npm:19.0.0" + react-dom: "npm:19.2.4" react-icons: "npm:^5.0.1" react-indiana-drag-scroll: "npm:^2.2.0" react-map-gl: "npm:^7.1.7" @@ -13640,23 +13699,13 @@ __metadata: languageName: node linkType: hard -"color-name@npm:^1.0.0, color-name@npm:~1.1.4": +"color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 languageName: node linkType: hard -"color-string@npm:^1.9.0": - version: 1.9.1 - resolution: "color-string@npm:1.9.1" - dependencies: - color-name: "npm:^1.0.0" - simple-swizzle: "npm:^0.2.2" - checksum: 10c0/b0bfd74c03b1f837f543898b512f5ea353f71630ccdd0d66f83028d1f0924a7d4272deb278b9aef376cacf1289b522ac3fb175e99895283645a2dc3a33af2404 - languageName: node - linkType: hard - "color-support@npm:1.1.3": version: 1.1.3 resolution: "color-support@npm:1.1.3" @@ -13666,16 +13715,6 @@ __metadata: languageName: node linkType: hard -"color@npm:^4.2.3": - version: 4.2.3 - resolution: "color@npm:4.2.3" - dependencies: - color-convert: "npm:^2.0.1" - color-string: "npm:^1.9.0" - checksum: 10c0/7fbe7cfb811054c808349de19fb380252e5e34e61d7d168ec3353e9e9aacb1802674bddc657682e4e9730c2786592a4de6f8283e7e0d3870b829bb0b7b2f6118 - languageName: node - linkType: hard - "colorette@npm:^2.0.20": version: 2.0.20 resolution: "colorette@npm:2.0.20" @@ -14472,7 +14511,7 @@ __metadata: languageName: node linkType: hard -"detect-libc@npm:^2.0.3": +"detect-libc@npm:^2.1.2": version: 2.1.2 resolution: "detect-libc@npm:2.1.2" checksum: 10c0/acc675c29a5649fa1fb6e255f993b8ee829e510b6b56b0910666949c80c364738833417d0edb5f90e4e46be17228b0f2b66a010513984e18b15deeeac49369c4 @@ -17450,13 +17489,6 @@ __metadata: languageName: node linkType: hard -"is-arrayish@npm:^0.3.1": - version: 0.3.4 - resolution: "is-arrayish@npm:0.3.4" - checksum: 10c0/1fa672a2f0bedb74154440310f616c0b6e53a95cf0625522ae050f06626d1cabd1a3d8085c882dc45c61ad0e7df2529aff122810b3b4a552880bf170d6df94e0 - languageName: node - linkType: hard - "is-async-function@npm:^2.0.0": version: 2.1.1 resolution: "is-async-function@npm:2.1.1" @@ -19683,29 +19715,28 @@ __metadata: languageName: node linkType: hard -"next@npm:15.1.4": - version: 15.1.4 - resolution: "next@npm:15.1.4" - dependencies: - "@next/env": "npm:15.1.4" - "@next/swc-darwin-arm64": "npm:15.1.4" - "@next/swc-darwin-x64": "npm:15.1.4" - "@next/swc-linux-arm64-gnu": "npm:15.1.4" - "@next/swc-linux-arm64-musl": "npm:15.1.4" - "@next/swc-linux-x64-gnu": "npm:15.1.4" - "@next/swc-linux-x64-musl": "npm:15.1.4" - "@next/swc-win32-arm64-msvc": "npm:15.1.4" - "@next/swc-win32-x64-msvc": "npm:15.1.4" - "@swc/counter": "npm:0.1.3" +"next@npm:16.1.6": + version: 16.1.6 + resolution: "next@npm:16.1.6" + dependencies: + "@next/env": "npm:16.1.6" + "@next/swc-darwin-arm64": "npm:16.1.6" + "@next/swc-darwin-x64": "npm:16.1.6" + "@next/swc-linux-arm64-gnu": "npm:16.1.6" + "@next/swc-linux-arm64-musl": "npm:16.1.6" + "@next/swc-linux-x64-gnu": "npm:16.1.6" + "@next/swc-linux-x64-musl": "npm:16.1.6" + "@next/swc-win32-arm64-msvc": "npm:16.1.6" + "@next/swc-win32-x64-msvc": "npm:16.1.6" "@swc/helpers": "npm:0.5.15" - busboy: "npm:1.6.0" + baseline-browser-mapping: "npm:^2.8.3" caniuse-lite: "npm:^1.0.30001579" postcss: "npm:8.4.31" - sharp: "npm:^0.33.5" + sharp: "npm:^0.34.4" styled-jsx: "npm:5.1.6" peerDependencies: "@opentelemetry/api": ^1.1.0 - "@playwright/test": ^1.41.2 + "@playwright/test": ^1.51.1 babel-plugin-react-compiler: "*" react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 @@ -19740,7 +19771,7 @@ __metadata: optional: true bin: next: dist/bin/next - checksum: 10c0/55325f95e1a8eb13de4ff0f7d7945c130226139bc308950e4fb9002bacae1b3a012bf1488e259027e606cdc460826fa91408e07c79d53c6f69b516b23a4741c5 + checksum: 10c0/543766bf879bb5a5d454dc18cb302953270a92efba1d01dd028ea83c64b69573ce7d6e6c3759ecbaabec0a84131b0237263c24d1ccd7c8a97205e776dcd34e0b languageName: node linkType: hard @@ -21674,14 +21705,14 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:19.0.0": - version: 19.0.0 - resolution: "react-dom@npm:19.0.0" +"react-dom@npm:19.2.4": + version: 19.2.4 + resolution: "react-dom@npm:19.2.4" dependencies: - scheduler: "npm:^0.25.0" + scheduler: "npm:^0.27.0" peerDependencies: - react: ^19.0.0 - checksum: 10c0/a36ce7ab507b237ae2759c984cdaad4af4096d8199fb65b3815c16825e5cfeb7293da790a3fc2184b52bfba7ba3ff31c058c01947aff6fd1a3701632aabaa6a9 + react: ^19.2.4 + checksum: 10c0/f0c63f1794dedb154136d4d0f59af00b41907f4859571c155940296808f4b94bf9c0c20633db75b5b2112ec13d8d7dd4f9bf57362ed48782f317b11d05a44f35 languageName: node linkType: hard @@ -21862,10 +21893,10 @@ __metadata: languageName: node linkType: hard -"react@npm:19.0.0": - version: 19.0.0 - resolution: "react@npm:19.0.0" - checksum: 10c0/9cad8f103e8e3a16d15cb18a0d8115d8bd9f9e1ce3420310aea381eb42aa0a4f812cf047bb5441349257a05fba8a291515691e3cb51267279b2d2c3253f38471 +"react@npm:19.2.4": + version: 19.2.4 + resolution: "react@npm:19.2.4" + checksum: 10c0/cd2c9ff67a720799cc3b38a516009986f7fc4cb8d3e15716c6211cf098d1357ee3e348ab05ad0600042bbb0fd888530ba92e329198c92eafa0994f5213396596 languageName: node linkType: hard @@ -22299,13 +22330,10 @@ __metadata: version: 0.0.0-use.local resolution: "root@workspace:." dependencies: - "@mantine/dates": "npm:^8.0.1" - "@mantine/notifications": "npm:^7.17.3" "@types/eslint": "npm:^9.6.0" "@typescript-eslint/eslint-plugin": "npm:^7.4.0" "@typescript-eslint/parser": "npm:^7.4.0" clsx: "npm:^2.1.1" - esbuild: "npm:^0.23.0" eslint: "npm:8.57.0" eslint-config-prettier: "npm:^9.1.0" eslint-config-turbo: "npm:latest" @@ -22320,7 +22348,6 @@ __metadata: prettier: "npm:^3.3.3" prettier-plugin-tailwindcss: "npm:^0.6.6" typescript: "npm:^5.5.4" - uuid: "npm:^11.0.5" languageName: unknown linkType: soft @@ -22448,10 +22475,10 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.25.0": - version: 0.25.0 - resolution: "scheduler@npm:0.25.0" - checksum: 10c0/a4bb1da406b613ce72c1299db43759526058fdcc413999c3c3e0db8956df7633acf395cb20eb2303b6a65d658d66b6585d344460abaee8080b4aa931f10eaafe +"scheduler@npm:^0.27.0": + version: 0.27.0 + resolution: "scheduler@npm:0.27.0" + checksum: 10c0/4f03048cb05a3c8fddc45813052251eca00688f413a3cee236d984a161da28db28ba71bd11e7a3dd02f7af84ab28d39fb311431d3b3772fed557945beb00c452 languageName: node linkType: hard @@ -22473,7 +22500,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3, semver@npm:^7.7.1, semver@npm:^7.7.2": +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3, semver@npm:^7.7.1, semver@npm:^7.7.2, semver@npm:^7.7.3": version: 7.7.3 resolution: "semver@npm:7.7.3" bin: @@ -22578,6 +22605,7 @@ __metadata: ts-node: "npm:^10.9.2" tsconfig-paths: "npm:^4.2.0" typescript: "npm:^5.5.3" + uuid: "npm:^11.0.5" languageName: unknown linkType: soft @@ -22673,32 +22701,37 @@ __metadata: languageName: node linkType: hard -"sharp@npm:^0.33.5": - version: 0.33.5 - resolution: "sharp@npm:0.33.5" - dependencies: - "@img/sharp-darwin-arm64": "npm:0.33.5" - "@img/sharp-darwin-x64": "npm:0.33.5" - "@img/sharp-libvips-darwin-arm64": "npm:1.0.4" - "@img/sharp-libvips-darwin-x64": "npm:1.0.4" - "@img/sharp-libvips-linux-arm": "npm:1.0.5" - "@img/sharp-libvips-linux-arm64": "npm:1.0.4" - "@img/sharp-libvips-linux-s390x": "npm:1.0.4" - "@img/sharp-libvips-linux-x64": "npm:1.0.4" - "@img/sharp-libvips-linuxmusl-arm64": "npm:1.0.4" - "@img/sharp-libvips-linuxmusl-x64": "npm:1.0.4" - "@img/sharp-linux-arm": "npm:0.33.5" - "@img/sharp-linux-arm64": "npm:0.33.5" - "@img/sharp-linux-s390x": "npm:0.33.5" - "@img/sharp-linux-x64": "npm:0.33.5" - "@img/sharp-linuxmusl-arm64": "npm:0.33.5" - "@img/sharp-linuxmusl-x64": "npm:0.33.5" - "@img/sharp-wasm32": "npm:0.33.5" - "@img/sharp-win32-ia32": "npm:0.33.5" - "@img/sharp-win32-x64": "npm:0.33.5" - color: "npm:^4.2.3" - detect-libc: "npm:^2.0.3" - semver: "npm:^7.6.3" +"sharp@npm:^0.34.4": + version: 0.34.5 + resolution: "sharp@npm:0.34.5" + dependencies: + "@img/colour": "npm:^1.0.0" + "@img/sharp-darwin-arm64": "npm:0.34.5" + "@img/sharp-darwin-x64": "npm:0.34.5" + "@img/sharp-libvips-darwin-arm64": "npm:1.2.4" + "@img/sharp-libvips-darwin-x64": "npm:1.2.4" + "@img/sharp-libvips-linux-arm": "npm:1.2.4" + "@img/sharp-libvips-linux-arm64": "npm:1.2.4" + "@img/sharp-libvips-linux-ppc64": "npm:1.2.4" + "@img/sharp-libvips-linux-riscv64": "npm:1.2.4" + "@img/sharp-libvips-linux-s390x": "npm:1.2.4" + "@img/sharp-libvips-linux-x64": "npm:1.2.4" + "@img/sharp-libvips-linuxmusl-arm64": "npm:1.2.4" + "@img/sharp-libvips-linuxmusl-x64": "npm:1.2.4" + "@img/sharp-linux-arm": "npm:0.34.5" + "@img/sharp-linux-arm64": "npm:0.34.5" + "@img/sharp-linux-ppc64": "npm:0.34.5" + "@img/sharp-linux-riscv64": "npm:0.34.5" + "@img/sharp-linux-s390x": "npm:0.34.5" + "@img/sharp-linux-x64": "npm:0.34.5" + "@img/sharp-linuxmusl-arm64": "npm:0.34.5" + "@img/sharp-linuxmusl-x64": "npm:0.34.5" + "@img/sharp-wasm32": "npm:0.34.5" + "@img/sharp-win32-arm64": "npm:0.34.5" + "@img/sharp-win32-ia32": "npm:0.34.5" + "@img/sharp-win32-x64": "npm:0.34.5" + detect-libc: "npm:^2.1.2" + semver: "npm:^7.7.3" dependenciesMeta: "@img/sharp-darwin-arm64": optional: true @@ -22712,6 +22745,10 @@ __metadata: optional: true "@img/sharp-libvips-linux-arm64": optional: true + "@img/sharp-libvips-linux-ppc64": + optional: true + "@img/sharp-libvips-linux-riscv64": + optional: true "@img/sharp-libvips-linux-s390x": optional: true "@img/sharp-libvips-linux-x64": @@ -22724,6 +22761,10 @@ __metadata: optional: true "@img/sharp-linux-arm64": optional: true + "@img/sharp-linux-ppc64": + optional: true + "@img/sharp-linux-riscv64": + optional: true "@img/sharp-linux-s390x": optional: true "@img/sharp-linux-x64": @@ -22734,11 +22775,13 @@ __metadata: optional: true "@img/sharp-wasm32": optional: true + "@img/sharp-win32-arm64": + optional: true "@img/sharp-win32-ia32": optional: true "@img/sharp-win32-x64": optional: true - checksum: 10c0/6b81421ddfe6ee524d8d77e325c5e147fef22884e1c7b1656dfd89a88d7025894115da02d5f984261bf2e6daa16f98cadd1721c4ba408b4212b1d2a60f233484 + checksum: 10c0/fd79e29df0597a7d5704b8461c51f944ead91a5243691697be6e8243b966402beda53ddc6f0a53b96ea3cb8221f0b244aa588114d3ebf8734fb4aefd41ab802f languageName: node linkType: hard @@ -22841,15 +22884,6 @@ __metadata: languageName: node linkType: hard -"simple-swizzle@npm:^0.2.2": - version: 0.2.4 - resolution: "simple-swizzle@npm:0.2.4" - dependencies: - is-arrayish: "npm:^0.3.1" - checksum: 10c0/846c3fdd1325318d5c71295cfbb99bfc9edc4c8dffdda5e6e9efe30482bbcd32cf360fc2806f46ac43ff7d09bcfaff20337bb79f826f0e6a8e366efd3cdd7868 - languageName: node - linkType: hard - "simple-update-notifier@npm:^2.0.0": version: 2.0.0 resolution: "simple-update-notifier@npm:2.0.0" @@ -23228,13 +23262,6 @@ __metadata: languageName: node linkType: hard -"streamsearch@npm:^1.1.0": - version: 1.1.0 - resolution: "streamsearch@npm:1.1.0" - checksum: 10c0/fbd9aecc2621364384d157f7e59426f4bfd385e8b424b5aaa79c83a6f5a1c8fd2e4e3289e95de1eb3511cb96bb333d6281a9919fafce760e4edb35b2cd2facab - languageName: node - linkType: hard - "streamx@npm:^2.15.0": version: 2.23.0 resolution: "streamx@npm:2.23.0" From a07c73fb2c1baa7b738eeec7d3877179a16558c1 Mon Sep 17 00:00:00 2001 From: burtonjong Date: Sat, 31 Jan 2026 15:52:36 -0700 Subject: [PATCH 2/6] fix: fix no data in fetch --- packages/client/src/components/tabs/RaceTab.tsx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/client/src/components/tabs/RaceTab.tsx b/packages/client/src/components/tabs/RaceTab.tsx index fde6cc34..420ddb75 100644 --- a/packages/client/src/components/tabs/RaceTab.tsx +++ b/packages/client/src/components/tabs/RaceTab.tsx @@ -123,11 +123,15 @@ function RaceTab() { fetchLapData(); fetchDriverNames() .then((response) => { - const driverData = response.data.map((driver: IDriverData) => ({ - Rfid: driver.Rfid, - driver: driver.driver, - })); - setDriverData(driverData); + if (!response.data) { + setDriverData([]); + } else { + const driverData = response.data.map((driver: IDriverData) => ({ + Rfid: driver.Rfid, + driver: driver.driver, + })); + setDriverData(driverData); + } }) .catch((error) => { throw new Error(error); From 41340174b7ea3221d037721ee1dc67c3ad923acf Mon Sep 17 00:00:00 2001 From: burtonjong Date: Sat, 31 Jan 2026 15:59:16 -0700 Subject: [PATCH 3/6] fix: add rimraf back as dep --- packages/server/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/package.json b/packages/server/package.json index a9eb44f8..95ed7046 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -25,6 +25,7 @@ "log4js": "^6.9.1", "module-alias": "^2.2.3", "mqtt": "^5.8.0", + "rimraf": "^5.0.5", "socket.io": "^4.7.5", "tsconfig-paths": "^4.2.0", "uuid": "^11.0.5" @@ -51,7 +52,6 @@ "globals": "^15.8.0", "nodemon": "^3.1.0", "prettier": "^3.3.3", - "rimraf": "^5.0.5", "ts-node": "^10.9.2", "typescript": "^5.5.3" } From bdcfcfe07bd6e91d34c58b366d4f1c2eb6e35dc7 Mon Sep 17 00:00:00 2001 From: burtonjong Date: Sat, 7 Feb 2026 11:26:34 -0700 Subject: [PATCH 4/6] fix deps --- .eslintignore | 1 - .eslintrc.cjs | 40 - .prettierrc.cjs | 2 +- eslint.config.mjs | 97 ++ package.json | 21 +- packages/amplify/.eslintrc.cjs | 8 - packages/amplify/tsconfig.json | 5 +- packages/client/.eslintignore | 2 - packages/client/.eslintrc.cjs | 16 - packages/client/package.json | 11 +- .../client/src/components/tabs/RaceTab.tsx | 14 +- packages/client/tsconfig.json | 29 +- packages/server/.eslintrc.cjs | 14 - packages/server/package.json | 10 - packages/server/tsconfig.json | 2 +- packages/shared/.eslintrc.cjs | 7 - packages/shared/tsconfig.json | 2 +- test.ts | 5 - tsconfig.json | 2 +- yarn.lock | 1264 ++++------------- 20 files changed, 415 insertions(+), 1137 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.cjs create mode 100644 eslint.config.mjs delete mode 100644 packages/amplify/.eslintrc.cjs delete mode 100644 packages/client/.eslintignore delete mode 100644 packages/client/.eslintrc.cjs delete mode 100644 packages/server/.eslintrc.cjs delete mode 100644 packages/shared/.eslintrc.cjs delete mode 100644 test.ts diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index b6369400..00000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -packages/db/src/entities/*.ts \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 12a83aaa..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,40 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ -/** @type {import("eslint").Linter.Config} */ - -const path = require("path"); -const prettierConfig = require(path.join(__dirname, ".prettierrc.cjs")); - -/** @type {import("eslint").Linter.Config} */ -const config = { - extends: [ - "plugin:@typescript-eslint/recommended", - "plugin:prettier/recommended", - "prettier", - ], - parser: "@typescript-eslint/parser", - parserOptions: { - project: ["./tsconfig.json", "./packages/*/tsconfig.json"], - tsconfigRootDir: __dirname, - }, - plugins: [ - "@typescript-eslint", - "prettier", - "promise", - "sort-keys", - "sort-destructure-keys", - ], - rules: { - "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }], - eqeqeq: ["error", "smart"], - "no-console": "error", - "no-eval": "error", - "no-var": "error", - "prettier/prettier": ["error", prettierConfig], - "sort-destructure-keys/sort-destructure-keys": 2, - // "no-restricted-imports": ["error", { patterns: [".*"] }], - "sort-keys": "error", - "sort-keys/sort-keys-fix": "error", - }, -}; - -module.exports = config; diff --git a/.prettierrc.cjs b/.prettierrc.cjs index b177196b..d70e8019 100644 --- a/.prettierrc.cjs +++ b/.prettierrc.cjs @@ -12,7 +12,7 @@ const config = { // require.resolve("@trivago/prettier-plugin-sort-imports"), require.resolve("prettier-plugin-tailwindcss"), ], - tailwindConfig: "./packages/client/tailwind.config.ts", + tailwindConfig: "tailwind.config.ts", }; module.exports = config; diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..d50e21ed --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,97 @@ +import path from "path"; +import { fileURLToPath } from "url"; + +import prettierPlugin from "eslint-plugin-prettier"; +import promisePlugin from "eslint-plugin-promise"; +import reactPlugin from "eslint-plugin-react"; +import nextPlugin from "@next/eslint-plugin-next"; +import tseslint from "typescript-eslint"; +import sortKeys from "eslint-plugin-sort-keys"; +import sortDestructureKeys from "eslint-plugin-sort-destructure-keys"; + +import prettierConfig from "./.prettierrc.cjs"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +export default [ + // ======================== + // Global ignores + // ======================== + { + ignores: [ + "**/node_modules/**", + "packages/db/src/entities/*.ts", + "packages/client/tailwind.config.ts", + ], + }, + + // ======================== + // Base TypeScript rules (ALL packages) + // ======================== + { + files: ["**/*.ts", "**/*.tsx"], + languageOptions: { + parser: tseslint.parser, + parserOptions: { + project: ["./tsconfig.json", "./packages/*/tsconfig.json"], + tsconfigRootDir: __dirname, + }, + }, + plugins: { + "@typescript-eslint": tseslint.plugin, + prettier: prettierPlugin, + promise: promisePlugin, + "sort-keys": sortKeys, + "sort-destructure-keys": sortDestructureKeys, + }, + rules: { + ...tseslint.configs.recommendedTypeChecked.rules, + + "@typescript-eslint/no-unused-vars": [ + "warn", + { argsIgnorePattern: "^_" }, + ], + + eqeqeq: ["error", "smart"], + "no-console": "error", + "no-eval": "error", + "no-var": "error", + + "prettier/prettier": ["error", prettierConfig], + + "sort-destructure-keys/sort-destructure-keys": "error", + "sort-keys": "error", + "sort-keys/sort-keys-fix": "error", + }, + }, + + // ======================== + // CLIENT (Next.js + React) + // ======================== + { + files: ["packages/client/**/*.{ts,tsx}"], + plugins: { + react: reactPlugin, + "@next/next": nextPlugin, + }, + rules: { + ...reactPlugin.configs.recommended.rules, + ...nextPlugin.configs["core-web-vitals"].rules, + + "react/jsx-sort-props": "error", + "react/sort-comp": "off", + }, + }, + + // ======================== + // SERVER (Node only) + // ======================== + { + files: ["packages/server/**/*.ts"], + rules: { + // Server-specific overrides go here + // (currently same as base except no React rules) + }, + }, +]; diff --git a/package.json b/package.json index 0e7970e8..f9aed902 100644 --- a/package.json +++ b/package.json @@ -31,15 +31,11 @@ }, "devDependencies": { "@types/eslint": "^9.6.0", - "@typescript-eslint/eslint-plugin": "^7.4.0", - "@typescript-eslint/parser": "^7.4.0", - "clsx": "^2.1.1", - "eslint": "8.57.0", - "eslint-config-prettier": "^9.1.0", - "eslint-config-turbo": "latest", + "eslint": "9.0.0", + "eslint-config-prettier": "^10.1.8", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-promise": "^6.4.0", + "eslint-plugin-prettier": "^5.5.5", + "eslint-plugin-promise": "^7.2.1", "eslint-plugin-sort-destructure-keys": "^2.0.0", "eslint-plugin-sort-keys": "^2.3.5", "husky": "^8.0.3", @@ -47,7 +43,8 @@ "lint-staged": "^13.2.2", "prettier": "^3.3.3", "prettier-plugin-tailwindcss": "^0.6.6", - "typescript": "^5.5.4" + "typescript": "^5.5.4", + "typescript-eslint": "^8.54.0" }, "workspaces": [ "packages/*" @@ -65,5 +62,9 @@ "resolutions": { "nx": "20.6.4" }, - "packageManager": "yarn@4.6.0" + "packageManager": "yarn@4.6.0", + "dependencies": { + "@next/eslint-plugin-next": "^16.1.6", + "eslint-plugin-react": "^7.37.5" + } } diff --git a/packages/amplify/.eslintrc.cjs b/packages/amplify/.eslintrc.cjs deleted file mode 100644 index 2bf16fce..00000000 --- a/packages/amplify/.eslintrc.cjs +++ /dev/null @@ -1,8 +0,0 @@ -/** @type {import("eslint").Linter.Config} */ - -const config = { - extends: ["../../.eslintrc.cjs"], - root: true, -}; - -module.exports = config; diff --git a/packages/amplify/tsconfig.json b/packages/amplify/tsconfig.json index 3fac30d2..534c5a6a 100644 --- a/packages/amplify/tsconfig.json +++ b/packages/amplify/tsconfig.json @@ -1,7 +1,4 @@ { "extends": "../../tsconfig.json", - "include": [ - "amplify", - ".eslintrc.cjs" - ], + "include": ["amplify"] } diff --git a/packages/client/.eslintignore b/packages/client/.eslintignore deleted file mode 100644 index b2f6ee5f..00000000 --- a/packages/client/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -tailwind.config.ts \ No newline at end of file diff --git a/packages/client/.eslintrc.cjs b/packages/client/.eslintrc.cjs deleted file mode 100644 index 2f1d9824..00000000 --- a/packages/client/.eslintrc.cjs +++ /dev/null @@ -1,16 +0,0 @@ -/** @type {import("eslint").Linter.Config} */ - -// eslint-disable-next-line @typescript-eslint/no-var-requires -const prettierConfig = require("./prettier.config.cjs"); - -const config = { - extends: ["../../.eslintrc.cjs", "next"], - root: true, - rules: { - "prettier/prettier": ["error", prettierConfig], - "react/jsx-sort-props": "error", - "react/sort-comp": 0, - }, -}; - -module.exports = config; diff --git a/packages/client/package.json b/packages/client/package.json index a7254af4..b0f9ff60 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -6,7 +6,7 @@ "dev": "npx next dev --turbopack", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "eslint ." }, "dependencies": { "@emotion/react": "^11.11.3", @@ -45,7 +45,6 @@ }, "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.3.0", - "@types/eslint": "^8.56.10", "@types/google.maps": "^3.55.11", "@types/lodash": "^4", "@types/node": "^20.14.10", @@ -55,16 +54,8 @@ "@types/react": "19.2.10", "@types/react-dom": "19.2.3", "@types/react-plotly.js": "^2.6.3", - "@typescript-eslint/eslint-plugin": "^7.16.0", - "@typescript-eslint/parser": "^7.16.0", "autoprefixer": "^10.4.19", "babel-plugin-react-compiler": "^1.0.0", - "eslint": "8.57.0", - "eslint-config-next": "15.1.4", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-promise": "^6.4.0", - "eslint-plugin-tailwindcss": "^3.17.4", "gltf-pipeline": "^4.1.0", "postcss": "^8.5.3", "postcss-preset-mantine": "^1.17.0", diff --git a/packages/client/src/components/tabs/RaceTab.tsx b/packages/client/src/components/tabs/RaceTab.tsx index 420ddb75..7176b94f 100644 --- a/packages/client/src/components/tabs/RaceTab.tsx +++ b/packages/client/src/components/tabs/RaceTab.tsx @@ -123,15 +123,15 @@ function RaceTab() { fetchLapData(); fetchDriverNames() .then((response) => { - if (!response.data) { + if (!Array.isArray(response)) { setDriverData([]); - } else { - const driverData = response.data.map((driver: IDriverData) => ({ - Rfid: driver.Rfid, - driver: driver.driver, - })); - setDriverData(driverData); + return; } + const driverData = response.map((driver: IDriverData) => ({ + Rfid: driver.Rfid, + driver: driver.driver, + })); + setDriverData(driverData); }) .catch((error) => { throw new Error(error); diff --git a/packages/client/tsconfig.json b/packages/client/tsconfig.json index 884e4ea4..759fd2a6 100644 --- a/packages/client/tsconfig.json +++ b/packages/client/tsconfig.json @@ -4,29 +4,12 @@ "checkJs": true, "baseUrl": ".", "paths": { - "plotly.js-dist-min": [ - "node_modules/@types/plotly.js" - ], - "@/*": [ - "./src/*", - "./public/*", - ], - "@/server/*": [ - "../server/src/*" - ] + "plotly.js-dist-min": ["node_modules/@types/plotly.js"], + "@/*": ["./src/*", "./public/*"], + "@/server/*": ["../server/src/*"] }, "jsx": "preserve" }, - "include": [ - ".eslintrc.cjs", - "next-env.d.ts", - "**/*.ts", - "**/*.tsx", - "**/*.cjs", - "**/*.mjs" - ], - "exclude": [ - "node_modules", - "tailwind.config.ts" - ] -} \ No newline at end of file + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "**/*.cjs", "**/*.mjs"], + "exclude": ["node_modules", "tailwind.config.ts"] +} diff --git a/packages/server/.eslintrc.cjs b/packages/server/.eslintrc.cjs deleted file mode 100644 index b8c895f0..00000000 --- a/packages/server/.eslintrc.cjs +++ /dev/null @@ -1,14 +0,0 @@ -/** @type {import("eslint").Linter.Config} */ - -// eslint-disable-next-line @typescript-eslint/no-var-requires -const prettierConfig = require("./prettier.config.cjs"); - -const config = { - extends: ["../../.eslintrc.cjs"], - root: true, - rules: { - "prettier/prettier": ["error", prettierConfig], - }, -}; - -module.exports = config; diff --git a/packages/server/package.json b/packages/server/package.json index 95ed7046..199cb2b8 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -35,20 +35,10 @@ "@timescaledb/schemas": "^0.0.1", "@timescaledb/typeorm": "^0.0.1", "@trivago/prettier-plugin-sort-imports": "^4.3.0", - "@types/eslint": "^9.6.0", "@types/express": "^4.17.21", "@types/node": "^20.14.10", "@types/prettier": "^3.0.0", "@types/sqlite3": "^3.1.11", - "@typescript-eslint/eslint-plugin": "^7.4.0", - "@typescript-eslint/parser": "^7.4.0", - "eslint": "8.57.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-promise": "^7.1.0", - "eslint-plugin-sort-destructure-keys": "^2.0.0", - "eslint-plugin-sort-keys": "^2.3.5", - "eslint-plugin-typescript-sort-keys": "^3.2.0", "globals": "^15.8.0", "nodemon": "^3.1.0", "prettier": "^3.3.3", diff --git a/packages/server/tsconfig.json b/packages/server/tsconfig.json index 44aacf94..3c47a79d 100644 --- a/packages/server/tsconfig.json +++ b/packages/server/tsconfig.json @@ -21,6 +21,6 @@ "jsx": "react-jsx", "resolveJsonModule": true }, - "include": [".eslintrc.cjs", "src/**/*", "**/*.cjs", "**/*.mjs"], + "include": ["src/**/*", "**/*.cjs", "**/*.mjs"], "exclude": ["dist", "../client"] } diff --git a/packages/shared/.eslintrc.cjs b/packages/shared/.eslintrc.cjs deleted file mode 100644 index 74e5fd23..00000000 --- a/packages/shared/.eslintrc.cjs +++ /dev/null @@ -1,7 +0,0 @@ -/** @type {import("eslint").Linter.Config} */ -const config = { - extends: ["../../.eslintrc.cjs"], - root: true, -}; - -module.exports = config; diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json index c73eb1b2..be41f8f5 100644 --- a/packages/shared/tsconfig.json +++ b/packages/shared/tsconfig.json @@ -6,5 +6,5 @@ } }, "extends": "../../tsconfig.json", - "include": ["src", "index.ts", ".eslintrc.cjs"] + "include": ["src", "index.ts"] } diff --git a/test.ts b/test.ts deleted file mode 100644 index b4b716ce..00000000 --- a/test.ts +++ /dev/null @@ -1,5 +0,0 @@ -const test = () => { - (e) => { - console.log("Hello, world!"); - }; -}; diff --git a/tsconfig.json b/tsconfig.json index 0d16885d..7aabffcc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,5 +16,5 @@ "incremental": true, "noUncheckedIndexedAccess": true }, - "include": [".eslintrc.cjs"] + "include": ["eslint.config.mjs"] } diff --git a/yarn.lock b/yarn.lock index 2b544aba..c76470ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5951,7 +5951,7 @@ __metadata: languageName: node linkType: hard -"@emnapi/core@npm:^1.1.0, @emnapi/core@npm:^1.4.3": +"@emnapi/core@npm:^1.1.0": version: 1.7.1 resolution: "@emnapi/core@npm:1.7.1" dependencies: @@ -5961,7 +5961,7 @@ __metadata: languageName: node linkType: hard -"@emnapi/runtime@npm:^1.1.0, @emnapi/runtime@npm:^1.4.3": +"@emnapi/runtime@npm:^1.1.0": version: 1.7.1 resolution: "@emnapi/runtime@npm:1.7.1" dependencies: @@ -6484,7 +6484,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0, @eslint-community/eslint-utils@npm:^4.7.0": +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.9.0 resolution: "@eslint-community/eslint-utils@npm:4.9.0" dependencies: @@ -6495,34 +6495,45 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/eslint-utils@npm:^4.9.1": + version: 4.9.1 + resolution: "@eslint-community/eslint-utils@npm:4.9.1" + dependencies: + eslint-visitor-keys: "npm:^3.4.3" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: 10c0/dc4ab5e3e364ef27e33666b11f4b86e1a6c1d7cbf16f0c6ff87b1619b3562335e9201a3d6ce806221887ff780ec9d828962a290bb910759fd40a674686503f02 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.12.2, @eslint-community/regexpp@npm:^4.6.1": version: 4.12.2 resolution: "@eslint-community/regexpp@npm:4.12.2" checksum: 10c0/fddcbc66851b308478d04e302a4d771d6917a0b3740dc351513c0da9ca2eab8a1adf99f5e0aa7ab8b13fa0df005c81adeee7e63a92f3effd7d367a163b721c2d languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" +"@eslint/eslintrc@npm:^3.0.2": + version: 3.3.3 + resolution: "@eslint/eslintrc@npm:3.3.3" dependencies: ajv: "npm:^6.12.4" debug: "npm:^4.3.2" - espree: "npm:^9.6.0" - globals: "npm:^13.19.0" + espree: "npm:^10.0.1" + globals: "npm:^14.0.0" ignore: "npm:^5.2.0" import-fresh: "npm:^3.2.1" - js-yaml: "npm:^4.1.0" + js-yaml: "npm:^4.1.1" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: 10c0/32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573 + checksum: 10c0/532c7acc7ddd042724c28b1f020bd7bf148fcd4653bb44c8314168b5f772508c842ce4ee070299cac51c5c5757d2124bdcfcef5551c8c58ff9986e3e17f2260d languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 10c0/9a518bb8625ba3350613903a6d8c622352ab0c6557a59fe6ff6178bf882bf57123f9d92aa826ee8ac3ee74b9c6203fe630e9ee00efb03d753962dcf65ee4bd94 +"@eslint/js@npm:9.0.0": + version: 9.0.0 + resolution: "@eslint/js@npm:9.0.0" + checksum: 10c0/ec3242a60a2525d2785d96d1e95b8060235f47f3b953aa81626968591ef8c1eb4f7f8b3647db2c97fdfa524eace949a5695be50521f64b8dcc4ed3b493ee409e languageName: node linkType: hard @@ -6912,14 +6923,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" +"@humanwhocodes/config-array@npm:^0.12.3": + version: 0.12.3 + resolution: "@humanwhocodes/config-array@npm:0.12.3" dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.2" + "@humanwhocodes/object-schema": "npm:^2.0.3" debug: "npm:^4.3.1" minimatch: "npm:^3.0.5" - checksum: 10c0/66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541 + checksum: 10c0/7a97f1414c63f353557ff8ad2987774cbcd3ed87525909cc845b629518dd74dc92cacf8ac8dc4161549a87441f8c64802ac530ce879ddcbf2551a53ba73d03d1 languageName: node linkType: hard @@ -6930,7 +6941,7 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.2": +"@humanwhocodes/object-schema@npm:^2.0.3": version: 2.0.3 resolution: "@humanwhocodes/object-schema@npm:2.0.3" checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c @@ -7843,17 +7854,6 @@ __metadata: languageName: node linkType: hard -"@napi-rs/wasm-runtime@npm:^0.2.11": - version: 0.2.12 - resolution: "@napi-rs/wasm-runtime@npm:0.2.12" - dependencies: - "@emnapi/core": "npm:^1.4.3" - "@emnapi/runtime": "npm:^1.4.3" - "@tybys/wasm-util": "npm:^0.10.0" - checksum: 10c0/6d07922c0613aab30c6a497f4df297ca7c54e5b480e00035e0209b872d5c6aab7162fc49477267556109c2c7ed1eb9c65a174e27e9b87568106a87b0a6e3ca7d - languageName: node - linkType: hard - "@next/env@npm:16.1.6": version: 16.1.6 resolution: "@next/env@npm:16.1.6" @@ -7861,12 +7861,12 @@ __metadata: languageName: node linkType: hard -"@next/eslint-plugin-next@npm:15.1.4": - version: 15.1.4 - resolution: "@next/eslint-plugin-next@npm:15.1.4" +"@next/eslint-plugin-next@npm:^16.1.6": + version: 16.1.6 + resolution: "@next/eslint-plugin-next@npm:16.1.6" dependencies: fast-glob: "npm:3.3.1" - checksum: 10c0/6b5356275027e7b597914aa410805dab6b988c81c7ec0855e829e967d0064b9512828efc5d3b8826b798b30f1494618c82c5067c36d6d7837071ed670d690eab + checksum: 10c0/1498ded3421326738411eb11e794a5ef6aa01daeff0d89a12d05f360984527ccce2cc9588cc11477ee0e4b09a7570a640e7b6ff79ee3eb49c8cf0fc6b105a24b languageName: node linkType: hard @@ -7953,13 +7953,6 @@ __metadata: languageName: node linkType: hard -"@nolyfill/is-core-module@npm:1.0.39": - version: 1.0.39 - resolution: "@nolyfill/is-core-module@npm:1.0.39" - checksum: 10c0/34ab85fdc2e0250879518841f74a30c276bca4f6c3e13526d2d1fe515e1adf6d46c25fcd5989d22ea056d76f7c39210945180b4859fc83b050e2da411aa86289 - languageName: node - linkType: hard - "@npmcli/agent@npm:^2.0.0": version: 2.2.2 resolution: "@npmcli/agent@npm:2.2.2" @@ -9008,13 +9001,6 @@ __metadata: languageName: node linkType: hard -"@rushstack/eslint-patch@npm:^1.10.3": - version: 1.15.0 - resolution: "@rushstack/eslint-patch@npm:1.15.0" - checksum: 10c0/b2aeae0c6228981c40eff7a3cf9fc1c4342f8fc7a0102d8b2b3d3f66137461b1cd2e3c22d9aa6bcde43f227c5e4e698be33ac145d356797774f212da496c0e9c - languageName: node - linkType: hard - "@sec-ant/readable-stream@npm:^0.4.1": version: 0.4.1 resolution: "@sec-ant/readable-stream@npm:0.4.1" @@ -10841,15 +10827,6 @@ __metadata: languageName: node linkType: hard -"@tybys/wasm-util@npm:^0.10.0": - version: 0.10.1 - resolution: "@tybys/wasm-util@npm:0.10.1" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/b255094f293794c6d2289300c5fbcafbb5532a3aed3a5ffd2f8dc1828e639b88d75f6a376dd8f94347a44813fd7a7149d8463477a9a49525c8b2dcaa38c2d1e8 - languageName: node - linkType: hard - "@tybys/wasm-util@npm:^0.9.0": version: 0.9.0 resolution: "@tybys/wasm-util@npm:0.9.0" @@ -10901,16 +10878,6 @@ __metadata: languageName: node linkType: hard -"@types/eslint@npm:^8.56.10": - version: 8.56.12 - resolution: "@types/eslint@npm:8.56.12" - dependencies: - "@types/estree": "npm:*" - "@types/json-schema": "npm:*" - checksum: 10c0/e4ca426abe9d55f82b69a3250bec78b6d340ad1e567f91c97ecc59d3b2d6a1d8494955ac62ad0ea14b97519db580611c02be8277cbea370bdfb0f96aa2910504 - languageName: node - linkType: hard - "@types/eslint@npm:^9.6.0": version: 9.6.1 resolution: "@types/eslint@npm:9.6.1" @@ -10982,7 +10949,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db @@ -11216,13 +11183,6 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.3.12": - version: 7.7.1 - resolution: "@types/semver@npm:7.7.1" - checksum: 10c0/c938aef3bf79a73f0f3f6037c16e2e759ff40c54122ddf0b2583703393d8d3127130823facb880e694caa324eb6845628186aac1997ee8b31dc2d18fafe26268 - languageName: node - linkType: hard - "@types/send@npm:*": version: 1.2.1 resolution: "@types/send@npm:1.2.1" @@ -11342,331 +11302,138 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": - version: 8.48.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.48.0" +"@typescript-eslint/eslint-plugin@npm:8.54.0": + version: 8.54.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.54.0" dependencies: - "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.48.0" - "@typescript-eslint/type-utils": "npm:8.48.0" - "@typescript-eslint/utils": "npm:8.48.0" - "@typescript-eslint/visitor-keys": "npm:8.48.0" - graphemer: "npm:^1.4.0" - ignore: "npm:^7.0.0" + "@eslint-community/regexpp": "npm:^4.12.2" + "@typescript-eslint/scope-manager": "npm:8.54.0" + "@typescript-eslint/type-utils": "npm:8.54.0" + "@typescript-eslint/utils": "npm:8.54.0" + "@typescript-eslint/visitor-keys": "npm:8.54.0" + ignore: "npm:^7.0.5" natural-compare: "npm:^1.4.0" - ts-api-utils: "npm:^2.1.0" + ts-api-utils: "npm:^2.4.0" peerDependencies: - "@typescript-eslint/parser": ^8.48.0 + "@typescript-eslint/parser": ^8.54.0 eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/5f4f9ac3ace3f615bac428859026b70fb7fa236666cfe8856fed3add7e4ba73c7113264c2df7a9d68247b679dfcc21b0414488bda7b9b3de1c209b1807ed7842 - languageName: node - linkType: hard - -"@typescript-eslint/eslint-plugin@npm:^7.16.0, @typescript-eslint/eslint-plugin@npm:^7.4.0": - version: 7.18.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" - dependencies: - "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.18.0" - "@typescript-eslint/type-utils": "npm:7.18.0" - "@typescript-eslint/utils": "npm:7.18.0" - "@typescript-eslint/visitor-keys": "npm:7.18.0" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.3.1" - natural-compare: "npm:^1.4.0" - ts-api-utils: "npm:^1.3.0" - peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/2b37948fa1b0dab77138909dabef242a4d49ab93e4019d4ef930626f0a7d96b03e696cd027fa0087881c20e73be7be77c942606b4a76fa599e6b37f6985304c3 + checksum: 10c0/e533c8285880b883e02a833f378597c2776e6b0c20a5935440e2a02c1c42f40069a8badcf6d581bb4ec35a6856a806c4b66674c1c15c33cd64cc6b9c0cdd1dad languageName: node linkType: hard -"@typescript-eslint/experimental-utils@npm:^5.0.0": - version: 5.62.0 - resolution: "@typescript-eslint/experimental-utils@npm:5.62.0" +"@typescript-eslint/parser@npm:8.54.0": + version: 8.54.0 + resolution: "@typescript-eslint/parser@npm:8.54.0" dependencies: - "@typescript-eslint/utils": "npm:5.62.0" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10c0/f7037977e00849cd8c03677a88b0659a4f0e0b1e0151aebb47c49c92b8e57408578142df598eac08b364623d926343c724f42494f87662e437b1c89f0b2e815b - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": - version: 8.48.0 - resolution: "@typescript-eslint/parser@npm:8.48.0" - dependencies: - "@typescript-eslint/scope-manager": "npm:8.48.0" - "@typescript-eslint/types": "npm:8.48.0" - "@typescript-eslint/typescript-estree": "npm:8.48.0" - "@typescript-eslint/visitor-keys": "npm:8.48.0" - debug: "npm:^4.3.4" + "@typescript-eslint/scope-manager": "npm:8.54.0" + "@typescript-eslint/types": "npm:8.54.0" + "@typescript-eslint/typescript-estree": "npm:8.54.0" + "@typescript-eslint/visitor-keys": "npm:8.54.0" + debug: "npm:^4.4.3" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/180753e1dc55cd5174a236b738d3b0dd6dd6c131797cd417b3b3b8fac344168f3d21bd49eae6c0a075be29ed69b7bc74d97cadd917f1f4d4c113c29e76c1f9cd - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:^7.16.0, @typescript-eslint/parser@npm:^7.4.0": - version: 7.18.0 - resolution: "@typescript-eslint/parser@npm:7.18.0" - dependencies: - "@typescript-eslint/scope-manager": "npm:7.18.0" - "@typescript-eslint/types": "npm:7.18.0" - "@typescript-eslint/typescript-estree": "npm:7.18.0" - "@typescript-eslint/visitor-keys": "npm:7.18.0" - debug: "npm:^4.3.4" - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/370e73fca4278091bc1b657f85e7d74cd52b24257ea20c927a8e17546107ce04fbf313fec99aed0cc2a145ddbae1d3b12e9cc2c1320117636dc1281bcfd08059 + checksum: 10c0/60a1cfe94bc23086f03701640f4d83d7e37b8f4d729011e0f029e5accf2b3d099c50938c0a798a399e86046279432ff663f33102ba4338c4c82f7acead2bcbac languageName: node linkType: hard -"@typescript-eslint/project-service@npm:8.48.0": - version: 8.48.0 - resolution: "@typescript-eslint/project-service@npm:8.48.0" +"@typescript-eslint/project-service@npm:8.54.0": + version: 8.54.0 + resolution: "@typescript-eslint/project-service@npm:8.54.0" dependencies: - "@typescript-eslint/tsconfig-utils": "npm:^8.48.0" - "@typescript-eslint/types": "npm:^8.48.0" - debug: "npm:^4.3.4" + "@typescript-eslint/tsconfig-utils": "npm:^8.54.0" + "@typescript-eslint/types": "npm:^8.54.0" + debug: "npm:^4.4.3" peerDependencies: typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/6e1d08312fe55a91ba37eb19131af91ad7834bafd15d1cddb83a1e35e5134382e10dc0b14531036ba1c075ce4cba627123625ed6f2e209fb3355f3dda25da0a1 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/scope-manager@npm:5.62.0" - dependencies: - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/visitor-keys": "npm:5.62.0" - checksum: 10c0/861253235576c1c5c1772d23cdce1418c2da2618a479a7de4f6114a12a7ca853011a1e530525d0931c355a8fd237b9cd828fac560f85f9623e24054fd024726f - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/scope-manager@npm:7.18.0" - dependencies: - "@typescript-eslint/types": "npm:7.18.0" - "@typescript-eslint/visitor-keys": "npm:7.18.0" - checksum: 10c0/038cd58c2271de146b3a594afe2c99290034033326d57ff1f902976022c8b0138ffd3cb893ae439ae41003b5e4bcc00cabf6b244ce40e8668f9412cc96d97b8e + checksum: 10c0/3392ae259199021a80616a44d9484d1c363f61bc5c631dff2d08c6a906c98716a20caa7b832b8970120a1eb1eb2de3ee890cd527d6edb04f532f4e48a690a792 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.48.0": - version: 8.48.0 - resolution: "@typescript-eslint/scope-manager@npm:8.48.0" +"@typescript-eslint/scope-manager@npm:8.54.0": + version: 8.54.0 + resolution: "@typescript-eslint/scope-manager@npm:8.54.0" dependencies: - "@typescript-eslint/types": "npm:8.48.0" - "@typescript-eslint/visitor-keys": "npm:8.48.0" - checksum: 10c0/0766e365901a8af9d9e41fa70464254aacf8b4d167734d88b6cdaa0235e86bfdffc57a3e39a20e105929b8df499d252090f64f81f86770f74626ca809afe54b6 + "@typescript-eslint/types": "npm:8.54.0" + "@typescript-eslint/visitor-keys": "npm:8.54.0" + checksum: 10c0/794740a5c0c1afc38d71e6bc59cc62870286e40d99f15e9760e76fb3d4197e961ee151c286c428535c404f5137721242a14da21350b749d0feb1f589f167814f languageName: node linkType: hard -"@typescript-eslint/tsconfig-utils@npm:8.48.0, @typescript-eslint/tsconfig-utils@npm:^8.48.0": - version: 8.48.0 - resolution: "@typescript-eslint/tsconfig-utils@npm:8.48.0" +"@typescript-eslint/tsconfig-utils@npm:8.54.0, @typescript-eslint/tsconfig-utils@npm:^8.54.0": + version: 8.54.0 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.54.0" peerDependencies: typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/52e9ce8ffbaf32f3c6f4b8fa8af6e3901c430411e137a0baf650fcefdd8edf3dcc4569eba726a28424471d4d1d96b815aa4cf7b63aa7b67380efd6a8dd354222 + checksum: 10c0/e8598b0f051650c085d749002138d12249a3efd03e7de02e9e7913939dddd649d159b91f29ca3d28f5ee798b3f528a7195688e23c5e0b315d534e7af20a0c99a languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/type-utils@npm:7.18.0" +"@typescript-eslint/type-utils@npm:8.54.0": + version: 8.54.0 + resolution: "@typescript-eslint/type-utils@npm:8.54.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.18.0" - "@typescript-eslint/utils": "npm:7.18.0" - debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.3.0" - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/ad92a38007be620f3f7036f10e234abdc2fdc518787b5a7227e55fd12896dacf56e8b34578723fbf9bea8128df2510ba8eb6739439a3879eda9519476d5783fd - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:8.48.0": - version: 8.48.0 - resolution: "@typescript-eslint/type-utils@npm:8.48.0" - dependencies: - "@typescript-eslint/types": "npm:8.48.0" - "@typescript-eslint/typescript-estree": "npm:8.48.0" - "@typescript-eslint/utils": "npm:8.48.0" - debug: "npm:^4.3.4" - ts-api-utils: "npm:^2.1.0" + "@typescript-eslint/types": "npm:8.54.0" + "@typescript-eslint/typescript-estree": "npm:8.54.0" + "@typescript-eslint/utils": "npm:8.54.0" + debug: "npm:^4.4.3" + ts-api-utils: "npm:^2.4.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/72ab5c7d183b844e4870bfa5dfeb68e2e7ce5f3e1b33c06d5a8e70f0d0a012c9152ad15071d41ba3788266109804a9f4cdb85d664b11df8948bc930e29e0c244 - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/types@npm:5.62.0" - checksum: 10c0/7febd3a7f0701c0b927e094f02e82d8ee2cada2b186fcb938bc2b94ff6fbad88237afc304cbaf33e82797078bbbb1baf91475f6400912f8b64c89be79bfa4ddf - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/types@npm:7.18.0" - checksum: 10c0/eb7371ac55ca77db8e59ba0310b41a74523f17e06f485a0ef819491bc3dd8909bb930120ff7d30aaf54e888167e0005aa1337011f3663dc90fb19203ce478054 - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:8.48.0, @typescript-eslint/types@npm:^8.48.0": - version: 8.48.0 - resolution: "@typescript-eslint/types@npm:8.48.0" - checksum: 10c0/865a8f4ae4a50aa8976f3d7e0f874f1a1c80227ec53ded68644d41011c729a489bb59f70683b29237ab945716ea0258e1d47387163379eab3edaaf5e5cc3b757 - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" - dependencies: - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/visitor-keys": "npm:5.62.0" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - semver: "npm:^7.3.7" - tsutils: "npm:^3.21.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/d7984a3e9d56897b2481940ec803cb8e7ead03df8d9cfd9797350be82ff765dfcf3cfec04e7355e1779e948da8f02bc5e11719d07a596eb1cb995c48a95e38cf + checksum: 10c0/ad807800d8b2662f823505249a84a6f5b1246b192a7ff08c49f298e220e4d9bb3d76f1f0852510421e030161604a4b939bff87f11b9074f118a3bd1d26139c6f languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" - dependencies: - "@typescript-eslint/types": "npm:7.18.0" - "@typescript-eslint/visitor-keys": "npm:7.18.0" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - minimatch: "npm:^9.0.4" - semver: "npm:^7.6.0" - ts-api-utils: "npm:^1.3.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/0c7f109a2e460ec8a1524339479cf78ff17814d23c83aa5112c77fb345e87b3642616291908dcddea1e671da63686403dfb712e4a4435104f92abdfddf9aba81 +"@typescript-eslint/types@npm:8.54.0, @typescript-eslint/types@npm:^8.54.0": + version: 8.54.0 + resolution: "@typescript-eslint/types@npm:8.54.0" + checksum: 10c0/2219594fe5e8931ff91fd1b7a2606d33cd4f093d43f9ca71bcaa37f106ef79ad51f830dea51392f7e3d8bca77f7077ef98733f87bc008fad2f0bbd9ea5fb8a40 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.48.0": - version: 8.48.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.48.0" +"@typescript-eslint/typescript-estree@npm:8.54.0": + version: 8.54.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.54.0" dependencies: - "@typescript-eslint/project-service": "npm:8.48.0" - "@typescript-eslint/tsconfig-utils": "npm:8.48.0" - "@typescript-eslint/types": "npm:8.48.0" - "@typescript-eslint/visitor-keys": "npm:8.48.0" - debug: "npm:^4.3.4" - minimatch: "npm:^9.0.4" - semver: "npm:^7.6.0" + "@typescript-eslint/project-service": "npm:8.54.0" + "@typescript-eslint/tsconfig-utils": "npm:8.54.0" + "@typescript-eslint/types": "npm:8.54.0" + "@typescript-eslint/visitor-keys": "npm:8.54.0" + debug: "npm:^4.4.3" + minimatch: "npm:^9.0.5" + semver: "npm:^7.7.3" tinyglobby: "npm:^0.2.15" - ts-api-utils: "npm:^2.1.0" + ts-api-utils: "npm:^2.4.0" peerDependencies: typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/f17dd35f7b82654fae9fe83c2eb650572464dbce0170d55b3ef94b99e9aae010f2cbadd436089c8e59eef97d41719ace3a2deb4ac3cdfac26d43b36f34df5590 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/utils@npm:5.62.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.2.0" - "@types/json-schema": "npm:^7.0.9" - "@types/semver": "npm:^7.3.12" - "@typescript-eslint/scope-manager": "npm:5.62.0" - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/typescript-estree": "npm:5.62.0" - eslint-scope: "npm:^5.1.1" - semver: "npm:^7.3.7" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10c0/f09b7d9952e4a205eb1ced31d7684dd55cee40bf8c2d78e923aa8a255318d97279825733902742c09d8690f37a50243f4c4d383ab16bd7aefaf9c4b438f785e1 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/utils@npm:7.18.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.18.0" - "@typescript-eslint/types": "npm:7.18.0" - "@typescript-eslint/typescript-estree": "npm:7.18.0" - peerDependencies: - eslint: ^8.56.0 - checksum: 10c0/a25a6d50eb45c514469a01ff01f215115a4725fb18401055a847ddf20d1b681409c4027f349033a95c4ff7138d28c3b0a70253dfe8262eb732df4b87c547bd1e + checksum: 10c0/1a1a7c0a318e71f3547ab5573198d36165ea152c50447ef92e6326303f9a5c397606201ba80c7b86a725dcdd2913e924be94466a0c33b1b0c3ee852059e646b6 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.48.0": - version: 8.48.0 - resolution: "@typescript-eslint/utils@npm:8.48.0" +"@typescript-eslint/utils@npm:8.54.0": + version: 8.54.0 + resolution: "@typescript-eslint/utils@npm:8.54.0" dependencies: - "@eslint-community/eslint-utils": "npm:^4.7.0" - "@typescript-eslint/scope-manager": "npm:8.48.0" - "@typescript-eslint/types": "npm:8.48.0" - "@typescript-eslint/typescript-estree": "npm:8.48.0" + "@eslint-community/eslint-utils": "npm:^4.9.1" + "@typescript-eslint/scope-manager": "npm:8.54.0" + "@typescript-eslint/types": "npm:8.54.0" + "@typescript-eslint/typescript-estree": "npm:8.54.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/56334312d1dc114a5c8b05dac4da191c40a416a5705fa76797ebdc9f6a96d35727fd0993cf8776f5c4411837e5fc2151bfa61d3eecc98b24f5a821a63a4d56f3 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" - dependencies: - "@typescript-eslint/types": "npm:5.62.0" - eslint-visitor-keys: "npm:^3.3.0" - checksum: 10c0/7c3b8e4148e9b94d9b7162a596a1260d7a3efc4e65199693b8025c71c4652b8042501c0bc9f57654c1e2943c26da98c0f77884a746c6ae81389fcb0b513d995d - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" - dependencies: - "@typescript-eslint/types": "npm:7.18.0" - eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/538b645f8ff1d9debf264865c69a317074eaff0255e63d7407046176b0f6a6beba34a6c51d511f12444bae12a98c69891eb6f403c9f54c6c2e2849d1c1cb73c0 + checksum: 10c0/949a97dca8024d39666e04ecdf2d4e12722f5064c387901e72bdcc7adafb96cf650a070dc79f9dd46fa1aae6ac2b5eac5ae3fe5a6979385208c28809a1bd143f languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.48.0": - version: 8.48.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.48.0" +"@typescript-eslint/visitor-keys@npm:8.54.0": + version: 8.54.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.54.0" dependencies: - "@typescript-eslint/types": "npm:8.48.0" + "@typescript-eslint/types": "npm:8.54.0" eslint-visitor-keys: "npm:^4.2.1" - checksum: 10c0/20ae9ec255a786de40cdba281b63f634a642dcc34d2a79c5ffc160109f7f6227c28ae2c64be32cbc53dc68dc398c3da715bfcce90422b5024f15f7124a3c1704 + checksum: 10c0/f83a9aa92f7f4d1fdb12cbca28c6f5704c36371264606b456388b2c869fc61e73c86d3736556e1bb6e253f3a607128b5b1bf6c68395800ca06f18705576faadd languageName: node linkType: hard @@ -11679,148 +11446,6 @@ __metadata: languageName: node linkType: hard -"@ungap/structured-clone@npm:^1.2.0": - version: 1.3.0 - resolution: "@ungap/structured-clone@npm:1.3.0" - checksum: 10c0/0fc3097c2540ada1fc340ee56d58d96b5b536a2a0dab6e3ec17d4bfc8c4c86db345f61a375a8185f9da96f01c69678f836a2b57eeaa9e4b8eeafd26428e57b0a - languageName: node - linkType: hard - -"@unrs/resolver-binding-android-arm-eabi@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-android-arm-eabi@npm:1.11.1" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@unrs/resolver-binding-android-arm64@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-android-arm64@npm:1.11.1" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@unrs/resolver-binding-darwin-arm64@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.11.1" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@unrs/resolver-binding-darwin-x64@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-darwin-x64@npm:1.11.1" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@unrs/resolver-binding-freebsd-x64@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.11.1" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.11.1" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.11.1" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-arm64-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.11.1" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-arm64-musl@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.11.1" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.11.1" - conditions: os=linux & cpu=ppc64 & libc=glibc - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.11.1" - conditions: os=linux & cpu=riscv64 & libc=glibc - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-riscv64-musl@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.11.1" - conditions: os=linux & cpu=riscv64 & libc=musl - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-s390x-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.11.1" - conditions: os=linux & cpu=s390x & libc=glibc - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-x64-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.11.1" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-x64-musl@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.11.1" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@unrs/resolver-binding-wasm32-wasi@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.11.1" - dependencies: - "@napi-rs/wasm-runtime": "npm:^0.2.11" - conditions: cpu=wasm32 - languageName: node - linkType: hard - -"@unrs/resolver-binding-win32-arm64-msvc@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.11.1" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@unrs/resolver-binding-win32-ia32-msvc@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.11.1" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@unrs/resolver-binding-win32-x64-msvc@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.11.1" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@use-gesture/core@npm:10.3.1": version: 10.3.1 resolution: "@use-gesture/core@npm:10.3.1" @@ -11998,7 +11623,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.11.0, acorn@npm:^8.4.1, acorn@npm:^8.9.0": +"acorn@npm:^8.11.0, acorn@npm:^8.15.0, acorn@npm:^8.4.1": version: 8.15.0 resolution: "acorn@npm:8.15.0" bin: @@ -12277,13 +11902,6 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^5.3.2": - version: 5.3.2 - resolution: "aria-query@npm:5.3.2" - checksum: 10c0/003c7e3e2cff5540bf7a7893775fc614de82b0c5dde8ae823d47b7a28a9d4da1f7ed85f340bdb93d5649caa927755f0e31ecc7ab63edfdfc00c8ef07e505e03e - languageName: node - linkType: hard - "arr-union@npm:^3.1.0": version: 3.1.0 resolution: "arr-union@npm:3.1.0" @@ -12386,7 +12004,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.flatmap@npm:^1.2.4, array.prototype.flatmap@npm:^1.3.2, array.prototype.flatmap@npm:^1.3.3": +"array.prototype.flatmap@npm:^1.2.4, array.prototype.flatmap@npm:^1.3.3": version: 1.3.3 resolution: "array.prototype.flatmap@npm:1.3.3" dependencies: @@ -12465,13 +12083,6 @@ __metadata: languageName: node linkType: hard -"ast-types-flow@npm:^0.0.8": - version: 0.0.8 - resolution: "ast-types-flow@npm:0.0.8" - checksum: 10c0/f2a0ba8055353b743c41431974521e5e852a9824870cd6fce2db0e538ac7bf4da406bbd018d109af29ff3f8f0993f6a730c9eddbd0abd031fbcb29ca75c1014e - languageName: node - linkType: hard - "astral-regex@npm:^2.0.0": version: 2.0.0 resolution: "astral-regex@npm:2.0.0" @@ -12643,13 +12254,6 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:^4.10.0": - version: 4.11.0 - resolution: "axe-core@npm:4.11.0" - checksum: 10c0/7d7020a568a824c303711858c2fcfe56d001d27e46c0c2ff75dc31b436cfddfd4857a301e70536cc9e64829d25338f7fb782102d23497ebdc66801e9900fc895 - languageName: node - linkType: hard - "axios-retry@npm:^4.0.0": version: 4.5.0 resolution: "axios-retry@npm:4.5.0" @@ -12672,13 +12276,6 @@ __metadata: languageName: node linkType: hard -"axobject-query@npm:^4.1.0": - version: 4.1.0 - resolution: "axobject-query@npm:4.1.0" - checksum: 10c0/c470e4f95008f232eadd755b018cb55f16c03ccf39c027b941cd8820ac6b68707ce5d7368a46756db4256fbc91bb4ead368f84f7fb034b2b7932f082f6dc0775 - languageName: node - linkType: hard - "b4a@npm:^1.6.4": version: 1.7.3 resolution: "b4a@npm:1.7.3" @@ -13576,7 +13173,6 @@ __metadata: "@shared/helios-types": "npm:*" "@tanstack/react-table": "npm:^8.20.5" "@trivago/prettier-plugin-sort-imports": "npm:^4.3.0" - "@types/eslint": "npm:^8.56.10" "@types/google.maps": "npm:^3.55.11" "@types/lodash": "npm:^4" "@types/node": "npm:^20.14.10" @@ -13587,18 +13183,10 @@ __metadata: "@types/react-dom": "npm:19.2.3" "@types/react-plotly.js": "npm:^2.6.3" "@types/three": "npm:^0.161.2" - "@typescript-eslint/eslint-plugin": "npm:^7.16.0" - "@typescript-eslint/parser": "npm:^7.16.0" autoprefixer: "npm:^10.4.19" babel-plugin-react-compiler: "npm:^1.0.0" chart.js: "npm:^4.4.8" dayjs: "npm:^1.11.13" - eslint: "npm:8.57.0" - eslint-config-next: "npm:15.1.4" - eslint-config-prettier: "npm:^9.1.0" - eslint-plugin-prettier: "npm:^5.1.3" - eslint-plugin-promise: "npm:^6.4.0" - eslint-plugin-tailwindcss: "npm:^3.17.4" framer-motion: "npm:^11.0.6" gltf-pipeline: "npm:^4.1.0" lodash: "npm:^4.17.21" @@ -14166,13 +13754,6 @@ __metadata: languageName: node linkType: hard -"damerau-levenshtein@npm:^1.0.8": - version: 1.0.8 - resolution: "damerau-levenshtein@npm:1.0.8" - checksum: 10c0/4c2647e0f42acaee7d068756c1d396e296c3556f9c8314bac1ac63ffb236217ef0e7e58602b18bb2173deec7ec8e0cac8e27cccf8f5526666b4ff11a13ad54a3 - languageName: node - linkType: hard - "dargs@npm:^7.0.0": version: 7.0.0 resolution: "dargs@npm:7.0.0" @@ -14282,7 +13863,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.4.0, debug@npm:^4.4.1": +"debug@npm:4, debug@npm:^4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.4.0, debug@npm:^4.4.1, debug@npm:^4.4.3": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -14578,15 +14159,6 @@ __metadata: languageName: node linkType: hard -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 - languageName: node - linkType: hard - "dom-helpers@npm:^5.0.1": version: 5.2.1 resolution: "dom-helpers@npm:5.2.1" @@ -14637,13 +14209,6 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:16.0.3": - version: 16.0.3 - resolution: "dotenv@npm:16.0.3" - checksum: 10c0/109457ac5f9e930ca8066ea33887b6f839ab24d647a7a8b49ddcd1f32662e2c35591c5e5b9819063e430148a664d0927f0cbe60cf9575d89bc524f47ff7e78f0 - languageName: node - linkType: hard - "dotenv@npm:^16.4.5, dotenv@npm:^16.4.7": version: 16.6.1 resolution: "dotenv@npm:16.6.1" @@ -14855,7 +14420,69 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0": +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.6, es-abstract@npm:^1.24.1": + version: 1.24.1 + resolution: "es-abstract@npm:1.24.1" + dependencies: + array-buffer-byte-length: "npm:^1.0.2" + arraybuffer.prototype.slice: "npm:^1.0.4" + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + data-view-buffer: "npm:^1.0.2" + data-view-byte-length: "npm:^1.0.2" + data-view-byte-offset: "npm:^1.0.1" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.1.1" + es-set-tostringtag: "npm:^2.1.0" + es-to-primitive: "npm:^1.3.0" + function.prototype.name: "npm:^1.1.8" + get-intrinsic: "npm:^1.3.0" + get-proto: "npm:^1.0.1" + get-symbol-description: "npm:^1.1.0" + globalthis: "npm:^1.0.4" + gopd: "npm:^1.2.0" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + internal-slot: "npm:^1.1.0" + is-array-buffer: "npm:^3.0.5" + is-callable: "npm:^1.2.7" + is-data-view: "npm:^1.0.2" + is-negative-zero: "npm:^2.0.3" + is-regex: "npm:^1.2.1" + is-set: "npm:^2.0.3" + is-shared-array-buffer: "npm:^1.0.4" + is-string: "npm:^1.1.1" + is-typed-array: "npm:^1.1.15" + is-weakref: "npm:^1.1.1" + math-intrinsics: "npm:^1.1.0" + object-inspect: "npm:^1.13.4" + object-keys: "npm:^1.1.1" + object.assign: "npm:^4.1.7" + own-keys: "npm:^1.0.1" + regexp.prototype.flags: "npm:^1.5.4" + safe-array-concat: "npm:^1.1.3" + safe-push-apply: "npm:^1.0.0" + safe-regex-test: "npm:^1.1.0" + set-proto: "npm:^1.0.0" + stop-iteration-iterator: "npm:^1.1.0" + string.prototype.trim: "npm:^1.2.10" + string.prototype.trimend: "npm:^1.0.9" + string.prototype.trimstart: "npm:^1.0.8" + typed-array-buffer: "npm:^1.0.3" + typed-array-byte-length: "npm:^1.0.3" + typed-array-byte-offset: "npm:^1.0.4" + typed-array-length: "npm:^1.0.7" + unbox-primitive: "npm:^1.1.0" + which-typed-array: "npm:^1.1.19" + checksum: 10c0/fca062ef8b5daacf743732167d319a212d45cb655b0bb540821d38d715416ae15b04b84fc86da9e2c89135aa7b337337b6c867f84dcde698d75d55688d5d765c + languageName: node + linkType: hard + +"es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0": version: 1.24.0 resolution: "es-abstract@npm:1.24.0" dependencies: @@ -14932,26 +14559,26 @@ __metadata: linkType: hard "es-iterator-helpers@npm:^1.2.1": - version: 1.2.1 - resolution: "es-iterator-helpers@npm:1.2.1" + version: 1.2.2 + resolution: "es-iterator-helpers@npm:1.2.2" dependencies: call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.3" + call-bound: "npm:^1.0.4" define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.6" + es-abstract: "npm:^1.24.1" es-errors: "npm:^1.3.0" - es-set-tostringtag: "npm:^2.0.3" + es-set-tostringtag: "npm:^2.1.0" function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.6" + get-intrinsic: "npm:^1.3.0" globalthis: "npm:^1.0.4" gopd: "npm:^1.2.0" has-property-descriptors: "npm:^1.0.2" has-proto: "npm:^1.2.0" has-symbols: "npm:^1.1.0" internal-slot: "npm:^1.1.0" - iterator.prototype: "npm:^1.1.4" + iterator.prototype: "npm:^1.1.5" safe-array-concat: "npm:^1.1.3" - checksum: 10c0/97e3125ca472d82d8aceea11b790397648b52c26d8768ea1c1ee6309ef45a8755bb63225a43f3150c7591cffc17caf5752459f1e70d583b4184370a8f04ebd2f + checksum: 10c0/1ced8abf845a45e660dd77b5f3a64358421df70e4a0bd1897d5ddfefffed8409a6a2ca21241b9367e639df9eca74abc1c678b3020bffe6bee1f1826393658ddb languageName: node linkType: hard @@ -14964,7 +14591,7 @@ __metadata: languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.3, es-set-tostringtag@npm:^2.1.0": +"es-set-tostringtag@npm:^2.1.0": version: 2.1.0 resolution: "es-set-tostringtag@npm:2.1.0" dependencies: @@ -15196,54 +14823,18 @@ __metadata: languageName: node linkType: hard -"eslint-config-next@npm:15.1.4": - version: 15.1.4 - resolution: "eslint-config-next@npm:15.1.4" - dependencies: - "@next/eslint-plugin-next": "npm:15.1.4" - "@rushstack/eslint-patch": "npm:^1.10.3" - "@typescript-eslint/eslint-plugin": "npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0" - "@typescript-eslint/parser": "npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0" - eslint-import-resolver-node: "npm:^0.3.6" - eslint-import-resolver-typescript: "npm:^3.5.2" - eslint-plugin-import: "npm:^2.31.0" - eslint-plugin-jsx-a11y: "npm:^6.10.0" - eslint-plugin-react: "npm:^7.37.0" - eslint-plugin-react-hooks: "npm:^5.0.0" - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 - typescript: ">=3.3.1" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/9c52e8e2c6f71e94eec0a2d2a2ee0a32d6ac3cb6b354e8364ddb8b9942b2b1ea2207c3be1532dfb296a697df27f89f6f3eb86190ecf9ffaf5528d7a3749fb012 - languageName: node - linkType: hard - -"eslint-config-prettier@npm:^9.1.0": - version: 9.1.2 - resolution: "eslint-config-prettier@npm:9.1.2" +"eslint-config-prettier@npm:^10.1.8": + version: 10.1.8 + resolution: "eslint-config-prettier@npm:10.1.8" peerDependencies: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: 10c0/d2e9dc913b1677764a4732433d83d258f40820458c65d0274cb9e3eaf6559b39f2136446f310c05abed065a4b3c2e901807ccf583dff76c6227eaebf4132c39a - languageName: node - linkType: hard - -"eslint-config-turbo@npm:latest": - version: 2.6.1 - resolution: "eslint-config-turbo@npm:2.6.1" - dependencies: - eslint-plugin-turbo: "npm:2.6.1" - peerDependencies: - eslint: ">6.6.0" - turbo: ">2.0.0" - checksum: 10c0/043c2a24d1b316ee810a128f33ce30f3d4d7be591d86d06e164ea3ae6eb625f727212deb96c65099176958a4a97bb68f32e98f6164ca6d97143b2dc70fc34a5f + checksum: 10c0/e1bcfadc9eccd526c240056b1e59c5cd26544fe59feb85f38f4f1f116caed96aea0b3b87868e68b3099e55caaac3f2e5b9f58110f85db893e83a332751192682 languageName: node linkType: hard -"eslint-import-resolver-node@npm:^0.3.6, eslint-import-resolver-node@npm:^0.3.9": +"eslint-import-resolver-node@npm:^0.3.9": version: 0.3.9 resolution: "eslint-import-resolver-node@npm:0.3.9" dependencies: @@ -15254,30 +14845,6 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-typescript@npm:^3.5.2": - version: 3.10.1 - resolution: "eslint-import-resolver-typescript@npm:3.10.1" - dependencies: - "@nolyfill/is-core-module": "npm:1.0.39" - debug: "npm:^4.4.0" - get-tsconfig: "npm:^4.10.0" - is-bun-module: "npm:^2.0.0" - stable-hash: "npm:^0.0.5" - tinyglobby: "npm:^0.2.13" - unrs-resolver: "npm:^1.6.2" - peerDependencies: - eslint: "*" - eslint-plugin-import: "*" - eslint-plugin-import-x: "*" - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true - checksum: 10c0/02ba72cf757753ab9250806c066d09082e00807b7b6525d7687e1c0710bc3f6947e39120227fe1f93dabea3510776d86fb3fd769466ba3c46ce67e9f874cb702 - languageName: node - linkType: hard - "eslint-module-utils@npm:^2.12.1": version: 2.12.1 resolution: "eslint-module-utils@npm:2.12.1" @@ -15290,7 +14857,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.29.1, eslint-plugin-import@npm:^2.31.0": +"eslint-plugin-import@npm:^2.29.1": version: 2.32.0 resolution: "eslint-plugin-import@npm:2.32.0" dependencies: @@ -15319,37 +14886,12 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsx-a11y@npm:^6.10.0": - version: 6.10.2 - resolution: "eslint-plugin-jsx-a11y@npm:6.10.2" +"eslint-plugin-prettier@npm:^5.5.5": + version: 5.5.5 + resolution: "eslint-plugin-prettier@npm:5.5.5" dependencies: - aria-query: "npm:^5.3.2" - array-includes: "npm:^3.1.8" - array.prototype.flatmap: "npm:^1.3.2" - ast-types-flow: "npm:^0.0.8" - axe-core: "npm:^4.10.0" - axobject-query: "npm:^4.1.0" - damerau-levenshtein: "npm:^1.0.8" - emoji-regex: "npm:^9.2.2" - hasown: "npm:^2.0.2" - jsx-ast-utils: "npm:^3.3.5" - language-tags: "npm:^1.0.9" - minimatch: "npm:^3.1.2" - object.fromentries: "npm:^2.0.8" - safe-regex-test: "npm:^1.0.3" - string.prototype.includes: "npm:^2.0.1" - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - checksum: 10c0/d93354e03b0cf66f018d5c50964e074dffe4ddf1f9b535fa020d19c4ae45f89c1a16e9391ca61ac3b19f7042c751ac0d361a056a65cbd1de24718a53ff8daa6e - languageName: node - linkType: hard - -"eslint-plugin-prettier@npm:^5.1.3, eslint-plugin-prettier@npm:^5.2.1": - version: 5.5.4 - resolution: "eslint-plugin-prettier@npm:5.5.4" - dependencies: - prettier-linter-helpers: "npm:^1.0.0" - synckit: "npm:^0.11.7" + prettier-linter-helpers: "npm:^1.0.1" + synckit: "npm:^0.11.12" peerDependencies: "@types/eslint": ">=8.0.0" eslint: ">=8.0.0" @@ -15360,20 +14902,11 @@ __metadata: optional: true eslint-config-prettier: optional: true - checksum: 10c0/5cc780e0ab002f838ad8057409e86de4ff8281aa2704a50fa8511abff87028060c2e45741bc9cbcbd498712e8d189de8026e70aed9e20e50fe5ba534ee5a8442 + checksum: 10c0/091449b28c77ab2efbbf674e977181f2c8453d95a4df68218bddd87a4dfaa9ecc4eda60164e416f5986fb5d577e66e8d8e1e23d81e8555f8d735375598b03257 languageName: node linkType: hard -"eslint-plugin-promise@npm:^6.4.0": - version: 6.6.0 - resolution: "eslint-plugin-promise@npm:6.6.0" - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/93a667dbc9ff15c4d586b0d40a31c7828314cbbb31b2b9a75802aa4ef536e9457bb3e1a89b384b07aa336dd61b315ae8b0aadc0870210378023dd018819b59b3 - languageName: node - linkType: hard - -"eslint-plugin-promise@npm:^7.1.0": +"eslint-plugin-promise@npm:^7.2.1": version: 7.2.1 resolution: "eslint-plugin-promise@npm:7.2.1" dependencies: @@ -15384,16 +14917,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:^5.0.0": - version: 5.2.0 - resolution: "eslint-plugin-react-hooks@npm:5.2.0" - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - checksum: 10c0/1c8d50fa5984c6dea32470651807d2922cc3934cf3425e78f84a24c2dfd972e7f019bee84aefb27e0cf2c13fea0ac1d4473267727408feeb1c56333ca1489385 - languageName: node - linkType: hard - -"eslint-plugin-react@npm:^7.37.0": +"eslint-plugin-react@npm:^7.37.5": version: 7.37.5 resolution: "eslint-plugin-react@npm:7.37.5" dependencies: @@ -15441,113 +14965,60 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-tailwindcss@npm:^3.17.4": - version: 3.18.2 - resolution: "eslint-plugin-tailwindcss@npm:3.18.2" - dependencies: - fast-glob: "npm:^3.2.5" - postcss: "npm:^8.4.4" - peerDependencies: - tailwindcss: ^3.4.0 - checksum: 10c0/2903923f81d5dd1813279cc419421612d7d3f58ba57aa48a931beaa18e2529fdea223e0c60135c3fd2aa55e3d798b4299a0280602c8c508480bebd4f6019ac9c - languageName: node - linkType: hard - -"eslint-plugin-turbo@npm:2.6.1": - version: 2.6.1 - resolution: "eslint-plugin-turbo@npm:2.6.1" - dependencies: - dotenv: "npm:16.0.3" - peerDependencies: - eslint: ">6.6.0" - turbo: ">2.0.0" - checksum: 10c0/2d6d33b4f17a9d420f729f9cbf2d22f6ee5f87b0d879b0c3c5ca2afbac7808df8ede97da7d7b013b7671c553ee63918b77158fa7ba5584fa5f7c62580cbc2a9a - languageName: node - linkType: hard - -"eslint-plugin-typescript-sort-keys@npm:^3.2.0": - version: 3.3.0 - resolution: "eslint-plugin-typescript-sort-keys@npm:3.3.0" - dependencies: - "@typescript-eslint/experimental-utils": "npm:^5.0.0" - json-schema: "npm:^0.4.0" - natural-compare-lite: "npm:^1.4.0" - peerDependencies: - "@typescript-eslint/parser": ">=6" - eslint: ^7 || ^8 - typescript: ^3 || ^4 || ^5 - checksum: 10c0/d374611e9d3b2972d6cb4fefd88890773520918e9c8e7efef406dc2b02cc9f153c4ff78d64aa1e636896ce0708a7512a4b1c629185de869211f86937920e834d - languageName: node - linkType: hard - -"eslint-scope@npm:^5.1.1": - version: 5.1.1 - resolution: "eslint-scope@npm:5.1.1" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^4.1.1" - checksum: 10c0/d30ef9dc1c1cbdece34db1539a4933fe3f9b14e1ffb27ecc85987902ee663ad7c9473bbd49a9a03195a373741e62e2f807c4938992e019b511993d163450e70a - languageName: node - linkType: hard - -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" +"eslint-scope@npm:^8.0.1": + version: 8.4.0 + resolution: "eslint-scope@npm:8.4.0" dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 10c0/613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116 + checksum: 10c0/407f6c600204d0f3705bd557f81bd0189e69cd7996f408f8971ab5779c0af733d1af2f1412066b40ee1588b085874fc37a2333986c6521669cdbdd36ca5058e0 languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": +"eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 languageName: node linkType: hard -"eslint-visitor-keys@npm:^4.2.1": +"eslint-visitor-keys@npm:^4.0.0, eslint-visitor-keys@npm:^4.2.1": version: 4.2.1 resolution: "eslint-visitor-keys@npm:4.2.1" checksum: 10c0/fcd43999199d6740db26c58dbe0c2594623e31ca307e616ac05153c9272f12f1364f5a0b1917a8e962268fdecc6f3622c1c2908b4fcc2e047a106fe6de69dc43 languageName: node linkType: hard -"eslint@npm:8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" +"eslint@npm:9.0.0": + version: 9.0.0 + resolution: "eslint@npm:9.0.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.57.0" - "@humanwhocodes/config-array": "npm:^0.11.14" + "@eslint/eslintrc": "npm:^3.0.2" + "@eslint/js": "npm:9.0.0" + "@humanwhocodes/config-array": "npm:^0.12.3" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" - "@ungap/structured-clone": "npm:^1.2.0" ajv: "npm:^6.12.4" chalk: "npm:^4.0.0" cross-spawn: "npm:^7.0.2" debug: "npm:^4.3.2" - doctrine: "npm:^3.0.0" escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^7.2.2" - eslint-visitor-keys: "npm:^3.4.3" - espree: "npm:^9.6.1" + eslint-scope: "npm:^8.0.1" + eslint-visitor-keys: "npm:^4.0.0" + espree: "npm:^10.0.1" esquery: "npm:^1.4.2" esutils: "npm:^2.0.2" fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^6.0.1" + file-entry-cache: "npm:^8.0.0" find-up: "npm:^5.0.0" glob-parent: "npm:^6.0.2" - globals: "npm:^13.19.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.2.0" imurmurhash: "npm:^0.1.4" is-glob: "npm:^4.0.0" is-path-inside: "npm:^3.0.3" - js-yaml: "npm:^4.1.0" json-stable-stringify-without-jsonify: "npm:^1.0.1" levn: "npm:^0.4.1" lodash.merge: "npm:^4.6.2" @@ -15558,18 +15029,18 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 10c0/00bb96fd2471039a312435a6776fe1fd557c056755eaa2b96093ef3a8508c92c8775d5f754768be6b1dddd09fdd3379ddb231eeb9b6c579ee17ea7d68000a529 + checksum: 10c0/ab23e45cfef5ec174fc165edc03e0d6655fd7e50fd18068e6d966e9640f0d0a9048244e1297569ba4fd1ccddcfc0b00fb0c9723caa4209e0b2b23139ae688368 languageName: node linkType: hard -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" +"espree@npm:^10.0.1": + version: 10.4.0 + resolution: "espree@npm:10.4.0" dependencies: - acorn: "npm:^8.9.0" + acorn: "npm:^8.15.0" acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10c0/1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460 + eslint-visitor-keys: "npm:^4.2.1" + checksum: 10c0/c63fe06131c26c8157b4083313cb02a9a54720a08e21543300e55288c40e06c3fc284bdecf108d3a1372c5934a0a88644c98714f38b6ae8ed272b40d9ea08d6b languageName: node linkType: hard @@ -15601,13 +15072,6 @@ __metadata: languageName: node linkType: hard -"estraverse@npm:^4.1.1": - version: 4.3.0 - resolution: "estraverse@npm:4.3.0" - checksum: 10c0/9cb46463ef8a8a4905d3708a652d60122a0c20bb58dec7e0e12ab0e7235123d74214fc0141d743c381813e1b992767e2708194f6f6e0f9fd00c1b4e0887b8b6d - languageName: node - linkType: hard - "estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": version: 5.3.0 resolution: "estraverse@npm:5.3.0" @@ -15871,7 +15335,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.5, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": version: 3.3.3 resolution: "fast-glob@npm:3.3.3" dependencies: @@ -16089,12 +15553,12 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" dependencies: - flat-cache: "npm:^3.0.4" - checksum: 10c0/58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd + flat-cache: "npm:^4.0.0" + checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638 languageName: node linkType: hard @@ -16167,14 +15631,13 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" +"flat-cache@npm:^4.0.0": + version: 4.0.1 + resolution: "flat-cache@npm:4.0.1" dependencies: flatted: "npm:^3.2.9" - keyv: "npm:^4.5.3" - rimraf: "npm:^3.0.2" - checksum: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 + keyv: "npm:^4.5.4" + checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc languageName: node linkType: hard @@ -16565,7 +16028,7 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.10.0, get-tsconfig@npm:^4.7.5": +"get-tsconfig@npm:^4.7.5": version: 4.13.0 resolution: "get-tsconfig@npm:4.13.0" dependencies: @@ -16752,12 +16215,10 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: "npm:^0.20.2" - checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd +"globals@npm:^14.0.0": + version: 14.0.0 + resolution: "globals@npm:14.0.0" + checksum: 10c0/b96ff42620c9231ad468d4c58ff42afee7777ee1c963013ff8aabe095a451d0ceeb8dcd8ef4cbd64d2538cef45f787a78ba3a9574f4a634438963e334471302d languageName: node linkType: hard @@ -17247,14 +16708,14 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.0.4, ignore@npm:^5.2.0, ignore@npm:^5.3.1, ignore@npm:^5.3.2": +"ignore@npm:^5.0.4, ignore@npm:^5.2.0, ignore@npm:^5.3.2": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 languageName: node linkType: hard -"ignore@npm:^7.0.0": +"ignore@npm:^7.0.5": version: 7.0.5 resolution: "ignore@npm:7.0.5" checksum: 10c0/ae00db89fe873064a093b8999fe4cc284b13ef2a178636211842cceb650b9c3e390d3339191acb145d81ed5379d2074840cf0c33a20bdbd6f32821f79eb4ad5d @@ -17537,15 +16998,6 @@ __metadata: languageName: node linkType: hard -"is-bun-module@npm:^2.0.0": - version: 2.0.0 - resolution: "is-bun-module@npm:2.0.0" - dependencies: - semver: "npm:^7.7.1" - checksum: 10c0/7d27a0679cfa5be1f5052650391f9b11040cd70c48d45112e312c56bc6b6ca9c9aea70dcce6cc40b1e8947bfff8567a5c5715d3b066fb478522dab46ea379240 - languageName: node - linkType: hard - "is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" @@ -18036,7 +17488,7 @@ __metadata: languageName: node linkType: hard -"iterator.prototype@npm:^1.1.4": +"iterator.prototype@npm:^1.1.5": version: 1.1.5 resolution: "iterator.prototype@npm:1.1.5" dependencies: @@ -18182,7 +17634,7 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:^4.1.0": +"js-yaml@npm:^4.1.0, js-yaml@npm:^4.1.1": version: 4.1.1 resolution: "js-yaml@npm:4.1.1" dependencies: @@ -18279,13 +17731,6 @@ __metadata: languageName: node linkType: hard -"json-schema@npm:^0.4.0": - version: 0.4.0 - resolution: "json-schema@npm:0.4.0" - checksum: 10c0/d4a637ec1d83544857c1c163232f3da46912e971d5bf054ba44fdb88f07d8d359a462b4aec46f2745efbc57053365608d88bc1d7b1729f7b4fc3369765639ed3 - languageName: node - linkType: hard - "json-stable-stringify-without-jsonify@npm:^1.0.1": version: 1.0.1 resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" @@ -18387,7 +17832,7 @@ __metadata: languageName: node linkType: hard -"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5": +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0": version: 3.3.5 resolution: "jsx-ast-utils@npm:3.3.5" dependencies: @@ -18420,7 +17865,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.3": +"keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -18450,22 +17895,6 @@ __metadata: languageName: node linkType: hard -"language-subtag-registry@npm:^0.3.20": - version: 0.3.23 - resolution: "language-subtag-registry@npm:0.3.23" - checksum: 10c0/e9b05190421d2cd36dd6c95c28673019c927947cb6d94f40ba7e77a838629ee9675c94accf897fbebb07923187deb843b8fbb8935762df6edafe6c28dcb0b86c - languageName: node - linkType: hard - -"language-tags@npm:^1.0.9": - version: 1.0.9 - resolution: "language-tags@npm:1.0.9" - dependencies: - language-subtag-registry: "npm:^0.3.20" - checksum: 10c0/9ab911213c4bd8bd583c850201c17794e52cb0660d1ab6e32558aadc8324abebf6844e46f92b80a5d600d0fbba7eface2c207bfaf270a1c7fd539e4c3a880bff - languageName: node - linkType: hard - "lazystream@npm:^1.0.0": version: 1.0.1 resolution: "lazystream@npm:1.0.1" @@ -19312,7 +18741,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4": +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4, minimatch@npm:^9.0.5": version: 9.0.5 resolution: "minimatch@npm:9.0.5" dependencies: @@ -19654,15 +19083,6 @@ __metadata: languageName: node linkType: hard -"napi-postinstall@npm:^0.3.0": - version: 0.3.4 - resolution: "napi-postinstall@npm:0.3.4" - bin: - napi-postinstall: lib/cli.js - checksum: 10c0/b33d64150828bdade3a5d07368a8b30da22ee393f8dd8432f1b9e5486867be21c84ec443dd875dd3ef3c7401a079a7ab7e2aa9d3538a889abbcd96495d5104fe - languageName: node - linkType: hard - "natural-compare-lite@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare-lite@npm:1.4.0" @@ -21174,7 +20594,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.4, postcss@npm:^8.4.47, postcss@npm:^8.5.3": +"postcss@npm:^8.4.47, postcss@npm:^8.5.3": version: 8.5.6 resolution: "postcss@npm:8.5.6" dependencies: @@ -21245,12 +20665,12 @@ __metadata: languageName: node linkType: hard -"prettier-linter-helpers@npm:^1.0.0": - version: 1.0.0 - resolution: "prettier-linter-helpers@npm:1.0.0" +"prettier-linter-helpers@npm:^1.0.1": + version: 1.0.1 + resolution: "prettier-linter-helpers@npm:1.0.1" dependencies: fast-diff: "npm:^1.1.2" - checksum: 10c0/81e0027d731b7b3697ccd2129470ed9913ecb111e4ec175a12f0fcfab0096516373bf0af2fef132af50cafb0a905b74ff57996d615f59512bb9ac7378fcc64ab + checksum: 10c0/91cea965681bc5f62c9d26bd3ca6358b81557261d4802e96ec1cf0acbd99d4b61632d53320cd2c3ec7d7f7805a81345644108a41ef46ddc9688e783a9ac792d1 languageName: node linkType: hard @@ -22286,7 +21706,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": +"rimraf@npm:^3.0.0": version: 3.0.2 resolution: "rimraf@npm:3.0.2" dependencies: @@ -22330,16 +21750,14 @@ __metadata: version: 0.0.0-use.local resolution: "root@workspace:." dependencies: + "@next/eslint-plugin-next": "npm:^16.1.6" "@types/eslint": "npm:^9.6.0" - "@typescript-eslint/eslint-plugin": "npm:^7.4.0" - "@typescript-eslint/parser": "npm:^7.4.0" - clsx: "npm:^2.1.1" - eslint: "npm:8.57.0" - eslint-config-prettier: "npm:^9.1.0" - eslint-config-turbo: "npm:latest" + eslint: "npm:9.0.0" + eslint-config-prettier: "npm:^10.1.8" eslint-plugin-import: "npm:^2.29.1" - eslint-plugin-prettier: "npm:^5.1.3" - eslint-plugin-promise: "npm:^6.4.0" + eslint-plugin-prettier: "npm:^5.5.5" + eslint-plugin-promise: "npm:^7.2.1" + eslint-plugin-react: "npm:^7.37.5" eslint-plugin-sort-destructure-keys: "npm:^2.0.0" eslint-plugin-sort-keys: "npm:^2.3.5" husky: "npm:^8.0.3" @@ -22348,6 +21766,7 @@ __metadata: prettier: "npm:^3.3.3" prettier-plugin-tailwindcss: "npm:^0.6.6" typescript: "npm:^5.5.4" + typescript-eslint: "npm:^8.54.0" languageName: unknown linkType: soft @@ -22436,7 +21855,7 @@ __metadata: languageName: node linkType: hard -"safe-regex-test@npm:^1.0.3, safe-regex-test@npm:^1.1.0": +"safe-regex-test@npm:^1.1.0": version: 1.1.0 resolution: "safe-regex-test@npm:1.1.0" dependencies: @@ -22500,7 +21919,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3, semver@npm:^7.7.1, semver@npm:^7.7.2, semver@npm:^7.7.3": +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3, semver@npm:^7.7.2, semver@npm:^7.7.3": version: 7.7.3 resolution: "semver@npm:7.7.3" bin: @@ -22573,26 +21992,16 @@ __metadata: "@timescaledb/schemas": "npm:^0.0.1" "@timescaledb/typeorm": "npm:^0.0.1" "@trivago/prettier-plugin-sort-imports": "npm:^4.3.0" - "@types/eslint": "npm:^9.6.0" "@types/express": "npm:^4.17.21" "@types/node": "npm:^20.14.10" "@types/prettier": "npm:^3.0.0" "@types/sqlite3": "npm:^3.1.11" - "@typescript-eslint/eslint-plugin": "npm:^7.4.0" - "@typescript-eslint/parser": "npm:^7.4.0" aedes: "npm:^0.51.2" axios: "npm:^1.7.2" axios-retry: "npm:^4.0.0" cors: "npm:^2.8.5" db: "npm:*" dotenv: "npm:^16.4.5" - eslint: "npm:8.57.0" - eslint-config-prettier: "npm:^9.1.0" - eslint-plugin-prettier: "npm:^5.2.1" - eslint-plugin-promise: "npm:^7.1.0" - eslint-plugin-sort-destructure-keys: "npm:^2.0.0" - eslint-plugin-sort-keys: "npm:^2.3.5" - eslint-plugin-typescript-sort-keys: "npm:^3.2.0" express: "npm:^4.19.2" globals: "npm:^15.8.0" log4js: "npm:^6.9.1" @@ -23190,13 +22599,6 @@ __metadata: languageName: node linkType: hard -"stable-hash@npm:^0.0.5": - version: 0.0.5 - resolution: "stable-hash@npm:0.0.5" - checksum: 10c0/ca670cb6d172f1c834950e4ec661e2055885df32fee3ebf3647c5df94993b7c2666a5dbc1c9a62ee11fc5c24928579ec5e81bb5ad31971d355d5a341aab493b3 - languageName: node - linkType: hard - "stats-gl@npm:^2.2.8": version: 2.4.2 resolution: "stats-gl@npm:2.4.2" @@ -23302,17 +22704,6 @@ __metadata: languageName: node linkType: hard -"string.prototype.includes@npm:^2.0.1": - version: 2.0.1 - resolution: "string.prototype.includes@npm:2.0.1" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.3" - checksum: 10c0/25ce9c9b49128352a2618fbe8758b46f945817a58a4420f4799419e40a8d28f116e176c7590d767d5327a61e75c8f32c86171063f48e389b9fdd325f1bd04ee5 - languageName: node - linkType: hard - "string.prototype.matchall@npm:^4.0.12": version: 4.0.12 resolution: "string.prototype.matchall@npm:4.0.12" @@ -23596,12 +22987,12 @@ __metadata: languageName: node linkType: hard -"synckit@npm:^0.11.7": - version: 0.11.11 - resolution: "synckit@npm:0.11.11" +"synckit@npm:^0.11.12": + version: 0.11.12 + resolution: "synckit@npm:0.11.12" dependencies: "@pkgr/core": "npm:^0.2.9" - checksum: 10c0/f0761495953d12d94a86edf6326b3a565496c72f9b94c02549b6961fb4d999f4ca316ce6b3eb8ed2e4bfc5056a8de65cda0bd03a233333a35221cd2fdc0e196b + checksum: 10c0/cc4d446806688ae0d728ae7bb3f53176d065cf9536647fb85bdd721dcefbd7bf94874df6799ff61580f2b03a392659219b778a9254ad499f9a1f56c34787c235 languageName: node linkType: hard @@ -23837,7 +23228,7 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.11, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15": +"tinyglobby@npm:^0.2.11, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15": version: 0.2.15 resolution: "tinyglobby@npm:0.2.15" dependencies: @@ -24028,21 +23419,12 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.3.0": - version: 1.4.3 - resolution: "ts-api-utils@npm:1.4.3" - peerDependencies: - typescript: ">=4.2.0" - checksum: 10c0/e65dc6e7e8141140c23e1dc94984bf995d4f6801919c71d6dc27cf0cd51b100a91ffcfe5217626193e5bea9d46831e8586febdc7e172df3f1091a7384299e23a - languageName: node - linkType: hard - -"ts-api-utils@npm:^2.1.0": - version: 2.1.0 - resolution: "ts-api-utils@npm:2.1.0" +"ts-api-utils@npm:^2.4.0": + version: 2.4.0 + resolution: "ts-api-utils@npm:2.4.0" peerDependencies: typescript: ">=4.8.4" - checksum: 10c0/9806a38adea2db0f6aa217ccc6bc9c391ddba338a9fe3080676d0d50ed806d305bb90e8cef0276e793d28c8a929f400abb184ddd7ff83a416959c0f4d2ce754f + checksum: 10c0/ed185861aef4e7124366a3f6561113557a57504267d4d452a51e0ba516a9b6e713b56b4aeaab9fa13de9db9ab755c65c8c13a777dba9133c214632cb7b65c083 languageName: node linkType: hard @@ -24128,7 +23510,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^1.10.0, tslib@npm:^1.11.1, tslib@npm:^1.8.1, tslib@npm:^1.9.3": +"tslib@npm:^1.10.0, tslib@npm:^1.11.1, tslib@npm:^1.9.3": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: 10c0/69ae09c49eea644bc5ebe1bca4fa4cc2c82b7b3e02f43b84bd891504edf66dbc6b2ec0eef31a957042de2269139e4acff911e6d186a258fb14069cd7f6febce2 @@ -24177,17 +23559,6 @@ __metadata: languageName: node linkType: hard -"tsutils@npm:^3.21.0": - version: 3.21.0 - resolution: "tsutils@npm:3.21.0" - dependencies: - tslib: "npm:^1.8.1" - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - checksum: 10c0/02f19e458ec78ead8fffbf711f834ad8ecd2cc6ade4ec0320790713dccc0a412b99e7fd907c4cda2a1dc602c75db6f12e0108e87a5afad4b2f9e90a24cabd5a2 - languageName: node - linkType: hard - "tsx@npm:^4.16.2, tsx@npm:^4.6.1": version: 4.20.6 resolution: "tsx@npm:4.20.6" @@ -24249,13 +23620,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 10c0/dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3 - languageName: node - linkType: hard - "type-fest@npm:^0.21.3": version: 0.21.3 resolution: "type-fest@npm:0.21.3" @@ -24445,6 +23809,21 @@ __metadata: languageName: node linkType: hard +"typescript-eslint@npm:^8.54.0": + version: 8.54.0 + resolution: "typescript-eslint@npm:8.54.0" + dependencies: + "@typescript-eslint/eslint-plugin": "npm:8.54.0" + "@typescript-eslint/parser": "npm:8.54.0" + "@typescript-eslint/typescript-estree": "npm:8.54.0" + "@typescript-eslint/utils": "npm:8.54.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <6.0.0" + checksum: 10c0/0ba92aa22c0aa10c88b0f4732950ed64245947f1c4ac17328dff94b43eaeddd3068595788725781fba07a87cc964304a075b3e37f9a86312173498fcc6ab4338 + languageName: node + linkType: hard + "typescript@npm:<=4.5.0": version: 4.4.4 resolution: "typescript@npm:4.4.4" @@ -24651,73 +24030,6 @@ __metadata: languageName: node linkType: hard -"unrs-resolver@npm:^1.6.2": - version: 1.11.1 - resolution: "unrs-resolver@npm:1.11.1" - dependencies: - "@unrs/resolver-binding-android-arm-eabi": "npm:1.11.1" - "@unrs/resolver-binding-android-arm64": "npm:1.11.1" - "@unrs/resolver-binding-darwin-arm64": "npm:1.11.1" - "@unrs/resolver-binding-darwin-x64": "npm:1.11.1" - "@unrs/resolver-binding-freebsd-x64": "npm:1.11.1" - "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.11.1" - "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.11.1" - "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-arm64-musl": "npm:1.11.1" - "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-riscv64-musl": "npm:1.11.1" - "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-x64-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-x64-musl": "npm:1.11.1" - "@unrs/resolver-binding-wasm32-wasi": "npm:1.11.1" - "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.11.1" - "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.11.1" - "@unrs/resolver-binding-win32-x64-msvc": "npm:1.11.1" - napi-postinstall: "npm:^0.3.0" - dependenciesMeta: - "@unrs/resolver-binding-android-arm-eabi": - optional: true - "@unrs/resolver-binding-android-arm64": - optional: true - "@unrs/resolver-binding-darwin-arm64": - optional: true - "@unrs/resolver-binding-darwin-x64": - optional: true - "@unrs/resolver-binding-freebsd-x64": - optional: true - "@unrs/resolver-binding-linux-arm-gnueabihf": - optional: true - "@unrs/resolver-binding-linux-arm-musleabihf": - optional: true - "@unrs/resolver-binding-linux-arm64-gnu": - optional: true - "@unrs/resolver-binding-linux-arm64-musl": - optional: true - "@unrs/resolver-binding-linux-ppc64-gnu": - optional: true - "@unrs/resolver-binding-linux-riscv64-gnu": - optional: true - "@unrs/resolver-binding-linux-riscv64-musl": - optional: true - "@unrs/resolver-binding-linux-s390x-gnu": - optional: true - "@unrs/resolver-binding-linux-x64-gnu": - optional: true - "@unrs/resolver-binding-linux-x64-musl": - optional: true - "@unrs/resolver-binding-wasm32-wasi": - optional: true - "@unrs/resolver-binding-win32-arm64-msvc": - optional: true - "@unrs/resolver-binding-win32-ia32-msvc": - optional: true - "@unrs/resolver-binding-win32-x64-msvc": - optional: true - checksum: 10c0/c91b112c71a33d6b24e5c708dab43ab80911f2df8ee65b87cd7a18fb5af446708e98c4b415ca262026ad8df326debcc7ca6a801b2935504d87fd6f0b9d70dce1 - languageName: node - linkType: hard - "untildify@npm:^4.0.0": version: 4.0.0 resolution: "untildify@npm:4.0.0" From 57edebd6e2c66ee52e5a289c4839f792b481b6a5 Mon Sep 17 00:00:00 2001 From: burtonjong Date: Sat, 7 Feb 2026 15:55:37 -0700 Subject: [PATCH 5/6] fix all linting errors --- .vscode/settings.json | 13 +- eslint.config.mjs | 26 ++- package.json | 10 +- .../client/src/components/atoms/PauseIcon.tsx | 4 +- .../client/src/components/atoms/PlayIcon.tsx | 2 +- .../src/components/containers/MLContainer.tsx | 10 +- .../components/containers/MapContainer.tsx | 10 +- .../src/components/containers/Plotly.tsx | 8 +- .../global/AppStateEffectsManager.tsx | 176 +++++++++++---- .../global/LapDataListenerManager.tsx | 2 +- .../DataPickerMolecules/DatePickerColumn.tsx | 4 +- .../PlaybackDatePicker.tsx | 17 +- .../Settings/DriverNameUpdate.tsx | 9 +- .../components/molecules/MapMolecules/Map.tsx | 11 +- .../molecules/MapMolecules/MapControls.tsx | 2 +- .../RaceTabMolecules/DriverFilter.tsx | 8 +- .../client/src/components/tabs/RaceTab.tsx | 33 +-- .../client/src/contexts/FullscreenWrapper.tsx | 4 +- packages/client/src/hooks/PIS/PIS.motor.tsx | 1 - .../client/src/pages/api/checkMQTTPassword.ts | 5 +- .../src/pages/api/getLapCorrelationMatrix.ts | 8 +- .../pages/api/getPacketCorrelationMatrix.ts | 8 +- packages/client/src/stores/useLapData.ts | 4 +- packages/client/src/types.d.ts | 3 +- yarn.lock | 200 +++++++++++++++++- 25 files changed, 459 insertions(+), 119 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5df632ed..383ac31e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -14,5 +14,14 @@ "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "typescript.preferences.importModuleSpecifier": "non-relative", - "javascript.preferences.importModuleSpecifier": "non-relative" -} \ No newline at end of file + "javascript.preferences.importModuleSpecifier": "non-relative", + "eslint.enable": true, + "eslint.useFlatConfig": true, + "eslint.workingDirectories": [{ "mode": "auto" }], + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact" + ] +} diff --git a/eslint.config.mjs b/eslint.config.mjs index d50e21ed..0e9d7d9e 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -5,6 +5,7 @@ import prettierPlugin from "eslint-plugin-prettier"; import promisePlugin from "eslint-plugin-promise"; import reactPlugin from "eslint-plugin-react"; import nextPlugin from "@next/eslint-plugin-next"; +import reactHooks from "eslint-plugin-react-hooks"; import tseslint from "typescript-eslint"; import sortKeys from "eslint-plugin-sort-keys"; import sortDestructureKeys from "eslint-plugin-sort-destructure-keys"; @@ -23,18 +24,26 @@ export default [ "**/node_modules/**", "packages/db/src/entities/*.ts", "packages/client/tailwind.config.ts", + "**/.next/**", + "**/dist/**", + "**/build/**", + "**/.turbo/**", ], }, + ...tseslint.configs.recommendedTypeChecked.map((config) => ({ + ...config, + files: ["**/*.ts", "**/*.tsx"], // We use TS config only for TS files + })), + // ======================== // Base TypeScript rules (ALL packages) // ======================== { files: ["**/*.ts", "**/*.tsx"], languageOptions: { - parser: tseslint.parser, parserOptions: { - project: ["./tsconfig.json", "./packages/*/tsconfig.json"], + projectService: true, tsconfigRootDir: __dirname, }, }, @@ -46,8 +55,6 @@ export default [ "sort-destructure-keys": sortDestructureKeys, }, rules: { - ...tseslint.configs.recommendedTypeChecked.rules, - "@typescript-eslint/no-unused-vars": [ "warn", { argsIgnorePattern: "^_" }, @@ -74,6 +81,15 @@ export default [ plugins: { react: reactPlugin, "@next/next": nextPlugin, + "react-hooks": reactHooks, + }, + settings: { + react: { + version: "detect", + }, + next: { + rootDir: "packages/client", + }, }, rules: { ...reactPlugin.configs.recommended.rules, @@ -81,6 +97,8 @@ export default [ "react/jsx-sort-props": "error", "react/sort-comp": "off", + "react/react-in-jsx-scope": "off", + "@next/next/no-html-link-for-pages": ["error", "packages/client/src/pages"], }, }, diff --git a/package.json b/package.json index f9aed902..47824395 100644 --- a/package.json +++ b/package.json @@ -30,12 +30,16 @@ "schema:drop": "lerna run schema:drop --scope=db" }, "devDependencies": { + "@eslint/js": "^10.0.1", + "@next/eslint-plugin-next": "^16.1.6", "@types/eslint": "^9.6.0", "eslint": "9.0.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-import": "^2.29.1", "eslint-plugin-prettier": "^5.5.5", "eslint-plugin-promise": "^7.2.1", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-sort-destructure-keys": "^2.0.0", "eslint-plugin-sort-keys": "^2.3.5", "husky": "^8.0.3", @@ -62,9 +66,5 @@ "resolutions": { "nx": "20.6.4" }, - "packageManager": "yarn@4.6.0", - "dependencies": { - "@next/eslint-plugin-next": "^16.1.6", - "eslint-plugin-react": "^7.37.5" - } + "packageManager": "yarn@4.6.0" } diff --git a/packages/client/src/components/atoms/PauseIcon.tsx b/packages/client/src/components/atoms/PauseIcon.tsx index 52b3ea26..430ed3e4 100644 --- a/packages/client/src/components/atoms/PauseIcon.tsx +++ b/packages/client/src/components/atoms/PauseIcon.tsx @@ -13,10 +13,10 @@ const PauseIcon = (props: SvgProps) => { xmlns="http://www.w3.org/2000/svg" > ); diff --git a/packages/client/src/components/atoms/PlayIcon.tsx b/packages/client/src/components/atoms/PlayIcon.tsx index 53038303..7557cb3a 100644 --- a/packages/client/src/components/atoms/PlayIcon.tsx +++ b/packages/client/src/components/atoms/PlayIcon.tsx @@ -15,7 +15,7 @@ const PlayIcon = (props: SvgProps) => { ); diff --git a/packages/client/src/components/containers/MLContainer.tsx b/packages/client/src/components/containers/MLContainer.tsx index f7df786c..9414b03e 100644 --- a/packages/client/src/components/containers/MLContainer.tsx +++ b/packages/client/src/components/containers/MLContainer.tsx @@ -1,5 +1,6 @@ "use client"; +import axios from "axios"; import { useTheme } from "next-themes"; import { useEffect, useState } from "react"; import type { PlotParams } from "react-plotly.js"; @@ -26,9 +27,9 @@ export default function MLContainer({ useEffect(() => { const fetchPlot = async () => { try { - const response = await fetch(plotType); - const graph = await response.json(); - const data = JSON.parse(graph) as PlotParams; + // TODO: check to see if data is being parsed correctly. + const response = await axios.get(plotType); + const data = JSON.parse(response.data) as PlotParams; const layout: PlotParams["layout"] = { autosize: true, font: { @@ -49,7 +50,8 @@ export default function MLContainer({ setPlot({ error: true }); } }; - fetchPlot(); + + void fetchPlot(); }, [plotType, resolvedTheme]); if (!plot || !resolvedTheme || resolvedTheme === undefined) { diff --git a/packages/client/src/components/containers/MapContainer.tsx b/packages/client/src/components/containers/MapContainer.tsx index e5a054fd..c17170d1 100644 --- a/packages/client/src/components/containers/MapContainer.tsx +++ b/packages/client/src/components/containers/MapContainer.tsx @@ -2,7 +2,7 @@ import { type JSX, useEffect, useState } from "react"; import Map from "@/components/molecules/MapMolecules/Map"; import MapText from "@/components/molecules/MapMolecules/MapText"; -import { useAppState } from "@/stores/useAppState"; +import { CONNECTIONTYPES, useAppState } from "@/stores/useAppState"; import { usePacketStore } from "@/stores/usePacket"; import { Coords } from "@shared/helios-types"; @@ -20,18 +20,18 @@ function MapContainer(): JSX.Element { const { currentAppState } = useAppState(); const { currentPacket } = usePacketStore(); - const isDemo = currentAppState.connectionType === "DEMO"; + const isDemo = currentAppState.connectionType === CONNECTIONTYPES.DEMO; const [carLocation, setCarLocation] = useState( isDemo ? startingLocation : currentAppState.lapCoords, ); useEffect(() => { if (isDemo) { let positionPacket = 0; - const interval = setInterval((prevState) => { - setCarLocation({ + const interval = setInterval(() => { + setCarLocation((prevState) => ({ lat: TRACK_COORDINATES[positionPacket]?.[1] ?? prevState.lat, long: TRACK_COORDINATES[positionPacket]?.[0] ?? prevState.long, - }); + })); positionPacket++; if (positionPacket >= TRACK_COORDINATES.length) { positionPacket = 0; diff --git a/packages/client/src/components/containers/Plotly.tsx b/packages/client/src/components/containers/Plotly.tsx index fee933a9..c9e02c40 100644 --- a/packages/client/src/components/containers/Plotly.tsx +++ b/packages/client/src/components/containers/Plotly.tsx @@ -32,9 +32,11 @@ const Plotly = dynamic( useEffect(() => { let instance: Plotly.PlotlyHTMLElement | undefined; if (originRef.current) { - newPlot(originRef.current, data, layout, config).then((ref) => { - setHandle((instance = ref)); - }); + void newPlot(originRef.current, data, layout, config).then( + (ref) => { + setHandle((instance = ref)); + }, + ); } return () => { if (instance) { diff --git a/packages/client/src/components/global/AppStateEffectsManager.tsx b/packages/client/src/components/global/AppStateEffectsManager.tsx index b6b2ed5b..0673b9d4 100644 --- a/packages/client/src/components/global/AppStateEffectsManager.tsx +++ b/packages/client/src/components/global/AppStateEffectsManager.tsx @@ -2,7 +2,113 @@ import { useCallback, useEffect } from "react"; -import { CONNECTIONTYPES, useAppState } from "@/stores/useAppState"; +import { APPUNITS, CONNECTIONTYPES, useAppState } from "@/stores/useAppState"; + +type AppStateStore = ReturnType; +type AppState = AppStateStore extends { currentAppState: infer T } ? T : never; + +type SerializedPlaybackDateTime = { + date: string | null; + endTime: string | null; + startTime: string | null; +}; + +type PersistedSettings = Partial< + Pick & { + playbackDateTime: SerializedPlaybackDateTime | null; + } +>; + +const DEFAULT_FAVOURITES = [ + "Motor Temp", + "Battery Cell Voltage", + "Vehicle Velocity", + "Pack Voltage", + "Pack Current", + "Battery Average Voltage", +]; + +const isRecord = (value: unknown): value is Record => + typeof value === "object" && value !== null; + +const parseJson = (value: string): T | null => { + try { + return JSON.parse(value) as T; + } catch { + return null; + } +}; + +const parseFavourites = (value: string | null): string[] | null => { + if (!value) { + return null; + } + + const parsed = parseJson(value); + + if ( + Array.isArray(parsed) && + parsed.every((item) => typeof item === "string") + ) { + return parsed; + } + + return null; +}; + +const parseAppUnits = (value: unknown): AppState["appUnits"] | null => + Object.values(APPUNITS).includes(value as APPUNITS) + ? (value as AppState["appUnits"]) + : null; + +const parseConnectionType = ( + value: unknown, +): AppState["connectionType"] | null => + Object.values(CONNECTIONTYPES).includes(value as CONNECTIONTYPES) + ? (value as AppState["connectionType"]) + : null; + +const parseCoords = (value: unknown): AppState["lapCoords"] | null => { + if (!isRecord(value)) { + return null; + } + + const { lat, long } = value; + + if (typeof lat !== "number" || typeof long !== "number") { + return null; + } + + return { lat, long } as AppState["lapCoords"]; +}; + +const parseDateValue = (value: unknown): Date | null => { + if (typeof value !== "string") { + return null; + } + + const timestamp = Date.parse(value); + + return Number.isNaN(timestamp) ? null : new Date(timestamp); +}; + +const parsePlaybackDateTime = ( + value: unknown, +): AppState["playbackDateTime"] => { + if (!isRecord(value)) { + return { + date: null, + endTime: null, + startTime: null, + } as AppState["playbackDateTime"]; + } + + return { + date: parseDateValue(value.date), + endTime: parseDateValue(value.endTime), + startTime: parseDateValue(value.startTime), + } as AppState["playbackDateTime"]; +}; export default function AppStateEffects() { const { currentAppState, setCurrentAppState } = useAppState(); @@ -36,7 +142,6 @@ export default function AppStateEffects() { loading: !currentAppState.radioConnected, })); } - // eslint-disable-next-line react-hooks/exhaustive-deps }, [ currentAppState.socketConnected, currentAppState.radioConnected, @@ -56,49 +161,34 @@ export default function AppStateEffects() { const savedSettings = localStorage.getItem("settings"); const favourites = localStorage.getItem("favourites"); - if (savedSettings) { - const parsedSettings = JSON.parse(savedSettings); - - const parsedFavourites = favourites - ? (JSON.parse(favourites) as string[]) - : [ - "Motor Temp", - "Battery Cell Voltage", - "Vehicle Velocity", - "Pack Voltage", - "Pack Current", - "Battery Average Voltage", - ]; - - const hasPlaybackDateTime = !!parsedSettings.playbackDateTime; - - const parsedPlaybackDateTime = hasPlaybackDateTime - ? { - date: parsedSettings.playbackDateTime!.date - ? new Date(parsedSettings.playbackDateTime!.date) - : null, - endTime: parsedSettings.playbackDateTime!.endTime - ? new Date(parsedSettings.playbackDateTime!.endTime) - : null, - startTime: parsedSettings.playbackDateTime!.startTime - ? new Date(parsedSettings.playbackDateTime!.startTime) - : null, - } - : { - date: null, - endTime: null, - startTime: null, - }; + if (!savedSettings) { + return; + } - setCurrentAppState((prev) => ({ - ...prev, - appUnits: parsedSettings.appUnits ?? prev.appUnits, - connectionType: parsedSettings.connectionType ?? prev.connectionType, - favourites: parsedFavourites, - lapCoords: parsedSettings.lapCoords ?? prev.lapCoords, - playbackDateTime: parsedPlaybackDateTime, - })); + const parsedSettings = parseJson(savedSettings); + + if (!parsedSettings) { + return; } + + const parsedFavourites = parseFavourites(favourites) ?? DEFAULT_FAVOURITES; + const parsedPlaybackDateTime = parsePlaybackDateTime( + parsedSettings.playbackDateTime, + ); + const parsedAppUnits = parseAppUnits(parsedSettings.appUnits); + const parsedConnectionType = parseConnectionType( + parsedSettings.connectionType, + ); + const parsedLapCoords = parseCoords(parsedSettings.lapCoords); + + setCurrentAppState((prev) => ({ + ...prev, + appUnits: parsedAppUnits ?? prev.appUnits, + connectionType: parsedConnectionType ?? prev.connectionType, + favourites: parsedFavourites, + lapCoords: parsedLapCoords ?? prev.lapCoords, + playbackDateTime: parsedPlaybackDateTime, + })); }, [setCurrentAppState]); const saveSettingsToLocalStorage = useCallback(() => { diff --git a/packages/client/src/components/global/LapDataListenerManager.tsx b/packages/client/src/components/global/LapDataListenerManager.tsx index a71a806a..96107c3f 100644 --- a/packages/client/src/components/global/LapDataListenerManager.tsx +++ b/packages/client/src/components/global/LapDataListenerManager.tsx @@ -12,7 +12,7 @@ export function LapListenerManager(): React.ReactElement | null { // Fetch initial lap data when manager mounts useEffect(() => { - fetchLapData(); + void fetchLapData(); }, [fetchLapData]); // Handle connection type changes diff --git a/packages/client/src/components/molecules/LogoStatusMolecules/DataPickerMolecules/DatePickerColumn.tsx b/packages/client/src/components/molecules/LogoStatusMolecules/DataPickerMolecules/DatePickerColumn.tsx index e0b997a5..8ff021b6 100644 --- a/packages/client/src/components/molecules/LogoStatusMolecules/DataPickerMolecules/DatePickerColumn.tsx +++ b/packages/client/src/components/molecules/LogoStatusMolecules/DataPickerMolecules/DatePickerColumn.tsx @@ -30,7 +30,7 @@ const DataPickerColumn = ({ React.SetStateAction >; playbackDateTime: IPlaybackDateTime; - fetchPlaybackData: () => void; + fetchPlaybackData: () => Promise; }) => { const { setCurrentAppState } = useAppState(); @@ -79,7 +79,7 @@ const DataPickerColumn = ({ }, })); setConfirmedPlaybackDateTime(playbackDateTime); - fetchPlaybackData(); + void fetchPlaybackData(); }; // Handle TimeInput change to update startTime or endTime const handleTimeChange = ( diff --git a/packages/client/src/components/molecules/LogoStatusMolecules/PlaybackDatePicker.tsx b/packages/client/src/components/molecules/LogoStatusMolecules/PlaybackDatePicker.tsx index 2e6bcf2f..af49b08e 100644 --- a/packages/client/src/components/molecules/LogoStatusMolecules/PlaybackDatePicker.tsx +++ b/packages/client/src/components/molecules/LogoStatusMolecules/PlaybackDatePicker.tsx @@ -155,17 +155,22 @@ function PlaybackDatePicker() { } try { - const response = await axios.get(`${prodURL}/packetsBetween`, { - params: { endTime: endTimeUTC, startTime: startTimeUTC }, - }); + const response = await axios.get( + `${prodURL}/packetsBetween`, + { + params: { endTime: endTimeUTC, startTime: startTimeUTC }, + }, + ); - const extractedData: ITelemetryData[] = response.data.data.map( + const extractedData: ITelemetryData[] = response.data.map( (item: IPlaybackDataResponse) => item.data, ); setPlaybackData(extractedData); } catch (error) { - throw new Error(`Error fetching playback data: ${error}`); + throw new Error( + `Error fetching playback data: ${error instanceof Error ? error.message : String(error)}`, + ); } finally { setLoading(false); } @@ -178,7 +183,7 @@ function PlaybackDatePicker() { currentAppState.playbackDateTime?.date ) { setPlaybackDateTime(currentAppState.playbackDateTime); - fetchPlaybackData(); + void fetchPlaybackData(); } }, [currentAppState.playbackSwitch]); diff --git a/packages/client/src/components/molecules/LogoStatusMolecules/Settings/DriverNameUpdate.tsx b/packages/client/src/components/molecules/LogoStatusMolecules/Settings/DriverNameUpdate.tsx index 297601de..8119686f 100644 --- a/packages/client/src/components/molecules/LogoStatusMolecules/Settings/DriverNameUpdate.tsx +++ b/packages/client/src/components/molecules/LogoStatusMolecules/Settings/DriverNameUpdate.tsx @@ -1,4 +1,4 @@ -import axios from "axios"; +import axios, { AxiosResponse } from "axios"; import React, { useState } from "react"; import { sand } from "@/styles/colors"; @@ -81,7 +81,7 @@ export default function DriverUpdate() { if (validateInputs()) { if (await checkMQTTPassword()) { axios - .post(`${prodURL}/updatedriverinfo`, { + .post<{ message: string }>(`${prodURL}/updatedriverinfo`, { Rfid: driverDetails.Rfid, name: driverDetails.name, }) @@ -110,7 +110,10 @@ export default function DriverUpdate() {
-
+ void handleSubmit(e)} + > {Object.keys(driverDetailsText).map((key) => ( ; +}; + // this is for the demo mode when default tracks are shown in demo mode export type TrackList = { layerProps: LayerProps & Partial; - sourceProps: SourceProps & { - data: FeatureCollection; - }; + sourceProps: TrackSourceProps; trackName: string; }; if (!process.env.NEXT_PUBLIC_MAPSAPIKEY) diff --git a/packages/client/src/components/molecules/MapMolecules/MapControls.tsx b/packages/client/src/components/molecules/MapMolecules/MapControls.tsx index 4486ddf8..6f8bddd1 100644 --- a/packages/client/src/components/molecules/MapMolecules/MapControls.tsx +++ b/packages/client/src/components/molecules/MapMolecules/MapControls.tsx @@ -90,7 +90,7 @@ export default function MapControls({
- {trackList.map((track, index) => { + {trackList.map((track: TrackList, index) => { return ( ) : ( diff --git a/packages/client/src/components/tabs/RaceTab.tsx b/packages/client/src/components/tabs/RaceTab.tsx index 7176b94f..283ed052 100644 --- a/packages/client/src/components/tabs/RaceTab.tsx +++ b/packages/client/src/components/tabs/RaceTab.tsx @@ -9,7 +9,7 @@ import { useLapDataStore } from "@/stores/useLapData"; import { notifications } from "@mantine/notifications"; import { SelectChangeEvent } from "@mui/material/Select"; import { type IFormattedLapData, prodURL } from "@shared/helios-types"; -import { IDriverData } from "@shared/helios-types/src/types"; +import { IDriverData, ILapData } from "@shared/helios-types/src/types"; import { SortingState, getCoreRowModel, @@ -61,8 +61,8 @@ function RaceTab() { ); // copy rfid to clipboard - const handleCopy = () => { - navigator.clipboard.writeText(String(Rfid)); + const handleCopy = async () => { + await navigator.clipboard.writeText(String(Rfid)); setCopy(1); setTimeout(() => setCopy(0), 5000); onCopied(); @@ -88,7 +88,7 @@ function RaceTab() { setFilteredLaps(lapData); } else { await fetchFilteredLaps(Number(newRFID)).then((response) => { - const formattedData = response.data.map(formatLapData); + const formattedData = response.map(formatLapData); setFilteredLaps(formattedData); }); } @@ -99,7 +99,7 @@ function RaceTab() { // fetch the driver names from dynamo const fetchDriverNames = async () => { try { - const response = await axios.get(`${prodURL}/drivers`); + const response = await axios.get(`${prodURL}/drivers`); return response.data; } catch (error) { @@ -110,32 +110,37 @@ function RaceTab() { // get the driver laps based on the selected rfid const fetchFilteredLaps = async (Rfid: number) => { try { - const response = await axios.get(`${prodURL}/driver/${Rfid}`); + const response = await axios.get(`${prodURL}/driver/${Rfid}`); return response.data; } catch (error) { setFilteredLaps([]); - return { error: "Error fetching driver laps" }; + return []; } }; // fetching driver names when component mounts useEffect(() => { - fetchLapData(); - fetchDriverNames() - .then((response) => { + void (async (): Promise => { + try { + await fetchLapData(); + + const response = await fetchDriverNames(); + if (!Array.isArray(response)) { setDriverData([]); return; } + const driverData = response.map((driver: IDriverData) => ({ Rfid: driver.Rfid, driver: driver.driver, })); + setDriverData(driverData); - }) - .catch((error) => { - throw new Error(error); - }); + } catch (error) { + setDriverData([]); + } + })(); }, []); return ( diff --git a/packages/client/src/contexts/FullscreenWrapper.tsx b/packages/client/src/contexts/FullscreenWrapper.tsx index 3e8177dd..5413355e 100644 --- a/packages/client/src/contexts/FullscreenWrapper.tsx +++ b/packages/client/src/contexts/FullscreenWrapper.tsx @@ -42,9 +42,9 @@ const FullscreenWrapper = ({ return; } if (!document.fullscreenElement) { - elementReferenced.requestFullscreen(); + void elementReferenced.requestFullscreen(); } else { - document.exitFullscreen?.(); + void document.exitFullscreen?.(); } } diff --git a/packages/client/src/hooks/PIS/PIS.motor.tsx b/packages/client/src/hooks/PIS/PIS.motor.tsx index a9c4995c..99be9a62 100644 --- a/packages/client/src/hooks/PIS/PIS.motor.tsx +++ b/packages/client/src/hooks/PIS/PIS.motor.tsx @@ -1,4 +1,3 @@ -/* eslint-disable sort-keys */ import type I_PIS from "@/objects/PIS/PIS.interface"; import { type I_PISField } from "@/objects/PIS/PIS.interface"; import { UnitType } from "@/objects/PIS/PIS.interface"; diff --git a/packages/client/src/pages/api/checkMQTTPassword.ts b/packages/client/src/pages/api/checkMQTTPassword.ts index 0301b105..92ef958f 100644 --- a/packages/client/src/pages/api/checkMQTTPassword.ts +++ b/packages/client/src/pages/api/checkMQTTPassword.ts @@ -2,7 +2,10 @@ import { NextApiRequest, NextApiResponse } from "next"; export default function handler(req: NextApiRequest, res: NextApiResponse) { if (req.method === "POST") { - if (req.body.password === process.env.DRIVER_UPDATE_PASSWORD) { + if ( + (req.body as { password: string }).password === + process.env.DRIVER_UPDATE_PASSWORD + ) { res.status(200).send("Authorized"); } else { res.status(401).json({ error: "Unauthorized" }); diff --git a/packages/client/src/pages/api/getLapCorrelationMatrix.ts b/packages/client/src/pages/api/getLapCorrelationMatrix.ts index d0ba2c09..822544b3 100644 --- a/packages/client/src/pages/api/getLapCorrelationMatrix.ts +++ b/packages/client/src/pages/api/getLapCorrelationMatrix.ts @@ -1,3 +1,4 @@ +import axios from "axios"; import type { NextApiRequest, NextApiResponse } from "next"; const API_ROUTE = process.env.GET_LAP_CORRELATION_MATRIX_URL; @@ -9,10 +10,11 @@ export default async function handler( res: NextApiResponse, ) { try { - const result = await fetch(API_ROUTE as string); - const graph = await result.json(); + // TODO: check to see if this is parsing correctly (json vs string) + const response = await axios.get(API_ROUTE as string); + const graph = response.data; res.status(200).json(graph); } catch (err) { - res.status(500).json({ error: "failed to load data" + err }); + res.status(500).json({ error: `failed to load data: ${String(err)}` }); } } diff --git a/packages/client/src/pages/api/getPacketCorrelationMatrix.ts b/packages/client/src/pages/api/getPacketCorrelationMatrix.ts index 478f6410..76ddcf33 100644 --- a/packages/client/src/pages/api/getPacketCorrelationMatrix.ts +++ b/packages/client/src/pages/api/getPacketCorrelationMatrix.ts @@ -1,3 +1,4 @@ +import axios from "axios"; import type { NextApiRequest, NextApiResponse } from "next"; const API_ROUTE = process.env.GET_PACKET_CORRELATION_MATRIX_URL; @@ -9,10 +10,11 @@ export default async function handler( res: NextApiResponse, ) { try { - const result = await fetch(API_ROUTE as string); - const graph = await result.json(); + // TODO: check to see if this is parsing correctly (json vs string) + const response = await axios.get(API_ROUTE as string); + const graph = response.data; res.status(200).json(graph); } catch (err) { - res.status(500).json({ error: "failed to load data" + err }); + res.status(500).json({ error: `failed to load data: ${String(err)}` }); } } diff --git a/packages/client/src/stores/useLapData.ts b/packages/client/src/stores/useLapData.ts index 2c4540e7..9ea19dde 100644 --- a/packages/client/src/stores/useLapData.ts +++ b/packages/client/src/stores/useLapData.ts @@ -45,7 +45,7 @@ export const useLapDataStore = create((set) => ({ fetchLapData: async () => { try { - const response = await axios.get(`${prodURL}/laps`); + const response = await axios.get<{ data: ILapData[] }>(`${prodURL}/laps`); if (!Array.isArray(response.data?.data)) { throw new Error("Invalid API response format"); @@ -57,7 +57,7 @@ export const useLapDataStore = create((set) => ({ } catch (error) { notifications.show({ color: "red", - message: "Failed to fetch lap data from the server.", + message: `Failed to fetch lap data from the server: ${error instanceof Error ? error.message : "Unknown error"}`, title: "Error", }); } diff --git a/packages/client/src/types.d.ts b/packages/client/src/types.d.ts index c7e4d751..1eeb67bf 100644 --- a/packages/client/src/types.d.ts +++ b/packages/client/src/types.d.ts @@ -3,8 +3,7 @@ import { ThreeElements } from "@react-three/fiber"; declare global { namespace React { namespace JSX { - // eslint-disable-next-line @typescript-eslint/no-empty-object-type - interface IntrinsicElements extends ThreeElements {} + type IntrinsicElements = ThreeElements; } } } diff --git a/yarn.lock b/yarn.lock index c76470ef..9d760310 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5203,6 +5203,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/code-frame@npm:7.29.0" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.28.5" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.1.1" + checksum: 10c0/d34cc504e7765dfb576a663d97067afb614525806b5cad1a5cc1a7183b916fec8ff57fa233585e3926fd5a9e6b31aae6df91aa81ae9775fb7a28f658d3346f0d + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.27.2": version: 7.28.5 resolution: "@babel/compat-data@npm:7.28.5" @@ -5210,6 +5221,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.28.6": + version: 7.29.0 + resolution: "@babel/compat-data@npm:7.29.0" + checksum: 10c0/08f348554989d23aa801bf1405aa34b15e841c0d52d79da7e524285c77a5f9d298e70e11d91cc578d8e2c9542efc586d50c5f5cf8e1915b254a9dcf786913a94 + languageName: node + linkType: hard + "@babel/core@npm:^7.14.0": version: 7.28.5 resolution: "@babel/core@npm:7.28.5" @@ -5233,6 +5251,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.24.4": + version: 7.29.0 + resolution: "@babel/core@npm:7.29.0" + dependencies: + "@babel/code-frame": "npm:^7.29.0" + "@babel/generator": "npm:^7.29.0" + "@babel/helper-compilation-targets": "npm:^7.28.6" + "@babel/helper-module-transforms": "npm:^7.28.6" + "@babel/helpers": "npm:^7.28.6" + "@babel/parser": "npm:^7.29.0" + "@babel/template": "npm:^7.28.6" + "@babel/traverse": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" + "@jridgewell/remapping": "npm:^2.3.5" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/5127d2e8e842ae409e11bcbb5c2dff9874abf5415e8026925af7308e903f4f43397341467a130490d1a39884f461bc2b67f3063bce0be44340db89687fd852aa + languageName: node + linkType: hard + "@babel/generator@npm:7.0.0-beta.4": version: 7.0.0-beta.4 resolution: "@babel/generator@npm:7.0.0-beta.4" @@ -5270,6 +5311,19 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.29.0": + version: 7.29.1 + resolution: "@babel/generator@npm:7.29.1" + dependencies: + "@babel/parser": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" + "@jridgewell/gen-mapping": "npm:^0.3.12" + "@jridgewell/trace-mapping": "npm:^0.3.28" + jsesc: "npm:^3.0.2" + checksum: 10c0/349086e6876258ef3fb2823030fee0f6c0eb9c3ebe35fc572e16997f8c030d765f636ddc6299edae63e760ea6658f8ee9a2edfa6d6b24c9a80c917916b973551 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.27.1, @babel/helper-annotate-as-pure@npm:^7.27.3": version: 7.27.3 resolution: "@babel/helper-annotate-as-pure@npm:7.27.3" @@ -5292,6 +5346,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helper-compilation-targets@npm:7.28.6" + dependencies: + "@babel/compat-data": "npm:^7.28.6" + "@babel/helper-validator-option": "npm:^7.27.1" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/3fcdf3b1b857a1578e99d20508859dbd3f22f3c87b8a0f3dc540627b4be539bae7f6e61e49d931542fe5b557545347272bbdacd7f58a5c77025a18b745593a50 + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.18.6": version: 7.28.5 resolution: "@babel/helper-create-class-features-plugin@npm:7.28.5" @@ -5364,6 +5431,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helper-module-imports@npm:7.28.6" + dependencies: + "@babel/traverse": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + checksum: 10c0/b49d8d8f204d9dbfd5ac70c54e533e5269afb3cea966a9d976722b13e9922cc773a653405f53c89acb247d5aebdae4681d631a3ae3df77ec046b58da76eda2ac + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.3": version: 7.28.3 resolution: "@babel/helper-module-transforms@npm:7.28.3" @@ -5377,6 +5454,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helper-module-transforms@npm:7.28.6" + dependencies: + "@babel/helper-module-imports": "npm:^7.28.6" + "@babel/helper-validator-identifier": "npm:^7.28.5" + "@babel/traverse": "npm:^7.28.6" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/6f03e14fc30b287ce0b839474b5f271e72837d0cafe6b172d759184d998fbee3903a035e81e07c2c596449e504f453463d58baa65b6f40a37ded5bec74620b2b + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-optimise-call-expression@npm:7.27.1" @@ -5456,6 +5546,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helpers@npm:7.28.6" + dependencies: + "@babel/template": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + checksum: 10c0/c4a779c66396bb0cf619402d92f1610601ff3832db2d3b86b9c9dd10983bf79502270e97ac6d5280cea1b1a37de2f06ecbac561bd2271545270407fbe64027cb + languageName: node + linkType: hard + "@babel/parser@npm:^7.14.0, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.5": version: 7.28.5 resolution: "@babel/parser@npm:7.28.5" @@ -5467,6 +5567,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.24.4, @babel/parser@npm:^7.28.6, @babel/parser@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/parser@npm:7.29.0" + dependencies: + "@babel/types": "npm:^7.29.0" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/333b2aa761264b91577a74bee86141ef733f9f9f6d4fc52548e4847dc35dfbf821f58c46832c637bfa761a6d9909d6a68f7d1ed59e17e4ffbb958dc510c17b62 + languageName: node + linkType: hard + "@babel/plugin-proposal-class-properties@npm:^7.0.0": version: 7.18.6 resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" @@ -5794,6 +5905,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/template@npm:7.28.6" + dependencies: + "@babel/code-frame": "npm:^7.28.6" + "@babel/parser": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + checksum: 10c0/66d87225ed0bc77f888181ae2d97845021838c619944877f7c4398c6748bcf611f216dfd6be74d39016af502bca876e6ce6873db3c49e4ac354c56d34d57e9f5 + languageName: node + linkType: hard + "@babel/traverse@npm:7.23.2": version: 7.23.2 resolution: "@babel/traverse@npm:7.23.2" @@ -5827,6 +5949,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.28.6, @babel/traverse@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/traverse@npm:7.29.0" + dependencies: + "@babel/code-frame": "npm:^7.29.0" + "@babel/generator": "npm:^7.29.0" + "@babel/helper-globals": "npm:^7.28.0" + "@babel/parser": "npm:^7.29.0" + "@babel/template": "npm:^7.28.6" + "@babel/types": "npm:^7.29.0" + debug: "npm:^4.3.1" + checksum: 10c0/f63ef6e58d02a9fbf3c0e2e5f1c877da3e0bc57f91a19d2223d53e356a76859cbaf51171c9211c71816d94a0e69efa2732fd27ffc0e1bbc84b636e60932333eb + languageName: node + linkType: hard + "@babel/types@npm:7.0.0-beta.4": version: 7.0.0-beta.4 resolution: "@babel/types@npm:7.0.0-beta.4" @@ -5858,7 +5995,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.26.0": +"@babel/types@npm:^7.26.0, @babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0": version: 7.29.0 resolution: "@babel/types@npm:7.29.0" dependencies: @@ -6537,6 +6674,18 @@ __metadata: languageName: node linkType: hard +"@eslint/js@npm:^10.0.1": + version: 10.0.1 + resolution: "@eslint/js@npm:10.0.1" + peerDependencies: + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true + checksum: 10c0/9f3fcaf71ba7fdf65d82e8faad6ecfe97e11801cc3c362b306a88ea1ed1344ae0d35330dddb0e8ad18f010f6687a70b75491b9e01c8af57acd7987cee6b3ec6c + languageName: node + linkType: hard + "@faker-js/faker@npm:^9.0.3, @faker-js/faker@npm:^9.3.0": version: 9.9.0 resolution: "@faker-js/faker@npm:9.9.0" @@ -14917,6 +15066,21 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react-hooks@npm:^7.0.1": + version: 7.0.1 + resolution: "eslint-plugin-react-hooks@npm:7.0.1" + dependencies: + "@babel/core": "npm:^7.24.4" + "@babel/parser": "npm:^7.24.4" + hermes-parser: "npm:^0.25.1" + zod: "npm:^3.25.0 || ^4.0.0" + zod-validation-error: "npm:^3.5.0 || ^4.0.0" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + checksum: 10c0/1e711d1a9d1fa9cfc51fa1572500656577201199c70c795c6a27adfc1df39e5c598f69aab6aa91117753d23cc1f11388579a2bed14921cf9a4efe60ae8618496 + languageName: node + linkType: hard + "eslint-plugin-react@npm:^7.37.5": version: 7.37.5 resolution: "eslint-plugin-react@npm:7.37.5" @@ -16506,6 +16670,22 @@ __metadata: languageName: node linkType: hard +"hermes-estree@npm:0.25.1": + version: 0.25.1 + resolution: "hermes-estree@npm:0.25.1" + checksum: 10c0/48be3b2fa37a0cbc77a112a89096fa212f25d06de92781b163d67853d210a8a5c3784fac23d7d48335058f7ed283115c87b4332c2a2abaaccc76d0ead1a282ac + languageName: node + linkType: hard + +"hermes-parser@npm:^0.25.1": + version: 0.25.1 + resolution: "hermes-parser@npm:0.25.1" + dependencies: + hermes-estree: "npm:0.25.1" + checksum: 10c0/3abaa4c6f1bcc25273f267297a89a4904963ea29af19b8e4f6eabe04f1c2c7e9abd7bfc4730ddb1d58f2ea04b6fee74053d8bddb5656ec6ebf6c79cc8d14202c + languageName: node + linkType: hard + "hjson@npm:^3.2.2": version: 3.2.2 resolution: "hjson@npm:3.2.2" @@ -21750,6 +21930,7 @@ __metadata: version: 0.0.0-use.local resolution: "root@workspace:." dependencies: + "@eslint/js": "npm:^10.0.1" "@next/eslint-plugin-next": "npm:^16.1.6" "@types/eslint": "npm:^9.6.0" eslint: "npm:9.0.0" @@ -21758,6 +21939,7 @@ __metadata: eslint-plugin-prettier: "npm:^5.5.5" eslint-plugin-promise: "npm:^7.2.1" eslint-plugin-react: "npm:^7.37.5" + eslint-plugin-react-hooks: "npm:^7.0.1" eslint-plugin-sort-destructure-keys: "npm:^2.0.0" eslint-plugin-sort-keys: "npm:^2.3.5" husky: "npm:^8.0.3" @@ -24912,6 +25094,15 @@ __metadata: languageName: node linkType: hard +"zod-validation-error@npm:^3.5.0 || ^4.0.0": + version: 4.0.2 + resolution: "zod-validation-error@npm:4.0.2" + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + checksum: 10c0/0ccfec48c46de1be440b719cd02044d4abb89ed0e14c13e637cd55bf29102f67ccdba373f25def0fc7130e5f15025be4d557a7edcc95d5a3811599aade689e1b + languageName: node + linkType: hard + "zod@npm:3.25.17": version: 3.25.17 resolution: "zod@npm:3.25.17" @@ -24926,6 +25117,13 @@ __metadata: languageName: node linkType: hard +"zod@npm:^3.25.0 || ^4.0.0": + version: 4.3.6 + resolution: "zod@npm:4.3.6" + checksum: 10c0/860d25a81ab41d33aa25f8d0d07b091a04acb426e605f396227a796e9e800c44723ed96d0f53a512b57be3d1520f45bf69c0cb3b378a232a00787a2609625307 + languageName: node + linkType: hard + "zustand@npm:^4.1.2, zustand@npm:^4.3.2": version: 4.5.7 resolution: "zustand@npm:4.5.7" From 714af642295db873a8b13c6636edcaf2a585bca7 Mon Sep 17 00:00:00 2001 From: burtonjong Date: Sat, 7 Feb 2026 16:10:13 -0700 Subject: [PATCH 6/6] last fix --- packages/client/src/components/tabs/RaceTab.tsx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/client/src/components/tabs/RaceTab.tsx b/packages/client/src/components/tabs/RaceTab.tsx index 283ed052..edc7dc46 100644 --- a/packages/client/src/components/tabs/RaceTab.tsx +++ b/packages/client/src/components/tabs/RaceTab.tsx @@ -36,11 +36,11 @@ function RaceTab() { const [Rfid, setDriverRFID] = useState(""); const [driverData, setDriverData] = useState([]); const [copy, setCopy] = useState(0); - const { fetchLapData, formatLapData, lapData } = useLapDataStore(); + const { formatLapData, lapData } = useLapDataStore(); const [filteredLaps, setFilteredLaps] = useState(lapData); const [sorting, setSorting] = useState([ - { desc: false, id: "data_timeStamp" }, + { desc: false, id: "TimeStamp" }, ]); const table = useReactTable({ @@ -50,7 +50,7 @@ function RaceTab() { getCoreRowModel: getCoreRowModel(), getSortedRowModel: getSortedRowModel(), initialState: { - sorting: [{ desc: false, id: "data_timeStamp" }], + sorting: [{ desc: false, id: "TimeStamp" }], }, onSortingChange: setSorting, state: { sorting }, @@ -122,8 +122,6 @@ function RaceTab() { useEffect(() => { void (async (): Promise => { try { - await fetchLapData(); - const response = await fetchDriverNames(); if (!Array.isArray(response)) {