fansunited-data-layer 0.3.1 → 0.5.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.
@@ -3,5 +3,7 @@
3
3
  */
4
4
  export { getActiveSeason } from "./competition.helpers";
5
5
  export { getTeamNextMatch, getTeamPreviousMatch, getTeamUpcomingMatches, getTeamFinishedMatches, getTeamResultsTable, getTeamTopScorers, getTeamTopAssisters, getTeamTopAppearances, getTeamTopMinutesPlayed, getTeamTopCleanSheets, getTeamMostDecorated, } from "./team.helpers";
6
+ export { aggregatePlayerStatisticsFromMatches, getTopScorersFromMatches, getTopAssistersFromMatches, getMostCardedPlayersFromMatches, getTopGoalContributorsFromMatches, getAllPlayerStatisticsFromMatches, } from "./player.helpers";
7
+ export { useTopScorersFromMatches, useTopAssistersFromMatches, useMostCardedPlayersFromMatches, useTopGoalContributorsFromMatches, useAllPlayerStatisticsFromMatches, usePlayerStatisticsMap, usePlayerStatistics, } from "./player.hooks";
6
8
  export type { TeamResultTableResult, TeamResultTableRow, TeamResultTable } from "./team.helpers";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/helpers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/helpers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACH,oCAAoC,EACpC,wBAAwB,EACxB,0BAA0B,EAC1B,+BAA+B,EAC/B,iCAAiC,EACjC,iCAAiC,GACpC,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACH,wBAAwB,EACxB,0BAA0B,EAC1B,+BAA+B,EAC/B,iCAAiC,EACjC,iCAAiC,EACjC,sBAAsB,EACtB,mBAAmB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Player statistics helpers
3
+ * Aggregates player statistics from match events across multiple matches
4
+ *
5
+ * All functions return FUSportsPlayerSeasonStatistics (canonical type).
6
+ *
7
+ * Note: When aggregating from match events (not season data):
8
+ * - playerId comes from the player in events
9
+ * - seasonId and teamId are empty strings (not applicable for cross-match aggregation)
10
+ * - Only fields extractable from match events are populated (goals, assists, cards, appearances)
11
+ * - totalCards is computed as yellowCards + redCards
12
+ * - Other fields (minutes, shots, etc.) remain undefined as they're not in basic match events
13
+ */
14
+ import type { FUSportsMatch, FUSportsPlayerSeasonStatistics } from "../types/canonical";
15
+ /**
16
+ * Aggregate player statistics from match events across multiple matches
17
+ *
18
+ * This function extracts player data from mainEvents in matches and aggregates:
19
+ * - Goals (GOAL, PENALTY_GOAL, excluding OWN_GOAL)
20
+ * - Assists (secondaryPlayer in goal events)
21
+ * - Yellow cards
22
+ * - Red cards (including YELLOW_RED_CARD)
23
+ * - Appearances (matches where player appeared in any event)
24
+ *
25
+ * @param matches - Array of matches to analyze
26
+ * @returns Map of player ID to aggregated statistics
27
+ */
28
+ export declare function aggregatePlayerStatisticsFromMatches(matches: FUSportsMatch[]): Map<string, FUSportsPlayerSeasonStatistics>;
29
+ /**
30
+ * Get top scorers from match events
31
+ *
32
+ * Returns players sorted by goals (descending), with ties broken by assists.
33
+ * Only includes players with at least 1 goal.
34
+ *
35
+ * @param matches - Array of matches to analyze
36
+ * @param limit - Maximum number of players to return (default: 10)
37
+ * @returns Array of players sorted by goals
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const topScorers = getTopScorersFromMatches(matches, 5);
42
+ * topScorers.forEach(stats => {
43
+ * console.log(`Player ${stats.playerId}: ${stats.goals} goals, ${stats.assists} assists`);
44
+ * });
45
+ * ```
46
+ */
47
+ export declare function getTopScorersFromMatches(matches: FUSportsMatch[], limit?: number): FUSportsPlayerSeasonStatistics[];
48
+ /**
49
+ * Get top assisters from match events
50
+ *
51
+ * Returns players sorted by assists (descending), with ties broken by goals.
52
+ * Only includes players with at least 1 assist.
53
+ *
54
+ * @param matches - Array of matches to analyze
55
+ * @param limit - Maximum number of players to return (default: 10)
56
+ * @returns Array of players sorted by assists
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const topAssisters = getTopAssistersFromMatches(matches, 5);
61
+ * topAssisters.forEach(stats => {
62
+ * console.log(`Player ${stats.playerId}: ${stats.assists} assists, ${stats.goals} goals`);
63
+ * });
64
+ * ```
65
+ */
66
+ export declare function getTopAssistersFromMatches(matches: FUSportsMatch[], limit?: number): FUSportsPlayerSeasonStatistics[];
67
+ /**
68
+ * Get players with most cards from match events
69
+ *
70
+ * Returns players sorted by total cards (yellow + red, descending).
71
+ * Red cards are weighted more heavily in sorting (red card = 3 yellow cards).
72
+ * Only includes players with at least 1 card.
73
+ *
74
+ * @param matches - Array of matches to analyze
75
+ * @param limit - Maximum number of players to return (default: 10)
76
+ * @returns Array of players sorted by cards
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const mostCarded = getMostCardedPlayersFromMatches(matches, 5);
81
+ * mostCarded.forEach(stats => {
82
+ * console.log(`Player ${stats.playerId}: ${stats.yellowCards} yellow, ${stats.redCards} red`);
83
+ * });
84
+ * ```
85
+ */
86
+ export declare function getMostCardedPlayersFromMatches(matches: FUSportsMatch[], limit?: number): FUSportsPlayerSeasonStatistics[];
87
+ /**
88
+ * Get players with most goal contributions (goals + assists) from match events
89
+ *
90
+ * Returns players sorted by total goal contributions (descending).
91
+ * Ties are broken by goals first, then assists.
92
+ * Only includes players with at least 1 goal contribution.
93
+ *
94
+ * @param matches - Array of matches to analyze
95
+ * @param limit - Maximum number of players to return (default: 10)
96
+ * @returns Array of players sorted by goal contributions
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * const topContributors = getTopGoalContributorsFromMatches(matches, 5);
101
+ * topContributors.forEach(player => {
102
+ * const contributions = player.goals + player.assists;
103
+ * console.log(`${player.player.name}: ${contributions} (${player.goals}G + ${player.assists}A)`);
104
+ * });
105
+ * ```
106
+ */
107
+ export declare function getTopGoalContributorsFromMatches(matches: FUSportsMatch[], limit?: number): FUSportsPlayerSeasonStatistics[];
108
+ /**
109
+ * Get all player statistics from match events
110
+ *
111
+ * Returns all players who appeared in match events, sorted by appearances.
112
+ * Useful for getting complete player statistics across matches.
113
+ *
114
+ * @param matches - Array of matches to analyze
115
+ * @returns Array of all players with their statistics
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * const allPlayers = getAllPlayerStatisticsFromMatches(matches);
120
+ * console.log(`Total players: ${allPlayers.length}`);
121
+ * ```
122
+ */
123
+ export declare function getAllPlayerStatisticsFromMatches(matches: FUSportsMatch[]): FUSportsPlayerSeasonStatistics[];
124
+ //# sourceMappingURL=player.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player.helpers.d.ts","sourceRoot":"","sources":["../../src/lib/helpers/player.helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAMxF;;;;;;;;;;;;GAYG;AACH,wBAAgB,oCAAoC,CAChD,OAAO,EAAE,aAAa,EAAE,GACzB,GAAG,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAyF7C;AAgBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,aAAa,EAAE,EACxB,KAAK,GAAE,MAAW,GACnB,8BAA8B,EAAE,CAmBlC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,aAAa,EAAE,EACxB,KAAK,GAAE,MAAW,GACnB,8BAA8B,EAAE,CAmBlC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,+BAA+B,CAC3C,OAAO,EAAE,aAAa,EAAE,EACxB,KAAK,GAAE,MAAW,GACnB,8BAA8B,EAAE,CA6BlC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iCAAiC,CAC7C,OAAO,EAAE,aAAa,EAAE,EACxB,KAAK,GAAE,MAAW,GACnB,8BAA8B,EAAE,CA4BlC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,8BAA8B,EAAE,CAgB5G"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Player statistics React hooks with memoization
3
+ * Provides cached player leaderboard data from match events
4
+ */
5
+ import type { FUSportsMatch, FUSportsPlayerSeasonStatistics } from "../types/canonical";
6
+ /**
7
+ * Hook to get top scorers from match events with memoization
8
+ *
9
+ * @param matches - Array of matches to analyze
10
+ * @param limit - Maximum number of players to return (default: 10)
11
+ * @returns Memoized array of top scorers
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * function MyComponent({ matches }: { matches: FUSportsMatch[] }) {
16
+ * const topScorers = useTopScorersFromMatches(matches, 5);
17
+ *
18
+ * return (
19
+ * <div>
20
+ * {topScorers.map(player => (
21
+ * <div key={player.player.id}>
22
+ * {player.player.name}: {player.goals} goals
23
+ * </div>
24
+ * ))}
25
+ * </div>
26
+ * );
27
+ * }
28
+ * ```
29
+ */
30
+ export declare function useTopScorersFromMatches(matches: FUSportsMatch[], limit?: number): FUSportsPlayerSeasonStatistics[];
31
+ /**
32
+ * Hook to get top assisters from match events with memoization
33
+ *
34
+ * @param matches - Array of matches to analyze
35
+ * @param limit - Maximum number of players to return (default: 10)
36
+ * @returns Memoized array of top assisters
37
+ */
38
+ export declare function useTopAssistersFromMatches(matches: FUSportsMatch[], limit?: number): FUSportsPlayerSeasonStatistics[];
39
+ /**
40
+ * Hook to get most carded players from match events with memoization
41
+ *
42
+ * @param matches - Array of matches to analyze
43
+ * @param limit - Maximum number of players to return (default: 10)
44
+ * @returns Memoized array of most carded players
45
+ */
46
+ export declare function useMostCardedPlayersFromMatches(matches: FUSportsMatch[], limit?: number): FUSportsPlayerSeasonStatistics[];
47
+ /**
48
+ * Hook to get top goal contributors from match events with memoization
49
+ *
50
+ * @param matches - Array of matches to analyze
51
+ * @param limit - Maximum number of players to return (default: 10)
52
+ * @returns Memoized array of top goal contributors
53
+ */
54
+ export declare function useTopGoalContributorsFromMatches(matches: FUSportsMatch[], limit?: number): FUSportsPlayerSeasonStatistics[];
55
+ /**
56
+ * Hook to get all player statistics from match events with memoization
57
+ *
58
+ * @param matches - Array of matches to analyze
59
+ * @returns Memoized array of all players with statistics
60
+ */
61
+ export declare function useAllPlayerStatisticsFromMatches(matches: FUSportsMatch[]): FUSportsPlayerSeasonStatistics[];
62
+ /**
63
+ * Hook to get aggregated player statistics map with memoization
64
+ *
65
+ * Returns a Map of player ID to statistics, useful for looking up specific players.
66
+ *
67
+ * @param matches - Array of matches to analyze
68
+ * @returns Memoized map of player ID to statistics
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * function MyComponent({ matches, playerId }: { matches: FUSportsMatch[], playerId: string }) {
73
+ * const playerStatsMap = usePlayerStatisticsMap(matches);
74
+ * const playerStats = playerStatsMap.get(playerId);
75
+ *
76
+ * if (!playerStats) return <div>Player not found</div>;
77
+ *
78
+ * return (
79
+ * <div>
80
+ * {playerStats.player.name}: {playerStats.goals} goals, {playerStats.assists} assists
81
+ * </div>
82
+ * );
83
+ * }
84
+ * ```
85
+ */
86
+ export declare function usePlayerStatisticsMap(matches: FUSportsMatch[]): Map<string, FUSportsPlayerSeasonStatistics>;
87
+ /**
88
+ * Hook to get a specific player's statistics from match events with memoization
89
+ *
90
+ * @param matches - Array of matches to analyze
91
+ * @param playerId - ID of the player to get statistics for
92
+ * @returns Memoized player statistics or undefined if not found
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * function PlayerCard({ matches, playerId }: { matches: FUSportsMatch[], playerId: string }) {
97
+ * const stats = usePlayerStatistics(matches, playerId);
98
+ *
99
+ * if (!stats) return <div>No statistics available</div>;
100
+ *
101
+ * return (
102
+ * <div>
103
+ * <h3>Player {stats.playerId}</h3>
104
+ * <p>Goals: {stats.goals}</p>
105
+ * <p>Assists: {stats.assists}</p>
106
+ * <p>Appearances: {stats.appearances}</p>
107
+ * </div>
108
+ * );
109
+ * }
110
+ * ```
111
+ */
112
+ export declare function usePlayerStatistics(matches: FUSportsMatch[], playerId: string): FUSportsPlayerSeasonStatistics | undefined;
113
+ //# sourceMappingURL=player.hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player.hooks.d.ts","sourceRoot":"","sources":["../../src/lib/helpers/player.hooks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAcxF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,aAAa,EAAE,EACxB,KAAK,GAAE,MAAW,GACnB,8BAA8B,EAAE,CAElC;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,aAAa,EAAE,EACxB,KAAK,GAAE,MAAW,GACnB,8BAA8B,EAAE,CAElC;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC3C,OAAO,EAAE,aAAa,EAAE,EACxB,KAAK,GAAE,MAAW,GACnB,8BAA8B,EAAE,CAElC;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC7C,OAAO,EAAE,aAAa,EAAE,EACxB,KAAK,GAAE,MAAW,GACnB,8BAA8B,EAAE,CAElC;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,8BAA8B,EAAE,CAE5G;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAE5G;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,aAAa,EAAE,EACxB,QAAQ,EAAE,MAAM,GACjB,8BAA8B,GAAG,SAAS,CAG5C"}
package/index.d.ts CHANGED
@@ -26,12 +26,12 @@
26
26
  export { setConfig, getConfig, isConfigured, type DataLayerConfig, type Sportal365SportsConfig, type PayloadConfig, } from "./config";
27
27
  export { getFootballMatch, getFootballMatchEvents, getFootballMatchLineups, getFootballMatchOdds, getFootballMatchStatistics, getFootballMatchCommentary, getFootballMatches, getFootballTeam, getFootballTeamSquad, getFootballCompetition, getFootballSeasonDetails, getFootballStandings, getFootballPlayerSeasonStatistics, getTeamSeasonStatistics, searchFootball, } from "./api/sportal365-sports";
28
28
  export { search } from "./api/sportal365-sports";
29
- export { getFansUnitedFootballCompetitions, getFansUnitedFootballCompetition, getFansUnitedFootballTeam, getFansUnitedFootballPlayer, getFansUnitedFootballMatch, getFansUnitedFootballMatches, getFansUnitedFootballSearch, } from "./api/fansunited";
30
- export type { GetFootballCompetitionsOptions, GetFootballCompetitionOptions as GetFansUnitedFootballCompetitionOptions, GetFootballTeamOptions as GetFansUnitedFootballTeamOptions, GetFootballPlayerOptions as GetFansUnitedFootballPlayerOptions, GetFootballMatchOptions as GetFansUnitedFootballMatchOptions, GetFootballMatchesOptions as GetFansUnitedFootballMatchesOptions, GetFootballSearchOptions as GetFansUnitedFootballSearchOptions, SearchEntityType as FansUnitedSearchEntityType, FansUnitedFootballSearchResult, } from "./api/fansunited";
29
+ export { getFansUnitedFootballCompetitions, getFansUnitedFootballCompetition, getFansUnitedFootballTeam, getFansUnitedFootballPlayer, getFansUnitedFootballPlayers, getFansUnitedFootballMatch, getFansUnitedFootballMatches, getFansUnitedFootballSearch, } from "./api/fansunited";
30
+ export type { GetFootballCompetitionsOptions, GetFootballCompetitionOptions as GetFansUnitedFootballCompetitionOptions, GetFootballTeamOptions as GetFansUnitedFootballTeamOptions, GetFootballPlayerOptions as GetFansUnitedFootballPlayerOptions, GetFootballPlayersOptions as GetFansUnitedFootballPlayersOptions, GetFootballMatchOptions as GetFansUnitedFootballMatchOptions, GetFootballMatchesOptions as GetFansUnitedFootballMatchesOptions, GetFootballSearchOptions as GetFansUnitedFootballSearchOptions, SearchEntityType as FansUnitedSearchEntityType, FansUnitedFootballSearchResult, } from "./api/fansunited";
31
31
  export { getProviderRefId, addProviderRef, toProviderRefArray } from "./api/sportal365-sports/shared";
32
32
  export type { GetFootballMatchOptions, GetFootballMatchEventsOptions, GetFootballMatchLineupsOptions, GetFootballMatchOddsOptions, GetFootballMatchStatisticsOptions, GetFootballMatchCommentaryOptions, GetFootballMatchesOptions, GetFootballTeamOptions, GetFootballTeamSquadOptions, GetFootballCompetitionOptions, GetFootballSeasonDetailsOptions, GetFootballStandingsOptions, GetFootballPlayerSeasonStatisticsOptions, GetTeamSeasonStatisticsOptions, GetFootballSearchOptions, SearchEntityType, GetSportsSearchOptions, SportType, SportsSearchEntityType, FootballStandingsExpandOption, OddType, ScopeType, OddFormat, MarketType, OptionalMatchData, MatchStatusType, SortDirection, NextCacheOptions, } from "./api/sportal365-sports";
33
33
  export type { FUSportsCountry, FUSportsCity, FUSportsCompetitor, FUSportsCompetitorBase, FUSportsTeamCompetitor, FUSportsPlayerCompetitor, FUSportsPairCompetitor, FUSportsShirtColor, FUSportsSeason, FUSportsRound, FUSportsStage, FUSportsSeasonDetails, FUSportsCompetition, FUSportsVenue, FUSportsOfficial, FUSportsMember, FUSportsMatchMember, FUSportsCoach, FUSportsSocials, FUBranding, FUSportsMatchScore, FUSportsMatchStatus, FUSportsMatchTiming, FUSportsMatchWinner, FUSportsMatch, FUSportsMatchSimple, FUSportsFootballEventType, FUSportsOtherEventType, FUSportsMatchEvent, FUSportsLineupMember, FUSportsCompetitorLineup, FUSportsMatchLineups, FUSportsStatisticEntry, FUSportsCompetitorStatistics, FUSportsMatchStatistics, FUSportsPlayerStatistic, FUSportsPlayerSeasonStatistics, FUSportsTeamSeasonStatistics, FUSportsBettingOperatorBranding, FUSportsBettingOperator, FUSportsOddSelection, FUSportsMarketPeriod, FUSportsMarketType, FUSportsOddMarket, FUSportsBettingOperatorOdds, FUSportsMatchOdds, FUSportsCommentaryDetail, FUSportsCommentaryMeta, FUSportsCommentaryItem, FUSportsStandingEntry, FUSportsCompetitorForm, FUSportsStandingLegendItem, FUSportsStandingsMetadata, FUSportsStandings, FUSportsSquadMember, FUSportsSquad, FUSportsSearchResultBase, FUSportsTournamentSearchResult, FUSportsPlayerSearchResult, FUSportsTeamSearchResult, FUSportsPresidentSearchResult, FUSportsVenueSearchResult, FUSportsCoachSearchResult, FUSportsSearchResult, FUSportsSearchResults, FUSportsTranslation, FUSportsDisplayAsset, FUSportsSportsSearchResultBase, FUSportsSportsSearchCountry, FUSportsTeamSportsSearchResult, FUSportsCitySportsSearchResult, FUSportsHorseSportsSearchResult, FUSportsPlayerSportsSearchResult, FUSportsCoachSportsSearchResult, FUSportsRefereeSportsSearchResult, FUSportsVenueSportsSearchResult, FUSportsTournamentSportsSearchResult, FUSportsMatchSportsSearchResult, FUSportsCountrySportsSearchResult, FUSportsSportsSearchResult, FUSportsSportsSearchResults, } from "./types/canonical";
34
- export { getActiveSeason, getTeamNextMatch, getTeamPreviousMatch, getTeamUpcomingMatches, getTeamFinishedMatches, getTeamResultsTable, getTeamTopScorers, getTeamTopAssisters, getTeamTopAppearances, getTeamTopMinutesPlayed, getTeamTopCleanSheets, getTeamMostDecorated, } from "./helpers";
34
+ export { getActiveSeason, getTeamNextMatch, getTeamPreviousMatch, getTeamUpcomingMatches, getTeamFinishedMatches, getTeamResultsTable, getTeamTopScorers, getTeamTopAssisters, getTeamTopAppearances, getTeamTopMinutesPlayed, getTeamTopCleanSheets, getTeamMostDecorated, aggregatePlayerStatisticsFromMatches, getTopScorersFromMatches, getTopAssistersFromMatches, getMostCardedPlayersFromMatches, getTopGoalContributorsFromMatches, getAllPlayerStatisticsFromMatches, useTopScorersFromMatches, useTopAssistersFromMatches, useMostCardedPlayersFromMatches, useTopGoalContributorsFromMatches, useAllPlayerStatisticsFromMatches, usePlayerStatisticsMap, usePlayerStatistics, } from "./helpers";
35
35
  export type { TeamResultTableResult, TeamResultTableRow, TeamResultTable } from "./helpers";
36
36
  export { calcPercentage, calcAverage, formatStatValue, formatWithAverage, formatAsAverage, formatPossessionPercentage, analyzeMatch, isTeamHome, isTeamAway, isTeamInMatch, isMatchFinished, getTeamScore, getOpponentScore, calculateH2HStats, getRecentH2HMeetings, getTeamHomeAwayStats, getTeamOverUnderStats, getMatchResult, getTeamGoalStats, calculateStreak, getTeamStreaks, getTeamStreaksComparison, streakFilters, getTeamsCommonOpponents, } from "./utilities/stats";
37
37
  export type { MatchAnalysis, MatchResult, MatchFilter, VenueFilter, H2HStats, H2HMatch, HomeVsAwayStats, TeamOverUnderStats, TeamGoalStats, GoalStatRow, StreakData, StreakRow, TeamOpponentResults, TeamsResultsRow, } from "./utilities/stats";
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "description": "A TypeScript library for fetching and transforming sports data from multiple API providers. Returns clean, canonical types that are provider-agnostic.",
5
5
  "homepage": "https://fansunited.com/",
6
6
  "private": false,
7
- "version": "0.3.1",
7
+ "version": "0.5.0",
8
8
  "type": "module",
9
9
  "main": "./fansunited-data-layer.cjs",
10
10
  "module": "./fansunited-data-layer.js",
@@ -67,6 +67,7 @@ export interface FUSportsPlayerSeasonStatistics {
67
67
  caughtBall?: number;
68
68
  penaltiesReceived?: number;
69
69
  offsides?: number;
70
+ totalCards?: number;
70
71
  rawStatistics?: FUSportsPlayerStatistic[];
71
72
  }
72
73
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"statistics.types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/canonical/statistics.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,aAAa,EAAE,4BAA4B,CAAC;IAC5C,aAAa,EAAE,4BAA4B,CAAC;CAC/C;AAMD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IAGf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,aAAa,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC7C;AAMD;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACxC"}
1
+ {"version":3,"file":"statistics.types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/canonical/statistics.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,aAAa,EAAE,4BAA4B,CAAC;IAC5C,aAAa,EAAE,4BAA4B,CAAC;CAC/C;AAMD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IAGf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,aAAa,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC7C;AAMD;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACxC"}