{ "name": "workh", "version": "0.1.0", "private": true, "type": "module", "scripts": { "dev": "concurrently -k -n api,web -c blue,green \"tsx watch --env-file-if-exists=.env backend/server.ts\" \"vite\"", "build": "tsc --noEmit && vite build", "start": "tsx backend/server.ts", "typecheck": "tsc --noEmit", "lint": "oxlint", "format": "oxfmt", "format:check": "oxfmt --check", "test": "vitest run", "test:watch": "vitest", "test:e2e": "vite build && playwright test", "gen-secret": "node -e \"console.log('SESSION_SECRET=' + require('node:crypto').randomBytes(32).toString('base64url'))\"" }, "dependencies": { "express": "^5.3.0", "react": "^19.3.0", "react-dom": "^19.3.0", "tsx": "^4.23.15" }, "devDependencies": { "@playwright/test": "^1.64.0", "@testing-library/jest-dom": "^7.0.1", "@testing-library/react": "^16.3.3", "@testing-library/user-event": "^14.6.7", "@types/express": "^5.0.6", "@types/node": "^26.6.5", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "@vitejs/plugin-react": "^6.1.2", "concurrently": "^10.0.6", "jsdom": "^30.1.2", "oxfmt": "^0.72.0", "oxlint": "^1.87.0", "typescript": "^7.0.2", "vite": "^8.3.4", "vitest": "^5.0.3" } }