{ "name": "ojuri", "version": "1.8.1", "description": "Self-hosted, real-time fraud detection platform. Multi-agent (RDA / PAA / MLA / FIA), Kafka-decoupled, with an operator dashboard.", "main": "dist/server.js", "author": "Ayodeji Abodunrin ", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/ojuri-io/ojuri.git" }, "bugs": { "url": "https://github.com/ojuri-io/ojuri/issues" }, "homepage": "https://github.com/ojuri-io/ojuri#readme", "keywords": [ "fraud-detection", "real-time", "kafka", "onnx", "xgboost", "fastify", "self-hosted", "fintech" ], "scripts": { "start:dev": "nodemon", "start": "node dist/server.js", "prebuild": "rm -rf dist", "build": "tsc", "postbuild": "copyfiles -u 1 \"src/**/*.yaml\" dist", "prepare": "husky install", "test": "NODE_ENV=test jest --runInBand --passWithNoTests --forceExit", "lint": "eslint --ignore-path .eslintignore --ext .ts .", "lint:fix": "eslint . --ext .ts --fix", "knex": "ts-node -r dotenv/config ./node_modules/knex/bin/cli.js", "db:migrate:make": "npm run knex -- migrate:make", "db:migrate": "npm run db:normalize && npm run knex -- migrate:latest && npm run knex -- seed:run", "db:normalize": "ts-node -r dotenv/config src/database/normalize-migration-names.cli.ts", "db:migrate:rollback": "npm run knex -- migrate:rollback", "db:seed": "npm run knex -- seed:run", "seed:load": "ts-node -r dotenv/config scripts/seed-load.ts", "demo:load": "ts-node -r dotenv/config scripts/seed-load.ts --file data/demo/sample-transactions.json --concurrency 4", "replay": "ts-node -r dotenv/config scripts/replay.ts", "reset:admin": "ts-node scripts/reset-admin-password.ts" }, "devDependencies": { "@types/bcrypt": "^6.0.0", "@types/jest": "^30.0.0", "@types/jsonwebtoken": "^9.0.10", "@types/node": "^25.0.2", "@types/opossum": "^8.1.9", "@types/stream-to-array": "^2.3.3", "@types/validatorjs": "^3.15.5", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "eslint": "^8.57.1", "eslint-config-prettier": "^9.1.0", "eslint-config-standard": "^17.1.0", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jest": "^28.10.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-promise": "^6.6.0", "fastify-tsconfig": "^3.0.0", "graphology-types": "^0.24.8", "husky": "^9.1.7", "jest": "^30.2.0", "lint-staged": "^16.2.7", "nodemon": "^3.1.11", "prettier": "^3.7.4", "ts-jest": "^29.4.6", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "^5.9.3" }, "dependencies": { "@fastify/cors": "^11.2.0", "axios": "^1.13.2", "bcrypt": "^6.0.0", "copyfiles": "^2.4.1", "date-fns": "^4.1.0", "dotenv": "^17.2.3", "event-dispatch": "~0.4.1", "fastify": "^5.6.2", "fastify-plugin": "^5.1.0", "google-auth-library": "^10.5.0", "graphology": "^0.26.0", "graphology-communities-louvain": "^2.0.2", "graphology-metrics": "^2.4.0", "handlebars": "^4.7.8", "http-status": "^2.1.0", "ioredis": "~5.8.2", "jsonwebtoken": "^9.0.3", "kafkajs": "^2.2.4", "knex": "^3.1.0", "level": "^10.0.0", "module-alias": "^2.2.3", "ms": "^2.1.3", "objection": "^3.1.5", "onnxruntime-node": "^1.24.3", "opossum": "^9.0.0", "pg": "^8.16.3", "pino": "^10.1.0", "prom-client": "^15.1.3", "randomatic": "^3.1.1", "reflect-metadata": "^0.2.2", "slugify": "^1.6.6", "tsyringe": "^4.10.0", "validatorjs": "^3.22.1" }, "_moduleAliases": { "@config": "dist/config", "@shared": "dist/shared", "@utils": "dist/shared/utils" }, "lint-staged": { "**/*.{js, ts}": [ "npm run lint -- --fix", "npx prettier --write ./src" ] } }