{ "name": "trenes-backend", "version": "1.0.0", "description": "Backend API y Worker para sistema de tracking de trenes en tiempo real", "main": "src/api/server.js", "type": "module", "scripts": { "dev": "nodemon src/api/server.js", "dev:worker": "nodemon src/worker/gtfs-poller.js", "dev:gtfs-static": "nodemon src/worker/gtfs-static-syncer.js", "dev:trip-updates": "nodemon src/worker/trip-updates-poller.js", "dev:alerts": "nodemon src/worker/alerts-poller.js", "dev:analytics": "nodemon src/worker/analytics-refresher.js", "start": "node src/api/server.js", "start:worker": "node src/worker/gtfs-poller.js", "start:gtfs-static": "node src/worker/gtfs-static-syncer.js", "start:trip-updates": "node src/worker/trip-updates-poller.js", "start:alerts": "node src/worker/alerts-poller.js", "start:analytics": "node src/worker/analytics-refresher.js", "test": "NODE_ENV=test jest", "lint": "eslint src/**/*.js", "format": "prettier --write src/**/*.js" }, "keywords": [ "renfe", "gtfs", "gtfs-rt", "trains", "real-time" ], "author": "", "license": "MIT", "dependencies": { "express": "^4.18.2", "fastify": "^4.25.2", "@fastify/cors": "^8.5.0", "@fastify/websocket": "^8.3.1", "socket.io": "^4.6.1", "pg": "^8.11.3", "redis": "^4.6.12", "gtfs-realtime-bindings": "^1.1.0", "node-fetch": "^3.3.2", "dotenv": "^16.3.1", "pino": "^8.17.2", "pino-pretty": "^10.3.1", "csv-parse": "^5.5.3", "adm-zip": "^0.5.10", "node-cron": "^3.0.3", "express-rate-limit": "^7.1.5", "helmet": "^7.1.0", "express-validator": "^7.0.1", "hpp": "^0.2.3", "unzipper": "^0.12.3" }, "devDependencies": { "nodemon": "^3.0.2", "eslint": "^8.56.0", "prettier": "^3.1.1", "jest": "^29.7.0" }, "engines": { "node": ">=20.0.0" } }