{
  "schema_version": "1.0.0",
  "scanner": {
    "name": "global-capability-catalog",
    "version": "0.1.0"
  },
  "repo": {
    "id": "github-recent__mbarbine__mailthing-main",
    "name": "mbarbine__mailthing-main",
    "path": "/Users/bwm.barbinewarnermichael/Documents/github/repositories/github-recent/mbarbine__mailthing-main",
    "relative_path": "github-recent/mbarbine__mailthing-main",
    "remote_url": "git@github.com:mbarbine/mailthing-main.git",
    "default_branch": "main",
    "current_commit": "37e969e415ee338476a47363cca20b4d4f48cf9d"
  },
  "languages": [
    {
      "language": "TypeScript",
      "files": 95,
      "bytes": 287894
    },
    {
      "language": "YAML",
      "files": 1,
      "bytes": 150755
    },
    {
      "language": "JSON",
      "files": 6,
      "bytes": 42589
    },
    {
      "language": "SQL",
      "files": 3,
      "bytes": 36147
    },
    {
      "language": "Markdown",
      "files": 1,
      "bytes": 15599
    },
    {
      "language": "TOML",
      "files": 1,
      "bytes": 6196
    },
    {
      "language": "CSS",
      "files": 5,
      "bytes": 3889
    },
    {
      "language": "JavaScript",
      "files": 2,
      "bytes": 1070
    }
  ],
  "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"
      ]
    }
  ],
  "packages": {
    "package_manager": "pnpm",
    "manifests": [
      {
        "path": "package.json",
        "name": null,
        "version": null,
        "scripts": {
          "dev": "next dev --turbo",
          "build": "next build",
          "start": "next start",
          "lint": "next lint",
          "prettier-fix": "prettier --write .",
          "stripe:login": "stripe login",
          "stripe:listen": "stripe listen --forward-to=localhost:3000/api/webhooks",
          "stripe:fixtures": "stripe fixtures fixtures/stripe-fixtures.json",
          "supabase:start": "npx supabase start",
          "supabase:stop": "npx supabase stop",
          "supabase:status": "npx supabase status",
          "supabase:restart": "npm run supabase:stop && npm run supabase:start",
          "supabase:reset": "npx supabase db reset",
          "supabase:link": "npx supabase link",
          "supabase:generate-types": "npx supabase gen types typescript --local --schema public > types_db.ts",
          "supabase:generate-migration": "npx supabase db diff | npx supabase migration new",
          "supabase:generate-seed": "npx supabase db dump --data-only -f supabase/seed.sql",
          "supabase:push": "npx supabase db push",
          "supabase:pull": "npx supabase db pull"
        },
        "dependencies": {
          "@auth0/auth0-react": "^2.2.4",
          "@radix-ui/react-toast": "^1.2.4",
          "@stripe/react-stripe-js": "^3.1.1",
          "@stripe/stripe-js": "2.4.0",
          "@supabase/ssr": "^0.1.0",
          "@supabase/supabase-js": "^2.47.10",
          "axios": "^1.7.9",
          "class-variance-authority": "^0.7.1",
          "classnames": "^2.5.1",
          "clean": "^4.0.2",
          "clsx": "^2.1.1",
          "jspdf": "^2.5.2",
          "lucide-react": "0.330.0",
          "micro": "^10.0.1",
          "next": "14.2.3",
          "react": "^18.3.1",
          "react-dom": "^18.3.1",
          "react-merge-refs": "^2.1.1",
          "stripe": "^14.25.0",
          "tailwind-merge": "^2.6.0",
          "tailwindcss": "^3.4.17",
          "tailwindcss-animate": "^1.0.7"
        },
        "dev_dependencies": {
          "@types/node": "^20.17.10",
          "@types/react": "^18.3.18",
          "@types/react-dom": "^18.3.5",
          "autoprefixer": "^10.4.20",
          "eslint": "^8.57.1",
          "eslint-config-next": "14.1.0",
          "eslint-config-prettier": "^9.1.0",
          "eslint-plugin-react": "^7.37.3",
          "eslint-plugin-tailwindcss": "^3.17.5",
          "postcss": "^8.4.49",
          "prettier": "^3.4.2",
          "prettier-plugin-tailwindcss": "^0.5.14",
          "supabase": "^1.226.4",
          "typescript": "^5.7.2"
        }
      }
    ]
  },
  "routes": {
    "api_routes": [
      {
        "route": "/callback",
        "source_path": "app/api/callback/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/webhooks",
        "source_path": "app/api/webhooks/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      }
    ],
    "app_routes": [
      {
        "route": "/account",
        "source_path": "app/account/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/mailthing/addresses",
        "source_path": "app/mailthing/addresses/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/mailthing/campaigns",
        "source_path": "app/mailthing/campaigns/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/mailthing/letters",
        "source_path": "app/mailthing/letters/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/mailthing",
        "source_path": "app/mailthing/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/mailthing/postcards",
        "source_path": "app/mailthing/postcards/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/mailthing/pricing",
        "source_path": "app/mailthing/pricing/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/pricing",
        "source_path": "app/pricing/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/signin/[id]",
        "source_path": "app/signin/[id]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/signin",
        "source_path": "app/signin/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      }
    ]
  },
  "components": [
    {
      "name": "GitHub",
      "kind": "ui-component",
      "source_path": "components/icons/GitHub.tsx"
    },
    {
      "name": "Logo",
      "kind": "ui-component",
      "source_path": "components/icons/Logo.tsx"
    },
    {
      "name": "CustomerPortalForm",
      "kind": "ui-component",
      "source_path": "components/ui/AccountForms/CustomerPortalForm.tsx"
    },
    {
      "name": "EmailForm",
      "kind": "ui-component",
      "source_path": "components/ui/AccountForms/EmailForm.tsx"
    },
    {
      "name": "NameForm",
      "kind": "ui-component",
      "source_path": "components/ui/AccountForms/NameForm.tsx"
    },
    {
      "name": "EmailSignIn",
      "kind": "ui-component",
      "source_path": "components/ui/AuthForms/EmailSignIn.tsx"
    },
    {
      "name": "ForgotPassword",
      "kind": "ui-component",
      "source_path": "components/ui/AuthForms/ForgotPassword.tsx"
    },
    {
      "name": "OauthSignIn",
      "kind": "ui-component",
      "source_path": "components/ui/AuthForms/OauthSignIn.tsx"
    },
    {
      "name": "PasswordSignIn",
      "kind": "ui-component",
      "source_path": "components/ui/AuthForms/PasswordSignIn.tsx"
    },
    {
      "name": "Separator",
      "kind": "ui-component",
      "source_path": "components/ui/AuthForms/Separator.tsx"
    },
    {
      "name": "Signup",
      "kind": "ui-component",
      "source_path": "components/ui/AuthForms/Signup.tsx"
    },
    {
      "name": "UpdatePassword",
      "kind": "ui-component",
      "source_path": "components/ui/AuthForms/UpdatePassword.tsx"
    },
    {
      "name": "Button",
      "kind": "ui-component",
      "source_path": "components/ui/Button/Button.tsx"
    },
    {
      "name": "Card",
      "kind": "ui-component",
      "source_path": "components/ui/Card/Card.tsx"
    },
    {
      "name": "Footer",
      "kind": "ui-component",
      "source_path": "components/ui/Footer/Footer.tsx"
    },
    {
      "name": "Input",
      "kind": "ui-component",
      "source_path": "components/ui/Input/Input.tsx"
    },
    {
      "name": "LoadingDots",
      "kind": "ui-component",
      "source_path": "components/ui/LoadingDots/LoadingDots.tsx"
    },
    {
      "name": "Navbar",
      "kind": "ui-component",
      "source_path": "components/ui/Navbar/Navbar.tsx"
    },
    {
      "name": "Navlinks",
      "kind": "ui-component",
      "source_path": "components/ui/Navbar/Navlinks.tsx"
    },
    {
      "name": "Pricing",
      "kind": "ui-component",
      "source_path": "components/ui/Pricing/Pricing.tsx"
    },
    {
      "name": "toast",
      "kind": "ui-component",
      "source_path": "components/ui/Toasts/toast.tsx"
    },
    {
      "name": "toaster",
      "kind": "ui-component",
      "source_path": "components/ui/Toasts/toaster.tsx"
    }
  ],
  "data_models": [
    {
      "name": "schema",
      "kind": "schema-file",
      "source_path": "schema.sql"
    },
    {
      "name": "20241230200243_remote_schema",
      "kind": "migration",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql"
    }
  ],
  "database": {
    "databases": [],
    "schemas": [
      {
        "path": "schema.sql"
      },
      {
        "path": "supabase/migrations/20241230200243_remote_schema.sql"
      }
    ],
    "migrations": [
      {
        "path": "supabase/migrations/20241230200243_remote_schema.sql"
      }
    ]
  },
  "tests": [],
  "ci": {
    "workflows": []
  },
  "containers": {
    "dockerfiles": [],
    "compose_files": []
  },
  "env": {
    "example_files": [],
    "variables": [
      {
        "name": "MODE",
        "source_paths": [
          "utils/logger.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_SITE_URL",
        "source_paths": [
          "utils/helpers.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_STANNP_API_KEY",
        "source_paths": [
          ".archive/page.tsx",
          ".archive/StannpClientInit.tsx",
          ".archive/StannpForms/Addresses.tsx",
          ".archive/StannpForms/Campaigns.tsx"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY",
        "source_paths": [
          "utils/stripe/client.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY_LIVE",
        "source_paths": [
          "utils/stripe/client.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PUBLIC_SUPABASE_ANON_KEY",
        "source_paths": [
          "utils/supabase/client.ts",
          "utils/supabase/middleware.ts",
          "utils/supabase/server.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PUBLIC_SUPABASE_URL",
        "source_paths": [
          "utils/supabase/admin.ts",
          "utils/supabase/client.ts",
          "utils/supabase/middleware.ts",
          "utils/supabase/server.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_VERCEL_URL",
        "source_paths": [
          "utils/helpers.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NODE_ENV",
        "source_paths": [
          "utils/logger.ts",
          "utils/stannp/api.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "STANNP_API_KEY",
        "source_paths": [
          ".archive/stannp/recipients.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "STRIPE_PUBLIC_KEY",
        "source_paths": [
          ".archive/StannpForms/PaymentFlow.tsx"
        ],
        "likely_secret": true
      },
      {
        "name": "STRIPE_SECRET_KEY",
        "source_paths": [
          "utils/stripe/config.ts",
          "utils/stripe/webhook.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "STRIPE_SECRET_KEY_LIVE",
        "source_paths": [
          "utils/stripe/config.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "STRIPE_WEBHOOK_SECRET",
        "source_paths": [
          "app/api/callback/route.ts",
          "app/api/webhooks/route.ts",
          "utils/stripe/webhook.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "SUPABASE_SERVICE_ROLE_KEY",
        "source_paths": [
          "utils/supabase/admin.ts"
        ],
        "likely_secret": true
      }
    ]
  },
  "configs": [
    {
      "path": "package.json"
    },
    {
      "path": "postcss.config.js"
    },
    {
      "path": "public/vercel.svg"
    },
    {
      "path": "tailwind.config.js"
    },
    {
      "path": "tsconfig.json"
    }
  ],
  "docs": {
    "readme_paths": [
      {
        "path": "README.md"
      }
    ],
    "doc_paths": [],
    "llms_context_paths": []
  },
  "discovery_files": {
    "openapi": [],
    "mcp": [],
    "llms": [],
    "sitemaps": [],
    "feeds": [],
    "well_known": [],
    "robots": [],
    "manifests": []
  },
  "integrations": [
    {
      "name": "Stannp",
      "confidence": "medium",
      "evidence_paths": [
        ".archive/page.tsx",
        ".archive/stannp/recipients.ts",
        ".archive/StannpClientInit.tsx",
        ".archive/StannpForms/Addresses.tsx",
        ".archive/StannpForms/Campaigns.tsx",
        "package.json"
      ]
    },
    {
      "name": "Stripe",
      "confidence": "medium",
      "evidence_paths": [
        ".archive/StannpForms/PaymentFlow.tsx",
        ".archive/StannpForms/PaymentForm.tsx",
        "app/api/callback/route.ts",
        "app/api/webhooks/route.ts",
        "app/pricing/page.tsx",
        "components/ui/AccountForms/CustomerPortalForm.tsx",
        "components/ui/Pricing/Pricing.tsx",
        "global.d.ts",
        "package.json",
        "pnpm-lock.yaml",
        "README.md",
        "utils/stripe/client.ts",
        "utils/stripe/config.ts",
        "utils/stripe/webhook.ts"
      ]
    },
    {
      "name": "Supabase",
      "confidence": "medium",
      "evidence_paths": [
        "app/account/page.tsx",
        "app/api/callback/route.ts",
        "app/api/webhooks/route.ts",
        "app/auth/callback/route.ts",
        "app/auth/reset_password/route.ts",
        "app/mailthing/addresses/page.tsx",
        "app/page.tsx",
        "app/signin/[id]/page.tsx",
        "components/ui/AuthForms/OauthSignIn.tsx",
        "components/ui/Pricing/Pricing.tsx",
        "package.json",
        "pnpm-lock.yaml",
        "README.md",
        "utils/auth-helpers/client.ts",
        "utils/supabase/admin.ts",
        "utils/supabase/client.ts",
        "utils/supabase/middleware.ts",
        "utils/supabase/server.ts"
      ]
    },
    {
      "name": "Vercel",
      "confidence": "medium",
      "evidence_paths": [
        "package.json",
        "utils/helpers.ts"
      ]
    }
  ],
  "license": {
    "spdx": "MIT",
    "paths": [
      {
        "path": "LICENSE"
      }
    ]
  },
  "comments": [
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 161,
      "text": "deprecated: Use @eslint/config-array instead"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 169,
      "text": "deprecated: Use @eslint/object-schema instead"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 1046,
      "text": "deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options."
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 1190,
      "text": "deprecated: Glob versions prior to v9 are no longer supported"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 1271,
      "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": "pnpm-lock.yaml",
      "line": 1904,
      "text": "deprecated: Rimraf versions prior to v4 are no longer supported"
    },
    {
      "kind": "security",
      "source_path": "README.md",
      "line": 143,
      "text": "Running this command will create a new `.env.local` file in your project folder. For security purposes, you will need to set the `SUPABASE_SERVICE_ROLE_KEY` manually from your [Supabase dashboard](https://app.supabase.io/) (`Settings > API`"
    },
    {
      "kind": "security",
      "source_path": "schema.sql",
      "line": 109,
      "text": "LANGUAGE \"plpgsql\" SECURITY DEFINER"
    },
    {
      "kind": "security",
      "source_path": "schema.sql",
      "line": 134,
      "text": "LANGUAGE \"plpgsql\" SECURITY DEFINER"
    },
    {
      "kind": "security",
      "source_path": "schema.sql",
      "line": 504,
      "text": "ALTER TABLE \"public\".\"addresses\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "schema.sql",
      "line": 507,
      "text": "ALTER TABLE \"public\".\"customers\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "schema.sql",
      "line": 510,
      "text": "ALTER TABLE \"public\".\"letters\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "schema.sql",
      "line": 513,
      "text": "ALTER TABLE \"public\".\"postcards\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "schema.sql",
      "line": 516,
      "text": "ALTER TABLE \"public\".\"prices\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "schema.sql",
      "line": 519,
      "text": "ALTER TABLE \"public\".\"products\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "schema.sql",
      "line": 522,
      "text": "ALTER TABLE \"public\".\"profiles\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "schema.sql",
      "line": 525,
      "text": "ALTER TABLE \"public\".\"recipients\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "schema.sql",
      "line": 528,
      "text": "ALTER TABLE \"public\".\"subscriptions\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "schema.sql",
      "line": 531,
      "text": "ALTER TABLE \"public\".\"users\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "deprecated",
      "source_path": "supabase/config.toml",
      "line": 148,
      "text": "# Experimental features may be deprecated any time"
    },
    {
      "kind": "security",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql",
      "line": 117,
      "text": "LANGUAGE \"plpgsql\" SECURITY DEFINER"
    },
    {
      "kind": "security",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql",
      "line": 142,
      "text": "LANGUAGE \"plpgsql\" SECURITY DEFINER"
    },
    {
      "kind": "security",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql",
      "line": 500,
      "text": "ALTER TABLE \"public\".\"addresses\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql",
      "line": 503,
      "text": "ALTER TABLE \"public\".\"customers\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql",
      "line": 506,
      "text": "ALTER TABLE \"public\".\"letters\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql",
      "line": 509,
      "text": "ALTER TABLE \"public\".\"postcards\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql",
      "line": 512,
      "text": "ALTER TABLE \"public\".\"prices\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql",
      "line": 515,
      "text": "ALTER TABLE \"public\".\"products\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql",
      "line": 518,
      "text": "ALTER TABLE \"public\".\"profiles\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql",
      "line": 521,
      "text": "ALTER TABLE \"public\".\"recipients\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql",
      "line": 524,
      "text": "ALTER TABLE \"public\".\"subscriptions\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "supabase/migrations/20241230200243_remote_schema.sql",
      "line": 527,
      "text": "ALTER TABLE \"public\".\"users\" ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "todo",
      "source_path": "utils/supabase/admin.ts",
      "line": 195,
      "text": "//Todo: check this assertion"
    },
    {
      "kind": "todo",
      "source_path": "utils/supabase/admin.ts",
      "line": 238,
      "text": "//TODO check quantity on subscription"
    }
  ],
  "security": {
    "secret_risks": [],
    "unsafe_patterns": [
      {
        "name": "sql-injection-review-needed",
        "confidence": "medium",
        "evidence_paths": [
          "app/auth/reset_password/route.ts"
        ]
      },
      {
        "name": "ssrf-review-needed",
        "confidence": "medium",
        "evidence_paths": [
          ".archive/api.ts",
          "utils/helpers.ts",
          "utils/stannp/api.ts"
        ]
      }
    ],
    "sensitive_data_indicators": [
      {
        "name": "api_key",
        "confidence": "medium",
        "evidence_paths": [
          ".archive/page.tsx",
          ".archive/stannp/recipients.ts",
          ".archive/StannpClientInit.tsx",
          ".archive/StannpForms/Addresses.tsx",
          ".archive/StannpForms/Campaigns.tsx",
          "postman_schema.json",
          "utils/stannp/api.ts"
        ]
      },
      {
        "name": "card",
        "confidence": "medium",
        "evidence_paths": [
          ".archive/api.ts",
          ".archive/page.tsx",
          ".archive/postcards/index.ts",
          ".archive/StannpForms/Calc.tsx",
          ".archive/StannpForms/PaymentFlow.tsx",
          ".archive/StannpForms/PaymentForm.tsx",
          ".archive/StannpForms/SendPostcard.tsx",
          "app/layout.tsx",
          "app/mailthing/page.tsx",
          "app/mailthing/postcards/page.tsx",
          "app/mailthing/pricing/page.tsx",
          "app/page.tsx",
          "app/signin/[id]/page.tsx",
          "components/ui/AccountForms/CustomerPortalForm.tsx",
          "components/ui/AccountForms/EmailForm.tsx",
          "components/ui/AccountForms/NameForm.tsx",
          "components/ui/Card/Card.tsx",
          "components/ui/Card/index.ts",
          "postman_schema.json",
          "README.md"
        ]
      },
      {
        "name": "email",
        "confidence": "medium",
        "evidence_paths": [
          ".archive/StannpForms/CreditsCheckout.tsx",
          ".archive/StannpForms/Home.tsx",
          ".archive/StannpForms/NewUserFlow.tsx",
          ".archive/StannpForms/PaymentFlow.tsx",
          ".archive/StannpForms/ReturningUserDashboard.tsx",
          ".archive/StannpForms/SendLetter.tsx",
          ".archive/StannpForms/UserPortal.tsx",
          ".archive/tracking/index.ts",
          "app/account/page.tsx",
          "app/mailthing/addresses/page.tsx",
          "app/page.tsx",
          "app/pricing/page.tsx",
          "app/signin/[id]/page.tsx",
          "components/ui/AccountForms/EmailForm.tsx",
          "components/ui/AuthForms/EmailSignIn.tsx",
          "components/ui/AuthForms/ForgotPassword.tsx",
          "components/ui/AuthForms/PasswordSignIn.tsx",
          "components/ui/AuthForms/Signup.tsx",
          "postman_schema.json",
          "README.md"
        ]
      },
      {
        "name": "location",
        "confidence": "medium",
        "evidence_paths": [
          ".archive/StannpForms/Logout.tsx"
        ]
      },
      {
        "name": "oauth",
        "confidence": "medium",
        "evidence_paths": [
          "app/signin/[id]/page.tsx",
          "components/ui/AuthForms/OauthSignIn.tsx",
          "README.md",
          "supabase/config.toml",
          "utils/auth-helpers/client.ts",
          "utils/auth-helpers/settings.ts"
        ]
      },
      {
        "name": "password",
        "confidence": "medium",
        "evidence_paths": [
          "app/auth/reset_password/route.ts",
          "app/signin/[id]/page.tsx",
          "components/ui/AuthForms/EmailSignIn.tsx",
          "components/ui/AuthForms/ForgotPassword.tsx",
          "components/ui/AuthForms/PasswordSignIn.tsx",
          "components/ui/AuthForms/Signup.tsx",
          "components/ui/AuthForms/UpdatePassword.tsx",
          "README.md",
          "utils/auth-helpers/server.ts",
          "utils/auth-helpers/settings.ts",
          "utils/stannp/api.ts"
        ]
      },
      {
        "name": "payment",
        "confidence": "medium",
        "evidence_paths": [
          ".archive/StannpForms/NewUserFlow.tsx",
          ".archive/StannpForms/PaymentFlow.tsx",
          ".archive/StannpForms/PaymentForm.tsx",
          ".archive/StannpForms/ReturningUserDashboard.tsx",
          "app/pricing/page.tsx",
          "README.md",
          "schema.sql",
          "supabase/migrations/20241230200243_remote_schema.sql",
          "utils/stripe/server.ts",
          "utils/stripe/webhook.ts",
          "utils/supabase/admin.ts"
        ]
      },
      {
        "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": [
          ".archive/api.ts",
          ".archive/page.tsx",
          ".archive/stannp/recipients.ts",
          ".archive/StannpClientInit.tsx",
          ".archive/StannpForms/Addresses.tsx",
          ".archive/StannpForms/Campaigns.tsx",
          ".archive/StannpForms/CreditsCheckout.tsx",
          ".archive/StannpForms/ReturningUserDashboard.tsx",
          ".archive/StannpForms/Tracking.tsx",
          "pnpm-lock.yaml",
          "supabase/config.toml"
        ]
      }
    ]
  },
  "generated_at": "2026-05-16T16:44:10.424Z"
}
