{
  "name": "rainmaker-api",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "dev": "tsx watch src/index.ts",
    "build": "tsc",
    "migrate": "tsx src/db/migrate.ts",
    "start": "node dist/index.js",
    "schema": "psql -h 127.0.0.1 -p 5433 -U eventheodds -d eventheodds_sports -f src/db/schema.sql",
    "test:mlb": "tsx tests/mlb/test_prop_filters.ts && tsx tests/mlb/test_stale_detection.ts && tsx tests/mlb/test_phase_snapshot.ts",
    "report:mlb-alerts": "tsx src/workers/mlb-alert-report.ts",
    "notify:mlb-alerts": "tsx src/workers/mlb-alert-notifier.ts",
    "audit:mlb-zero-candidates": "tsx src/workers/mlb-zero-candidate-audit.ts",
    "audit:player-prop-candidates": "tsx src/workers/player-prop-candidate-audit.ts",
    "audit:player-prop-slate": "tsx src/workers/player-prop-slate-audit.ts",
    "audit:league-coverage": "tsx src/workers/league-coverage-audit.ts",
    "audit:digilander-bundle": "tsx src/workers/digilander-bundle-audit.ts",
    "audit:forecast-feed": "tsx src/workers/forecast-feed-audit.ts",
    "backtest:mlb-prop-settings": "tsx src/workers/mlb-prop-settings-backtest.ts",
    "expire:pending-orders": "tsx src/workers/pending-order-expiry.ts",
    "refresh:today-forecasts": "tsx src/workers/refresh-todays-curated-forecasts.ts",
    "repair:spread-integrity": "tsx src/workers/repair-spread-integrity.ts",
    "repair:clv-results": "tsx src/workers/repair-clv-results.ts",
    "repair:mlb-prop-eligibility": "tsx src/workers/repair-mlb-prop-eligibility.ts",
    "repair:mlb-event-odds": "tsx src/workers/repair-mlb-event-odds.ts",
    "repair:player-prop-floor": "tsx src/workers/player-prop-floor-repair.ts",
    "repair:cross-sport-player-props": "tsx src/workers/weather-report.ts --schedule CROSS_SPORT_PLAYER_PROP_REPAIR",
    "repair:mlb-team-props": "tsx src/workers/mlb-team-props-repair.ts",
    "sync:mlb-events": "tsx src/scripts/sync-mlb-events.ts",
    "prompt:sports-weather-map": "tsx scripts/generate-sports-weather-map-prompt.ts",
    "prompt:sports-results-recap": "tsx scripts/generate-sports-results-recap-prompt.ts",
    "cron:mlb-market-completion": "tsx src/cron/mlb-market-completion.ts",
    "test": "vitest run --config vitest.config.ts",
    "test:watch": "vitest --config vitest.config.ts",
    "test:coverage": "vitest run --config vitest.config.ts --coverage"
  },
  "dependencies": {
    "@types/cookie-parser": "^1.4.10",
    "bcryptjs": "^2.4.3",
    "canvas": "^3.2.1",
    "cookie-parser": "^1.4.7",
    "compression": "^1.8.1",
    "cors": "^2.8.5",
    "dotenv": "^16.4.7",
    "express": "^4.21.2",
    "express-rate-limit": "^7.5.0",
    "helmet": "^8.1.0",
    "jsonwebtoken": "^9.0.2",
    "nodemailer": "^8.0.4",
    "pg": "^8.13.1",
    "rss-parser": "^3.13.0",
    "stripe": "^17.5.0",
    "uuid": "^11.1.0",
    "web-push": "^3.6.7"
  },
  "overrides": {
    "path-to-regexp": "0.1.13"
  },
  "devDependencies": {
    "@types/bcryptjs": "^2.4.6",
    "@types/compression": "^1.8.1",
    "@types/cors": "^2.8.17",
    "@types/express": "^5.0.0",
    "@types/jsonwebtoken": "^9.0.7",
    "@types/node": "^22.12.0",
    "@types/nodemailer": "^7.0.11",
    "@types/pg": "^8.11.10",
    "@types/supertest": "^7.2.0",
    "@types/uuid": "^10.0.0",
    "@types/web-push": "^3.6.4",
    "@vitest/coverage-v8": "^4.1.2",
    "supertest": "^7.2.2",
    "tsx": "^4.19.2",
    "typescript": "^5.7.3",
    "vitest": "^4.1.2"
  }
}
