{
  "name": "ubon",
  "version": "3.2.3",
  "description": "Security scanner for AI-generated apps (Cursor, Lovable, Windsurf, v0). Catches hardcoded secrets, prompt injection, hallucinated imports, Server Actions / Edge runtime mistakes, and the vibe-coded vulnerabilities traditional linters miss.",
  "main": "dist/index.js",
  "types": "dist/index.d.ts",
  "bin": {
    "ubon": "dist/cli.js"
  },
  "scripts": {
    "build": "tsc && chmod +x dist/cli.js",
    "dev": "tsc --watch",
    "start": "node dist/cli.js",
    "test": "jest --runInBand",
    "test:watch": "jest --watch",
    "lint": "eslint 'src/**/*.ts'",
    "lint:fix": "eslint 'src/**/*.ts' --fix",
    "rules:gen": "node scripts/generate-rules-md.js",
    "rules:sync": "node scripts/check-rules-sync.js",
    "validate:harness": "npm run build && npm run validate:harness:test",
    "validate:harness:test": "jest src/__tests__/validation-harness.test.ts src/__tests__/validation-contracts.test.ts --runInBand --coverage=false",
    "eval:agent": "node scripts/eval-agent.js",
    "dogfood": "node dist/cli.js check --fast --no-result-cache --focus-critical --fail-on error",
    "verify": "npm run lint && npm run build && npm run rules:gen && npm run rules:sync && npm test && npm run validate:harness:test && npm run dogfood",
    "verify:release": "npm run verify && node scripts/verify-package.js",
    "preversion": "node scripts/check-changelog.js",
    "prepublishOnly": "npm run verify:release"
  },
  "keywords": [
    "security",
    "scanner",
    "ai-generated",
    "vibe-coding",
    "cursor",
    "lovable",
    "windsurf",
    "v0",
    "claude",
    "react",
    "nextjs",
    "next-server-actions",
    "sveltekit",
    "astro",
    "remix",
    "vite",
    "supabase",
    "tailwind",
    "hono",
    "prompt-injection",
    "llm-security",
    "mcp",
    "model-context-protocol",
    "hardcoded-secrets",
    "static-analysis",
    "sarif",
    "ci-cd"
  ],
  "author": "Luisfer Romero Calero <luisfer.romero.calero@gmail.com>",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/luisfer/ubon.git"
  },
  "bugs": {
    "url": "https://github.com/luisfer/ubon/issues"
  },
  "homepage": "https://github.com/luisfer/ubon#readme",
  "files": [
    "dist",
    "README.md",
    "LICENSE",
    "CHANGELOG.md",
    "MIGRATION-v3.md",
    "docs/CLI.md",
    "docs/RULES.md",
    "docs/CONFIG.md",
    "docs/INTEGRATIONS.md",
    "docs/MCP.md",
    "docs/ADVANCED.md",
    "docs/START-HERE.md",
    "docs/AGENT-HARNESS.md",
    "docs/AGENT-SEMANTICS.md",
    "docs/PROGRAMMATIC.md",
    "docs/RELEASE.md",
    "docs/VALIDATION.md",
    "docs/schema/ubon-finding.schema.json"
  ],
  "dependencies": {
    "chokidar": "^4.0.3",
    "commander": "^13.1.0",
    "glob": "^13.0.6",
    "picocolors": "^1.1.1",
    "typescript": "^5.6.3",
    "update-notifier": "^5.1.0",
    "vscode-languageserver": "^9.0.1",
    "vscode-languageserver-textdocument": "^1.0.12"
  },
  "optionalDependencies": {
    "@modelcontextprotocol/sdk": "^1.0.4"
  },
  "devDependencies": {
    "@types/jest": "^29.5.14",
    "@types/node": "^22.10.0",
    "@typescript-eslint/eslint-plugin": "^8.18.0",
    "@typescript-eslint/parser": "^8.18.0",
    "eslint": "^9.17.0",
    "jest": "^29.7.0",
    "ts-jest": "^29.2.5"
  },
  "engines": {
    "node": ">=20.0.0",
    "npm": ">=10.0.0"
  },
  "preferGlobal": true,
  "funding": {
    "type": "github",
    "url": "https://github.com/sponsors/luisfer"
  }
}
