- Updated challenge grid to 6 columns on desktop to accommodate the new category - Alphabetized challenge categories in the main view and Admin panel selection - Alphabetized operators list in the Admin panel with case-insensitive sorting - Restricted visibility of Challenges, Scoreboard, and Score Matrix to authenticated users only - Secured the /state API endpoint to prevent leaking challenges, solves, teams, or internal IP (dockerIp) to guests - Implemented server-side verification of user profile in the state response to prevent client-side admin spoofing - Refactored the /state backend endpoint using async/await for better reliability and error handling - Rebranded the project from "cypherstrike-ctf" to "hipctf" across package.json, index.html, and server defaults - Synchronized browser page title with the competition name configured in the Admin panel - Fixed a "black page" issue by resolving a missing React import and adding frontend sanity checks
29 lines
618 B
JSON
29 lines
618 B
JSON
{
|
|
"name": "hipctf",
|
|
"version": "1.0.0",
|
|
"main": "server.js",
|
|
"dependencies": {
|
|
"body-parser": "^1.20.2",
|
|
"cors": "^2.8.5",
|
|
"express": "^4.18.2",
|
|
"lucide-react": "^0.474.0",
|
|
"multer": "^1.4.5-lts.1",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-router-dom": "^7.1.0",
|
|
"recharts": "^3.8.0",
|
|
"sqlite3": "^5.1.6"
|
|
},
|
|
"devDependencies": {
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"@vitejs/plugin-react": "^4.3.4",
|
|
"vite": "^6.0.0"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"start": "node server.js"
|
|
}
|
|
}
|