From 41feca2bc1c16a126e755ea16e81ef0553eac7e3 Mon Sep 17 00:00:00 2001
From: cjrace <52536248+cjrace@users.noreply.github.com>
Date: Tue, 27 Jan 2026 19:46:47 +0000
Subject: [PATCH 1/9] Upgrade to next 16+, mantine 8+ and others
---
package.json | 28 +-
pnpm-lock.yaml | 980 ++++++++++++++++++++++++++++++++-----------------
2 files changed, 665 insertions(+), 343 deletions(-)
diff --git a/package.json b/package.json
index 47988ee..a2464b9 100644
--- a/package.json
+++ b/package.json
@@ -4,20 +4,20 @@
"scripts": {
"dev": "pnpm open-browser && next dev --turbopack",
"open-browser": "start http://localhost:3000",
- "build": "next build",
+ "build": "pnpm run lint && next build",
"start": "next start",
- "lint": "next lint",
- "test": "prettier . --write && next lint && next build && playwright test",
- "test-only": "next lint && playwright test",
+ "lint": "eslint",
+ "test": "prettier . --write && pnpm run lint && next build && playwright test",
+ "test-only": "pnpm run lint && playwright test",
"pretty": "prettier . --write",
"pretty-check": "prettier . --check",
- "pretty-lint": "prettier . --write && next lint",
+ "pretty-lint": "prettier . --write && pnpm run lint",
"prepare": "husky"
},
"dependencies": {
- "@mantine/core": "^7.17.8",
- "@mantine/form": "^7.17.8",
- "@mantine/hooks": "^7.17.8",
+ "@mantine/core": "^8.3.13",
+ "@mantine/form": "^8.3.13",
+ "@mantine/hooks": "^8.3.13",
"@tabler/icons-react": "^3.36.1",
"@vercel/analytics": "^1.6.1",
"@vercel/postgres": "^0.10.0",
@@ -25,7 +25,7 @@
"bcrypt": "^6.0.0",
"dotenv": "^17.2.3",
"eslint": "^9.39.2",
- "next": "^15.5.10",
+ "next": "^16.1.5",
"next-auth": "5.0.0-beta.30",
"react": "^19.2.4",
"react-dom": "^19.2.4",
@@ -37,17 +37,17 @@
"devDependencies": {
"@playwright/test": "^1.58.0",
"@types/bcrypt": "^6.0.0",
- "@types/node": "^24.10.9",
- "@types/react": "^19.2.9",
+ "@types/node": "^25.0.10",
+ "@types/react": "^19.2.10",
"@types/react-dom": "^19.2.3",
- "eslint-config-next": "15.5.4",
+ "eslint-config-next": "16.1.5",
"eslint-config-prettier": "^10.1.8",
"husky": "^9.1.7",
- "lint-staged": "^15.5.2",
+ "lint-staged": "^16.2.7",
"postcss": "^8.5.6",
"postcss-preset-mantine": "^1.18.0",
"postcss-simple-vars": "^7.0.1",
- "prettier": "3.6.2",
+ "prettier": "3.8.1",
"typescript": "^5.9.3"
},
"lint-staged": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5f9c505..95532a3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,26 +8,26 @@ importers:
.:
dependencies:
"@mantine/core":
- specifier: ^7.17.8
- version: 7.17.8(@mantine/hooks@7.17.8(react@19.2.4))(@types/react@19.2.9)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ specifier: ^8.3.13
+ version: 8.3.13(@mantine/hooks@8.3.13(react@19.2.4))(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
"@mantine/form":
- specifier: ^7.17.8
- version: 7.17.8(react@19.2.4)
+ specifier: ^8.3.13
+ version: 8.3.13(react@19.2.4)
"@mantine/hooks":
- specifier: ^7.17.8
- version: 7.17.8(react@19.2.4)
+ specifier: ^8.3.13
+ version: 8.3.13(react@19.2.4)
"@tabler/icons-react":
specifier: ^3.36.1
version: 3.36.1(react@19.2.4)
"@vercel/analytics":
specifier: ^1.6.1
- version: 1.6.1(next@15.5.10(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)
+ version: 1.6.1(next@16.1.5(@babel/core@7.28.6)(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)
"@vercel/postgres":
specifier: ^0.10.0
version: 0.10.0
"@vercel/speed-insights":
specifier: ^1.3.1
- version: 1.3.1(next@15.5.10(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)
+ version: 1.3.1(next@16.1.5(@babel/core@7.28.6)(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)
bcrypt:
specifier: ^6.0.0
version: 6.0.0
@@ -38,11 +38,11 @@ importers:
specifier: ^9.39.2
version: 9.39.2
next:
- specifier: ^15.5.10
- version: 15.5.10(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ specifier: ^16.1.5
+ version: 16.1.5(@babel/core@7.28.6)(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
next-auth:
specifier: 5.0.0-beta.30
- version: 5.0.0-beta.30(next@15.5.10(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)
+ version: 5.0.0-beta.30(next@16.1.5(@babel/core@7.28.6)(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)
react:
specifier: ^19.2.4
version: 19.2.4
@@ -69,17 +69,17 @@ importers:
specifier: ^6.0.0
version: 6.0.0
"@types/node":
- specifier: ^24.10.9
- version: 24.10.9
+ specifier: ^25.0.10
+ version: 25.0.10
"@types/react":
- specifier: ^19.2.9
- version: 19.2.9
+ specifier: ^19.2.10
+ version: 19.2.10
"@types/react-dom":
specifier: ^19.2.3
- version: 19.2.3(@types/react@19.2.9)
+ version: 19.2.3(@types/react@19.2.10)
eslint-config-next:
- specifier: 15.5.4
- version: 15.5.4(eslint@9.39.2)(typescript@5.9.3)
+ specifier: 16.1.5
+ version: 16.1.5(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)
eslint-config-prettier:
specifier: ^10.1.8
version: 10.1.8(eslint@9.39.2)
@@ -87,8 +87,8 @@ importers:
specifier: ^9.1.7
version: 9.1.7
lint-staged:
- specifier: ^15.5.2
- version: 15.5.2
+ specifier: ^16.2.7
+ version: 16.2.7
postcss:
specifier: ^8.5.6
version: 8.5.6
@@ -99,8 +99,8 @@ importers:
specifier: ^7.0.1
version: 7.0.1(postcss@8.5.6)
prettier:
- specifier: 3.6.2
- version: 3.6.2
+ specifier: 3.8.1
+ version: 3.8.1
typescript:
specifier: ^5.9.3
version: 5.9.3
@@ -123,6 +123,100 @@ packages:
nodemailer:
optional: true
+ "@babel/code-frame@7.28.6":
+ resolution:
+ {
+ integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/compat-data@7.28.6":
+ resolution:
+ {
+ integrity: sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/core@7.28.6":
+ resolution:
+ {
+ integrity: sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/generator@7.28.6":
+ resolution:
+ {
+ integrity: sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-compilation-targets@7.28.6":
+ resolution:
+ {
+ integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-globals@7.28.0":
+ resolution:
+ {
+ integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-module-imports@7.28.6":
+ resolution:
+ {
+ integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-module-transforms@7.28.6":
+ resolution:
+ {
+ integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0
+
+ "@babel/helper-string-parser@7.27.1":
+ resolution:
+ {
+ integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-validator-identifier@7.28.5":
+ resolution:
+ {
+ integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-validator-option@7.27.1":
+ resolution:
+ {
+ integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helpers@7.28.6":
+ resolution:
+ {
+ integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/parser@7.28.6":
+ resolution:
+ {
+ integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==,
+ }
+ engines: { node: ">=6.0.0" }
+ hasBin: true
+
"@babel/runtime@7.28.6":
resolution:
{
@@ -130,6 +224,27 @@ packages:
}
engines: { node: ">=6.9.0" }
+ "@babel/template@7.28.6":
+ resolution:
+ {
+ integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/traverse@7.28.6":
+ resolution:
+ {
+ integrity: sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/types@7.28.6":
+ resolution:
+ {
+ integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==,
+ }
+ engines: { node: ">=6.9.0" }
+
"@emnapi/core@1.8.1":
resolution:
{
@@ -213,35 +328,35 @@ packages:
}
engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
- "@floating-ui/core@1.7.3":
+ "@floating-ui/core@1.7.4":
resolution:
{
- integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==,
+ integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==,
}
- "@floating-ui/dom@1.7.4":
+ "@floating-ui/dom@1.7.5":
resolution:
{
- integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==,
+ integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==,
}
- "@floating-ui/react-dom@2.1.6":
+ "@floating-ui/react-dom@2.1.7":
resolution:
{
- integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==,
+ integrity: sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==,
}
peerDependencies:
react: ">=16.8.0"
react-dom: ">=16.8.0"
- "@floating-ui/react@0.26.28":
+ "@floating-ui/react@0.27.17":
resolution:
{
- integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==,
+ integrity: sha512-LGVZKHwmWGg6MRHjLLgsfyaX2y2aCNgnD1zT/E6B+/h+vxg+nIJUqHPAlTzsHDyqdgEpJ1Np5kxWuFEErXzoGg==,
}
peerDependencies:
- react: ">=16.8.0"
- react-dom: ">=16.8.0"
+ react: ">=17.0.0"
+ react-dom: ">=17.0.0"
"@floating-ui/utils@0.2.10":
resolution:
@@ -505,28 +620,59 @@ packages:
cpu: [x64]
os: [win32]
- "@mantine/core@7.17.8":
+ "@jridgewell/gen-mapping@0.3.13":
+ resolution:
+ {
+ integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==,
+ }
+
+ "@jridgewell/remapping@2.3.5":
+ resolution:
+ {
+ integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==,
+ }
+
+ "@jridgewell/resolve-uri@3.1.2":
resolution:
{
- integrity: sha512-42sfdLZSCpsCYmLCjSuntuPcDg3PLbakSmmYfz5Auea8gZYLr+8SS5k647doVu0BRAecqYOytkX2QC5/u/8VHw==,
+ integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==,
+ }
+ engines: { node: ">=6.0.0" }
+
+ "@jridgewell/sourcemap-codec@1.5.5":
+ resolution:
+ {
+ integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==,
+ }
+
+ "@jridgewell/trace-mapping@0.3.31":
+ resolution:
+ {
+ integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==,
+ }
+
+ "@mantine/core@8.3.13":
+ resolution:
+ {
+ integrity: sha512-ZgW4vqN4meaPyIMxzAufBvsgmJRfYZdTpsrAOcS8pWy7m9e8i685E7XsAxnwJCOIHudpvpvt+7Bx7VaIjEsYEw==,
}
peerDependencies:
- "@mantine/hooks": 7.17.8
+ "@mantine/hooks": 8.3.13
react: ^18.x || ^19.x
react-dom: ^18.x || ^19.x
- "@mantine/form@7.17.8":
+ "@mantine/form@8.3.13":
resolution:
{
- integrity: sha512-cRLAMYOsZT17jyV9Myl29xacgaswGVAz3Ku6bvphBFad7Nzorra809uKFJxm2yKW5NknZ4ENHSXjyru7k0GTGA==,
+ integrity: sha512-P7Avh24QiL8V517Jxj8JuUbCuSOA1BjwTB8/htH92cRmLoJtWn4ycZYE7ks8v3Hrg8fpd0Xd2O5o9R4+bXwD/A==,
}
peerDependencies:
react: ^18.x || ^19.x
- "@mantine/hooks@7.17.8":
+ "@mantine/hooks@8.3.13":
resolution:
{
- integrity: sha512-96qygbkTjRhdkzd5HDU8fMziemN/h758/EwrFu7TlWrEP10Vw076u+Ap/sG6OT4RGPZYYoHrTlT+mkCZblWHuw==,
+ integrity: sha512-7YMbMW/tR9E8m/9DbBW01+3RNApm2mE/JbRKXf9s9+KxgbjQvq0FYGWV8Y4+Sjz48AO4vtWk2qBriUTgBMKAyg==,
}
peerDependencies:
react: ^18.x || ^19.x
@@ -543,89 +689,89 @@ packages:
integrity: sha512-siFas6gItqv6wD/pZnvdu34wEqgG3nSE6zWZdq5j2DEsa+VvX8i/5HXJOo06qrw5axPXn+lGCxeR+NLaSPIXug==,
}
- "@next/env@15.5.10":
+ "@next/env@16.1.5":
resolution:
{
- integrity: sha512-plg+9A/KoZcTS26fe15LHg+QxReTazrIOoKKUC3Uz4leGGeNPgLHdevVraAAOX0snnUs3WkRx3eUQpj9mreG6A==,
+ integrity: sha512-CRSCPJiSZoi4Pn69RYBDI9R7YK2g59vLexPQFXY0eyw+ILevIenCywzg+DqmlBik9zszEnw2HLFOUlLAcJbL7g==,
}
- "@next/eslint-plugin-next@15.5.4":
+ "@next/eslint-plugin-next@16.1.5":
resolution:
{
- integrity: sha512-SR1vhXNNg16T4zffhJ4TS7Xn7eq4NfKfcOsRwea7RIAHrjRpI9ALYbamqIJqkAhowLlERffiwk0FMvTLNdnVtw==,
+ integrity: sha512-gUWcEsOl+1W7XakmouClcJ0TNFCkblvDUho31wulbDY9na0C6mGtBTSXGRU5GXJY65GjGj0zNaCD/GaBp888Mg==,
}
- "@next/swc-darwin-arm64@15.5.7":
+ "@next/swc-darwin-arm64@16.1.5":
resolution:
{
- integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==,
+ integrity: sha512-eK7Wdm3Hjy/SCL7TevlH0C9chrpeOYWx2iR7guJDaz4zEQKWcS1IMVfMb9UKBFMg1XgzcPTYPIp1Vcpukkjg6Q==,
}
engines: { node: ">= 10" }
cpu: [arm64]
os: [darwin]
- "@next/swc-darwin-x64@15.5.7":
+ "@next/swc-darwin-x64@16.1.5":
resolution:
{
- integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==,
+ integrity: sha512-foQscSHD1dCuxBmGkbIr6ScAUF6pRoDZP6czajyvmXPAOFNnQUJu2Os1SGELODjKp/ULa4fulnBWoHV3XdPLfA==,
}
engines: { node: ">= 10" }
cpu: [x64]
os: [darwin]
- "@next/swc-linux-arm64-gnu@15.5.7":
+ "@next/swc-linux-arm64-gnu@16.1.5":
resolution:
{
- integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==,
+ integrity: sha512-qNIb42o3C02ccIeSeKjacF3HXotGsxh/FMk/rSRmCzOVMtoWH88odn2uZqF8RLsSUWHcAqTgYmPD3pZ03L9ZAA==,
}
engines: { node: ">= 10" }
cpu: [arm64]
os: [linux]
libc: [glibc]
- "@next/swc-linux-arm64-musl@15.5.7":
+ "@next/swc-linux-arm64-musl@16.1.5":
resolution:
{
- integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==,
+ integrity: sha512-U+kBxGUY1xMAzDTXmuVMfhaWUZQAwzRaHJ/I6ihtR5SbTVUEaDRiEU9YMjy1obBWpdOBuk1bcm+tsmifYSygfw==,
}
engines: { node: ">= 10" }
cpu: [arm64]
os: [linux]
libc: [musl]
- "@next/swc-linux-x64-gnu@15.5.7":
+ "@next/swc-linux-x64-gnu@16.1.5":
resolution:
{
- integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==,
+ integrity: sha512-gq2UtoCpN7Ke/7tKaU7i/1L7eFLfhMbXjNghSv0MVGF1dmuoaPeEVDvkDuO/9LVa44h5gqpWeJ4mRRznjDv7LA==,
}
engines: { node: ">= 10" }
cpu: [x64]
os: [linux]
libc: [glibc]
- "@next/swc-linux-x64-musl@15.5.7":
+ "@next/swc-linux-x64-musl@16.1.5":
resolution:
{
- integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==,
+ integrity: sha512-bQWSE729PbXT6mMklWLf8dotislPle2L70E9q6iwETYEOt092GDn0c+TTNj26AjmeceSsC4ndyGsK5nKqHYXjQ==,
}
engines: { node: ">= 10" }
cpu: [x64]
os: [linux]
libc: [musl]
- "@next/swc-win32-arm64-msvc@15.5.7":
+ "@next/swc-win32-arm64-msvc@16.1.5":
resolution:
{
- integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==,
+ integrity: sha512-LZli0anutkIllMtTAWZlDqdfvjWX/ch8AFK5WgkNTvaqwlouiD1oHM+WW8RXMiL0+vAkAJyAGEzPPjO+hnrSNQ==,
}
engines: { node: ">= 10" }
cpu: [arm64]
os: [win32]
- "@next/swc-win32-x64-msvc@15.5.7":
+ "@next/swc-win32-x64-msvc@16.1.5":
resolution:
{
- integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==,
+ integrity: sha512-7is37HJTNQGhjPpQbkKjKEboHYQnCgpVt/4rBrrln0D9nderNxZ8ZWs8w1fAtzUx7wEyYjQ+/13myFgFj6K2Ng==,
}
engines: { node: ">= 10" }
cpu: [x64]
@@ -679,12 +825,6 @@ packages:
integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==,
}
- "@rushstack/eslint-patch@1.15.0":
- resolution:
- {
- integrity: sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw==,
- }
-
"@swc/helpers@0.5.15":
resolution:
{
@@ -735,10 +875,10 @@ packages:
integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==,
}
- "@types/node@24.10.9":
+ "@types/node@25.0.10":
resolution:
{
- integrity: sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==,
+ integrity: sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==,
}
"@types/pg@8.11.6":
@@ -755,10 +895,10 @@ packages:
peerDependencies:
"@types/react": ^19.2.0
- "@types/react@19.2.9":
+ "@types/react@19.2.10":
resolution:
{
- integrity: sha512-Lpo8kgb/igvMIPeNV2rsYKTgaORYdO1XGVZ4Qz3akwOj0ySGYMPlQWa8BaLn0G63D1aSaAQ5ldR06wCpChQCjA==,
+ integrity: sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==,
}
"@typescript-eslint/eslint-plugin@8.54.0":
@@ -1232,6 +1372,13 @@ packages:
integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==,
}
+ baseline-browser-mapping@2.9.18:
+ resolution:
+ {
+ integrity: sha512-e23vBV1ZLfjb9apvfPk4rHVu2ry6RIr2Wfs+O324okSidrX7pTAnEJPCh/O5BtRlr7QtZI7ktOP3vsqr7Z5XoA==,
+ }
+ hasBin: true
+
bcrypt@6.0.0:
resolution:
{
@@ -1258,6 +1405,14 @@ packages:
}
engines: { node: ">=8" }
+ browserslist@4.28.1:
+ resolution:
+ {
+ integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==,
+ }
+ engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
+ hasBin: true
+
bufferutil@4.1.0:
resolution:
{
@@ -1313,13 +1468,6 @@ packages:
}
engines: { node: ">=10" }
- chalk@5.6.2:
- resolution:
- {
- integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==,
- }
- engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 }
-
cli-cursor@5.0.0:
resolution:
{
@@ -1327,12 +1475,12 @@ packages:
}
engines: { node: ">=18" }
- cli-truncate@4.0.0:
+ cli-truncate@5.1.1:
resolution:
{
- integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==,
+ integrity: sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==,
}
- engines: { node: ">=18" }
+ engines: { node: ">=20" }
client-only@0.0.1:
resolution:
@@ -1366,12 +1514,12 @@ packages:
integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==,
}
- commander@13.1.0:
+ commander@14.0.2:
resolution:
{
- integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==,
+ integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==,
}
- engines: { node: ">=18" }
+ engines: { node: ">=20" }
concat-map@0.0.1:
resolution:
@@ -1379,6 +1527,12 @@ packages:
integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==,
}
+ convert-source-map@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==,
+ }
+
cross-spawn@7.0.6:
resolution:
{
@@ -1504,6 +1658,12 @@ packages:
}
engines: { node: ">= 0.4" }
+ electron-to-chromium@1.5.279:
+ resolution:
+ {
+ integrity: sha512-0bblUU5UNdOt5G7XqGiJtpZMONma6WAfq9vsFmtn9x1+joAObr6x1chfqyxFSDCAFwFhCQDrqeAr6MYdpwJ9Hg==,
+ }
+
emoji-regex@10.6.0:
resolution:
{
@@ -1579,6 +1739,13 @@ packages:
}
engines: { node: ">= 0.4" }
+ escalade@3.2.0:
+ resolution:
+ {
+ integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==,
+ }
+ engines: { node: ">=6" }
+
escape-string-regexp@4.0.0:
resolution:
{
@@ -1586,13 +1753,13 @@ packages:
}
engines: { node: ">=10" }
- eslint-config-next@15.5.4:
+ eslint-config-next@16.1.5:
resolution:
{
- integrity: sha512-BzgVVuT3kfJes8i2GHenC1SRJ+W3BTML11lAOYFOOPzrk2xp66jBOAGEFRw+3LkYCln5UzvFsLhojrshb5Zfaw==,
+ integrity: sha512-XwXyv65DC1HXI3gMxm13jvgx0IxKu6XhZhIWTfCDt4c45njHYUM2pk1Y8QXMAWMMnqPy94I2OLMmvIrNGcwLwQ==,
}
peerDependencies:
- eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
+ eslint: ">=9.0.0"
typescript: ">=3.3.1"
peerDependenciesMeta:
typescript:
@@ -1675,12 +1842,12 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
- eslint-plugin-react-hooks@5.2.0:
+ eslint-plugin-react-hooks@7.0.1:
resolution:
{
- integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==,
+ integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==,
}
- engines: { node: ">=10" }
+ engines: { node: ">=18" }
peerDependencies:
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
@@ -1768,13 +1935,6 @@ packages:
integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==,
}
- execa@8.0.1:
- resolution:
- {
- integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==,
- }
- engines: { node: ">=16.17" }
-
fast-deep-equal@3.1.3:
resolution:
{
@@ -1893,6 +2053,13 @@ packages:
}
engines: { node: ">= 0.4" }
+ gensync@1.0.0-beta.2:
+ resolution:
+ {
+ integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==,
+ }
+ engines: { node: ">=6.9.0" }
+
get-east-asian-width@1.4.0:
resolution:
{
@@ -1921,13 +2088,6 @@ packages:
}
engines: { node: ">= 0.4" }
- get-stream@8.0.1:
- resolution:
- {
- integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==,
- }
- engines: { node: ">=16" }
-
get-symbol-description@1.1.0:
resolution:
{
@@ -1962,6 +2122,13 @@ packages:
}
engines: { node: ">=18" }
+ globals@16.4.0:
+ resolution:
+ {
+ integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==,
+ }
+ engines: { node: ">=18" }
+
globalthis@1.0.4:
resolution:
{
@@ -2024,12 +2191,17 @@ packages:
}
engines: { node: ">= 0.4" }
- human-signals@5.0.0:
+ hermes-estree@0.25.1:
resolution:
{
- integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==,
+ integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==,
+ }
+
+ hermes-parser@0.25.1:
+ resolution:
+ {
+ integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==,
}
- engines: { node: ">=16.17.0" }
husky@9.1.7:
resolution:
@@ -2150,13 +2322,6 @@ packages:
}
engines: { node: ">= 0.4" }
- is-fullwidth-code-point@4.0.0:
- resolution:
- {
- integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==,
- }
- engines: { node: ">=12" }
-
is-fullwidth-code-point@5.1.0:
resolution:
{
@@ -2227,13 +2392,6 @@ packages:
}
engines: { node: ">= 0.4" }
- is-stream@3.0.0:
- resolution:
- {
- integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==,
- }
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
-
is-string@1.1.1:
resolution:
{
@@ -2314,6 +2472,14 @@ packages:
}
hasBin: true
+ jsesc@3.1.0:
+ resolution:
+ {
+ integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==,
+ }
+ engines: { node: ">=6" }
+ hasBin: true
+
json-buffer@3.0.1:
resolution:
{
@@ -2339,6 +2505,14 @@ packages:
}
hasBin: true
+ json5@2.2.3:
+ resolution:
+ {
+ integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==,
+ }
+ engines: { node: ">=6" }
+ hasBin: true
+
jsx-ast-utils@3.3.5:
resolution:
{
@@ -2379,27 +2553,20 @@ packages:
}
engines: { node: ">= 0.8.0" }
- lilconfig@3.1.3:
+ lint-staged@16.2.7:
resolution:
{
- integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==,
+ integrity: sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==,
}
- engines: { node: ">=14" }
-
- lint-staged@15.5.2:
- resolution:
- {
- integrity: sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==,
- }
- engines: { node: ">=18.12.0" }
+ engines: { node: ">=20.17" }
hasBin: true
- listr2@8.3.3:
+ listr2@9.0.5:
resolution:
{
- integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==,
+ integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==,
}
- engines: { node: ">=18.0.0" }
+ engines: { node: ">=20.0.0" }
locate-path@6.0.0:
resolution:
@@ -2428,18 +2595,18 @@ packages:
}
hasBin: true
- math-intrinsics@1.1.0:
+ lru-cache@5.1.1:
resolution:
{
- integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==,
+ integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==,
}
- engines: { node: ">= 0.4" }
- merge-stream@2.0.0:
+ math-intrinsics@1.1.0:
resolution:
{
- integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==,
+ integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==,
}
+ engines: { node: ">= 0.4" }
merge2@1.4.1:
resolution:
@@ -2455,13 +2622,6 @@ packages:
}
engines: { node: ">=8.6" }
- mimic-fn@4.0.0:
- resolution:
- {
- integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==,
- }
- engines: { node: ">=12" }
-
mimic-function@5.0.1:
resolution:
{
@@ -2494,6 +2654,13 @@ packages:
integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==,
}
+ nano-spawn@2.0.0:
+ resolution:
+ {
+ integrity: sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==,
+ }
+ engines: { node: ">=20.17" }
+
nanoid@3.3.11:
resolution:
{
@@ -2535,12 +2702,12 @@ packages:
nodemailer:
optional: true
- next@15.5.10:
+ next@16.1.5:
resolution:
{
- integrity: sha512-r0X65PNwyDDyOrWNKpQoZvOatw7BcsTPRKdwEqtc9cj3wv7mbBIk9tKed4klRaFXJdX0rugpuMTHslDrAU1bBg==,
+ integrity: sha512-f+wE+NSbiQgh3DSAlTaw2FwY5yGdVViAtp8TotNQj4kk4Q8Bh1sC/aL9aH+Rg1YAVn18OYXsRDT7U/079jgP7w==,
}
- engines: { node: ^18.18.0 || ^19.8.0 || >= 20.0.0 }
+ engines: { node: ">=20.9.0" }
hasBin: true
peerDependencies:
"@opentelemetry/api": ^1.1.0
@@ -2573,12 +2740,11 @@ packages:
}
hasBin: true
- npm-run-path@5.3.0:
+ node-releases@2.0.27:
resolution:
{
- integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==,
+ integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==,
}
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
oauth4webapi@3.8.3:
resolution:
@@ -2648,13 +2814,6 @@ packages:
integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==,
}
- onetime@6.0.0:
- resolution:
- {
- integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==,
- }
- engines: { node: ">=12" }
-
onetime@7.0.0:
resolution:
{
@@ -2711,13 +2870,6 @@ packages:
}
engines: { node: ">=8" }
- path-key@4.0.0:
- resolution:
- {
- integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==,
- }
- engines: { node: ">=12" }
-
path-parse@1.0.7:
resolution:
{
@@ -2922,10 +3074,10 @@ packages:
}
engines: { node: ">= 0.8.0" }
- prettier@3.6.2:
+ prettier@3.8.1:
resolution:
{
- integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==,
+ integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==,
}
engines: { node: ">=14" }
hasBin: true
@@ -3222,13 +3374,6 @@ packages:
}
engines: { node: ">=14" }
- slice-ansi@5.0.0:
- resolution:
- {
- integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==,
- }
- engines: { node: ">=12" }
-
slice-ansi@7.1.2:
resolution:
{
@@ -3270,6 +3415,13 @@ packages:
}
engines: { node: ">=18" }
+ string-width@8.1.0:
+ resolution:
+ {
+ integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==,
+ }
+ engines: { node: ">=20" }
+
string.prototype.includes@2.0.1:
resolution:
{
@@ -3325,13 +3477,6 @@ packages:
}
engines: { node: ">=4" }
- strip-final-newline@3.0.0:
- resolution:
- {
- integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==,
- }
- engines: { node: ">=12" }
-
strip-json-comments@3.1.1:
resolution:
{
@@ -3461,6 +3606,16 @@ packages:
}
engines: { node: ">= 0.4" }
+ typescript-eslint@8.54.0:
+ resolution:
+ {
+ integrity: sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <6.0.0"
+
typescript@5.9.3:
resolution:
{
@@ -3488,6 +3643,15 @@ packages:
integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==,
}
+ update-browserslist-db@1.2.3:
+ resolution:
+ {
+ integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==,
+ }
+ hasBin: true
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+
uri-js@4.4.1:
resolution:
{
@@ -3634,6 +3798,12 @@ packages:
utf-8-validate:
optional: true
+ yallist@3.1.1:
+ resolution:
+ {
+ integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==,
+ }
+
yaml@2.8.2:
resolution:
{
@@ -3649,6 +3819,15 @@ packages:
}
engines: { node: ">=10" }
+ zod-validation-error@4.0.2:
+ resolution:
+ {
+ integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==,
+ }
+ engines: { node: ">=18.0.0" }
+ peerDependencies:
+ zod: ^3.25.0 || ^4.0.0
+
zod@4.3.6:
resolution:
{
@@ -3664,8 +3843,108 @@ snapshots:
preact: 10.24.3
preact-render-to-string: 6.5.11(preact@10.24.3)
+ "@babel/code-frame@7.28.6":
+ dependencies:
+ "@babel/helper-validator-identifier": 7.28.5
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ "@babel/compat-data@7.28.6": {}
+
+ "@babel/core@7.28.6":
+ dependencies:
+ "@babel/code-frame": 7.28.6
+ "@babel/generator": 7.28.6
+ "@babel/helper-compilation-targets": 7.28.6
+ "@babel/helper-module-transforms": 7.28.6(@babel/core@7.28.6)
+ "@babel/helpers": 7.28.6
+ "@babel/parser": 7.28.6
+ "@babel/template": 7.28.6
+ "@babel/traverse": 7.28.6
+ "@babel/types": 7.28.6
+ "@jridgewell/remapping": 2.3.5
+ convert-source-map: 2.0.0
+ debug: 4.4.3
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/generator@7.28.6":
+ dependencies:
+ "@babel/parser": 7.28.6
+ "@babel/types": 7.28.6
+ "@jridgewell/gen-mapping": 0.3.13
+ "@jridgewell/trace-mapping": 0.3.31
+ jsesc: 3.1.0
+
+ "@babel/helper-compilation-targets@7.28.6":
+ dependencies:
+ "@babel/compat-data": 7.28.6
+ "@babel/helper-validator-option": 7.27.1
+ browserslist: 4.28.1
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ "@babel/helper-globals@7.28.0": {}
+
+ "@babel/helper-module-imports@7.28.6":
+ dependencies:
+ "@babel/traverse": 7.28.6
+ "@babel/types": 7.28.6
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/helper-module-transforms@7.28.6(@babel/core@7.28.6)":
+ dependencies:
+ "@babel/core": 7.28.6
+ "@babel/helper-module-imports": 7.28.6
+ "@babel/helper-validator-identifier": 7.28.5
+ "@babel/traverse": 7.28.6
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/helper-string-parser@7.27.1": {}
+
+ "@babel/helper-validator-identifier@7.28.5": {}
+
+ "@babel/helper-validator-option@7.27.1": {}
+
+ "@babel/helpers@7.28.6":
+ dependencies:
+ "@babel/template": 7.28.6
+ "@babel/types": 7.28.6
+
+ "@babel/parser@7.28.6":
+ dependencies:
+ "@babel/types": 7.28.6
+
"@babel/runtime@7.28.6": {}
+ "@babel/template@7.28.6":
+ dependencies:
+ "@babel/code-frame": 7.28.6
+ "@babel/parser": 7.28.6
+ "@babel/types": 7.28.6
+
+ "@babel/traverse@7.28.6":
+ dependencies:
+ "@babel/code-frame": 7.28.6
+ "@babel/generator": 7.28.6
+ "@babel/helper-globals": 7.28.0
+ "@babel/parser": 7.28.6
+ "@babel/template": 7.28.6
+ "@babel/types": 7.28.6
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/types@7.28.6":
+ dependencies:
+ "@babel/helper-string-parser": 7.27.1
+ "@babel/helper-validator-identifier": 7.28.5
+
"@emnapi/core@1.8.1":
dependencies:
"@emnapi/wasi-threads": 1.1.0
@@ -3728,24 +4007,24 @@ snapshots:
"@eslint/core": 0.17.0
levn: 0.4.1
- "@floating-ui/core@1.7.3":
+ "@floating-ui/core@1.7.4":
dependencies:
"@floating-ui/utils": 0.2.10
- "@floating-ui/dom@1.7.4":
+ "@floating-ui/dom@1.7.5":
dependencies:
- "@floating-ui/core": 1.7.3
+ "@floating-ui/core": 1.7.4
"@floating-ui/utils": 0.2.10
- "@floating-ui/react-dom@2.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)":
+ "@floating-ui/react-dom@2.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4)":
dependencies:
- "@floating-ui/dom": 1.7.4
+ "@floating-ui/dom": 1.7.5
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
- "@floating-ui/react@0.26.28(react-dom@19.2.4(react@19.2.4))(react@19.2.4)":
+ "@floating-ui/react@0.27.17(react-dom@19.2.4(react@19.2.4))(react@19.2.4)":
dependencies:
- "@floating-ui/react-dom": 2.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ "@floating-ui/react-dom": 2.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
"@floating-ui/utils": 0.2.10
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
@@ -3860,27 +4139,46 @@ snapshots:
"@img/sharp-win32-x64@0.34.5":
optional: true
- "@mantine/core@7.17.8(@mantine/hooks@7.17.8(react@19.2.4))(@types/react@19.2.9)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)":
+ "@jridgewell/gen-mapping@0.3.13":
+ dependencies:
+ "@jridgewell/sourcemap-codec": 1.5.5
+ "@jridgewell/trace-mapping": 0.3.31
+
+ "@jridgewell/remapping@2.3.5":
+ dependencies:
+ "@jridgewell/gen-mapping": 0.3.13
+ "@jridgewell/trace-mapping": 0.3.31
+
+ "@jridgewell/resolve-uri@3.1.2": {}
+
+ "@jridgewell/sourcemap-codec@1.5.5": {}
+
+ "@jridgewell/trace-mapping@0.3.31":
dependencies:
- "@floating-ui/react": 0.26.28(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
- "@mantine/hooks": 7.17.8(react@19.2.4)
+ "@jridgewell/resolve-uri": 3.1.2
+ "@jridgewell/sourcemap-codec": 1.5.5
+
+ "@mantine/core@8.3.13(@mantine/hooks@8.3.13(react@19.2.4))(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)":
+ dependencies:
+ "@floating-ui/react": 0.27.17(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ "@mantine/hooks": 8.3.13(react@19.2.4)
clsx: 2.1.1
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
react-number-format: 5.4.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
- react-remove-scroll: 2.7.2(@types/react@19.2.9)(react@19.2.4)
- react-textarea-autosize: 8.5.9(@types/react@19.2.9)(react@19.2.4)
+ react-remove-scroll: 2.7.2(@types/react@19.2.10)(react@19.2.4)
+ react-textarea-autosize: 8.5.9(@types/react@19.2.10)(react@19.2.4)
type-fest: 4.41.0
transitivePeerDependencies:
- "@types/react"
- "@mantine/form@7.17.8(react@19.2.4)":
+ "@mantine/form@8.3.13(react@19.2.4)":
dependencies:
fast-deep-equal: 3.1.3
klona: 2.0.6
react: 19.2.4
- "@mantine/hooks@7.17.8(react@19.2.4)":
+ "@mantine/hooks@8.3.13(react@19.2.4)":
dependencies:
react: 19.2.4
@@ -3895,34 +4193,34 @@ snapshots:
dependencies:
"@types/pg": 8.11.6
- "@next/env@15.5.10": {}
+ "@next/env@16.1.5": {}
- "@next/eslint-plugin-next@15.5.4":
+ "@next/eslint-plugin-next@16.1.5":
dependencies:
fast-glob: 3.3.1
- "@next/swc-darwin-arm64@15.5.7":
+ "@next/swc-darwin-arm64@16.1.5":
optional: true
- "@next/swc-darwin-x64@15.5.7":
+ "@next/swc-darwin-x64@16.1.5":
optional: true
- "@next/swc-linux-arm64-gnu@15.5.7":
+ "@next/swc-linux-arm64-gnu@16.1.5":
optional: true
- "@next/swc-linux-arm64-musl@15.5.7":
+ "@next/swc-linux-arm64-musl@16.1.5":
optional: true
- "@next/swc-linux-x64-gnu@15.5.7":
+ "@next/swc-linux-x64-gnu@16.1.5":
optional: true
- "@next/swc-linux-x64-musl@15.5.7":
+ "@next/swc-linux-x64-musl@16.1.5":
optional: true
- "@next/swc-win32-arm64-msvc@15.5.7":
+ "@next/swc-win32-arm64-msvc@16.1.5":
optional: true
- "@next/swc-win32-x64-msvc@15.5.7":
+ "@next/swc-win32-x64-msvc@16.1.5":
optional: true
"@nodelib/fs.scandir@2.1.5":
@@ -3947,8 +4245,6 @@ snapshots:
"@rtsao/scc@1.1.0": {}
- "@rushstack/eslint-patch@1.15.0": {}
-
"@swc/helpers@0.5.15":
dependencies:
tslib: 2.8.1
@@ -3967,7 +4263,7 @@ snapshots:
"@types/bcrypt@6.0.0":
dependencies:
- "@types/node": 24.10.9
+ "@types/node": 25.0.10
"@types/estree@1.0.8": {}
@@ -3975,21 +4271,21 @@ snapshots:
"@types/json5@0.0.29": {}
- "@types/node@24.10.9":
+ "@types/node@25.0.10":
dependencies:
undici-types: 7.16.0
"@types/pg@8.11.6":
dependencies:
- "@types/node": 24.10.9
+ "@types/node": 25.0.10
pg-protocol: 1.11.0
pg-types: 4.1.0
- "@types/react-dom@19.2.3(@types/react@19.2.9)":
+ "@types/react-dom@19.2.3(@types/react@19.2.10)":
dependencies:
- "@types/react": 19.2.9
+ "@types/react": 19.2.10
- "@types/react@19.2.9":
+ "@types/react@19.2.10":
dependencies:
csstype: 3.2.3
@@ -4143,9 +4439,9 @@ snapshots:
"@unrs/resolver-binding-win32-x64-msvc@1.11.1":
optional: true
- "@vercel/analytics@1.6.1(next@15.5.10(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)":
+ "@vercel/analytics@1.6.1(next@16.1.5(@babel/core@7.28.6)(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)":
optionalDependencies:
- next: 15.5.10(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ next: 16.1.5(@babel/core@7.28.6)(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
react: 19.2.4
"@vercel/postgres@0.10.0":
@@ -4156,9 +4452,9 @@ snapshots:
transitivePeerDependencies:
- utf-8-validate
- "@vercel/speed-insights@1.3.1(next@15.5.10(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)":
+ "@vercel/speed-insights@1.3.1(next@16.1.5(@babel/core@7.28.6)(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)":
optionalDependencies:
- next: 15.5.10(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ next: 16.1.5(@babel/core@7.28.6)(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
react: 19.2.4
acorn-jsx@5.3.2(acorn@8.15.0):
@@ -4271,6 +4567,8 @@ snapshots:
balanced-match@1.0.2: {}
+ baseline-browser-mapping@2.9.18: {}
+
bcrypt@6.0.0:
dependencies:
node-addon-api: 8.5.0
@@ -4289,6 +4587,14 @@ snapshots:
dependencies:
fill-range: 7.1.1
+ browserslist@4.28.1:
+ dependencies:
+ baseline-browser-mapping: 2.9.18
+ caniuse-lite: 1.0.30001766
+ electron-to-chromium: 1.5.279
+ node-releases: 2.0.27
+ update-browserslist-db: 1.2.3(browserslist@4.28.1)
+
bufferutil@4.1.0:
dependencies:
node-gyp-build: 4.8.4
@@ -4321,16 +4627,14 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
- chalk@5.6.2: {}
-
cli-cursor@5.0.0:
dependencies:
restore-cursor: 5.1.0
- cli-truncate@4.0.0:
+ cli-truncate@5.1.1:
dependencies:
- slice-ansi: 5.0.0
- string-width: 7.2.0
+ slice-ansi: 7.1.2
+ string-width: 8.1.0
client-only@0.0.1: {}
@@ -4344,10 +4648,12 @@ snapshots:
colorette@2.0.20: {}
- commander@13.1.0: {}
+ commander@14.0.2: {}
concat-map@0.0.1: {}
+ convert-source-map@2.0.0: {}
+
cross-spawn@7.0.6:
dependencies:
path-key: 3.1.1
@@ -4416,6 +4722,8 @@ snapshots:
es-errors: 1.3.0
gopd: 1.2.0
+ electron-to-chromium@1.5.279: {}
+
emoji-regex@10.6.0: {}
emoji-regex@9.2.2: {}
@@ -4523,24 +4831,26 @@ snapshots:
is-date-object: 1.1.0
is-symbol: 1.1.1
+ escalade@3.2.0: {}
+
escape-string-regexp@4.0.0: {}
- eslint-config-next@15.5.4(eslint@9.39.2)(typescript@5.9.3):
+ eslint-config-next@16.1.5(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3):
dependencies:
- "@next/eslint-plugin-next": 15.5.4
- "@rushstack/eslint-patch": 1.15.0
- "@typescript-eslint/eslint-plugin": 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)
- "@typescript-eslint/parser": 8.54.0(eslint@9.39.2)(typescript@5.9.3)
+ "@next/eslint-plugin-next": 16.1.5
eslint: 9.39.2
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2)
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2)
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2)
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2)
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2)
eslint-plugin-react: 7.37.5(eslint@9.39.2)
- eslint-plugin-react-hooks: 5.2.0(eslint@9.39.2)
+ eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2)
+ globals: 16.4.0
+ typescript-eslint: 8.54.0(eslint@9.39.2)(typescript@5.9.3)
optionalDependencies:
typescript: 5.9.3
transitivePeerDependencies:
+ - "@typescript-eslint/parser"
- eslint-import-resolver-webpack
- eslint-plugin-import-x
- supports-color
@@ -4557,7 +4867,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2):
+ eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2):
dependencies:
"@nolyfill/is-core-module": 1.0.39
debug: 4.4.3
@@ -4568,22 +4878,22 @@ snapshots:
tinyglobby: 0.2.15
unrs-resolver: 1.11.1
optionalDependencies:
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2)
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2)
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2):
+ eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2):
dependencies:
debug: 3.2.7
optionalDependencies:
"@typescript-eslint/parser": 8.54.0(eslint@9.39.2)(typescript@5.9.3)
eslint: 9.39.2
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2)
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2)
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2):
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2):
dependencies:
"@rtsao/scc": 1.1.0
array-includes: 3.1.9
@@ -4594,7 +4904,7 @@ snapshots:
doctrine: 2.1.0
eslint: 9.39.2
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2)
+ eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2)
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -4631,9 +4941,16 @@ snapshots:
safe-regex-test: 1.1.0
string.prototype.includes: 2.0.1
- eslint-plugin-react-hooks@5.2.0(eslint@9.39.2):
+ eslint-plugin-react-hooks@7.0.1(eslint@9.39.2):
dependencies:
+ "@babel/core": 7.28.6
+ "@babel/parser": 7.28.6
eslint: 9.39.2
+ hermes-parser: 0.25.1
+ zod: 4.3.6
+ zod-validation-error: 4.0.2(zod@4.3.6)
+ transitivePeerDependencies:
+ - supports-color
eslint-plugin-react@7.37.5(eslint@9.39.2):
dependencies:
@@ -4725,18 +5042,6 @@ snapshots:
eventemitter3@5.0.4: {}
- execa@8.0.1:
- dependencies:
- cross-spawn: 7.0.6
- get-stream: 8.0.1
- human-signals: 5.0.0
- is-stream: 3.0.0
- merge-stream: 2.0.0
- npm-run-path: 5.3.0
- onetime: 6.0.0
- signal-exit: 4.1.0
- strip-final-newline: 3.0.0
-
fast-deep-equal@3.1.3: {}
fast-glob@3.3.1:
@@ -4801,6 +5106,8 @@ snapshots:
generator-function@2.0.1: {}
+ gensync@1.0.0-beta.2: {}
+
get-east-asian-width@1.4.0: {}
get-intrinsic@1.3.0:
@@ -4823,8 +5130,6 @@ snapshots:
dunder-proto: 1.0.1
es-object-atoms: 1.1.1
- get-stream@8.0.1: {}
-
get-symbol-description@1.1.0:
dependencies:
call-bound: 1.0.4
@@ -4845,6 +5150,8 @@ snapshots:
globals@14.0.0: {}
+ globals@16.4.0: {}
+
globalthis@1.0.4:
dependencies:
define-properties: 1.2.1
@@ -4874,7 +5181,11 @@ snapshots:
dependencies:
function-bind: 1.1.2
- human-signals@5.0.0: {}
+ hermes-estree@0.25.1: {}
+
+ hermes-parser@0.25.1:
+ dependencies:
+ hermes-estree: 0.25.1
husky@9.1.7: {}
@@ -4945,8 +5256,6 @@ snapshots:
dependencies:
call-bound: 1.0.4
- is-fullwidth-code-point@4.0.0: {}
-
is-fullwidth-code-point@5.1.0:
dependencies:
get-east-asian-width: 1.4.0
@@ -4987,8 +5296,6 @@ snapshots:
dependencies:
call-bound: 1.0.4
- is-stream@3.0.0: {}
-
is-string@1.1.1:
dependencies:
call-bound: 1.0.4
@@ -5036,6 +5343,8 @@ snapshots:
dependencies:
argparse: 2.0.1
+ jsesc@3.1.0: {}
+
json-buffer@3.0.1: {}
json-schema-traverse@0.4.1: {}
@@ -5046,6 +5355,8 @@ snapshots:
dependencies:
minimist: 1.2.8
+ json5@2.2.3: {}
+
jsx-ast-utils@3.3.5:
dependencies:
array-includes: 3.1.9
@@ -5070,26 +5381,19 @@ snapshots:
prelude-ls: 1.2.1
type-check: 0.4.0
- lilconfig@3.1.3: {}
-
- lint-staged@15.5.2:
+ lint-staged@16.2.7:
dependencies:
- chalk: 5.6.2
- commander: 13.1.0
- debug: 4.4.3
- execa: 8.0.1
- lilconfig: 3.1.3
- listr2: 8.3.3
+ commander: 14.0.2
+ listr2: 9.0.5
micromatch: 4.0.8
+ nano-spawn: 2.0.0
pidtree: 0.6.0
string-argv: 0.3.2
yaml: 2.8.2
- transitivePeerDependencies:
- - supports-color
- listr2@8.3.3:
+ listr2@9.0.5:
dependencies:
- cli-truncate: 4.0.0
+ cli-truncate: 5.1.1
colorette: 2.0.20
eventemitter3: 5.0.4
log-update: 6.1.0
@@ -5114,9 +5418,11 @@ snapshots:
dependencies:
js-tokens: 4.0.0
- math-intrinsics@1.1.0: {}
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
- merge-stream@2.0.0: {}
+ math-intrinsics@1.1.0: {}
merge2@1.4.1: {}
@@ -5125,8 +5431,6 @@ snapshots:
braces: 3.0.3
picomatch: 2.3.1
- mimic-fn@4.0.0: {}
-
mimic-function@5.0.1: {}
minimatch@3.1.2:
@@ -5141,36 +5445,39 @@ snapshots:
ms@2.1.3: {}
+ nano-spawn@2.0.0: {}
+
nanoid@3.3.11: {}
napi-postinstall@0.3.4: {}
natural-compare@1.4.0: {}
- next-auth@5.0.0-beta.30(next@15.5.10(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4):
+ next-auth@5.0.0-beta.30(next@16.1.5(@babel/core@7.28.6)(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4):
dependencies:
"@auth/core": 0.41.0
- next: 15.5.10(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ next: 16.1.5(@babel/core@7.28.6)(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
react: 19.2.4
- next@15.5.10(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
+ next@16.1.5(@babel/core@7.28.6)(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
dependencies:
- "@next/env": 15.5.10
+ "@next/env": 16.1.5
"@swc/helpers": 0.5.15
+ baseline-browser-mapping: 2.9.18
caniuse-lite: 1.0.30001766
postcss: 8.4.31
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
- styled-jsx: 5.1.6(react@19.2.4)
+ styled-jsx: 5.1.6(@babel/core@7.28.6)(react@19.2.4)
optionalDependencies:
- "@next/swc-darwin-arm64": 15.5.7
- "@next/swc-darwin-x64": 15.5.7
- "@next/swc-linux-arm64-gnu": 15.5.7
- "@next/swc-linux-arm64-musl": 15.5.7
- "@next/swc-linux-x64-gnu": 15.5.7
- "@next/swc-linux-x64-musl": 15.5.7
- "@next/swc-win32-arm64-msvc": 15.5.7
- "@next/swc-win32-x64-msvc": 15.5.7
+ "@next/swc-darwin-arm64": 16.1.5
+ "@next/swc-darwin-x64": 16.1.5
+ "@next/swc-linux-arm64-gnu": 16.1.5
+ "@next/swc-linux-arm64-musl": 16.1.5
+ "@next/swc-linux-x64-gnu": 16.1.5
+ "@next/swc-linux-x64-musl": 16.1.5
+ "@next/swc-win32-arm64-msvc": 16.1.5
+ "@next/swc-win32-x64-msvc": 16.1.5
"@playwright/test": 1.58.0
sharp: 0.34.5
transitivePeerDependencies:
@@ -5181,9 +5488,7 @@ snapshots:
node-gyp-build@4.8.4: {}
- npm-run-path@5.3.0:
- dependencies:
- path-key: 4.0.0
+ node-releases@2.0.27: {}
oauth4webapi@3.8.3: {}
@@ -5231,10 +5536,6 @@ snapshots:
obuf@1.1.2: {}
- onetime@6.0.0:
- dependencies:
- mimic-fn: 4.0.0
-
onetime@7.0.0:
dependencies:
mimic-function: 5.0.1
@@ -5270,8 +5571,6 @@ snapshots:
path-key@3.1.1: {}
- path-key@4.0.0: {}
-
path-parse@1.0.7: {}
pg-int8@1.0.1: {}
@@ -5373,7 +5672,7 @@ snapshots:
prelude-ls@1.2.1: {}
- prettier@3.6.2: {}
+ prettier@3.8.1: {}
prop-types@15.8.1:
dependencies:
@@ -5401,39 +5700,39 @@ snapshots:
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
- react-remove-scroll-bar@2.3.8(@types/react@19.2.9)(react@19.2.4):
+ react-remove-scroll-bar@2.3.8(@types/react@19.2.10)(react@19.2.4):
dependencies:
react: 19.2.4
- react-style-singleton: 2.2.3(@types/react@19.2.9)(react@19.2.4)
+ react-style-singleton: 2.2.3(@types/react@19.2.10)(react@19.2.4)
tslib: 2.8.1
optionalDependencies:
- "@types/react": 19.2.9
+ "@types/react": 19.2.10
- react-remove-scroll@2.7.2(@types/react@19.2.9)(react@19.2.4):
+ react-remove-scroll@2.7.2(@types/react@19.2.10)(react@19.2.4):
dependencies:
react: 19.2.4
- react-remove-scroll-bar: 2.3.8(@types/react@19.2.9)(react@19.2.4)
- react-style-singleton: 2.2.3(@types/react@19.2.9)(react@19.2.4)
+ react-remove-scroll-bar: 2.3.8(@types/react@19.2.10)(react@19.2.4)
+ react-style-singleton: 2.2.3(@types/react@19.2.10)(react@19.2.4)
tslib: 2.8.1
- use-callback-ref: 1.3.3(@types/react@19.2.9)(react@19.2.4)
- use-sidecar: 1.1.3(@types/react@19.2.9)(react@19.2.4)
+ use-callback-ref: 1.3.3(@types/react@19.2.10)(react@19.2.4)
+ use-sidecar: 1.1.3(@types/react@19.2.10)(react@19.2.4)
optionalDependencies:
- "@types/react": 19.2.9
+ "@types/react": 19.2.10
- react-style-singleton@2.2.3(@types/react@19.2.9)(react@19.2.4):
+ react-style-singleton@2.2.3(@types/react@19.2.10)(react@19.2.4):
dependencies:
get-nonce: 1.0.1
react: 19.2.4
tslib: 2.8.1
optionalDependencies:
- "@types/react": 19.2.9
+ "@types/react": 19.2.10
- react-textarea-autosize@8.5.9(@types/react@19.2.9)(react@19.2.4):
+ react-textarea-autosize@8.5.9(@types/react@19.2.10)(react@19.2.4):
dependencies:
"@babel/runtime": 7.28.6
react: 19.2.4
- use-composed-ref: 1.4.0(@types/react@19.2.9)(react@19.2.4)
- use-latest: 1.3.0(@types/react@19.2.9)(react@19.2.4)
+ use-composed-ref: 1.4.0(@types/react@19.2.10)(react@19.2.4)
+ use-latest: 1.3.0(@types/react@19.2.10)(react@19.2.4)
transitivePeerDependencies:
- "@types/react"
@@ -5602,11 +5901,6 @@ snapshots:
signal-exit@4.1.0: {}
- slice-ansi@5.0.0:
- dependencies:
- ansi-styles: 6.2.3
- is-fullwidth-code-point: 4.0.0
-
slice-ansi@7.1.2:
dependencies:
ansi-styles: 6.2.3
@@ -5629,6 +5923,11 @@ snapshots:
get-east-asian-width: 1.4.0
strip-ansi: 7.1.2
+ string-width@8.1.0:
+ dependencies:
+ get-east-asian-width: 1.4.0
+ strip-ansi: 7.1.2
+
string.prototype.includes@2.0.1:
dependencies:
call-bind: 1.0.8
@@ -5685,14 +5984,14 @@ snapshots:
strip-bom@3.0.0: {}
- strip-final-newline@3.0.0: {}
-
strip-json-comments@3.1.1: {}
- styled-jsx@5.1.6(react@19.2.4):
+ styled-jsx@5.1.6(@babel/core@7.28.6)(react@19.2.4):
dependencies:
client-only: 0.0.1
react: 19.2.4
+ optionalDependencies:
+ "@babel/core": 7.28.6
sugarss@5.0.1(postcss@8.5.6):
dependencies:
@@ -5767,6 +6066,17 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
+ typescript-eslint@8.54.0(eslint@9.39.2)(typescript@5.9.3):
+ dependencies:
+ "@typescript-eslint/eslint-plugin": 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)
+ "@typescript-eslint/parser": 8.54.0(eslint@9.39.2)(typescript@5.9.3)
+ "@typescript-eslint/typescript-estree": 8.54.0(typescript@5.9.3)
+ "@typescript-eslint/utils": 8.54.0(eslint@9.39.2)(typescript@5.9.3)
+ eslint: 9.39.2
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
typescript@5.9.3: {}
unbox-primitive@1.1.0:
@@ -5802,43 +6112,49 @@ snapshots:
"@unrs/resolver-binding-win32-ia32-msvc": 1.11.1
"@unrs/resolver-binding-win32-x64-msvc": 1.11.1
+ update-browserslist-db@1.2.3(browserslist@4.28.1):
+ dependencies:
+ browserslist: 4.28.1
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
uri-js@4.4.1:
dependencies:
punycode: 2.3.1
- use-callback-ref@1.3.3(@types/react@19.2.9)(react@19.2.4):
+ use-callback-ref@1.3.3(@types/react@19.2.10)(react@19.2.4):
dependencies:
react: 19.2.4
tslib: 2.8.1
optionalDependencies:
- "@types/react": 19.2.9
+ "@types/react": 19.2.10
- use-composed-ref@1.4.0(@types/react@19.2.9)(react@19.2.4):
+ use-composed-ref@1.4.0(@types/react@19.2.10)(react@19.2.4):
dependencies:
react: 19.2.4
optionalDependencies:
- "@types/react": 19.2.9
+ "@types/react": 19.2.10
- use-isomorphic-layout-effect@1.2.1(@types/react@19.2.9)(react@19.2.4):
+ use-isomorphic-layout-effect@1.2.1(@types/react@19.2.10)(react@19.2.4):
dependencies:
react: 19.2.4
optionalDependencies:
- "@types/react": 19.2.9
+ "@types/react": 19.2.10
- use-latest@1.3.0(@types/react@19.2.9)(react@19.2.4):
+ use-latest@1.3.0(@types/react@19.2.10)(react@19.2.4):
dependencies:
react: 19.2.4
- use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.9)(react@19.2.4)
+ use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.10)(react@19.2.4)
optionalDependencies:
- "@types/react": 19.2.9
+ "@types/react": 19.2.10
- use-sidecar@1.1.3(@types/react@19.2.9)(react@19.2.4):
+ use-sidecar@1.1.3(@types/react@19.2.10)(react@19.2.4):
dependencies:
detect-node-es: 1.1.0
react: 19.2.4
tslib: 2.8.1
optionalDependencies:
- "@types/react": 19.2.9
+ "@types/react": 19.2.10
util-deprecate@1.0.2: {}
@@ -5901,8 +6217,14 @@ snapshots:
optionalDependencies:
bufferutil: 4.1.0
+ yallist@3.1.1: {}
+
yaml@2.8.2: {}
yocto-queue@0.1.0: {}
+ zod-validation-error@4.0.2(zod@4.3.6):
+ dependencies:
+ zod: 4.3.6
+
zod@4.3.6: {}
From 65f74ecf19c90b38350b309298928243c219eb75 Mon Sep 17 00:00:00 2001
From: cjrace <52536248+cjrace@users.noreply.github.com>
Date: Tue, 27 Jan 2026 19:59:13 +0000
Subject: [PATCH 2/9] migrate to eslint
---
.eslintrc.json | 3 -
eslint.config.mjs | 149 ++++++++++++++++++++++++++++++++++++++++++++++
package.json | 14 ++++-
pnpm-lock.yaml | 57 ++++++++++++++----
4 files changed, 207 insertions(+), 16 deletions(-)
delete mode 100644 .eslintrc.json
create mode 100644 eslint.config.mjs
diff --git a/.eslintrc.json b/.eslintrc.json
deleted file mode 100644
index c5d43a6..0000000
--- a/.eslintrc.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "extends": ["next", "prettier"]
-}
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 0000000..019f472
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,149 @@
+import { defineConfig } from "eslint/config";
+import eslintPlugin from "@eslint/js";
+import tseslintPlugin from "@typescript-eslint/eslint-plugin";
+import tseslintParser from "@typescript-eslint/parser";
+import reactPlugin from "eslint-plugin-react";
+import reactHooksPlugin from "eslint-plugin-react-hooks";
+import jsxA11yPlugin from "eslint-plugin-jsx-a11y";
+import nextPlugin from "@next/eslint-plugin-next";
+
+// Global ignores configuration
+// Must be in its own config object to act as global ignores
+const ignoresConfig = defineConfig([
+ {
+ name: "project/ignores",
+ ignores: [
+ ".next/",
+ "node_modules/",
+ "public/",
+ ".vscode/",
+ "next-env.d.ts",
+ ],
+ },
+]);
+
+// ESLint recommended rules for JavaScript/TypeScript
+const eslintConfig = defineConfig([
+ {
+ name: "project/javascript-recommended",
+ files: ["**/*.{js,mjs,ts,tsx}"],
+ ...eslintPlugin.configs.recommended,
+ },
+]);
+
+// TypeScript configuration with type-checked rules
+const typescriptConfig = defineConfig([
+ {
+ name: "project/typescript-strict",
+ files: ["**/*.{ts,tsx,mjs}"],
+ plugins: {
+ "@typescript-eslint": tseslintPlugin,
+ },
+ languageOptions: {
+ parser: tseslintParser,
+ parserOptions: {
+ project: ["./tsconfig.json"],
+ tsconfigRootDir: import.meta.dirname,
+ ecmaFeatures: {
+ jsx: true,
+ },
+ warnOnUnsupportedTypeScriptVersion: true,
+ },
+ },
+ extends: [
+ "@typescript-eslint/strict-type-checked",
+ "@typescript-eslint/stylistic-type-checked",
+ ],
+ rules: {
+ // Disable rules that conflict with TypeScript's own error checking
+ "@typescript-eslint/no-unsafe-call": "off",
+ "@typescript-eslint/triple-slash-reference": "off",
+ // disabled next rule due to bug:
+ // https://github.com/typescript-eslint/typescript-eslint/issues/11732
+ // https://github.com/eslint/eslint/issues/20272
+ "@typescript-eslint/unified-signatures": "off",
+ // Allow ts-expect-error and ts-ignore with descriptions
+ "@typescript-eslint/ban-ts-comment": [
+ "error",
+ {
+ "ts-expect-error": "allow-with-description",
+ "ts-ignore": "allow-with-description",
+ "ts-nocheck": false,
+ "ts-check": false,
+ minimumDescriptionLength: 3,
+ },
+ ],
+ },
+ },
+ // For plain JS files, you may want to disable type-checked rules
+ {
+ name: "project/javascript-disable-type-check",
+ files: ["**/*.{js,mjs,cjs}"],
+ plugins: {
+ "@typescript-eslint": tseslintPlugin,
+ },
+ extends: ["@typescript-eslint/disable-type-checked"],
+ },
+]);
+
+// React and Next.js configuration
+const reactConfig = defineConfig([
+ {
+ name: "project/react-next",
+ files: ["**/*.{jsx,tsx}"],
+ plugins: {
+ react: reactPlugin,
+ "react-hooks": reactHooksPlugin,
+ "jsx-a11y": jsxA11yPlugin,
+ "@next/next": nextPlugin,
+ },
+ rules: {
+ // React recommended rules
+ ...reactPlugin.configs.recommended.rules,
+ ...reactPlugin.configs["jsx-runtime"].rules,
+ // React Hooks rules (use recommended-latest for latest features)
+ ...reactHooksPlugin.configs["recommended-latest"].rules,
+ // Accessibility rules (strict mode for better a11y)
+ ...jsxA11yPlugin.configs.strict.rules,
+ // Next.js recommended rules
+ ...nextPlugin.configs.recommended.rules,
+ // Next.js Core Web Vitals rules
+ ...nextPlugin.configs["core-web-vitals"].rules,
+
+ // Customizations for modern React/Next.js
+ "react/react-in-jsx-scope": "off", // Not needed in Next.js
+ "react/prop-types": "off", // Use TypeScript instead
+ "react/no-unknown-property": "off", // Conflicts with custom attributes
+ "react/jsx-no-target-blank": "off", // Next.js handles this
+
+ // Fine-tuned accessibility rules
+ "jsx-a11y/alt-text": [
+ "warn",
+ {
+ elements: ["img"],
+ img: ["Image"], // Next.js Image component
+ },
+ ],
+ "jsx-a11y/media-has-caption": "warn",
+ "jsx-a11y/aria-props": "warn",
+ "jsx-a11y/aria-proptypes": "warn",
+ "jsx-a11y/aria-unsupported-elements": "warn",
+ "jsx-a11y/role-has-required-aria-props": "warn",
+ "jsx-a11y/role-supports-aria-props": "warn",
+ },
+ settings: {
+ react: {
+ version: "detect", // Automatically detect React version
+ },
+ },
+ },
+]);
+
+// Export the complete configuration
+// Order matters: ignores first, then general configs, then specific overrides
+export default defineConfig([
+ ...ignoresConfig,
+ ...eslintConfig,
+ ...typescriptConfig,
+ ...reactConfig,
+]);
diff --git a/package.json b/package.json
index a2464b9..a87d238 100644
--- a/package.json
+++ b/package.json
@@ -7,6 +7,7 @@
"build": "pnpm run lint && next build",
"start": "next start",
"lint": "eslint",
+ "lint:fix": "eslint --fix",
"test": "prettier . --write && pnpm run lint && next build && playwright test",
"test-only": "pnpm run lint && playwright test",
"pretty": "prettier . --write",
@@ -24,7 +25,6 @@
"@vercel/speed-insights": "^1.3.1",
"bcrypt": "^6.0.0",
"dotenv": "^17.2.3",
- "eslint": "^9.39.2",
"next": "^16.1.5",
"next-auth": "5.0.0-beta.30",
"react": "^19.2.4",
@@ -35,20 +35,30 @@
"zod": "^4.3.6"
},
"devDependencies": {
+ "@eslint/js": "^9.39.2",
+ "@next/eslint-plugin-next": "16.1.5",
"@playwright/test": "^1.58.0",
"@types/bcrypt": "^6.0.0",
"@types/node": "^25.0.10",
"@types/react": "^19.2.10",
"@types/react-dom": "^19.2.3",
+ "@typescript-eslint/eslint-plugin": "^8.54.0",
+ "@typescript-eslint/parser": "^8.54.0",
+ "eslint": "^9.39.2",
"eslint-config-next": "16.1.5",
"eslint-config-prettier": "^10.1.8",
+ "eslint-plugin-jsx-a11y": "6.10.2",
+ "eslint-plugin-next": "^0.0.0",
+ "eslint-plugin-react": "7.37.5",
+ "eslint-plugin-react-hooks": "7.0.1",
"husky": "^9.1.7",
"lint-staged": "^16.2.7",
"postcss": "^8.5.6",
"postcss-preset-mantine": "^1.18.0",
"postcss-simple-vars": "^7.0.1",
"prettier": "3.8.1",
- "typescript": "^5.9.3"
+ "typescript": "^5.9.3",
+ "typescript-eslint": "8.54.0"
},
"lint-staged": {
"**/*": "prettier --write --ignore-unknown"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 95532a3..aad303a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -34,9 +34,6 @@ importers:
dotenv:
specifier: ^17.2.3
version: 17.2.3
- eslint:
- specifier: ^9.39.2
- version: 9.39.2
next:
specifier: ^16.1.5
version: 16.1.5(@babel/core@7.28.6)(@playwright/test@1.58.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@@ -62,6 +59,12 @@ importers:
specifier: ^4.3.6
version: 4.3.6
devDependencies:
+ "@eslint/js":
+ specifier: ^9.39.2
+ version: 9.39.2
+ "@next/eslint-plugin-next":
+ specifier: 16.1.5
+ version: 16.1.5
"@playwright/test":
specifier: ^1.58.0
version: 1.58.0
@@ -77,12 +80,33 @@ importers:
"@types/react-dom":
specifier: ^19.2.3
version: 19.2.3(@types/react@19.2.10)
+ "@typescript-eslint/eslint-plugin":
+ specifier: ^8.54.0
+ version: 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)
+ "@typescript-eslint/parser":
+ specifier: ^8.54.0
+ version: 8.54.0(eslint@9.39.2)(typescript@5.9.3)
+ eslint:
+ specifier: ^9.39.2
+ version: 9.39.2
eslint-config-next:
specifier: 16.1.5
version: 16.1.5(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)
eslint-config-prettier:
specifier: ^10.1.8
version: 10.1.8(eslint@9.39.2)
+ eslint-plugin-jsx-a11y:
+ specifier: 6.10.2
+ version: 6.10.2(eslint@9.39.2)
+ eslint-plugin-next:
+ specifier: ^0.0.0
+ version: 0.0.0
+ eslint-plugin-react:
+ specifier: 7.37.5
+ version: 7.37.5(eslint@9.39.2)
+ eslint-plugin-react-hooks:
+ specifier: 7.0.1
+ version: 7.0.1(eslint@9.39.2)
husky:
specifier: ^9.1.7
version: 9.1.7
@@ -104,6 +128,9 @@ importers:
typescript:
specifier: ^5.9.3
version: 5.9.3
+ typescript-eslint:
+ specifier: 8.54.0
+ version: 8.54.0(eslint@9.39.2)(typescript@5.9.3)
packages:
"@auth/core@0.41.0":
@@ -1842,6 +1869,12 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
+ eslint-plugin-next@0.0.0:
+ resolution:
+ {
+ integrity: sha512-IldNDVb6WNduggwRbYzSGZhaskUwVecJ6fhmqwX01+S1aohwAWNzU4me6y47DDzpD/g0fdayNBGxEdt9vKkUtg==,
+ }
+
eslint-plugin-react-hooks@7.0.1:
resolution:
{
@@ -4840,8 +4873,8 @@ snapshots:
"@next/eslint-plugin-next": 16.1.5
eslint: 9.39.2
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2)
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2)
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2)
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2)
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2)
eslint-plugin-react: 7.37.5(eslint@9.39.2)
eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2)
@@ -4867,7 +4900,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2):
+ eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2):
dependencies:
"@nolyfill/is-core-module": 1.0.39
debug: 4.4.3
@@ -4878,22 +4911,22 @@ snapshots:
tinyglobby: 0.2.15
unrs-resolver: 1.11.1
optionalDependencies:
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2)
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2)
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2):
+ eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2):
dependencies:
debug: 3.2.7
optionalDependencies:
"@typescript-eslint/parser": 8.54.0(eslint@9.39.2)(typescript@5.9.3)
eslint: 9.39.2
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2)
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2)
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2):
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2):
dependencies:
"@rtsao/scc": 1.1.0
array-includes: 3.1.9
@@ -4904,7 +4937,7 @@ snapshots:
doctrine: 2.1.0
eslint: 9.39.2
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2)
+ eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2)
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -4941,6 +4974,8 @@ snapshots:
safe-regex-test: 1.1.0
string.prototype.includes: 2.0.1
+ eslint-plugin-next@0.0.0: {}
+
eslint-plugin-react-hooks@7.0.1(eslint@9.39.2):
dependencies:
"@babel/core": 7.28.6
From fdcd2cd4b45aba765e9132f4b146c8d69567b39e Mon Sep 17 00:00:00 2001
From: cjrace <52536248+cjrace@users.noreply.github.com>
Date: Tue, 27 Jan 2026 20:03:19 +0000
Subject: [PATCH 3/9] autofixed linting changes
---
src/app/error.tsx | 4 +++-
src/auth.ts | 4 ++--
src/components/backtotop.tsx | 4 +++-
src/components/boomboompirate.tsx | 6 ++++--
src/components/carddeck.tsx | 4 ++--
src/components/chopinliszt.tsx | 4 +++-
src/components/cocktails.tsx | 8 ++++++--
src/components/decisionmaker.tsx | 4 ++--
src/components/filmedit.tsx | 19 ++++++++++++++++---
src/components/filmlist.tsx | 26 +++++++++++++++-----------
src/components/header.tsx | 6 +++---
src/components/irishbingo.tsx | 20 +++++++++++++++-----
src/components/login.tsx | 12 ++++++------
src/components/snakesandladders.tsx | 28 +++++++++++++++-------------
src/components/whiskyjournal.tsx | 16 ++++++++++++----
src/components/whiskyjournaledit.tsx | 19 ++++++++++++++++---
src/services/chopinliszt.ts | 4 ++--
tests/admin/00_admin_pages.spec.ts | 4 ++--
tsconfig.json | 5 +++--
19 files changed, 130 insertions(+), 67 deletions(-)
diff --git a/src/app/error.tsx b/src/app/error.tsx
index a98e3a7..0cfe596 100644
--- a/src/app/error.tsx
+++ b/src/app/error.tsx
@@ -26,7 +26,9 @@ export default function Error({
diff --git a/src/components/boomboompirate.tsx b/src/components/boomboompirate.tsx
index bf421d0..f8bcd8f 100644
--- a/src/components/boomboompirate.tsx
+++ b/src/components/boomboompirate.tsx
@@ -36,7 +36,7 @@ const BoomBoomPirate = () => {
generateRandomRope(totalRopes),
);
const [loadingRope, setLoadingRope] = useState(null);
- const [ropeStates, setRopeStates] = useState<{ [key: number]: string }>({});
+ const [ropeStates, setRopeStates] = useState>({});
const [isExplosion, setIsExplosion] = useState(false);
const [currentIcon, setCurrentIcon] = useState(null);
const [showExplosions, setShowExplosions] = useState(false);
@@ -129,7 +129,9 @@ const BoomBoomPirate = () => {