feat: update dependencies and add dotenv, express-rate-limit, and zod; enhance adminSchemas validation
Test / backend (push) Successful in 14s
Test / frontend (push) Failing after 13s

This commit is contained in:
LaurensBartelds committed 2026-04-26 21:49:02 +02:00
1 parent ef8fe6f938
commit 739133e1f4
7 files changed
+59 -4

No files matched your search

+1
View File
@@ -4,3 +4,4 @@ backend/brainwave.db-wal
.superpowers/
backend/db/brainwave.db-shm
backend/db/brainwave.db-wal
node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json
+40 -1
View File
@@ -11,9 +11,12 @@
"bcrypt": "^6.0.0",
"better-sqlite3": "^11.9.1",
"cors": "^2.8.5",
"dotenv": "^16.4.7",
"express": "^5.1.0",
"express-rate-limit": "^7.5.0",
"jsonwebtoken": "^9.0.2",
"nodemailer": "^7.0.3"
"nodemailer": "^7.0.3",
"zod": "^3.24.2"
},
"devDependencies": {
"@types/bcrypt": "^5.0.2",
@@ -1434,6 +1437,18 @@
"node": ">=8"
}
},
"node_modules/dotenv": {
"version": "16.6.1",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz",
"integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://dotenvx.com"
}
},
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -1647,6 +1662,21 @@
"url": "https://opencollective.com/express"
}
},
"node_modules/express-rate-limit": {
"version": "7.5.1",
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.1.tgz",
"integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==",
"license": "MIT",
"engines": {
"node": ">= 16"
},
"funding": {
"url": "https://github.com/sponsors/express-rate-limit"
},
"peerDependencies": {
"express": ">= 4.11"
}
},
"node_modules/fdir": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
@@ -3374,6 +3404,15 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"license": "ISC"
},
"node_modules/zod": {
"version": "3.25.76",
"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
"integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}
+4 -1
View File
@@ -13,9 +13,12 @@
"bcrypt": "^6.0.0",
"better-sqlite3": "^11.9.1",
"cors": "^2.8.5",
"dotenv": "^16.4.7",
"express": "^5.1.0",
"express-rate-limit": "^7.5.0",
"jsonwebtoken": "^9.0.2",
"nodemailer": "^7.0.3"
"nodemailer": "^7.0.3",
"zod": "^3.24.2"
},
"devDependencies": {
"@types/bcrypt": "^5.0.2",
+1 -1
View File
@@ -11,7 +11,7 @@ export const updateSettingSchema = z.object({
})
export const listUsersQuerySchema = z.object({
page: z.string().regex(/^\d+$/).optional().transform(v => (v ? Number(v) : 1)),
page: z.string().regex(/^\d+$/).optional().transform((v: string | undefined) => (v ? Number(v) : 1)),
search: z.string().optional(),
})
+6
View File
@@ -0,0 +1,6 @@
{
"name": "brainwave",
"lockfileVersion": 3,
"requires": true,
"packages": {}
}
@@ -1 +1 @@
{"version":"4.1.5","results":[[":frontend/src/utils/grading.test.ts",{"duration":9.39569999999992,"failed":false}],[":frontend/src/utils/latex.test.ts",{"duration":14.06759999999997,"failed":false}],[":backend/src/validators/authSchemas.test.ts",{"duration":10.843899999999962,"failed":false}],[":frontend/src/utils/validation.test.ts",{"duration":7.211099999999988,"failed":false}],[":frontend/src/utils/storage.test.ts",{"duration":12.619899999999916,"failed":false}],[":backend/src/validators/examSchemas.test.ts",{"duration":9.806400000000053,"failed":false}],[":backend/src/validators/adminSchemas.test.ts",{"duration":8.930499999999938,"failed":false}],[":backend/src/middleware/error.test.ts",{"duration":4.177999999999997,"failed":false}],[":frontend/src/utils/slug.test.ts",{"duration":11.914499999999975,"failed":false}],[":frontend/src/utils/formatting.test.ts",{"duration":6.8618000000000166,"failed":false}],[":backend/src/config.test.ts",{"duration":6.659400000000005,"failed":false}],[":backend/src/validators/resultSchemas.test.ts",{"duration":8.660599999999931,"failed":false}],[":backend/src/utils/tokens.test.ts",{"duration":181.15880000000004,"failed":false}],[":backend/src/validators/setupSchemas.test.ts",{"duration":8.40420000000006,"failed":false}],[":backend/src/utils/asyncHandler.test.ts",{"duration":7.896400000000028,"failed":false}],[":frontend/src/utils/api.test.ts",{"duration":4.411400000000015,"failed":false}]]}
{"version":"4.1.5","results":[[":frontend/src/utils/grading.test.ts",{"duration":11.88799999999992,"failed":false}],[":frontend/src/utils/latex.test.ts",{"duration":15.778799999999933,"failed":false}],[":backend/src/validators/authSchemas.test.ts",{"duration":14.862500000000068,"failed":false}],[":frontend/src/utils/validation.test.ts",{"duration":10.760000000000105,"failed":false}],[":frontend/src/utils/storage.test.ts",{"duration":9.449499999999944,"failed":false}],[":backend/src/validators/examSchemas.test.ts",{"duration":17.14530000000002,"failed":false}],[":backend/src/validators/adminSchemas.test.ts",{"duration":20.04939999999999,"failed":false}],[":backend/src/middleware/error.test.ts",{"duration":3.2900999999999954,"failed":false}],[":frontend/src/utils/slug.test.ts",{"duration":10.857900000000086,"failed":false}],[":frontend/src/utils/formatting.test.ts",{"duration":8.759399999999914,"failed":false}],[":backend/src/config.test.ts",{"duration":6.4430999999999585,"failed":false}],[":backend/src/validators/resultSchemas.test.ts",{"duration":12.441899999999919,"failed":false}],[":backend/src/utils/tokens.test.ts",{"duration":191.26739999999995,"failed":false}],[":backend/src/validators/setupSchemas.test.ts",{"duration":12.750800000000027,"failed":false}],[":backend/src/utils/asyncHandler.test.ts",{"duration":9.973799999999983,"failed":false}],[":frontend/src/utils/api.test.ts",{"duration":6.215300000000013,"failed":false}]]}
+6
View File
@@ -0,0 +1,6 @@
{
"name": "brainwave",
"lockfileVersion": 3,
"requires": true,
"packages": {}
}