fansunited-data-layer 0.0.7 → 0.0.9

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.
Files changed (51) hide show
  1. package/README.md +44 -0
  2. package/dist/api/sportal365-sports/football/competitions/competition.types.d.ts +148 -0
  3. package/dist/api/sportal365-sports/football/competitions/competition.types.d.ts.map +1 -0
  4. package/dist/api/sportal365-sports/football/competitions/index.d.ts +51 -0
  5. package/dist/api/sportal365-sports/football/competitions/index.d.ts.map +1 -0
  6. package/dist/api/sportal365-sports/football/competitions/utils.d.ts +14 -0
  7. package/dist/api/sportal365-sports/football/competitions/utils.d.ts.map +1 -0
  8. package/dist/api/sportal365-sports/football/index.d.ts +2 -0
  9. package/dist/api/sportal365-sports/football/index.d.ts.map +1 -1
  10. package/dist/api/sportal365-sports/football/matches/index.d.ts.map +1 -1
  11. package/dist/api/sportal365-sports/football/matches/types/commentary.types.d.ts +3 -0
  12. package/dist/api/sportal365-sports/football/matches/types/commentary.types.d.ts.map +1 -1
  13. package/dist/api/sportal365-sports/football/matches/types/option.types.d.ts +13 -0
  14. package/dist/api/sportal365-sports/football/matches/types/option.types.d.ts.map +1 -1
  15. package/dist/api/sportal365-sports/football/standings/http.d.ts.map +1 -1
  16. package/dist/api/sportal365-sports/football/standings/index.d.ts.map +1 -1
  17. package/dist/api/sportal365-sports/football/standings/standing.types.d.ts +3 -0
  18. package/dist/api/sportal365-sports/football/standings/standing.types.d.ts.map +1 -1
  19. package/dist/api/sportal365-sports/football/teams/index.d.ts.map +1 -1
  20. package/dist/api/sportal365-sports/football/teams/team.types.d.ts +3 -0
  21. package/dist/api/sportal365-sports/football/teams/team.types.d.ts.map +1 -1
  22. package/dist/api/sportal365-sports/http.d.ts +12 -0
  23. package/dist/api/sportal365-sports/http.d.ts.map +1 -1
  24. package/dist/api/sportal365-sports/index.d.ts +3 -2
  25. package/dist/api/sportal365-sports/index.d.ts.map +1 -1
  26. package/dist/client.cjs +6 -0
  27. package/dist/client.d.ts +20 -0
  28. package/dist/client.d.ts.map +1 -0
  29. package/dist/client.js +451 -0
  30. package/dist/fansunited-data-layer.cjs +1 -0
  31. package/dist/fansunited-data-layer.js +52 -1093
  32. package/dist/helpers/competition.helpers.d.ts +22 -0
  33. package/dist/helpers/competition.helpers.d.ts.map +1 -0
  34. package/dist/helpers/index.d.ts +6 -0
  35. package/dist/helpers/index.d.ts.map +1 -0
  36. package/dist/helpers/team.helpers.d.ts +45 -0
  37. package/dist/helpers/team.helpers.d.ts.map +1 -0
  38. package/dist/index-4gbkCyy3.cjs +1 -0
  39. package/dist/index-C8byrMrI.js +806 -0
  40. package/dist/index.d.ts +5 -4
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/providers/competition.provider.d.ts +1 -1
  43. package/dist/providers/competition.provider.d.ts.map +1 -1
  44. package/dist/providers/competition.types.d.ts +21 -3
  45. package/dist/providers/competition.types.d.ts.map +1 -1
  46. package/dist/types/canonical/base.types.d.ts +51 -0
  47. package/dist/types/canonical/base.types.d.ts.map +1 -1
  48. package/dist/types/canonical/index.d.ts +1 -1
  49. package/dist/types/canonical/index.d.ts.map +1 -1
  50. package/package.json +8 -3
  51. package/dist/fansunited-data-layer.umd.cjs +0 -6
package/dist/index.d.ts CHANGED
@@ -25,8 +25,9 @@
25
25
  */
26
26
  export declare const version = "0.0.2";
27
27
  export { setConfig, getConfig, isConfigured, type DataLayerConfig, type Sportal365SportsConfig, type FansUnitedSportsApiConfig, type PayloadConfig, } from "./config";
28
- export { getFootballMatch, getFootballMatchEvents, getFootballMatchLineups, getFootballMatchOdds, getFootballMatchStatistics, getFootballMatchCommentary, getFootballMatches, getFootballTeam, getFootballStandings, } from "./api/sportal365-sports";
29
- export type { GetFootballMatchOptions, GetFootballMatchEventsOptions, GetFootballMatchLineupsOptions, GetFootballMatchOddsOptions, GetFootballMatchStatisticsOptions, GetFootballMatchCommentaryOptions, GetFootballMatchesOptions, GetFootballTeamOptions, GetFootballStandingsOptions, StandingsCoverageType, StandingsOptionalData, OddType, ScopeType, OddFormat, MarketType, OptionalMatchData, MatchStatusType, SortDirection, } from "./api/sportal365-sports";
30
- export type { FUSportsCountry, FUSportsCompetitor, FUSportsCompetition, FUSportsVenue, FUSportsOfficial, FUSportsPlayer, FUSportsMatchPlayer, FUSportsCoach, FUSportsMatchScore, FUSportsMatchStatus, FUSportsMatchTiming, FUSportsMatchWinner, FUSportsMatch, FUSportsMatchSimple, FUSportsFootballEventType, FUSportsOtherEventType, FUSportsMatchEvent, FUSportsLineupPlayer, FUSportsCompetitorLineup, FUSportsMatchLineups, FUSportsStatisticEntry, FUSportsCompetitorStatistics, FUSportsMatchStatistics, FUSportsBettingOperatorBranding, FUSportsBettingOperator, FUSportsOddSelection, FUSportsMarketPeriod, FUSportsMarketType, FUSportsOddMarket, FUSportsBettingOperatorOdds, FUSportsMatchOdds, FUSportsCommentaryDetail, FUSportsCommentaryMeta, FUSportsCommentaryItem, FUSportsStandingEntry, FUSportsCompetitorForm, FUSportsStandingLegendItem, FUSportsStandingsMetadata, FUSportsStandings, } from "./types/canonical";
31
- export { CompetitionProvider, useCompetition, type CompetitionConfig, type Season, type CompetitionContextValue, type CompetitionProviderProps, } from "./providers";
28
+ export { getFootballMatch, getFootballMatchEvents, getFootballMatchLineups, getFootballMatchOdds, getFootballMatchStatistics, getFootballMatchCommentary, getFootballMatches, getFootballTeam, getFootballCompetition, getFootballSeasonDetails, getFootballStandings, } from "./api/sportal365-sports";
29
+ export type { GetFootballMatchOptions, GetFootballMatchEventsOptions, GetFootballMatchLineupsOptions, GetFootballMatchOddsOptions, GetFootballMatchStatisticsOptions, GetFootballMatchCommentaryOptions, GetFootballMatchesOptions, GetFootballTeamOptions, GetFootballCompetitionOptions, GetFootballSeasonDetailsOptions, GetFootballStandingsOptions, StandingsCoverageType, StandingsOptionalData, OddType, ScopeType, OddFormat, MarketType, OptionalMatchData, MatchStatusType, SortDirection, NextCacheOptions, } from "./api/sportal365-sports";
30
+ export type { FUSportsCountry, FUSportsCompetitor, FUSportsSeason, FUSportsRound, FUSportsStage, FUSportsSeasonDetails, FUSportsCompetition, FUSportsVenue, FUSportsOfficial, FUSportsPlayer, FUSportsMatchPlayer, FUSportsCoach, FUSportsMatchScore, FUSportsMatchStatus, FUSportsMatchTiming, FUSportsMatchWinner, FUSportsMatch, FUSportsMatchSimple, FUSportsFootballEventType, FUSportsOtherEventType, FUSportsMatchEvent, FUSportsLineupPlayer, FUSportsCompetitorLineup, FUSportsMatchLineups, FUSportsStatisticEntry, FUSportsCompetitorStatistics, FUSportsMatchStatistics, FUSportsBettingOperatorBranding, FUSportsBettingOperator, FUSportsOddSelection, FUSportsMarketPeriod, FUSportsMarketType, FUSportsOddMarket, FUSportsBettingOperatorOdds, FUSportsMatchOdds, FUSportsCommentaryDetail, FUSportsCommentaryMeta, FUSportsCommentaryItem, FUSportsStandingEntry, FUSportsCompetitorForm, FUSportsStandingLegendItem, FUSportsStandingsMetadata, FUSportsStandings, } from "./types/canonical";
31
+ export { getActiveSeason, getTeamNextMatch, getTeamPreviousMatch } from "./helpers";
32
+ export type { CompetitionConfig, Season, CompetitionContextValue, CompetitionProviderProps } from "./providers";
32
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EACH,SAAS,EACT,SAAS,EACT,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,aAAa,GACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACH,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,oBAAoB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACR,uBAAuB,EACvB,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,EAC3B,iCAAiC,EACjC,iCAAiC,EACjC,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,qBAAqB,EACrB,OAAO,EACP,SAAS,EACT,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,aAAa,GAChB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAER,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,aAAa,EAEb,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EAEnB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAElB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EAEpB,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EAEvB,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,EAEjB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EAEtB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACH,mBAAmB,EACnB,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,MAAM,EACX,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAChC,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EACH,SAAS,EACT,SAAS,EACT,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,aAAa,GACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACH,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACR,uBAAuB,EACvB,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,EAC3B,iCAAiC,EACjC,iCAAiC,EACjC,yBAAyB,EACzB,sBAAsB,EACtB,6BAA6B,EAC7B,+BAA+B,EAC/B,2BAA2B,EAC3B,qBAAqB,EACrB,qBAAqB,EACrB,OAAO,EACP,SAAS,EACT,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,gBAAgB,GACnB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAER,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,aAAa,EAEb,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EAEnB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAElB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EAEpB,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EAEvB,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,EAEjB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EAEtB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAGpF,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { CompetitionProviderProps } from "./competition.types";
2
- export declare function CompetitionProvider({ competitionId, seasonId, stageId, matches: initialMatches, standings: initialStandings, previousSeasons, config, autoRefresh, refreshInterval, children, }: CompetitionProviderProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function CompetitionProvider({ competitionId, seasonId, stageId, competition: initialCompetition, season: initialSeason, matches: initialMatches, standings: initialStandings, previousSeasons, config, autoRefresh, refreshInterval, children, }: CompetitionProviderProps): import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=competition.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"competition.provider.d.ts","sourceRoot":"","sources":["../../src/lib/providers/competition.provider.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAA2B,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAM7F,wBAAgB,mBAAmB,CAAC,EAChC,aAAa,EACb,QAAQ,EACR,OAAO,EACP,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,gBAAgB,EAC3B,eAAe,EACf,MAAM,EACN,WAAkB,EAClB,eAAuB,EACvB,QAAQ,GACX,EAAE,wBAAwB,2CA2K1B"}
1
+ {"version":3,"file":"competition.provider.d.ts","sourceRoot":"","sources":["../../src/lib/providers/competition.provider.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAA2B,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAU7F,wBAAgB,mBAAmB,CAAC,EAChC,aAAa,EACb,QAAQ,EACR,OAAO,EACP,WAAW,EAAE,kBAAkB,EAC/B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,gBAAgB,EAC3B,eAAe,EACf,MAAM,EACN,WAAkB,EAClB,eAAuB,EACvB,QAAQ,GACX,EAAE,wBAAwB,2CAsQ1B"}
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from "react";
2
- import type { FUSportsMatch, FUSportsStandingEntry } from "../types/canonical";
2
+ import type { FUSportsMatch, FUSportsStandingEntry, FUSportsCompetition, FUSportsSeasonDetails } from "../types/canonical";
3
3
  /**
4
4
  * Competition branding and display configuration
5
5
  */
@@ -31,10 +31,15 @@ export interface CompetitionContextValue {
31
31
  competitionId: string;
32
32
  seasonId?: string;
33
33
  stageId?: string;
34
+ competition?: FUSportsCompetition;
35
+ season?: FUSportsSeasonDetails;
36
+ isRefreshing: boolean;
37
+ lastRefreshed?: Date;
34
38
  matches: FUSportsMatch[];
35
39
  standings: FUSportsStandingEntry[];
36
40
  previousSeasons?: Season[];
37
41
  config?: CompetitionConfig;
42
+ refresh: () => Promise<void>;
38
43
  getMatch: (id: string) => FUSportsMatch | undefined;
39
44
  getMatchesByTeam: (teamId: string) => FUSportsMatch[];
40
45
  getMatchesByDate: (date: string) => FUSportsMatch[];
@@ -54,14 +59,27 @@ export interface CompetitionContextValue {
54
59
  * Props for the CompetitionProvider component
55
60
  */
56
61
  export interface CompetitionProviderProps {
62
+ /** Competition ID to fetch data for */
57
63
  competitionId: string;
64
+ /** Optional season ID (defaults to current season) */
58
65
  seasonId?: string;
66
+ /** Optional stage ID */
59
67
  stageId?: string;
60
- matches: FUSportsMatch[];
61
- standings: FUSportsStandingEntry[];
68
+ /** Initial competition data (from SSR) */
69
+ competition?: FUSportsCompetition;
70
+ /** Initial season details (from SSR) */
71
+ season?: FUSportsSeasonDetails;
72
+ /** Initial matches data (from SSR) */
73
+ matches?: FUSportsMatch[];
74
+ /** Initial standings data (from SSR) */
75
+ standings?: FUSportsStandingEntry[];
76
+ /** Historical season data */
62
77
  previousSeasons?: Season[];
78
+ /** Custom configuration */
63
79
  config?: CompetitionConfig;
80
+ /** Enable auto-refresh for live matches (default: true) */
64
81
  autoRefresh?: boolean;
82
+ /** Refresh interval in milliseconds (default: 30000) */
65
83
  refreshInterval?: number;
66
84
  children: ReactNode;
67
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"competition.types.d.ts","sourceRoot":"","sources":["../../src/lib/providers/competition.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"competition.types.d.ts","sourceRoot":"","sources":["../../src/lib/providers/competition.types.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,54 @@ export interface FUSportsCompetitor {
34
34
  ranking?: number;
35
35
  };
36
36
  }
37
+ /**
38
+ * Season information for a competition
39
+ */
40
+ export interface FUSportsSeason {
41
+ id: string;
42
+ name: string;
43
+ slug?: string;
44
+ active: boolean;
45
+ }
46
+ /**
47
+ * Round information within a stage
48
+ */
49
+ export interface FUSportsRound {
50
+ id: string;
51
+ name: string;
52
+ key?: string;
53
+ type?: "LEAGUE" | "CUP" | "QUALIFICATION" | "PLAYOFF";
54
+ status?: "ACTIVE" | "INACTIVE";
55
+ startDate?: string;
56
+ endDate?: string;
57
+ }
58
+ /**
59
+ * Stage information within a season
60
+ */
61
+ export interface FUSportsStage {
62
+ id: string;
63
+ name: string;
64
+ slug?: string;
65
+ shortName?: string;
66
+ type?: "LEAGUE" | "CUP" | "GROUP" | "KNOCKOUT" | "PLAYOFF" | "QUALIFICATION";
67
+ status?: "ACTIVE" | "INACTIVE";
68
+ coverage?: "LIVE" | "HIGHLIGHTS" | "NONE";
69
+ order?: number;
70
+ startDate?: string;
71
+ endDate?: string;
72
+ rounds?: FUSportsRound[];
73
+ }
74
+ /**
75
+ * Detailed season information with stages and rounds
76
+ */
77
+ export interface FUSportsSeasonDetails extends FUSportsSeason {
78
+ /** Status of the season */
79
+ status: "ACTIVE" | "INACTIVE" | "UPCOMING";
80
+ /** Competition/tournament this season belongs to */
81
+ competition?: FUSportsCompetition;
82
+ /** Stages within this season (e.g., group stage, knockout stage) */
83
+ stages?: FUSportsStage[];
84
+ }
37
85
  /**
38
86
  * Competition/Tournament information
39
87
  */
@@ -44,12 +92,15 @@ export interface FUSportsCompetition {
44
92
  shortName?: string;
45
93
  type: "LEAGUE" | "CUP" | "TOURNAMENT" | "FRIENDLY";
46
94
  region?: "DOMESTIC" | "INTERNATIONAL" | "CONTINENTAL";
95
+ gender?: "MALE" | "FEMALE";
47
96
  country?: FUSportsCountry;
48
97
  season?: {
49
98
  id: string;
50
99
  name: string;
51
100
  status?: "ACTIVE" | "INACTIVE" | "UPCOMING";
52
101
  };
102
+ /** All seasons for this competition (when fetching full competition details) */
103
+ seasons?: FUSportsSeason[];
53
104
  stage?: {
54
105
  id: string;
55
106
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"base.types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/canonical/base.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/canonical/base.types.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Sport-agnostic models that work across football, tennis, basketball, cricket, etc.
5
5
  */
6
- export type { FUSportsCountry, FUSportsCompetitor, FUSportsCompetition, FUSportsVenue, FUSportsOfficial, FUSportsPlayer, FUSportsMatchPlayer, FUSportsCoach, } from "./base.types";
6
+ export type { FUSportsCountry, FUSportsCompetitor, FUSportsSeason, FUSportsRound, FUSportsStage, FUSportsSeasonDetails, FUSportsCompetition, FUSportsVenue, FUSportsOfficial, FUSportsPlayer, FUSportsMatchPlayer, FUSportsCoach, } from "./base.types";
7
7
  export type { FUSportsMatchScore, FUSportsMatchStatus, FUSportsMatchTiming, FUSportsMatchWinner, FUSportsMatch, FUSportsMatchSimple, } from "./match.types";
8
8
  export type { FUSportsFootballEventType, FUSportsOtherEventType, FUSportsMatchEvent } from "./event.types";
9
9
  export type { FUSportsLineupPlayer, FUSportsCompetitorLineup, FUSportsMatchLineups } from "./lineup.types";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/types/canonical/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACR,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,aAAa,GAChB,MAAM,cAAc,CAAC;AAGtB,YAAY,EACR,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,GACtB,MAAM,eAAe,CAAC;AAGvB,YAAY,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG3G,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAG3G,YAAY,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAGxH,YAAY,EACR,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,GACpB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGnH,YAAY,EACR,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,GACpB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/types/canonical/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACR,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,aAAa,GAChB,MAAM,cAAc,CAAC;AAGtB,YAAY,EACR,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,GACtB,MAAM,eAAe,CAAC;AAGvB,YAAY,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG3G,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAG3G,YAAY,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAGxH,YAAY,EACR,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,GACpB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGnH,YAAY,EACR,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,GACpB,MAAM,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,19 +1,24 @@
1
1
  {
2
2
  "name": "fansunited-data-layer",
3
3
  "private": false,
4
- "version": "0.0.7",
4
+ "version": "0.0.9",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"
8
8
  ],
9
- "main": "./dist/fansunited-data-layer.umd.cjs",
9
+ "main": "./dist/fansunited-data-layer.cjs",
10
10
  "module": "./dist/fansunited-data-layer.js",
11
11
  "types": "./dist/index.d.ts",
12
12
  "exports": {
13
13
  ".": {
14
14
  "types": "./dist/index.d.ts",
15
15
  "import": "./dist/fansunited-data-layer.js",
16
- "require": "./dist/fansunited-data-layer.umd.cjs"
16
+ "require": "./dist/fansunited-data-layer.cjs"
17
+ },
18
+ "./client": {
19
+ "types": "./dist/client.d.ts",
20
+ "import": "./dist/client.js",
21
+ "require": "./dist/client.cjs"
17
22
  }
18
23
  },
19
24
  "scripts": {
@@ -1,6 +0,0 @@
1
- (function(m,u){typeof exports=="object"&&typeof module<"u"?u(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],u):(m=typeof globalThis<"u"?globalThis:m||self,u(m.FansUnitedDataLayer={},m.React))})(this,(function(m,u){"use strict";"use client";let M=null;function fe(e){M=e}function E(){if(!M)throw new Error("Data layer config not initialized. Call setConfig() in your root layout.");return M}function pe(){return M!==null}function ge(e){const t=e.replace(/\/$/,"");function n(){const{sportal365Sports:a}=E();if(!a)throw new Error("Sportal365 Sports API configuration is missing");const s=`${a.username}:${a.password}`;return`Basic ${btoa(s)}`}function r(a){return`${t}${a}`}return{async get(a){const{sportal365Sports:s}=E();if(!s)throw new Error("Sportal365 Sports API configuration is missing");const p=new URL(r(a.path));if(a.params)for(const[b,S]of Object.entries(a.params))S!==void 0&&(Array.isArray(S)?S.length>0&&p.searchParams.set(b,S.join(",")):p.searchParams.set(b,S));const _=await fetch(p.toString(),{method:"GET",headers:{Authorization:n(),"Content-Type":"application/json","X-Project":s.projectId},signal:s.timeout?AbortSignal.timeout(s.timeout):void 0});if(!_.ok)throw new Error(`Sportal365 API error: ${_.status} ${_.statusText}`);return _.json()}}}const _e="https://football.api.sportal365.com",ye="https://standing.api.sportal365.com",A=ge(_e);function ee(e){if(e)return{id:e.id,name:e.name,slug:e.slug,position:e.position,gender:e.gender,assets:e.assets?{photo:e.assets.thumb?.url,photoTransparent:e.assets.thumb_transparent_background?.url}:void 0}}const he={GOAL:"GOAL",PENALTY_GOAL:"PENALTY_GOAL",OWN_GOAL:"OWN_GOAL",DISALLOWED_GOAL:"DISALLOWED_GOAL",PENALTY_SHOOTOUT_SCORED:"PENALTY_SHOOTOUT_SCORED",PENALTY_SHOOTOUT_MISSED:"PENALTY_SHOOTOUT_MISSED",YELLOW_CARD:"YELLOW_CARD",RED_CARD:"RED_CARD",YELLOW_RED_CARD:"YELLOW_RED_CARD",SUBSTITUTION:"SUBSTITUTION",KICKOFF:"KICKOFF",HALFTIME:"HALFTIME",START_SECOND_HALF:"START_SECOND_HALF",FINISHED:"FINISHED",INJURY_TIME:"INJURY_TIME",PENALTY_AWARDED:"PENALTY_AWARDED",PENALTY_MISSED:"PENALTY_MISSED",PENALTY_SAVED:"PENALTY_SAVED"};function j(e){const t=he[e.type_code];return t?{id:e.id,type:t,competitorPosition:e.team_position==="HOME"?"ONE":"TWO",minute:e.minute,injuryMinute:e.injury_minute,primaryPlayer:ee(e.primary_player),secondaryPlayer:ee(e.secondary_player),score:e.score?{competitorOne:String(e.score.home),competitorTwo:String(e.score.away)}:void 0}:(console.warn(`Unknown event type: ${e.type_code}`),null)}function Ee(e){return{code:{FINISHED:"finished",NOT_STARTED:"not_started",LIVE:"live",INTERRUPTED:"interrupted",CANCELLED:"cancelled",POSTPONED:"postponed",UNKNOWN:"not_started",ABANDONED:"abandoned"}[e.type]??"not_started",name:e.name,shortName:e.short_name,type:e.type}}function te(e){return{id:e.id,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code,slug:e.slug,type:e.type??"club",gender:e.gender,assets:e.assets?{logo:e.assets.logo?.url,homeKit:e.assets.home_kit?.url,awayKit:e.assets.away_kit?.url,squadImage:e.assets.squad_image?.url}:void 0,metadata:e.shirt_color?{shirtColor:e.shirt_color}:void 0}}function Te(e){return{kickoffTime:new Date(e.kickoff_time),currentMinute:e.minute?.regular_time,phaseStartedAt:e.phase_started_at?new Date(e.phase_started_at):void 0,finishedAt:e.finished_at?new Date(e.finished_at):void 0,firstHalfStartedAt:e.first_half_started_at?new Date(e.first_half_started_at):void 0,secondHalfStartedAt:e.second_half_started_at?new Date(e.second_half_started_at):void 0,extraTimeFirstHalfStartedAt:e.extra_time_first_half_started_at?new Date(e.extra_time_first_half_started_at):void 0,extraTimeSecondHalfStartedAt:e.extra_time_second_half_started_at?new Date(e.extra_time_second_half_started_at):void 0}}function ve(e){if(!e)return;const t=r=>r?{competitorOne:String(r.home),competitorTwo:String(r.away)}:void 0,n=e.total??e.regular_time;return{competitorOne:n?.home!=null?String(n.home):null,competitorTwo:n?.away!=null?String(n.away):null,breakdown:{total:t(e.total),halfTime:t(e.half_time),regularTime:t(e.regular_time),extraTime:t(e.extra_time),penaltyShootout:t(e.penalty_shootout),aggregate:t(e.aggregate)}}}function be(e){if(e)return{id:e.id,name:e.name,slug:e.slug,assets:e.assets?.image?.url?{image:e.assets.image.url}:void 0}}function ke(e){if(e?.length)return e.map(t=>({id:t.id,name:t.name,slug:t.slug,role:t.role??"REFEREE",gender:t.gender}))}function Se(e){if(!e.season?.tournament)return;const{tournament:t,...n}=e.season;return{id:t.id,name:t.name,slug:t.slug,type:t.type,region:t.region,country:t.country?{id:t.country.id,name:t.country.name,code:t.country.code??void 0,flag:t.country.assets?.flag?.url}:void 0,season:{id:n.id,name:n.name,status:n.status},stage:e.stage?{id:e.stage.id,name:e.stage.name,type:e.stage.type}:void 0,assets:t.assets?.logo?.url?{logo:t.assets.logo.url}:void 0}}function Ae(e){if(!e.winner?.match?.id)return;const t={"Regular Time":"REGULAR_TIME","Extra Time":"EXTRA_TIME",Penalties:"PENALTIES"};return{competitorId:e.winner.match.id,reason:e.winner.match.reason?.name?t[e.winner.match.reason.name]:void 0,aggregate:!!e.winner.aggregate}}function oe(e){return{id:e.id,slug:e.slug,status:Ee(e.status),timing:Te(e),competitorOne:te(e.home_team),competitorTwo:te(e.away_team),competition:Se(e),round:e.round?{id:e.round.id??e.round.key,key:e.round.key,name:e.round.name,type:e.round.type??"REGULAR"}:void 0,group:e.group?{id:e.group.id,name:e.group.name}:void 0,venue:be(e.venue),officials:ke(e.referees),spectators:e.spectators??void 0,score:ve(e.score),mainEvents:e.main_events?.map(j).filter(t=>t!==null),penaltyShootoutEvents:e.penalty_shootout_events?.map(j).filter(t=>t!==null),winner:Ae(e),coverage:e.coverage==="NOT_LIVE"?"UNKNOWN":e.coverage,lineupStatus:e.lineup_status==="UNCONFIRMED"?"EXPECTED":e.lineup_status}}function Oe(e){const t=e.player;return{id:t.id,name:t.name,slug:t.slug,position:t.position,shirtNumber:e.shirt_number,positionX:e.position_x??void 0,positionY:e.position_y??void 0,country:t.country?{id:t.country.id,name:t.country.name,code:t.country.code}:void 0,birthdate:t.birthdate,profile:t.profile?{height:t.profile.height,weight:t.profile.weight}:void 0,events:e.events?.map(j).filter(n=>n!==null)}}function ne(e){const t=[],n=[];for(const r of e.players){const a=Oe(r);r.type.category==="start"?t.push(a):r.type.category==="sub"&&n.push(a)}return{competitorId:e.team_id,formation:e.formation,coach:e.coach?{id:e.coach.id,name:e.coach.name,slug:e.coach.slug,country:e.coach.country?{id:e.coach.country.id,name:e.coach.country.name,code:e.coach.country.code}:void 0,birthdate:e.coach.birthdate}:void 0,starters:t,substitutes:n}}function Ce(e){return{matchId:e.match_id,confirmed:e.status==="CONFIRMED",competitorOne:ne(e.home_team),competitorTwo:ne(e.away_team)}}function T(e,t,n,r){return t==null?null:{key:e,value:String(t),label:n,unit:r}}function re(e,t){const n=(t.shots_on??0)+(t.shots_off??0)+(t.shots_blocked??0),r=[T("possession",t.possession,"Possession","%"),T("shots_total",n,"Shots"),T("shots_on_target",t.shots_on,"Shots on Target"),T("shots_off_target",t.shots_off,"Shots off Target"),T("shots_blocked",t.shots_blocked,"Shots Blocked"),T("corners",t.corners,"Corner Kicks"),T("goal_kicks",t.goal_kicks,"Goal Kicks"),T("throw_ins",t.throw_in,"Throw Ins"),T("offsides",t.offside,"Offsides"),T("fouls",t.fouls_committed,"Fouls"),T("yellow_cards",t.yellow_cards,"Yellow Cards"),T("passes",t.pass,"Passes"),T("crosses",t.crosses,"Crosses")];return{competitorId:e,statistics:r.filter(a=>a!==null)}}function Re(e){const t=e.find(r=>r.home_team),n=e.find(r=>!r.home_team);if(!t||!n)throw new Error("Missing competitor statistics");return{competitorOne:re(String(t.team.id),t.statistics),competitorTwo:re(String(n.team.id),n.statistics)}}function Ne(e){const t=e.urls?.find(n=>n.app_type==="desktop")?.url;return{id:e.id,name:e.name,code:e.code,value:e.value??void 0,odds:e.odds,oddsOld:e.odds_old,movement:e.movement==="STABLE"?"NONE":e.movement,url:t}}function Le(e){return{type:{id:e.type.id,code:e.type.code,name:e.type.name},period:{id:e.scope.id,type:e.scope.type,name:e.scope.name},selections:e.selections.map(Ne)}}function Pe(e){return{operator:{id:e.bookmaker.id,name:e.bookmaker.name,url:e.bookmaker.url,branding:e.bookmaker.branding?{backgroundColor:e.bookmaker.branding.background_color,textColor:e.bookmaker.branding.text_color,logo:e.bookmaker.assets?.[0]?.logo}:void 0},type:e.type,markets:e.markets.map(Le)}}function Ie(e,t){return{matchId:e,operators:t.map(Pe)}}function ae(e){if(e==null||e==="")return;const t=typeof e=="number"?e:parseInt(e,10);return isNaN(t)?void 0:t}function De(e){return{externalId:e.external_id,minute:ae(e.elapsed),addedTime:ae(e.elapsed_plus),text:e.auto_text,details:e.details,meta:{type:e.type,commentaryType:e.commentary_type,subtype1:e.subtype_1,subtype2:e.subtype_2,timestamp:e.incident_timestamp}}}async function Fe(e,t={}){const{sportal365Sports:n}=E(),r=await A.get({path:`/v2/matches/${e}`,params:{language_code:t.languageCode??n?.languageCode??"en",odd_client:t.oddClient,odd_type:t.oddType,scope_type:t.scopeType,odd_format:t.oddFormat,market_types:t.marketTypes,bookmaker_ids:t.bookmakerIds,optional_data:t.optionalData}});return oe(r)}async function Me(e,t={}){const{sportal365Sports:n}=E();return(await A.get({path:`/v2/matches/${e}/events`,params:{language_code:t.languageCode??n?.languageCode??"en"}})).events.map(j).filter(a=>a!==null)}async function je(e,t={}){const{sportal365Sports:n}=E(),r=await A.get({path:`/v2/matches/${e}/lineups`,params:{language_code:t.languageCode??n?.languageCode??"en"}});return Ce(r)}async function xe(e,t={}){const{sportal365Sports:n}=E(),r=await A.get({path:`/v2/matches/${e}`,params:{language_code:t.languageCode??n?.languageCode??"en",odd_client:t.oddClient??n?.oddClient,odd_type:t.oddType,scope_type:t.scopeType??"ALL",odd_format:t.oddFormat??"DECIMAL",market_types:t.marketTypes,bookmaker_ids:t.bookmakerIds}});return Ie(e,r.odds??[])}async function Ye(e,t={}){const{sportal365Sports:n}=E(),r=await A.get({path:`/events/${e}/teamstats`,params:{language_code:t.languageCode??n?.languageCode??"en"}});return Re(r)}async function Ue(e,t={}){const{sportal365Sports:n}=E();return(await A.get({path:`/matches/${e}/commentary`,params:{language_code:t.languageCode??n?.languageCode??"en"}})).map(De)}async function We(e){const{sportal365Sports:t}=E();return(await A.get({path:"/v2/matches",params:{language_code:e.languageCode??t?.languageCode??"en",limit:e.limit.toString(),offset:e.offset.toString(),tournament_ids:e.tournamentIds,season_ids:e.seasonIds,stage_ids:e.stageIds,group_ids:e.groupIds,round_ids:e.roundIds,round_filter:e.roundFilter,from_kickoff_time:e.fromKickoffTime,to_kickoff_time:e.toKickoffTime,team_ids:e.teamIds,team_ids_operator:e.teamIdsOperator,referee_id:e.refereeId,venue_id:e.venueId,player_id:e.playerId,status_types:e.statusTypes,status_codes:e.statusCodes,odd_client:e.oddClient??t?.oddClient,odd_type:e.oddType,scope_type:e.scopeType,odd_format:e.oddFormat,market_types:e.marketTypes,bookmaker_ids:e.bookmakerIds,sort_direction:e.sortDirection,optional_data:e.optionalData}})).matches.map(oe)}function Ge(e){return{id:e.id,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code,slug:e.slug,type:e.type==="placeholder"?"club":e.type,gender:e.gender,country:e.country?{id:e.country.id,name:e.country.name,code:e.country.code??void 0,flag:e.country.assets?.flag?.url}:void 0,assets:e.assets?{logo:e.assets.logo?.url,homeKit:e.assets.home_kit?.url,awayKit:e.assets.away_kit?.url,squadImage:e.assets.squad_image?.url}:void 0}}async function He(e,t={}){const{sportal365Sports:n}=E(),r=await A.get({path:`/v2/teams/${e}`,params:{language_code:t.languageCode??n?.languageCode??"en",optional_data:"form"}});return Ge(r)}const Be=ye.replace(/\/$/,"");function Ke(){const{sportal365Sports:e}=E();if(!e)throw new Error("Sportal365 Sports API configuration is missing");const t=`${e.username}:${e.password}`;return`Basic ${btoa(t)}`}function Ve(e){return`${Be}${e}`}const ze={async get(e){const{sportal365Sports:t}=E();if(!t)throw new Error("Sportal365 Sports API configuration is missing");const n=new URL(Ve(e.path));if(e.params)for(const[a,s]of Object.entries(e.params))s!==void 0&&(Array.isArray(s)?s.length>0&&n.searchParams.set(a,s.join(",")):n.searchParams.set(a,s));const r=await fetch(n.toString(),{method:"GET",headers:{Authorization:Ke(),"Content-Type":"application/json","X-Project":t.projectId},signal:t.timeout?AbortSignal.timeout(t.timeout):void 0});if(!r.ok){const a=await r.text();throw new Error(`Sportal365 Standings API error: ${r.status} ${r.statusText} - ${a}`)}return r.json()}};function Je(e){return{RANK:"rank",PLAYED:"played",WINS:"won",DRAWS:"drawn",LOSSES:"lost",GOALS_FOR:"goalsFor",GOALS_AGAINST:"goalsAgainst",GOAL_DIFFERENCE:"goalDifference",POINTS:"points"}[e]??e.toLowerCase()}function $(e){return{CHAMPIONS_LEAGUE:"championsLeague",EUROPA_LEAGUE:"europaLeague",CONFERENCE_LEAGUE:"conferenceLeague",RELEGATION:"relegation",PLAYOFF:"playoff",PROMOTION:"promotion"}[e]??e.toLowerCase().replace(/_/g,"")}function Xe(e){switch(e){case"win":return"W";case"loss":return"L";case"draw":return"D"}}function Ze(e,t){if(!t||t.length===0)return;const n=t.map(a=>{const s=a.participants.find(_=>_.id!==e)??a.participants[0],p=a.result?.[0]?.results?.map(_=>_.value).join("-")??void 0;return{matchId:a.id,result:Xe(a.outcome),score:p,opponent:{id:s.id,name:s.name,logo:s.display_asset?.url??s.assets?.logo?.url},date:new Date(a.start_time),competition:a.competition?{id:a.competition.id,name:a.competition.name}:void 0}}),r=n.map(a=>a.result).join("");return{competitorId:e,results:n,formString:r}}function Qe(e){return{key:$(e.standing_api_rule_type),name:e.name,position:e.type}}function $e(e){const t={};let n=0;for(const p of e.columns){const _=Je(p.type.code),b=parseInt(p.value,10);p.type.code==="RANK"?n=b:t[_]=isNaN(b)?void 0:b}const r=e.rules?.length>0?e.rules.map(p=>$(p.standing_api_rule_type)):void 0,a=Ze(e.team.id,e.form),s=e.team.assets?.logo?.url;return{rank:n,competitor:{id:e.team.id,name:e.team.name,shortName:e.team.short_name??void 0,logo:s},stats:t,form:a,rules:r}}function qe(e){const t=e.map($e),n=new Map;for(const r of e)if(r.rules)for(const a of r.rules){const s=$(a.standing_api_rule_type);n.has(s)||n.set(s,Qe(a))}return{entries:t,metadata:{legend:Array.from(n.values())}}}async function we(e){const n=(await ze.get({path:"/standings/football",params:{stage_id:e.stageId,coverage_type:e.coverageType??"ALL",optional_data:e.optionalData}})).data?.[0];if(!n?.standings?.length)return{entries:[],metadata:{legend:[]}};const r=n.standings[0];return r?.standing?.length?qe(r.standing):{entries:[],metadata:{legend:[]}}}var x={exports:{}},P={};var se;function et(){if(se)return P;se=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,s){var p=null;if(s!==void 0&&(p=""+s),a.key!==void 0&&(p=""+a.key),"key"in a){s={};for(var _ in a)_!=="key"&&(s[_]=a[_])}else s=a;return a=s.ref,{$$typeof:e,type:r,key:p,ref:a!==void 0?a:null,props:s}}return P.Fragment=t,P.jsx=n,P.jsxs=n,P}var I={};var ie;function tt(){return ie||(ie=1,process.env.NODE_ENV!=="production"&&(function(){function e(o){if(o==null)return null;if(typeof o=="function")return o.$$typeof===X?null:o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case R:return"Fragment";case G:return"Profiler";case W:return"StrictMode";case K:return"Suspense";case V:return"SuspenseList";case J:return"Activity"}if(typeof o=="object")switch(typeof o.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),o.$$typeof){case U:return"Portal";case B:return o.displayName||"Context";case H:return(o._context.displayName||"Context")+".Consumer";case O:var i=o.render;return o=o.displayName,o||(o=i.displayName||i.name||"",o=o!==""?"ForwardRef("+o+")":"ForwardRef"),o;case z:return i=o.displayName||null,i!==null?i:e(o.type)||"Memo";case N:i=o._payload,o=o._init;try{return e(o(i))}catch{}}return null}function t(o){return""+o}function n(o){try{t(o);var i=!1}catch{i=!0}if(i){i=console;var d=i.error,y=typeof Symbol=="function"&&Symbol.toStringTag&&o[Symbol.toStringTag]||o.constructor.name||"Object";return d.call(i,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",y),t(o)}}function r(o){if(o===R)return"<>";if(typeof o=="object"&&o!==null&&o.$$typeof===N)return"<...>";try{var i=e(o);return i?"<"+i+">":"<...>"}catch{return"<...>"}}function a(){var o=F.A;return o===null?null:o.getOwner()}function s(){return Error("react-stack-top-frame")}function p(o){if(c.call(o,"key")){var i=Object.getOwnPropertyDescriptor(o,"key").get;if(i&&i.isReactWarning)return!1}return o.key!==void 0}function _(o,i){function d(){v||(v=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",i))}d.isReactWarning=!0,Object.defineProperty(o,"key",{get:d,configurable:!0})}function b(){var o=e(this.type);return Z[o]||(Z[o]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),o=this.props.ref,o!==void 0?o:null}function S(o,i,d,y,Q,q){var h=d.ref;return o={$$typeof:D,type:o,key:i,props:d,_owner:y},(h!==void 0?h:null)!==null?Object.defineProperty(o,"ref",{enumerable:!1,get:b}):Object.defineProperty(o,"ref",{enumerable:!1,value:null}),o._store={},Object.defineProperty(o._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(o,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(o,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:Q}),Object.defineProperty(o,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:q}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o}function f(o,i,d,y,Q,q){var h=i.children;if(h!==void 0)if(y)if(l(h)){for(y=0;y<h.length;y++)Y(h[y]);Object.freeze&&Object.freeze(h)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Y(h);if(c.call(i,"key")){h=e(o);var L=Object.keys(i).filter(function(it){return it!=="key"});y=0<L.length?"{key: someKey, "+L.join(": ..., ")+": ...}":"{key: someKey}",me[h+y]||(L=0<L.length?"{"+L.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
2
- let props = %s;
3
- <%s {...props} />
4
- React keys must be passed directly to JSX without using spread:
5
- let props = %s;
6
- <%s key={someKey} {...props} />`,y,h,L,h),me[h+y]=!0)}if(h=null,d!==void 0&&(n(d),h=""+d),p(i)&&(n(i.key),h=""+i.key),"key"in i){d={};for(var w in i)w!=="key"&&(d[w]=i[w])}else d=i;return h&&_(d,typeof o=="function"?o.displayName||o.name||"Unknown":o),S(o,h,d,a(),Q,q)}function Y(o){k(o)?o._store&&(o._store.validated=1):typeof o=="object"&&o!==null&&o.$$typeof===N&&(o._payload.status==="fulfilled"?k(o._payload.value)&&o._payload.value._store&&(o._payload.value._store.validated=1):o._store&&(o._store.validated=1))}function k(o){return typeof o=="object"&&o!==null&&o.$$typeof===D}var C=u,D=Symbol.for("react.transitional.element"),U=Symbol.for("react.portal"),R=Symbol.for("react.fragment"),W=Symbol.for("react.strict_mode"),G=Symbol.for("react.profiler"),H=Symbol.for("react.consumer"),B=Symbol.for("react.context"),O=Symbol.for("react.forward_ref"),K=Symbol.for("react.suspense"),V=Symbol.for("react.suspense_list"),z=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),J=Symbol.for("react.activity"),X=Symbol.for("react.client.reference"),F=C.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,c=Object.prototype.hasOwnProperty,l=Array.isArray,g=console.createTask?console.createTask:function(){return null};C={react_stack_bottom_frame:function(o){return o()}};var v,Z={},ue=C.react_stack_bottom_frame.bind(C,s)(),de=g(r(s)),me={};I.Fragment=R,I.jsx=function(o,i,d){var y=1e4>F.recentlyCreatedOwnerStacks++;return f(o,i,d,!1,y?Error("react-stack-top-frame"):ue,y?g(r(o)):de)},I.jsxs=function(o,i,d){var y=1e4>F.recentlyCreatedOwnerStacks++;return f(o,i,d,!0,y?Error("react-stack-top-frame"):ue,y?g(r(o)):de)}})()),I}var ce;function ot(){return ce||(ce=1,process.env.NODE_ENV==="production"?x.exports=et():x.exports=tt()),x.exports}var nt=ot();const le=u.createContext(null);function rt(){const e=u.useContext(le);if(!e)throw new Error("useCompetition must be used within CompetitionProvider");return e}function at({competitionId:e,seasonId:t,stageId:n,matches:r,standings:a,previousSeasons:s,config:p,autoRefresh:_=!0,refreshInterval:b=3e4,children:S}){const[f,Y]=u.useState(r),[k,C]=u.useState(a);u.useEffect(()=>{Y(r)},[r]),u.useEffect(()=>{C(a)},[a]),u.useEffect(()=>{if(!_||!f.some(g=>g.status.code==="live"))return;const l=setInterval(async()=>{console.log("[CompetitionProvider] Auto-refresh triggered for live matches")},b);return()=>clearInterval(l)},[_,b,f]);const D=u.useCallback(c=>f.find(l=>l.id===c),[f]),U=u.useCallback(c=>f.filter(l=>l.competitorOne.id===c||l.competitorTwo.id===c),[f]),R=u.useCallback(c=>f.filter(l=>l.timing.kickoffTime.toISOString().startsWith(c)),[f]),W=u.useCallback(c=>f.filter(l=>l.round?.id===c),[f]),G=u.useCallback(()=>f.filter(c=>c.status.code==="live"),[f]),H=u.useCallback(c=>{const l=new Date;let g=f.filter(v=>v.status.code==="not_started"&&v.timing.kickoffTime>l);return c&&(g=g.filter(v=>v.competitorOne.id===c||v.competitorTwo.id===c)),g.sort((v,Z)=>v.timing.kickoffTime.getTime()-Z.timing.kickoffTime.getTime())},[f]),B=u.useCallback(c=>{let l=f.filter(g=>g.status.code==="finished");return c&&(l=l.filter(g=>g.competitorOne.id===c||g.competitorTwo.id===c)),l.sort((g,v)=>v.timing.kickoffTime.getTime()-g.timing.kickoffTime.getTime())},[f]),O=u.useCallback(c=>k.find(l=>l.competitor.id===c),[k]),K=u.useCallback(c=>O(c)?.form?.formString,[O]),V=u.useCallback(c=>O(c)?.stats,[O]),z=u.useCallback(c=>[...k].sort((l,g)=>l.rank-g.rank).slice(0,c),[k]),N=u.useCallback(c=>[...k].sort((l,g)=>g.rank-l.rank).slice(0,c),[k]),J=u.useCallback(c=>s?.find(l=>l.id===c)?.matches,[s]),X=u.useCallback(c=>s?.find(l=>l.id===c)?.standings,[s]),F=u.useMemo(()=>({competitionId:e,seasonId:t,stageId:n,matches:f,standings:k,previousSeasons:s,config:p,getMatch:D,getMatchesByTeam:U,getMatchesByDate:R,getMatchesByRound:W,getLiveMatches:G,getUpcomingMatches:H,getFinishedMatches:B,getTeamStanding:O,getTeamForm:K,getTeamStats:V,getTopTeams:z,getBottomTeams:N,getSeasonMatches:J,getSeasonStandings:X}),[e,t,n,f,k,s,p,D,U,R,W,G,H,B,O,K,V,z,N,J,X]);return nt.jsx(le.Provider,{value:F,children:S})}const st="0.0.2";m.CompetitionProvider=at,m.getConfig=E,m.getFootballMatch=Fe,m.getFootballMatchCommentary=Ue,m.getFootballMatchEvents=Me,m.getFootballMatchLineups=je,m.getFootballMatchOdds=xe,m.getFootballMatchStatistics=Ye,m.getFootballMatches=We,m.getFootballStandings=we,m.getFootballTeam=He,m.isConfigured=pe,m.setConfig=fe,m.useCompetition=rt,m.version=st,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}));