fansunited-data-layer 0.2.0 → 0.2.1
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/api/fansunited/constants.d.ts +5 -0
- package/api/fansunited/constants.d.ts.map +1 -0
- package/api/fansunited/football/competition/index.d.ts +30 -0
- package/api/fansunited/football/competition/index.d.ts.map +1 -0
- package/api/fansunited/football/competition/transformer.d.ts +11 -0
- package/api/fansunited/football/competition/transformer.d.ts.map +1 -0
- package/api/fansunited/football/competition/types.d.ts +70 -0
- package/api/fansunited/football/competition/types.d.ts.map +1 -0
- package/api/fansunited/football/competitions/index.d.ts +27 -0
- package/api/fansunited/football/competitions/index.d.ts.map +1 -0
- package/api/fansunited/football/competitions/transformer.d.ts +14 -0
- package/api/fansunited/football/competitions/transformer.d.ts.map +1 -0
- package/api/fansunited/football/competitions/types.d.ts +67 -0
- package/api/fansunited/football/competitions/types.d.ts.map +1 -0
- package/api/fansunited/football/http.d.ts +8 -0
- package/api/fansunited/football/http.d.ts.map +1 -0
- package/api/fansunited/football/index.d.ts +19 -0
- package/api/fansunited/football/index.d.ts.map +1 -0
- package/api/fansunited/football/matches/index.d.ts +61 -0
- package/api/fansunited/football/matches/index.d.ts.map +1 -0
- package/api/fansunited/football/matches/transformer.d.ts +28 -0
- package/api/fansunited/football/matches/transformer.d.ts.map +1 -0
- package/api/fansunited/football/matches/types.d.ts +328 -0
- package/api/fansunited/football/matches/types.d.ts.map +1 -0
- package/api/fansunited/football/players/index.d.ts +30 -0
- package/api/fansunited/football/players/index.d.ts.map +1 -0
- package/api/fansunited/football/players/transformer.d.ts +10 -0
- package/api/fansunited/football/players/transformer.d.ts.map +1 -0
- package/api/fansunited/football/players/types.d.ts +70 -0
- package/api/fansunited/football/players/types.d.ts.map +1 -0
- package/api/fansunited/football/search/index.d.ts +49 -0
- package/api/fansunited/football/search/index.d.ts.map +1 -0
- package/api/fansunited/football/search/transformer.d.ts +10 -0
- package/api/fansunited/football/search/transformer.d.ts.map +1 -0
- package/api/fansunited/football/search/types.d.ts +151 -0
- package/api/fansunited/football/search/types.d.ts.map +1 -0
- package/api/fansunited/football/teams/index.d.ts +30 -0
- package/api/fansunited/football/teams/index.d.ts.map +1 -0
- package/api/fansunited/football/teams/transformer.d.ts +10 -0
- package/api/fansunited/football/teams/transformer.d.ts.map +1 -0
- package/api/fansunited/football/teams/types.d.ts +87 -0
- package/api/fansunited/football/teams/types.d.ts.map +1 -0
- package/api/fansunited/http.d.ts +54 -0
- package/api/fansunited/http.d.ts.map +1 -0
- package/api/fansunited/index.d.ts +10 -0
- package/api/fansunited/index.d.ts.map +1 -0
- package/api/sportal365-sports/constants.d.ts +16 -0
- package/api/sportal365-sports/constants.d.ts.map +1 -0
- package/api/sportal365-sports/football/competitions/competition.types.d.ts +148 -0
- package/api/sportal365-sports/football/competitions/competition.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/competitions/index.d.ts +54 -0
- package/api/sportal365-sports/football/competitions/index.d.ts.map +1 -0
- package/api/sportal365-sports/football/competitions/utils.d.ts +14 -0
- package/api/sportal365-sports/football/competitions/utils.d.ts.map +1 -0
- package/api/sportal365-sports/football/http.d.ts +8 -0
- package/api/sportal365-sports/football/http.d.ts.map +1 -0
- package/api/sportal365-sports/football/index.d.ts +19 -0
- package/api/sportal365-sports/football/index.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/index.d.ts +151 -0
- package/api/sportal365-sports/football/matches/index.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/transformers/commentary.d.ts +12 -0
- package/api/sportal365-sports/football/matches/transformers/commentary.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/transformers/index.d.ts +10 -0
- package/api/sportal365-sports/football/matches/transformers/index.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/transformers/lineup.d.ts +11 -0
- package/api/sportal365-sports/football/matches/transformers/lineup.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/transformers/match-event.d.ts +12 -0
- package/api/sportal365-sports/football/matches/transformers/match-event.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/transformers/match.d.ts +11 -0
- package/api/sportal365-sports/football/matches/transformers/match.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/transformers/odds.d.ts +11 -0
- package/api/sportal365-sports/football/matches/transformers/odds.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/transformers/statistics.d.ts +11 -0
- package/api/sportal365-sports/football/matches/transformers/statistics.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/commentary.types.d.ts +27 -0
- package/api/sportal365-sports/football/matches/types/commentary.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/event.types.d.ts +19 -0
- package/api/sportal365-sports/football/matches/types/event.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/index.d.ts +16 -0
- package/api/sportal365-sports/football/matches/types/index.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/lineup.types.d.ts +80 -0
- package/api/sportal365-sports/football/matches/types/lineup.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/match.types.d.ts +47 -0
- package/api/sportal365-sports/football/matches/types/match.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/minute.types.d.ts +8 -0
- package/api/sportal365-sports/football/matches/types/minute.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/odds.types.d.ts +80 -0
- package/api/sportal365-sports/football/matches/types/odds.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/option.types.d.ts +129 -0
- package/api/sportal365-sports/football/matches/types/option.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/referee.types.d.ts +13 -0
- package/api/sportal365-sports/football/matches/types/referee.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/statistics.types.d.ts +45 -0
- package/api/sportal365-sports/football/matches/types/statistics.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/status.types.d.ts +13 -0
- package/api/sportal365-sports/football/matches/types/status.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/team.types.d.ts +17 -0
- package/api/sportal365-sports/football/matches/types/team.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/matches/types/winner.types.d.ts +15 -0
- package/api/sportal365-sports/football/matches/types/winner.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/search/index.d.ts +45 -0
- package/api/sportal365-sports/football/search/index.d.ts.map +1 -0
- package/api/sportal365-sports/football/search/search.transformer.d.ts +10 -0
- package/api/sportal365-sports/football/search/search.transformer.d.ts.map +1 -0
- package/api/sportal365-sports/football/search/search.types.d.ts +147 -0
- package/api/sportal365-sports/football/search/search.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/standings/index.d.ts +43 -0
- package/api/sportal365-sports/football/standings/index.d.ts.map +1 -0
- package/api/sportal365-sports/football/standings/standing.transformer.d.ts +15 -0
- package/api/sportal365-sports/football/standings/standing.transformer.d.ts.map +1 -0
- package/api/sportal365-sports/football/standings/standing.types.d.ts +73 -0
- package/api/sportal365-sports/football/standings/standing.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/statistics/index.d.ts +42 -0
- package/api/sportal365-sports/football/statistics/index.d.ts.map +1 -0
- package/api/sportal365-sports/football/statistics/player-season.transformer.d.ts +11 -0
- package/api/sportal365-sports/football/statistics/player-season.transformer.d.ts.map +1 -0
- package/api/sportal365-sports/football/statistics/player-season.types.d.ts +84 -0
- package/api/sportal365-sports/football/statistics/player-season.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/teams/index.d.ts +53 -0
- package/api/sportal365-sports/football/teams/index.d.ts.map +1 -0
- package/api/sportal365-sports/football/teams/squad.types.d.ts +63 -0
- package/api/sportal365-sports/football/teams/squad.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/teams/team.types.d.ts +58 -0
- package/api/sportal365-sports/football/teams/team.types.d.ts.map +1 -0
- package/api/sportal365-sports/football/teams/utils.d.ts +24 -0
- package/api/sportal365-sports/football/teams/utils.d.ts.map +1 -0
- package/api/sportal365-sports/http.d.ts +59 -0
- package/api/sportal365-sports/http.d.ts.map +1 -0
- package/api/sportal365-sports/index.d.ts +14 -0
- package/api/sportal365-sports/index.d.ts.map +1 -0
- package/api/sportal365-sports/search/http.d.ts +8 -0
- package/api/sportal365-sports/search/http.d.ts.map +1 -0
- package/api/sportal365-sports/search/index.d.ts +43 -0
- package/api/sportal365-sports/search/index.d.ts.map +1 -0
- package/api/sportal365-sports/search/search.transformer.d.ts +10 -0
- package/api/sportal365-sports/search/search.transformer.d.ts.map +1 -0
- package/api/sportal365-sports/search/search.types.d.ts +209 -0
- package/api/sportal365-sports/search/search.types.d.ts.map +1 -0
- package/api/sportal365-sports/shared/index.d.ts +6 -0
- package/api/sportal365-sports/shared/index.d.ts.map +1 -0
- package/api/sportal365-sports/shared/providerRef.helper.d.ts +79 -0
- package/api/sportal365-sports/shared/providerRef.helper.d.ts.map +1 -0
- package/api/sportal365-sports/shared/types.d.ts +189 -0
- package/api/sportal365-sports/shared/types.d.ts.map +1 -0
- package/api/sportal365-sports/statistics/http.d.ts +8 -0
- package/api/sportal365-sports/statistics/http.d.ts.map +1 -0
- package/api/sportal365-sports/statistics/index.d.ts +55 -0
- package/api/sportal365-sports/statistics/index.d.ts.map +1 -0
- package/api/sportal365-sports/statistics/team-stats.transformer.d.ts +14 -0
- package/api/sportal365-sports/statistics/team-stats.transformer.d.ts.map +1 -0
- package/api/sportal365-sports/statistics/team-stats.types.d.ts +45 -0
- package/api/sportal365-sports/statistics/team-stats.types.d.ts.map +1 -0
- package/client.cjs +8 -0
- package/client.d.ts +20 -0
- package/client.d.ts.map +1 -0
- package/client.js +12065 -0
- package/config/index.d.ts +31 -0
- package/config/index.d.ts.map +1 -0
- package/config/types.d.ts +36 -0
- package/config/types.d.ts.map +1 -0
- package/fansunited-data-layer.cjs +1 -0
- package/fansunited-data-layer.js +1739 -0
- package/helpers/competition.helpers.d.ts +22 -0
- package/helpers/competition.helpers.d.ts.map +1 -0
- package/helpers/index.d.ts +7 -0
- package/helpers/index.d.ts.map +1 -0
- package/helpers/team.helpers.d.ts +289 -0
- package/helpers/team.helpers.d.ts.map +1 -0
- package/index-Cogo-Kkd.cjs +1 -0
- package/index-D7T2Yy11.js +1170 -0
- package/index.d.ts +39 -0
- package/index.d.ts.map +1 -0
- package/package.json +12 -15
- package/providers/competition/hooks/index.d.ts +6 -0
- package/providers/competition/hooks/index.d.ts.map +1 -0
- package/providers/competition/hooks/useCompetitionStats.d.ts +8 -0
- package/providers/competition/hooks/useCompetitionStats.d.ts.map +1 -0
- package/providers/competition/hooks/useGoalDistribution.d.ts +11 -0
- package/providers/competition/hooks/useGoalDistribution.d.ts.map +1 -0
- package/providers/competition/hooks/useMatchHelpers.d.ts +16 -0
- package/providers/competition/hooks/useMatchHelpers.d.ts.map +1 -0
- package/providers/competition/hooks/useStandingsCalculations.d.ts +18 -0
- package/providers/competition/hooks/useStandingsCalculations.d.ts.map +1 -0
- package/providers/competition/hooks/useStandingsHelpers.d.ts +23 -0
- package/providers/competition/hooks/useStandingsHelpers.d.ts.map +1 -0
- package/providers/competition/hooks/useTeamPosition.d.ts +8 -0
- package/providers/competition/hooks/useTeamPosition.d.ts.map +1 -0
- package/providers/competition/hooks/useTeamResultsTable.d.ts +9 -0
- package/providers/competition/hooks/useTeamResultsTable.d.ts.map +1 -0
- package/providers/competition/utils/competitionStats.d.ts +42 -0
- package/providers/competition/utils/competitionStats.d.ts.map +1 -0
- package/providers/competition/utils/goalDistribution.d.ts +41 -0
- package/providers/competition/utils/goalDistribution.d.ts.map +1 -0
- package/providers/competition/utils/index.d.ts +6 -0
- package/providers/competition/utils/index.d.ts.map +1 -0
- package/providers/competition/utils/standingsCalculations.d.ts +24 -0
- package/providers/competition/utils/standingsCalculations.d.ts.map +1 -0
- package/providers/competition.context.d.ts +8 -0
- package/providers/competition.context.d.ts.map +1 -0
- package/providers/competition.provider.d.ts +3 -0
- package/providers/competition.provider.d.ts.map +1 -0
- package/providers/competition.types.d.ts +118 -0
- package/providers/competition.types.d.ts.map +1 -0
- package/providers/fansunited-config.context.d.ts +6 -0
- package/providers/fansunited-config.context.d.ts.map +1 -0
- package/providers/fansunited-config.hooks.d.ts +19 -0
- package/providers/fansunited-config.hooks.d.ts.map +1 -0
- package/providers/fansunited-config.provider.d.ts +44 -0
- package/providers/fansunited-config.provider.d.ts.map +1 -0
- package/providers/fansunited-config.types.d.ts +48 -0
- package/providers/fansunited-config.types.d.ts.map +1 -0
- package/providers/fansunited-sdk.hook.d.ts +40 -0
- package/providers/fansunited-sdk.hook.d.ts.map +1 -0
- package/providers/index.d.ts +20 -0
- package/providers/index.d.ts.map +1 -0
- package/providers/match/hooks/useEventHelpers.d.ts +12 -0
- package/providers/match/hooks/useEventHelpers.d.ts.map +1 -0
- package/providers/match/hooks/useHeadToHeadHelpers.d.ts +13 -0
- package/providers/match/hooks/useHeadToHeadHelpers.d.ts.map +1 -0
- package/providers/match/hooks/useLineupHelpers.d.ts +13 -0
- package/providers/match/hooks/useLineupHelpers.d.ts.map +1 -0
- package/providers/match/hooks/useMatchStandingsCalculations.d.ts +20 -0
- package/providers/match/hooks/useMatchStandingsCalculations.d.ts.map +1 -0
- package/providers/match/hooks/useMatchStatus.d.ts +12 -0
- package/providers/match/hooks/useMatchStatus.d.ts.map +1 -0
- package/providers/match/hooks/useOddsHelpers.d.ts +10 -0
- package/providers/match/hooks/useOddsHelpers.d.ts.map +1 -0
- package/providers/match/hooks/useScoreHelpers.d.ts +16 -0
- package/providers/match/hooks/useScoreHelpers.d.ts.map +1 -0
- package/providers/match/hooks/useStandingsHelpers.d.ts +22 -0
- package/providers/match/hooks/useStandingsHelpers.d.ts.map +1 -0
- package/providers/match/hooks/useStatisticsHelpers.d.ts +13 -0
- package/providers/match/hooks/useStatisticsHelpers.d.ts.map +1 -0
- package/providers/match/hooks/useTeamHelpers.d.ts +11 -0
- package/providers/match/hooks/useTeamHelpers.d.ts.map +1 -0
- package/providers/match/hooks/useTeamStatsHelpers.d.ts +12 -0
- package/providers/match/hooks/useTeamStatsHelpers.d.ts.map +1 -0
- package/providers/match.context.d.ts +8 -0
- package/providers/match.context.d.ts.map +1 -0
- package/providers/match.provider.d.ts +3 -0
- package/providers/match.provider.d.ts.map +1 -0
- package/providers/match.types.d.ts +151 -0
- package/providers/match.types.d.ts.map +1 -0
- package/providers/team/hooks/useFormStats.d.ts +49 -0
- package/providers/team/hooks/useFormStats.d.ts.map +1 -0
- package/providers/team/hooks/useMatchHelpers.d.ts +12 -0
- package/providers/team/hooks/useMatchHelpers.d.ts.map +1 -0
- package/providers/team/hooks/useSquadHelpers.d.ts +17 -0
- package/providers/team/hooks/useSquadHelpers.d.ts.map +1 -0
- package/providers/team.context.d.ts +8 -0
- package/providers/team.context.d.ts.map +1 -0
- package/providers/team.provider.d.ts +3 -0
- package/providers/team.provider.d.ts.map +1 -0
- package/providers/team.types.d.ts +68 -0
- package/providers/team.types.d.ts.map +1 -0
- package/types/canonical/base.types.d.ts +366 -0
- package/types/canonical/base.types.d.ts.map +1 -0
- package/types/canonical/commentary.types.d.ts +42 -0
- package/types/canonical/commentary.types.d.ts.map +1 -0
- package/types/canonical/event.types.d.ts +31 -0
- package/types/canonical/event.types.d.ts.map +1 -0
- package/types/canonical/index.d.ts +17 -0
- package/types/canonical/index.d.ts.map +1 -0
- package/types/canonical/lineup.types.d.ts +33 -0
- package/types/canonical/lineup.types.d.ts.map +1 -0
- package/types/canonical/match.types.d.ts +153 -0
- package/types/canonical/match.types.d.ts.map +1 -0
- package/types/canonical/odds.types.d.ts +73 -0
- package/types/canonical/odds.types.d.ts.map +1 -0
- package/types/canonical/search.types.d.ts +101 -0
- package/types/canonical/search.types.d.ts.map +1 -0
- package/types/canonical/sports-search.types.d.ts +151 -0
- package/types/canonical/sports-search.types.d.ts.map +1 -0
- package/types/canonical/squad.types.d.ts +30 -0
- package/types/canonical/squad.types.d.ts.map +1 -0
- package/types/canonical/standing.types.d.ts +85 -0
- package/types/canonical/standing.types.d.ts.map +1 -0
- package/types/canonical/statistics.types.d.ts +81 -0
- package/types/canonical/statistics.types.d.ts.map +1 -0
- package/types/index.d.ts +10 -0
- package/types/index.d.ts.map +1 -0
- package/utilities/stats/core/helpers.d.ts +65 -0
- package/utilities/stats/core/helpers.d.ts.map +1 -0
- package/utilities/stats/core/index.d.ts +7 -0
- package/utilities/stats/core/index.d.ts.map +1 -0
- package/utilities/stats/core/types.d.ts +39 -0
- package/utilities/stats/core/types.d.ts.map +1 -0
- package/utilities/stats/index.d.ts +27 -0
- package/utilities/stats/index.d.ts.map +1 -0
- package/utilities/stats/match/headToHead.d.ts +73 -0
- package/utilities/stats/match/headToHead.d.ts.map +1 -0
- package/utilities/stats/match/homeVsAway.d.ts +30 -0
- package/utilities/stats/match/homeVsAway.d.ts.map +1 -0
- package/utilities/stats/match/index.d.ts +8 -0
- package/utilities/stats/match/index.d.ts.map +1 -0
- package/utilities/stats/match/overUnder.d.ts +59 -0
- package/utilities/stats/match/overUnder.d.ts.map +1 -0
- package/utilities/stats/match/result.d.ts +13 -0
- package/utilities/stats/match/result.d.ts.map +1 -0
- package/utilities/stats/team/commonOpponents.d.ts +28 -0
- package/utilities/stats/team/commonOpponents.d.ts.map +1 -0
- package/utilities/stats/team/goalStats.d.ts +42 -0
- package/utilities/stats/team/goalStats.d.ts.map +1 -0
- package/utilities/stats/team/index.d.ts +7 -0
- package/utilities/stats/team/index.d.ts.map +1 -0
- package/utilities/stats/team/streaks.d.ts +48 -0
- package/utilities/stats/team/streaks.d.ts.map +1 -0
- package/vite.svg +1 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Match FUSports types - Core match entities
|
|
3
|
+
*/
|
|
4
|
+
import type { FUSportsCompetitor, FUSportsCompetition, FUSportsVenue, FUSportsOfficial } from "./base.types";
|
|
5
|
+
import type { FUSportsMatchEvent } from "./event.types";
|
|
6
|
+
/**
|
|
7
|
+
* Match score breakdown - String-based to support various sports formats
|
|
8
|
+
*/
|
|
9
|
+
export interface FUSportsMatchScore {
|
|
10
|
+
competitorOne: string | null;
|
|
11
|
+
competitorTwo: string | null;
|
|
12
|
+
breakdown?: {
|
|
13
|
+
total?: {
|
|
14
|
+
competitorOne: string;
|
|
15
|
+
competitorTwo: string;
|
|
16
|
+
};
|
|
17
|
+
halfTime?: {
|
|
18
|
+
competitorOne: string;
|
|
19
|
+
competitorTwo: string;
|
|
20
|
+
};
|
|
21
|
+
regularTime?: {
|
|
22
|
+
competitorOne: string;
|
|
23
|
+
competitorTwo: string;
|
|
24
|
+
};
|
|
25
|
+
extraTime?: {
|
|
26
|
+
competitorOne: string;
|
|
27
|
+
competitorTwo: string;
|
|
28
|
+
};
|
|
29
|
+
penaltyShootout?: {
|
|
30
|
+
competitorOne: string;
|
|
31
|
+
competitorTwo: string;
|
|
32
|
+
};
|
|
33
|
+
aggregate?: {
|
|
34
|
+
competitorOne: string;
|
|
35
|
+
competitorTwo: string;
|
|
36
|
+
};
|
|
37
|
+
periods?: Array<{
|
|
38
|
+
competitorOne: string;
|
|
39
|
+
competitorTwo: string;
|
|
40
|
+
}>;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Match status
|
|
45
|
+
*/
|
|
46
|
+
export interface FUSportsMatchStatus {
|
|
47
|
+
code: "not_started" | "live" | "finished" | "finished_after_extra_time" | "finished_after_penalties" | "postponed" | "cancelled" | "abandoned" | "interrupted";
|
|
48
|
+
name: string;
|
|
49
|
+
shortName?: string;
|
|
50
|
+
type: "NOT_STARTED" | "LIVE" | "FINISHED" | "POSTPONED" | "CANCELLED" | "ABANDONED" | "INTERRUPTED";
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Match timing information
|
|
54
|
+
*/
|
|
55
|
+
export interface FUSportsMatchTiming {
|
|
56
|
+
kickoffTime: Date;
|
|
57
|
+
currentMinute?: number;
|
|
58
|
+
currentPeriod?: string;
|
|
59
|
+
phaseStartedAt?: Date;
|
|
60
|
+
finishedAt?: Date;
|
|
61
|
+
firstHalfStartedAt?: Date;
|
|
62
|
+
secondHalfStartedAt?: Date;
|
|
63
|
+
extraTimeFirstHalfStartedAt?: Date;
|
|
64
|
+
extraTimeSecondHalfStartedAt?: Date;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Match winner information
|
|
68
|
+
*/
|
|
69
|
+
export interface FUSportsMatchWinner {
|
|
70
|
+
competitorId: string;
|
|
71
|
+
reason?: "REGULAR_TIME" | "EXTRA_TIME" | "PENALTIES" | "FORFEIT" | "WALKOVER";
|
|
72
|
+
aggregate?: boolean;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Main Match model
|
|
76
|
+
* Sport-agnostic, works for football, tennis, basketball, cricket, etc.
|
|
77
|
+
*/
|
|
78
|
+
export interface FUSportsMatch {
|
|
79
|
+
id: string;
|
|
80
|
+
slug?: string;
|
|
81
|
+
status: FUSportsMatchStatus;
|
|
82
|
+
timing: FUSportsMatchTiming;
|
|
83
|
+
competitorOne: FUSportsCompetitor;
|
|
84
|
+
competitorTwo: FUSportsCompetitor;
|
|
85
|
+
competition?: FUSportsCompetition;
|
|
86
|
+
round?: {
|
|
87
|
+
id: string;
|
|
88
|
+
key: string;
|
|
89
|
+
name: string;
|
|
90
|
+
type: string;
|
|
91
|
+
providerRef?: {
|
|
92
|
+
provider: string;
|
|
93
|
+
id: string;
|
|
94
|
+
}[];
|
|
95
|
+
};
|
|
96
|
+
group?: {
|
|
97
|
+
id: string;
|
|
98
|
+
name: string;
|
|
99
|
+
providerRef?: {
|
|
100
|
+
provider: string;
|
|
101
|
+
id: string;
|
|
102
|
+
}[];
|
|
103
|
+
};
|
|
104
|
+
venue?: FUSportsVenue;
|
|
105
|
+
officials?: FUSportsOfficial[];
|
|
106
|
+
spectators?: number;
|
|
107
|
+
score?: FUSportsMatchScore;
|
|
108
|
+
mainEvents?: FUSportsMatchEvent[];
|
|
109
|
+
penaltyShootoutEvents?: FUSportsMatchEvent[];
|
|
110
|
+
winner?: FUSportsMatchWinner;
|
|
111
|
+
coverage?: "LIVE" | "UNKNOWN" | "HIGHLIGHTS";
|
|
112
|
+
lineupStatus?: "CONFIRMED" | "NOT_AVAILABLE" | "EXPECTED";
|
|
113
|
+
updatedAt?: Date;
|
|
114
|
+
isUndecided?: boolean;
|
|
115
|
+
providerRef?: {
|
|
116
|
+
provider: string;
|
|
117
|
+
id: string;
|
|
118
|
+
}[];
|
|
119
|
+
metadata?: Record<string, unknown>;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Simplified match for lists, fixtures, results
|
|
123
|
+
*/
|
|
124
|
+
export interface FUSportsMatchSimple {
|
|
125
|
+
id: string;
|
|
126
|
+
slug?: string;
|
|
127
|
+
competitorOne: {
|
|
128
|
+
id: string;
|
|
129
|
+
name: string;
|
|
130
|
+
shortName?: string;
|
|
131
|
+
logo?: string;
|
|
132
|
+
score?: string;
|
|
133
|
+
};
|
|
134
|
+
competitorTwo: {
|
|
135
|
+
id: string;
|
|
136
|
+
name: string;
|
|
137
|
+
shortName?: string;
|
|
138
|
+
logo?: string;
|
|
139
|
+
score?: string;
|
|
140
|
+
};
|
|
141
|
+
status: {
|
|
142
|
+
code: string;
|
|
143
|
+
name: string;
|
|
144
|
+
};
|
|
145
|
+
kickoffTime: Date;
|
|
146
|
+
venue?: string;
|
|
147
|
+
competition?: {
|
|
148
|
+
id: string;
|
|
149
|
+
name: string;
|
|
150
|
+
logo?: string;
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=match.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match.types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/canonical/match.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Odds FUSports types
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Betting operator branding information
|
|
6
|
+
*/
|
|
7
|
+
export interface FUSportsBettingOperatorBranding {
|
|
8
|
+
backgroundColor?: string;
|
|
9
|
+
textColor?: string;
|
|
10
|
+
logo?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Betting operator information
|
|
14
|
+
*/
|
|
15
|
+
export interface FUSportsBettingOperator {
|
|
16
|
+
id: string;
|
|
17
|
+
name: string;
|
|
18
|
+
url?: string;
|
|
19
|
+
branding?: FUSportsBettingOperatorBranding;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Single betting selection/outcome
|
|
23
|
+
*/
|
|
24
|
+
export interface FUSportsOddSelection {
|
|
25
|
+
id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
code: string;
|
|
28
|
+
value?: string;
|
|
29
|
+
odds: string;
|
|
30
|
+
oddsOld?: string;
|
|
31
|
+
movement?: "UP" | "DOWN" | "NONE";
|
|
32
|
+
url?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Market period (e.g., full time, first half)
|
|
36
|
+
*/
|
|
37
|
+
export interface FUSportsMarketPeriod {
|
|
38
|
+
id: string;
|
|
39
|
+
type: string;
|
|
40
|
+
name: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Market type (e.g., 1x2, over/under)
|
|
44
|
+
*/
|
|
45
|
+
export interface FUSportsMarketType {
|
|
46
|
+
id: string;
|
|
47
|
+
code: string;
|
|
48
|
+
name: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Betting market with selections
|
|
52
|
+
*/
|
|
53
|
+
export interface FUSportsOddMarket {
|
|
54
|
+
type: FUSportsMarketType;
|
|
55
|
+
period: FUSportsMarketPeriod;
|
|
56
|
+
selections: FUSportsOddSelection[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Odds from a specific betting operator
|
|
60
|
+
*/
|
|
61
|
+
export interface FUSportsBettingOperatorOdds {
|
|
62
|
+
operator: FUSportsBettingOperator;
|
|
63
|
+
type: "PRE_EVENT" | "LIVE";
|
|
64
|
+
markets: FUSportsOddMarket[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* All odds for a match
|
|
68
|
+
*/
|
|
69
|
+
export interface FUSportsMatchOdds {
|
|
70
|
+
matchId: string;
|
|
71
|
+
operators: FUSportsBettingOperatorOdds[];
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=odds.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"odds.types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/canonical/odds.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,+BAA+B,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IACxC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,2BAA2B,EAAE,CAAC;CAC5C"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search result FUSports types
|
|
3
|
+
*/
|
|
4
|
+
import type { FUSportsCountry, FUSportsCity } from "./base.types";
|
|
5
|
+
/**
|
|
6
|
+
* Base search result - shared fields for all result types
|
|
7
|
+
*/
|
|
8
|
+
export interface FUSportsSearchResultBase {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
slug?: string;
|
|
12
|
+
country?: FUSportsCountry;
|
|
13
|
+
providerRef?: {
|
|
14
|
+
provider: string;
|
|
15
|
+
id: string;
|
|
16
|
+
}[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Tournament/Competition search result
|
|
20
|
+
*/
|
|
21
|
+
export interface FUSportsTournamentSearchResult extends FUSportsSearchResultBase {
|
|
22
|
+
entityType: "tournament";
|
|
23
|
+
gender?: "MALE" | "FEMALE";
|
|
24
|
+
type?: "LEAGUE" | "CUP";
|
|
25
|
+
region?: "DOMESTIC" | "INTERNATIONAL";
|
|
26
|
+
assets?: {
|
|
27
|
+
logo?: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Player search result
|
|
32
|
+
*/
|
|
33
|
+
export interface FUSportsPlayerSearchResult extends FUSportsSearchResultBase {
|
|
34
|
+
entityType: "player";
|
|
35
|
+
position?: string;
|
|
36
|
+
gender?: "MALE" | "FEMALE";
|
|
37
|
+
birthdate?: string;
|
|
38
|
+
assets?: {
|
|
39
|
+
photo?: string;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Team search result
|
|
44
|
+
*/
|
|
45
|
+
export interface FUSportsTeamSearchResult extends FUSportsSearchResultBase {
|
|
46
|
+
entityType: "team";
|
|
47
|
+
shortName?: string;
|
|
48
|
+
threeLetterCode?: string;
|
|
49
|
+
type?: "club" | "national";
|
|
50
|
+
gender?: "MALE" | "FEMALE";
|
|
51
|
+
assets?: {
|
|
52
|
+
logo?: string;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* President search result
|
|
57
|
+
*/
|
|
58
|
+
export interface FUSportsPresidentSearchResult extends FUSportsSearchResultBase {
|
|
59
|
+
entityType: "president";
|
|
60
|
+
birthdate?: string;
|
|
61
|
+
assets?: {
|
|
62
|
+
photo?: string;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Venue search result
|
|
67
|
+
*/
|
|
68
|
+
export interface FUSportsVenueSearchResult extends FUSportsSearchResultBase {
|
|
69
|
+
entityType: "venue";
|
|
70
|
+
city?: FUSportsCity;
|
|
71
|
+
profile?: {
|
|
72
|
+
latitude?: number;
|
|
73
|
+
longitude?: number;
|
|
74
|
+
capacity?: number;
|
|
75
|
+
};
|
|
76
|
+
assets?: {
|
|
77
|
+
image?: string;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Coach search result
|
|
82
|
+
*/
|
|
83
|
+
export interface FUSportsCoachSearchResult extends FUSportsSearchResultBase {
|
|
84
|
+
entityType: "coach";
|
|
85
|
+
birthdate?: string;
|
|
86
|
+
assets?: {
|
|
87
|
+
photo?: string;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Union type for all search results (discriminated by entityType)
|
|
92
|
+
*/
|
|
93
|
+
export type FUSportsSearchResult = FUSportsTournamentSearchResult | FUSportsPlayerSearchResult | FUSportsTeamSearchResult | FUSportsPresidentSearchResult | FUSportsVenueSearchResult | FUSportsCoachSearchResult;
|
|
94
|
+
/**
|
|
95
|
+
* Search results response
|
|
96
|
+
*/
|
|
97
|
+
export interface FUSportsSearchResults {
|
|
98
|
+
results: FUSportsSearchResult[];
|
|
99
|
+
query: string;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=search.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/canonical/search.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,WAAW,CAAC,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;CACP;AAED;;GAEG;AACH,MAAM,WAAW,8BAA+B,SAAQ,wBAAwB;IAC5E,UAAU,EAAE,YAAY,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,IAAI,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IACxB,MAAM,CAAC,EAAE,UAAU,GAAG,eAAe,CAAC;IACtC,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,wBAAwB;IACxE,UAAU,EAAE,QAAQ,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,wBAAwB;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,6BAA8B,SAAQ,wBAAwB;IAC3E,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,wBAAwB;IACvE,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,wBAAwB;IACvE,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC1B,8BAA8B,GAC9B,0BAA0B,GAC1B,wBAAwB,GACxB,6BAA6B,GAC7B,yBAAyB,GACzB,yBAAyB,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical types for cross-sport search results
|
|
3
|
+
* These types represent search results from the Sports Search API
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Translation for an entity
|
|
7
|
+
*/
|
|
8
|
+
export interface FUSportsTranslation {
|
|
9
|
+
language: string;
|
|
10
|
+
name: string;
|
|
11
|
+
shortName?: string;
|
|
12
|
+
threeLetterCode?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Display asset for an entity
|
|
16
|
+
*/
|
|
17
|
+
export interface FUSportsDisplayAsset {
|
|
18
|
+
url?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Base search result with common fields
|
|
22
|
+
*/
|
|
23
|
+
export interface FUSportsSportsSearchResultBase {
|
|
24
|
+
entityType: string;
|
|
25
|
+
id: string;
|
|
26
|
+
legacyId?: string;
|
|
27
|
+
name: string;
|
|
28
|
+
shortName?: string;
|
|
29
|
+
threeLetterCode?: string;
|
|
30
|
+
translations: FUSportsTranslation[];
|
|
31
|
+
displayAsset?: FUSportsDisplayAsset;
|
|
32
|
+
slug: string;
|
|
33
|
+
tagScore?: number;
|
|
34
|
+
sport: string;
|
|
35
|
+
providerRef: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Country in sports search results
|
|
39
|
+
*/
|
|
40
|
+
export interface FUSportsSportsSearchCountry {
|
|
41
|
+
id: string;
|
|
42
|
+
legacyId?: string;
|
|
43
|
+
name: string;
|
|
44
|
+
shortName?: string;
|
|
45
|
+
threeLetterCode?: string;
|
|
46
|
+
translations: FUSportsTranslation[];
|
|
47
|
+
displayAsset?: FUSportsDisplayAsset;
|
|
48
|
+
slug: string;
|
|
49
|
+
providerRef: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Team search result
|
|
53
|
+
*/
|
|
54
|
+
export interface FUSportsTeamSportsSearchResult extends FUSportsSportsSearchResultBase {
|
|
55
|
+
entityType: "team";
|
|
56
|
+
country?: FUSportsSportsSearchCountry;
|
|
57
|
+
gender: "MALE" | "FEMALE" | "UNDEFINED";
|
|
58
|
+
competitionIds: string[];
|
|
59
|
+
type: string;
|
|
60
|
+
national?: boolean;
|
|
61
|
+
undecided?: boolean;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* City search result
|
|
65
|
+
*/
|
|
66
|
+
export interface FUSportsCitySportsSearchResult extends FUSportsSportsSearchResultBase {
|
|
67
|
+
entityType: "city";
|
|
68
|
+
country?: FUSportsSportsSearchCountry;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Horse search result
|
|
72
|
+
*/
|
|
73
|
+
export interface FUSportsHorseSportsSearchResult extends FUSportsSportsSearchResultBase {
|
|
74
|
+
entityType: "horse";
|
|
75
|
+
country?: FUSportsSportsSearchCountry;
|
|
76
|
+
gender: "MALE" | "FEMALE" | "UNDEFINED";
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Player search result
|
|
80
|
+
*/
|
|
81
|
+
export interface FUSportsPlayerSportsSearchResult extends FUSportsSportsSearchResultBase {
|
|
82
|
+
entityType: "player";
|
|
83
|
+
country?: FUSportsSportsSearchCountry;
|
|
84
|
+
gender: "MALE" | "FEMALE" | "UNDEFINED";
|
|
85
|
+
birthdate?: string;
|
|
86
|
+
position?: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Coach search result
|
|
90
|
+
*/
|
|
91
|
+
export interface FUSportsCoachSportsSearchResult extends FUSportsSportsSearchResultBase {
|
|
92
|
+
entityType: "coach";
|
|
93
|
+
country?: FUSportsSportsSearchCountry;
|
|
94
|
+
gender: "MALE" | "FEMALE" | "UNDEFINED";
|
|
95
|
+
birthdate?: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Referee search result
|
|
99
|
+
*/
|
|
100
|
+
export interface FUSportsRefereeSportsSearchResult extends FUSportsSportsSearchResultBase {
|
|
101
|
+
entityType: "referee";
|
|
102
|
+
country?: FUSportsSportsSearchCountry;
|
|
103
|
+
gender: "MALE" | "FEMALE" | "UNDEFINED";
|
|
104
|
+
birthdate?: string;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Venue search result
|
|
108
|
+
*/
|
|
109
|
+
export interface FUSportsVenueSportsSearchResult extends FUSportsSportsSearchResultBase {
|
|
110
|
+
entityType: "venue";
|
|
111
|
+
country?: FUSportsSportsSearchCountry;
|
|
112
|
+
city?: FUSportsCitySportsSearchResult;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Tournament/Competition search result
|
|
116
|
+
*/
|
|
117
|
+
export interface FUSportsTournamentSportsSearchResult extends FUSportsSportsSearchResultBase {
|
|
118
|
+
entityType: "tournament" | "competition";
|
|
119
|
+
country?: FUSportsSportsSearchCountry;
|
|
120
|
+
gender: "MALE" | "FEMALE" | "UNDEFINED";
|
|
121
|
+
type?: string;
|
|
122
|
+
region?: string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Match search result
|
|
126
|
+
*/
|
|
127
|
+
export interface FUSportsMatchSportsSearchResult extends FUSportsSportsSearchResultBase {
|
|
128
|
+
entityType: "match";
|
|
129
|
+
competitionId?: string;
|
|
130
|
+
startTime?: string;
|
|
131
|
+
homeTeam?: FUSportsTeamSportsSearchResult;
|
|
132
|
+
awayTeam?: FUSportsTeamSportsSearchResult;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Country search result (standalone)
|
|
136
|
+
*/
|
|
137
|
+
export interface FUSportsCountrySportsSearchResult extends FUSportsSportsSearchResultBase {
|
|
138
|
+
entityType: "country";
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Union type for all sports search results (discriminated by entityType)
|
|
142
|
+
*/
|
|
143
|
+
export type FUSportsSportsSearchResult = FUSportsTeamSportsSearchResult | FUSportsCitySportsSearchResult | FUSportsHorseSportsSearchResult | FUSportsPlayerSportsSearchResult | FUSportsCoachSportsSearchResult | FUSportsRefereeSportsSearchResult | FUSportsVenueSportsSearchResult | FUSportsTournamentSportsSearchResult | FUSportsMatchSportsSearchResult | FUSportsCountrySportsSearchResult;
|
|
144
|
+
/**
|
|
145
|
+
* Sports search results response
|
|
146
|
+
*/
|
|
147
|
+
export interface FUSportsSportsSearchResults {
|
|
148
|
+
results: FUSportsSportsSearchResult[];
|
|
149
|
+
query?: string;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=sports-search.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sports-search.types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/canonical/sports-search.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Squad FUSports types
|
|
3
|
+
*/
|
|
4
|
+
import type { FUSportsMember, FUSportsCoach } from "./base.types";
|
|
5
|
+
import type { FUSportsPlayerSeasonStatistics } from "./statistics.types";
|
|
6
|
+
/**
|
|
7
|
+
* Member in a squad context - extends base member with squad-specific data
|
|
8
|
+
*/
|
|
9
|
+
export interface FUSportsSquadMember extends FUSportsMember {
|
|
10
|
+
status?: "ACTIVE" | "INACTIVE" | "INJURED" | "SUSPENDED";
|
|
11
|
+
contractType?: "PERMANENT" | "LOAN" | "UNKNOWN";
|
|
12
|
+
contractUntil?: string;
|
|
13
|
+
joinedDate?: string;
|
|
14
|
+
marketValue?: {
|
|
15
|
+
amount: number;
|
|
16
|
+
currency: string;
|
|
17
|
+
};
|
|
18
|
+
seasonStatistics?: FUSportsPlayerSeasonStatistics;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Team squad information
|
|
22
|
+
*/
|
|
23
|
+
export interface FUSportsSquad {
|
|
24
|
+
teamId: string;
|
|
25
|
+
teamName?: string;
|
|
26
|
+
coach?: FUSportsCoach;
|
|
27
|
+
players: FUSportsSquadMember[];
|
|
28
|
+
lastUpdated?: string;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=squad.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"squad.types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/canonical/squad.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACvD,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;IACzD,YAAY,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,gBAAgB,CAAC,EAAE,8BAA8B,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standing and form FUSports types
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Form/Recent results
|
|
6
|
+
*/
|
|
7
|
+
export interface FUSportsCompetitorForm {
|
|
8
|
+
competitorId: string;
|
|
9
|
+
results: Array<{
|
|
10
|
+
matchId: string;
|
|
11
|
+
result: "W" | "D" | "L";
|
|
12
|
+
score?: string;
|
|
13
|
+
homeAway?: "HOME" | "AWAY";
|
|
14
|
+
opponent: {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
logo?: string;
|
|
18
|
+
};
|
|
19
|
+
date: Date;
|
|
20
|
+
competition?: {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
};
|
|
24
|
+
}>;
|
|
25
|
+
formString?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Standing/Ranking entry
|
|
29
|
+
*/
|
|
30
|
+
export interface FUSportsStandingEntry {
|
|
31
|
+
rank: number;
|
|
32
|
+
competitor: {
|
|
33
|
+
id: string;
|
|
34
|
+
name: string;
|
|
35
|
+
shortName?: string;
|
|
36
|
+
logo?: string;
|
|
37
|
+
};
|
|
38
|
+
stats: {
|
|
39
|
+
played?: number;
|
|
40
|
+
won?: number;
|
|
41
|
+
drawn?: number;
|
|
42
|
+
lost?: number;
|
|
43
|
+
goalsFor?: number;
|
|
44
|
+
goalsAgainst?: number;
|
|
45
|
+
goalDifference?: number;
|
|
46
|
+
points?: number;
|
|
47
|
+
[key: string]: number | undefined;
|
|
48
|
+
};
|
|
49
|
+
/** Recent form with detailed match information */
|
|
50
|
+
form?: FUSportsCompetitorForm;
|
|
51
|
+
/** Rule keys this entry belongs to (e.g., ["championsLeague", "promotion"]) */
|
|
52
|
+
rules?: string[];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Legend item - describes a rule/zone in the standings (e.g., Champions League qualification)
|
|
56
|
+
*/
|
|
57
|
+
export interface FUSportsStandingLegendItem {
|
|
58
|
+
/** Unique key for the rule (e.g., "championsLeague", "relegation") */
|
|
59
|
+
key: string;
|
|
60
|
+
/** Display name (e.g., "Champions League", "Relegation") */
|
|
61
|
+
name: string;
|
|
62
|
+
/** Position type: TOP (qualification), BOTTOM (relegation), MIDDLE (playoff) */
|
|
63
|
+
position: "TOP" | "BOTTOM" | "MIDDLE";
|
|
64
|
+
/** Optional color for visual display */
|
|
65
|
+
color?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Standings metadata - table-level information
|
|
69
|
+
*/
|
|
70
|
+
export interface FUSportsStandingsMetadata {
|
|
71
|
+
/** Legend explaining the rules/zones in the table */
|
|
72
|
+
legend: FUSportsStandingLegendItem[];
|
|
73
|
+
/** Additional metadata for future use */
|
|
74
|
+
[key: string]: unknown;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Complete standings response with entries and metadata
|
|
78
|
+
*/
|
|
79
|
+
export interface FUSportsStandings {
|
|
80
|
+
/** Standing entries (team rows) */
|
|
81
|
+
entries: FUSportsStandingEntry[];
|
|
82
|
+
/** Table-level metadata including legend */
|
|
83
|
+
metadata: FUSportsStandingsMetadata;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=standing.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standing.types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/canonical/standing.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,QAAQ,EAAE;YACN,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,IAAI,EAAE,IAAI,CAAC;QACX,WAAW,CAAC,EAAE;YACV,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;SAChB,CAAC;KACL,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KACrC,CAAC;IACF,kDAAkD;IAClD,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACtC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,qDAAqD;IACrD,MAAM,EAAE,0BAA0B,EAAE,CAAC;IACrC,yCAAyC;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,mCAAmC;IACnC,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,4CAA4C;IAC5C,QAAQ,EAAE,yBAAyB,CAAC;CACvC"}
|