{ "name": "qris-soundbox-platform", "version": "0.1.0", "private": true, "type": "module", "scripts": { "build": "tsc -p tsconfig.json", "dev": "tsx watch src/index.ts", "start": "tsx src/index.ts", "start:dist": "node --experimental-specifier-resolution=node dist/index.js", "smoke:cleanup": "node scripts/smoke-cleanup.mjs", "typecheck": "tsc --noEmit", "smoke:flow": "node scripts/smoke.mjs", "smoke:e2e": "bash -c 'export PGHOST=127.0.0.1 PGPORT=5432 PGUSER=postgres PGPASSWORD=postgres PGDATABASE=qris_soundbox_platform; npm run smoke:cleanup; PORT=3100 ADMIN_TOKEN=admin-dev-token DEVICE_TOKEN=device-dev-token INTEGRATION_WEBHOOK_SECRET=dev-callback-secret npm start > /tmp/qris-smoke-e2e-server.log 2>&1 & echo $! >/tmp/qris-smoke-e2e.pid; for i in $(seq 1 120); do if curl -s -f http://127.0.0.1:3100/health >/dev/null; then break; fi; sleep 0.2; done; npm run smoke:flow; status=$?; kill $(cat /tmp/qris-smoke-e2e.pid) >/dev/null 2>&1 || true; exit $status'" }, "dependencies": { "express": "^4.19.2", "helmet": "^7.1.0", "morgan": "^1.10.0", "pg": "^8.21.0", "uuid": "^10.0.0" }, "devDependencies": { "@types/express": "^4.17.21", "@types/morgan": "^1.9.9", "@types/node": "^22.7.0", "@types/pg": "^8.20.0", "tsc-watch": "^6.0.4", "tsup": "^8.3.5", "tsx": "^4.19.2", "typescript": "^5.6.3" } }