{ "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", "db:migrate": "tsx scripts/migrate.mts", "load:test": "node scripts/load-test.mjs", "load:test:staging": "node scripts/run-staging-load-report.mjs", "smoke:flow": "node scripts/smoke.mjs", "smoke:mqtt-real": "PORT=3115 MQTT_PUBLISH_MODE=broker node scripts/smoke-mqtt-real.mjs", "deploy:check-env": "node scripts/check-production-env.mjs", "backup:production": "node scripts/backup-production.mjs", "restore:plan": "node scripts/restore-plan.mjs", "restore:validate": "node scripts/restore-drill-validate.mjs", "ui:qa": "node scripts/ui-qa-check.mjs", "admin:create-user": "node scripts/create-admin-user.mjs", "merchant:create-user": "node scripts/create-merchant-user.mjs", "mqtt:provision-device": "node scripts/provision-mqtt-device.mjs", "mqtt:check-acl": "node scripts/check-mqtt-acl.mjs", "smoke:mqtt-acl": "node scripts/smoke-mqtt-acl.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 MQTT_PUBLISH_MODE=simulator 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": { "dotenv": "^17.4.2", "express": "^4.19.2", "helmet": "^7.1.0", "mqtt": "^5.15.1", "pg": "^8.21.0" }, "devDependencies": { "@types/express": "^4.17.21", "@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" } }