{
  "schema_version": "1.0.0",
  "scanner": {
    "name": "global-capability-catalog",
    "version": "0.1.0"
  },
  "repo": {
    "id": "github-recent__ph3ar__mailthing-webby",
    "name": "ph3ar__mailthing-webby",
    "path": "/Users/bwm.barbinewarnermichael/Documents/github/repositories/github-recent/ph3ar__mailthing-webby",
    "relative_path": "github-recent/ph3ar__mailthing-webby",
    "remote_url": "git@github.com:ph3ar/mailthing-webby.git",
    "default_branch": "main",
    "current_commit": "f7e8990688ed82de8ed8e893993988db36ee1622"
  },
  "languages": [
    {
      "language": "JSON",
      "files": 7,
      "bytes": 420904
    },
    {
      "language": "TypeScript",
      "files": 85,
      "bytes": 152622
    },
    {
      "language": "SQL",
      "files": 17,
      "bytes": 142202
    },
    {
      "language": "Markdown",
      "files": 4,
      "bytes": 5359
    },
    {
      "language": "CSS",
      "files": 1,
      "bytes": 4724
    },
    {
      "language": "TOML",
      "files": 1,
      "bytes": 3886
    },
    {
      "language": "Prisma",
      "files": 1,
      "bytes": 3712
    },
    {
      "language": "JavaScript",
      "files": 4,
      "bytes": 2574
    },
    {
      "language": "XML",
      "files": 1,
      "bytes": 526
    }
  ],
  "frameworks": [
    {
      "name": "Next.js",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "Prisma",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "React",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "Tailwind CSS",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    }
  ],
  "packages": {
    "package_manager": "npm",
    "manifests": [
      {
        "path": "package.json",
        "name": "mail-thing",
        "version": "0.1.0",
        "scripts": {
          "dev": "next dev",
          "build": "next build",
          "start": "next start",
          "lint": "next lint"
        },
        "dependencies": {
          "@next-auth/prisma-adapter": "^1.0.7",
          "@next-auth/supabase-adapter": "^0.2.1",
          "@prisma/client": "^5.20.0",
          "@radix-ui/react-alert-dialog": "^1.1.2",
          "@radix-ui/react-icons": "^1.3.0",
          "@radix-ui/react-label": "^2.1.0",
          "@radix-ui/react-separator": "^1.1.0",
          "@radix-ui/react-slot": "^1.1.0",
          "@radix-ui/react-toast": "^1.2.2",
          "@supabase/auth-helpers-nextjs": "^0.10.0",
          "@supabase/auth-helpers-react": "^0.5.0",
          "@supabase/ssr": "^0.5.1",
          "@supabase/supabase-js": "^2.45.4",
          "@vercel/analytics": "^1.3.1",
          "@vercel/edge-config": "^1.3.0",
          "@vercel/speed-insights": "^1.0.12",
          "axios": "^1.7.7",
          "class-variance-authority": "^0.7.0",
          "clsx": "^2.1.1",
          "lucide-react": "^0.447.0",
          "micro": "^10.0.1",
          "multer": "1.4.5-lts.1",
          "next": "14.2.35",
          "next-auth": "^4.24.8",
          "next-themes": "^0.3.0",
          "nodemailer": "^7.0.7",
          "nookies": "^2.5.2",
          "pdf-lib": "^1.17.1",
          "prisma": "^5.20.0",
          "react": "^18.3.1",
          "react-dom": "^18.3.1",
          "react-hook-form": "^7.53.0",
          "react-pdf": "^5.7.2",
          "sharp": "^0.33.5",
          "stripe": "^16.12.0",
          "tailwind-merge": "^2.5.2",
          "tailwindcss": "^3.4.13",
          "tailwindcss-animate": "^1.0.7",
          "uuid": "^10.0.0"
        },
        "dev_dependencies": {
          "@stripe/stripe-js": "^4.6.0",
          "@types/multer": "^1.4.12",
          "@types/next": "^9.0.0",
          "@types/node": "^20.16.10",
          "@types/pdfkit": "^0.13.5",
          "@types/react": "^18.3.10",
          "@types/react-dom": "^18.3.0",
          "@types/uuid": "^10.0.0",
          "autoprefixer": "^10.4.20",
          "eslint": "^8.57.1",
          "eslint-config-next": "14.2.5",
          "fs": "0.0.1-security",
          "install": "^0.13.0",
          "npm": "^10.8.3",
          "pdfkit": "^0.15.0",
          "postcss": "^8.4.47",
          "typescript": "^5.6.2"
        }
      }
    ]
  },
  "routes": {
    "api_routes": [],
    "app_routes": [
      {
        "route": "/_app",
        "source_path": "pages/_app.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/about",
        "source_path": "pages/about.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/auth/error",
        "source_path": "pages/auth/error.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/auth/login",
        "source_path": "pages/auth/login.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/auth/sign-out",
        "source_path": "pages/auth/sign-out.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/auth/signup",
        "source_path": "pages/auth/signup.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/auth/verify",
        "source_path": "pages/auth/verify.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/campaigns",
        "source_path": "pages/campaigns.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/campaigns/page",
        "source_path": "pages/campaigns/page.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/compose",
        "source_path": "pages/compose.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/contact",
        "source_path": "pages/contact.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/credit",
        "source_path": "pages/credit.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/dashboard",
        "source_path": "pages/dashboard.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/index",
        "source_path": "pages/index.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/layout",
        "source_path": "pages/layout.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/recipients",
        "source_path": "pages/recipients.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/recipients/page",
        "source_path": "pages/recipients/page.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/settings",
        "source_path": "pages/settings.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/tracking",
        "source_path": "pages/tracking.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/upload/page",
        "source_path": "pages/upload/page.tsx",
        "kind": "next-pages-route",
        "methods": [
          "GET"
        ]
      }
    ]
  },
  "components": [
    {
      "name": "LoginForm",
      "kind": "ui-component",
      "source_path": "components/auth/LoginForm.tsx"
    },
    {
      "name": "SignOut",
      "kind": "ui-component",
      "source_path": "components/auth/SignOut.tsx"
    },
    {
      "name": "SignUpForm",
      "kind": "ui-component",
      "source_path": "components/auth/SignUpForm.tsx"
    },
    {
      "name": "CampaignForm",
      "kind": "ui-component",
      "source_path": "components/CampaignForm.tsx"
    },
    {
      "name": "CampaignList",
      "kind": "ui-component",
      "source_path": "components/CampaignList.tsx"
    },
    {
      "name": "CampaignForm",
      "kind": "ui-component",
      "source_path": "components/campaigns/CampaignForm.tsx"
    },
    {
      "name": "CampaignList",
      "kind": "ui-component",
      "source_path": "components/campaigns/CampaignList.tsx"
    },
    {
      "name": "Editor",
      "kind": "ui-component",
      "source_path": "components/Editor.tsx"
    },
    {
      "name": "FilePreview",
      "kind": "ui-component",
      "source_path": "components/FilePreview.tsx"
    },
    {
      "name": "FileUpload",
      "kind": "ui-component",
      "source_path": "components/FileUpload.tsx"
    },
    {
      "name": "Footer",
      "kind": "ui-component",
      "source_path": "components/Footer.tsx"
    },
    {
      "name": "ComposeMail",
      "kind": "ui-component",
      "source_path": "components/mail/ComposeMail.tsx"
    },
    {
      "name": "MailItem",
      "kind": "ui-component",
      "source_path": "components/MailItem.tsx"
    },
    {
      "name": "MailPreview",
      "kind": "ui-component",
      "source_path": "components/MailPreview.tsx"
    },
    {
      "name": "NavBar",
      "kind": "ui-component",
      "source_path": "components/NavBar.tsx"
    },
    {
      "name": "CreditsPage",
      "kind": "ui-component",
      "source_path": "components/payments/CreditsPage.tsx"
    },
    {
      "name": "RecipientForm",
      "kind": "ui-component",
      "source_path": "components/RecipientForm.tsx"
    },
    {
      "name": "RecipientList",
      "kind": "ui-component",
      "source_path": "components/RecipientList.tsx"
    },
    {
      "name": "RecipientForm",
      "kind": "ui-component",
      "source_path": "components/recipients/RecipientForm.tsx"
    },
    {
      "name": "RecipientList",
      "kind": "ui-component",
      "source_path": "components/recipients/RecipientList.tsx"
    },
    {
      "name": "SettingsForm",
      "kind": "ui-component",
      "source_path": "components/settings/SettingsForm.tsx"
    },
    {
      "name": "TrackingDashboard",
      "kind": "ui-component",
      "source_path": "components/TrackingDashboard.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": "button",
      "kind": "ui-component",
      "source_path": "components/ui/button.tsx"
    },
    {
      "name": "card",
      "kind": "ui-component",
      "source_path": "components/ui/card.tsx"
    },
    {
      "name": "input",
      "kind": "ui-component",
      "source_path": "components/ui/input.tsx"
    },
    {
      "name": "label",
      "kind": "ui-component",
      "source_path": "components/ui/label.tsx"
    },
    {
      "name": "separator",
      "kind": "ui-component",
      "source_path": "components/ui/separator.tsx"
    },
    {
      "name": "UploadForm",
      "kind": "ui-component",
      "source_path": "components/UploadForm.tsx"
    }
  ],
  "data_models": [
    {
      "name": "schema",
      "kind": "prisma-schema",
      "source_path": "prisma/schema.prisma"
    },
    {
      "name": "20241002034444_hustle",
      "kind": "migration",
      "source_path": "supabase/migrations/20241002034444_hustle.sql"
    }
  ],
  "database": {
    "databases": [
      "prisma"
    ],
    "schemas": [
      {
        "path": "prisma/schema.prisma"
      },
      {
        "path": "supabase/archive/01_create_schema.sql"
      },
      {
        "path": "supabase/archive/02_update_schema.sql"
      },
      {
        "path": "supabase/archive/03_alter_schema.sql"
      },
      {
        "path": "supabase/archive/20241002024837_remote_schema.sql"
      }
    ],
    "migrations": [
      {
        "path": "supabase/migrations/20241002034444_hustle.sql"
      }
    ]
  },
  "tests": [],
  "ci": {
    "workflows": []
  },
  "containers": {
    "dockerfiles": [],
    "compose_files": []
  },
  "env": {
    "example_files": [],
    "variables": [
      {
        "name": "EMAIL_FROM",
        "source_paths": [
          "api/auth/[...nextauth].ts"
        ],
        "likely_secret": false
      },
      {
        "name": "EMAIL_SERVER_HOST",
        "source_paths": [
          "api/auth/[...nextauth].ts"
        ],
        "likely_secret": false
      },
      {
        "name": "EMAIL_SERVER_PASSWORD",
        "source_paths": [
          "api/auth/[...nextauth].ts"
        ],
        "likely_secret": true
      },
      {
        "name": "EMAIL_SERVER_PORT",
        "source_paths": [
          "api/auth/[...nextauth].ts"
        ],
        "likely_secret": false
      },
      {
        "name": "EMAIL_SERVER_USER",
        "source_paths": [
          "api/auth/[...nextauth].ts"
        ],
        "likely_secret": false
      },
      {
        "name": "GITHUB_CLIENT_ID",
        "source_paths": [
          "api/auth/[...nextauth].ts"
        ],
        "likely_secret": false
      },
      {
        "name": "GITHUB_CLIENT_SECRET",
        "source_paths": [
          "api/auth/[...nextauth].ts"
        ],
        "likely_secret": true
      },
      {
        "name": "GOOGLE_CLIENT_ID",
        "source_paths": [
          "api/auth/[...nextauth].ts"
        ],
        "likely_secret": false
      },
      {
        "name": "GOOGLE_CLIENT_SECRET",
        "source_paths": [
          "api/auth/[...nextauth].ts"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PUBLIC_API_BASE_URL",
        "source_paths": [
          "lib/apiClient.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY",
        "source_paths": [
          "components/payments/CreditsPage.tsx"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PUBLIC_SUPABASE_ANON_KEY",
        "source_paths": [
          "utils/supabaseClient.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PUBLIC_SUPABASE_URL",
        "source_paths": [
          "api/pdf/generate.ts",
          "api/webhooks/stripe.ts",
          "utils/pdfUtils.ts",
          "utils/supabaseClient.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXTAUTH_SECRET",
        "source_paths": [
          "api/auth/[...nextauth].ts",
          "middleware/authMiddleware.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "NODE_ENV",
        "source_paths": [
          "api/auth/[...nextauth].ts",
          "lib/auth.ts",
          "lib/logger.ts",
          "utils/logger.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "STANNP_API_KEY",
        "source_paths": [
          "api/stannp/route.ts",
          "lib/stannp.ts",
          "next.config.mjs",
          "utils/stannpApi.ts",
          "utils/stannpClient.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "STANNP_PUBLIC_KEY",
        "source_paths": [
          "next.config.mjs"
        ],
        "likely_secret": true
      },
      {
        "name": "STRIPE_PUBLIC_KEY",
        "source_paths": [
          "next.config.mjs"
        ],
        "likely_secret": true
      },
      {
        "name": "STRIPE_SECRET_KEY",
        "source_paths": [
          "api/webhooks/stripe.ts",
          "next.config.mjs",
          "utils/stripeClient.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "STRIPE_WEBHOOK_SECRET",
        "source_paths": [
          "api/stripe/webhook.ts",
          "api/webhooks/stripe.ts",
          "next.config.mjs"
        ],
        "likely_secret": true
      },
      {
        "name": "SUPABASE_ANON_KEY",
        "source_paths": [
          "next.config.mjs"
        ],
        "likely_secret": true
      },
      {
        "name": "SUPABASE_API_KEY",
        "source_paths": [
          "next.config.mjs"
        ],
        "likely_secret": true
      },
      {
        "name": "SUPABASE_SERVICE_ROLE_KEY",
        "source_paths": [
          "api/auth/[...nextauth].ts",
          "api/webhooks/stripe.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "SUPABASE_STORAGE",
        "source_paths": [
          "next.config.mjs"
        ],
        "likely_secret": false
      },
      {
        "name": "SUPABASE_URL",
        "source_paths": [
          "api/auth/[...nextauth].ts",
          "next.config.mjs"
        ],
        "likely_secret": false
      }
    ]
  },
  "configs": [
    {
      "path": "next.config.mjs"
    },
    {
      "path": "package.json"
    },
    {
      "path": "postcss.config.cjs"
    },
    {
      "path": "postcss.config.mjs"
    },
    {
      "path": "public/vercel.svg"
    },
    {
      "path": "tailwind.config.js"
    },
    {
      "path": "tailwind.config.ts"
    },
    {
      "path": "tsconfig.json"
    }
  ],
  "docs": {
    "readme_paths": [
      {
        "path": "README.md"
      }
    ],
    "doc_paths": [],
    "llms_context_paths": []
  },
  "discovery_files": {
    "openapi": [],
    "mcp": [],
    "llms": [],
    "sitemaps": [
      {
        "path": "public/sitemap.xml"
      }
    ],
    "feeds": [],
    "well_known": [],
    "robots": [
      {
        "path": "public/robots.txt"
      }
    ],
    "manifests": []
  },
  "integrations": [
    {
      "name": "Google",
      "confidence": "medium",
      "evidence_paths": [
        "api/auth/[...nextauth].ts",
        "package.json",
        "supabase/config.toml"
      ]
    },
    {
      "name": "Stannp",
      "confidence": "medium",
      "evidence_paths": [
        "api/stannp/route.ts",
        "lib/stannp.ts",
        "next.config.mjs",
        "package.json",
        "utils/stannpApi.ts",
        "utils/stannpClient.ts"
      ]
    },
    {
      "name": "Stripe",
      "confidence": "medium",
      "evidence_paths": [
        "api/stripe/create-checkout-session.ts",
        "api/stripe/webhook.ts",
        "api/webhooks/stripe.ts",
        "components/payments/CreditsPage.tsx",
        "next.config.mjs",
        "package-lock.json",
        "package.json",
        "prisma/schema.prisma",
        "supabase/archive/01_create_schema.sql",
        "utils/stripeClient.ts"
      ]
    },
    {
      "name": "Supabase",
      "confidence": "medium",
      "evidence_paths": [
        ".jules/bolt.md",
        "api/auth/[...nextauth].ts",
        "api/pdf/generate.ts",
        "api/webhooks/stripe.ts",
        "components/campaigns/CampaignForm.tsx",
        "components/campaigns/CampaignList.tsx",
        "components/mail/ComposeMail.tsx",
        "components/payments/CreditsPage.tsx",
        "components/recipients/RecipientForm.tsx",
        "components/recipients/RecipientList.tsx",
        "components/settings/SettingsForm.tsx",
        "next.config.mjs",
        "package-lock.json",
        "package.json",
        "pages/_app.tsx",
        "utils/pdfUtils.ts",
        "utils/supabaseClient.ts"
      ]
    },
    {
      "name": "Vercel",
      "confidence": "medium",
      "evidence_paths": [
        "components/auth/SignUpForm.tsx",
        "package-lock.json",
        "package.json",
        "pages/_app.tsx"
      ]
    }
  ],
  "license": {
    "spdx": null,
    "paths": []
  },
  "comments": [
    {
      "kind": "unsafe",
      "source_path": ".vscode/settings.json",
      "line": 16,
      "text": "\"unsafe-proto\","
    },
    {
      "kind": "security",
      "source_path": "package-lock.json",
      "line": 63,
      "text": "\"fs\": \"0.0.1-security\","
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 192,
      "text": "\"deprecated\": \"Use @eslint/config-array instead\","
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 222,
      "text": "\"deprecated\": \"Use @eslint/object-schema instead\","
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 1662,
      "text": "\"deprecated\": \"This package is now deprecated - please use the @supabase/ssr package instead.\","
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 1676,
      "text": "\"deprecated\": \"This package is now deprecated - please use the @supabase/ssr package instead.\","
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 1686,
      "text": "\"deprecated\": \"This package is now deprecated - please use the @supabase/ssr package instead.\","
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 1930,
      "text": "\"deprecated\": \"This is a stub types definition. next provides its own type definitions, so you do not need this installed.\","
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 4211,
      "text": "\"deprecated\": \"This version is no longer supported. Please see https://eslint.org/version-support for other options.\","
    },
    {
      "kind": "security",
      "source_path": "package-lock.json",
      "line": 4954,
      "text": "\"version\": \"0.0.1-security\","
    },
    {
      "kind": "security",
      "source_path": "package-lock.json",
      "line": 4955,
      "text": "\"resolved\": \"https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz\","
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 5112,
      "text": "\"deprecated\": \"Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by c"
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 5424,
      "text": "\"deprecated\": \"This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.\","
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 6020,
      "text": "\"deprecated\": \"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.\","
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 6461,
      "text": "\"deprecated\": \"Multer 1.x is impacted by a number of vulnerabilities, which have been patched in 2.x. You should upgrade to the latest 2.x version.\","
    },
    {
      "kind": "security",
      "source_path": "package.json",
      "line": 65,
      "text": "\"fs\": \"0.0.1-security\","
    }
  ],
  "security": {
    "secret_risks": [],
    "unsafe_patterns": [
      {
        "name": "ssrf-review-needed",
        "confidence": "medium",
        "evidence_paths": [
          "api/pdf/generate.ts",
          "utils/pdfUtils.ts"
        ]
      }
    ],
    "sensitive_data_indicators": [
      {
        "name": "api_key",
        "confidence": "medium",
        "evidence_paths": [
          "api/stannp/route.ts",
          "lib/stannp.ts",
          "next.config.mjs",
          "supabase/config.toml",
          "utils/stannpApi.ts",
          "utils/stannpClient.ts"
        ]
      },
      {
        "name": "card",
        "confidence": "medium",
        "evidence_paths": [
          "api/pdf/generate.ts",
          "api/stannp/route.ts",
          "api/stripe/create-checkout-session.ts",
          "components/auth/LoginForm.tsx",
          "components/auth/SignOut.tsx",
          "components/auth/SignUpForm.tsx",
          "components/Editor.tsx",
          "components/mail/ComposeMail.tsx",
          "components/MailPreview.tsx",
          "components/ui/card.tsx",
          "lib/stannp.ts",
          "pages/_app.tsx",
          "pages/about.tsx",
          "pages/auth/login.tsx",
          "pages/auth/signup.tsx",
          "pages/dashboard.tsx",
          "pages/index.tsx",
          "prisma/schema.prisma",
          "styles/globals.css",
          "supabase/archive/01_create_schema.sql"
        ]
      },
      {
        "name": "email",
        "confidence": "medium",
        "evidence_paths": [
          ".jules/bolt.md",
          "api/auth/[...nextauth].ts",
          "components/auth/LoginForm.tsx",
          "components/auth/SignUpForm.tsx",
          "components/mail/ComposeMail.tsx",
          "components/RecipientForm.tsx",
          "components/RecipientList.tsx",
          "components/settings/SettingsForm.tsx",
          "package-lock.json",
          "package.json",
          "pages/auth/login.tsx",
          "pages/auth/signup.tsx",
          "pages/auth/verify.tsx",
          "pages/compose.tsx",
          "pages/contact.tsx",
          "pages/dashboard.tsx",
          "prisma/schema.prisma",
          "supabase/archive/01_create_schema.sql",
          "supabase/archive/02_update_schema 2.sql",
          "supabase/archive/02_update_schema.sql"
        ]
      },
      {
        "name": "location",
        "confidence": "medium",
        "evidence_paths": [
          "lib/apiClient.ts",
          "pages/_app.tsx"
        ]
      },
      {
        "name": "oauth",
        "confidence": "medium",
        "evidence_paths": [
          "components/auth/LoginForm.tsx",
          "components/auth/SignOut.tsx",
          "package-lock.json"
        ]
      },
      {
        "name": "password",
        "confidence": "medium",
        "evidence_paths": [
          "api/auth/[...nextauth].ts",
          "components/auth/LoginForm.tsx",
          "components/auth/SignUpForm.tsx",
          "lib/stannp.ts",
          "pages/auth/login.tsx",
          "pages/auth/signup.tsx",
          "prisma/schema.prisma",
          "supabase/archive/01_create_schema.sql",
          "supabase/archive/02_update_schema 2.sql",
          "supabase/archive/02_update_schema.sql",
          "supabase/archive/03_alter_schema.sql",
          "supabase/archive/10012024-1028PM_create.sql",
          "supabase/archive/2024100202489_local_alter.sql",
          "supabase/archive/new.sql",
          "supabase/archive/seed 2.sql",
          "supabase/archive/seed.sql",
          "supabase/config.toml",
          "supabase/migrations/20241002034444_hustle.sql",
          "types/index.d.ts",
          "utils/stannpClient.ts"
        ]
      },
      {
        "name": "payment",
        "confidence": "medium",
        "evidence_paths": [
          "api/stripe/create-checkout-session.ts",
          "api/webhooks/stripe.ts",
          "components/payments/CreditsPage.tsx",
          "pages/credit.tsx",
          "prisma/schema.prisma",
          "supabase/archive/01_create_schema.sql",
          "supabase/archive/02_update_schema 2.sql",
          "supabase/archive/02_update_schema.sql",
          "supabase/archive/03_alter_schema 2.sql",
          "supabase/archive/03_alter_schema.sql",
          "supabase/archive/10012024-1028PM_create.sql",
          "supabase/archive/20241002024837_remote_schema.sql",
          "supabase/archive/2024100202489_local_alter.sql",
          "supabase/archive/20241002025802_alter.sql",
          "supabase/archive/alter.sql",
          "supabase/archive/new.sql",
          "supabase/archive/seed 2.sql",
          "supabase/archive/seed.sql",
          "supabase/migrations/20241002034444_hustle.sql",
          "types/index.d.ts"
        ]
      },
      {
        "name": "pii",
        "confidence": "medium",
        "evidence_paths": [
          "package-lock.json"
        ]
      },
      {
        "name": "secret-like environment variables",
        "confidence": "medium",
        "evidence_paths": [
          "package.json"
        ]
      },
      {
        "name": "token",
        "confidence": "medium",
        "evidence_paths": [
          "api/auth/[...nextauth].ts",
          "lib/apiClient.ts",
          "lib/auth.ts",
          "middleware/authMiddleware.ts",
          "package-lock.json",
          "supabase/config.toml"
        ]
      }
    ]
  },
  "generated_at": "2026-05-16T16:44:31.167Z"
}
