{"_id":"@aphrody/fut","_rev":"6-8819e44df35abf9f1491f92cbe62280d","name":"@aphrody/fut","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.3":{"name":"@aphrody/fut","version":"0.1.3","_id":"@aphrody/fut@0.1.3","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"dist":{"shasum":"b800004d8443c369d2b950d3cb12fc5e5f2614be","tarball":"https://registry.npmjs.org/@aphrody/fut/-/fut-0.1.3.tgz","fileCount":18,"integrity":"sha512-VXJDXE+XbrUeEGQnL1mr1Z0fM+9JmwfowTDYDGuEgtBKEgzGw4mMsZ3+MSBOTr1BHsKJHcLgXICbfBMSqG+VOQ==","signatures":[{"sig":"MEYCIQDhFuTFr3cqPcxwXXiXYyNFg8cHRWfiVLMl9VFiEX5AswIhAL8ZlJC32eI/T4uMX5yKUQn+6ICqD7rffsQ5sKtT50sH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279979},"main":"./src/index.ts","type":"module","types":"./src/index.ts","exports":{".":"./src/index.ts","./futgg":"./src/futgg.ts","./futbin":"./src/futbin.ts"},"gitHead":"7409bb65fef1c022208151a69304547bf9a4e516","_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"_npmVersion":"9.2.0","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^3.24.2","p-queue":"^8.0.1","p-retry":"^6.2.0","lru-cache":"^11.5.1","bottleneck":"^2.19.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fut_0.1.3_1780527330136_0.9357837299833258","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@aphrody/fut","version":"0.1.4","_id":"@aphrody/fut@0.1.4","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"dist":{"shasum":"ef205d5c8fe88c89be68a59116841c5a301e1af7","tarball":"https://registry.npmjs.org/@aphrody/fut/-/fut-0.1.4.tgz","fileCount":23,"integrity":"sha512-EKhppeX7GzjvlWarrtytnJ5hyuKu9ghZ70/Fg+ea4F7oKY9Vp9YEbjQzdREdyEZTlhpkdVX6tMyo2apiEGPd7w==","signatures":[{"sig":"MEUCIFAt/IR5LTrKCGaan0SbMsGm5EAHs1V7VB1k2fW9pdN6AiEAkDcdLdu45BxZg6AHdako+AdBSU/xUhz+y2zdsOxnxa8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300954},"main":"./src/index.ts","type":"module","types":"./src/index.ts","shasum":"ef205d5c8fe88c89be68a59116841c5a301e1af7","exports":{".":"./src/index.ts","./futgg":"./src/futgg.ts","./futbin":"./src/futbin.ts"},"_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"_integrity":"sha512-EKhppeX7GzjvlWarrtytnJ5hyuKu9ghZ70/Fg+ea4F7oKY9Vp9YEbjQzdREdyEZTlhpkdVX6tMyo2apiEGPd7w==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^3.24.2","p-queue":"^8.0.1","p-retry":"^6.2.0","lru-cache":"^11.5.1","bottleneck":"^2.19.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fut_0.1.4_1780586730769_0.38711274088492087","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@aphrody/fut","version":"0.1.5","license":"Apache-2.0","_id":"@aphrody/fut@0.1.5","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"dist":{"shasum":"bf797d9c0a49d01268357e7b5bdf4c3840dc8c76","tarball":"https://registry.npmjs.org/@aphrody/fut/-/fut-0.1.5.tgz","fileCount":23,"integrity":"sha512-IJEIlIiraeofPqj8v4aU1CvkqPrtjT9FmSvdDIOCpsthHFDm6IGdY/96Xy60MH5bsY4z60cy/0ONSkwogkjcVQ==","signatures":[{"sig":"MEUCIHvlabkKi+5wC6OGfLU/rVy1K5qGjhVMwdB+wdz9h1zEAiEAzBXz+72+/bGaWjrpgh5B+2YMekKf3Wg5kiLFCeImgsY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300981},"main":"./src/index.ts","type":"module","types":"./src/index.ts","shasum":"bf797d9c0a49d01268357e7b5bdf4c3840dc8c76","exports":{".":"./src/index.ts","./futgg":"./src/futgg.ts","./futbin":"./src/futbin.ts"},"_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"_integrity":"sha512-IJEIlIiraeofPqj8v4aU1CvkqPrtjT9FmSvdDIOCpsthHFDm6IGdY/96Xy60MH5bsY4z60cy/0ONSkwogkjcVQ==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^3.24.2","p-queue":"^8.0.1","p-retry":"^6.2.0","lru-cache":"^11.5.1","bottleneck":"^2.19.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fut_0.1.5_1786525418224_0.019594383595894493","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aphrody/fut","version":"0.2.0","license":"Apache-2.0","_id":"@aphrody/fut@0.2.0","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"dist":{"shasum":"d9b9a94f7ce866bcdb60e1cff29c0d6217a16d90","tarball":"https://registry.npmjs.org/@aphrody/fut/-/fut-0.2.0.tgz","fileCount":17,"integrity":"sha512-8lTrHR8+u7esXLiFoD3XXe63fq8jDJJCmZ9a4s4uaD4Bp7KPTSunanAxf+10f/QVf6fCgZHR84C4iFO+E2N05A==","signatures":[{"sig":"MEUCIAmfu+8uAGt8xL+opACDm03V//RkKOzKY2B2q3yegzRrAiEAot30eVYsqbMD2AAHK3YcrHNa5izMi3Fijk7s89I2LLs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279908},"main":"./src/index.ts","type":"module","types":"./src/index.ts","shasum":"d9b9a94f7ce866bcdb60e1cff29c0d6217a16d90","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./futgg":"./src/futgg.ts","./futbin":"./src/futbin.ts"},"_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"_integrity":"sha512-8lTrHR8+u7esXLiFoD3XXe63fq8jDJJCmZ9a4s4uaD4Bp7KPTSunanAxf+10f/QVf6fCgZHR84C4iFO+E2N05A==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^3.24.2","p-queue":"^8.0.1","p-retry":"^6.2.0","lru-cache":"^11.5.1","bottleneck":"^2.19.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fut_0.2.0_1788431541718_0.29456114230825636","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aphrody/fut","version":"0.2.1","license":"Apache-2.0","_id":"@aphrody/fut@0.2.1","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"dist":{"shasum":"5b978dbe4872fde9edc93dae9a18be491847155c","tarball":"https://registry.npmjs.org/@aphrody/fut/-/fut-0.2.1.tgz","fileCount":19,"integrity":"sha512-ZgFooGG4BBZ6WvXe+apo78sWDvMz8og1ljJ4GI7a3OTEfHsqpDc2Skw+45C8Ao9Bd5ZPueJcZHSyFGleNAZ7uQ==","signatures":[{"sig":"MEUCIQD4/Fwiy6uWnQpHyjziUsuRlURTb5Lgh3Z2YkcIFLhYDgIgcjN/9tIHLucrp2Sb+K+qZjwMCiJz/e7ZV3xQTkKKGr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313496},"main":"./src/index.ts","type":"module","types":"./src/index.ts","shasum":"5b978dbe4872fde9edc93dae9a18be491847155c","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./futgg":"./src/futgg.ts","./futbin":"./src/futbin.ts"},"_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"_integrity":"sha512-ZgFooGG4BBZ6WvXe+apo78sWDvMz8og1ljJ4GI7a3OTEfHsqpDc2Skw+45C8Ao9Bd5ZPueJcZHSyFGleNAZ7uQ==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^3.24.2","p-queue":"^8.0.1","p-retry":"^6.2.0","lru-cache":"^11.5.1","bottleneck":"^2.19.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fut_0.2.1_1788681498666_0.16874798071379016","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@aphrody/fut","version":"1.0.0","description":"High-Performance EA SPORTS FC & FIFA Ultimate Team Intelligence Suite: Scraping, Crawling, Market Valuation, AI Squad Builder, Mathematical SBC Solver, Early Leaks Radar, Live Chrome MV3 Extension, and Remote MCP Bridge.","repository":{"type":"git","url":"https://github.com/aphrody-code/bxc.git"},"bugs":{"url":"https://github.com/aphrody-code/bxc/issues"},"homepage":"https://bxc.aphrody.com","publishConfig":{"access":"public"},"keywords":["aphrody","bxc","ea-sports-fc","fc27","fc26","fifa","ultimate-team","futbin","futgg","sbc-solver","squad-builder","chrome-extension","mcp","trading","price-prediction","leaks-radar"],"author":"aphrody-code","license":"Apache-2.0","type":"module","main":"./src/index.ts","types":"./src/index.ts","exports":{".":"./src/index.ts","./futbin":"./src/futbin.ts","./futgg":"./src/futgg.ts","./squad":"./src/squad/index.ts","./sbc":"./src/sbc/index.ts","./trading":"./src/trading/index.ts","./prediction":"./src/prediction/index.ts","./social":"./src/social/index.ts","./scraper":"./src/scraper/index.ts","./crawler":"./src/crawler/index.ts","./importers":"./src/importers/index.ts","./services":"./src/services/index.ts","./api":"./src/api/index.ts","./extension":"./src/extension/index.ts","./bots":"./src/bots/index.ts","./leaks":"./src/leaks/index.ts"},"scripts":{"build":"tsc","typecheck":"tsc --noEmit","lint":"oxlint","test":"bun test"},"dependencies":{"bottleneck":"^2.19.5","lru-cache":"^11.5.1","p-queue":"^8.0.1","p-retry":"^6.2.0","zod":"^3.24.2"},"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3"},"engines":{"bun":">=1.4.2"},"_id":"@aphrody/fut@1.0.0","_integrity":"sha512-Tpo+2LkKWVvwTjl2Kcda8M1XyDzPU158ddYT4NXcwcrvyNVZY5t3MzIb4GNeco5cySG91BTax+DOj+f3ZCTxhw==","_nodeVersion":"24.3.0","_npmVersion":"10.8.3","shasum":"348c8177e9bffc97a71cd06ccb397e0f9fb381db","dist":{"integrity":"sha512-Tpo+2LkKWVvwTjl2Kcda8M1XyDzPU158ddYT4NXcwcrvyNVZY5t3MzIb4GNeco5cySG91BTax+DOj+f3ZCTxhw==","shasum":"348c8177e9bffc97a71cd06ccb397e0f9fb381db","tarball":"https://registry.npmjs.org/@aphrody/fut/-/fut-1.0.0.tgz","fileCount":137,"unpackedSize":57869203,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFKIslYN+t9exzZQyd6tUBYshEtjhHGX/63sb19rW1hQAiAk9e2n1kEanV83vAkLSbIRxyNJWmoJqLyd5EF+Ck0UDg=="}]},"_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"directories":{},"maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fut_1.0.0_1789648646772_0.08610076041906845"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-03T22:55:29.980Z","modified":"2026-09-17T12:37:27.196Z","0.1.3":"2026-06-03T22:55:30.280Z","0.1.4":"2026-06-04T15:25:31.053Z","0.1.5":"2026-08-12T09:03:38.386Z","0.2.0":"2026-09-03T10:32:21.854Z","0.2.1":"2026-09-06T07:58:18.817Z","1.0.0":"2026-09-17T12:37:27.018Z"},"license":"Apache-2.0","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"readme":"# @aphrody/fut\n\n> **High-Performance EA SPORTS FC & FIFA Ultimate Team Intelligence Suite**  \n> Scraping, High-Speed Crawling, Real-Time Market Valuation, AI Squad Builder, Mathematical SBC Solver, Early Leaks & Staging Radar, Live Chrome MV3 Extension, and Autonomous MCP Bridge.\n\n[![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)](https://www.npmjs.com/package/@aphrody/fut)\n[![License](https://img.shields.io/badge/license-Apache--2.0-green.svg)](LICENSE)\n[![Runtime](https://img.shields.io/badge/runtime-Bun%20%7C%20Node.js-black.svg)](https://bun.sh)\n\n---\n\n## ⚡ Key Capabilities\n\n- 🎯 **Universal Omni-URL Parser**: Ingests and normalizes any URL from FUTBin, FUT.GG, or official EA Web App into structured entities (Players, SBC Challenges, Evolutions, Squads, Fodder).\n- 📈 **Dual-Platform Market Valuation & Predictive AI**: Forecasts Console vs. PC price trajectories with intra-week multipliers, credit-freeze anomaly detection, and real-time X community sentiment.\n- 🧩 **Mathematical SBC Solver**: Computes cheapest combinations using the exact EA Excess Squad Rating formula.\n- 🛡️ **Early Leaks & Staging Radar**: Monitors Akamai/Cloudflare edge CDN ETags, `loc/en_US.json` diffs, and PC Title Update Frostbite data dumps to discover unreleased cards and promos ahead of time.\n- 🌐 **Live Chrome Extension MV3**: Injects via `world: \"MAIN\"`, intercepts internal `/ut/game/fc27/*` UTAS calls, captures DOM states, extracts secure session cookies, and features Paletools-grade anti-detection (Gaussian jitter, humanized clicks, soft-ban mitigation).\n- 🤖 **Remote MCP Server Bridge**: Enables autonomous AI agents (Claude, Gemini, Antigravity) to inspect live game state, stream HTML/CSS, and execute actions (`BUY_NOW`, `BID_ITEM`, `SEARCH_MARKET`).\n- ⚡ **Zero-Spawn Bun Native Engine**: Powered by SQLite WAL caching with 64-bit WyHash keys, Rust FFI acceleration, and high-concurrency scraping.\n\n---\n\n## 📦 Installation\n\n```bash\nbun add @aphrody/fut\n# or\nnpm install @aphrody/fut\n```\n\n---\n\n## 🚀 Quick Start\n\n### 1. Parse Any FUT Player or URL\n\n```typescript\nimport { handleAnyFutUrl } from \"@aphrody/fut\";\n\nconst result = await handleAnyFutUrl(\"https://www.futbin.com/27/player/97/joao-pedro-goncalves-neves\");\n\nconsole.log(`Player: ${result.data.name} (${result.data.rating} OVR)`);\nconsole.log(`Live Console Price: ${result.data.prices.console} coins`);\nconsole.log(`Factual Meta Rating: ${result.analysis.metaScore}`);\nconsole.log(`Investment Action: ${result.actionAdvice.verdict}`);\n```\n\n### 2. Solve Squad Building Challenges (SBC)\n\n```typescript\nimport { calculateEaSquadRating, computeCheapestFodderComposition } from \"@aphrody/fut\";\n\n// Calculate exact squad rating with EA excess rating algorithm\nconst squadRating = calculateEaSquadRating([88, 88, 87, 85, 84, 84, 83, 83, 83, 82, 82]);\nconsole.log(`Exact Squad Rating: ${squadRating}`); // 85\n\n// Compute the cheapest composition to hit an 86 rating\nconst composition = computeCheapestFodderComposition(86);\nconsole.log(\"Optimal Fodder Breakdown:\", composition);\n```\n\n### 3. Launch Live Web App Streaming Server & Remote MCP Bridge\n\n```typescript\nimport { FutWebappStreamServer, FutWebappMcpBridge } from \"@aphrody/fut\";\n\nconst streamServer = new FutWebappStreamServer({ port: 3001 });\nconst mcpBridge = new FutWebappMcpBridge(streamServer);\n\nstreamServer.start();\nconsole.log(\"WebSocket stream active on ws://localhost:3001/fut/stream\");\n\n// Query live state over MCP\nconst liveState = await mcpBridge.handleToolCall(\"bxc_fut_webapp_sync\");\nconsole.log(liveState);\n```\n\n### 4. Build Standalone Chrome Extension\n\n```typescript\nimport { buildChromeExtension } from \"@aphrody/fut\";\n\nconst extensionDir = buildChromeExtension({ outputDir: \"./dist/my-extension\" });\nconsole.log(`Extension ready to load into Chrome: ${extensionDir}`);\n```\n\n---\n\n## 🛠️ CLI Usage via `bxc`\n\n```bash\n# Universal Omni-URL parsing\nbxc fut https://www.futbin.com/27/player/97/joao-pedro-goncalves-neves\n\n# Price prediction with social sentiment\nbxc fut predict \"Joao Neves\" --social\n\n# Start live streaming WebSocket server & MCP bridge\nbxc fut stream 3001\n\n# Build unpacked Chrome MV3 extension\nbxc fut extension-build\n\n# Query early leaks and staged CDN promos\nbxc fut leaks Trailblazers\n```\n\n---\n\n## 🏛️ Architecture & Modules\n\n| Subpath Export | Description |\n| :--- | :--- |\n| `@aphrody/fut` | Master module re-exporting all capabilities |\n| `@aphrody/fut/futbin` | Dedicated FUTBin HTML & JSON scrapers |\n| `@aphrody/fut/futgg` | FUT.GG Seroval & TanStack hydration parsers |\n| `@aphrody/fut/squad` | AI Squad Builder, Chemistry engine, ASCII/SVG pitch renderers |\n| `@aphrody/fut/sbc` | Squad Building Challenges solvers & Bronze Pack Method (BPM) |\n| `@aphrody/fut/trading` | Achat-Revente plans, snipe filters, and market cycle timing |\n| `@aphrody/fut/prediction`| Dual-platform time series price prediction & anomaly detection |\n| `@aphrody/fut/social` | Real-time X/Twitter sentiment analysis & review synthesis |\n| `@aphrody/fut/scraper` | Universal multi-platform unified scraper |\n| `@aphrody/fut/crawler` | High-concurrency worker crawler with SQLite WAL deduplication |\n| `@aphrody/fut/importers`| Omni-router and dedicated page type importers |\n| `@aphrody/fut/services` | Core unified service layer consumed across CLI, Web, and Bots |\n| `@aphrody/fut/api` | Universal REST API server (`/api/fut/*`) |\n| `@aphrody/fut/extension`| Chrome MV3 extension, Paletools hooks, WebSocket stream & MCP bridge |\n| `@aphrody/fut/bots` | Live Discord webhook embed & X alert generators |\n| `@aphrody/fut/leaks` | EA CDN staging poller, localization diffing, and pack code parser |\n\n---\n\n## 📄 License\n\nApache-2.0 © 2026 aphrody-code\n","readmeFilename":"README.md","description":"High-Performance EA SPORTS FC & FIFA Ultimate Team Intelligence Suite: Scraping, Crawling, Market Valuation, AI Squad Builder, Mathematical SBC Solver, Early Leaks Radar, Live Chrome MV3 Extension, and Remote MCP Bridge.","homepage":"https://bxc.aphrody.com","keywords":["aphrody","bxc","ea-sports-fc","fc27","fc26","fifa","ultimate-team","futbin","futgg","sbc-solver","squad-builder","chrome-extension","mcp","trading","price-prediction","leaks-radar"],"repository":{"type":"git","url":"https://github.com/aphrody-code/bxc.git"},"author":"aphrody-code","bugs":{"url":"https://github.com/aphrody-code/bxc/issues"}}