diff --git a/package-lock.json b/package-lock.json index 9a240e2fb..d95648c75 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ "react-icons": "^4.11.0", "react-zxing": "^2.0.0", "sharp": "^0.32.6", + "unique-names-generator": "^4.7.1", "uuid": "^9.0.1" }, "devDependencies": { @@ -64,14 +65,14 @@ } }, "node_modules/@auth/core": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@auth/core/-/core-0.18.0.tgz", - "integrity": "sha512-Xb41H3FIv4PlTZmwoFvntaNlVTwIqFxIg7i0/ieHOOxf/7H8EJpGTWoNrqKhwMyZEPU6fHp+VcUiqdX3vFrWSg==", + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/@auth/core/-/core-0.18.1.tgz", + "integrity": "sha512-L4MehYt/A7e5djsEid3jTSkRZ8sysxbirhmCXqSCPimGoFUtMCwTZrpzTALTSRwXGw/mps5fYlHROo3UQk9B3w==", "dependencies": { - "@panva/hkdf": "^1.0.4", + "@panva/hkdf": "^1.1.1", "cookie": "0.5.0", - "jose": "^4.11.1", - "oauth4webapi": "^2.0.6", + "jose": "^5.1.0", + "oauth4webapi": "^2.3.0", "preact": "10.11.3", "preact-render-to-string": "5.2.3" }, @@ -85,20 +86,20 @@ } }, "node_modules/@auth/firebase-adapter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@auth/firebase-adapter/-/firebase-adapter-1.0.3.tgz", - "integrity": "sha512-giZzdv0Kq0LQMyIkfUttE++ctaqme832jsIL5kVjRhBa7xmLC66MIuqx5Sb8DtL1xGQx4d73Ap2Lrx7ggF88VQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@auth/firebase-adapter/-/firebase-adapter-1.0.4.tgz", + "integrity": "sha512-2tuUhc4OFRvto1T+mVv7wNCmo0oxyJA6KkW0U3DLiy/Apyy1/+F/rf6w9y9sGQSqVAfpNQHLxAbZeR6N/dT7Qg==", "dependencies": { - "@auth/core": "0.18.0" + "@auth/core": "0.18.1" }, "peerDependencies": { "firebase-admin": "^11.4.1" } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", "optional": true, "bin": { "parser": "bin/babel-parser.js" @@ -302,9 +303,9 @@ "integrity": "sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw==" }, "node_modules/@firebase/app": { - "version": "0.9.22", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.22.tgz", - "integrity": "sha512-4hbUg9ojPbn4Gj21Z/GnJbiLQYOzkwBDFT5vBkQgUJJGS28qQLG6eZZ1DwLKh8lcrNJc4MR90OPaJWhSzJCR2w==", + "version": "0.9.23", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.23.tgz", + "integrity": "sha512-CA5pQ88We3FhyuesGKn1thaPBsJSGJGm6AlFToOmEJagWqBeDoNJqBkry/BsHnCs9xeYWWIprKxvuFmAFkdqoA==", "dependencies": { "@firebase/component": "0.6.4", "@firebase/logger": "0.4.0", @@ -354,11 +355,11 @@ "integrity": "sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ==" }, "node_modules/@firebase/app-compat": { - "version": "0.2.22", - "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.22.tgz", - "integrity": "sha512-kyksJFA19Oz5HZmR56s/ziOM6ivDBF9JYwC0ufacooYNd2sQ3pRsi5MZAYb1FR9hCE7MgoHuPmTtBHA7S/Cv8g==", + "version": "0.2.23", + "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.23.tgz", + "integrity": "sha512-UCv0LEzcoqAgY+sLsau7aOZz0CJNLN2gESY68bHKmukNXEN6onLPxBKJzn68CsZZGcdiIEXwvrum1riWNPe9Gw==", "dependencies": { - "@firebase/app": "0.9.22", + "@firebase/app": "0.9.23", "@firebase/component": "0.6.4", "@firebase/logger": "0.4.0", "@firebase/util": "1.9.3", @@ -371,9 +372,9 @@ "integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==" }, "node_modules/@firebase/auth": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.3.2.tgz", - "integrity": "sha512-ksYpeRACL8INRpFZzbCLLnI9NP+L3UH/+ebKo4oBjhc/dSwPbpw6E1wjdm0odB1U5xHhXD/5lpyeFQZ+jXyBxA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.4.0.tgz", + "integrity": "sha512-SfFXZCHDbY+7oSR52NSwx0U7LjYiA+N8imloxphCf3/F+MFty/+mhdjSXGtrJYd0Gbud/qcyedfn2XnWJeIB/g==", "dependencies": { "@firebase/component": "0.6.4", "@firebase/logger": "0.4.0", @@ -392,11 +393,11 @@ } }, "node_modules/@firebase/auth-compat": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.4.8.tgz", - "integrity": "sha512-qKX8BOl1qewBzpfAXl6/lKPW7fjnY8/3umiSFIGO8SHwLQ3LsAdNFPdwafouwMiKLo5MXxW4XdxNSI4ilt0Z5w==", + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.4.9.tgz", + "integrity": "sha512-Fw03i7vduIciEBG4imLtA1duJbljgkfbxiBo/EuekcB+BnPxHp+e8OGMUfemPYeO7Munj6kUC9gr5DelsQkiNA==", "dependencies": { - "@firebase/auth": "1.3.2", + "@firebase/auth": "1.4.0", "@firebase/auth-types": "0.12.0", "@firebase/component": "0.6.4", "@firebase/util": "1.9.3", @@ -487,9 +488,9 @@ } }, "node_modules/@firebase/firestore-compat": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.21.tgz", - "integrity": "sha512-u17so8cP4FQBEJyivAbZc0kW09YBXBvhSmUXiB7swkOLemfZUmmPZQGJxZGa9y/M02euU1y4EzvWN/h/bkx8pg==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.22.tgz", + "integrity": "sha512-M166UvFvRri0CK/+5N0MIeXJVxR6BsX0/96xFT506DxRPIFezLjLcvfddtyFgfe0CtyQWoxBXt060uWUg3d/sw==", "dependencies": { "@firebase/component": "0.6.4", "@firebase/firestore": "4.3.2", @@ -982,9 +983,9 @@ } }, "node_modules/@next/env": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.0.1.tgz", - "integrity": "sha512-Ms8ZswqY65/YfcjrlcIwMPD7Rg/dVjdLapMcSHG26W6O67EJDF435ShW4H4LXi1xKO1oRc97tLXUpx8jpLe86A==" + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.0.2.tgz", + "integrity": "sha512-HAW1sljizEaduEOes/m84oUqeIDAUYBR1CDwu2tobNlNDFP3cSm9d6QsOsGeNlIppU1p/p1+bWbYCbvwjFiceA==" }, "node_modules/@next/eslint-plugin-next": { "version": "13.5.6", @@ -996,9 +997,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.1.tgz", - "integrity": "sha512-JyxnGCS4qT67hdOKQ0CkgFTp+PXub5W1wsGvIq98TNbF3YEIN7iDekYhYsZzc8Ov0pWEsghQt+tANdidITCLaw==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.2.tgz", + "integrity": "sha512-i+jQY0fOb8L5gvGvojWyZMfQoQtDVB2kYe7fufOEiST6sicvzI2W5/EXo4lX5bLUjapHKe+nFxuVv7BA+Pd7LQ==", "cpu": [ "arm64" ], @@ -1011,9 +1012,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.1.tgz", - "integrity": "sha512-625Z7bb5AyIzswF9hvfZWa+HTwFZw+Jn3lOBNZB87lUS0iuCYDHqk3ujuHCkiyPtSC0xFBtYDLcrZ11mF/ap3w==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.2.tgz", + "integrity": "sha512-zRCAO0d2hW6gBEa4wJaLn+gY8qtIqD3gYd9NjruuN98OCI6YyelmhWVVLlREjS7RYrm9OUQIp/iVJFeB6kP1hg==", "cpu": [ "x64" ], @@ -1026,9 +1027,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.1.tgz", - "integrity": "sha512-iVpn3KG3DprFXzVHM09kvb//4CNNXBQ9NB/pTm8LO+vnnnaObnzFdS5KM+w1okwa32xH0g8EvZIhoB3fI3mS1g==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.2.tgz", + "integrity": "sha512-tSJmiaon8YaKsVhi7GgRizZoV0N1Sx5+i+hFTrCKKQN7s3tuqW0Rov+RYdPhAv/pJl4qiG+XfSX4eJXqpNg3dA==", "cpu": [ "arm64" ], @@ -1041,9 +1042,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.1.tgz", - "integrity": "sha512-mVsGyMxTLWZXyD5sen6kGOTYVOO67lZjLApIj/JsTEEohDDt1im2nkspzfV5MvhfS7diDw6Rp/xvAQaWZTv1Ww==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.2.tgz", + "integrity": "sha512-dXJLMSEOwqJKcag1BeX1C+ekdPPJ9yXbWIt3nAadhbLx5CjACoB2NQj9Xcqu2tmdr5L6m34fR+fjGPs+ZVPLzA==", "cpu": [ "arm64" ], @@ -1056,9 +1057,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.1.tgz", - "integrity": "sha512-wMqf90uDWN001NqCM/auRl3+qVVeKfjJdT9XW+RMIOf+rhUzadmYJu++tp2y+hUbb6GTRhT+VjQzcgg/QTD9NQ==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.2.tgz", + "integrity": "sha512-WC9KAPSowj6as76P3vf1J3mf2QTm3Wv3FBzQi7UJ+dxWjK3MhHVWsWUo24AnmHx9qDcEtHM58okgZkXVqeLB+Q==", "cpu": [ "x64" ], @@ -1071,9 +1072,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.1.tgz", - "integrity": "sha512-ol1X1e24w4j4QwdeNjfX0f+Nza25n+ymY0T2frTyalVczUmzkVD7QGgPTZMHfR1aLrO69hBs0G3QBYaj22J5GQ==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.2.tgz", + "integrity": "sha512-KSSAwvUcjtdZY4zJFa2f5VNJIwuEVnOSlqYqbQIawREJA+gUI6egeiRu290pXioQXnQHYYdXmnVNZ4M+VMB7KQ==", "cpu": [ "x64" ], @@ -1086,9 +1087,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.1.tgz", - "integrity": "sha512-WEmTEeWs6yRUEnUlahTgvZteh5RJc4sEjCQIodJlZZ5/VJwVP8p2L7l6VhzQhT4h7KvLx/Ed4UViBdne6zpIsw==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.2.tgz", + "integrity": "sha512-2/O0F1SqJ0bD3zqNuYge0ok7OEWCQwk55RPheDYD0va5ij7kYwrFkq5ycCRN0TLjLfxSF6xI5NM6nC5ux7svEQ==", "cpu": [ "arm64" ], @@ -1101,9 +1102,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.1.tgz", - "integrity": "sha512-oFpHphN4ygAgZUKjzga7SoH2VGbEJXZa/KL8bHCAwCjDWle6R1SpiGOdUdA8EJ9YsG1TYWpzY6FTbUA+iAJeww==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.2.tgz", + "integrity": "sha512-vJI/x70Id0oN4Bq/R6byBqV1/NS5Dl31zC+lowO8SDu1fHmUxoAdILZR5X/sKbiJpuvKcCrwbYgJU8FF/Gh50Q==", "cpu": [ "ia32" ], @@ -1116,9 +1117,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.1.tgz", - "integrity": "sha512-FFp3nOJ/5qSpeWT0BZQ+YE1pSMk4IMpkME/1DwKBwhg4mJLB9L+6EXuJi4JEwaJdl5iN+UUlmUD3IsR1kx5fAg==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.2.tgz", + "integrity": "sha512-Ut4LXIUvC5m8pHTe2j0vq/YDnTEyq6RSR9vHYPqnELrDapPhLNz9Od/L5Ow3J8RNDWpEnfCiQXuVdfjlNEJ7ug==", "cpu": [ "x64" ], @@ -1237,9 +1238,9 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@react-aria/ssr": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.8.0.tgz", - "integrity": "sha512-Y54xs483rglN5DxbwfCPHxnkvZ+gZ0LbSYmR72LyWPGft8hN/lrl1VRS1EW2SMjnkEWlj+Km2mwvA3kEHDUA0A==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.0.tgz", + "integrity": "sha512-Bz6BqP6ZorCme9tSWHZVmmY+s7AU8l6Vl2NUYmBzezD//fVHHfFo4lFBn5tBuAaJEm3AuCLaJQ6H2qhxNSb7zg==", "dependencies": { "@swc/helpers": "^0.5.0" }, @@ -2189,9 +2190,9 @@ } }, "node_modules/axios": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz", - "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.1.tgz", + "integrity": "sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==", "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -2799,9 +2800,9 @@ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/cypress": { - "version": "13.4.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.4.0.tgz", - "integrity": "sha512-KeWNC9xSHG/ewZURVbaQsBQg2mOKw4XhjJZFKjWbEjgZCdxpPXLpJnfq5Jns1Gvnjp6AlnIfpZfWFlDgVKXdWQ==", + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.5.0.tgz", + "integrity": "sha512-oh6U7h9w8wwHfzNDJQ6wVcAeXu31DlIYlNOBvfd6U4CcB8oe4akawQmH+QJVOMZlM42eBoCne015+svVqdwdRQ==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -3079,9 +3080,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.578", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.578.tgz", - "integrity": "sha512-V0ZhSu1BQZKfG0yNEL6Dadzik8E1vAzfpVOapdSiT9F6yapEJ3Bk+4tZ4SMPdWiUchCgnM/ByYtBzp5ntzDMIA==", + "version": "1.4.581", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz", + "integrity": "sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==", "dev": true }, "node_modules/emoji-regex": { @@ -4084,23 +4085,23 @@ } }, "node_modules/firebase": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-10.5.2.tgz", - "integrity": "sha512-LLCig21TBYdByMbGJt5YmUzzk2HpsFCsIUTvOteQjW9BUh40IrSP2+dZi9IvT8RlztM3zcH+TNZ0jOsOaa7GMQ==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-10.6.0.tgz", + "integrity": "sha512-bnYwHwZ6zB+dM6mGQPEXcFHtAT2WoVzG6H4SIR8HzURVGKJxBW+TqfP3qcJQjTZV3tDqDTo/XZkVmoU/SovV8A==", "dependencies": { "@firebase/analytics": "0.10.0", "@firebase/analytics-compat": "0.2.6", - "@firebase/app": "0.9.22", + "@firebase/app": "0.9.23", "@firebase/app-check": "0.8.0", "@firebase/app-check-compat": "0.3.7", - "@firebase/app-compat": "0.2.22", + "@firebase/app-compat": "0.2.23", "@firebase/app-types": "0.9.0", - "@firebase/auth": "1.3.2", - "@firebase/auth-compat": "0.4.8", + "@firebase/auth": "1.4.0", + "@firebase/auth-compat": "0.4.9", "@firebase/database": "1.0.1", "@firebase/database-compat": "1.0.1", "@firebase/firestore": "4.3.2", - "@firebase/firestore-compat": "0.3.21", + "@firebase/firestore-compat": "0.3.22", "@firebase/functions": "0.10.0", "@firebase/functions-compat": "0.3.5", "@firebase/installations": "0.6.4", @@ -5456,9 +5457,9 @@ } }, "node_modules/jose": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.4.tgz", - "integrity": "sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.1.0.tgz", + "integrity": "sha512-H+RVqxA6apaJ0rcQYupKYhos7uosAiF42gUcWZiwhICWMphDULFj/CRr1R0tV/JCv9DEeJaSyYYpc9luHHNT4g==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -5693,6 +5694,14 @@ "node": ">=14" } }, + "node_modules/jwks-rsa/node_modules/jose": { + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.4.tgz", + "integrity": "sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/jws": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", @@ -6009,9 +6018,9 @@ "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" }, "node_modules/luxon": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz", - "integrity": "sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==", + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz", + "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==", "engines": { "node": ">=12" } @@ -6251,11 +6260,11 @@ "dev": true }, "node_modules/next": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/next/-/next-14.0.1.tgz", - "integrity": "sha512-s4YaLpE4b0gmb3ggtmpmV+wt+lPRuGtANzojMQ2+gmBpgX9w5fTbjsy6dXByBuENsdCX5pukZH/GxdFgO62+pA==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/next/-/next-14.0.2.tgz", + "integrity": "sha512-jsAU2CkYS40GaQYOiLl9m93RTv2DA/tTJ0NRlmZIBIL87YwQ/xR8k796z7IqgM3jydI8G25dXvyYMC9VDIevIg==", "dependencies": { - "@next/env": "14.0.1", + "@next/env": "14.0.2", "@swc/helpers": "0.5.2", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001406", @@ -6270,15 +6279,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.0.1", - "@next/swc-darwin-x64": "14.0.1", - "@next/swc-linux-arm64-gnu": "14.0.1", - "@next/swc-linux-arm64-musl": "14.0.1", - "@next/swc-linux-x64-gnu": "14.0.1", - "@next/swc-linux-x64-musl": "14.0.1", - "@next/swc-win32-arm64-msvc": "14.0.1", - "@next/swc-win32-ia32-msvc": "14.0.1", - "@next/swc-win32-x64-msvc": "14.0.1" + "@next/swc-darwin-arm64": "14.0.2", + "@next/swc-darwin-x64": "14.0.2", + "@next/swc-linux-arm64-gnu": "14.0.2", + "@next/swc-linux-arm64-musl": "14.0.2", + "@next/swc-linux-x64-gnu": "14.0.2", + "@next/swc-linux-x64-musl": "14.0.2", + "@next/swc-win32-arm64-msvc": "14.0.2", + "@next/swc-win32-ia32-msvc": "14.0.2", + "@next/swc-win32-x64-msvc": "14.0.2" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -6296,9 +6305,9 @@ } }, "node_modules/next-auth": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.24.4.tgz", - "integrity": "sha512-5DGffi+OpkbU62vPQIJ1z+hFnmow+ec5Qrn9m6eoglIO51m0DlrmLxBduZEwKAYDEg9k2joi1yelgmq1vqK3aQ==", + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.24.5.tgz", + "integrity": "sha512-3RafV3XbfIKk6rF6GlLE4/KxjTcuMCifqrmD+98ejFq73SRoj2rmzoca8u764977lH/Q7jo6Xu6yM+Re1Mz/Og==", "dependencies": { "@babel/runtime": "^7.20.13", "@panva/hkdf": "^1.0.2", @@ -6322,6 +6331,14 @@ } } }, + "node_modules/next-auth/node_modules/jose": { + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.4.tgz", + "integrity": "sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/next-auth/node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -6593,6 +6610,14 @@ "url": "https://github.com/sponsors/panva" } }, + "node_modules/openid-client/node_modules/jose": { + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.4.tgz", + "integrity": "sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/openid-client/node_modules/object-hash": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", @@ -8088,9 +8113,9 @@ } }, "node_modules/streamx": { - "version": "2.15.2", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.2.tgz", - "integrity": "sha512-b62pAV/aeMjUoRN2C/9F0n+G8AfcJjNC0zw/ZmOHeFsIe4m4GzjVW9m6VHXVjk536NbdU9JRwKMJRfkc+zUFTg==", + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.4.tgz", + "integrity": "sha512-uSXKl88bibiUCQ1eMpItRljCzDENcDx18rsfDmV79r0e/ThfrAwxG4Y2FarQZ2G4/21xcOKmFFd1Hue+ZIDwHw==", "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" @@ -8740,6 +8765,14 @@ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, + "node_modules/unique-names-generator": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/unique-names-generator/-/unique-names-generator-4.7.1.tgz", + "integrity": "sha512-lMx9dX+KRmG8sq6gulYYpKWZc9RlGsgBR6aoO8Qsm3qvkSJ+3rAymr+TnV8EDMrIrwuFJ4kruzMWM/OpYzPoow==", + "engines": { + "node": ">=8" + } + }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", diff --git a/package.json b/package.json index d502008c7..b76a37633 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "react-icons": "^4.11.0", "react-zxing": "^2.0.0", "sharp": "^0.32.6", + "unique-names-generator": "^4.7.1", "uuid": "^9.0.1" }, "devDependencies": { diff --git a/src/app/api/committees/route.js b/src/app/api/committees/route.js index 4ab6f0592..4e8eefdcd 100644 --- a/src/app/api/committees/route.js +++ b/src/app/api/committees/route.js @@ -46,7 +46,6 @@ export async function POST(req) { return res.json({ message: "OK" }, { status: 200 }); } catch (err) { - console.log(err.response.body.errors); return res.json( { message: `Internal Server Error: ${err}` }, { status: 500 } diff --git a/src/app/api/judges/route.js b/src/app/api/judges/route.js index 482dae13a..32e82a853 100644 --- a/src/app/api/judges/route.js +++ b/src/app/api/judges/route.js @@ -75,12 +75,14 @@ export async function GET() { query(collection(db, "users"), where("roles.judges", "in", [-1, 0, 1])) ); snapshot.forEach((doc) => { - const { name, email, affiliation, roles, photo, timestamp } = doc.data(); + const { name, email, affiliation, roles, photo, timestamp, title } = + doc.data(); output.push({ uid: doc.id, name: name, email: email, affiliation: affiliation, + title: title, status: roles.judges, photo: photo, selected: false, diff --git a/src/app/api/team/route.js b/src/app/api/team/route.js index 23c65215d..997138a83 100644 --- a/src/app/api/team/route.js +++ b/src/app/api/team/route.js @@ -3,6 +3,12 @@ import { db } from "../../../../firebase"; import { doc, getDoc, updateDoc, addDoc, collection } from "firebase/firestore"; import { authenticate } from "@/utils/auth"; import { AUTH } from "@/data/dynamic/user/Team"; +import { + uniqueNamesGenerator, + adjectives, + colors, + animals, +} from "unique-names-generator"; export async function POST() { const res = NextResponse; @@ -16,8 +22,13 @@ export async function POST() { } try { + const randomName = uniqueNamesGenerator({ + dictionaries: [adjectives, colors, animals], + separator: " ", + }); + const team = { - name: "", + name: randomName, links: { github: "", devpost: "", @@ -79,11 +90,11 @@ export async function PUT(req) { export async function GET(req) { const res = NextResponse; - const { auth } = await authenticate(AUTH.GET); + const { auth, message } = await authenticate(AUTH.GET); if (auth !== 200) { return res.json( - { message: `Authentication Error: ${"MESSAGE VARIABLE SHOULD BE HERE"}` }, + { message: `Authentication Error: ${message}` }, { status: auth } ); } diff --git a/src/components/dynamic/admin/services/calendar/Events.jsx b/src/components/dynamic/admin/services/calendar/Events.jsx index 535e5f567..17e66c8cf 100644 --- a/src/components/dynamic/admin/services/calendar/Events.jsx +++ b/src/components/dynamic/admin/services/calendar/Events.jsx @@ -46,10 +46,14 @@ const CalendarEvents = () => { rawEvents.forEach((item) => { item.start = new Date(item.start.dateTime); item.end = new Date(item.end.dateTime); - item.color = - LABELS[ - item.description.split("\n")[1].split(": ")[1].toLowerCase() - ].background; + const [category, assignee] = item.description + .split("\n")[0] + .split("#") + .map((item) => item.trim()) + .filter((item) => item !== ""); + item.category = category; + item.color = LABELS[item.category].background; + item.assignee = assignee; item.hidden = false; }); diff --git a/src/components/dynamic/admin/services/calendar/Modal.jsx b/src/components/dynamic/admin/services/calendar/Modal.jsx index c0fee4eeb..d4984bb92 100644 --- a/src/components/dynamic/admin/services/calendar/Modal.jsx +++ b/src/components/dynamic/admin/services/calendar/Modal.jsx @@ -39,17 +39,8 @@ const CalendarModal = ({ event, setEvent }) => {
@@ -59,9 +50,9 @@ const CalendarModal = ({ event, setEvent }) => {
- {event.description.split("\n")[0].replace("ASSIGNEE: ", "")} + {event.assignee}
-

{event.description.split("\n")[2]}

+

{event.description.split("\n")[1]}

); diff --git a/src/components/dynamic/user/Team.jsx b/src/components/dynamic/user/Team.jsx index 406b6b5ec..f3eba8779 100644 --- a/src/components/dynamic/user/Team.jsx +++ b/src/components/dynamic/user/Team.jsx @@ -17,16 +17,19 @@ const Team = ({ user, setUser }) => { figma: "", members: [{ email: user.email, name: user.name }], }; + const handleCopy = () => { navigator.clipboard.writeText(user.team); - toast("✅ Successfully copy team ID to clipboard!"); + toast("✅ Successfully copied team id!"); }; + const handleCopyLink = () => { navigator.clipboard.writeText( `${process.env.NEXT_PUBLIC_URL}users/join/${user.team}` ); - toast("✅ Successfully copy join link to clipboard!"); + toast("✅ Successfully copied join link!"); }; + const handleLeave = () => { axios.delete("/api/members").then(() => { toast("✅ Successfully left team!"); @@ -137,7 +140,7 @@ const Team = ({ user, setUser }) => { {

- {edit && ( -
diff --git a/src/data/dynamic/admin/Calendar.js b/src/data/dynamic/admin/Calendar.js index 11c0ec63a..9d1d8aa2c 100644 --- a/src/data/dynamic/admin/Calendar.js +++ b/src/data/dynamic/admin/Calendar.js @@ -31,16 +31,20 @@ export const LABELS = { color: "lightgreen", background: "!bg-hackathon-tags-lightgreen-text", }, - workshop: { - color: "grayblue", - background: "!bg-hackathon-tags-grayblue-text", - }, leads: { color: "red", background: "!bg-hackathon-tags-red-text", }, - hackathon: { + workshop: { + color: "grayblue", + background: "!bg-hackathon-tags-grayblue-text", + }, + general: { color: "pink", background: "!bg-hackathon-tags-pink-text", }, + food: { + color: "yellow", + background: "!bg-hackathon-tags-yellow-text", + }, }; diff --git a/src/data/dynamic/admin/Judges.js b/src/data/dynamic/admin/Judges.js index cdf889e5a..0ed51d01a 100644 --- a/src/data/dynamic/admin/Judges.js +++ b/src/data/dynamic/admin/Judges.js @@ -25,8 +25,9 @@ export const TAGS = [ ]; export const HEADERS = [ - { text: "name", size: "w-3/12", icon: true, sort: "off" }, + { text: "name", size: "w-2/12", icon: true, sort: "off" }, { text: "email", size: "w-3/12", icon: true, sort: "off" }, + { text: "title", size: "w-2/12", icon: true, sort: "off" }, { text: "affiliation", size: "w-2/12", @@ -36,7 +37,7 @@ export const HEADERS = [ }, { text: "status", - size: "w-2/12", + size: "w-1/12", icon: true, sort: "off", hasTag: true,