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 = () => { setModalOpened(false)} + onClose={() => { + setModalOpened(false); + }} title="Confirm Deletion" > ID: {filmData.id} Name: {filmData.name} Are you sure you want to delete this Film? - @@ -258,7 +264,9 @@ export default function IrishBingo() { )} @@ -353,7 +359,9 @@ export default function WhiskyJournal() { rightSection={ searchQuery && ( setSearchQuery("")} + onClick={() => { + setSearchQuery(""); + }} variant="default" aria-label="Clear search query" > diff --git a/src/components/whiskyjournaledit.tsx b/src/components/whiskyjournaledit.tsx index 8ad6fe6..9892478 100644 --- a/src/components/whiskyjournaledit.tsx +++ b/src/components/whiskyjournaledit.tsx @@ -87,21 +87,34 @@ export const WhiskyJournalEdit = ({ whiskyData }: { whiskyData: Whisky }) => { Edit Whisky - setModalOpened(false)} + onClose={() => { + setModalOpened(false); + }} title="Confirm Deletion" > Whisky ID: {whiskyData.whisky_id} Name: {whiskyData.name} Are you sure you want to delete this whisky? - ))} @@ -172,13 +172,16 @@ const BoomBoomPirate = () => { {showExplosions && ( <> - {[...Array(3)].map((_, i) => { + {Array.from({ length: 3 }).map((_, i) => { const { top, left } = generateRandomPosition(); return (
); })} diff --git a/src/components/chopinliszt.tsx b/src/components/chopinliszt.tsx index 7812a42..b86e31c 100644 --- a/src/components/chopinliszt.tsx +++ b/src/components/chopinliszt.tsx @@ -33,10 +33,6 @@ const ChopinLiszt: React.FC = () => { const [items, setItems] = useState([]); const [newItemText, setNewItemText] = useState(""); - useEffect(() => { - fetchItems(); - }, []); - const fetchItems = async () => { try { console.log("Requesting new data"); @@ -49,6 +45,20 @@ const ChopinLiszt: React.FC = () => { } }; + useEffect(() => { + void (async () => { + try { + console.log("Requesting new data"); + const data = await readChopin(); + console.log("Data fetch successful"); + setItems(data); + setLoading(false); + } catch (error) { + console.error("Error fetching data:", error); + } + })(); + }, []); + const addItem = async () => { // Split the user input into separate lines for each item const itemsToAdd = newItemText.trim().split("\n"); @@ -125,7 +135,9 @@ const ChopinLiszt: React.FC = () => { /> -
diff --git a/src/components/filmlist.tsx b/src/components/filmlist.tsx index 4047db2..942dc42 100644 --- a/src/components/filmlist.tsx +++ b/src/components/filmlist.tsx @@ -37,7 +37,7 @@ export default function FilmList() { } }; - fetchFilms(); + void fetchFilms(); }, []); const [imdbFilter, setImdbFilter] = useState(null); @@ -116,7 +116,7 @@ export default function FilmList() { const copyToClipboard = () => { const filmNameList = searchedFilmData - .map((film) => `${film.name} (${film.release_year})`) + .map((film) => `${film.name} (${film.release_year.toString()})`) .join("\n"); clipboard.copy(filmNameList); }; @@ -192,7 +192,7 @@ export default function FilmList() { label="Sort by" placeholder="Select sorting option" data={sortOptions} - value={sortOption !== null ? sortOption : "alphabetical"} // Default value set to "alphabetical" + value={sortOption ?? "alphabetical"} // Default value set to "alphabetical" onChange={setSortOption} clearable /> diff --git a/src/components/gamescard.tsx b/src/components/gamescard.tsx index 7607a6c..ba2040d 100644 --- a/src/components/gamescard.tsx +++ b/src/components/gamescard.tsx @@ -1,6 +1,6 @@ "use client"; -import { Card, Text, Image, Button, Center, Stack } from "@mantine/core"; +import { Card, Text, Image, Button, Center } from "@mantine/core"; interface GamesCardProps { imagePath: string; diff --git a/src/components/irishbingo.tsx b/src/components/irishbingo.tsx index 7745a12..6fb61eb 100644 --- a/src/components/irishbingo.tsx +++ b/src/components/irishbingo.tsx @@ -248,7 +248,7 @@ export default function IrishBingo() { mt="sm" id="card_count" ta="center" - >{`${drawnCards.length} / 52 cards`} + >{`${drawnCards.length.toString()} / 52 cards`} -
diff --git a/src/services/chopinliszt.ts b/src/services/chopinliszt.ts index efe9954..5697ebe 100644 --- a/src/services/chopinliszt.ts +++ b/src/services/chopinliszt.ts @@ -28,7 +28,7 @@ export async function createChopin(formData: FormData) { if (!validatedFields.success) { return { - errors: validatedFields.error.flatten().fieldErrors, + errors: z.treeifyError(validatedFields.error), message: "Missing Fields. Failed to parse chopin_text.", }; } @@ -53,12 +53,16 @@ export async function createChopin(formData: FormData) { export async function readChopin(): Promise { try { - const data = await sql` - SELECT chopin_id, chopin_text, checked - FROM chopin_liszt; - `; + const data = await sql<{ + chopin_id: string; + chopin_text: string; + checked: boolean; + }>` + SELECT chopin_id, chopin_text, checked + FROM chopin_liszt; + `; - const latestChopin = data.rows.map((chopin) => ({ + const latestChopin: Item[] = data.rows.map((chopin) => ({ id: chopin.chopin_id, text: chopin.chopin_text, checked: chopin.checked, diff --git a/src/services/filmlist.ts b/src/services/filmlist.ts index 8abe912..035cd92 100644 --- a/src/services/filmlist.ts +++ b/src/services/filmlist.ts @@ -21,12 +21,12 @@ export async function createFilm(film: Film): Promise { export async function readFilmList(): Promise { try { - const data = await sql` - SELECT id, name, release_year, top_30, watched, not_in_jar - FROM film_list; - `; + const data = await sql` + SELECT id, name, release_year, top_30, watched, not_in_jar + FROM film_list; + `; - const films = data.rows.map((film) => ({ + const films: Film[] = data.rows.map((film) => ({ id: film.id, name: film.name, release_year: film.release_year, @@ -44,11 +44,11 @@ export async function readFilmList(): Promise { export async function readFilm(film_id: string): Promise { try { - const data = await sql` - SELECT id, name, release_year, top_30, watched, not_in_jar - FROM film_list - WHERE id = ${film_id}; - `; + const data = await sql` + SELECT id, name, release_year, top_30, watched, not_in_jar + FROM film_list + WHERE id = ${film_id}; + `; if (data.rows.length > 1) { throw new Error("More than one film found with the given name."); @@ -58,7 +58,7 @@ export async function readFilm(film_id: string): Promise { throw new Error("No film found with the given name."); } - const film = { + const film: Film = { id: data.rows[0].id, name: data.rows[0].name, release_year: data.rows[0].release_year, diff --git a/src/services/whiskyjournal.ts b/src/services/whiskyjournal.ts index 757cf87..67e2e02 100644 --- a/src/services/whiskyjournal.ts +++ b/src/services/whiskyjournal.ts @@ -27,12 +27,12 @@ export async function createWhisky(whisky: Whisky): Promise { // Read all whiskies export async function readWhiskyJournal(): Promise { try { - const data = await sql` - SELECT last_edited, whisky_id, name, distillery, country_region, age, grain, abv, rating, price, notes - FROM whisky_journal; - `; + const data = await sql` + SELECT last_edited, whisky_id, name, distillery, country_region, age, grain, abv, rating, price, notes + FROM whisky_journal; + `; - const whiskies = data.rows.map((whisky) => ({ + const whiskies: Whisky[] = data.rows.map((whisky) => ({ last_edited: whisky.last_edited, whisky_id: whisky.whisky_id, name: whisky.name, @@ -56,11 +56,11 @@ export async function readWhiskyJournal(): Promise { // Read single whisky by id export async function readWhisky(whisky_id: string): Promise { try { - const data = await sql` - SELECT last_edited, whisky_id, name, distillery, country_region, age, grain, abv, rating, price, notes - FROM whisky_journal - WHERE whisky_id = ${whisky_id}; - `; + const data = await sql` + SELECT last_edited, whisky_id, name, distillery, country_region, age, grain, abv, rating, price, notes + FROM whisky_journal + WHERE whisky_id = ${whisky_id}; + `; if (data.rows.length > 1) { throw new Error("More than one whisky found with the given ID."); @@ -70,7 +70,7 @@ export async function readWhisky(whisky_id: string): Promise { throw new Error("No whisky found with the given ID."); } - const whisky = { + const whisky: Whisky = { last_edited: data.rows[0].last_edited, whisky_id: data.rows[0].whisky_id, name: data.rows[0].name, From c41079d8175a9fc528aa3a051b3d1b9dfa7af8d7 Mon Sep 17 00:00:00 2001 From: cjrace <52536248+cjrace@users.noreply.github.com> Date: Mon, 2 Feb 2026 12:32:15 +0000 Subject: [PATCH 7/9] most linting errors dissappeared after a few were fixed --- next.config.ts | 2 +- src/actions/signOutAction.ts | 7 +++++++ src/app/admin/(admin)/page.tsx | 13 ++----------- src/app/admin/chopinliszt/page.tsx | 2 +- src/app/admin/films/add/page.tsx | 2 +- src/app/admin/whiskyjournal/add/page.tsx | 2 +- src/components/SignOutButton.tsx | 14 ++++++++++++++ 7 files changed, 27 insertions(+), 15 deletions(-) create mode 100644 src/actions/signOutAction.ts create mode 100644 src/components/SignOutButton.tsx diff --git a/next.config.ts b/next.config.ts index a7672c7..8efa67c 100644 --- a/next.config.ts +++ b/next.config.ts @@ -21,7 +21,7 @@ const nextConfig: NextConfig = { "sharp", ], }, - async headers() { + headers() { return [ { source: "/(.*)", diff --git a/src/actions/signOutAction.ts b/src/actions/signOutAction.ts new file mode 100644 index 0000000..7592cc5 --- /dev/null +++ b/src/actions/signOutAction.ts @@ -0,0 +1,7 @@ +"use server"; + +import { signOut } from "@/auth"; + +export async function signOutAction() { + await signOut(); +} diff --git a/src/app/admin/(admin)/page.tsx b/src/app/admin/(admin)/page.tsx index e304e70..7c8c55b 100644 --- a/src/app/admin/(admin)/page.tsx +++ b/src/app/admin/(admin)/page.tsx @@ -1,7 +1,7 @@ import { Button, Title, Group, Space } from "@mantine/core"; import { Metadata } from "next"; import Header from "@/components/header"; -import { signOut } from "@/auth"; +import { SignOutButton } from "@/components/SignOutButton"; import { IconShoppingCart, IconBeach, @@ -72,16 +72,7 @@ export default function Admin() { - - - + ); diff --git a/src/app/admin/chopinliszt/page.tsx b/src/app/admin/chopinliszt/page.tsx index b4beccf..70fd075 100644 --- a/src/app/admin/chopinliszt/page.tsx +++ b/src/app/admin/chopinliszt/page.tsx @@ -13,7 +13,7 @@ const crumbitems = [ { title: "Chopin Liszt", href: "" }, ]; -export default async function ChopinLiszt() { +export default function ChopinLiszt() { return ( <>
diff --git a/src/app/admin/films/add/page.tsx b/src/app/admin/films/add/page.tsx index cee9d01..c49e6fb 100644 --- a/src/app/admin/films/add/page.tsx +++ b/src/app/admin/films/add/page.tsx @@ -7,7 +7,7 @@ export const metadata: Metadata = { title: "Add film", }; -export default async function AddFilm() { +export default function AddFilm() { return ( <>
diff --git a/src/app/admin/whiskyjournal/add/page.tsx b/src/app/admin/whiskyjournal/add/page.tsx index ae18d98..6778def 100644 --- a/src/app/admin/whiskyjournal/add/page.tsx +++ b/src/app/admin/whiskyjournal/add/page.tsx @@ -7,7 +7,7 @@ export const metadata: Metadata = { title: "Add Whisky", }; -export default async function AddWhisky() { +export default function AddWhisky() { return ( <>
diff --git a/src/components/SignOutButton.tsx b/src/components/SignOutButton.tsx new file mode 100644 index 0000000..8472f75 --- /dev/null +++ b/src/components/SignOutButton.tsx @@ -0,0 +1,14 @@ +"use client"; + +import { Button, Group } from "@mantine/core"; +import { signOutAction } from "@/actions/signOutAction"; + +export function SignOutButton() { + return ( + +
+ +
+
+ ); +} From 05374952004f38d45f331f01a2bb24bababfee70 Mon Sep 17 00:00:00 2001 From: cjrace <52536248+cjrace@users.noreply.github.com> Date: Mon, 2 Feb 2026 12:39:46 +0000 Subject: [PATCH 8/9] bump package versions --- package.json | 16 +-- pnpm-lock.yaml | 348 ++++++++++++++++++++++++------------------------- 2 files changed, 182 insertions(+), 182 deletions(-) diff --git a/package.json b/package.json index a87d238..f09f622 100644 --- a/package.json +++ b/package.json @@ -16,16 +16,16 @@ "prepare": "husky" }, "dependencies": { - "@mantine/core": "^8.3.13", - "@mantine/form": "^8.3.13", - "@mantine/hooks": "^8.3.13", + "@mantine/core": "^8.3.14", + "@mantine/form": "^8.3.14", + "@mantine/hooks": "^8.3.14", "@tabler/icons-react": "^3.36.1", "@vercel/analytics": "^1.6.1", "@vercel/postgres": "^0.10.0", "@vercel/speed-insights": "^1.3.1", "bcrypt": "^6.0.0", "dotenv": "^17.2.3", - "next": "^16.1.5", + "next": "^16.1.6", "next-auth": "5.0.0-beta.30", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -36,16 +36,16 @@ }, "devDependencies": { "@eslint/js": "^9.39.2", - "@next/eslint-plugin-next": "16.1.5", - "@playwright/test": "^1.58.0", + "@next/eslint-plugin-next": "16.1.6", + "@playwright/test": "^1.58.1", "@types/bcrypt": "^6.0.0", - "@types/node": "^25.0.10", + "@types/node": "^25.2.0", "@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-next": "16.1.6", "eslint-config-prettier": "^10.1.8", "eslint-plugin-jsx-a11y": "6.10.2", "eslint-plugin-next": "^0.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aad303a..282d6bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,26 +8,26 @@ importers: .: dependencies: "@mantine/core": - 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) + specifier: ^8.3.14 + version: 8.3.14(@mantine/hooks@8.3.14(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: ^8.3.13 - version: 8.3.13(react@19.2.4) + specifier: ^8.3.14 + version: 8.3.14(react@19.2.4) "@mantine/hooks": - specifier: ^8.3.13 - version: 8.3.13(react@19.2.4) + specifier: ^8.3.14 + version: 8.3.14(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@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) + version: 1.6.1(next@16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.1)(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@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) + version: 1.3.1(next@16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.1)(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 @@ -35,11 +35,11 @@ importers: specifier: ^17.2.3 version: 17.2.3 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) + specifier: ^16.1.6 + version: 16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.1)(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@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) + version: 5.0.0-beta.30(next@16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.1)(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 @@ -63,17 +63,17 @@ importers: specifier: ^9.39.2 version: 9.39.2 "@next/eslint-plugin-next": - specifier: 16.1.5 - version: 16.1.5 + specifier: 16.1.6 + version: 16.1.6 "@playwright/test": - specifier: ^1.58.0 - version: 1.58.0 + specifier: ^1.58.1 + version: 1.58.1 "@types/bcrypt": specifier: ^6.0.0 version: 6.0.0 "@types/node": - specifier: ^25.0.10 - version: 25.0.10 + specifier: ^25.2.0 + version: 25.2.0 "@types/react": specifier: ^19.2.10 version: 19.2.10 @@ -90,8 +90,8 @@ importers: 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) + specifier: 16.1.6 + version: 16.1.6(@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) @@ -150,31 +150,31 @@ packages: nodemailer: optional: true - "@babel/code-frame@7.28.6": + "@babel/code-frame@7.29.0": resolution: { - integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==, + integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==, } engines: { node: ">=6.9.0" } - "@babel/compat-data@7.28.6": + "@babel/compat-data@7.29.0": resolution: { - integrity: sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==, + integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==, } engines: { node: ">=6.9.0" } - "@babel/core@7.28.6": + "@babel/core@7.29.0": resolution: { - integrity: sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==, + integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==, } engines: { node: ">=6.9.0" } - "@babel/generator@7.28.6": + "@babel/generator@7.29.0": resolution: { - integrity: sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==, + integrity: sha512-vSH118/wwM/pLR38g/Sgk05sNtro6TlTJKuiMXDaZqPUfjTFcudpCOt00IhOfj+1BFAX+UFAlzCU+6WXr3GLFQ==, } engines: { node: ">=6.9.0" } @@ -236,10 +236,10 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/parser@7.28.6": + "@babel/parser@7.29.0": resolution: { - integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==, + integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==, } engines: { node: ">=6.0.0" } hasBin: true @@ -258,17 +258,17 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/traverse@7.28.6": + "@babel/traverse@7.29.0": resolution: { - integrity: sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==, + integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==, } engines: { node: ">=6.9.0" } - "@babel/types@7.28.6": + "@babel/types@7.29.0": resolution: { - integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==, + integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==, } engines: { node: ">=6.9.0" } @@ -678,28 +678,28 @@ packages: integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==, } - "@mantine/core@8.3.13": + "@mantine/core@8.3.14": resolution: { - integrity: sha512-ZgW4vqN4meaPyIMxzAufBvsgmJRfYZdTpsrAOcS8pWy7m9e8i685E7XsAxnwJCOIHudpvpvt+7Bx7VaIjEsYEw==, + integrity: sha512-ZOxggx65Av1Ii1NrckCuqzluRpmmG+8DyEw24wDom3rmwsPg9UV+0le2QTyI5Eo60LzPfUju1KuEPiUzNABIPg==, } peerDependencies: - "@mantine/hooks": 8.3.13 + "@mantine/hooks": 8.3.14 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - "@mantine/form@8.3.13": + "@mantine/form@8.3.14": resolution: { - integrity: sha512-P7Avh24QiL8V517Jxj8JuUbCuSOA1BjwTB8/htH92cRmLoJtWn4ycZYE7ks8v3Hrg8fpd0Xd2O5o9R4+bXwD/A==, + integrity: sha512-LJUeab+oF+YzATrm/K03Z/QoVVYlaolWqLUZZj7XexNA4hS2/ycKyWT07YhGkdHTLXkf3DUtrg1sS77K7Oje8A==, } peerDependencies: react: ^18.x || ^19.x - "@mantine/hooks@8.3.13": + "@mantine/hooks@8.3.14": resolution: { - integrity: sha512-7YMbMW/tR9E8m/9DbBW01+3RNApm2mE/JbRKXf9s9+KxgbjQvq0FYGWV8Y4+Sjz48AO4vtWk2qBriUTgBMKAyg==, + integrity: sha512-0SbHnGEuHcF2QyjzBBcqidpjNmIb6n7TC3obnhkBToYhUTbMcJSK/8ei/yHtAelridJH4CPeohRlQdc0HajHyQ==, } peerDependencies: react: ^18.x || ^19.x @@ -716,89 +716,89 @@ packages: integrity: sha512-siFas6gItqv6wD/pZnvdu34wEqgG3nSE6zWZdq5j2DEsa+VvX8i/5HXJOo06qrw5axPXn+lGCxeR+NLaSPIXug==, } - "@next/env@16.1.5": + "@next/env@16.1.6": resolution: { - integrity: sha512-CRSCPJiSZoi4Pn69RYBDI9R7YK2g59vLexPQFXY0eyw+ILevIenCywzg+DqmlBik9zszEnw2HLFOUlLAcJbL7g==, + integrity: sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==, } - "@next/eslint-plugin-next@16.1.5": + "@next/eslint-plugin-next@16.1.6": resolution: { - integrity: sha512-gUWcEsOl+1W7XakmouClcJ0TNFCkblvDUho31wulbDY9na0C6mGtBTSXGRU5GXJY65GjGj0zNaCD/GaBp888Mg==, + integrity: sha512-/Qq3PTagA6+nYVfryAtQ7/9FEr/6YVyvOtl6rZnGsbReGLf0jZU6gkpr1FuChAQpvV46a78p4cmHOVP8mbfSMQ==, } - "@next/swc-darwin-arm64@16.1.5": + "@next/swc-darwin-arm64@16.1.6": resolution: { - integrity: sha512-eK7Wdm3Hjy/SCL7TevlH0C9chrpeOYWx2iR7guJDaz4zEQKWcS1IMVfMb9UKBFMg1XgzcPTYPIp1Vcpukkjg6Q==, + integrity: sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==, } engines: { node: ">= 10" } cpu: [arm64] os: [darwin] - "@next/swc-darwin-x64@16.1.5": + "@next/swc-darwin-x64@16.1.6": resolution: { - integrity: sha512-foQscSHD1dCuxBmGkbIr6ScAUF6pRoDZP6czajyvmXPAOFNnQUJu2Os1SGELODjKp/ULa4fulnBWoHV3XdPLfA==, + integrity: sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==, } engines: { node: ">= 10" } cpu: [x64] os: [darwin] - "@next/swc-linux-arm64-gnu@16.1.5": + "@next/swc-linux-arm64-gnu@16.1.6": resolution: { - integrity: sha512-qNIb42o3C02ccIeSeKjacF3HXotGsxh/FMk/rSRmCzOVMtoWH88odn2uZqF8RLsSUWHcAqTgYmPD3pZ03L9ZAA==, + integrity: sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==, } engines: { node: ">= 10" } cpu: [arm64] os: [linux] libc: [glibc] - "@next/swc-linux-arm64-musl@16.1.5": + "@next/swc-linux-arm64-musl@16.1.6": resolution: { - integrity: sha512-U+kBxGUY1xMAzDTXmuVMfhaWUZQAwzRaHJ/I6ihtR5SbTVUEaDRiEU9YMjy1obBWpdOBuk1bcm+tsmifYSygfw==, + integrity: sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==, } engines: { node: ">= 10" } cpu: [arm64] os: [linux] libc: [musl] - "@next/swc-linux-x64-gnu@16.1.5": + "@next/swc-linux-x64-gnu@16.1.6": resolution: { - integrity: sha512-gq2UtoCpN7Ke/7tKaU7i/1L7eFLfhMbXjNghSv0MVGF1dmuoaPeEVDvkDuO/9LVa44h5gqpWeJ4mRRznjDv7LA==, + integrity: sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==, } engines: { node: ">= 10" } cpu: [x64] os: [linux] libc: [glibc] - "@next/swc-linux-x64-musl@16.1.5": + "@next/swc-linux-x64-musl@16.1.6": resolution: { - integrity: sha512-bQWSE729PbXT6mMklWLf8dotislPle2L70E9q6iwETYEOt092GDn0c+TTNj26AjmeceSsC4ndyGsK5nKqHYXjQ==, + integrity: sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==, } engines: { node: ">= 10" } cpu: [x64] os: [linux] libc: [musl] - "@next/swc-win32-arm64-msvc@16.1.5": + "@next/swc-win32-arm64-msvc@16.1.6": resolution: { - integrity: sha512-LZli0anutkIllMtTAWZlDqdfvjWX/ch8AFK5WgkNTvaqwlouiD1oHM+WW8RXMiL0+vAkAJyAGEzPPjO+hnrSNQ==, + integrity: sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==, } engines: { node: ">= 10" } cpu: [arm64] os: [win32] - "@next/swc-win32-x64-msvc@16.1.5": + "@next/swc-win32-x64-msvc@16.1.6": resolution: { - integrity: sha512-7is37HJTNQGhjPpQbkKjKEboHYQnCgpVt/4rBrrln0D9nderNxZ8ZWs8w1fAtzUx7wEyYjQ+/13myFgFj6K2Ng==, + integrity: sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==, } engines: { node: ">= 10" } cpu: [x64] @@ -838,10 +838,10 @@ packages: integrity: sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==, } - "@playwright/test@1.58.0": + "@playwright/test@1.58.1": resolution: { - integrity: sha512-fWza+Lpbj6SkQKCrU6si4iu+fD2dD3gxNHFhUPxsfXBPhnv3rRSQVd0NtBUT9Z/RhF/boCBcuUaMUSTRTopjZg==, + integrity: sha512-6LdVIUERWxQMmUSSQi0I53GgCBYgM2RpGngCPY7hSeju+VrKjq3lvs7HpJoPbDiY5QM5EYRtRX5fvrinnMAz3w==, } engines: { node: ">=18" } hasBin: true @@ -902,10 +902,10 @@ packages: integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, } - "@types/node@25.0.10": + "@types/node@25.2.0": resolution: { - integrity: sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==, + integrity: sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==, } "@types/pg@8.11.6": @@ -1399,10 +1399,10 @@ packages: integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, } - baseline-browser-mapping@2.9.18: + baseline-browser-mapping@2.9.19: resolution: { - integrity: sha512-e23vBV1ZLfjb9apvfPk4rHVu2ry6RIr2Wfs+O324okSidrX7pTAnEJPCh/O5BtRlr7QtZI7ktOP3vsqr7Z5XoA==, + integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==, } hasBin: true @@ -1482,10 +1482,10 @@ packages: } engines: { node: ">= 6" } - caniuse-lite@1.0.30001766: + caniuse-lite@1.0.30001767: resolution: { - integrity: sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==, + integrity: sha512-34+zUAMhSH+r+9eKmYG+k2Rpt8XttfE4yXAjoZvkAPs15xcYQhyBYdalJ65BzivAvGRMViEjy6oKr/S91loekQ==, } chalk@4.1.2: @@ -1541,10 +1541,10 @@ packages: integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, } - commander@14.0.2: + commander@14.0.3: resolution: { - integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==, + integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==, } engines: { node: ">=20" } @@ -1685,10 +1685,10 @@ packages: } engines: { node: ">= 0.4" } - electron-to-chromium@1.5.279: + electron-to-chromium@1.5.283: resolution: { - integrity: sha512-0bblUU5UNdOt5G7XqGiJtpZMONma6WAfq9vsFmtn9x1+joAObr6x1chfqyxFSDCAFwFhCQDrqeAr6MYdpwJ9Hg==, + integrity: sha512-3vifjt1HgrGW/h76UEeny+adYApveS9dH2h3p57JYzBSXJIKUJAvtmIytDKjcSCt9xHfrNCFJ7gts6vkhuq++w==, } emoji-regex@10.6.0: @@ -1780,10 +1780,10 @@ packages: } engines: { node: ">=10" } - eslint-config-next@16.1.5: + eslint-config-next@16.1.6: resolution: { - integrity: sha512-XwXyv65DC1HXI3gMxm13jvgx0IxKu6XhZhIWTfCDt4c45njHYUM2pk1Y8QXMAWMMnqPy94I2OLMmvIrNGcwLwQ==, + integrity: sha512-vKq40io2B0XtkkNDYyleATwblNt8xuh3FWp8SpSz3pt7P01OkBFlKsJZ2mWt5WsCySlDQLckb1zMY9yE9Qy0LA==, } peerDependencies: eslint: ">=9.0.0" @@ -2128,10 +2128,10 @@ packages: } engines: { node: ">= 0.4" } - get-tsconfig@4.13.0: + get-tsconfig@4.13.1: resolution: { - integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==, + integrity: sha512-EoY1N2xCn44xU6750Sx7OjOIT59FkmstNc3X6y5xpz7D5cBtZRe/3pSlTkDJgqsOk3WwZPkWfonhhUJfttQo3w==, } glob-parent@5.1.2: @@ -2735,10 +2735,10 @@ packages: nodemailer: optional: true - next@16.1.5: + next@16.1.6: resolution: { - integrity: sha512-f+wE+NSbiQgh3DSAlTaw2FwY5yGdVViAtp8TotNQj4kk4Q8Bh1sC/aL9aH+Rg1YAVn18OYXsRDT7U/079jgP7w==, + integrity: sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==, } engines: { node: ">=20.9.0" } hasBin: true @@ -2964,18 +2964,18 @@ packages: engines: { node: ">=0.10" } hasBin: true - playwright-core@1.58.0: + playwright-core@1.58.1: resolution: { - integrity: sha512-aaoB1RWrdNi3//rOeKuMiS65UCcgOVljU46At6eFcOFPFHWtd2weHRRow6z/n+Lec0Lvu0k9ZPKJSjPugikirw==, + integrity: sha512-bcWzOaTxcW+VOOGBCQgnaKToLJ65d6AqfLVKEWvexyS3AS6rbXl+xdpYRMGSRBClPvyj44njOWoxjNdL/H9UNg==, } engines: { node: ">=18" } hasBin: true - playwright@1.58.0: + playwright@1.58.1: resolution: { - integrity: sha512-2SVA0sbPktiIY/MCOPX8e86ehA/e+tDNq+e5Y8qjKYti2Z/JG7xnronT/TXTIkKbYGWlCbuucZ6dziEgkoEjQQ==, + integrity: sha512-+2uTZHxSCcxjvGc5C891LrS1/NlxglGxzrC4seZiVjcYVQfUa87wBL6rTDqzGjuoWNjnBzRqKmF6zRYGMvQUaQ==, } engines: { node: ">=18" } hasBin: true @@ -3448,10 +3448,10 @@ packages: } engines: { node: ">=18" } - string-width@8.1.0: + string-width@8.1.1: resolution: { - integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==, + integrity: sha512-KpqHIdDL9KwYk22wEOg/VIqYbrnLeSApsKT/bSj6Ez7pn3CftUiLAv2Lccpq1ALcpLV9UX1Ppn92npZWu2w/aw==, } engines: { node: ">=20" } @@ -3876,25 +3876,25 @@ snapshots: preact: 10.24.3 preact-render-to-string: 6.5.11(preact@10.24.3) - "@babel/code-frame@7.28.6": + "@babel/code-frame@7.29.0": dependencies: "@babel/helper-validator-identifier": 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 - "@babel/compat-data@7.28.6": {} + "@babel/compat-data@7.29.0": {} - "@babel/core@7.28.6": + "@babel/core@7.29.0": dependencies: - "@babel/code-frame": 7.28.6 - "@babel/generator": 7.28.6 + "@babel/code-frame": 7.29.0 + "@babel/generator": 7.29.0 "@babel/helper-compilation-targets": 7.28.6 - "@babel/helper-module-transforms": 7.28.6(@babel/core@7.28.6) + "@babel/helper-module-transforms": 7.28.6(@babel/core@7.29.0) "@babel/helpers": 7.28.6 - "@babel/parser": 7.28.6 + "@babel/parser": 7.29.0 "@babel/template": 7.28.6 - "@babel/traverse": 7.28.6 - "@babel/types": 7.28.6 + "@babel/traverse": 7.29.0 + "@babel/types": 7.29.0 "@jridgewell/remapping": 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3 @@ -3904,17 +3904,17 @@ snapshots: transitivePeerDependencies: - supports-color - "@babel/generator@7.28.6": + "@babel/generator@7.29.0": dependencies: - "@babel/parser": 7.28.6 - "@babel/types": 7.28.6 + "@babel/parser": 7.29.0 + "@babel/types": 7.29.0 "@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/compat-data": 7.29.0 "@babel/helper-validator-option": 7.27.1 browserslist: 4.28.1 lru-cache: 5.1.1 @@ -3924,17 +3924,17 @@ snapshots: "@babel/helper-module-imports@7.28.6": dependencies: - "@babel/traverse": 7.28.6 - "@babel/types": 7.28.6 + "@babel/traverse": 7.29.0 + "@babel/types": 7.29.0 transitivePeerDependencies: - supports-color - "@babel/helper-module-transforms@7.28.6(@babel/core@7.28.6)": + "@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)": dependencies: - "@babel/core": 7.28.6 + "@babel/core": 7.29.0 "@babel/helper-module-imports": 7.28.6 "@babel/helper-validator-identifier": 7.28.5 - "@babel/traverse": 7.28.6 + "@babel/traverse": 7.29.0 transitivePeerDependencies: - supports-color @@ -3947,33 +3947,33 @@ snapshots: "@babel/helpers@7.28.6": dependencies: "@babel/template": 7.28.6 - "@babel/types": 7.28.6 + "@babel/types": 7.29.0 - "@babel/parser@7.28.6": + "@babel/parser@7.29.0": dependencies: - "@babel/types": 7.28.6 + "@babel/types": 7.29.0 "@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/code-frame": 7.29.0 + "@babel/parser": 7.29.0 + "@babel/types": 7.29.0 - "@babel/traverse@7.28.6": + "@babel/traverse@7.29.0": dependencies: - "@babel/code-frame": 7.28.6 - "@babel/generator": 7.28.6 + "@babel/code-frame": 7.29.0 + "@babel/generator": 7.29.0 "@babel/helper-globals": 7.28.0 - "@babel/parser": 7.28.6 + "@babel/parser": 7.29.0 "@babel/template": 7.28.6 - "@babel/types": 7.28.6 + "@babel/types": 7.29.0 debug: 4.4.3 transitivePeerDependencies: - supports-color - "@babel/types@7.28.6": + "@babel/types@7.29.0": dependencies: "@babel/helper-string-parser": 7.27.1 "@babel/helper-validator-identifier": 7.28.5 @@ -4191,10 +4191,10 @@ snapshots: "@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)": + "@mantine/core@8.3.14(@mantine/hooks@8.3.14(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) + "@mantine/hooks": 8.3.14(react@19.2.4) clsx: 2.1.1 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) @@ -4205,13 +4205,13 @@ snapshots: transitivePeerDependencies: - "@types/react" - "@mantine/form@8.3.13(react@19.2.4)": + "@mantine/form@8.3.14(react@19.2.4)": dependencies: fast-deep-equal: 3.1.3 klona: 2.0.6 react: 19.2.4 - "@mantine/hooks@8.3.13(react@19.2.4)": + "@mantine/hooks@8.3.14(react@19.2.4)": dependencies: react: 19.2.4 @@ -4226,34 +4226,34 @@ snapshots: dependencies: "@types/pg": 8.11.6 - "@next/env@16.1.5": {} + "@next/env@16.1.6": {} - "@next/eslint-plugin-next@16.1.5": + "@next/eslint-plugin-next@16.1.6": dependencies: fast-glob: 3.3.1 - "@next/swc-darwin-arm64@16.1.5": + "@next/swc-darwin-arm64@16.1.6": optional: true - "@next/swc-darwin-x64@16.1.5": + "@next/swc-darwin-x64@16.1.6": optional: true - "@next/swc-linux-arm64-gnu@16.1.5": + "@next/swc-linux-arm64-gnu@16.1.6": optional: true - "@next/swc-linux-arm64-musl@16.1.5": + "@next/swc-linux-arm64-musl@16.1.6": optional: true - "@next/swc-linux-x64-gnu@16.1.5": + "@next/swc-linux-x64-gnu@16.1.6": optional: true - "@next/swc-linux-x64-musl@16.1.5": + "@next/swc-linux-x64-musl@16.1.6": optional: true - "@next/swc-win32-arm64-msvc@16.1.5": + "@next/swc-win32-arm64-msvc@16.1.6": optional: true - "@next/swc-win32-x64-msvc@16.1.5": + "@next/swc-win32-x64-msvc@16.1.6": optional: true "@nodelib/fs.scandir@2.1.5": @@ -4272,9 +4272,9 @@ snapshots: "@panva/hkdf@1.2.1": {} - "@playwright/test@1.58.0": + "@playwright/test@1.58.1": dependencies: - playwright: 1.58.0 + playwright: 1.58.1 "@rtsao/scc@1.1.0": {} @@ -4296,7 +4296,7 @@ snapshots: "@types/bcrypt@6.0.0": dependencies: - "@types/node": 25.0.10 + "@types/node": 25.2.0 "@types/estree@1.0.8": {} @@ -4304,13 +4304,13 @@ snapshots: "@types/json5@0.0.29": {} - "@types/node@25.0.10": + "@types/node@25.2.0": dependencies: undici-types: 7.16.0 "@types/pg@8.11.6": dependencies: - "@types/node": 25.0.10 + "@types/node": 25.2.0 pg-protocol: 1.11.0 pg-types: 4.1.0 @@ -4472,9 +4472,9 @@ snapshots: "@unrs/resolver-binding-win32-x64-msvc@1.11.1": optional: true - "@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)": + "@vercel/analytics@1.6.1(next@16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)": optionalDependencies: - 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) + next: 16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) react: 19.2.4 "@vercel/postgres@0.10.0": @@ -4485,9 +4485,9 @@ snapshots: transitivePeerDependencies: - utf-8-validate - "@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)": + "@vercel/speed-insights@1.3.1(next@16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)": optionalDependencies: - 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) + next: 16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.1)(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): @@ -4600,7 +4600,7 @@ snapshots: balanced-match@1.0.2: {} - baseline-browser-mapping@2.9.18: {} + baseline-browser-mapping@2.9.19: {} bcrypt@6.0.0: dependencies: @@ -4622,9 +4622,9 @@ snapshots: browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.9.18 - caniuse-lite: 1.0.30001766 - electron-to-chromium: 1.5.279 + baseline-browser-mapping: 2.9.19 + caniuse-lite: 1.0.30001767 + electron-to-chromium: 1.5.283 node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) @@ -4653,7 +4653,7 @@ snapshots: camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001766: {} + caniuse-lite@1.0.30001767: {} chalk@4.1.2: dependencies: @@ -4667,7 +4667,7 @@ snapshots: cli-truncate@5.1.1: dependencies: slice-ansi: 7.1.2 - string-width: 8.1.0 + string-width: 8.1.1 client-only@0.0.1: {} @@ -4681,7 +4681,7 @@ snapshots: colorette@2.0.20: {} - commander@14.0.2: {} + commander@14.0.3: {} concat-map@0.0.1: {} @@ -4755,7 +4755,7 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - electron-to-chromium@1.5.279: {} + electron-to-chromium@1.5.283: {} emoji-regex@10.6.0: {} @@ -4868,9 +4868,9 @@ snapshots: escape-string-regexp@4.0.0: {} - 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): + eslint-config-next@16.1.6(@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": 16.1.5 + "@next/eslint-plugin-next": 16.1.6 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) @@ -4905,7 +4905,7 @@ snapshots: "@nolyfill/is-core-module": 1.0.39 debug: 4.4.3 eslint: 9.39.2 - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 @@ -4978,8 +4978,8 @@ snapshots: eslint-plugin-react-hooks@7.0.1(eslint@9.39.2): dependencies: - "@babel/core": 7.28.6 - "@babel/parser": 7.28.6 + "@babel/core": 7.29.0 + "@babel/parser": 7.29.0 eslint: 9.39.2 hermes-parser: 0.25.1 zod: 4.3.6 @@ -5171,7 +5171,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.13.0: + get-tsconfig@4.13.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -5418,7 +5418,7 @@ snapshots: lint-staged@16.2.7: dependencies: - commander: 14.0.2 + commander: 14.0.3 listr2: 9.0.5 micromatch: 4.0.8 nano-spawn: 2.0.0 @@ -5488,32 +5488,32 @@ snapshots: natural-compare@1.4.0: {} - 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): + next-auth@5.0.0-beta.30(next@16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4): dependencies: "@auth/core": 0.41.0 - 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) + next: 16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.1)(react-dom@19.2.4(react@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): + next@16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - "@next/env": 16.1.5 + "@next/env": 16.1.6 "@swc/helpers": 0.5.15 - baseline-browser-mapping: 2.9.18 - caniuse-lite: 1.0.30001766 + baseline-browser-mapping: 2.9.19 + caniuse-lite: 1.0.30001767 postcss: 8.4.31 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - styled-jsx: 5.1.6(@babel/core@7.28.6)(react@19.2.4) + styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.4) optionalDependencies: - "@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 + "@next/swc-darwin-arm64": 16.1.6 + "@next/swc-darwin-x64": 16.1.6 + "@next/swc-linux-arm64-gnu": 16.1.6 + "@next/swc-linux-arm64-musl": 16.1.6 + "@next/swc-linux-x64-gnu": 16.1.6 + "@next/swc-linux-x64-musl": 16.1.6 + "@next/swc-win32-arm64-msvc": 16.1.6 + "@next/swc-win32-x64-msvc": 16.1.6 + "@playwright/test": 1.58.1 sharp: 0.34.5 transitivePeerDependencies: - "@babel/core" @@ -5632,11 +5632,11 @@ snapshots: pidtree@0.6.0: {} - playwright-core@1.58.0: {} + playwright-core@1.58.1: {} - playwright@1.58.0: + playwright@1.58.1: dependencies: - playwright-core: 1.58.0 + playwright-core: 1.58.1 optionalDependencies: fsevents: 2.3.2 @@ -5958,7 +5958,7 @@ snapshots: get-east-asian-width: 1.4.0 strip-ansi: 7.1.2 - string-width@8.1.0: + string-width@8.1.1: dependencies: get-east-asian-width: 1.4.0 strip-ansi: 7.1.2 @@ -6021,12 +6021,12 @@ snapshots: strip-json-comments@3.1.1: {} - styled-jsx@5.1.6(@babel/core@7.28.6)(react@19.2.4): + styled-jsx@5.1.6(@babel/core@7.29.0)(react@19.2.4): dependencies: client-only: 0.0.1 react: 19.2.4 optionalDependencies: - "@babel/core": 7.28.6 + "@babel/core": 7.29.0 sugarss@5.0.1(postcss@8.5.6): dependencies: From 562d1a6d5d41bdc7e33daba43c901c9175008973 Mon Sep 17 00:00:00 2001 From: cjrace <52536248+cjrace@users.noreply.github.com> Date: Mon, 2 Feb 2026 12:56:12 +0000 Subject: [PATCH 9/9] undo vscode changes --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4a9d153..785aae8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,6 +2,6 @@ "npm.packageManager": "pnpm", "files.exclude": { "**/node_modules/**": true, - "**/.next/**": false + "**/.next/**": true } }