From 86e1d5cf2a7f18dd872dacc275074950b6d7d6da Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 7 Sep 2025 16:54:14 -0700 Subject: [PATCH 01/27] displays reported teams at the top --- app/(pages)/admin/teams/page.module.scss | 26 + app/(pages)/admin/teams/page.tsx | 24 +- package-lock.json | 738 ++++++++++++++++++----- package.json | 6 +- 4 files changed, 637 insertions(+), 157 deletions(-) diff --git a/app/(pages)/admin/teams/page.module.scss b/app/(pages)/admin/teams/page.module.scss index 19a8d7f9..13bf48d7 100644 --- a/app/(pages)/admin/teams/page.module.scss +++ b/app/(pages)/admin/teams/page.module.scss @@ -82,3 +82,29 @@ $data-gap: 24px; .action_header { font-size: 1.75rem; } + +.reported_teams_container { + display: flex; + gap: 8px; + margin-top: 10px; + margin-bottom: 10px; +} + +.reports_container { + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr; + gap: 4px; + + @include desktop-m { + grid-template-columns: 1fr 1fr; + } +} + +.report_container { + font-size: 0.9rem; + color: white; + padding: 6px 12px; + border-radius: 8px; + background: var(--cow, linear-gradient(180deg, var(--text-error) 0%, var(--text-error) 100%)); + box-shadow: 0px 4px 8px 4px rgba(195, 194, 194, 0.08); +} \ No newline at end of file diff --git a/app/(pages)/admin/teams/page.tsx b/app/(pages)/admin/teams/page.tsx index 38732dd8..0105c0c6 100644 --- a/app/(pages)/admin/teams/page.tsx +++ b/app/(pages)/admin/teams/page.tsx @@ -20,6 +20,7 @@ export default function Teams() { const { loading, teams, getTeams } = useTeams(); const { data, setData } = useFormContext(); const isEditing = Boolean(data._id); + const [reportedTeamsDisplay, setReportedTeamsDisplay] = useState(false); if (loading) { return 'loading...'; @@ -29,6 +30,10 @@ export default function Teams() { return teams.error; } + function toggleReportedTeamsDisplay() { + setReportedTeamsDisplay(!reportedTeamsDisplay); + } + const teamData: TeamWithJudges[] = teams.body .filter((team: TeamWithJudges) => JSON.stringify(team).toLowerCase().includes(search.toLowerCase()) @@ -44,6 +49,8 @@ export default function Teams() { backgroundColor: '#9EE7E5', })); + const reportedTeams = teamData.filter((team) => team.reports?.length > 0); + return (

Team Manager

@@ -65,10 +72,25 @@ export default function Teams() { />
+
+
+ +

Reported Teams

+
+
+ {reportedTeamsDisplay && + reportedTeams.map((team) => ( +
+ {team.name} +
+ )) + } +
+
{teamData.map((team: TeamWithJudges) => ( -
+
setData(team)} />
))} diff --git a/package-lock.json b/package-lock.json index ecdfdf27..4e604ce5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,7 +39,7 @@ "moment": "^2.30.1", "mongodb": "^6.10.0", "mongodb-memory-server": "^9.1.1", - "next": "^14.2.25", + "next": "^15.5.0", "next-auth": "^5.0.0-beta.25", "nodemailer": "^6.9.13", "react": "^18", @@ -2088,9 +2088,9 @@ } }, "node_modules/@emnapi/runtime": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", - "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.5.tgz", + "integrity": "sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==", "license": "MIT", "optional": true, "dependencies": { @@ -2297,9 +2297,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -2490,9 +2490,9 @@ } }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -2643,6 +2643,22 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.0.tgz", + "integrity": "sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@img/sharp-libvips-linux-s390x": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", @@ -2751,6 +2767,28 @@ "@img/sharp-libvips-linux-arm64": "1.0.4" } }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.3.tgz", + "integrity": "sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.0" + } + }, "node_modules/@img/sharp-linux-s390x": { "version": "0.33.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", @@ -2858,6 +2896,25 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.3.tgz", + "integrity": "sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@img/sharp-win32-ia32": { "version": "0.33.5", "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", @@ -3317,9 +3374,9 @@ } }, "node_modules/@jest/reporters/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "peer": true, @@ -3786,9 +3843,9 @@ } }, "node_modules/@next/env": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.25.tgz", - "integrity": "sha512-JnzQ2cExDeG7FxJwqAksZ3aqVJrHjFwZQAEJ9gQZSoEhIow7SNoKZzju/AwQ+PLIR4NY8V0rhcVozx/2izDO0w==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.0.tgz", + "integrity": "sha512-sDaprBAfzCQiOgo2pO+LhnV0Wt2wBgartjrr+dpcTORYVnnXD0gwhHhiiyIih9hQbq+JnbqH4odgcFWhqCGidw==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -3802,9 +3859,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.25.tgz", - "integrity": "sha512-09clWInF1YRd6le00vt750s3m7SEYNehz9C4PUcSu3bAdCTpjIV4aTYQZ25Ehrr83VR1rZeqtKUPWSI7GfuKZQ==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.0.tgz", + "integrity": "sha512-v7Jj9iqC6enxIRBIScD/o0lH7QKvSxq2LM8UTyqJi+S2w2QzhMYjven4vgu/RzgsdtdbpkyCxBTzHl/gN5rTRg==", "cpu": [ "arm64" ], @@ -3818,9 +3875,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.25.tgz", - "integrity": "sha512-V+iYM/QR+aYeJl3/FWWU/7Ix4b07ovsQ5IbkwgUK29pTHmq+5UxeDr7/dphvtXEq5pLB/PucfcBNh9KZ8vWbug==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.0.tgz", + "integrity": "sha512-s2Nk6ec+pmYmAb/utawuURy7uvyYKDk+TRE5aqLRsdnj3AhwC9IKUBmhfnLmY/+P+DnwqpeXEFIKe9tlG0p6CA==", "cpu": [ "x64" ], @@ -3834,9 +3891,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.25.tgz", - "integrity": "sha512-LFnV2899PJZAIEHQ4IMmZIgL0FBieh5keMnriMY1cK7ompR+JUd24xeTtKkcaw8QmxmEdhoE5Mu9dPSuDBgtTg==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.0.tgz", + "integrity": "sha512-mGlPJMZReU4yP5fSHjOxiTYvZmwPSWn/eF/dcg21pwfmiUCKS1amFvf1F1RkLHPIMPfocxLViNWFvkvDB14Isg==", "cpu": [ "arm64" ], @@ -3850,9 +3907,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.25.tgz", - "integrity": "sha512-QC5y5PPTmtqFExcKWKYgUNkHeHE/z3lUsu83di488nyP0ZzQ3Yse2G6TCxz6nNsQwgAx1BehAJTZez+UQxzLfw==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.0.tgz", + "integrity": "sha512-biWqIOE17OW/6S34t1X8K/3vb1+svp5ji5QQT/IKR+VfM3B7GvlCwmz5XtlEan2ukOUf9tj2vJJBffaGH4fGRw==", "cpu": [ "arm64" ], @@ -3866,9 +3923,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.25.tgz", - "integrity": "sha512-y6/ML4b9eQ2D/56wqatTJN5/JR8/xdObU2Fb1RBidnrr450HLCKr6IJZbPqbv7NXmje61UyxjF5kvSajvjye5w==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.0.tgz", + "integrity": "sha512-zPisT+obYypM/l6EZ0yRkK3LEuoZqHaSoYKj+5jiD9ESHwdr6QhnabnNxYkdy34uCigNlWIaCbjFmQ8FY5AlxA==", "cpu": [ "x64" ], @@ -3882,9 +3939,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.25.tgz", - "integrity": "sha512-sPX0TSXHGUOZFvv96GoBXpB3w4emMqKeMgemrSxI7A6l55VBJp/RKYLwZIB9JxSqYPApqiREaIIap+wWq0RU8w==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.0.tgz", + "integrity": "sha512-+t3+7GoU9IYmk+N+FHKBNFdahaReoAktdOpXHFIPOU1ixxtdge26NgQEEkJkCw2dHT9UwwK5zw4mAsURw4E8jA==", "cpu": [ "x64" ], @@ -3898,9 +3955,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.25.tgz", - "integrity": "sha512-ReO9S5hkA1DU2cFCsGoOEp7WJkhFzNbU/3VUF6XxNGUCQChyug6hZdYL/istQgfT/GWE6PNIg9cm784OI4ddxQ==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.0.tgz", + "integrity": "sha512-d8MrXKh0A+c9DLiy1BUFwtg3Hu90Lucj3k6iKTUdPOv42Ve2UiIG8HYi3UAb8kFVluXxEfdpCoPPCSODk5fDcw==", "cpu": [ "arm64" ], @@ -3913,26 +3970,10 @@ "node": ">= 10" } }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.25.tgz", - "integrity": "sha512-DZ/gc0o9neuCDyD5IumyTGHVun2dCox5TfPQI/BJTYwpSNYM3CZDI4i6TOdjeq1JMo+Ug4kPSMuZdwsycwFbAw==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.25.tgz", - "integrity": "sha512-KSznmS6eFjQ9RJ1nEc66kJvtGIL1iZMYmGEXsZPh2YtnLtqrgdVvKXJY2ScjjoFnG6nGLyPFR0UiEvDwVah4Tw==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.0.tgz", + "integrity": "sha512-Fe1tGHxOWEyQjmygWkkXSwhFcTJuimrNu52JEuwItrKJVV4iRjbWp9I7zZjwqtiNnQmxoEvoisn8wueFLrNpvQ==", "cpu": [ "x64" ], @@ -4961,20 +5002,13 @@ "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "license": "Apache-2.0" - }, "node_modules/@swc/helpers": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", - "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", "license": "Apache-2.0", "dependencies": { - "@swc/counter": "^0.1.3", - "tslib": "^2.4.0" + "tslib": "^2.8.0" } }, "node_modules/@szhsin/react-accordion": { @@ -6212,9 +6246,9 @@ "license": "ISC" }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -6333,17 +6367,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, "node_modules/cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -7909,9 +7932,9 @@ } }, "node_modules/eslint-config-next/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -8087,9 +8110,9 @@ } }, "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -8174,9 +8197,9 @@ } }, "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -8320,9 +8343,9 @@ "license": "Apache-2.0" }, "node_modules/eslint-plugin-lit-a11y/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -8605,9 +8628,9 @@ } }, "node_modules/eslint-plugin-react/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -8774,9 +8797,9 @@ } }, "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -9600,6 +9623,7 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, "license": "ISC" }, "node_modules/graphemer": { @@ -10567,9 +10591,9 @@ } }, "node_modules/jake/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -10802,9 +10826,9 @@ } }, "node_modules/jest-config/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "peer": true, @@ -11379,9 +11403,9 @@ } }, "node_modules/jest-runtime/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "peer": true, @@ -12482,41 +12506,40 @@ } }, "node_modules/next": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.25.tgz", - "integrity": "sha512-N5M7xMc4wSb4IkPvEV5X2BRRXUmhVHNyaXwEM86+voXthSZz8ZiRyQW4p9mwAoAPIm6OzuVZtn7idgEJeAJN3Q==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.0.tgz", + "integrity": "sha512-N1lp9Hatw3a9XLt0307lGB4uTKsXDhyOKQo7uYMzX4i0nF/c27grcGXkLdb7VcT8QPYLBa8ouIyEoUQJ2OyeNQ==", "license": "MIT", "dependencies": { - "@next/env": "14.2.25", - "@swc/helpers": "0.5.5", - "busboy": "1.6.0", + "@next/env": "15.5.0", + "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", - "graceful-fs": "^4.2.11", "postcss": "8.4.31", - "styled-jsx": "5.1.1" + "styled-jsx": "5.1.6" }, "bin": { "next": "dist/bin/next" }, "engines": { - "node": ">=18.17.0" + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.25", - "@next/swc-darwin-x64": "14.2.25", - "@next/swc-linux-arm64-gnu": "14.2.25", - "@next/swc-linux-arm64-musl": "14.2.25", - "@next/swc-linux-x64-gnu": "14.2.25", - "@next/swc-linux-x64-musl": "14.2.25", - "@next/swc-win32-arm64-msvc": "14.2.25", - "@next/swc-win32-ia32-msvc": "14.2.25", - "@next/swc-win32-x64-msvc": "14.2.25" + "@next/swc-darwin-arm64": "15.5.0", + "@next/swc-darwin-x64": "15.5.0", + "@next/swc-linux-arm64-gnu": "15.5.0", + "@next/swc-linux-arm64-musl": "15.5.0", + "@next/swc-linux-x64-gnu": "15.5.0", + "@next/swc-linux-x64-musl": "15.5.0", + "@next/swc-win32-arm64-msvc": "15.5.0", + "@next/swc-win32-x64-msvc": "15.5.0", + "sharp": "^0.34.3" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.41.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "@playwright/test": "^1.51.1", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "peerDependenciesMeta": { @@ -12526,6 +12549,9 @@ "@playwright/test": { "optional": true }, + "babel-plugin-react-compiler": { + "optional": true + }, "sass": { "optional": true } @@ -12558,6 +12584,377 @@ } } }, + "node_modules/next/node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.3.tgz", + "integrity": "sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.0" + } + }, + "node_modules/next/node_modules/@img/sharp-darwin-x64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.3.tgz", + "integrity": "sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.0" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.0.tgz", + "integrity": "sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.0.tgz", + "integrity": "sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.0.tgz", + "integrity": "sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.0.tgz", + "integrity": "sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.0.tgz", + "integrity": "sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.0.tgz", + "integrity": "sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.0.tgz", + "integrity": "sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.0.tgz", + "integrity": "sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-linux-arm": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.3.tgz", + "integrity": "sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.0" + } + }, + "node_modules/next/node_modules/@img/sharp-linux-arm64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.3.tgz", + "integrity": "sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.0" + } + }, + "node_modules/next/node_modules/@img/sharp-linux-s390x": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.3.tgz", + "integrity": "sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.0" + } + }, + "node_modules/next/node_modules/@img/sharp-linux-x64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.3.tgz", + "integrity": "sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.0" + } + }, + "node_modules/next/node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.3.tgz", + "integrity": "sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.0" + } + }, + "node_modules/next/node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.3.tgz", + "integrity": "sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.0" + } + }, + "node_modules/next/node_modules/@img/sharp-wasm32": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.3.tgz", + "integrity": "sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.4.4" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-win32-ia32": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.3.tgz", + "integrity": "sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-win32-x64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.3.tgz", + "integrity": "sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/next/node_modules/postcss": { "version": "8.4.31", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", @@ -12586,6 +12983,49 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/next/node_modules/sharp": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.3.tgz", + "integrity": "sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.4", + "semver": "^7.7.2" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.3", + "@img/sharp-darwin-x64": "0.34.3", + "@img/sharp-libvips-darwin-arm64": "1.2.0", + "@img/sharp-libvips-darwin-x64": "1.2.0", + "@img/sharp-libvips-linux-arm": "1.2.0", + "@img/sharp-libvips-linux-arm64": "1.2.0", + "@img/sharp-libvips-linux-ppc64": "1.2.0", + "@img/sharp-libvips-linux-s390x": "1.2.0", + "@img/sharp-libvips-linux-x64": "1.2.0", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.0", + "@img/sharp-libvips-linuxmusl-x64": "1.2.0", + "@img/sharp-linux-arm": "0.34.3", + "@img/sharp-linux-arm64": "0.34.3", + "@img/sharp-linux-ppc64": "0.34.3", + "@img/sharp-linux-s390x": "0.34.3", + "@img/sharp-linux-x64": "0.34.3", + "@img/sharp-linuxmusl-arm64": "0.34.3", + "@img/sharp-linuxmusl-x64": "0.34.3", + "@img/sharp-wasm32": "0.34.3", + "@img/sharp-win32-arm64": "0.34.3", + "@img/sharp-win32-ia32": "0.34.3", + "@img/sharp-win32-x64": "0.34.3" + } + }, "node_modules/node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", @@ -14063,9 +14503,9 @@ } }, "node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -14247,9 +14687,9 @@ } }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -14661,14 +15101,6 @@ "node": ">=8" } }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/streamx": { "version": "2.22.0", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", @@ -14948,9 +15380,9 @@ } }, "node_modules/styled-jsx": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", - "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", "license": "MIT", "dependencies": { "client-only": "0.0.1" @@ -14959,7 +15391,7 @@ "node": ">= 12.0.0" }, "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" }, "peerDependenciesMeta": { "@babel/core": { @@ -15253,9 +15685,9 @@ } }, "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -16240,9 +16672,9 @@ } }, "node_modules/yamljs/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", diff --git a/package.json b/package.json index dc738188..f9107bc5 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,9 @@ "@mui/material": "^5.15.4", "@radix-ui/react-accordion": "^1.2.3", "@radix-ui/react-slot": "^1.1.2", - "@szhsin/react-accordion": "^1.4.0", - "@radix-ui/react-tooltip": "^1.1.8", "@radix-ui/react-tabs": "^1.1.3", + "@radix-ui/react-tooltip": "^1.1.8", + "@szhsin/react-accordion": "^1.4.0", "bcryptjs": "^2.4.3", "chart.js": "^4.4.9", "class-variance-authority": "^0.7.1", @@ -49,7 +49,7 @@ "moment": "^2.30.1", "mongodb": "^6.10.0", "mongodb-memory-server": "^9.1.1", - "next": "^14.2.25", + "next": "^15.5.0", "next-auth": "^5.0.0-beta.25", "nodemailer": "^6.9.13", "react": "^18", From 0bebd8804c880713c0c0a1d07e142c1ba97ee7f9 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 7 Sep 2025 16:57:30 -0700 Subject: [PATCH 02/27] made Reported Teams header smaller --- app/(pages)/admin/teams/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/(pages)/admin/teams/page.tsx b/app/(pages)/admin/teams/page.tsx index 0105c0c6..adf532e3 100644 --- a/app/(pages)/admin/teams/page.tsx +++ b/app/(pages)/admin/teams/page.tsx @@ -75,7 +75,7 @@ export default function Teams() {
-

Reported Teams

+

Reported Teams

{reportedTeamsDisplay && From 06e1f368d8982588c5519c0e4f37ea8c09bb5db0 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 21 Sep 2025 18:34:20 -0700 Subject: [PATCH 03/27] Added team number and table number alongside the team number in the reported teams dropdown Added the co-pilot suggestion on how to fix the build error --- app/(api)/api/auth/logout/route.ts | 6 +++--- app/(pages)/admin/teams/page.tsx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index efa19a20..b17fc0a7 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -1,15 +1,15 @@ 'use server'; -import { NextResponse } from 'next/server'; +import { NextResponse, NextRequest } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -async function post() { +async function post(request: NextRequest, context: { params: any }) { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); } const POST = authenticated(post); -export { POST }; +export { POST }; \ No newline at end of file diff --git a/app/(pages)/admin/teams/page.tsx b/app/(pages)/admin/teams/page.tsx index adf532e3..d0101fd8 100644 --- a/app/(pages)/admin/teams/page.tsx +++ b/app/(pages)/admin/teams/page.tsx @@ -81,7 +81,7 @@ export default function Teams() { {reportedTeamsDisplay && reportedTeams.map((team) => ( )) } From fa5db7e6a6e613ed8caf8b6faa6d9efa17edf989 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 21 Sep 2025 18:49:20 -0700 Subject: [PATCH 04/27] test --- app/(api)/api/auth/logout/route.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index b17fc0a7..1e9709b0 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -1,11 +1,25 @@ 'use server'; +/* +import { NextResponse } from 'next/server'; + +import Logout from '@datalib/auth/logout'; +import authenticated from '@utils/authentication/authenticated'; + +async function post() { + const res = await Logout(); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); +} + +const POST = authenticated(post); + +export { POST };*/ import { NextResponse, NextRequest } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -async function post(request: NextRequest, context: { params: any }) { +async function post(request: NextRequest) { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); } From 13bb3cc6c3053432d0cc4bef17af38369e3c5f64 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 21 Sep 2025 21:38:07 -0700 Subject: [PATCH 05/27] Reverted test changes and combined declaration of POST variable with export POST lines --- app/(api)/api/auth/logout/route.ts | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index 1e9709b0..d3f4fd1e 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -1,5 +1,5 @@ 'use server'; -/* + import { NextResponse } from 'next/server'; import Logout from '@datalib/auth/logout'; @@ -10,20 +10,4 @@ async function post() { return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); } -const POST = authenticated(post); - -export { POST };*/ - -import { NextResponse, NextRequest } from 'next/server'; - -import Logout from '@datalib/auth/logout'; -import authenticated from '@utils/authentication/authenticated'; - -async function post(request: NextRequest) { - const res = await Logout(); - return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); -} - -const POST = authenticated(post); - -export { POST }; \ No newline at end of file +export const POST = authenticated(post); \ No newline at end of file From 352947967ff67a33936d94c131ebda1cb7af4852 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 21 Sep 2025 21:56:33 -0700 Subject: [PATCH 06/27] Formatting (probably all of it) --- app/(api)/api/auth/logout/route.ts | 2 +- app/(pages)/admin/teams/page.tsx | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index d3f4fd1e..ecb57afe 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -10,4 +10,4 @@ async function post() { return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); } -export const POST = authenticated(post); \ No newline at end of file +export const POST = authenticated(post); diff --git a/app/(pages)/admin/teams/page.tsx b/app/(pages)/admin/teams/page.tsx index d0101fd8..9121b5fc 100644 --- a/app/(pages)/admin/teams/page.tsx +++ b/app/(pages)/admin/teams/page.tsx @@ -74,15 +74,21 @@ export default function Teams() {
- +

Reported Teams

From 3373844323c3e5f505051f9253213b6eaf783f18 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 21 Sep 2025 22:09:58 -0700 Subject: [PATCH 07/27] Added a param to post function --- app/(api)/api/auth/logout/route.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index ecb57afe..232ca488 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -1,11 +1,11 @@ 'use server'; -import { NextResponse } from 'next/server'; +import { NextResponse, NextRequest } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -async function post() { +async function post(request: NextRequest) { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); } From a10fc8a9b804f9f68a5d7fe9ca62516d74a6850e Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 21 Sep 2025 22:26:48 -0700 Subject: [PATCH 08/27] Meshed the post function with the export line (please please please work) --- app/(api)/api/auth/logout/route.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index 232ca488..4a267c98 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -5,9 +5,7 @@ import { NextResponse, NextRequest } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -async function post(request: NextRequest) { +export const POST = authenticated(async (request: NextRequest) => { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); -} - -export const POST = authenticated(post); +}); From 5a88998b73dfa02ec4d53c3b970c7ac0147602e0 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 21 Sep 2025 22:34:53 -0700 Subject: [PATCH 09/27] More formatting --- app/(api)/api/auth/logout/route.ts | 2 +- app/(pages)/admin/teams/page.tsx | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index 4a267c98..08fc3fde 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -5,7 +5,7 @@ import { NextResponse, NextRequest } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -export const POST = authenticated(async (request: NextRequest) => { +export const POST = authenticated(async () => { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); }); diff --git a/app/(pages)/admin/teams/page.tsx b/app/(pages)/admin/teams/page.tsx index 9121b5fc..634e540d 100644 --- a/app/(pages)/admin/teams/page.tsx +++ b/app/(pages)/admin/teams/page.tsx @@ -74,8 +74,8 @@ export default function Teams() {
-

Reported Teams

@@ -89,14 +89,17 @@ export default function Teams() { Team #{team.teamNumber}: {team.name} @ Table {team.tableNumber} - )) - } + ))}
{teamData.map((team: TeamWithJudges) => ( -
+
setData(team)} />
))} From 8df3844b4ce7d24957df9fa7da8fcd76ecd66c3a Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 21 Sep 2025 23:11:40 -0700 Subject: [PATCH 10/27] Added a param to post function that complies with eslint --- app/(api)/api/auth/logout/route.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index 08fc3fde..951acb56 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -5,7 +5,9 @@ import { NextResponse, NextRequest } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -export const POST = authenticated(async () => { +async function post(_request: NextRequest) { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); -}); +} + +export const POST = authenticated(post); From e2e3b54d0da14680f8e3672febf25077eb598bb5 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 21 Sep 2025 23:17:32 -0700 Subject: [PATCH 11/27] Just kidding this complies with eslint --- app/(api)/api/auth/logout/route.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index 951acb56..c1af952f 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -5,7 +5,7 @@ import { NextResponse, NextRequest } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -async function post(_request: NextRequest) { +async function post(__request: NextRequest) { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); } From b4fcad6de975a14b11f73659637c8597fccff440 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 21 Sep 2025 23:24:22 -0700 Subject: [PATCH 12/27] More formmatting --- app/(pages)/admin/teams/page.tsx | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/app/(pages)/admin/teams/page.tsx b/app/(pages)/admin/teams/page.tsx index 634e540d..369430ef 100644 --- a/app/(pages)/admin/teams/page.tsx +++ b/app/(pages)/admin/teams/page.tsx @@ -75,30 +75,28 @@ export default function Teams() {

Reported Teams

{reportedTeamsDisplay && reportedTeams.map((team) => ( - + ))}
{teamData.map((team: TeamWithJudges) => ( -
setData(team)} />
From aabce0adeb0bb6467ef671b7912c1b54c3889ac3 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 21 Sep 2025 23:42:03 -0700 Subject: [PATCH 13/27] Just kidding this param complies with eslint --- app/(api)/api/auth/logout/route.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index c1af952f..52f3721f 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -5,7 +5,7 @@ import { NextResponse, NextRequest } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -async function post(__request: NextRequest) { +async function post(_: NextRequest) { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); } From bc246ab0c60f66629a94c37a16d5165695fe70a9 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Sun, 21 Sep 2025 23:58:32 -0700 Subject: [PATCH 14/27] Maybe this complies?? --- app/(api)/api/auth/logout/route.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index 52f3721f..d233f1c9 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -5,7 +5,7 @@ import { NextResponse, NextRequest } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -async function post(_: NextRequest) { +async function post(__: NextRequest) { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); } From e1a002201d6cfc914b7083ee48fae330381ab298 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Mon, 22 Sep 2025 00:13:37 -0700 Subject: [PATCH 15/27] Formatting (I hope this is the last one) --- app/(pages)/admin/teams/page.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/app/(pages)/admin/teams/page.tsx b/app/(pages)/admin/teams/page.tsx index 369430ef..cdf2104b 100644 --- a/app/(pages)/admin/teams/page.tsx +++ b/app/(pages)/admin/teams/page.tsx @@ -85,6 +85,7 @@ export default function Teams() { ))} From add747d2cdd40cb3c2c6fb45b476cb9a4110ba4f Mon Sep 17 00:00:00 2001 From: phlangiee Date: Mon, 22 Sep 2025 00:22:36 -0700 Subject: [PATCH 16/27] Ok I take that back please dont give me that error --- app/(pages)/admin/teams/page.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/app/(pages)/admin/teams/page.tsx b/app/(pages)/admin/teams/page.tsx index cdf2104b..369430ef 100644 --- a/app/(pages)/admin/teams/page.tsx +++ b/app/(pages)/admin/teams/page.tsx @@ -85,7 +85,6 @@ export default function Teams() { ))} From 6f1fc9eab86d5921a6a7b0220826ee3824d987c5 Mon Sep 17 00:00:00 2001 From: phlangiee Date: Mon, 22 Sep 2025 00:46:09 -0700 Subject: [PATCH 17/27] Formatting (Ok this is the last one) --- app/(pages)/admin/teams/page.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/(pages)/admin/teams/page.tsx b/app/(pages)/admin/teams/page.tsx index 369430ef..662b4048 100644 --- a/app/(pages)/admin/teams/page.tsx +++ b/app/(pages)/admin/teams/page.tsx @@ -83,8 +83,9 @@ export default function Teams() { {reportedTeamsDisplay && reportedTeams.map((team) => ( ))} From 311707efac069e8f9861f581c0096331b3b77d25 Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 23 Sep 2025 17:29:11 -0700 Subject: [PATCH 18/27] Added sorted reports view --- app/(api)/api/auth/logout/route.ts | 8 ++++-- app/(pages)/admin/teams/page.tsx | 46 ++++++++++++++++-------------- package-lock.json | 15 ++++++++++ package.json | 3 +- 4 files changed, 46 insertions(+), 26 deletions(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index d233f1c9..efa19a20 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -1,13 +1,15 @@ 'use server'; -import { NextResponse, NextRequest } from 'next/server'; +import { NextResponse } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -async function post(__: NextRequest) { +async function post() { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); } -export const POST = authenticated(post); +const POST = authenticated(post); + +export { POST }; diff --git a/app/(pages)/admin/teams/page.tsx b/app/(pages)/admin/teams/page.tsx index 662b4048..51051439 100644 --- a/app/(pages)/admin/teams/page.tsx +++ b/app/(pages)/admin/teams/page.tsx @@ -72,38 +72,40 @@ export default function Teams() { />
-
-
- -

Reported Teams

-
-
- {reportedTeamsDisplay && - reportedTeams.map((team) => ( +
+

Reported Teams

+ +
+
+ {reportedTeamsDisplay && + reportedTeams + .sort((a, b) => (b.reports?.length || 0) - (a.reports?.length || 0)) + .map((team) => ( ))} -
- {teamData.map((team: TeamWithJudges) => ( -
- setData(team)} /> -
- ))} + {teamData + .sort((a, b) => (b.reports?.length || 0) - (a.reports?.length || 0)) + .map((team: TeamWithJudges) => ( +
+ setData(team)} /> +
+ ))}
+

Judge Count

= 10" + } } } } diff --git a/package.json b/package.json index f9107bc5..7b6fc546 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "seed:windows": "node --env-file=\".\\.env\" \".\\scripts\\dbSeed.mjs\"", "test": "run-script-os", "test:nix": "echo 'module.exports = { presets: [[\"@babel/preset-env\"]] };' > babel.config.js && npx jest --detectOpenHandles && rm babel.config.js", - "test:windows": "echo module.exports = { presets: [['@babel/preset-env']] }; > babel.config.js && npx jest --detectOpenHandles && rm babel.config.js" + "test:windows": "echo module.exports = { presets: [['@babel/preset-env']] }; > babel.config.js && npx jest --detectOpenHandles && rm babel.config.js", + "lint": "next lint" }, "dependencies": { "@emotion/react": "^11.11.3", From 4051f67f12f57be23d36567d4c92a8fa0bfa89f3 Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 23 Sep 2025 17:29:11 -0700 Subject: [PATCH 19/27] Added sorted reports view --- app/(api)/api/auth/logout/route.ts | 8 +-- app/(pages)/admin/teams/page.module.scss | 4 +- app/(pages)/admin/teams/page.tsx | 68 ++++++++++++++++-------- package-lock.json | 15 ++++++ package.json | 3 +- 5 files changed, 70 insertions(+), 28 deletions(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index d233f1c9..efa19a20 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -1,13 +1,15 @@ 'use server'; -import { NextResponse, NextRequest } from 'next/server'; +import { NextResponse } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -async function post(__: NextRequest) { +async function post() { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); } -export const POST = authenticated(post); +const POST = authenticated(post); + +export { POST }; diff --git a/app/(pages)/admin/teams/page.module.scss b/app/(pages)/admin/teams/page.module.scss index 13bf48d7..aec78163 100644 --- a/app/(pages)/admin/teams/page.module.scss +++ b/app/(pages)/admin/teams/page.module.scss @@ -102,9 +102,9 @@ $data-gap: 24px; .report_container { font-size: 0.9rem; - color: white; + color: black; padding: 6px 12px; border-radius: 8px; - background: var(--cow, linear-gradient(180deg, var(--text-error) 0%, var(--text-error) 100%)); + background: var(--text-gray-light); box-shadow: 0px 4px 8px 4px rgba(195, 194, 194, 0.08); } \ No newline at end of file diff --git a/app/(pages)/admin/teams/page.tsx b/app/(pages)/admin/teams/page.tsx index 662b4048..9fabb758 100644 --- a/app/(pages)/admin/teams/page.tsx +++ b/app/(pages)/admin/teams/page.tsx @@ -3,6 +3,8 @@ import { useState } from 'react'; import { useTeams } from '@pages/_hooks/useTeams'; import { GoSearch } from 'react-icons/go'; +import { IoAdd } from 'react-icons/io5'; +import { RxCross1 } from 'react-icons/rx'; import TeamCard from '../_components/Teams/TeamCard'; import Team from '@typeDefs/team'; import User from '@typeDefs/user'; @@ -72,38 +74,60 @@ export default function Teams() { />
-
-
- -

Reported Teams

-
-
- {reportedTeamsDisplay && - reportedTeams.map((team) => ( +
+

Reported Teams

+ +
+
+ {reportedTeamsDisplay && + reportedTeams + .sort((a, b) => (b.reports?.length || 0) - (a.reports?.length || 0)) + .map((team) => ( ))} -
- {teamData.map((team: TeamWithJudges) => ( -
- setData(team)} /> -
- ))} + {teamData + .sort((a, b) => (b.reports?.length || 0) - (a.reports?.length || 0)) + .map((team: TeamWithJudges) => ( +
+ setData(team)} /> +
+ ))}
+

Judge Count

= 10" + } } } } diff --git a/package.json b/package.json index f9107bc5..7b6fc546 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "seed:windows": "node --env-file=\".\\.env\" \".\\scripts\\dbSeed.mjs\"", "test": "run-script-os", "test:nix": "echo 'module.exports = { presets: [[\"@babel/preset-env\"]] };' > babel.config.js && npx jest --detectOpenHandles && rm babel.config.js", - "test:windows": "echo module.exports = { presets: [['@babel/preset-env']] }; > babel.config.js && npx jest --detectOpenHandles && rm babel.config.js" + "test:windows": "echo module.exports = { presets: [['@babel/preset-env']] }; > babel.config.js && npx jest --detectOpenHandles && rm babel.config.js", + "lint": "next lint" }, "dependencies": { "@emotion/react": "^11.11.3", From 5a13474dd137a0cafb456c8c7a9b2f1767bd8b66 Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 23 Sep 2025 18:16:29 -0700 Subject: [PATCH 20/27] Updated logout post function --- app/(api)/api/auth/logout/route.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index efa19a20..d7d0ea96 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -1,11 +1,11 @@ 'use server'; -import { NextResponse } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -async function post() { +async function post(_: NextRequest, __: any) { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); } From 60aaf41be79a309923e81f57cb66fb93ebe58e15 Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 23 Sep 2025 18:29:33 -0700 Subject: [PATCH 21/27] Add NextRequest only --- app/(api)/api/auth/logout/route.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/(api)/api/auth/logout/route.ts b/app/(api)/api/auth/logout/route.ts index d7d0ea96..f2aa7367 100644 --- a/app/(api)/api/auth/logout/route.ts +++ b/app/(api)/api/auth/logout/route.ts @@ -5,7 +5,7 @@ import { NextRequest, NextResponse } from 'next/server'; import Logout from '@datalib/auth/logout'; import authenticated from '@utils/authentication/authenticated'; -async function post(_: NextRequest, __: any) { +async function post(_: NextRequest) { const res = await Logout(); return NextResponse.json({ ...res }, { status: res.ok ? 200 : 401 }); } From 8ba034ab94c0490e35539721570d48c97cd9cf85 Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 23 Sep 2025 18:38:27 -0700 Subject: [PATCH 22/27] Made params optional --- app/(api)/_utils/authentication/authenticated.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/(api)/_utils/authentication/authenticated.ts b/app/(api)/_utils/authentication/authenticated.ts index 0449ce71..18636ea3 100644 --- a/app/(api)/_utils/authentication/authenticated.ts +++ b/app/(api)/_utils/authentication/authenticated.ts @@ -4,9 +4,9 @@ import { auth } from '@/auth'; import { HttpError, NotAuthenticatedError } from '@utils/response/Errors'; export default function authenticated( - handler: (request: NextRequest, params: any) => Promise + handler: (request: NextRequest, params?: any) => Promise ) { - return async (request: NextRequest, params: object) => { + return async (request: NextRequest, params?: any) => { try { const session = await auth(); if (!session) { From b13b96c11aeb0cb295d6b447dedd07bb6a17cd8b Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 23 Sep 2025 18:43:13 -0700 Subject: [PATCH 23/27] added promise to invite link --- app/(pages)/(magic-link)/invite/[slug]/page.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/(pages)/(magic-link)/invite/[slug]/page.tsx b/app/(pages)/(magic-link)/invite/[slug]/page.tsx index ef6b5915..5d9bb0ab 100644 --- a/app/(pages)/(magic-link)/invite/[slug]/page.tsx +++ b/app/(pages)/(magic-link)/invite/[slug]/page.tsx @@ -5,13 +5,18 @@ import { useRouter } from 'next/navigation'; import { processInvite } from '@actions/invite/processInvite'; import Loader from '@pages/_components/Loader/Loader'; -export default function Page({ params }: { params: { slug: string } }) { +export default function Page({ + params, +}: { + params: Promise<{ slug: string }>; +}) { const router = useRouter(); const [valid, setValid] = useState(true); useEffect(() => { const handleInvite = async () => { - if (await processInvite(params.slug)) { + const resolvedParams = await params; + if (await processInvite(resolvedParams.slug)) { setValid(true); router.push('/register'); } else { From 230a802302a9b45f5e5a21c58f443632e0f6b44b Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 23 Sep 2025 18:46:32 -0700 Subject: [PATCH 24/27] Added promise to magic link reset --- app/(pages)/(magic-link)/reset/[slug]/page.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/(pages)/(magic-link)/reset/[slug]/page.tsx b/app/(pages)/(magic-link)/reset/[slug]/page.tsx index e3569946..6972f919 100644 --- a/app/(pages)/(magic-link)/reset/[slug]/page.tsx +++ b/app/(pages)/(magic-link)/reset/[slug]/page.tsx @@ -5,13 +5,18 @@ import { useRouter } from 'next/navigation'; import { processInvite } from '@actions/invite/processInvite'; import Loader from '@pages/_components/Loader/Loader'; -export default function Page({ params }: { params: { slug: string } }) { +export default function Page({ + params, +}: { + params: Promise<{ slug: string }>; +}) { const router = useRouter(); const [valid, setValid] = useState(true); useEffect(() => { const handleReset = async () => { - if (await processInvite(params.slug)) { + const resolvedParams = await params; + if (await processInvite(resolvedParams.slug)) { setValid(true); router.push('/reset-password'); } else { From 2732bfc3d645a0d3914c906081c14c8e412e36cf Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 23 Sep 2025 18:51:56 -0700 Subject: [PATCH 25/27] Updated async promise in judges score --- app/(pages)/judges/(app)/score/[team-id]/page.tsx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/app/(pages)/judges/(app)/score/[team-id]/page.tsx b/app/(pages)/judges/(app)/score/[team-id]/page.tsx index 225626e5..7ceebd3b 100644 --- a/app/(pages)/judges/(app)/score/[team-id]/page.tsx +++ b/app/(pages)/judges/(app)/score/[team-id]/page.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useState } from 'react'; +import { useState, useEffect } from 'react'; import styles from './page.module.scss'; import ScoringForm from '@components/ScoringForm/ScoringForm'; import Loader from '@components/Loader/Loader'; @@ -13,15 +13,19 @@ import { useTeam } from '@hooks/useTeam'; import leftArrow from '@public/judges/scoring/left-arrow.svg'; interface ScoringFormProps { - params: { + params: Promise<{ 'team-id': string; - }; + }>; } export default function ScoreTeam({ params }: ScoringFormProps) { const [showInfo, setShowInfo] = useState(false); - const { submission, loading: subLoading } = useSubmission(params['team-id']); - const { team, loading: teamLoading } = useTeam(params['team-id']); + const [teamId, setTeamId] = useState(''); + useEffect(() => { + params.then((p) => setTeamId(p['team-id'])); + }, [params]); + const { submission, loading: subLoading } = useSubmission(teamId); + const { team, loading: teamLoading } = useTeam(teamId); const loading = subLoading || teamLoading; if (loading) { From 4de53a866fc8d96948e0b1cf0aedd86216ec0d3a Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 23 Sep 2025 18:56:41 -0700 Subject: [PATCH 26/27] updated async cookies --- app/(api)/_actions/invite/getInviteData.ts | 3 ++- app/(api)/_actions/invite/processInvite.ts | 5 +++-- app/(pages)/_components/InviteOnlyRoute/InviteOnlyRoute.tsx | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/(api)/_actions/invite/getInviteData.ts b/app/(api)/_actions/invite/getInviteData.ts index c55b9280..fc9022a4 100644 --- a/app/(api)/_actions/invite/getInviteData.ts +++ b/app/(api)/_actions/invite/getInviteData.ts @@ -12,7 +12,8 @@ export async function getInviteData() { if (noUsers) { return null; } else { - const data = cookies().get('data'); + const cookieStore = await cookies(); + const data = cookieStore.get('data'); if (!data) return null; const dataJson = atob(data.value); diff --git a/app/(api)/_actions/invite/processInvite.ts b/app/(api)/_actions/invite/processInvite.ts index b7bbcbc5..bd6963ed 100644 --- a/app/(api)/_actions/invite/processInvite.ts +++ b/app/(api)/_actions/invite/processInvite.ts @@ -10,8 +10,9 @@ export async function processInvite(slug: string) { const data = slugComponents[0]; const sig = slugComponents[1]; - cookies().set('data', data, { httpOnly: true }); - cookies().set('sig', sig, { httpOnly: true }); + const cookieStore = await cookies(); + cookieStore.set('data', data, { httpOnly: true }); + cookieStore.set('sig', sig, { httpOnly: true }); return true; } diff --git a/app/(pages)/_components/InviteOnlyRoute/InviteOnlyRoute.tsx b/app/(pages)/_components/InviteOnlyRoute/InviteOnlyRoute.tsx index 39f16989..a2738625 100644 --- a/app/(pages)/_components/InviteOnlyRoute/InviteOnlyRoute.tsx +++ b/app/(pages)/_components/InviteOnlyRoute/InviteOnlyRoute.tsx @@ -8,8 +8,9 @@ export default async function InviteOnlyRoute({ }: { children: React.ReactNode; }) { - const data = cookies().get('data'); - const sig = cookies().get('sig'); + const cookieStore = await cookies(); + const data = cookieStore.get('data'); + const sig = cookieStore.get('sig'); const users = await getManyUsers(); const noUsers = users.body.length === 0; From 91a89fd890fde1212a639a9a6fd42a82a8299a75 Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 23 Sep 2025 18:58:32 -0700 Subject: [PATCH 27/27] Updated Next version --- package-lock.json | 167 +++++++++++++++++++++------------------------- package.json | 6 +- 2 files changed, 78 insertions(+), 95 deletions(-) diff --git a/package-lock.json b/package-lock.json index fb2f0656..c6eff4a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,12 +39,12 @@ "moment": "^2.30.1", "mongodb": "^6.10.0", "mongodb-memory-server": "^9.1.1", - "next": "^15.5.0", + "next": "^15.5.4", "next-auth": "^5.0.0-beta.25", "nodemailer": "^6.9.13", - "react": "^18", + "react": "^19.1.1", "react-chartjs-2": "^5.3.0", - "react-dom": "^18", + "react-dom": "^19.1.1", "react-icons": "^4.12.0", "sass": "^1.69.5", "sharp": "^0.33.5", @@ -2377,31 +2377,31 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", - "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.9" + "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.13", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", - "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.9" + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", - "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", + "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", "license": "MIT", "dependencies": { - "@floating-ui/dom": "^1.0.0" + "@floating-ui/dom": "^1.7.4" }, "peerDependencies": { "react": ">=16.8.0", @@ -2409,9 +2409,9 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", - "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", "license": "MIT" }, "node_modules/@fortawesome/fontawesome-common-types": { @@ -3843,9 +3843,9 @@ } }, "node_modules/@next/env": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.0.tgz", - "integrity": "sha512-sDaprBAfzCQiOgo2pO+LhnV0Wt2wBgartjrr+dpcTORYVnnXD0gwhHhiiyIih9hQbq+JnbqH4odgcFWhqCGidw==", + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.4.tgz", + "integrity": "sha512-27SQhYp5QryzIT5uO8hq99C69eLQ7qkzkDPsk3N+GuS2XgOgoYEeOav7Pf8Tn4drECOVDsDg8oj+/DVy8qQL2A==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -3859,9 +3859,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.0.tgz", - "integrity": "sha512-v7Jj9iqC6enxIRBIScD/o0lH7QKvSxq2LM8UTyqJi+S2w2QzhMYjven4vgu/RzgsdtdbpkyCxBTzHl/gN5rTRg==", + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.4.tgz", + "integrity": "sha512-nopqz+Ov6uvorej8ndRX6HlxCYWCO3AHLfKK2TYvxoSB2scETOcfm/HSS3piPqc3A+MUgyHoqE6je4wnkjfrOA==", "cpu": [ "arm64" ], @@ -3875,9 +3875,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.0.tgz", - "integrity": "sha512-s2Nk6ec+pmYmAb/utawuURy7uvyYKDk+TRE5aqLRsdnj3AhwC9IKUBmhfnLmY/+P+DnwqpeXEFIKe9tlG0p6CA==", + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.4.tgz", + "integrity": "sha512-QOTCFq8b09ghfjRJKfb68kU9k2K+2wsC4A67psOiMn849K9ZXgCSRQr0oVHfmKnoqCbEmQWG1f2h1T2vtJJ9mA==", "cpu": [ "x64" ], @@ -3891,9 +3891,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.0.tgz", - "integrity": "sha512-mGlPJMZReU4yP5fSHjOxiTYvZmwPSWn/eF/dcg21pwfmiUCKS1amFvf1F1RkLHPIMPfocxLViNWFvkvDB14Isg==", + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.4.tgz", + "integrity": "sha512-eRD5zkts6jS3VfE/J0Kt1VxdFqTnMc3QgO5lFE5GKN3KDI/uUpSyK3CjQHmfEkYR4wCOl0R0XrsjpxfWEA++XA==", "cpu": [ "arm64" ], @@ -3907,9 +3907,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.0.tgz", - "integrity": "sha512-biWqIOE17OW/6S34t1X8K/3vb1+svp5ji5QQT/IKR+VfM3B7GvlCwmz5XtlEan2ukOUf9tj2vJJBffaGH4fGRw==", + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.4.tgz", + "integrity": "sha512-TOK7iTxmXFc45UrtKqWdZ1shfxuL4tnVAOuuJK4S88rX3oyVV4ZkLjtMT85wQkfBrOOvU55aLty+MV8xmcJR8A==", "cpu": [ "arm64" ], @@ -3923,9 +3923,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.0.tgz", - "integrity": "sha512-zPisT+obYypM/l6EZ0yRkK3LEuoZqHaSoYKj+5jiD9ESHwdr6QhnabnNxYkdy34uCigNlWIaCbjFmQ8FY5AlxA==", + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.4.tgz", + "integrity": "sha512-7HKolaj+481FSW/5lL0BcTkA4Ueam9SPYWyN/ib/WGAFZf0DGAN8frNpNZYFHtM4ZstrHZS3LY3vrwlIQfsiMA==", "cpu": [ "x64" ], @@ -3939,9 +3939,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.0.tgz", - "integrity": "sha512-+t3+7GoU9IYmk+N+FHKBNFdahaReoAktdOpXHFIPOU1ixxtdge26NgQEEkJkCw2dHT9UwwK5zw4mAsURw4E8jA==", + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.4.tgz", + "integrity": "sha512-nlQQ6nfgN0nCO/KuyEUwwOdwQIGjOs4WNMjEUtpIQJPR2NUfmGpW2wkJln1d4nJ7oUzd1g4GivH5GoEPBgfsdw==", "cpu": [ "x64" ], @@ -3955,9 +3955,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.0.tgz", - "integrity": "sha512-d8MrXKh0A+c9DLiy1BUFwtg3Hu90Lucj3k6iKTUdPOv42Ve2UiIG8HYi3UAb8kFVluXxEfdpCoPPCSODk5fDcw==", + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.4.tgz", + "integrity": "sha512-PcR2bN7FlM32XM6eumklmyWLLbu2vs+D7nJX8OAIoWy69Kef8mfiN4e8TUv2KohprwifdpFKPzIP1njuCjD0YA==", "cpu": [ "arm64" ], @@ -3971,9 +3971,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.0.tgz", - "integrity": "sha512-Fe1tGHxOWEyQjmygWkkXSwhFcTJuimrNu52JEuwItrKJVV4iRjbWp9I7zZjwqtiNnQmxoEvoisn8wueFLrNpvQ==", + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.4.tgz", + "integrity": "sha512-1ur2tSHZj8Px/KMAthmuI9FMp/YFusMMGoRNJaRZMOlSkgvLjzosSdQI0cJAKogdHl3qXUQKL9MGaYvKwA7DXg==", "cpu": [ "x64" ], @@ -4431,6 +4431,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.3.tgz", "integrity": "sha512-jFSerheto1X03MUC0g6R7LedNW9EEGWdg9W1+MlpkMLwGkgkbUXLPBH/KIuWKXUoeYRVY11llqbTBDzuLg7qrw==", + "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", @@ -4460,6 +4461,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.2.tgz", "integrity": "sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==", + "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", @@ -4628,6 +4630,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", + "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-use-layout-effect": "1.1.0" @@ -4651,6 +4654,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.2.tgz", "integrity": "sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==", + "license": "MIT", "dependencies": { "@radix-ui/react-slot": "1.1.2" }, @@ -4673,6 +4677,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.2.tgz", "integrity": "sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==", + "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-collection": "1.1.2", @@ -12506,12 +12511,12 @@ } }, "node_modules/next": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/next/-/next-15.5.0.tgz", - "integrity": "sha512-N1lp9Hatw3a9XLt0307lGB4uTKsXDhyOKQo7uYMzX4i0nF/c27grcGXkLdb7VcT8QPYLBa8ouIyEoUQJ2OyeNQ==", + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.4.tgz", + "integrity": "sha512-xH4Yjhb82sFYQfY3vbkJfgSDgXvBB6a8xPs9i35k6oZJRoQRihZH+4s9Yo2qsWpzBmZ3lPXaJ2KPXLfkvW4LnA==", "license": "MIT", "dependencies": { - "@next/env": "15.5.0", + "@next/env": "15.5.4", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", @@ -12524,14 +12529,14 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.5.0", - "@next/swc-darwin-x64": "15.5.0", - "@next/swc-linux-arm64-gnu": "15.5.0", - "@next/swc-linux-arm64-musl": "15.5.0", - "@next/swc-linux-x64-gnu": "15.5.0", - "@next/swc-linux-x64-musl": "15.5.0", - "@next/swc-win32-arm64-msvc": "15.5.0", - "@next/swc-win32-x64-msvc": "15.5.0", + "@next/swc-darwin-arm64": "15.5.4", + "@next/swc-darwin-x64": "15.5.4", + "@next/swc-linux-arm64-gnu": "15.5.4", + "@next/swc-linux-arm64-musl": "15.5.4", + "@next/swc-linux-x64-gnu": "15.5.4", + "@next/swc-linux-x64-musl": "15.5.4", + "@next/swc-win32-arm64-msvc": "15.5.4", + "@next/swc-win32-x64-msvc": "15.5.4", "sharp": "^0.34.3" }, "peerDependencies": { @@ -13987,13 +13992,10 @@ "license": "MIT" }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", + "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } @@ -14009,16 +14011,15 @@ } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", + "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.26.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.1.1" } }, "node_modules/react-icons": { @@ -14678,13 +14679,10 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" }, "node_modules/semver": { "version": "7.7.2", @@ -16809,21 +16807,6 @@ "funding": { "url": "https://github.com/sponsors/colinhacks" } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.25.tgz", - "integrity": "sha512-DZ/gc0o9neuCDyD5IumyTGHVun2dCox5TfPQI/BJTYwpSNYM3CZDI4i6TOdjeq1JMo+Ug4kPSMuZdwsycwFbAw==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } } } } diff --git a/package.json b/package.json index 7b6fc546..2d903ab8 100644 --- a/package.json +++ b/package.json @@ -50,12 +50,12 @@ "moment": "^2.30.1", "mongodb": "^6.10.0", "mongodb-memory-server": "^9.1.1", - "next": "^15.5.0", + "next": "^15.5.4", "next-auth": "^5.0.0-beta.25", "nodemailer": "^6.9.13", - "react": "^18", + "react": "^19.1.1", "react-chartjs-2": "^5.3.0", - "react-dom": "^18", + "react-dom": "^19.1.1", "react-icons": "^4.12.0", "sass": "^1.69.5", "sharp": "^0.33.5",