{ "name": "arb-pulse", "version": "1.0.0", "description": "Real-time BTC cross-exchange arbitrage detection & simulation bot (Kraken, Bybit, OKX, Binance)", "type": "module", "engines": { "node": ">=20" }, "scripts": { "dev": "tsx watch src/index.ts", "dev:web": "npm --prefix web run dev", "start": "tsx src/index.ts", "build": "npm --prefix web install && npm --prefix web run build", "typecheck": "tsc --noEmit && npm --prefix web run typecheck", "test": "node scripts/run-tests.mjs", "lint": "eslint .", "prepare": "husky" }, "lint-staged": { "src/**/*.ts": [ "eslint --fix", "prettier --write" ], "web/src/**/*.{ts,tsx}": [ "eslint --fix", "prettier --write" ] }, "dependencies": { "express": "^4.21.2", "swagger-ui-express": "^5.0.1", "tsx": "^4.19.2", "ws": "^8.18.0" }, "devDependencies": { "@eslint/js": "^9.18.0", "@types/express": "^4.17.21", "@types/node": "^22.10.5", "@types/swagger-ui-express": "^4.1.8", "@types/ws": "^8.5.13", "eslint": "^9.18.0", "eslint-plugin-react-hooks": "^5.1.0", "globals": "^15.14.0", "husky": "^9.1.7", "lint-staged": "^16.4.0", "openapi-types": "^12.1.3", "prettier": "^3.8.3", "typescript": "^5.7.3", "typescript-eslint": "^8.26.0" } }