{
  "schema_version": "1.0.0",
  "scanner": {
    "name": "global-capability-catalog",
    "version": "0.1.0"
  },
  "repo": {
    "id": "github-recent__mbarbine__starphone-web-svelte",
    "name": "mbarbine__starphone-web-svelte",
    "path": "/Users/bwm.barbinewarnermichael/Documents/github/repositories/github-recent/mbarbine__starphone-web-svelte",
    "relative_path": "github-recent/mbarbine__starphone-web-svelte",
    "remote_url": "git@github.com:mbarbine/starphone-web-svelte.git",
    "default_branch": "main",
    "current_commit": "5ab3f5ddcc592ee5c16156a50b848853a294f2b1"
  },
  "languages": [
    {
      "language": "YAML",
      "files": 2,
      "bytes": 193599
    },
    {
      "language": "TypeScript",
      "files": 37,
      "bytes": 113789
    },
    {
      "language": "CSS",
      "files": 15,
      "bytes": 86891
    },
    {
      "language": "JSON",
      "files": 13,
      "bytes": 43026
    },
    {
      "language": "Markdown",
      "files": 4,
      "bytes": 15112
    },
    {
      "language": "JavaScript",
      "files": 6,
      "bytes": 11710
    },
    {
      "language": "Svelte",
      "files": 2,
      "bytes": 6999
    },
    {
      "language": "XML",
      "files": 2,
      "bytes": 4218
    },
    {
      "language": "Shell",
      "files": 2,
      "bytes": 854
    }
  ],
  "frameworks": [
    {
      "name": "Next.js",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "React",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    }
  ],
  "packages": {
    "package_manager": "pnpm",
    "manifests": [
      {
        "path": "package.json",
        "name": "TheStarphone",
        "version": "0.0.1",
        "scripts": {
          "dev": "next dev",
          "build": "next build",
          "start": "next start",
          "preview": "next start",
          "lint": "next lint",
          "format": "prettier --write .",
          "test": "playwright test",
          "postinstall": "echo 'Dependencies installed successfully'"
        },
        "dependencies": {
          "@vercel/analytics": "^1.6.1",
          "@vercel/speed-insights": "^1.3.1",
          "botid": "^1.5.10",
          "chart.js": "^4.5.1",
          "chartjs-adapter-date-fns": "^3.0.0",
          "colors": "^1.4.0",
          "echarts": "^5.6.0",
          "echarts-for-react": "^3.0.5",
          "next": "^15.5.9",
          "node-fetch": "^3.3.2",
          "react": "^19.2.3",
          "react-dom": "^19.2.3",
          "sharp": "^0.33.5",
          "xlsx": "^0.18.5"
        },
        "dev_dependencies": {
          "@playwright/test": "^1.57.0",
          "@types/node": "^22.19.3",
          "@types/react": "^19.2.7",
          "@types/react-dom": "^19.2.3",
          "autoprefixer": "^10.4.23",
          "eslint": "^9.39.2",
          "eslint-config-next": "^15.5.9",
          "eslint-config-prettier": "^9.1.2",
          "husky": "^9.1.7",
          "lint-staged": "^15.5.2",
          "postcss": "^8.5.6",
          "postcss-import": "^16.1.1",
          "postcss-load-config": "^6.0.1",
          "postcss-nested": "^7.0.2",
          "postcss-preset-env": "^10.6.0",
          "prettier": "^3.7.4",
          "sass": "^1.97.1",
          "typescript": "^5.9.3"
        }
      }
    ]
  },
  "routes": {
    "api_routes": [
      {
        "route": "/analytics",
        "source_path": "app/api/analytics/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/docs",
        "source_path": "app/api/docs/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/health",
        "source_path": "app/api/health/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/history",
        "source_path": "app/api/history/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"
        ]
      },
      {
        "route": "/network/graph",
        "source_path": "app/api/network/graph/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/parrot",
        "source_path": "app/api/parrot/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/sensor-data",
        "source_path": "app/api/sensor-data/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      }
    ],
    "app_routes": [
      {
        "route": "/[lang]/about",
        "source_path": "app/[lang]/about/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]/contact",
        "source_path": "app/[lang]/contact/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]/docs",
        "source_path": "app/[lang]/docs/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]/gallery",
        "source_path": "app/[lang]/gallery/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]/history",
        "source_path": "app/[lang]/history/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]/how-it-works",
        "source_path": "app/[lang]/how-it-works/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]",
        "source_path": "app/[lang]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]/press",
        "source_path": "app/[lang]/press/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]/support",
        "source_path": "app/[lang]/support/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      }
    ]
  },
  "components": [
    {
      "name": "FloatingDonateButton",
      "kind": "ui-component",
      "source_path": "components/FloatingDonateButton.tsx"
    },
    {
      "name": "Footer",
      "kind": "ui-component",
      "source_path": "components/Footer.tsx"
    },
    {
      "name": "Header",
      "kind": "ui-component",
      "source_path": "components/Header.tsx"
    },
    {
      "name": "RotaryDialer",
      "kind": "ui-component",
      "source_path": "components/RotaryDialer.tsx"
    },
    {
      "name": "ThemeToggle",
      "kind": "ui-component",
      "source_path": "components/ThemeToggle.tsx"
    }
  ],
  "data_models": [],
  "database": {
    "databases": [],
    "schemas": [],
    "migrations": []
  },
  "tests": [
    {
      "name": "playwright.config.js",
      "kind": "playwright",
      "source_path": "playwright.config.js"
    },
    {
      "name": "docs.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/docs.test.ts"
    },
    {
      "name": "graph.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/graph.test.ts"
    },
    {
      "name": "history.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/history.test.ts"
    },
    {
      "name": "mcp.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/mcp.test.ts"
    },
    {
      "name": "test.js",
      "kind": "unit-or-integration",
      "source_path": "tests/test.js"
    }
  ],
  "ci": {
    "workflows": []
  },
  "containers": {
    "dockerfiles": [],
    "compose_files": []
  },
  "env": {
    "example_files": [],
    "variables": [
      {
        "name": "JA4DB_INGEST_TOKEN",
        "source_paths": [
          "app/api/sensor-data/route.ts",
          "middleware.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "JA4DB_INGEST_URL",
        "source_paths": [
          "app/api/sensor-data/route.ts",
          "middleware.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "JA4DB_SAMPLE_RATE",
        "source_paths": [
          "middleware.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "JA4DB_SENSOR_NAME",
        "source_paths": [
          "app/api/sensor-data/route.ts",
          "middleware.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NODE_ENV",
        "source_paths": [
          "middleware.ts"
        ],
        "likely_secret": false
      }
    ]
  },
  "configs": [
    {
      "path": "next.config.ts"
    },
    {
      "path": "package.json"
    },
    {
      "path": "pnpm-workspace.yaml"
    },
    {
      "path": "postcss.config.js"
    },
    {
      "path": "tsconfig.json"
    },
    {
      "path": "vercel.json"
    }
  ],
  "docs": {
    "readme_paths": [
      {
        "path": "README.md"
      }
    ],
    "doc_paths": [],
    "llms_context_paths": [
      {
        "path": "public/llms-full.txt"
      },
      {
        "path": "public/llms.txt"
      }
    ]
  },
  "discovery_files": {
    "openapi": [
      {
        "path": "public/openapi.json"
      }
    ],
    "mcp": [
      {
        "path": "app/api/mcp/route.ts"
      }
    ],
    "llms": [
      {
        "path": "public/llms-full.txt"
      },
      {
        "path": "public/llms.txt"
      }
    ],
    "sitemaps": [
      {
        "path": "public/sitemap.xml"
      },
      {
        "path": "sitemap.xml"
      }
    ],
    "feeds": [],
    "well_known": [],
    "robots": [
      {
        "path": "public/robots.txt"
      },
      {
        "path": "robots.txt"
      }
    ],
    "manifests": []
  },
  "integrations": [
    {
      "name": "Vercel",
      "confidence": "medium",
      "evidence_paths": [
        "app/[lang]/layout.tsx",
        "app/api/analytics/route.ts",
        "next.config.ts",
        "package.json",
        "pnpm-lock.yaml"
      ]
    }
  ],
  "license": {
    "spdx": null,
    "paths": []
  },
  "comments": [
    {
      "kind": "security",
      "source_path": "app/[lang]/about/page.tsx",
      "line": 94,
      "text": "<h3>Security</h3>"
    },
    {
      "kind": "security",
      "source_path": "app/[lang]/about/page.tsx",
      "line": 95,
      "text": "<p>Protecting your privacy with industry-leading encryption and security practices.</p>"
    },
    {
      "kind": "security",
      "source_path": "app/[lang]/about/page.tsx",
      "line": 145,
      "text": "Technical expert ensuring reliability and security across all Starphone systems with deep expertise in communication infrastructure."
    },
    {
      "kind": "security",
      "source_path": "app/[lang]/history/page.tsx",
      "line": 105,
      "text": "<p>Added IoT environmental sensors, improved network redundancy with Starlink and cellular, and developed enhanced security protocols. Participated in Maker Faire Alexandria and FEMA demonstrations. The stainless steel booth prototype was c"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 2088,
      "text": "deprecated: Use your platform's native DOMException instead"
    },
    {
      "kind": "security",
      "source_path": "README.md",
      "line": 29,
      "text": "- JA4 fingerprinting for security"
    }
  ],
  "security": {
    "secret_risks": [],
    "unsafe_patterns": [
      {
        "name": "dangerously-set-html",
        "confidence": "medium",
        "evidence_paths": [
          "app/[lang]/gallery/page.tsx",
          "app/[lang]/layout.tsx"
        ]
      }
    ],
    "sensitive_data_indicators": [
      {
        "name": "api_key",
        "confidence": "medium",
        "evidence_paths": [
          "FIXES_APPLIED.md"
        ]
      },
      {
        "name": "card",
        "confidence": "medium",
        "evidence_paths": [
          "app/[lang]/about/about.module.css",
          "app/[lang]/about/page.tsx",
          "app/[lang]/contact/contact.module.css",
          "app/[lang]/contact/page.tsx",
          "app/[lang]/gallery/gallery.module.css",
          "app/[lang]/gallery/page.tsx",
          "app/[lang]/history/page.tsx",
          "app/[lang]/how-it-works/how-it-works.module.css",
          "app/[lang]/how-it-works/page.tsx",
          "app/[lang]/layout.tsx",
          "app/[lang]/page.module.css",
          "app/[lang]/page.tsx",
          "FIXES_APPLIED.md",
          "IMAGE_OPTIMIZATION.md",
          "public/schemas/platphorm/core.schema.json",
          "README.md"
        ]
      },
      {
        "name": "email",
        "confidence": "medium",
        "evidence_paths": [
          "app/[lang]/contact/page.tsx",
          "app/[lang]/layout.tsx",
          "app/[lang]/press/page.tsx",
          "app/[lang]/support/page.tsx",
          "FIXES_APPLIED.md"
        ]
      },
      {
        "name": "fingerprint",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/sensor-data/route.ts",
          "middleware.ts",
          "public/schemas/platphorm/core.schema.json",
          "public/schemas/platphorm/item.schema.json",
          "public/schemas/platphorm/observability.schema.json",
          "public/schemas/platphorm/realm.schema.json",
          "README.md"
        ]
      },
      {
        "name": "health",
        "confidence": "medium",
        "evidence_paths": [
          "app/[lang]/docs/page.tsx",
          "app/[lang]/how-it-works/page.tsx",
          "public/llms-full.txt",
          "public/llms.txt",
          "public/robots.txt",
          "public/schemas/platphorm/core.schema.json",
          "public/schemas/platphorm/realm.schema.json",
          "scripts/register-mcp.js"
        ]
      },
      {
        "name": "location",
        "confidence": "medium",
        "evidence_paths": [
          "app/[lang]/about/page.tsx",
          "app/[lang]/history/page.tsx",
          "app/[lang]/how-it-works/page.tsx",
          "public/robots.txt",
          "public/service-worker.js",
          "README.md",
          "robots.txt",
          "static/service-worker.js"
        ]
      },
      {
        "name": "payment",
        "confidence": "medium",
        "evidence_paths": [
          "FIXES_APPLIED.md"
        ]
      },
      {
        "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/sensor-data/route.ts",
          "middleware.ts",
          "pnpm-lock.yaml"
        ]
      }
    ]
  },
  "generated_at": "2026-05-16T16:44:26.729Z"
}
