{ "name": "retropilot-server", "version": "1.0.0", "description": "replacement for comma.ai backend and useradmin dashboard. can be combined with a modified cabana instance.", "homepage": "https://github.com/RetroPilot/retropilot-server", "main": "dist/server/index.js", "scripts": { "lint": "eslint src --ext .js", "test": "mocha --require @babel/register", "build": "babel src -d dist", "dev": "nodemon --watch src --exec \"npm run build && npm run server\"", "dev:worker": "nodemon --watch src --exec \"npm run build && npm run worker\"", "server": "node dist/server", "worker": "node dist/worker" }, "dependencies": { "@babel/cli": "^7.17.6", "@babel/core": "^7.17.8", "@babel/preset-env": "^7.16.11", "@babel/register": "^7.17.7", "@commaai/log_reader": "^0.9.0", "@sendgrid/client": "^7.6.2", "2fa-util": "^1.1.1", "body-parser": "^1.19.2", "chai": "^4.3.6", "chai-http": "^4.3.0", "cookie": "^0.4.2", "cookie-parser": "^1.4.6", "cookies": "^0.8.0", "cors": "^2.8.5", "crypto": "^1.0.1", "directory-tree": "^2.2.9", "dotenv": "^16.0.0", "esm": "^3.2.25", "express": "^4.17.3", "express-fileupload": "^1.3.1", "express-rate-limit": "^6.3.0", "express-ws": "^5.0.2", "fast-folder-size": "^1.6.1", "ffprobe": "^1.1.2", "ffprobe-static": "^3.0.0", "file-chunked": "^1.0.4", "google-auth-library": "^7.14.0", "htmlspecialchars": "^1.0.5", "jsonwebtoken": "^8.5.1", "log4js": "^6.4.3", "multer": "^1.4.4", "nodemailer": "^6.7.3", "pg": "^8.7.3", "sanitize": "^2.1.0", "sequelize": "^6.17.0", "simple-oauth2": "^4.3.0", "spm-agent-nodejs": "^4.1.4", "sqlite": "^4.0.25", "sqlite3": "^5.0.2", "supertest": "^6.2.2", "uuid": "^8.3.2", "websocket": "^1.0.34", "ws": "^8.5.0", "yup": "^0.32.11" }, "devDependencies": { "eslint": "^8.11.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.25.4", "eslint-plugin-no-floating-promise": "^1.0.2", "mocha": "^9.2.2", "nodemon": "^2.0.15" } }