{
  "schema_version": "1.0.0",
  "scanner": {
    "name": "global-capability-catalog",
    "version": "0.1.0"
  },
  "repo": {
    "id": "github-recent__mbarbine__reflux-site-webby",
    "name": "mbarbine__reflux-site-webby",
    "path": "/Users/bwm.barbinewarnermichael/Documents/github/repositories/github-recent/mbarbine__reflux-site-webby",
    "relative_path": "github-recent/mbarbine__reflux-site-webby",
    "remote_url": "git@github.com:mbarbine/reflux-site-webby.git",
    "default_branch": "main",
    "current_commit": "3d66e5bf6a7a45f5f7da3e323c709185d14899be"
  },
  "languages": [
    {
      "language": "TypeScript",
      "files": 46,
      "bytes": 165318
    },
    {
      "language": "JSON",
      "files": 10,
      "bytes": 63222
    },
    {
      "language": "YAML",
      "files": 1,
      "bytes": 31111
    },
    {
      "language": "JavaScript",
      "files": 4,
      "bytes": 4794
    },
    {
      "language": "CSS",
      "files": 1,
      "bytes": 4751
    },
    {
      "language": "XML",
      "files": 1,
      "bytes": 4577
    },
    {
      "language": "Markdown",
      "files": 4,
      "bytes": 3815
    }
  ],
  "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": "reflux-storefront",
        "version": "0.1.0",
        "scripts": {
          "dev": "next dev",
          "build": "next build",
          "start": "next start"
        },
        "dependencies": {
          "next": "^14.2.0",
          "react": "^18.2.0",
          "react-dom": "^18.2.0",
          "lucide-react": "^0.344.0",
          "clsx": "^2.1.0",
          "tailwindcss": "^3.4.0",
          "autoprefixer": "^10.4.0",
          "postcss": "^8.4.0"
        },
        "dev_dependencies": {
          "@types/node": "^20.0.0",
          "@types/react": "^18.2.0",
          "@types/react-dom": "^18.2.0",
          "typescript": "^5.0.0"
        }
      }
    ]
  },
  "routes": {
    "api_routes": [
      {
        "route": "/catalog/[slug]",
        "source_path": "app/api/catalog/[slug]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/catalog",
        "source_path": "app/api/catalog/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/docs",
        "source_path": "app/api/docs/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/etsy/sync",
        "source_path": "app/api/etsy/sync/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": "/network/graph",
        "source_path": "app/api/network/graph/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/search",
        "source_path": "app/api/search/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/spotify/authorize",
        "source_path": "app/api/spotify/authorize/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/spotify/callback",
        "source_path": "app/api/spotify/callback/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/spotify/token",
        "source_path": "app/api/spotify/token/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/webhooks/n8n",
        "source_path": "app/api/webhooks/n8n/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/webhooks/zapier",
        "source_path": "app/api/webhooks/zapier/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      }
    ],
    "app_routes": [
      {
        "route": "/[lang]/docs",
        "source_path": "app/[lang]/docs/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]/faq",
        "source_path": "app/[lang]/faq/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]/music",
        "source_path": "app/[lang]/music/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]",
        "source_path": "app/[lang]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]/shop/[slug]",
        "source_path": "app/[lang]/shop/[slug]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]/shop",
        "source_path": "app/[lang]/shop/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[lang]/story",
        "source_path": "app/[lang]/story/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      }
    ]
  },
  "components": [
    {
      "name": "breadcrumbs",
      "kind": "ui-component",
      "source_path": "components/breadcrumbs.tsx"
    },
    {
      "name": "footer",
      "kind": "ui-component",
      "source_path": "components/footer.tsx"
    },
    {
      "name": "header",
      "kind": "ui-component",
      "source_path": "components/header.tsx"
    },
    {
      "name": "json-ld",
      "kind": "ui-component",
      "source_path": "components/json-ld.tsx"
    },
    {
      "name": "product-card",
      "kind": "ui-component",
      "source_path": "components/product-card.tsx"
    },
    {
      "name": "shop-filters",
      "kind": "ui-component",
      "source_path": "components/shop-filters.tsx"
    },
    {
      "name": "shop-grid",
      "kind": "ui-component",
      "source_path": "components/shop-grid.tsx"
    },
    {
      "name": "spotify-player",
      "kind": "ui-component",
      "source_path": "components/spotify-player.tsx"
    }
  ],
  "data_models": [],
  "database": {
    "databases": [],
    "schemas": [],
    "migrations": []
  },
  "tests": [
    {
      "name": "api.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api.test.ts"
    }
  ],
  "ci": {
    "workflows": []
  },
  "containers": {
    "dockerfiles": [],
    "compose_files": []
  },
  "env": {
    "example_files": [],
    "variables": [
      {
        "name": "ADMIN_SECRET",
        "source_paths": [
          "app/api/etsy/sync/route.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "ETSY_API_KEY",
        "source_paths": [
          "lib/etsy.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PUBLIC_SITE_URL",
        "source_paths": [
          "app/.well-known/mcp/server-card.json/route.ts",
          "app/api/mcp/route.ts",
          "app/api/network/graph/route.ts",
          "app/llms-full.txt/route.ts",
          "app/llms-index.json/route.ts",
          "app/llms.txt/route.ts",
          "app/robots.ts",
          "app/sitemap.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "SPOTIFY_CLIENT_ID",
        "source_paths": [
          "lib/spotify.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "SPOTIFY_CLIENT_SECRET",
        "source_paths": [
          "lib/spotify.ts"
        ],
        "likely_secret": true
      }
    ]
  },
  "configs": [
    {
      "path": "next.config.js"
    },
    {
      "path": "package.json"
    },
    {
      "path": "postcss.config.js"
    },
    {
      "path": "tailwind.config.js"
    },
    {
      "path": "tsconfig.json"
    }
  ],
  "docs": {
    "readme_paths": [
      {
        "path": "README.md"
      }
    ],
    "doc_paths": [],
    "llms_context_paths": []
  },
  "discovery_files": {
    "openapi": [],
    "mcp": [
      {
        "path": "app/api/mcp/route.ts"
      },
      {
        "path": "public/.well-known/mcp.json"
      }
    ],
    "llms": [],
    "sitemaps": [],
    "feeds": [
      {
        "path": "public/rss.xml"
      }
    ],
    "well_known": [
      {
        "path": "app/.well-known/mcp/server-card.json/route.ts"
      },
      {
        "path": "public/.well-known/mcp.json"
      },
      {
        "path": "public/.well-known/platphormnews-network"
      }
    ],
    "robots": [],
    "manifests": [
      {
        "path": "public/manifest.webmanifest"
      }
    ]
  },
  "integrations": [],
  "license": {
    "spdx": null,
    "paths": []
  },
  "comments": [
    {
      "kind": "todo",
      "source_path": "dictionaries/es.json",
      "line": 44,
      "text": "\"description\": \"Todo lo que necesitas para integrarte con la tienda Reflux. API REST, herramientas MCP y archivos de descubrimiento LLM.\""
    },
    {
      "kind": "todo",
      "source_path": "dictionaries/es.json",
      "line": 50,
      "text": "\"viewAll\": \"Ver todo\","
    }
  ],
  "security": {
    "secret_risks": [],
    "unsafe_patterns": [
      {
        "name": "dangerously-set-html",
        "confidence": "medium",
        "evidence_paths": [
          "components/json-ld.tsx"
        ]
      }
    ],
    "sensitive_data_indicators": [
      {
        "name": "api_key",
        "confidence": "medium",
        "evidence_paths": [
          "app/[lang]/docs/page.tsx",
          "app/api/etsy/sync/route.ts",
          "app/llms-index.json/route.ts",
          "app/llms.txt/route.ts",
          "lib/etsy.ts"
        ]
      },
      {
        "name": "card",
        "confidence": "medium",
        "evidence_paths": [
          ".Jules/palette.md",
          "app/.well-known/mcp/server-card.json/route.ts",
          "app/[lang]/docs/page.tsx",
          "app/[lang]/music/page.tsx",
          "app/[lang]/page.tsx",
          "app/[lang]/shop/[slug]/page.tsx",
          "app/[lang]/shop/page.tsx",
          "app/[lang]/story/page.tsx",
          "app/api/mcp/route.ts",
          "app/globals.css",
          "app/layout.tsx",
          "app/llms-index.json/route.ts",
          "app/llms.txt/route.ts",
          "components/footer.tsx",
          "components/header.tsx",
          "components/product-card.tsx",
          "components/shop-filters.tsx",
          "components/shop-grid.tsx",
          "components/spotify-player.tsx",
          "public/.well-known/mcp.json"
        ]
      },
      {
        "name": "email",
        "confidence": "medium",
        "evidence_paths": [
          "lib/spotify.ts",
          "public/network.json"
        ]
      },
      {
        "name": "health",
        "confidence": "medium",
        "evidence_paths": [
          "app/.well-known/mcp/server-card.json/route.ts",
          "app/[lang]/docs/page.tsx",
          "app/api/docs/route.ts",
          "app/api/health/route.ts",
          "app/api/mcp/route.ts",
          "app/llms-index.json/route.ts",
          "app/llms.txt/route.ts",
          "public/.well-known/mcp.json"
        ]
      },
      {
        "name": "location",
        "confidence": "medium",
        "evidence_paths": [
          "components/json-ld.tsx"
        ]
      },
      {
        "name": "oauth",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/spotify/authorize/route.ts",
          "app/api/spotify/callback/route.ts",
          "app/llms-index.json/route.ts",
          "app/llms.txt/route.ts",
          "components/spotify-player.tsx",
          "lib/spotify.ts",
          "ROADMAP.md",
          "types/spotify.d.ts"
        ]
      },
      {
        "name": "secret-like environment variables",
        "confidence": "medium",
        "evidence_paths": [
          "package.json"
        ]
      },
      {
        "name": "token",
        "confidence": "medium",
        "evidence_paths": [
          ".Jules/palette.md",
          "app/[lang]/docs/page.tsx",
          "app/api/spotify/callback/route.ts",
          "app/api/spotify/token/route.ts",
          "app/llms-index.json/route.ts",
          "app/llms.txt/route.ts",
          "components/spotify-player.tsx",
          "lib/spotify.ts",
          "pnpm-lock.yaml",
          "types/spotify.d.ts"
        ]
      }
    ]
  },
  "generated_at": "2026-05-16T16:44:22.659Z"
}
