cfb-stats-mcp 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exports.d.ts.map +1 -1
- package/dist/exports.js +90 -0
- package/dist/exports.js.map +1 -1
- package/dist/formatters/adjusted-player-formatter.d.ts +8 -0
- package/dist/formatters/adjusted-player-formatter.d.ts.map +1 -0
- package/dist/formatters/adjusted-player-formatter.js +53 -0
- package/dist/formatters/adjusted-player-formatter.js.map +1 -0
- package/dist/formatters/adjusted-team-stats-formatter.d.ts +7 -0
- package/dist/formatters/adjusted-team-stats-formatter.d.ts.map +1 -0
- package/dist/formatters/adjusted-team-stats-formatter.js +82 -0
- package/dist/formatters/adjusted-team-stats-formatter.js.map +1 -0
- package/dist/formatters/betting-lines-formatter.d.ts +3 -0
- package/dist/formatters/betting-lines-formatter.d.ts.map +1 -0
- package/dist/formatters/betting-lines-formatter.js +34 -0
- package/dist/formatters/betting-lines-formatter.js.map +1 -0
- package/dist/formatters/calendar-formatter.d.ts +3 -0
- package/dist/formatters/calendar-formatter.d.ts.map +1 -0
- package/dist/formatters/calendar-formatter.js +21 -0
- package/dist/formatters/calendar-formatter.js.map +1 -0
- package/dist/formatters/coaches-formatter.d.ts +3 -0
- package/dist/formatters/coaches-formatter.d.ts.map +1 -0
- package/dist/formatters/coaches-formatter.js +57 -0
- package/dist/formatters/coaches-formatter.js.map +1 -0
- package/dist/formatters/conferences-formatter.d.ts +3 -0
- package/dist/formatters/conferences-formatter.d.ts.map +1 -0
- package/dist/formatters/conferences-formatter.js +41 -0
- package/dist/formatters/conferences-formatter.js.map +1 -0
- package/dist/formatters/draft-picks-formatter.d.ts +3 -0
- package/dist/formatters/draft-picks-formatter.d.ts.map +1 -0
- package/dist/formatters/draft-picks-formatter.js +27 -0
- package/dist/formatters/draft-picks-formatter.js.map +1 -0
- package/dist/formatters/drives-formatter.d.ts +3 -0
- package/dist/formatters/drives-formatter.d.ts.map +1 -0
- package/dist/formatters/drives-formatter.js +31 -0
- package/dist/formatters/drives-formatter.js.map +1 -0
- package/dist/formatters/elo-formatter.d.ts +3 -0
- package/dist/formatters/elo-formatter.d.ts.map +1 -0
- package/dist/formatters/elo-formatter.js +34 -0
- package/dist/formatters/elo-formatter.js.map +1 -0
- package/dist/formatters/fg-expected-points-formatter.d.ts +3 -0
- package/dist/formatters/fg-expected-points-formatter.d.ts.map +1 -0
- package/dist/formatters/fg-expected-points-formatter.js +28 -0
- package/dist/formatters/fg-expected-points-formatter.js.map +1 -0
- package/dist/formatters/fpi-formatter.d.ts +3 -0
- package/dist/formatters/fpi-formatter.d.ts.map +1 -0
- package/dist/formatters/fpi-formatter.js +73 -0
- package/dist/formatters/fpi-formatter.js.map +1 -0
- package/dist/formatters/game-havoc-formatter.d.ts +8 -0
- package/dist/formatters/game-havoc-formatter.d.ts.map +1 -0
- package/dist/formatters/game-havoc-formatter.js +64 -0
- package/dist/formatters/game-havoc-formatter.js.map +1 -0
- package/dist/formatters/game-media-formatter.d.ts +9 -0
- package/dist/formatters/game-media-formatter.d.ts.map +1 -0
- package/dist/formatters/game-media-formatter.js +43 -0
- package/dist/formatters/game-media-formatter.js.map +1 -0
- package/dist/formatters/game-player-stats-formatter.d.ts +3 -0
- package/dist/formatters/game-player-stats-formatter.d.ts.map +1 -0
- package/dist/formatters/game-player-stats-formatter.js +24 -0
- package/dist/formatters/game-player-stats-formatter.js.map +1 -0
- package/dist/formatters/game-ppa-formatter.d.ts +3 -0
- package/dist/formatters/game-ppa-formatter.d.ts.map +1 -0
- package/dist/formatters/game-ppa-formatter.js +26 -0
- package/dist/formatters/game-ppa-formatter.js.map +1 -0
- package/dist/formatters/game-weather-formatter.d.ts +3 -0
- package/dist/formatters/game-weather-formatter.d.ts.map +1 -0
- package/dist/formatters/game-weather-formatter.js +36 -0
- package/dist/formatters/game-weather-formatter.js.map +1 -0
- package/dist/formatters/kicker-paar-formatter.d.ts +7 -0
- package/dist/formatters/kicker-paar-formatter.d.ts.map +1 -0
- package/dist/formatters/kicker-paar-formatter.js +48 -0
- package/dist/formatters/kicker-paar-formatter.js.map +1 -0
- package/dist/formatters/live-plays-formatter.d.ts +3 -0
- package/dist/formatters/live-plays-formatter.d.ts.map +1 -0
- package/dist/formatters/live-plays-formatter.js +62 -0
- package/dist/formatters/live-plays-formatter.js.map +1 -0
- package/dist/formatters/play-stats-formatter.d.ts +3 -0
- package/dist/formatters/play-stats-formatter.d.ts.map +1 -0
- package/dist/formatters/play-stats-formatter.js +45 -0
- package/dist/formatters/play-stats-formatter.js.map +1 -0
- package/dist/formatters/play-types-formatter.d.ts +3 -0
- package/dist/formatters/play-types-formatter.d.ts.map +1 -0
- package/dist/formatters/play-types-formatter.js +28 -0
- package/dist/formatters/play-types-formatter.js.map +1 -0
- package/dist/formatters/player-ppa-game-formatter.d.ts +3 -0
- package/dist/formatters/player-ppa-game-formatter.d.ts.map +1 -0
- package/dist/formatters/player-ppa-game-formatter.js +54 -0
- package/dist/formatters/player-ppa-game-formatter.js.map +1 -0
- package/dist/formatters/player-ppa-season-formatter.d.ts +3 -0
- package/dist/formatters/player-ppa-season-formatter.d.ts.map +1 -0
- package/dist/formatters/player-ppa-season-formatter.js +28 -0
- package/dist/formatters/player-ppa-season-formatter.js.map +1 -0
- package/dist/formatters/player-search-formatter.d.ts +3 -0
- package/dist/formatters/player-search-formatter.d.ts.map +1 -0
- package/dist/formatters/player-search-formatter.js +33 -0
- package/dist/formatters/player-search-formatter.js.map +1 -0
- package/dist/formatters/player-season-stats-formatter.d.ts +9 -0
- package/dist/formatters/player-season-stats-formatter.d.ts.map +1 -0
- package/dist/formatters/player-season-stats-formatter.js +67 -0
- package/dist/formatters/player-season-stats-formatter.js.map +1 -0
- package/dist/formatters/player-usage-formatter.d.ts +3 -0
- package/dist/formatters/player-usage-formatter.d.ts.map +1 -0
- package/dist/formatters/player-usage-formatter.js +27 -0
- package/dist/formatters/player-usage-formatter.js.map +1 -0
- package/dist/formatters/plays-formatter.d.ts +3 -0
- package/dist/formatters/plays-formatter.d.ts.map +1 -0
- package/dist/formatters/plays-formatter.js +37 -0
- package/dist/formatters/plays-formatter.js.map +1 -0
- package/dist/formatters/predicted-points-formatter.d.ts +3 -0
- package/dist/formatters/predicted-points-formatter.d.ts.map +1 -0
- package/dist/formatters/predicted-points-formatter.js +26 -0
- package/dist/formatters/predicted-points-formatter.js.map +1 -0
- package/dist/formatters/pregame-win-prob-formatter.d.ts +3 -0
- package/dist/formatters/pregame-win-prob-formatter.d.ts.map +1 -0
- package/dist/formatters/pregame-win-prob-formatter.js +40 -0
- package/dist/formatters/pregame-win-prob-formatter.js.map +1 -0
- package/dist/formatters/rankings-formatter.d.ts +3 -0
- package/dist/formatters/rankings-formatter.d.ts.map +1 -0
- package/dist/formatters/rankings-formatter.js +67 -0
- package/dist/formatters/rankings-formatter.js.map +1 -0
- package/dist/formatters/recruiting-groups-formatter.d.ts +3 -0
- package/dist/formatters/recruiting-groups-formatter.d.ts.map +1 -0
- package/dist/formatters/recruiting-groups-formatter.js +29 -0
- package/dist/formatters/recruiting-groups-formatter.js.map +1 -0
- package/dist/formatters/recruits-formatter.d.ts +3 -0
- package/dist/formatters/recruits-formatter.d.ts.map +1 -0
- package/dist/formatters/recruits-formatter.js +20 -0
- package/dist/formatters/recruits-formatter.js.map +1 -0
- package/dist/formatters/returning-production-formatter.d.ts +3 -0
- package/dist/formatters/returning-production-formatter.d.ts.map +1 -0
- package/dist/formatters/returning-production-formatter.js +63 -0
- package/dist/formatters/returning-production-formatter.js.map +1 -0
- package/dist/formatters/roster-formatter.d.ts +3 -0
- package/dist/formatters/roster-formatter.d.ts.map +1 -0
- package/dist/formatters/roster-formatter.js +65 -0
- package/dist/formatters/roster-formatter.js.map +1 -0
- package/dist/formatters/scoreboard-formatter.d.ts +3 -0
- package/dist/formatters/scoreboard-formatter.d.ts.map +1 -0
- package/dist/formatters/scoreboard-formatter.js +81 -0
- package/dist/formatters/scoreboard-formatter.js.map +1 -0
- package/dist/formatters/season-advanced-formatter.d.ts +5 -0
- package/dist/formatters/season-advanced-formatter.d.ts.map +1 -1
- package/dist/formatters/season-advanced-formatter.js +91 -0
- package/dist/formatters/season-advanced-formatter.js.map +1 -1
- package/dist/formatters/season-stats-formatter.d.ts +8 -1
- package/dist/formatters/season-stats-formatter.d.ts.map +1 -1
- package/dist/formatters/season-stats-formatter.js +87 -4
- package/dist/formatters/season-stats-formatter.js.map +1 -1
- package/dist/formatters/season-stats-formatter.test.js +95 -12
- package/dist/formatters/season-stats-formatter.test.js.map +1 -1
- package/dist/formatters/srs-formatter.d.ts +3 -0
- package/dist/formatters/srs-formatter.d.ts.map +1 -0
- package/dist/formatters/srs-formatter.js +39 -0
- package/dist/formatters/srs-formatter.js.map +1 -0
- package/dist/formatters/stat-categories-formatter.d.ts +2 -0
- package/dist/formatters/stat-categories-formatter.d.ts.map +1 -0
- package/dist/formatters/stat-categories-formatter.js +13 -0
- package/dist/formatters/stat-categories-formatter.js.map +1 -0
- package/dist/formatters/team-ppa-formatter.d.ts +3 -0
- package/dist/formatters/team-ppa-formatter.d.ts.map +1 -0
- package/dist/formatters/team-ppa-formatter.js +82 -0
- package/dist/formatters/team-ppa-formatter.js.map +1 -0
- package/dist/formatters/team-recruiting-rankings-formatter.d.ts +3 -0
- package/dist/formatters/team-recruiting-rankings-formatter.d.ts.map +1 -0
- package/dist/formatters/team-recruiting-rankings-formatter.js +28 -0
- package/dist/formatters/team-recruiting-rankings-formatter.js.map +1 -0
- package/dist/formatters/team-talent-formatter.d.ts +3 -0
- package/dist/formatters/team-talent-formatter.d.ts.map +1 -0
- package/dist/formatters/team-talent-formatter.js +31 -0
- package/dist/formatters/team-talent-formatter.js.map +1 -0
- package/dist/formatters/teams-ats-formatter.d.ts +3 -0
- package/dist/formatters/teams-ats-formatter.d.ts.map +1 -0
- package/dist/formatters/teams-ats-formatter.js +60 -0
- package/dist/formatters/teams-ats-formatter.js.map +1 -0
- package/dist/formatters/teams-formatter.d.ts +3 -0
- package/dist/formatters/teams-formatter.d.ts.map +1 -0
- package/dist/formatters/teams-formatter.js +42 -0
- package/dist/formatters/teams-formatter.js.map +1 -0
- package/dist/formatters/transfer-portal-formatter.d.ts +3 -0
- package/dist/formatters/transfer-portal-formatter.d.ts.map +1 -0
- package/dist/formatters/transfer-portal-formatter.js +56 -0
- package/dist/formatters/transfer-portal-formatter.js.map +1 -0
- package/dist/formatters/venues-formatter.d.ts +3 -0
- package/dist/formatters/venues-formatter.d.ts.map +1 -0
- package/dist/formatters/venues-formatter.js +31 -0
- package/dist/formatters/venues-formatter.js.map +1 -0
- package/dist/formatters/win-probability-formatter.d.ts +3 -0
- package/dist/formatters/win-probability-formatter.d.ts.map +1 -0
- package/dist/formatters/win-probability-formatter.js +32 -0
- package/dist/formatters/win-probability-formatter.js.map +1 -0
- package/dist/tools/adjusted-passing.d.ts +3 -0
- package/dist/tools/adjusted-passing.d.ts.map +1 -0
- package/dist/tools/adjusted-passing.js +79 -0
- package/dist/tools/adjusted-passing.js.map +1 -0
- package/dist/tools/adjusted-rushing.d.ts +3 -0
- package/dist/tools/adjusted-rushing.d.ts.map +1 -0
- package/dist/tools/adjusted-rushing.js +79 -0
- package/dist/tools/adjusted-rushing.js.map +1 -0
- package/dist/tools/adjusted-team-stats.d.ts +3 -0
- package/dist/tools/adjusted-team-stats.d.ts.map +1 -0
- package/dist/tools/adjusted-team-stats.js +70 -0
- package/dist/tools/adjusted-team-stats.js.map +1 -0
- package/dist/tools/betting-lines.d.ts +3 -0
- package/dist/tools/betting-lines.d.ts.map +1 -0
- package/dist/tools/betting-lines.js +88 -0
- package/dist/tools/betting-lines.js.map +1 -0
- package/dist/tools/box-score.d.ts.map +1 -1
- package/dist/tools/box-score.js +8 -3
- package/dist/tools/box-score.js.map +1 -1
- package/dist/tools/calendar.d.ts +3 -0
- package/dist/tools/calendar.d.ts.map +1 -0
- package/dist/tools/calendar.js +42 -0
- package/dist/tools/calendar.js.map +1 -0
- package/dist/tools/coaches.d.ts +3 -0
- package/dist/tools/coaches.d.ts.map +1 -0
- package/dist/tools/coaches.js +68 -0
- package/dist/tools/coaches.js.map +1 -0
- package/dist/tools/conferences.d.ts +3 -0
- package/dist/tools/conferences.d.ts.map +1 -0
- package/dist/tools/conferences.js +32 -0
- package/dist/tools/conferences.js.map +1 -0
- package/dist/tools/draft-picks.d.ts +3 -0
- package/dist/tools/draft-picks.d.ts.map +1 -0
- package/dist/tools/draft-picks.js +73 -0
- package/dist/tools/draft-picks.js.map +1 -0
- package/dist/tools/drives.d.ts +3 -0
- package/dist/tools/drives.d.ts.map +1 -0
- package/dist/tools/drives.js +85 -0
- package/dist/tools/drives.js.map +1 -0
- package/dist/tools/elo.d.ts +3 -0
- package/dist/tools/elo.d.ts.map +1 -0
- package/dist/tools/elo.js +77 -0
- package/dist/tools/elo.js.map +1 -0
- package/dist/tools/fg-expected-points.d.ts +3 -0
- package/dist/tools/fg-expected-points.d.ts.map +1 -0
- package/dist/tools/fg-expected-points.js +36 -0
- package/dist/tools/fg-expected-points.js.map +1 -0
- package/dist/tools/fpi.d.ts +3 -0
- package/dist/tools/fpi.d.ts.map +1 -0
- package/dist/tools/fpi.js +65 -0
- package/dist/tools/fpi.js.map +1 -0
- package/dist/tools/game-havoc.d.ts +3 -0
- package/dist/tools/game-havoc.d.ts.map +1 -0
- package/dist/tools/game-havoc.js +76 -0
- package/dist/tools/game-havoc.js.map +1 -0
- package/dist/tools/game-media.d.ts +3 -0
- package/dist/tools/game-media.d.ts.map +1 -0
- package/dist/tools/game-media.js +66 -0
- package/dist/tools/game-media.js.map +1 -0
- package/dist/tools/game-player-stats.d.ts +3 -0
- package/dist/tools/game-player-stats.d.ts.map +1 -0
- package/dist/tools/game-player-stats.js +97 -0
- package/dist/tools/game-player-stats.js.map +1 -0
- package/dist/tools/game-ppa.d.ts +3 -0
- package/dist/tools/game-ppa.d.ts.map +1 -0
- package/dist/tools/game-ppa.js +68 -0
- package/dist/tools/game-ppa.js.map +1 -0
- package/dist/tools/game-weather.d.ts +3 -0
- package/dist/tools/game-weather.d.ts.map +1 -0
- package/dist/tools/game-weather.js +70 -0
- package/dist/tools/game-weather.js.map +1 -0
- package/dist/tools/kicker-paar.d.ts +3 -0
- package/dist/tools/kicker-paar.d.ts.map +1 -0
- package/dist/tools/kicker-paar.js +70 -0
- package/dist/tools/kicker-paar.js.map +1 -0
- package/dist/tools/live-plays.d.ts +3 -0
- package/dist/tools/live-plays.d.ts.map +1 -0
- package/dist/tools/live-plays.js +41 -0
- package/dist/tools/live-plays.js.map +1 -0
- package/dist/tools/play-stats.d.ts +3 -0
- package/dist/tools/play-stats.d.ts.map +1 -0
- package/dist/tools/play-stats.js +82 -0
- package/dist/tools/play-stats.js.map +1 -0
- package/dist/tools/play-types.d.ts +3 -0
- package/dist/tools/play-types.d.ts.map +1 -0
- package/dist/tools/play-types.js +32 -0
- package/dist/tools/play-types.js.map +1 -0
- package/dist/tools/player-ppa-game.d.ts +3 -0
- package/dist/tools/player-ppa-game.d.ts.map +1 -0
- package/dist/tools/player-ppa-game.js +100 -0
- package/dist/tools/player-ppa-game.js.map +1 -0
- package/dist/tools/player-ppa-season.d.ts +3 -0
- package/dist/tools/player-ppa-season.d.ts.map +1 -0
- package/dist/tools/player-ppa-season.js +94 -0
- package/dist/tools/player-ppa-season.js.map +1 -0
- package/dist/tools/player-search.d.ts +3 -0
- package/dist/tools/player-search.d.ts.map +1 -0
- package/dist/tools/player-search.js +74 -0
- package/dist/tools/player-search.js.map +1 -0
- package/dist/tools/player-season-stats.d.ts +3 -0
- package/dist/tools/player-season-stats.d.ts.map +1 -0
- package/dist/tools/player-season-stats.js +97 -0
- package/dist/tools/player-season-stats.js.map +1 -0
- package/dist/tools/player-usage.d.ts +3 -0
- package/dist/tools/player-usage.d.ts.map +1 -0
- package/dist/tools/player-usage.js +87 -0
- package/dist/tools/player-usage.js.map +1 -0
- package/dist/tools/plays.d.ts +3 -0
- package/dist/tools/plays.d.ts.map +1 -0
- package/dist/tools/plays.js +87 -0
- package/dist/tools/plays.js.map +1 -0
- package/dist/tools/predicted-points.d.ts +3 -0
- package/dist/tools/predicted-points.d.ts.map +1 -0
- package/dist/tools/predicted-points.js +50 -0
- package/dist/tools/predicted-points.js.map +1 -0
- package/dist/tools/pregame-win-prob.d.ts +3 -0
- package/dist/tools/pregame-win-prob.d.ts.map +1 -0
- package/dist/tools/pregame-win-prob.js +65 -0
- package/dist/tools/pregame-win-prob.js.map +1 -0
- package/dist/tools/rankings.d.ts +3 -0
- package/dist/tools/rankings.d.ts.map +1 -0
- package/dist/tools/rankings.js +62 -0
- package/dist/tools/rankings.js.map +1 -0
- package/dist/tools/recruiting-groups.d.ts +3 -0
- package/dist/tools/recruiting-groups.d.ts.map +1 -0
- package/dist/tools/recruiting-groups.js +77 -0
- package/dist/tools/recruiting-groups.js.map +1 -0
- package/dist/tools/recruits.d.ts +3 -0
- package/dist/tools/recruits.d.ts.map +1 -0
- package/dist/tools/recruits.js +72 -0
- package/dist/tools/recruits.js.map +1 -0
- package/dist/tools/returning-production.d.ts +3 -0
- package/dist/tools/returning-production.d.ts.map +1 -0
- package/dist/tools/returning-production.js +68 -0
- package/dist/tools/returning-production.js.map +1 -0
- package/dist/tools/roster.d.ts +3 -0
- package/dist/tools/roster.d.ts.map +1 -0
- package/dist/tools/roster.js +59 -0
- package/dist/tools/roster.js.map +1 -0
- package/dist/tools/scoreboard.d.ts +3 -0
- package/dist/tools/scoreboard.d.ts.map +1 -0
- package/dist/tools/scoreboard.js +53 -0
- package/dist/tools/scoreboard.js.map +1 -0
- package/dist/tools/season-advanced.d.ts.map +1 -1
- package/dist/tools/season-advanced.js +60 -17
- package/dist/tools/season-advanced.js.map +1 -1
- package/dist/tools/season-stats.d.ts.map +1 -1
- package/dist/tools/season-stats.js +32 -7
- package/dist/tools/season-stats.js.map +1 -1
- package/dist/tools/srs.d.ts +3 -0
- package/dist/tools/srs.d.ts.map +1 -0
- package/dist/tools/srs.js +65 -0
- package/dist/tools/srs.js.map +1 -0
- package/dist/tools/stat-categories.d.ts +3 -0
- package/dist/tools/stat-categories.d.ts.map +1 -0
- package/dist/tools/stat-categories.js +32 -0
- package/dist/tools/stat-categories.js.map +1 -0
- package/dist/tools/team-ppa.d.ts +3 -0
- package/dist/tools/team-ppa.d.ts.map +1 -0
- package/dist/tools/team-ppa.js +66 -0
- package/dist/tools/team-ppa.js.map +1 -0
- package/dist/tools/team-recruiting-rankings.d.ts +3 -0
- package/dist/tools/team-recruiting-rankings.d.ts.map +1 -0
- package/dist/tools/team-recruiting-rankings.js +53 -0
- package/dist/tools/team-recruiting-rankings.js.map +1 -0
- package/dist/tools/team-talent.d.ts +3 -0
- package/dist/tools/team-talent.d.ts.map +1 -0
- package/dist/tools/team-talent.js +42 -0
- package/dist/tools/team-talent.js.map +1 -0
- package/dist/tools/teams-ats.d.ts +3 -0
- package/dist/tools/teams-ats.d.ts.map +1 -0
- package/dist/tools/teams-ats.js +56 -0
- package/dist/tools/teams-ats.js.map +1 -0
- package/dist/tools/teams.d.ts +3 -0
- package/dist/tools/teams.d.ts.map +1 -0
- package/dist/tools/teams.js +66 -0
- package/dist/tools/teams.js.map +1 -0
- package/dist/tools/transfer-portal.d.ts +3 -0
- package/dist/tools/transfer-portal.d.ts.map +1 -0
- package/dist/tools/transfer-portal.js +42 -0
- package/dist/tools/transfer-portal.js.map +1 -0
- package/dist/tools/venues.d.ts +3 -0
- package/dist/tools/venues.d.ts.map +1 -0
- package/dist/tools/venues.js +32 -0
- package/dist/tools/venues.js.map +1 -0
- package/dist/tools/win-probability.d.ts +3 -0
- package/dist/tools/win-probability.d.ts.map +1 -0
- package/dist/tools/win-probability.js +44 -0
- package/dist/tools/win-probability.js.map +1 -0
- package/package.json +1 -1
- package/dist/prompts.d.ts +0 -3
- package/dist/prompts.d.ts.map +0 -1
- package/dist/prompts.js +0 -242
- package/dist/prompts.js.map +0 -1
- package/dist/tools/export-subtitles.d.ts +0 -23
- package/dist/tools/export-subtitles.d.ts.map +0 -1
- package/dist/tools/export-subtitles.js +0 -102
- package/dist/tools/export-subtitles.js.map +0 -1
- package/dist/tools/export-subtitles.test.d.ts +0 -2
- package/dist/tools/export-subtitles.test.d.ts.map +0 -1
- package/dist/tools/export-subtitles.test.js +0 -152
- package/dist/tools/export-subtitles.test.js.map +0 -1
- package/dist/tools/read-transcript.d.ts +0 -9
- package/dist/tools/read-transcript.d.ts.map +0 -1
- package/dist/tools/read-transcript.js +0 -72
- package/dist/tools/read-transcript.js.map +0 -1
- package/dist/tools/read-transcript.test.d.ts +0 -2
- package/dist/tools/read-transcript.test.d.ts.map +0 -1
- package/dist/tools/read-transcript.test.js +0 -94
- package/dist/tools/read-transcript.test.js.map +0 -1
- package/dist/tools/transcript-types.d.ts +0 -36
- package/dist/tools/transcript-types.d.ts.map +0 -1
- package/dist/tools/transcript-types.js +0 -2
- package/dist/tools/transcript-types.js.map +0 -1
- package/dist/tools/write-chapters.d.ts +0 -40
- package/dist/tools/write-chapters.d.ts.map +0 -1
- package/dist/tools/write-chapters.js +0 -143
- package/dist/tools/write-chapters.js.map +0 -1
- package/dist/tools/write-chapters.test.d.ts +0 -2
- package/dist/tools/write-chapters.test.d.ts.map +0 -1
- package/dist/tools/write-chapters.test.js +0 -167
- package/dist/tools/write-chapters.test.js.map +0 -1
- package/dist/tools/write-clip-candidates.d.ts +0 -30
- package/dist/tools/write-clip-candidates.d.ts.map +0 -1
- package/dist/tools/write-clip-candidates.js +0 -130
- package/dist/tools/write-clip-candidates.js.map +0 -1
- package/dist/tools/write-clip-candidates.test.d.ts +0 -2
- package/dist/tools/write-clip-candidates.test.d.ts.map +0 -1
- package/dist/tools/write-clip-candidates.test.js +0 -213
- package/dist/tools/write-clip-candidates.test.js.map +0 -1
- package/dist/tools/write-description.d.ts +0 -11
- package/dist/tools/write-description.d.ts.map +0 -1
- package/dist/tools/write-description.js +0 -71
- package/dist/tools/write-description.js.map +0 -1
- package/dist/tools/write-description.test.d.ts +0 -2
- package/dist/tools/write-description.test.d.ts.map +0 -1
- package/dist/tools/write-description.test.js +0 -42
- package/dist/tools/write-description.test.js.map +0 -1
- package/dist/tools/write-transcript.d.ts +0 -20
- package/dist/tools/write-transcript.d.ts.map +0 -1
- package/dist/tools/write-transcript.js +0 -133
- package/dist/tools/write-transcript.js.map +0 -1
- package/dist/tools/write-transcript.test.d.ts +0 -2
- package/dist/tools/write-transcript.test.d.ts.map +0 -1
- package/dist/tools/write-transcript.test.js +0 -133
- package/dist/tools/write-transcript.test.js.map +0 -1
package/dist/exports.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4DzE;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2DnD"}
|
package/dist/exports.js
CHANGED
|
@@ -1,16 +1,61 @@
|
|
|
1
1
|
import { initCfbdClient } from "./cfbd-client.js";
|
|
2
|
+
import { registerAdjustedPassingTool } from "./tools/adjusted-passing.js";
|
|
3
|
+
import { registerAdjustedRushingTool } from "./tools/adjusted-rushing.js";
|
|
4
|
+
import { registerAdjustedTeamStatsTool } from "./tools/adjusted-team-stats.js";
|
|
2
5
|
import { registerAdvancedStatsTool } from "./tools/advanced-stats.js";
|
|
3
6
|
import { registerBoxScoreTool } from "./tools/box-score.js";
|
|
4
7
|
import { registerBuildGlossaryTool } from "./tools/build-glossary.js";
|
|
8
|
+
import { registerCalendarTool } from "./tools/calendar.js";
|
|
9
|
+
import { registerCoachesTool } from "./tools/coaches.js";
|
|
5
10
|
import { registerConferenceRatingsTool } from "./tools/conference-ratings.js";
|
|
11
|
+
import { registerConferencesTool } from "./tools/conferences.js";
|
|
12
|
+
import { registerDraftPicksTool } from "./tools/draft-picks.js";
|
|
13
|
+
import { registerDrivesTool } from "./tools/drives.js";
|
|
14
|
+
import { registerEloTool } from "./tools/elo.js";
|
|
15
|
+
import { registerFgExpectedPointsTool } from "./tools/fg-expected-points.js";
|
|
16
|
+
import { registerFpiTool } from "./tools/fpi.js";
|
|
17
|
+
import { registerGameHavocTool } from "./tools/game-havoc.js";
|
|
18
|
+
import { registerGameMediaTool } from "./tools/game-media.js";
|
|
19
|
+
import { registerGamePlayerStatsTool } from "./tools/game-player-stats.js";
|
|
20
|
+
import { registerGamePpaTool } from "./tools/game-ppa.js";
|
|
21
|
+
import { registerGameWeatherTool } from "./tools/game-weather.js";
|
|
6
22
|
import { registerGamesTool } from "./tools/games.js";
|
|
7
23
|
import { registerHeadToHeadTool } from "./tools/head-to-head.js";
|
|
24
|
+
import { registerKickerPaarTool } from "./tools/kicker-paar.js";
|
|
25
|
+
import { registerLinesTool } from "./tools/betting-lines.js";
|
|
26
|
+
import { registerLivePlaysTool } from "./tools/live-plays.js";
|
|
27
|
+
import { registerPlayerPpaGameTool } from "./tools/player-ppa-game.js";
|
|
28
|
+
import { registerPlayerPpaSeasonTool } from "./tools/player-ppa-season.js";
|
|
29
|
+
import { registerPlayerSearchTool } from "./tools/player-search.js";
|
|
30
|
+
import { registerPlayerSeasonStatsTool } from "./tools/player-season-stats.js";
|
|
31
|
+
import { registerPlayerUsageTool } from "./tools/player-usage.js";
|
|
32
|
+
import { registerPlayStatsTool } from "./tools/play-stats.js";
|
|
33
|
+
import { registerPlaysTool } from "./tools/plays.js";
|
|
34
|
+
import { registerPlayTypesTool } from "./tools/play-types.js";
|
|
35
|
+
import { registerPredictedPointsTool } from "./tools/predicted-points.js";
|
|
36
|
+
import { registerPregameWinProbTool } from "./tools/pregame-win-prob.js";
|
|
37
|
+
import { registerRankingsTool } from "./tools/rankings.js";
|
|
8
38
|
import { registerRatingsTool } from "./tools/ratings.js";
|
|
39
|
+
import { registerRecruitingGroupsTool } from "./tools/recruiting-groups.js";
|
|
40
|
+
import { registerRecruitsTool } from "./tools/recruits.js";
|
|
9
41
|
import { registerResources } from "./resources.js";
|
|
42
|
+
import { registerReturningProductionTool } from "./tools/returning-production.js";
|
|
43
|
+
import { registerRosterTool } from "./tools/roster.js";
|
|
10
44
|
import { registerSeasonAdvancedTool } from "./tools/season-advanced.js";
|
|
11
45
|
import { registerSeasonRecordsTool } from "./tools/season-records.js";
|
|
12
46
|
import { registerSeasonStatsTool } from "./tools/season-stats.js";
|
|
47
|
+
import { registerScoreboardTool } from "./tools/scoreboard.js";
|
|
48
|
+
import { registerSrsTool } from "./tools/srs.js";
|
|
49
|
+
import { registerStatCategoriesTool } from "./tools/stat-categories.js";
|
|
13
50
|
import { registerStatusTool } from "./tools/status.js";
|
|
51
|
+
import { registerTeamRecruitingRankingsTool } from "./tools/team-recruiting-rankings.js";
|
|
52
|
+
import { registerTeamTalentTool } from "./tools/team-talent.js";
|
|
53
|
+
import { registerTeamPpaTool } from "./tools/team-ppa.js";
|
|
54
|
+
import { registerTeamsAtsTool } from "./tools/teams-ats.js";
|
|
55
|
+
import { registerTeamsTool } from "./tools/teams.js";
|
|
56
|
+
import { registerTransferPortalTool } from "./tools/transfer-portal.js";
|
|
57
|
+
import { registerVenuesTool } from "./tools/venues.js";
|
|
58
|
+
import { registerWinProbabilityTool } from "./tools/win-probability.js";
|
|
14
59
|
/**
|
|
15
60
|
* Register all cfb-stats-mcp tools and resources on the given server.
|
|
16
61
|
* Calls initCfbdClient() first (non-fatal if CFBD_API_KEY is absent).
|
|
@@ -19,14 +64,59 @@ export function registerAll(server) {
|
|
|
19
64
|
initCfbdClient();
|
|
20
65
|
registerStatusTool(server);
|
|
21
66
|
registerGamesTool(server);
|
|
67
|
+
registerGamePlayerStatsTool(server);
|
|
22
68
|
registerBoxScoreTool(server);
|
|
69
|
+
registerCalendarTool(server);
|
|
23
70
|
registerAdvancedStatsTool(server);
|
|
71
|
+
registerAdjustedPassingTool(server);
|
|
72
|
+
registerAdjustedRushingTool(server);
|
|
73
|
+
registerAdjustedTeamStatsTool(server);
|
|
74
|
+
registerKickerPaarTool(server);
|
|
75
|
+
registerGameHavocTool(server);
|
|
24
76
|
registerSeasonRecordsTool(server);
|
|
25
77
|
registerRatingsTool(server);
|
|
78
|
+
registerRankingsTool(server);
|
|
79
|
+
registerSrsTool(server);
|
|
80
|
+
registerEloTool(server);
|
|
81
|
+
registerFpiTool(server);
|
|
82
|
+
registerLinesTool(server);
|
|
83
|
+
registerPregameWinProbTool(server);
|
|
84
|
+
registerTeamsAtsTool(server);
|
|
85
|
+
registerDraftPicksTool(server);
|
|
26
86
|
registerConferenceRatingsTool(server);
|
|
87
|
+
registerGameMediaTool(server);
|
|
88
|
+
registerGameWeatherTool(server);
|
|
27
89
|
registerHeadToHeadTool(server);
|
|
90
|
+
registerDrivesTool(server);
|
|
91
|
+
registerPlaysTool(server);
|
|
92
|
+
registerPlayStatsTool(server);
|
|
93
|
+
registerCoachesTool(server);
|
|
94
|
+
registerPlayerPpaGameTool(server);
|
|
95
|
+
registerPlayerPpaSeasonTool(server);
|
|
96
|
+
registerPlayerSeasonStatsTool(server);
|
|
97
|
+
registerPlayerUsageTool(server);
|
|
28
98
|
registerSeasonStatsTool(server);
|
|
29
99
|
registerSeasonAdvancedTool(server);
|
|
100
|
+
registerPlayerSearchTool(server);
|
|
101
|
+
registerRosterTool(server);
|
|
102
|
+
registerReturningProductionTool(server);
|
|
103
|
+
registerRecruitsTool(server);
|
|
104
|
+
registerTeamRecruitingRankingsTool(server);
|
|
105
|
+
registerRecruitingGroupsTool(server);
|
|
106
|
+
registerWinProbabilityTool(server);
|
|
107
|
+
registerPredictedPointsTool(server);
|
|
108
|
+
registerTeamPpaTool(server);
|
|
109
|
+
registerGamePpaTool(server);
|
|
110
|
+
registerFgExpectedPointsTool(server);
|
|
111
|
+
registerScoreboardTool(server);
|
|
112
|
+
registerLivePlaysTool(server);
|
|
113
|
+
registerTeamsTool(server);
|
|
114
|
+
registerConferencesTool(server);
|
|
115
|
+
registerVenuesTool(server);
|
|
116
|
+
registerStatCategoriesTool(server);
|
|
117
|
+
registerPlayTypesTool(server);
|
|
118
|
+
registerTransferPortalTool(server);
|
|
119
|
+
registerTeamTalentTool(server);
|
|
30
120
|
registerBuildGlossaryTool(server);
|
|
31
121
|
registerResources(server);
|
|
32
122
|
}
|
package/dist/exports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PlayerWeightedEPA } from "cfbd";
|
|
2
|
+
export declare function formatAdjustedPlayerStats(stats: PlayerWeightedEPA[], label: string, filters: {
|
|
3
|
+
year?: number;
|
|
4
|
+
team?: string;
|
|
5
|
+
conference?: string;
|
|
6
|
+
position?: string;
|
|
7
|
+
}): string;
|
|
8
|
+
//# sourceMappingURL=adjusted-player-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adjusted-player-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/adjusted-player-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAgD9C,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,iBAAiB,EAAE,EAC1B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,MAAM,CAoBR"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const RANK_COL = 6;
|
|
2
|
+
const NAME_COL = 24;
|
|
3
|
+
const POS_COL = 6;
|
|
4
|
+
const TEAM_COL = 16;
|
|
5
|
+
const CONF_COL = 10;
|
|
6
|
+
const WEPA_COL = 10;
|
|
7
|
+
const PLAYS_COL = 8;
|
|
8
|
+
function header() {
|
|
9
|
+
return ("Rank".padEnd(RANK_COL) +
|
|
10
|
+
"Player".padEnd(NAME_COL) +
|
|
11
|
+
"Pos".padEnd(POS_COL) +
|
|
12
|
+
"Team".padEnd(TEAM_COL) +
|
|
13
|
+
"Conf".padEnd(CONF_COL) +
|
|
14
|
+
"WEPA".padStart(WEPA_COL) +
|
|
15
|
+
"Plays".padStart(PLAYS_COL));
|
|
16
|
+
}
|
|
17
|
+
function playerRow(p, rank) {
|
|
18
|
+
return (String(rank).padEnd(RANK_COL) +
|
|
19
|
+
(p.athleteName ?? "Unknown").padEnd(NAME_COL) +
|
|
20
|
+
(p.position ?? "--").padEnd(POS_COL) +
|
|
21
|
+
(p.team ?? "--").padEnd(TEAM_COL) +
|
|
22
|
+
(p.conference ?? "--").padEnd(CONF_COL) +
|
|
23
|
+
(p.wepa != null ? p.wepa.toFixed(3) : "--").padStart(WEPA_COL) +
|
|
24
|
+
(p.plays != null ? String(p.plays) : "--").padStart(PLAYS_COL));
|
|
25
|
+
}
|
|
26
|
+
function filterAnnotation(filters) {
|
|
27
|
+
const parts = [];
|
|
28
|
+
if (filters.year != null)
|
|
29
|
+
parts.push(String(filters.year));
|
|
30
|
+
if (filters.team != null)
|
|
31
|
+
parts.push(filters.team);
|
|
32
|
+
if (filters.conference != null)
|
|
33
|
+
parts.push(filters.conference);
|
|
34
|
+
if (filters.position != null)
|
|
35
|
+
parts.push(filters.position);
|
|
36
|
+
return parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
37
|
+
}
|
|
38
|
+
export function formatAdjustedPlayerStats(stats, label, filters) {
|
|
39
|
+
if (stats.length === 0) {
|
|
40
|
+
return `No adjusted ${label.toLowerCase()} stats found for the given filters.`;
|
|
41
|
+
}
|
|
42
|
+
const sorted = [...stats].sort((a, b) => (b.wepa ?? 0) - (a.wepa ?? 0));
|
|
43
|
+
const title = `Adjusted ${label} Stats (WEPA)` + filterAnnotation(filters);
|
|
44
|
+
const separator = "\u2500".repeat(80);
|
|
45
|
+
return [
|
|
46
|
+
title,
|
|
47
|
+
separator,
|
|
48
|
+
header(),
|
|
49
|
+
separator,
|
|
50
|
+
...sorted.map((p, i) => playerRow(p, i + 1)),
|
|
51
|
+
].join("\n");
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=adjusted-player-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adjusted-player-formatter.js","sourceRoot":"","sources":["../../src/formatters/adjusted-player-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AdjustedTeamMetrics } from "cfbd";
|
|
2
|
+
export declare function formatAdjustedTeamStats(stats: AdjustedTeamMetrics[], filters: {
|
|
3
|
+
year?: number;
|
|
4
|
+
team?: string;
|
|
5
|
+
conference?: string;
|
|
6
|
+
}): string;
|
|
7
|
+
//# sourceMappingURL=adjusted-team-stats-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adjusted-team-stats-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/adjusted-team-stats-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AA6FhD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7D,MAAM,CAeR"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
const LABEL_COL_WIDTH = 24;
|
|
2
|
+
const VALUE_COL_WIDTH = 10;
|
|
3
|
+
function val(v, decimals = 2) {
|
|
4
|
+
return v != null ? v.toFixed(decimals) : "\u2014";
|
|
5
|
+
}
|
|
6
|
+
function pct(v) {
|
|
7
|
+
return v != null ? (v * 100).toFixed(1) + "%" : "\u2014";
|
|
8
|
+
}
|
|
9
|
+
function row(label, value) {
|
|
10
|
+
return label.padEnd(LABEL_COL_WIDTH) + value.padStart(VALUE_COL_WIDTH);
|
|
11
|
+
}
|
|
12
|
+
const SEP = "\u2500".repeat(40);
|
|
13
|
+
function formatSingleTeam(stat) {
|
|
14
|
+
const header = `${stat.team} \u2014 ${stat.year} Opponent-Adjusted Stats`;
|
|
15
|
+
const sections = [header];
|
|
16
|
+
// EPA section
|
|
17
|
+
sections.push([
|
|
18
|
+
"EPA (Opponent-Adjusted)",
|
|
19
|
+
SEP,
|
|
20
|
+
" Offense",
|
|
21
|
+
" " + row("Total", val(stat.epa.total)),
|
|
22
|
+
" " + row("Passing", val(stat.epa.passing)),
|
|
23
|
+
" " + row("Rushing", val(stat.epa.rushing)),
|
|
24
|
+
" Defense",
|
|
25
|
+
" " + row("Total", val(stat.epaAllowed.total)),
|
|
26
|
+
" " + row("Passing", val(stat.epaAllowed.passing)),
|
|
27
|
+
" " + row("Rushing", val(stat.epaAllowed.rushing)),
|
|
28
|
+
].join("\n"));
|
|
29
|
+
// Adjusted Success Rate
|
|
30
|
+
sections.push([
|
|
31
|
+
"Adjusted Success Rate",
|
|
32
|
+
SEP,
|
|
33
|
+
" Offense",
|
|
34
|
+
" " + row("Total", pct(stat.successRate.total)),
|
|
35
|
+
" " + row("Standard Downs", pct(stat.successRate.standardDowns)),
|
|
36
|
+
" " + row("Passing Downs", pct(stat.successRate.passingDowns)),
|
|
37
|
+
" Defense",
|
|
38
|
+
" " + row("Total", pct(stat.successRateAllowed.total)),
|
|
39
|
+
" " +
|
|
40
|
+
row("Standard Downs", pct(stat.successRateAllowed.standardDowns)),
|
|
41
|
+
" " +
|
|
42
|
+
row("Passing Downs", pct(stat.successRateAllowed.passingDowns)),
|
|
43
|
+
].join("\n"));
|
|
44
|
+
// Adjusted Explosiveness
|
|
45
|
+
sections.push([
|
|
46
|
+
"Adjusted Explosiveness",
|
|
47
|
+
SEP,
|
|
48
|
+
row("Offense", val(stat.explosiveness)),
|
|
49
|
+
row("Defense", val(stat.explosivenessAllowed)),
|
|
50
|
+
].join("\n"));
|
|
51
|
+
return sections.join("\n\n");
|
|
52
|
+
}
|
|
53
|
+
function formatMultiTeam(stats) {
|
|
54
|
+
const sorted = [...stats].sort((a, b) => (b.epa.total ?? 0) - (a.epa.total ?? 0));
|
|
55
|
+
const header = "Rank Team Conf Off EPA Def EPA Off Succ% Def Succ% Expl";
|
|
56
|
+
const sep = "\u2500".repeat(header.length);
|
|
57
|
+
const rows = sorted.map((s, i) => {
|
|
58
|
+
const rank = String(i + 1).padEnd(6);
|
|
59
|
+
const team = (s.team ?? "").padEnd(21);
|
|
60
|
+
const conf = (s.conference ?? "").padEnd(9);
|
|
61
|
+
const offEpa = val(s.epa.total).padStart(7);
|
|
62
|
+
const defEpa = val(s.epaAllowed.total).padStart(8);
|
|
63
|
+
const offSucc = pct(s.successRate.total).padStart(10);
|
|
64
|
+
const defSucc = pct(s.successRateAllowed.total).padStart(10);
|
|
65
|
+
const expl = val(s.explosiveness).padStart(6);
|
|
66
|
+
return `${rank}${team}${conf}${offEpa}${defEpa}${offSucc}${defSucc}${expl}`;
|
|
67
|
+
});
|
|
68
|
+
return [header, sep, ...rows].join("\n");
|
|
69
|
+
}
|
|
70
|
+
export function formatAdjustedTeamStats(stats, filters) {
|
|
71
|
+
if (stats.length === 0) {
|
|
72
|
+
return "No adjusted team stats found for the given filters.";
|
|
73
|
+
}
|
|
74
|
+
if (stats.length === 1 || filters.team) {
|
|
75
|
+
const stat = filters.team
|
|
76
|
+
? stats.find((s) => s.team?.toLowerCase() === filters.team.toLowerCase()) ?? stats[0]
|
|
77
|
+
: stats[0];
|
|
78
|
+
return formatSingleTeam(stat);
|
|
79
|
+
}
|
|
80
|
+
return formatMultiTeam(stats);
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=adjusted-team-stats-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adjusted-team-stats-formatter.js","sourceRoot":"","sources":["../../src/formatters/adjusted-team-stats-formatter.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,SAAS,GAAG,CAAC,CAA4B,EAAE,QAAQ,GAAG,CAAC;IACrD,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,SAAS,GAAG,CAAC,CAA4B;IACvC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3D,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,KAAa;IACvC,OAAO,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEhC,SAAS,gBAAgB,CAAC,IAAyB;IACjD,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,IAAI,0BAA0B,CAAC;IAC1E,MAAM,QAAQ,GAAa,CAAC,MAAM,CAAC,CAAC;IAEpC,cAAc;IACd,QAAQ,CAAC,IAAI,CACX;QACE,yBAAyB;QACzB,GAAG;QACH,WAAW;QACX,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,WAAW;QACX,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IAEF,wBAAwB;IACxB,QAAQ,CAAC,IAAI,CACX;QACE,uBAAuB;QACvB,GAAG;QACH,WAAW;QACX,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,GAAG,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACjE,IAAI,GAAG,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC/D,WAAW;QACX,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI;YACF,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QACnE,IAAI;YACF,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;KAClE,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IAEF,yBAAyB;IACzB,QAAQ,CAAC,IAAI,CACX;QACE,wBAAwB;QACxB,GAAG;QACH,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;KAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,eAAe,CAAC,KAA4B;IACnD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAClD,CAAC;IAEF,MAAM,MAAM,GACV,kFAAkF,CAAC;IACrF,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9C,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,EAAE,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAA4B,EAC5B,OAA8D;IAE9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,qDAAqD,CAAC;IAC/D,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;YACvB,CAAC,CAAC,KAAK,CAAC,IAAI,CACR,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,IAAK,CAAC,WAAW,EAAE,CAC7D,IAAI,KAAK,CAAC,CAAC,CAAC;YACf,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACb,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"betting-lines-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/betting-lines-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,MAAM,CAAC;AAyClD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAM/D"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
function formatLine(line) {
|
|
2
|
+
const spread = line.formattedSpread || "\u2014";
|
|
3
|
+
const ou = line.overUnder != null ? String(line.overUnder) : "\u2014";
|
|
4
|
+
const homeMl = line.homeMoneyline != null ? String(line.homeMoneyline) : "\u2014";
|
|
5
|
+
const awayMl = line.awayMoneyline != null ? String(line.awayMoneyline) : "\u2014";
|
|
6
|
+
let spreadStr = spread;
|
|
7
|
+
if (line.spreadOpen != null &&
|
|
8
|
+
line.spread != null &&
|
|
9
|
+
line.spreadOpen !== line.spread) {
|
|
10
|
+
spreadStr = `${spread} (opened ${line.spreadOpen})`;
|
|
11
|
+
}
|
|
12
|
+
let ouStr = `O/U ${ou}`;
|
|
13
|
+
if (line.overUnderOpen != null &&
|
|
14
|
+
line.overUnder != null &&
|
|
15
|
+
line.overUnderOpen !== line.overUnder) {
|
|
16
|
+
ouStr = `O/U ${ou} (opened ${line.overUnderOpen})`;
|
|
17
|
+
}
|
|
18
|
+
return ` ${line.provider}: ${spreadStr} | ${ouStr} | ML: Home ${homeMl} / Away ${awayMl}`;
|
|
19
|
+
}
|
|
20
|
+
function formatGame(game) {
|
|
21
|
+
let header = `${game.awayTeam} at ${game.homeTeam} \u2014 Week ${game.week}, ${game.season}`;
|
|
22
|
+
if (game.awayScore != null && game.homeScore != null) {
|
|
23
|
+
header += ` (Final: ${game.awayScore}-${game.homeScore})`;
|
|
24
|
+
}
|
|
25
|
+
const lines = (game.lines ?? []).map(formatLine);
|
|
26
|
+
return [header, ...lines].join("\n");
|
|
27
|
+
}
|
|
28
|
+
export function formatBettingLines(games) {
|
|
29
|
+
if (games.length === 0) {
|
|
30
|
+
return "No betting lines found for the specified filters.";
|
|
31
|
+
}
|
|
32
|
+
return games.map(formatGame).join("\n\n");
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=betting-lines-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"betting-lines-formatter.js","sourceRoot":"","sources":["../../src/formatters/betting-lines-formatter.ts"],"names":[],"mappings":"AAEA,SAAS,UAAU,CAAC,IAAc;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC;IAChD,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtE,MAAM,MAAM,GACV,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrE,MAAM,MAAM,GACV,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAErE,IAAI,SAAS,GAAG,MAAM,CAAC;IACvB,IACE,IAAI,CAAC,UAAU,IAAI,IAAI;QACvB,IAAI,CAAC,MAAM,IAAI,IAAI;QACnB,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAC/B,CAAC;QACD,SAAS,GAAG,GAAG,MAAM,YAAY,IAAI,CAAC,UAAU,GAAG,CAAC;IACtD,CAAC;IAED,IAAI,KAAK,GAAG,OAAO,EAAE,EAAE,CAAC;IACxB,IACE,IAAI,CAAC,aAAa,IAAI,IAAI;QAC1B,IAAI,CAAC,SAAS,IAAI,IAAI;QACtB,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,SAAS,EACrC,CAAC;QACD,KAAK,GAAG,OAAO,EAAE,YAAY,IAAI,CAAC,aAAa,GAAG,CAAC;IACrD,CAAC;IAED,OAAO,KAAK,IAAI,CAAC,QAAQ,KAAK,SAAS,MAAM,KAAK,eAAe,MAAM,WAAW,MAAM,EAAE,CAAC;AAC7F,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB;IACnC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,QAAQ,gBAAgB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7F,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QACrD,MAAM,IAAI,YAAY,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;IAC5D,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,mDAAmD,CAAC;IAC7D,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/calendar-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AASzC,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EAAE,EACrB,IAAI,EAAE,MAAM,GACX,MAAM,CAiBR"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
function formatMMDD(dateStr) {
|
|
2
|
+
const d = new Date(dateStr);
|
|
3
|
+
const month = d.getMonth() + 1;
|
|
4
|
+
const day = d.getDate();
|
|
5
|
+
return `${month}/${day}`;
|
|
6
|
+
}
|
|
7
|
+
export function formatCalendar(weeks, year) {
|
|
8
|
+
if (weeks.length === 0) {
|
|
9
|
+
return `No calendar data found for ${year}`;
|
|
10
|
+
}
|
|
11
|
+
const lines = [];
|
|
12
|
+
lines.push(`${year} Season Calendar`);
|
|
13
|
+
lines.push("\u2500".repeat(40));
|
|
14
|
+
for (const week of weeks) {
|
|
15
|
+
const start = formatMMDD(week.startDate);
|
|
16
|
+
const end = formatMMDD(week.endDate);
|
|
17
|
+
lines.push(`Week ${week.week} (${week.seasonType}): ${start} - ${end}`);
|
|
18
|
+
}
|
|
19
|
+
return lines.join("\n");
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=calendar-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar-formatter.js","sourceRoot":"","sources":["../../src/formatters/calendar-formatter.ts"],"names":[],"mappings":"AAEA,SAAS,UAAU,CAAC,OAAe;IACjC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACxB,OAAO,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAqB,EACrB,IAAY;IAEZ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,8BAA8B,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,kBAAkB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,MAAM,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coaches-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/coaches-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,MAAM,CAAC;AAE/C,wBAAgB,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAkCtD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export function formatCoaches(coaches) {
|
|
2
|
+
if (coaches.length === 0) {
|
|
3
|
+
return "No coaching records found for the given filters.";
|
|
4
|
+
}
|
|
5
|
+
const blocks = [];
|
|
6
|
+
for (const coach of coaches) {
|
|
7
|
+
const lines = [];
|
|
8
|
+
const nameHeader = coach.hireDate
|
|
9
|
+
? `${coach.firstName} ${coach.lastName} (hired ${coach.hireDate})`
|
|
10
|
+
: `${coach.firstName} ${coach.lastName}`;
|
|
11
|
+
lines.push(nameHeader);
|
|
12
|
+
lines.push("\u2500".repeat(40));
|
|
13
|
+
const career = careerTotals(coach.seasons);
|
|
14
|
+
const winPct = career.games > 0 ? (career.wins / career.games).toFixed(3) : ".000";
|
|
15
|
+
const tiesSuffix = career.ties > 0 ? `-${career.ties}` : "";
|
|
16
|
+
lines.push(`Career: ${career.wins}-${career.losses}${tiesSuffix} (${winPct})`);
|
|
17
|
+
lines.push("");
|
|
18
|
+
const sorted = [...coach.seasons].sort((a, b) => a.year - b.year);
|
|
19
|
+
for (const s of sorted) {
|
|
20
|
+
lines.push(formatSeason(s));
|
|
21
|
+
}
|
|
22
|
+
blocks.push(lines.join("\n"));
|
|
23
|
+
}
|
|
24
|
+
return blocks.join("\n\n" + "\u2501".repeat(40) + "\n\n");
|
|
25
|
+
}
|
|
26
|
+
function careerTotals(seasons) {
|
|
27
|
+
let games = 0;
|
|
28
|
+
let wins = 0;
|
|
29
|
+
let losses = 0;
|
|
30
|
+
let ties = 0;
|
|
31
|
+
for (const s of seasons) {
|
|
32
|
+
games += s.games;
|
|
33
|
+
wins += s.wins;
|
|
34
|
+
losses += s.losses;
|
|
35
|
+
ties += s.ties;
|
|
36
|
+
}
|
|
37
|
+
return { games, wins, losses, ties };
|
|
38
|
+
}
|
|
39
|
+
function formatSeason(s) {
|
|
40
|
+
const tiesSuffix = s.ties > 0 ? `-${s.ties}` : "";
|
|
41
|
+
let line = `${s.year} ${s.school}: ${s.wins}-${s.losses}${tiesSuffix} (G: ${s.games})`;
|
|
42
|
+
const rankParts = [];
|
|
43
|
+
if (s.preseasonRank != null)
|
|
44
|
+
rankParts.push(`Pre: #${s.preseasonRank}`);
|
|
45
|
+
if (s.postseasonRank != null)
|
|
46
|
+
rankParts.push(`Post: #${s.postseasonRank}`);
|
|
47
|
+
if (rankParts.length > 0) {
|
|
48
|
+
line += ` ${rankParts.join(" ")}`;
|
|
49
|
+
}
|
|
50
|
+
if (s.spOverall != null) {
|
|
51
|
+
const off = s.spOffense != null ? s.spOffense.toFixed(1) : "?";
|
|
52
|
+
const def = s.spDefense != null ? s.spDefense.toFixed(1) : "?";
|
|
53
|
+
line += ` SP+: ${s.spOverall.toFixed(1)} (O: ${off} D: ${def})`;
|
|
54
|
+
}
|
|
55
|
+
return line;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=coaches-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coaches-formatter.js","sourceRoot":"","sources":["../../src/formatters/coaches-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conferences-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/conferences-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAIvC,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CA0CnE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const CLASSIFICATION_ORDER = ["fbs", "fcs"];
|
|
2
|
+
export function formatConferences(conferences) {
|
|
3
|
+
if (conferences.length === 0) {
|
|
4
|
+
return "No conference data available.";
|
|
5
|
+
}
|
|
6
|
+
// Group by classification
|
|
7
|
+
const grouped = new Map();
|
|
8
|
+
for (const conf of conferences) {
|
|
9
|
+
const cls = conf.classification ?? "unknown";
|
|
10
|
+
if (!grouped.has(cls))
|
|
11
|
+
grouped.set(cls, []);
|
|
12
|
+
grouped.get(cls).push(conf);
|
|
13
|
+
}
|
|
14
|
+
// Sort groups: FBS first, FCS second, then others alphabetically
|
|
15
|
+
const sortedKeys = [...grouped.keys()].sort((a, b) => {
|
|
16
|
+
const aIdx = CLASSIFICATION_ORDER.indexOf(a.toLowerCase());
|
|
17
|
+
const bIdx = CLASSIFICATION_ORDER.indexOf(b.toLowerCase());
|
|
18
|
+
if (aIdx !== -1 && bIdx !== -1)
|
|
19
|
+
return aIdx - bIdx;
|
|
20
|
+
if (aIdx !== -1)
|
|
21
|
+
return -1;
|
|
22
|
+
if (bIdx !== -1)
|
|
23
|
+
return 1;
|
|
24
|
+
return a.localeCompare(b);
|
|
25
|
+
});
|
|
26
|
+
const lines = ["Conferences", "\u2500".repeat(50)];
|
|
27
|
+
for (const cls of sortedKeys) {
|
|
28
|
+
const confs = grouped.get(cls);
|
|
29
|
+
confs.sort((a, b) => a.name.localeCompare(b.name));
|
|
30
|
+
lines.push("");
|
|
31
|
+
lines.push(`## ${cls.toUpperCase()}`);
|
|
32
|
+
for (const conf of confs) {
|
|
33
|
+
const abbr = conf.abbreviation ?? "-";
|
|
34
|
+
lines.push(`${conf.name} (${abbr}) -- ${cls}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
lines.push("");
|
|
38
|
+
lines.push(`${conferences.length} conferences`);
|
|
39
|
+
return lines.join("\n");
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=conferences-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conferences-formatter.js","sourceRoot":"","sources":["../../src/formatters/conferences-formatter.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE5C,MAAM,UAAU,iBAAiB,CAAC,WAAyB;IACzD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,+BAA+B,CAAC;IACzC,CAAC;IAED,0BAA0B;IAC1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,iEAAiE;IACjE,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3D,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,GAAG,IAAI,CAAC;QACnD,IAAI,IAAI,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7D,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,cAAc,CAAC,CAAC;IAEhD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-picks-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/draft-picks-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEtC,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAAE,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAgCR"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export function formatDraftPicks(picks, school, year) {
|
|
2
|
+
if (picks.length === 0) {
|
|
3
|
+
return "No draft picks found for the specified filters.";
|
|
4
|
+
}
|
|
5
|
+
const sorted = [...picks].sort((a, b) => a.overall - b.overall);
|
|
6
|
+
const parts = [];
|
|
7
|
+
if (school) {
|
|
8
|
+
parts.push(`${school} NFL Draft Picks${year ? ` -- ${year}` : ""}`);
|
|
9
|
+
}
|
|
10
|
+
else if (year) {
|
|
11
|
+
parts.push(`${year} NFL Draft`);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
parts.push("NFL Draft Picks");
|
|
15
|
+
}
|
|
16
|
+
parts.push("─".repeat(60));
|
|
17
|
+
for (const p of sorted) {
|
|
18
|
+
const rdPk = `Rd ${p.round}, Pick ${p.pick}`;
|
|
19
|
+
const overall = `#${p.overall}`;
|
|
20
|
+
const ranking = p.preDraftRanking != null ? ` (#${p.preDraftRanking})` : "";
|
|
21
|
+
const grade = p.preDraftGrade != null ? p.preDraftGrade.toFixed(1) : "—";
|
|
22
|
+
const college = school ? "" : ` ${p.collegeTeam}`;
|
|
23
|
+
parts.push(`${rdPk} ${overall} ${p.name}${ranking} ${p.position}${college} → ${p.nflTeam} Grade: ${grade}`);
|
|
24
|
+
}
|
|
25
|
+
return parts.join("\n");
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=draft-picks-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-picks-formatter.js","sourceRoot":"","sources":["../../src/formatters/draft-picks-formatter.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAC9B,KAAkB,EAClB,MAAe,EACf,IAAa;IAEb,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,iDAAiD,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,mBAAmB,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;SAAM,IAAI,IAAI,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,OAAO,GACX,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,KAAK,GACT,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAEnD,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG,OAAO,KAAK,CAAC,CAAC,QAAQ,GAAG,OAAO,OAAO,CAAC,CAAC,OAAO,YAAY,KAAK,EAAE,CACpG,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drives-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/drives-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAYlC,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAgCpD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
function formatTime(time) {
|
|
2
|
+
const min = time.minutes != null ? String(time.minutes) : "?";
|
|
3
|
+
const sec = time.seconds != null ? String(time.seconds).padStart(2, "0") : "??";
|
|
4
|
+
return `${min}:${sec}`;
|
|
5
|
+
}
|
|
6
|
+
export function formatDrives(drives) {
|
|
7
|
+
if (drives.length === 0) {
|
|
8
|
+
return "No drive data found for the given filters";
|
|
9
|
+
}
|
|
10
|
+
const byGame = new Map();
|
|
11
|
+
for (const drive of drives) {
|
|
12
|
+
const group = byGame.get(drive.gameId) ?? [];
|
|
13
|
+
group.push(drive);
|
|
14
|
+
byGame.set(drive.gameId, group);
|
|
15
|
+
}
|
|
16
|
+
const sections = [];
|
|
17
|
+
for (const [, gameDrives] of byGame) {
|
|
18
|
+
const first = gameDrives[0];
|
|
19
|
+
const lines = [];
|
|
20
|
+
lines.push(`${first.offense} vs ${first.defense}`);
|
|
21
|
+
for (const d of gameDrives) {
|
|
22
|
+
const num = d.driveNumber != null ? `#${d.driveNumber}` : "#?";
|
|
23
|
+
const time = formatTime(d.startTime);
|
|
24
|
+
const scoringMarker = d.scoring ? " *" : "";
|
|
25
|
+
lines.push(`${num} ${d.offense} Q${d.startPeriod} ${time} | ${d.startYardsToGoal}yd line | ${d.plays} plays, ${d.yards} yds | ${d.driveResult}${scoringMarker}`);
|
|
26
|
+
}
|
|
27
|
+
sections.push(lines.join("\n"));
|
|
28
|
+
}
|
|
29
|
+
return sections.join("\n\n");
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=drives-formatter.js.map
|