{ "name": "grocery-app", "private": true, "scripts": { "dev:backend": "npm --prefix backend run dev", "dev:frontend": "npm --prefix frontend run dev", "build": "npm run build:backend && npm run build:frontend", "build:backend": "npm --prefix backend run build", "build:frontend": "npm --prefix frontend run build", "lint": "npm --prefix frontend run lint", "typecheck": "npm --prefix frontend run typecheck", "audit": "npm run audit:root && npm run audit:backend && npm run audit:frontend", "audit:root": "npm audit", "audit:backend": "npm --prefix backend audit", "audit:frontend": "npm --prefix frontend audit", "db:migrate": "node scripts/db-migrate.js", "db:migrate:status": "node scripts/db-migrate-status.js", "db:migrate:verify": "node scripts/db-migrate-verify.js", "db:migrate:new": "node scripts/db-migrate-new.js", "db:migrate:stale": "node scripts/db-stale-sql-tracker.js --write", "db:migrate:stale:check": "node scripts/db-stale-sql-tracker.js --fail-on-stale", "test": "jest --runInBand", "test:e2e": "npm --prefix frontend run test:e2e --", "test:e2e:headed": "npm --prefix frontend run test:e2e:headed --", "test:e2e:ui": "npm --prefix frontend run test:e2e:ui --" }, "devDependencies": { "cross-env": "^10.1.0", "jest": "^30.2.0", "jest-environment-node": "^30.2.0", "supertest": "^7.1.4" } }