{
  "schema_version": "1.0.0",
  "scanner": {
    "name": "global-capability-catalog",
    "version": "0.1.0"
  },
  "repo": {
    "id": "github-recent__mbarbine__autographed-bibles-webby",
    "name": "mbarbine__autographed-bibles-webby",
    "path": "/Users/bwm.barbinewarnermichael/Documents/github/repositories/github-recent/mbarbine__autographed-bibles-webby",
    "relative_path": "github-recent/mbarbine__autographed-bibles-webby",
    "remote_url": "git@github.com:mbarbine/autographed-bibles-webby.git",
    "default_branch": "main",
    "current_commit": "83f8f47a53cf162d6ccd77aac50ae334be2dbfeb"
  },
  "languages": [
    {
      "language": "TypeScript",
      "files": 130,
      "bytes": 373428
    },
    {
      "language": "YAML",
      "files": 1,
      "bytes": 181996
    },
    {
      "language": "JSON",
      "files": 6,
      "bytes": 11046
    },
    {
      "language": "CSS",
      "files": 2,
      "bytes": 9018
    },
    {
      "language": "Markdown",
      "files": 4,
      "bytes": 7310
    },
    {
      "language": "SQL",
      "files": 5,
      "bytes": 4941
    },
    {
      "language": "JavaScript",
      "files": 4,
      "bytes": 2193
    }
  ],
  "frameworks": [
    {
      "name": "Next.js",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "React",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "Tailwind CSS",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "Vitest",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    }
  ],
  "packages": {
    "package_manager": "pnpm",
    "manifests": [
      {
        "path": "package.json",
        "name": "my-v0-project",
        "version": "0.1.0",
        "scripts": {
          "build": "next build",
          "dev": "next dev",
          "lint": "eslint .",
          "start": "next start"
        },
        "dependencies": {
          "@hookform/resolvers": "^3.10.0",
          "@radix-ui/react-accordion": "1.2.2",
          "@radix-ui/react-alert-dialog": "1.1.4",
          "@radix-ui/react-aspect-ratio": "1.1.1",
          "@radix-ui/react-avatar": "1.1.2",
          "@radix-ui/react-checkbox": "1.1.3",
          "@radix-ui/react-collapsible": "1.1.2",
          "@radix-ui/react-context-menu": "2.2.4",
          "@radix-ui/react-dialog": "1.1.4",
          "@radix-ui/react-dropdown-menu": "2.1.4",
          "@radix-ui/react-hover-card": "1.1.4",
          "@radix-ui/react-label": "2.1.1",
          "@radix-ui/react-menubar": "1.1.4",
          "@radix-ui/react-navigation-menu": "1.2.3",
          "@radix-ui/react-popover": "1.1.4",
          "@radix-ui/react-progress": "1.1.1",
          "@radix-ui/react-radio-group": "1.2.2",
          "@radix-ui/react-scroll-area": "1.2.2",
          "@radix-ui/react-select": "2.1.4",
          "@radix-ui/react-separator": "1.1.1",
          "@radix-ui/react-slider": "1.2.2",
          "@radix-ui/react-slot": "1.1.1",
          "@radix-ui/react-switch": "1.1.2",
          "@radix-ui/react-tabs": "1.1.2",
          "@radix-ui/react-toast": "1.2.4",
          "@radix-ui/react-toggle": "1.1.1",
          "@radix-ui/react-toggle-group": "1.1.1",
          "@radix-ui/react-tooltip": "1.1.6",
          "@stripe/react-stripe-js": "5.2.0",
          "@stripe/stripe-js": "8.1.0",
          "@supabase/ssr": "0.7.0",
          "@supabase/supabase-js": "latest",
          "@vercel/analytics": "1.3.1",
          "autoprefixer": "^10.4.20",
          "class-variance-authority": "^0.7.1",
          "clsx": "^2.1.1",
          "cmdk": "1.0.4",
          "date-fns": "4.1.0",
          "embla-carousel-react": "8.5.1",
          "input-otp": "1.4.1",
          "lucide-react": "^0.454.0",
          "next": "16.0.10",
          "next-themes": "^0.4.6",
          "react": "19.2.0",
          "react-day-picker": "9.8.0",
          "react-dom": "19.2.0",
          "react-hook-form": "^7.60.0",
          "react-resizable-panels": "^2.1.7",
          "recharts": "2.15.4",
          "server-only": "0.0.1",
          "sonner": "^1.7.4",
          "stripe": "19.1.0",
          "tailwind-merge": "^3.3.1",
          "tailwindcss-animate": "^1.0.7",
          "vaul": "^0.9.9",
          "zod": "3.25.76"
        },
        "dev_dependencies": {
          "@tailwindcss/postcss": "^4.1.9",
          "@testing-library/dom": "^10.4.1",
          "@testing-library/react": "^16.3.2",
          "@types/node": "^22",
          "@types/react": "^19",
          "@types/react-dom": "^19",
          "@vitejs/plugin-react": "^6.0.1",
          "baseline-browser-mapping": "^2.10.10",
          "jsdom": "^29.0.1",
          "postcss": "^8.5",
          "tailwindcss": "^4.1.9",
          "tw-animate-css": "1.3.3",
          "typescript": "^5",
          "vitest": "^4.1.1"
        }
      }
    ]
  },
  "routes": {
    "api_routes": [
      {
        "route": "/bibles/[id]",
        "source_path": "app/api/bibles/[id]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "DELETE",
          "GET",
          "PUT"
        ]
      },
      {
        "route": "/bibles",
        "source_path": "app/api/bibles/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/docs",
        "source_path": "app/api/docs/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/health",
        "source_path": "app/api/health/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/mcp",
        "source_path": "app/api/mcp/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "OPTIONS",
          "POST"
        ]
      },
      {
        "route": "/network/register",
        "source_path": "app/api/network/register/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/network",
        "source_path": "app/api/network/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/openapi.json",
        "source_path": "app/api/openapi.json/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/orders",
        "source_path": "app/api/orders/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/stats",
        "source_path": "app/api/stats/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/bibles/[id]",
        "source_path": "app/api/v1/bibles/[id]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "DELETE",
          "GET",
          "OPTIONS",
          "PUT"
        ]
      },
      {
        "route": "/v1/bibles",
        "source_path": "app/api/v1/bibles/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "OPTIONS",
          "POST"
        ]
      },
      {
        "route": "/webhooks/stripe",
        "source_path": "app/api/webhooks/stripe/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      }
    ],
    "app_routes": [
      {
        "route": "/admin/add",
        "source_path": "app/admin/add/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/admin/edit/[id]",
        "source_path": "app/admin/edit/[id]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/admin/inventory",
        "source_path": "app/admin/inventory/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/admin/orders",
        "source_path": "app/admin/orders/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/admin",
        "source_path": "app/admin/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/admin/settings",
        "source_path": "app/admin/settings/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/checkout/[productId]",
        "source_path": "app/checkout/[productId]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/faq",
        "source_path": "app/faq/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/jobs",
        "source_path": "app/jobs/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/login",
        "source_path": "app/login/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/reserve",
        "source_path": "app/reserve/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/success",
        "source_path": "app/success/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      }
    ]
  },
  "components": [
    {
      "name": "admin-nav",
      "kind": "ui-component",
      "source_path": "components/admin-nav.tsx"
    },
    {
      "name": "bible-actions",
      "kind": "ui-component",
      "source_path": "components/bible-actions.tsx"
    },
    {
      "name": "bible-form",
      "kind": "ui-component",
      "source_path": "components/bible-form.tsx"
    },
    {
      "name": "Breadcrumbs",
      "kind": "ui-component",
      "source_path": "components/Breadcrumbs.tsx"
    },
    {
      "name": "checkout",
      "kind": "ui-component",
      "source_path": "components/checkout.tsx"
    },
    {
      "name": "signature-upload",
      "kind": "ui-component",
      "source_path": "components/signature-upload.tsx"
    },
    {
      "name": "site-footer",
      "kind": "ui-component",
      "source_path": "components/site-footer.tsx"
    },
    {
      "name": "site-header",
      "kind": "ui-component",
      "source_path": "components/site-header.tsx"
    },
    {
      "name": "theme-provider",
      "kind": "ui-component",
      "source_path": "components/theme-provider.tsx"
    },
    {
      "name": "accordion",
      "kind": "ui-component",
      "source_path": "components/ui/accordion.tsx"
    },
    {
      "name": "alert-dialog",
      "kind": "ui-component",
      "source_path": "components/ui/alert-dialog.tsx"
    },
    {
      "name": "alert",
      "kind": "ui-component",
      "source_path": "components/ui/alert.tsx"
    },
    {
      "name": "aspect-ratio",
      "kind": "ui-component",
      "source_path": "components/ui/aspect-ratio.tsx"
    },
    {
      "name": "avatar",
      "kind": "ui-component",
      "source_path": "components/ui/avatar.tsx"
    },
    {
      "name": "badge",
      "kind": "ui-component",
      "source_path": "components/ui/badge.tsx"
    },
    {
      "name": "breadcrumb",
      "kind": "ui-component",
      "source_path": "components/ui/breadcrumb.tsx"
    },
    {
      "name": "button-group",
      "kind": "ui-component",
      "source_path": "components/ui/button-group.tsx"
    },
    {
      "name": "button",
      "kind": "ui-component",
      "source_path": "components/ui/button.tsx"
    },
    {
      "name": "calendar",
      "kind": "ui-component",
      "source_path": "components/ui/calendar.tsx"
    },
    {
      "name": "card",
      "kind": "ui-component",
      "source_path": "components/ui/card.tsx"
    },
    {
      "name": "carousel",
      "kind": "ui-component",
      "source_path": "components/ui/carousel.tsx"
    },
    {
      "name": "chart",
      "kind": "ui-component",
      "source_path": "components/ui/chart.tsx"
    },
    {
      "name": "checkbox",
      "kind": "ui-component",
      "source_path": "components/ui/checkbox.tsx"
    },
    {
      "name": "collapsible",
      "kind": "ui-component",
      "source_path": "components/ui/collapsible.tsx"
    },
    {
      "name": "command",
      "kind": "ui-component",
      "source_path": "components/ui/command.tsx"
    },
    {
      "name": "context-menu",
      "kind": "ui-component",
      "source_path": "components/ui/context-menu.tsx"
    },
    {
      "name": "dialog",
      "kind": "ui-component",
      "source_path": "components/ui/dialog.tsx"
    },
    {
      "name": "drawer",
      "kind": "ui-component",
      "source_path": "components/ui/drawer.tsx"
    },
    {
      "name": "dropdown-menu",
      "kind": "ui-component",
      "source_path": "components/ui/dropdown-menu.tsx"
    },
    {
      "name": "empty",
      "kind": "ui-component",
      "source_path": "components/ui/empty.tsx"
    },
    {
      "name": "field",
      "kind": "ui-component",
      "source_path": "components/ui/field.tsx"
    },
    {
      "name": "form",
      "kind": "ui-component",
      "source_path": "components/ui/form.tsx"
    },
    {
      "name": "hover-card",
      "kind": "ui-component",
      "source_path": "components/ui/hover-card.tsx"
    },
    {
      "name": "input-group",
      "kind": "ui-component",
      "source_path": "components/ui/input-group.tsx"
    },
    {
      "name": "input-otp",
      "kind": "ui-component",
      "source_path": "components/ui/input-otp.tsx"
    },
    {
      "name": "input",
      "kind": "ui-component",
      "source_path": "components/ui/input.tsx"
    },
    {
      "name": "item",
      "kind": "ui-component",
      "source_path": "components/ui/item.tsx"
    },
    {
      "name": "kbd",
      "kind": "ui-component",
      "source_path": "components/ui/kbd.tsx"
    },
    {
      "name": "label",
      "kind": "ui-component",
      "source_path": "components/ui/label.tsx"
    },
    {
      "name": "menubar",
      "kind": "ui-component",
      "source_path": "components/ui/menubar.tsx"
    },
    {
      "name": "navigation-menu",
      "kind": "ui-component",
      "source_path": "components/ui/navigation-menu.tsx"
    },
    {
      "name": "pagination",
      "kind": "ui-component",
      "source_path": "components/ui/pagination.tsx"
    },
    {
      "name": "popover",
      "kind": "ui-component",
      "source_path": "components/ui/popover.tsx"
    },
    {
      "name": "progress",
      "kind": "ui-component",
      "source_path": "components/ui/progress.tsx"
    },
    {
      "name": "radio-group",
      "kind": "ui-component",
      "source_path": "components/ui/radio-group.tsx"
    },
    {
      "name": "resizable",
      "kind": "ui-component",
      "source_path": "components/ui/resizable.tsx"
    },
    {
      "name": "scroll-area",
      "kind": "ui-component",
      "source_path": "components/ui/scroll-area.tsx"
    },
    {
      "name": "select",
      "kind": "ui-component",
      "source_path": "components/ui/select.tsx"
    },
    {
      "name": "separator",
      "kind": "ui-component",
      "source_path": "components/ui/separator.tsx"
    },
    {
      "name": "sheet",
      "kind": "ui-component",
      "source_path": "components/ui/sheet.tsx"
    },
    {
      "name": "sidebar",
      "kind": "ui-component",
      "source_path": "components/ui/sidebar.tsx"
    },
    {
      "name": "skeleton",
      "kind": "ui-component",
      "source_path": "components/ui/skeleton.tsx"
    },
    {
      "name": "slider",
      "kind": "ui-component",
      "source_path": "components/ui/slider.tsx"
    },
    {
      "name": "sonner",
      "kind": "ui-component",
      "source_path": "components/ui/sonner.tsx"
    },
    {
      "name": "spinner",
      "kind": "ui-component",
      "source_path": "components/ui/spinner.tsx"
    },
    {
      "name": "switch",
      "kind": "ui-component",
      "source_path": "components/ui/switch.tsx"
    },
    {
      "name": "table",
      "kind": "ui-component",
      "source_path": "components/ui/table.tsx"
    },
    {
      "name": "tabs",
      "kind": "ui-component",
      "source_path": "components/ui/tabs.tsx"
    },
    {
      "name": "textarea",
      "kind": "ui-component",
      "source_path": "components/ui/textarea.tsx"
    },
    {
      "name": "toast",
      "kind": "ui-component",
      "source_path": "components/ui/toast.tsx"
    },
    {
      "name": "toaster",
      "kind": "ui-component",
      "source_path": "components/ui/toaster.tsx"
    },
    {
      "name": "toggle-group",
      "kind": "ui-component",
      "source_path": "components/ui/toggle-group.tsx"
    },
    {
      "name": "toggle",
      "kind": "ui-component",
      "source_path": "components/ui/toggle.tsx"
    },
    {
      "name": "tooltip",
      "kind": "ui-component",
      "source_path": "components/ui/tooltip.tsx"
    },
    {
      "name": "use-mobile",
      "kind": "ui-component",
      "source_path": "components/ui/use-mobile.tsx"
    }
  ],
  "data_models": [],
  "database": {
    "databases": [],
    "schemas": [],
    "migrations": []
  },
  "tests": [
    {
      "name": "health.test.ts",
      "kind": "unit-or-integration",
      "source_path": "__tests__/health.test.ts"
    },
    {
      "name": "simple.test.ts",
      "kind": "unit-or-integration",
      "source_path": "__tests__/simple.test.ts"
    },
    {
      "name": "stripe.test.ts",
      "kind": "unit-or-integration",
      "source_path": "__tests__/stripe.test.ts"
    },
    {
      "name": "test-mcp.ts",
      "kind": "unit-or-integration",
      "source_path": "scripts/test-mcp.ts"
    }
  ],
  "ci": {
    "workflows": []
  },
  "containers": {
    "dockerfiles": [],
    "compose_files": []
  },
  "env": {
    "example_files": [],
    "variables": [
      {
        "name": "ADMIN_PASSWORD",
        "source_paths": [
          "lib/auth.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "ALLOWED_CORS_ORIGIN",
        "source_paths": [
          "app/api/mcp/route.ts",
          "app/api/v1/bibles/[id]/route.ts",
          "app/api/v1/bibles/route.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "API_KEY",
        "source_paths": [
          ".jules/sentinel.md",
          "app/api/bibles/[id]/route.ts",
          "app/api/bibles/route.ts",
          "app/api/orders/route.ts",
          "app/api/stats/route.ts",
          "app/api/v1/bibles/[id]/route.ts",
          "app/api/v1/bibles/route.ts",
          "scripts/seed-bibles.ts",
          "scripts/test-mcp.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "GOOGLE_SITE_VERIFICATION",
        "source_paths": [
          "app/layout.tsx"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PHASE",
        "source_paths": [
          "lib/supabase/server.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_APP_URL",
        "source_paths": [
          "scripts/seed-bibles.ts",
          "scripts/test-mcp.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY",
        "source_paths": [
          "components/checkout.tsx"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PUBLIC_SUPABASE_ANON_KEY",
        "source_paths": [
          "app/sitemap.ts",
          "lib/supabase/client.ts",
          "lib/supabase/server.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PUBLIC_SUPABASE_URL",
        "source_paths": [
          "app/sitemap.ts",
          "lib/supabase/client.ts",
          "lib/supabase/server.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NODE_ENV",
        "source_paths": [
          "lib/auth.ts",
          "lib/supabase/server.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "STRIPE_SECRET_KEY",
        "source_paths": [
          "__tests__/stripe.test.ts",
          "lib/stripe.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "STRIPE_WEBHOOK_SECRET",
        "source_paths": [
          "app/api/webhooks/stripe/route.ts"
        ],
        "likely_secret": true
      }
    ]
  },
  "configs": [
    {
      "path": "next.config.mjs"
    },
    {
      "path": "package.json"
    },
    {
      "path": "postcss.config.mjs"
    },
    {
      "path": "tsconfig.json"
    }
  ],
  "docs": {
    "readme_paths": [
      {
        "path": "README.md"
      }
    ],
    "doc_paths": [],
    "llms_context_paths": []
  },
  "discovery_files": {
    "openapi": [],
    "mcp": [
      {
        "path": "app/api/mcp/route.ts"
      }
    ],
    "llms": [],
    "sitemaps": [],
    "feeds": [],
    "well_known": [
      {
        "path": "app/.well-known/ai-plugin.json/route.ts"
      },
      {
        "path": "public/.well-known/ai-plugin.json"
      }
    ],
    "robots": [],
    "manifests": [
      {
        "path": "public/manifest.webmanifest"
      }
    ]
  },
  "integrations": [
    {
      "name": "Google",
      "confidence": "medium",
      "evidence_paths": [
        "app/layout.tsx",
        "package.json"
      ]
    },
    {
      "name": "Stripe",
      "confidence": "medium",
      "evidence_paths": [
        "__tests__/stripe.test.ts",
        "API_DOCUMENTATION.md",
        "app/actions/orders.ts",
        "app/actions/stripe.ts",
        "app/admin/orders/page.tsx",
        "app/api/webhooks/stripe/route.ts",
        "app/success/page.tsx",
        "components/checkout.tsx",
        "lib/stripe.ts",
        "package.json",
        "pnpm-lock.yaml"
      ]
    },
    {
      "name": "Supabase",
      "confidence": "medium",
      "evidence_paths": [
        "app/sitemap.ts",
        "lib/supabase/client.ts",
        "lib/supabase/server.ts",
        "package.json",
        "pnpm-lock.yaml"
      ]
    },
    {
      "name": "Vercel",
      "confidence": "medium",
      "evidence_paths": [
        "package.json",
        "pnpm-lock.yaml"
      ]
    }
  ],
  "license": {
    "spdx": null,
    "paths": []
  },
  "comments": [
    {
      "kind": "security",
      "source_path": ".jules/sentinel.md",
      "line": 3,
      "text": "**Learning:** Developers sometimes use hardcoded fallbacks during initial development or testing to easily bypass authentication checks locally. However, if left in production code, this creates a significant security risk, especially in se"
    },
    {
      "kind": "todo",
      "source_path": "lib/i18n/dictionaries/es.json",
      "line": 4,
      "text": "\"description\": \"Biblias autenticas autografiadas descubiertas en tiendas de segunda mano en todo Estados Unidos. Cada una tiene historia. Firmadas y entregadas desde el camino. $69 cada una.\""
    },
    {
      "kind": "security",
      "source_path": "scripts/001_create_bibles_table.sql",
      "line": 16,
      "text": "-- Enable Row Level Security"
    },
    {
      "kind": "security",
      "source_path": "scripts/001_create_bibles_table.sql",
      "line": 17,
      "text": "alter table public.bibles enable row level security;"
    },
    {
      "kind": "security",
      "source_path": "scripts/002_create_orders_table.sql",
      "line": 15,
      "text": "-- Enable Row Level Security"
    },
    {
      "kind": "security",
      "source_path": "scripts/002_create_orders_table.sql",
      "line": 16,
      "text": "ALTER TABLE orders ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/003_create_settings_table.sql",
      "line": 9,
      "text": "-- Enable Row Level Security"
    },
    {
      "kind": "security",
      "source_path": "scripts/003_create_settings_table.sql",
      "line": 10,
      "text": "ALTER TABLE settings ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "deprecated",
      "source_path": "vitest.setup.tsx",
      "line": 25,
      "text": "addListener: vi.fn(), // deprecated"
    },
    {
      "kind": "deprecated",
      "source_path": "vitest.setup.tsx",
      "line": 26,
      "text": "removeListener: vi.fn(), // deprecated"
    }
  ],
  "security": {
    "secret_risks": [],
    "unsafe_patterns": [
      {
        "name": "dangerously-set-html",
        "confidence": "medium",
        "evidence_paths": [
          "app/layout.tsx",
          "app/page.tsx",
          "app/reserve/page.tsx",
          "components/ui/chart.tsx"
        ]
      },
      {
        "name": "ssrf-review-needed",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/network/register/route.ts"
        ]
      }
    ],
    "sensitive_data_indicators": [
      {
        "name": "api_key",
        "confidence": "medium",
        "evidence_paths": [
          ".jules/sentinel.md",
          "API_DOCUMENTATION.md",
          "app/api/bibles/[id]/route.ts",
          "app/api/bibles/route.ts",
          "app/api/orders/route.ts",
          "app/api/stats/route.ts",
          "app/api/v1/bibles/[id]/route.ts",
          "app/api/v1/bibles/route.ts",
          "app/llms-full.txt/route.ts",
          "app/llms-index.json/route.ts",
          "scripts/seed-bibles.ts",
          "scripts/test-mcp.ts"
        ]
      },
      {
        "name": "card",
        "confidence": "medium",
        "evidence_paths": [
          "app/admin/add/page.tsx",
          "app/admin/edit/[id]/page.tsx",
          "app/admin/inventory/page.tsx",
          "app/admin/orders/page.tsx",
          "app/admin/page.tsx",
          "app/admin/settings/page.tsx",
          "app/checkout/[productId]/page.tsx",
          "app/globals.css",
          "app/layout.tsx",
          "app/llms-full.txt/route.ts",
          "app/login/page.tsx",
          "app/page.tsx",
          "app/reserve/page.tsx",
          "app/success/page.tsx",
          "components/admin-nav.tsx",
          "components/ui/alert.tsx",
          "components/ui/calendar.tsx",
          "components/ui/card.tsx",
          "components/ui/hover-card.tsx",
          "package.json"
        ]
      },
      {
        "name": "email",
        "confidence": "medium",
        "evidence_paths": [
          "API_DOCUMENTATION.md",
          "app/.well-known/ai-plugin.json/route.ts",
          "app/actions/orders.ts",
          "app/admin/orders/page.tsx",
          "app/admin/page.tsx",
          "app/api/webhooks/stripe/route.ts",
          "app/jobs/page.tsx",
          "app/layout.tsx",
          "app/success/page.tsx",
          "public/.well-known/ai-plugin.json",
          "ROADMAP.md",
          "scripts/002_create_orders_table.sql"
        ]
      },
      {
        "name": "fingerprint",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/mcp/route.ts"
        ]
      },
      {
        "name": "health",
        "confidence": "medium",
        "evidence_paths": [
          "__tests__/health.test.ts",
          "app/api/health/route.ts",
          "app/api/network/register/route.ts",
          "app/api/openapi.json/route.ts",
          "app/llms-full.txt/route.ts",
          "app/llms-index.json/route.ts"
        ]
      },
      {
        "name": "location",
        "confidence": "medium",
        "evidence_paths": [
          "components/checkout.tsx",
          "lib/jobs.ts"
        ]
      },
      {
        "name": "password",
        "confidence": "medium",
        "evidence_paths": [
          "app/actions/auth.tsx",
          "app/login/page.tsx",
          "lib/auth.ts"
        ]
      },
      {
        "name": "payment",
        "confidence": "medium",
        "evidence_paths": [
          "__tests__/stripe.test.ts",
          "app/actions/orders.ts",
          "app/actions/stripe.ts",
          "app/admin/orders/page.tsx",
          "app/admin/settings/page.tsx",
          "app/api/webhooks/stripe/route.ts",
          "app/layout.tsx",
          "app/llms-full.txt/route.ts",
          "components/checkout.tsx",
          "scripts/002_create_orders_table.sql"
        ]
      },
      {
        "name": "pii",
        "confidence": "medium",
        "evidence_paths": [
          "pnpm-lock.yaml"
        ]
      },
      {
        "name": "secret-like environment variables",
        "confidence": "medium",
        "evidence_paths": [
          "package.json"
        ]
      },
      {
        "name": "token",
        "confidence": "medium",
        "evidence_paths": [
          "lib/auth.ts",
          "pnpm-lock.yaml"
        ]
      }
    ]
  },
  "generated_at": "2026-05-16T16:44:05.660Z"
}
