{
  "schema_version": "1.0.0",
  "scanner": {
    "name": "global-capability-catalog",
    "version": "0.1.0"
  },
  "repo": {
    "id": "github-recent__mbarbine__platphorm-auction-vice",
    "name": "mbarbine__platphorm-auction-vice",
    "path": "/Users/bwm.barbinewarnermichael/Documents/github/repositories/github-recent/mbarbine__platphorm-auction-vice",
    "relative_path": "github-recent/mbarbine__platphorm-auction-vice",
    "remote_url": "git@github.com:mbarbine/platphorm-auction-vice.git",
    "default_branch": "main",
    "current_commit": "d96969a28c7926986e003c2d9bbedd75feb5b3df"
  },
  "languages": [
    {
      "language": "TypeScript",
      "files": 177,
      "bytes": 880950
    },
    {
      "language": "YAML",
      "files": 1,
      "bytes": 169011
    },
    {
      "language": "SQL",
      "files": 2,
      "bytes": 49892
    },
    {
      "language": "Markdown",
      "files": 3,
      "bytes": 21279
    },
    {
      "language": "JSON",
      "files": 5,
      "bytes": 11572
    },
    {
      "language": "CSS",
      "files": 2,
      "bytes": 11055
    },
    {
      "language": "JavaScript",
      "files": 2,
      "bytes": 325
    }
  ],
  "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": "platphorm-vice",
        "version": "0.1.0",
        "scripts": {
          "dev": "next dev",
          "build": "next build",
          "start": "next start",
          "lint": "eslint .",
          "test": "vitest",
          "test:run": "vitest run",
          "test:coverage": "vitest run --coverage",
          "test:ui": "vitest --ui"
        },
        "dependencies": {
          "@hookform/resolvers": "^3.9.1",
          "@radix-ui/react-accordion": "1.2.12",
          "@radix-ui/react-alert-dialog": "1.1.15",
          "@radix-ui/react-aspect-ratio": "1.1.8",
          "@radix-ui/react-avatar": "1.1.11",
          "@radix-ui/react-checkbox": "1.3.3",
          "@radix-ui/react-collapsible": "1.1.12",
          "@radix-ui/react-context-menu": "2.2.16",
          "@radix-ui/react-dialog": "1.1.15",
          "@radix-ui/react-dropdown-menu": "2.1.16",
          "@radix-ui/react-hover-card": "1.1.15",
          "@radix-ui/react-label": "2.1.8",
          "@radix-ui/react-menubar": "1.1.16",
          "@radix-ui/react-navigation-menu": "1.2.14",
          "@radix-ui/react-popover": "1.1.15",
          "@radix-ui/react-progress": "1.1.8",
          "@radix-ui/react-radio-group": "1.3.8",
          "@radix-ui/react-scroll-area": "1.2.10",
          "@radix-ui/react-select": "2.2.6",
          "@radix-ui/react-separator": "1.1.8",
          "@radix-ui/react-slider": "1.3.6",
          "@radix-ui/react-slot": "1.2.4",
          "@radix-ui/react-switch": "1.2.6",
          "@radix-ui/react-tabs": "1.1.13",
          "@radix-ui/react-toast": "1.2.15",
          "@radix-ui/react-toggle": "1.1.10",
          "@radix-ui/react-toggle-group": "1.1.11",
          "@radix-ui/react-tooltip": "1.2.8",
          "@stripe/react-stripe-js": "^6.3.0",
          "@stripe/stripe-js": "^9.4.0",
          "@supabase/ssr": "^0.10.2",
          "@supabase/supabase-js": "^2.105.2",
          "@testing-library/jest-dom": "^6.9.1",
          "@testing-library/react": "^16.3.2",
          "@vercel/analytics": "1.6.1",
          "@vitejs/plugin-react": "^6.0.1",
          "autoprefixer": "^10.4.20",
          "class-variance-authority": "^0.7.1",
          "clsx": "^2.1.1",
          "cmdk": "1.1.1",
          "date-fns": "4.1.0",
          "embla-carousel-react": "8.6.0",
          "input-otp": "1.4.2",
          "lucide-react": "^0.564.0",
          "next": "16.2.4",
          "next-themes": "^0.4.6",
          "react": "^19",
          "react-day-picker": "9.13.2",
          "react-dom": "^19",
          "react-hook-form": "^7.54.1",
          "react-resizable-panels": "^2.1.7",
          "recharts": "2.15.0",
          "server-only": "^0.0.1",
          "sonner": "^1.7.1",
          "stripe": "^22.1.0",
          "swr": "^2.4.1",
          "tailwind-merge": "^3.3.1",
          "vaul": "^1.1.2",
          "vitest": "^4.1.5",
          "zod": "^3.24.1"
        },
        "dev_dependencies": {
          "@tailwindcss/postcss": "^4.2.0",
          "@types/node": "^22",
          "@types/react": "^19",
          "@types/react-dom": "^19",
          "postcss": "^8.5",
          "tailwindcss": "^4.2.0",
          "tw-animate-css": "1.3.3",
          "typescript": "5.7.3"
        }
      }
    ]
  },
  "routes": {
    "api_routes": [
      {
        "route": "/docs",
        "source_path": "app/api/docs/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/events",
        "source_path": "app/api/events/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",
          "POST"
        ]
      },
      {
        "route": "/v1/bids",
        "source_path": "app/api/v1/bids/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/categories",
        "source_path": "app/api/v1/categories/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/checkout",
        "source_path": "app/api/v1/checkout/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/import/ebay",
        "source_path": "app/api/v1/import/ebay/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/listings/[id]",
        "source_path": "app/api/v1/listings/[id]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "DELETE",
          "GET",
          "PATCH"
        ]
      },
      {
        "route": "/v1/listings",
        "source_path": "app/api/v1/listings/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/orders",
        "source_path": "app/api/v1/orders/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/webhooks",
        "source_path": "app/api/webhooks/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/webhooks/stripe",
        "source_path": "app/api/webhooks/stripe/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      }
    ],
    "app_routes": [
      {
        "route": "/auth/error",
        "source_path": "app/auth/error/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/auth/login",
        "source_path": "app/auth/login/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/auth/logout",
        "source_path": "app/auth/logout/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/auth/sign-up-success",
        "source_path": "app/auth/sign-up-success/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/auth/sign-up",
        "source_path": "app/auth/sign-up/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/browse",
        "source_path": "app/browse/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/categories",
        "source_path": "app/categories/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/category/[slug]",
        "source_path": "app/category/[slug]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/checkout/[orderId]",
        "source_path": "app/checkout/[orderId]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/dashboard/listings",
        "source_path": "app/dashboard/listings/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/dashboard",
        "source_path": "app/dashboard/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/deals",
        "source_path": "app/deals/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/docs/ai-roadmap",
        "source_path": "app/docs/ai-roadmap/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/docs",
        "source_path": "app/docs/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/docs/testing",
        "source_path": "app/docs/testing/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/docs/user-roadmap",
        "source_path": "app/docs/user-roadmap/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/faq",
        "source_path": "app/faq/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/import/ebay",
        "source_path": "app/import/ebay/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/listing/[slug]",
        "source_path": "app/listing/[slug]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/markets",
        "source_path": "app/markets/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/messages",
        "source_path": "app/messages/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/privacy",
        "source_path": "app/privacy/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/roadmap",
        "source_path": "app/roadmap/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/search",
        "source_path": "app/search/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/security",
        "source_path": "app/security/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/sell",
        "source_path": "app/sell/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/seller/onboarding",
        "source_path": "app/seller/onboarding/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/seller",
        "source_path": "app/seller/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/store/[slug]",
        "source_path": "app/store/[slug]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/terms",
        "source_path": "app/terms/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/watchlist",
        "source_path": "app/watchlist/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      }
    ]
  },
  "components": [
    {
      "name": "category-grid",
      "kind": "ui-component",
      "source_path": "components/category-grid.tsx"
    },
    {
      "name": "checkout",
      "kind": "ui-component",
      "source_path": "components/checkout.tsx"
    },
    {
      "name": "checkout-form",
      "kind": "ui-component",
      "source_path": "components/checkout/checkout-form.tsx"
    },
    {
      "name": "ebay-import-wizard",
      "kind": "ui-component",
      "source_path": "components/import/ebay-import-wizard.tsx"
    },
    {
      "name": "footer",
      "kind": "ui-component",
      "source_path": "components/layout/footer.tsx"
    },
    {
      "name": "sidebar",
      "kind": "ui-component",
      "source_path": "components/layout/sidebar.tsx"
    },
    {
      "name": "top-bar",
      "kind": "ui-component",
      "source_path": "components/layout/top-bar.tsx"
    },
    {
      "name": "bid-history",
      "kind": "ui-component",
      "source_path": "components/listing/bid-history.tsx"
    },
    {
      "name": "bidding-panel",
      "kind": "ui-component",
      "source_path": "components/listing/bidding-panel.tsx"
    },
    {
      "name": "create-listing-form",
      "kind": "ui-component",
      "source_path": "components/listing/create-listing-form.tsx"
    },
    {
      "name": "image-gallery",
      "kind": "ui-component",
      "source_path": "components/listing/image-gallery.tsx"
    },
    {
      "name": "listing-card",
      "kind": "ui-component",
      "source_path": "components/listing/listing-card.tsx"
    },
    {
      "name": "listing-detail",
      "kind": "ui-component",
      "source_path": "components/listing/listing-detail.tsx"
    },
    {
      "name": "listing-filters",
      "kind": "ui-component",
      "source_path": "components/listing/listing-filters.tsx"
    },
    {
      "name": "market-insights",
      "kind": "ui-component",
      "source_path": "components/listing/market-insights.tsx"
    },
    {
      "name": "seller-info",
      "kind": "ui-component",
      "source_path": "components/listing/seller-info.tsx"
    },
    {
      "name": "prediction-card",
      "kind": "ui-component",
      "source_path": "components/markets/prediction-card.tsx"
    },
    {
      "name": "messages-client",
      "kind": "ui-component",
      "source_path": "components/messages/messages-client.tsx"
    },
    {
      "name": "notification-bell",
      "kind": "ui-component",
      "source_path": "components/notifications/notification-bell.tsx"
    },
    {
      "name": "providers",
      "kind": "ui-component",
      "source_path": "components/providers.tsx"
    },
    {
      "name": "review-form",
      "kind": "ui-component",
      "source_path": "components/reviews/review-form.tsx"
    },
    {
      "name": "review-list",
      "kind": "ui-component",
      "source_path": "components/reviews/review-list.tsx"
    },
    {
      "name": "shipping-calculator",
      "kind": "ui-component",
      "source_path": "components/shipping/shipping-calculator.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"
    },
    {
      "name": "listing-card.test",
      "kind": "ui-component",
      "source_path": "tests/components/listing-card.test.tsx"
    }
  ],
  "data_models": [],
  "database": {
    "databases": [],
    "schemas": [],
    "migrations": []
  },
  "tests": [
    {
      "name": "bids.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/bids.test.ts"
    },
    {
      "name": "health.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/health.test.ts"
    },
    {
      "name": "listings.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/listings.test.ts"
    },
    {
      "name": "webhooks.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/webhooks.test.ts"
    },
    {
      "name": "listing-card.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "tests/components/listing-card.test.tsx"
    },
    {
      "name": "flows.test.ts",
      "kind": "e2e",
      "source_path": "tests/e2e/flows.test.ts"
    },
    {
      "name": "ebay-import.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/features/ebay-import.test.ts"
    },
    {
      "name": "realtime-bidding.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/features/realtime-bidding.test.ts"
    },
    {
      "name": "full-suite.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/full-suite.test.ts"
    },
    {
      "name": "utils.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/lib/utils.test.ts"
    },
    {
      "name": "routes.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/navigation/routes.test.ts"
    },
    {
      "name": "discovery.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/seo/discovery.test.ts"
    }
  ],
  "ci": {
    "workflows": []
  },
  "containers": {
    "dockerfiles": [],
    "compose_files": []
  },
  "env": {
    "example_files": [],
    "variables": [
      {
        "name": "NEXT_PUBLIC_APP_URL",
        "source_paths": [
          "app/api/v1/checkout/route.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_DEV_SUPABASE_REDIRECT_URL",
        "source_paths": [
          "app/auth/login/page.tsx",
          "app/auth/sign-up/page.tsx"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_SITE_URL",
        "source_paths": [
          "tests/setup.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY",
        "source_paths": [
          "components/checkout.tsx",
          "components/checkout/checkout-form.tsx"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PUBLIC_SUPABASE_ANON_KEY",
        "source_paths": [
          "lib/supabase/client.ts",
          "lib/supabase/middleware.ts",
          "lib/supabase/server.ts",
          "tests/setup.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PUBLIC_SUPABASE_URL",
        "source_paths": [
          "app/api/health/route.ts",
          "lib/supabase/client.ts",
          "lib/supabase/middleware.ts",
          "lib/supabase/server.ts",
          "tests/setup.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NODE_ENV",
        "source_paths": [
          "app/api/health/route.ts",
          "app/layout.tsx"
        ],
        "likely_secret": false
      },
      {
        "name": "PLATPHORM_MCP_KEY",
        "source_paths": [
          "lib/integrations/platphorm-mcp.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "POLYMARKETS_API_KEY",
        "source_paths": [
          "lib/integrations/polymarkets.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "RAPIDAPI_KEY",
        "source_paths": [
          "lib/integrations/ebay-enrichment.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "STRIPE_SECRET_KEY",
        "source_paths": [
          "app/api/health/route.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": [
      {
        "path": "docs/SEO-ACCESSIBILITY-ROADMAP.md"
      }
    ],
    "llms_context_paths": []
  },
  "discovery_files": {
    "openapi": [],
    "mcp": [
      {
        "path": "app/api/mcp/route.ts"
      }
    ],
    "llms": [],
    "sitemaps": [],
    "feeds": [],
    "well_known": [],
    "robots": [],
    "manifests": []
  },
  "integrations": [
    {
      "name": "PlatPhorm",
      "confidence": "medium",
      "evidence_paths": [
        "lib/integrations/platphorm-mcp.ts",
        "package.json"
      ]
    },
    {
      "name": "Stripe",
      "confidence": "medium",
      "evidence_paths": [
        "app/actions/stripe.ts",
        "app/api/docs/route.ts",
        "app/api/health/route.ts",
        "app/api/v1/checkout/route.ts",
        "app/api/v1/listings/route.ts",
        "app/api/webhooks/stripe/route.ts",
        "app/llms-index.json/route.ts",
        "app/seller/onboarding/page.tsx",
        "components/checkout.tsx",
        "components/checkout/checkout-form.tsx",
        "lib/stripe.ts",
        "package.json",
        "pnpm-lock.yaml"
      ]
    },
    {
      "name": "Supabase",
      "confidence": "medium",
      "evidence_paths": [
        "app/api/health/route.ts",
        "app/auth/login/page.tsx",
        "app/auth/sign-up/page.tsx",
        "app/docs/page.tsx",
        "hooks/use-realtime-listing.ts",
        "lib/supabase/client.ts",
        "lib/supabase/middleware.ts",
        "lib/supabase/server.ts",
        "package.json",
        "pnpm-lock.yaml",
        "tests/setup.ts"
      ]
    },
    {
      "name": "Vercel",
      "confidence": "medium",
      "evidence_paths": [
        "app/layout.tsx",
        "package.json",
        "pnpm-lock.yaml"
      ]
    }
  ],
  "license": {
    "spdx": null,
    "paths": []
  },
  "comments": [
    {
      "kind": "security",
      "source_path": "app/api/docs/route.ts",
      "line": 101,
      "text": "security: [{ bearerAuth: [] }],"
    },
    {
      "kind": "security",
      "source_path": "app/api/docs/route.ts",
      "line": 146,
      "text": "security: [{ bearerAuth: [] }],"
    },
    {
      "kind": "security",
      "source_path": "app/api/docs/route.ts",
      "line": 174,
      "text": "security: [{ bearerAuth: [] }],"
    },
    {
      "kind": "security",
      "source_path": "app/api/docs/route.ts",
      "line": 218,
      "text": "security: [{ bearerAuth: [] }],"
    },
    {
      "kind": "security",
      "source_path": "app/api/docs/route.ts",
      "line": 276,
      "text": "security: [{ bearerAuth: [] }],"
    },
    {
      "kind": "security",
      "source_path": "app/api/docs/route.ts",
      "line": 293,
      "text": "security: [{ bearerAuth: [] }],"
    },
    {
      "kind": "security",
      "source_path": "app/api/events/route.ts",
      "line": 13,
      "text": "*     security:"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/categories/route.ts",
      "line": 101,
      "text": "*     security:"
    },
    {
      "kind": "todo",
      "source_path": "app/api/v1/checkout/route.ts",
      "line": 4,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/api/v1/checkout/route.ts",
      "line": 21,
      "text": "// TODO: Re-enable Supabase auth when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/api/v1/checkout/route.ts",
      "line": 41,
      "text": "// TODO: Re-enable Supabase data fetching when ready"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/import/ebay/route.ts",
      "line": 14,
      "text": "*     security:"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/import/ebay/route.ts",
      "line": 215,
      "text": "*     security:"
    },
    {
      "kind": "todo",
      "source_path": "app/auth/login/page.tsx",
      "line": 18,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/auth/login/page.tsx",
      "line": 35,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/auth/logout/page.tsx",
      "line": 7,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/auth/logout/page.tsx",
      "line": 15,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/auth/sign-up/page.tsx",
      "line": 18,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/auth/sign-up/page.tsx",
      "line": 47,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/browse/page.tsx",
      "line": 14,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/browse/page.tsx",
      "line": 34,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/browse/page.tsx",
      "line": 39,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/browse/page.tsx",
      "line": 72,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/categories/page.tsx",
      "line": 25,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/categories/page.tsx",
      "line": 49,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/categories/page.tsx",
      "line": 54,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/checkout/[orderId]/page.tsx",
      "line": 6,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/checkout/[orderId]/page.tsx",
      "line": 68,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/checkout/[orderId]/page.tsx",
      "line": 78,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/dashboard/page.tsx",
      "line": 27,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/deals/page.tsx",
      "line": 21,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/deals/page.tsx",
      "line": 30,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/deals/page.tsx",
      "line": 35,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "security",
      "source_path": "app/docs/ai-roadmap/page.tsx",
      "line": 69,
      "text": "{ name: 'CLAWS security integration', status: 'done' },"
    },
    {
      "kind": "security",
      "source_path": "app/docs/testing/page.tsx",
      "line": 84,
      "text": "area: 'Security Testing',"
    },
    {
      "kind": "security",
      "source_path": "app/docs/testing/page.tsx",
      "line": 134,
      "text": "{ step: 'Security Scan', time: '1m', status: 'pass' },"
    },
    {
      "kind": "security",
      "source_path": "app/docs/testing/page.tsx",
      "line": 146,
      "text": "reliability, performance, and security at every layer of the platform."
    },
    {
      "kind": "todo",
      "source_path": "app/feed.xml/route.ts",
      "line": 4,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/listing/[slug]/page.tsx",
      "line": 11,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/listing/[slug]/page.tsx",
      "line": 19,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/listing/[slug]/page.tsx",
      "line": 51,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/listing/[slug]/page.tsx",
      "line": 76,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "security",
      "source_path": "app/llms-full.txt/route.ts",
      "line": 188,
      "text": "## Security Considerations"
    },
    {
      "kind": "security",
      "source_path": "app/llms-index.json/route.ts",
      "line": 144,
      "text": "security: `${siteConfig.url}/security`,"
    },
    {
      "kind": "security",
      "source_path": "app/llms-index.json/route.ts",
      "line": 153,
      "text": "security: \"security@vice.platphormnews.com\","
    },
    {
      "kind": "security",
      "source_path": "app/llms.txt/route.ts",
      "line": 211,
      "text": "- **CLAWS Security**: https://claws.platphormnews.com"
    },
    {
      "kind": "security",
      "source_path": "app/llms.txt/route.ts",
      "line": 228,
      "text": "- **Security**: ${siteConfig.url}/security"
    },
    {
      "kind": "security",
      "source_path": "app/llms.txt/route.ts",
      "line": 236,
      "text": "- **Security**: security@vice.platphormnews.com"
    },
    {
      "kind": "todo",
      "source_path": "app/page.tsx",
      "line": 24,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/page.tsx",
      "line": 28,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/page.tsx",
      "line": 47,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/page.tsx",
      "line": 53,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/page.tsx",
      "line": 62,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "security",
      "source_path": "app/privacy/page.tsx",
      "line": 61,
      "text": "<li>To prevent fraud and ensure platform security</li>"
    },
    {
      "kind": "security",
      "source_path": "app/privacy/page.tsx",
      "line": 79,
      "text": "<h2 className=\"text-2xl font-semibold mt-8 mb-4\">5. Data Security</h2>"
    },
    {
      "kind": "security",
      "source_path": "app/privacy/page.tsx",
      "line": 81,
      "text": "We implement appropriate technical and organizational security measures to protect"
    },
    {
      "kind": "security",
      "source_path": "app/privacy/page.tsx",
      "line": 83,
      "text": "infrastructure. We use encryption, secure protocols, and regular security assessments."
    },
    {
      "kind": "todo",
      "source_path": "app/rss.xml/route.ts",
      "line": 4,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/rss.xml/route.ts",
      "line": 8,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/search/page.tsx",
      "line": 10,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 9,
      "text": "title: 'Security | VICE Auctions',"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 10,
      "text": "description: 'Security practices, vulnerability disclosure, and data protection at VICE Auctions.',"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 12,
      "text": "canonical: `${siteConfig.url}/security`"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 45,
      "text": "description: '24/7 security monitoring, anomaly detection, and automated incident response. Regular penetration testing.',"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 54,
      "text": "{ name: 'ISO 27001', status: 'planned', description: 'Information security management' },"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 61,
      "text": "<Badge className=\"mb-4\">Security</Badge>"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 62,
      "text": "<h1 className=\"text-3xl md:text-4xl font-bold mb-4\">Security at VICE Auctions</h1>"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 64,
      "text": "We take security seriously. Our platform is built with security-first principles"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 69,
      "text": "{/* Security Features */}"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 71,
      "text": "<h2 className=\"text-2xl font-bold mb-6\">Security Features</h2>"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 119,
      "text": "<h3 className=\"font-semibold mb-2\">Report a Security Vulnerability</h3>"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 121,
      "text": "If you discover a security vulnerability, please report it responsibly."
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 125,
      "text": "<li><strong>Email:</strong> security@vice.platphormnews.com</li>"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 130,
      "text": "We do not pursue legal action against security researchers who follow"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 141,
      "text": "<h2 className=\"text-2xl font-bold mb-6\">User Security Best Practices</h2>"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 160,
      "text": "<h3 className=\"text-xl font-bold mb-2\">Questions about security?</h3>"
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 162,
      "text": "Contact our security team for any concerns or questions."
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 165,
      "text": "href=\"mailto:security@vice.platphormnews.com\""
    },
    {
      "kind": "security",
      "source_path": "app/security/page.tsx",
      "line": 168,
      "text": "Contact Security Team"
    },
    {
      "kind": "todo",
      "source_path": "app/sell/page.tsx",
      "line": 7,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "app/sell/page.tsx",
      "line": 17,
      "text": "// TODO: Re-enable Supabase auth when ready"
    },
    {
      "kind": "security",
      "source_path": "app/terms/page.tsx",
      "line": 43,
      "text": "<li>You are responsible for maintaining the security of your account credentials</li>"
    },
    {
      "kind": "todo",
      "source_path": "components/layout/top-bar.tsx",
      "line": 232,
      "text": "{/* TODO: Re-enable Supabase signout when ready */}"
    },
    {
      "kind": "todo",
      "source_path": "components/listing/bid-history.tsx",
      "line": 10,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "components/listing/bid-history.tsx",
      "line": 35,
      "text": "// TODO: Re-enable real-time updates with Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "components/listing/bidding-panel.tsx",
      "line": 23,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "components/listing/bidding-panel.tsx",
      "line": 80,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "components/listing/bidding-panel.tsx",
      "line": 113,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "components/listing/bidding-panel.tsx",
      "line": 129,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "components/listing/create-listing-form.tsx",
      "line": 23,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "components/listing/create-listing-form.tsx",
      "line": 180,
      "text": "// TODO: Re-enable Supabase when ready"
    },
    {
      "kind": "todo",
      "source_path": "components/listing/listing-card.tsx",
      "line": 98,
      "text": "// TODO: Add to watchlist"
    },
    {
      "kind": "todo",
      "source_path": "components/listing/listing-detail.tsx",
      "line": 71,
      "text": "// TODO: Implement watchlist API call"
    },
    {
      "kind": "todo",
      "source_path": "components/listing/listing-detail.tsx",
      "line": 209,
      "text": "// TODO: Implement real bet placement"
    },
    {
      "kind": "security",
      "source_path": "docs/SEO-ACCESSIBILITY-ROADMAP.md",
      "line": 219,
      "text": "### 7.2 Security & SEO"
    },
    {
      "kind": "security",
      "source_path": "docs/SEO-ACCESSIBILITY-ROADMAP.md",
      "line": 223,
      "text": "- Security headers (CSP, X-Frame-Options)"
    },
    {
      "kind": "security",
      "source_path": "lib/config.ts",
      "line": 127,
      "text": "{ title: 'Security', href: 'https://claws.platphormnews.com', external: true },"
    },
    {
      "kind": "security",
      "source_path": "lib/integrations/claws.ts",
      "line": 2,
      "text": "* CLAWS Security Intelligence Integration"
    },
    {
      "kind": "security",
      "source_path": "lib/integrations/claws.ts",
      "line": 5,
      "text": "* Threat detection, fraud prevention, and security policies"
    },
    {
      "kind": "security",
      "source_path": "lib/integrations/claws.ts",
      "line": 75,
      "text": "* Get security policies"
    },
    {
      "kind": "todo",
      "source_path": "lib/mock-auth.ts",
      "line": 2,
      "text": "// TODO: Replace with real Supabase auth when ready"
    },
    {
      "kind": "todo",
      "source_path": "lib/supabase/middleware.ts",
      "line": 53,
      "text": "// TODO: Re-enable auth checks when ready"
    },
    {
      "kind": "todo",
      "source_path": "messages/es.json",
      "line": 16,
      "text": "\"viewAll\": \"Ver todo\","
    },
    {
      "kind": "security",
      "source_path": "scripts/schema-enrichment.sql",
      "line": 522,
      "text": "-- ROW LEVEL SECURITY"
    },
    {
      "kind": "security",
      "source_path": "scripts/schema-enrichment.sql",
      "line": 525,
      "text": "ALTER TABLE listing_enrichment ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/schema-enrichment.sql",
      "line": 526,
      "text": "ALTER TABLE prediction_markets ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/schema-enrichment.sql",
      "line": 527,
      "text": "ALTER TABLE market_options ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/schema-enrichment.sql",
      "line": 528,
      "text": "ALTER TABLE market_positions ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/schema-enrichment.sql",
      "line": 529,
      "text": "ALTER TABLE seller_profiles ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/schema-enrichment.sql",
      "line": 530,
      "text": "ALTER TABLE api_keys ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 586,
      "text": "$$ LANGUAGE plpgsql SECURITY DEFINER;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 706,
      "text": "$$ LANGUAGE plpgsql SECURITY DEFINER;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 776,
      "text": "$$ LANGUAGE plpgsql SECURITY DEFINER;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 779,
      "text": "-- ROW LEVEL SECURITY"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 783,
      "text": "ALTER TABLE tenants ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 784,
      "text": "ALTER TABLE profiles ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 785,
      "text": "ALTER TABLE categories ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 786,
      "text": "ALTER TABLE listings ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 787,
      "text": "ALTER TABLE bids ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 788,
      "text": "ALTER TABLE watchlist ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 789,
      "text": "ALTER TABLE saved_searches ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 790,
      "text": "ALTER TABLE orders ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 791,
      "text": "ALTER TABLE storefronts ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 792,
      "text": "ALTER TABLE conversations ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 793,
      "text": "ALTER TABLE messages ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 794,
      "text": "ALTER TABLE reviews ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 795,
      "text": "ALTER TABLE notifications ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 796,
      "text": "ALTER TABLE ebay_migrations ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 797,
      "text": "ALTER TABLE ebay_imported_listings ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/setup.sql",
      "line": 798,
      "text": "ALTER TABLE webhook_endpoints ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "tests/integration/full-suite.test.ts",
      "line": 381,
      "text": "describe('Security', () => {"
    },
    {
      "kind": "security",
      "source_path": "tests/integration/full-suite.test.ts",
      "line": 383,
      "text": "'Row Level Security (RLS)',"
    },
    {
      "kind": "security",
      "source_path": "tests/integration/full-suite.test.ts",
      "line": 389,
      "text": "'Content Security Policy',"
    },
    {
      "kind": "security",
      "source_path": "tests/navigation/routes.test.ts",
      "line": 32,
      "text": "'/security',"
    }
  ],
  "security": {
    "secret_risks": [],
    "unsafe_patterns": [
      {
        "name": "dangerously-set-html",
        "confidence": "medium",
        "evidence_paths": [
          "app/faq/page.tsx",
          "app/listing/[slug]/page.tsx",
          "components/ui/chart.tsx"
        ]
      },
      {
        "name": "sql-injection-review-needed",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/v1/import/ebay/route.ts",
          "app/feed.xml/route.ts",
          "tests/features/ebay-import.test.ts"
        ]
      },
      {
        "name": "ssrf-review-needed",
        "confidence": "medium",
        "evidence_paths": [
          "components/providers.tsx"
        ]
      }
    ],
    "sensitive_data_indicators": [
      {
        "name": "api_key",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/events/route.ts",
          "lib/integrations/ebay-enrichment.ts",
          "lib/integrations/polymarkets.ts",
          "scripts/schema-enrichment.sql"
        ]
      },
      {
        "name": "card",
        "confidence": "medium",
        "evidence_paths": [
          "app/auth/error/page.tsx",
          "app/auth/login/page.tsx",
          "app/auth/sign-up-success/page.tsx",
          "app/auth/sign-up/page.tsx",
          "app/browse/page.tsx",
          "app/categories/page.tsx",
          "app/category/[slug]/page.tsx",
          "app/dashboard/listings/page.tsx",
          "app/dashboard/page.tsx",
          "app/deals/page.tsx",
          "app/docs/ai-roadmap/page.tsx",
          "app/docs/page.tsx",
          "app/docs/testing/page.tsx",
          "app/docs/user-roadmap/page.tsx",
          "app/faq/page.tsx",
          "app/globals.css",
          "app/layout.tsx",
          "app/listing/[slug]/page.tsx",
          "app/markets/page.tsx",
          "app/not-found.tsx"
        ]
      },
      {
        "name": "email",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/docs/route.ts",
          "app/auth/login/page.tsx",
          "app/auth/sign-up-success/page.tsx",
          "app/auth/sign-up/page.tsx",
          "app/deals/page.tsx",
          "app/faq/page.tsx",
          "app/feed.xml/route.ts",
          "app/listing/[slug]/page.tsx",
          "app/llms-full.txt/route.ts",
          "app/page.tsx",
          "app/privacy/page.tsx",
          "app/security/page.tsx",
          "app/sell/page.tsx",
          "app/terms/page.tsx",
          "components/layout/top-bar.tsx",
          "components/listing/bidding-panel.tsx",
          "components/listing/listing-detail.tsx",
          "lib/mock-auth.ts",
          "messages/en.json",
          "messages/es.json"
        ]
      },
      {
        "name": "fingerprint",
        "confidence": "medium",
        "evidence_paths": [
          "app/llms-index.json/route.ts",
          "app/llms.txt/route.ts",
          "app/security/page.tsx",
          "hooks/use-fingerprint.ts",
          "lib/config.ts",
          "lib/integrations/claws.ts",
          "lib/integrations/fingerprint.ts",
          "lib/integrations/index.ts"
        ]
      },
      {
        "name": "health",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/docs/route.ts",
          "app/api/health/route.ts",
          "app/llms-index.json/route.ts",
          "lib/mock-data.ts",
          "tests/api/health.test.ts",
          "tests/integration/full-suite.test.ts",
          "tests/navigation/routes.test.ts"
        ]
      },
      {
        "name": "ip address",
        "confidence": "medium",
        "evidence_paths": [
          "app/privacy/page.tsx"
        ]
      },
      {
        "name": "location",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/docs/route.ts",
          "app/api/v1/listings/[id]/route.ts",
          "app/api/v1/listings/route.ts",
          "app/auth/login/page.tsx",
          "app/auth/sign-up/page.tsx",
          "app/checkout/[orderId]/page.tsx",
          "app/llms-full.txt/route.ts",
          "app/not-found.tsx",
          "app/privacy/page.tsx",
          "app/security/page.tsx",
          "app/seller/onboarding/page.tsx",
          "app/store/[slug]/page.tsx",
          "components/checkout/checkout-form.tsx",
          "components/layout/top-bar.tsx",
          "components/listing/bidding-panel.tsx",
          "components/listing/create-listing-form.tsx",
          "components/listing/listing-detail.tsx",
          "components/listing/listing-filters.tsx",
          "components/notifications/notification-bell.tsx",
          "docs/SEO-ACCESSIBILITY-ROADMAP.md"
        ]
      },
      {
        "name": "oauth",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/v1/import/ebay/route.ts",
          "app/llms.txt/route.ts",
          "app/security/page.tsx",
          "components/import/ebay-import-wizard.tsx",
          "scripts/schema-enrichment.sql",
          "tests/e2e/flows.test.ts",
          "tests/features/ebay-import.test.ts"
        ]
      },
      {
        "name": "password",
        "confidence": "medium",
        "evidence_paths": [
          "app/auth/login/page.tsx",
          "app/auth/sign-up/page.tsx",
          "app/security/page.tsx",
          "lib/mock-auth.ts",
          "messages/en.json",
          "messages/es.json",
          "tests/e2e/flows.test.ts",
          "tests/setup.ts"
        ]
      },
      {
        "name": "payment",
        "confidence": "medium",
        "evidence_paths": [
          "app/actions/stripe.ts",
          "app/api/v1/checkout/route.ts",
          "app/api/v1/orders/route.ts",
          "app/api/webhooks/stripe/route.ts",
          "app/checkout/[orderId]/page.tsx",
          "app/docs/page.tsx",
          "app/docs/testing/page.tsx",
          "app/faq/page.tsx",
          "app/llms-full.txt/route.ts",
          "app/llms-index.json/route.ts",
          "app/llms.txt/route.ts",
          "app/page.tsx",
          "app/privacy/page.tsx",
          "app/roadmap/page.tsx",
          "app/security/page.tsx",
          "app/seller/onboarding/page.tsx",
          "app/terms/page.tsx",
          "components/checkout/checkout-form.tsx",
          "components/layout/sidebar.tsx",
          "components/listing/bidding-panel.tsx"
        ]
      },
      {
        "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": [
          "app/api/docs/route.ts",
          "app/api/v1/import/ebay/route.ts",
          "app/docs/page.tsx",
          "app/faq/page.tsx",
          "app/globals.css",
          "app/llms-full.txt/route.ts",
          "app/llms-index.json/route.ts",
          "app/llms.txt/route.ts",
          "app/security/page.tsx",
          "lib/mock-auth.ts",
          "pnpm-lock.yaml",
          "scripts/setup.sql",
          "tests/e2e/flows.test.ts",
          "tests/features/ebay-import.test.ts",
          "types/database.ts"
        ]
      }
    ]
  },
  "generated_at": "2026-05-16T16:44:12.772Z"
}
