@sudobility/sports_api_client 1.0.9 → 1.0.10

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 (244) hide show
  1. package/dist/baseball/hooks/baseball-context.js.map +1 -1
  2. package/dist/baseball/hooks/baseball-types.js.map +1 -1
  3. package/dist/baseball/hooks/index.js.map +1 -1
  4. package/dist/baseball/hooks/use-baseball-countries.js.map +1 -1
  5. package/dist/baseball/hooks/use-baseball-games.js.map +1 -1
  6. package/dist/baseball/hooks/use-baseball-leagues.js.map +1 -1
  7. package/dist/baseball/hooks/use-baseball-seasons.js.map +1 -1
  8. package/dist/baseball/hooks/use-baseball-standings.js.map +1 -1
  9. package/dist/baseball/hooks/use-baseball-teams.js.map +1 -1
  10. package/dist/baseball/hooks/use-baseball-timezone.js.map +1 -1
  11. package/dist/baseball/index.js.map +1 -1
  12. package/dist/baseball/network/api-baseball-client.js.map +1 -1
  13. package/dist/baseball/network/baseball-endpoints.js.map +1 -1
  14. package/dist/baseball/network/index.js.map +1 -1
  15. package/dist/baseball/store/api-baseball-store.js.map +1 -1
  16. package/dist/baseball/store/index.js.map +1 -1
  17. package/dist/baseball/types/baseball-common.js.map +1 -1
  18. package/dist/baseball/types/baseball-games.js.map +1 -1
  19. package/dist/baseball/types/baseball-leagues.js.map +1 -1
  20. package/dist/baseball/types/baseball-standings.js.map +1 -1
  21. package/dist/baseball/types/baseball-teams.js.map +1 -1
  22. package/dist/baseball/types/index.js.map +1 -1
  23. package/dist/basketball/hooks/basketball-context.js.map +1 -1
  24. package/dist/basketball/hooks/basketball-types.js.map +1 -1
  25. package/dist/basketball/hooks/index.js.map +1 -1
  26. package/dist/basketball/hooks/use-basketball-countries.js.map +1 -1
  27. package/dist/basketball/hooks/use-basketball-games.js.map +1 -1
  28. package/dist/basketball/hooks/use-basketball-leagues.js.map +1 -1
  29. package/dist/basketball/hooks/use-basketball-seasons.js.map +1 -1
  30. package/dist/basketball/hooks/use-basketball-standings.js.map +1 -1
  31. package/dist/basketball/hooks/use-basketball-teams.js.map +1 -1
  32. package/dist/basketball/hooks/use-basketball-timezone.js.map +1 -1
  33. package/dist/basketball/index.js.map +1 -1
  34. package/dist/basketball/network/api-basketball-client.js.map +1 -1
  35. package/dist/basketball/network/basketball-endpoints.js.map +1 -1
  36. package/dist/basketball/network/index.js.map +1 -1
  37. package/dist/basketball/store/api-basketball-store.js.map +1 -1
  38. package/dist/basketball/store/index.js.map +1 -1
  39. package/dist/basketball/types/basketball-common.js.map +1 -1
  40. package/dist/basketball/types/basketball-games.js.map +1 -1
  41. package/dist/basketball/types/basketball-leagues.js.map +1 -1
  42. package/dist/basketball/types/basketball-standings.js.map +1 -1
  43. package/dist/basketball/types/basketball-teams.js.map +1 -1
  44. package/dist/basketball/types/index.js.map +1 -1
  45. package/dist/common/base-types.js.map +1 -1
  46. package/dist/common/index.js.map +1 -1
  47. package/dist/football/hooks/football-context.js.map +1 -1
  48. package/dist/football/hooks/football-types.js.map +1 -1
  49. package/dist/football/hooks/index.js.map +1 -1
  50. package/dist/football/hooks/use-football-coaches.js.map +1 -1
  51. package/dist/football/hooks/use-football-countries.js.map +1 -1
  52. package/dist/football/hooks/use-football-fixtures.js.map +1 -1
  53. package/dist/football/hooks/use-football-injuries.js.map +1 -1
  54. package/dist/football/hooks/use-football-leagues.js.map +1 -1
  55. package/dist/football/hooks/use-football-players.js.map +1 -1
  56. package/dist/football/hooks/use-football-seasons.js.map +1 -1
  57. package/dist/football/hooks/use-football-sidelined.js.map +1 -1
  58. package/dist/football/hooks/use-football-standings.js.map +1 -1
  59. package/dist/football/hooks/use-football-teams.js.map +1 -1
  60. package/dist/football/hooks/use-football-timezone.js.map +1 -1
  61. package/dist/football/hooks/use-football-transfers.js.map +1 -1
  62. package/dist/football/hooks/use-football-trophies.js.map +1 -1
  63. package/dist/football/network/api-football-client.js.map +1 -1
  64. package/dist/football/network/football-endpoints.js.map +1 -1
  65. package/dist/football/network/index.js.map +1 -1
  66. package/dist/football/store/api-football-store.js.map +1 -1
  67. package/dist/football/store/index.js.map +1 -1
  68. package/dist/football/types/football-common.js.map +1 -1
  69. package/dist/football/types/football-countries.js.map +1 -1
  70. package/dist/football/types/football-fixtures.js.map +1 -1
  71. package/dist/football/types/football-leagues.js.map +1 -1
  72. package/dist/football/types/football-players.js.map +1 -1
  73. package/dist/football/types/football-standings.js.map +1 -1
  74. package/dist/football/types/football-statistics.js.map +1 -1
  75. package/dist/football/types/football-teams.js.map +1 -1
  76. package/dist/football/types/football-transfers.js.map +1 -1
  77. package/dist/football/types/index.js.map +1 -1
  78. package/dist/formula1/hooks/f1-context.js.map +1 -1
  79. package/dist/formula1/hooks/f1-types.js.map +1 -1
  80. package/dist/formula1/hooks/index.js.map +1 -1
  81. package/dist/formula1/hooks/use-f1-circuits.js.map +1 -1
  82. package/dist/formula1/hooks/use-f1-competitions.js.map +1 -1
  83. package/dist/formula1/hooks/use-f1-drivers.js.map +1 -1
  84. package/dist/formula1/hooks/use-f1-pitstops.js.map +1 -1
  85. package/dist/formula1/hooks/use-f1-races.js.map +1 -1
  86. package/dist/formula1/hooks/use-f1-rankings.js.map +1 -1
  87. package/dist/formula1/hooks/use-f1-seasons.js.map +1 -1
  88. package/dist/formula1/hooks/use-f1-teams.js.map +1 -1
  89. package/dist/formula1/hooks/use-f1-timezone.js.map +1 -1
  90. package/dist/formula1/index.js.map +1 -1
  91. package/dist/formula1/network/api-f1-client.js.map +1 -1
  92. package/dist/formula1/network/f1-endpoints.js.map +1 -1
  93. package/dist/formula1/network/index.js.map +1 -1
  94. package/dist/formula1/store/api-f1-store.js.map +1 -1
  95. package/dist/formula1/store/index.js.map +1 -1
  96. package/dist/formula1/types/f1-circuits.js.map +1 -1
  97. package/dist/formula1/types/f1-common.js.map +1 -1
  98. package/dist/formula1/types/f1-competitions.js.map +1 -1
  99. package/dist/formula1/types/f1-drivers.js.map +1 -1
  100. package/dist/formula1/types/f1-pitstops.js.map +1 -1
  101. package/dist/formula1/types/f1-races.js.map +1 -1
  102. package/dist/formula1/types/f1-rankings.js.map +1 -1
  103. package/dist/formula1/types/f1-teams.js.map +1 -1
  104. package/dist/formula1/types/index.js.map +1 -1
  105. package/dist/handball/hooks/handball-context.js.map +1 -1
  106. package/dist/handball/hooks/handball-types.js.map +1 -1
  107. package/dist/handball/hooks/index.js.map +1 -1
  108. package/dist/handball/hooks/use-handball-countries.js.map +1 -1
  109. package/dist/handball/hooks/use-handball-games.js.map +1 -1
  110. package/dist/handball/hooks/use-handball-h2h.js.map +1 -1
  111. package/dist/handball/hooks/use-handball-leagues.js.map +1 -1
  112. package/dist/handball/hooks/use-handball-odds.js.map +1 -1
  113. package/dist/handball/hooks/use-handball-seasons.js.map +1 -1
  114. package/dist/handball/hooks/use-handball-standings.js.map +1 -1
  115. package/dist/handball/hooks/use-handball-teams.js.map +1 -1
  116. package/dist/handball/hooks/use-handball-timezone.js.map +1 -1
  117. package/dist/handball/index.js.map +1 -1
  118. package/dist/handball/network/api-handball-client.js.map +1 -1
  119. package/dist/handball/network/handball-endpoints.js.map +1 -1
  120. package/dist/handball/network/index.js.map +1 -1
  121. package/dist/handball/store/api-handball-store.js.map +1 -1
  122. package/dist/handball/store/index.js.map +1 -1
  123. package/dist/handball/types/handball-common.js.map +1 -1
  124. package/dist/handball/types/handball-games.js.map +1 -1
  125. package/dist/handball/types/handball-leagues.js.map +1 -1
  126. package/dist/handball/types/handball-odds.js.map +1 -1
  127. package/dist/handball/types/handball-standings.js.map +1 -1
  128. package/dist/handball/types/handball-teams.js.map +1 -1
  129. package/dist/handball/types/index.js.map +1 -1
  130. package/dist/hockey/hooks/hockey-context.js.map +1 -1
  131. package/dist/hockey/hooks/hockey-types.js.map +1 -1
  132. package/dist/hockey/hooks/index.js.map +1 -1
  133. package/dist/hockey/hooks/use-hockey-countries.js.map +1 -1
  134. package/dist/hockey/hooks/use-hockey-games.js.map +1 -1
  135. package/dist/hockey/hooks/use-hockey-leagues.js.map +1 -1
  136. package/dist/hockey/hooks/use-hockey-seasons.js.map +1 -1
  137. package/dist/hockey/hooks/use-hockey-standings.js.map +1 -1
  138. package/dist/hockey/hooks/use-hockey-teams.js.map +1 -1
  139. package/dist/hockey/hooks/use-hockey-timezone.js.map +1 -1
  140. package/dist/hockey/index.js.map +1 -1
  141. package/dist/hockey/network/api-hockey-client.js.map +1 -1
  142. package/dist/hockey/network/hockey-endpoints.js.map +1 -1
  143. package/dist/hockey/network/index.js.map +1 -1
  144. package/dist/hockey/store/api-hockey-store.js.map +1 -1
  145. package/dist/hockey/store/index.js.map +1 -1
  146. package/dist/hockey/types/hockey-common.js.map +1 -1
  147. package/dist/hockey/types/hockey-games.js.map +1 -1
  148. package/dist/hockey/types/hockey-leagues.js.map +1 -1
  149. package/dist/hockey/types/hockey-standings.js.map +1 -1
  150. package/dist/hockey/types/hockey-teams.js.map +1 -1
  151. package/dist/hockey/types/index.js.map +1 -1
  152. package/dist/index.js.map +1 -1
  153. package/dist/mma/hooks/index.js.map +1 -1
  154. package/dist/mma/hooks/mma-context.js.map +1 -1
  155. package/dist/mma/hooks/mma-types.js.map +1 -1
  156. package/dist/mma/hooks/use-mma-categories.js.map +1 -1
  157. package/dist/mma/hooks/use-mma-countries.js.map +1 -1
  158. package/dist/mma/hooks/use-mma-fighters.js.map +1 -1
  159. package/dist/mma/hooks/use-mma-fights.js.map +1 -1
  160. package/dist/mma/hooks/use-mma-seasons.js.map +1 -1
  161. package/dist/mma/hooks/use-mma-timezone.js.map +1 -1
  162. package/dist/mma/index.js.map +1 -1
  163. package/dist/mma/network/api-mma-client.js.map +1 -1
  164. package/dist/mma/network/index.js.map +1 -1
  165. package/dist/mma/network/mma-endpoints.js.map +1 -1
  166. package/dist/mma/store/api-mma-store.js.map +1 -1
  167. package/dist/mma/store/index.js.map +1 -1
  168. package/dist/mma/types/index.js.map +1 -1
  169. package/dist/mma/types/mma-categories.js.map +1 -1
  170. package/dist/mma/types/mma-common.js.map +1 -1
  171. package/dist/mma/types/mma-fighters.js.map +1 -1
  172. package/dist/mma/types/mma-fights.js.map +1 -1
  173. package/dist/mma/types/mma-leagues.js.map +1 -1
  174. package/dist/nfl/hooks/index.js.map +1 -1
  175. package/dist/nfl/hooks/nfl-context.js.map +1 -1
  176. package/dist/nfl/hooks/nfl-types.js.map +1 -1
  177. package/dist/nfl/hooks/use-nfl-countries.js.map +1 -1
  178. package/dist/nfl/hooks/use-nfl-games.js.map +1 -1
  179. package/dist/nfl/hooks/use-nfl-leagues.js.map +1 -1
  180. package/dist/nfl/hooks/use-nfl-seasons.js.map +1 -1
  181. package/dist/nfl/hooks/use-nfl-standings.js.map +1 -1
  182. package/dist/nfl/hooks/use-nfl-teams.js.map +1 -1
  183. package/dist/nfl/hooks/use-nfl-timezone.js.map +1 -1
  184. package/dist/nfl/index.js.map +1 -1
  185. package/dist/nfl/network/api-nfl-client.js.map +1 -1
  186. package/dist/nfl/network/index.js.map +1 -1
  187. package/dist/nfl/network/nfl-endpoints.js.map +1 -1
  188. package/dist/nfl/store/api-nfl-store.js.map +1 -1
  189. package/dist/nfl/store/index.js.map +1 -1
  190. package/dist/nfl/types/index.js.map +1 -1
  191. package/dist/nfl/types/nfl-common.js.map +1 -1
  192. package/dist/nfl/types/nfl-games.js.map +1 -1
  193. package/dist/nfl/types/nfl-leagues.js.map +1 -1
  194. package/dist/nfl/types/nfl-standings.js.map +1 -1
  195. package/dist/nfl/types/nfl-teams.js.map +1 -1
  196. package/dist/rugby/hooks/index.js.map +1 -1
  197. package/dist/rugby/hooks/rugby-context.js.map +1 -1
  198. package/dist/rugby/hooks/rugby-types.js.map +1 -1
  199. package/dist/rugby/hooks/use-rugby-countries.js.map +1 -1
  200. package/dist/rugby/hooks/use-rugby-games.js.map +1 -1
  201. package/dist/rugby/hooks/use-rugby-leagues.js.map +1 -1
  202. package/dist/rugby/hooks/use-rugby-seasons.js.map +1 -1
  203. package/dist/rugby/hooks/use-rugby-standings.js.map +1 -1
  204. package/dist/rugby/hooks/use-rugby-teams.js.map +1 -1
  205. package/dist/rugby/hooks/use-rugby-timezone.js.map +1 -1
  206. package/dist/rugby/index.js.map +1 -1
  207. package/dist/rugby/network/api-rugby-client.js.map +1 -1
  208. package/dist/rugby/network/index.js.map +1 -1
  209. package/dist/rugby/network/rugby-endpoints.js.map +1 -1
  210. package/dist/rugby/store/api-rugby-store.js.map +1 -1
  211. package/dist/rugby/store/index.js.map +1 -1
  212. package/dist/rugby/types/index.js.map +1 -1
  213. package/dist/rugby/types/rugby-common.js.map +1 -1
  214. package/dist/rugby/types/rugby-games.js.map +1 -1
  215. package/dist/rugby/types/rugby-leagues.js.map +1 -1
  216. package/dist/rugby/types/rugby-standings.js.map +1 -1
  217. package/dist/rugby/types/rugby-teams.js.map +1 -1
  218. package/dist/utils/cache-utils.js.map +1 -1
  219. package/dist/utils/index.js.map +1 -1
  220. package/dist/utils/query-params.js.map +1 -1
  221. package/dist/volleyball/hooks/index.js.map +1 -1
  222. package/dist/volleyball/hooks/use-volleyball-countries.js.map +1 -1
  223. package/dist/volleyball/hooks/use-volleyball-games.js.map +1 -1
  224. package/dist/volleyball/hooks/use-volleyball-h2h.js.map +1 -1
  225. package/dist/volleyball/hooks/use-volleyball-leagues.js.map +1 -1
  226. package/dist/volleyball/hooks/use-volleyball-seasons.js.map +1 -1
  227. package/dist/volleyball/hooks/use-volleyball-standings.js.map +1 -1
  228. package/dist/volleyball/hooks/use-volleyball-teams.js.map +1 -1
  229. package/dist/volleyball/hooks/use-volleyball-timezone.js.map +1 -1
  230. package/dist/volleyball/hooks/volleyball-context.js.map +1 -1
  231. package/dist/volleyball/hooks/volleyball-types.js.map +1 -1
  232. package/dist/volleyball/index.js.map +1 -1
  233. package/dist/volleyball/network/api-volleyball-client.js.map +1 -1
  234. package/dist/volleyball/network/index.js.map +1 -1
  235. package/dist/volleyball/network/volleyball-endpoints.js.map +1 -1
  236. package/dist/volleyball/store/api-volleyball-store.js.map +1 -1
  237. package/dist/volleyball/store/index.js.map +1 -1
  238. package/dist/volleyball/types/index.js.map +1 -1
  239. package/dist/volleyball/types/volleyball-common.js.map +1 -1
  240. package/dist/volleyball/types/volleyball-games.js.map +1 -1
  241. package/dist/volleyball/types/volleyball-leagues.js.map +1 -1
  242. package/dist/volleyball/types/volleyball-standings.js.map +1 -1
  243. package/dist/volleyball/types/volleyball-teams.js.map +1 -1
  244. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"api-basketball-store.js","sourceRoot":"","sources":["../../../src/basketball/store/api-basketball-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-basketball-store.js","sourceRoot":"","sources":["../../../src/basketball/store/api-basketball-store.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module api-basketball-store\n * @description Zustand store for API-Basketball data caching\n *\n * Provides local caching with timestamps for cache invalidation.\n * Supports persistence via zustand/middleware persist with custom\n * serialization for Map data structures.\n *\n * @example\n * ```typescript\n * import {\n * createApiBasketballStore,\n * generateCacheKey,\n * } from \"@sudobility/sports_api_client\";\n *\n * // Create store with custom storage (React Native)\n * import AsyncStorage from \"@react-native-async-storage/async-storage\";\n * const useStore = createApiBasketballStore({\n * getItem: AsyncStorage.getItem,\n * setItem: AsyncStorage.setItem,\n * removeItem: AsyncStorage.removeItem,\n * });\n *\n * // Use the store\n * const store = useStore.getState();\n * const cacheKey = generateCacheKey(\"leagues\", { country: \"USA\" });\n * const cached = store.getLeagues(cacheKey);\n * ```\n */\n\nimport { create, StateCreator } from \"zustand\";\nimport { persist, PersistOptions } from \"zustand/middleware\";\nimport type {\n BasketballCountry,\n BasketballGame,\n BasketballLeagueResponse,\n BasketballStanding,\n BasketballTeamResponse,\n BasketballTeamStatistics,\n} from \"../types\";\nimport {\n CachedData,\n isCacheValid as checkCacheValid,\n createCacheEntry,\n DEFAULT_CACHE_TTL,\n StorageAdapter,\n} from \"../../utils/cache-utils\";\n\n/**\n * API Basketball Store State interface\n *\n * Defines the complete state shape for the API-Basketball cache store,\n * including all cached data types, setters, getters, and utilities.\n */\nexport interface ApiBasketballState {\n // ============================================================================\n // Cached Data\n // ============================================================================\n\n /** Cached countries */\n countries: CachedData<BasketballCountry[]> | null;\n\n /** Cached timezones */\n timezones: CachedData<string[]> | null;\n\n /** Cached seasons */\n seasons: CachedData<string[]> | null;\n\n /** Cached leagues by key */\n leagues: Map<string, CachedData<BasketballLeagueResponse[]>>;\n\n /** Cached teams by key */\n teams: Map<string, CachedData<BasketballTeamResponse[]>>;\n\n /** Cached team statistics by key */\n teamStatistics: Map<string, CachedData<BasketballTeamStatistics>>;\n\n /** Cached games by key */\n games: Map<string, CachedData<BasketballGame[]>>;\n\n /** Cached standings by key */\n standings: Map<string, CachedData<BasketballStanding[]>>;\n\n // ============================================================================\n // Cache Settings\n // ============================================================================\n\n /** Global cache TTL in milliseconds */\n cacheTTL: number;\n\n // ============================================================================\n // Actions\n // ============================================================================\n\n // Setters for single-value caches\n setCountries: (data: BasketballCountry[]) => void;\n setTimezones: (data: string[]) => void;\n setSeasons: (data: string[]) => void;\n\n // Setters for keyed caches\n setLeagues: (key: string, data: BasketballLeagueResponse[]) => void;\n setTeams: (key: string, data: BasketballTeamResponse[]) => void;\n setTeamStatistics: (key: string, data: BasketballTeamStatistics) => void;\n setGames: (key: string, data: BasketballGame[]) => void;\n setStandings: (key: string, data: BasketballStanding[]) => void;\n\n // Getters for keyed caches (returns null if not found or expired)\n getLeagues: (key: string) => BasketballLeagueResponse[] | null;\n getTeams: (key: string) => BasketballTeamResponse[] | null;\n getTeamStatistics: (key: string) => BasketballTeamStatistics | null;\n getGames: (key: string) => BasketballGame[] | null;\n getStandings: (key: string) => BasketballStanding[] | null;\n\n // Cache utilities\n isCacheValid: (timestamp: number) => boolean;\n clearCache: () => void;\n setCacheTTL: (ttl: number) => void;\n}\n\n/**\n * Create the store state and actions\n */\nconst createStoreSlice: StateCreator<ApiBasketballState> = (set, get) => ({\n // Initial state\n countries: null,\n timezones: null,\n seasons: null,\n leagues: new Map(),\n teams: new Map(),\n teamStatistics: new Map(),\n games: new Map(),\n standings: new Map(),\n cacheTTL: DEFAULT_CACHE_TTL,\n\n // Single-value setters\n setCountries: (data) =>\n set({ countries: createCacheEntry(\"countries\", data) }),\n\n setTimezones: (data) =>\n set({ timezones: createCacheEntry(\"timezones\", data) }),\n\n setSeasons: (data) => set({ seasons: createCacheEntry(\"seasons\", data) }),\n\n // Keyed setters\n setLeagues: (key, data) =>\n set((state) => {\n const newLeagues = new Map(state.leagues);\n newLeagues.set(key, createCacheEntry(key, data));\n return { leagues: newLeagues };\n }),\n\n setTeams: (key, data) =>\n set((state) => {\n const newTeams = new Map(state.teams);\n newTeams.set(key, createCacheEntry(key, data));\n return { teams: newTeams };\n }),\n\n setTeamStatistics: (key, data) =>\n set((state) => {\n const newStats = new Map(state.teamStatistics);\n newStats.set(key, createCacheEntry(key, data));\n return { teamStatistics: newStats };\n }),\n\n setGames: (key, data) =>\n set((state) => {\n const newGames = new Map(state.games);\n newGames.set(key, createCacheEntry(key, data));\n return { games: newGames };\n }),\n\n setStandings: (key, data) =>\n set((state) => {\n const newStandings = new Map(state.standings);\n newStandings.set(key, createCacheEntry(key, data));\n return { standings: newStandings };\n }),\n\n // Keyed getters (return null if not found or expired)\n getLeagues: (key) => {\n const cached = get().leagues.get(key);\n if (!cached || !get().isCacheValid(cached.timestamp)) return null;\n return cached.data;\n },\n\n getTeams: (key) => {\n const cached = get().teams.get(key);\n if (!cached || !get().isCacheValid(cached.timestamp)) return null;\n return cached.data;\n },\n\n getTeamStatistics: (key) => {\n const cached = get().teamStatistics.get(key);\n if (!cached || !get().isCacheValid(cached.timestamp)) return null;\n return cached.data;\n },\n\n getGames: (key) => {\n const cached = get().games.get(key);\n if (!cached || !get().isCacheValid(cached.timestamp)) return null;\n return cached.data;\n },\n\n getStandings: (key) => {\n const cached = get().standings.get(key);\n if (!cached || !get().isCacheValid(cached.timestamp)) return null;\n return cached.data;\n },\n\n // Cache utilities\n isCacheValid: (timestamp) => checkCacheValid(timestamp, get().cacheTTL),\n\n clearCache: () =>\n set({\n countries: null,\n timezones: null,\n seasons: null,\n leagues: new Map(),\n teams: new Map(),\n teamStatistics: new Map(),\n games: new Map(),\n standings: new Map(),\n }),\n\n setCacheTTL: (ttl) => set({ cacheTTL: ttl }),\n});\n\n/**\n * Persist options type\n */\ntype ApiBasketballPersistOptions = PersistOptions<\n ApiBasketballState,\n Partial<ApiBasketballState>\n>;\n\n/**\n * Custom storage that handles Map serialization\n */\nconst createCustomStorage = (storage: StorageAdapter) => ({\n getItem: async (name: string) => {\n const value = await storage.getItem(name);\n if (!value) return null;\n\n try {\n const parsed = JSON.parse(value);\n\n // Restore Maps from arrays\n const mapFields = [\n \"leagues\",\n \"teams\",\n \"teamStatistics\",\n \"games\",\n \"standings\",\n ];\n\n for (const field of mapFields) {\n if (parsed.state && Array.isArray(parsed.state[field])) {\n parsed.state[field] = new Map(parsed.state[field]);\n }\n }\n\n return parsed;\n } catch {\n return null;\n }\n },\n setItem: async (name: string, value: unknown) => {\n const serialized = JSON.stringify(value, (_, val) => {\n // Convert Maps to arrays for JSON serialization\n if (val instanceof Map) {\n return Array.from(val.entries());\n }\n return val;\n });\n await storage.setItem(name, serialized);\n },\n removeItem: async (name: string) => {\n await storage.removeItem(name);\n },\n});\n\n/**\n * Create an API Basketball store with persistence\n *\n * Factory function that creates a new Zustand store instance with persistence.\n * The store automatically handles Map serialization for JSON storage.\n *\n * @param storage - Storage adapter for persistence\n * @returns Zustand store hook with API Basketball state\n *\n * @example\n * ```typescript\n * import { createApiBasketballStore, createStorageAdapter } from \"@sudobility/sports_api_client\";\n *\n * const storageService = container.get<StorageService>(ServiceKeys.STORAGE);\n * const useStore = createApiBasketballStore(createStorageAdapter(storageService));\n *\n * function MyComponent() {\n * const leagues = useStore((state) => state.getLeagues(\"nba\"));\n * const setLeagues = useStore((state) => state.setLeagues);\n * }\n * ```\n */\nexport const createApiBasketballStore = (storage: StorageAdapter) => {\n const persistOptions: ApiBasketballPersistOptions = {\n name: \"api-basketball-cache\",\n storage: createCustomStorage(storage),\n partialize: (state) => ({\n countries: state.countries,\n timezones: state.timezones,\n seasons: state.seasons,\n leagues: state.leagues,\n teams: state.teams,\n teamStatistics: state.teamStatistics,\n games: state.games,\n standings: state.standings,\n cacheTTL: state.cacheTTL,\n }),\n };\n\n return create<ApiBasketballState>()(\n persist(createStoreSlice, persistOptions),\n );\n};\n\n/** Type for the store hook returned by createApiBasketballStore */\nexport type ApiBasketballStore = ReturnType<typeof createApiBasketballStore>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/basketball/store/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,wBAAwB,GAGzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,YAAY,GAGb,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/basketball/store/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,wBAAwB,GAGzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,YAAY,GAGb,MAAM,yBAAyB,CAAC","sourcesContent":["/**\n * Basketball Store Module Exports\n */\n\nexport {\n createApiBasketballStore,\n type ApiBasketballState,\n type ApiBasketballStore,\n} from \"./api-basketball-store\";\n\nexport {\n createCacheEntry,\n createStorageAdapter,\n DEFAULT_CACHE_TTL,\n generateCacheKey,\n getRemainingTTL,\n isCacheValid,\n type CachedData,\n type StorageAdapter,\n} from \"../../utils/cache-utils\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"basketball-common.js","sourceRoot":"","sources":["../../../src/basketball/types/basketball-common.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"basketball-common.js","sourceRoot":"","sources":["../../../src/basketball/types/basketball-common.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Common types for API-Basketball responses\n */\n\nimport type { Optional } from \"@sudobility/types\";\nimport type { BaseApiConfig, BaseApiResponse } from \"../../common\";\n\n/**\n * Configuration for API-Basketball client\n */\nexport type ApiBasketballConfig = BaseApiConfig;\n\n/**\n * Base response wrapper for all API-Basketball endpoints\n */\nexport type ApiBasketballResponse<T> = BaseApiResponse<T>;\n\n/**\n * Basketball timezone (string representation)\n */\nexport type BasketballTimezone = string;\n\n/**\n * Basketball country\n */\nexport interface BasketballCountry {\n /** Country ID */\n id: number;\n /** Country name */\n name: string;\n /** Country code (ISO 3166-1 alpha-2) */\n code: Optional<string>;\n /** Country flag URL */\n flag: Optional<string>;\n}\n\n/**\n * Parameters for countries endpoint\n */\nexport interface BasketballCountriesParams {\n /** Filter by country ID */\n id?: Optional<number>;\n /** Filter by country name */\n name?: Optional<string>;\n /** Filter by country code */\n code?: Optional<string>;\n /** Search by partial name (min 3 characters) */\n search?: Optional<string>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"basketball-games.js","sourceRoot":"","sources":["../../../src/basketball/types/basketball-games.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"basketball-games.js","sourceRoot":"","sources":["../../../src/basketball/types/basketball-games.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Types for Basketball Games endpoints\n */\n\nimport type { Optional } from \"@sudobility/types\";\n\n/**\n * Basketball game status\n */\nexport interface BasketballGameStatus {\n /** Long status description */\n long: string;\n /** Short status code */\n short: string;\n /** Timer/elapsed time */\n timer: Optional<string>;\n}\n\n/**\n * Basketball game scores\n */\nexport interface BasketballScores {\n /** Home team scores */\n home: {\n quarter_1: Optional<number>;\n quarter_2: Optional<number>;\n quarter_3: Optional<number>;\n quarter_4: Optional<number>;\n over_time: Optional<number>;\n total: Optional<number>;\n };\n /** Away team scores */\n away: {\n quarter_1: Optional<number>;\n quarter_2: Optional<number>;\n quarter_3: Optional<number>;\n quarter_4: Optional<number>;\n over_time: Optional<number>;\n total: Optional<number>;\n };\n}\n\n/**\n * Basketball game response\n */\nexport interface BasketballGame {\n /** Game ID */\n id: number;\n /** Game date */\n date: string;\n /** Game time */\n time: string;\n /** Game timestamp */\n timestamp: number;\n /** Timezone */\n timezone: string;\n /** Game stage */\n stage: Optional<string>;\n /** Game week */\n week: Optional<string>;\n /** Game status */\n status: BasketballGameStatus;\n /** League information */\n league: {\n id: number;\n name: string;\n type: string;\n season: string;\n logo: Optional<string>;\n };\n /** Country information */\n country: {\n id: number;\n name: string;\n code: Optional<string>;\n flag: Optional<string>;\n };\n /** Teams information */\n teams: {\n home: {\n id: number;\n name: string;\n logo: Optional<string>;\n };\n away: {\n id: number;\n name: string;\n logo: Optional<string>;\n };\n };\n /** Game scores */\n scores: BasketballScores;\n}\n\n/**\n * Parameters for games endpoint\n */\nexport interface BasketballGamesParams {\n /** Filter by game ID */\n id?: Optional<number>;\n /** Filter by date (YYYY-MM-DD) */\n date?: Optional<string>;\n /** Filter by league ID */\n league?: Optional<number>;\n /** Filter by season */\n season?: Optional<string>;\n /** Filter by team ID */\n team?: Optional<number>;\n /** Filter by timezone */\n timezone?: Optional<string>;\n /** Get live games */\n live?: Optional<string>;\n /** Filter from date (YYYY-MM-DD) */\n from?: Optional<string>;\n /** Filter to date (YYYY-MM-DD) */\n to?: Optional<string>;\n}\n\n/**\n * Head to head parameters\n */\nexport interface BasketballHeadToHeadParams {\n /** First team ID (format: \"teamId1-teamId2\") */\n h2h: string;\n /** Filter by league ID */\n league?: Optional<number>;\n /** Filter by season */\n season?: Optional<string>;\n /** Filter by timezone */\n timezone?: Optional<string>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"basketball-leagues.js","sourceRoot":"","sources":["../../../src/basketball/types/basketball-leagues.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"basketball-leagues.js","sourceRoot":"","sources":["../../../src/basketball/types/basketball-leagues.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Types for Basketball Leagues and Seasons endpoints\n */\n\nimport type { Optional } from \"@sudobility/types\";\nimport type { BasketballCountry } from \"./basketball-common\";\n\n/**\n * Basketball league information\n */\nexport interface BasketballLeague {\n /** League ID */\n id: number;\n /** League name */\n name: string;\n /** Type of competition */\n type: string;\n /** URL to league logo */\n logo: Optional<string>;\n}\n\n/**\n * Basketball season information\n */\nexport interface BasketballSeason {\n /** Season identifier (e.g., \"2023-2024\") */\n season: string;\n /** Season start date (YYYY-MM-DD) */\n start: string;\n /** Season end date (YYYY-MM-DD) */\n end: string;\n}\n\n/**\n * Complete league response including country and seasons.\n * Note: Basketball API returns flat structure (not nested under `league`).\n */\nexport interface BasketballLeagueResponse {\n /** League ID */\n id: number;\n /** League name */\n name: string;\n /** Type of competition */\n type: string;\n /** URL to league logo */\n logo: Optional<string>;\n /** Country information */\n country: BasketballCountry;\n /** Available seasons */\n seasons: BasketballSeason[];\n}\n\n/**\n * Parameters for leagues endpoint\n */\nexport interface BasketballLeaguesParams {\n /** Filter by league ID */\n id?: Optional<number>;\n /** Filter by league name */\n name?: Optional<string>;\n /**\n * Filter by country name (NOT country code).\n * Use full country name like \"Japan\", not \"JP\".\n * Get valid names from the /countries endpoint.\n * Note: The `code` parameter does NOT work for Basketball API.\n */\n country?: Optional<string>;\n /** Filter by season (free tier: 2021-2023 only) */\n season?: Optional<string>;\n /** Filter by league type */\n type?: Optional<string>;\n /** Get current leagues only */\n current?: Optional<boolean>;\n /** Search by partial name (min 3 characters) */\n search?: Optional<string>;\n}\n\n/**\n * Parameters for seasons endpoint\n */\nexport interface BasketballSeasonsParams {\n /** Filter by league ID */\n league?: Optional<number>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"basketball-standings.js","sourceRoot":"","sources":["../../../src/basketball/types/basketball-standings.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"basketball-standings.js","sourceRoot":"","sources":["../../../src/basketball/types/basketball-standings.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Types for Basketball Standings endpoints\n */\n\nimport type { Optional } from \"@sudobility/types\";\n\n/**\n * Basketball standing entry\n */\nexport interface BasketballStanding {\n /** Position in standings */\n position: number;\n /** Stage/group name */\n stage: string;\n /** Group name */\n group: {\n name: string;\n points: Optional<number>;\n };\n /** Team information */\n team: {\n id: number;\n name: string;\n logo: Optional<string>;\n };\n /** League information */\n league: {\n id: number;\n name: string;\n type: string;\n season: string;\n logo: Optional<string>;\n };\n /** Country information */\n country: {\n id: number;\n name: string;\n code: Optional<string>;\n flag: Optional<string>;\n };\n /** Games statistics */\n games: {\n played: number;\n win: number;\n lose: number;\n };\n /** Points statistics */\n points: {\n for: number;\n against: number;\n };\n /** Form (recent results) */\n form: Optional<string>;\n /** Description (e.g., \"Promotion\", \"Relegation\") */\n description: Optional<string>;\n}\n\n/**\n * Parameters for standings endpoint\n */\nexport interface BasketballStandingsParams {\n /** League ID (required) */\n league: number;\n /** Season (required) */\n season: string;\n /** Filter by team ID */\n team?: Optional<number>;\n /** Filter by stage */\n stage?: Optional<string>;\n /** Filter by group */\n group?: Optional<string>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"basketball-teams.js","sourceRoot":"","sources":["../../../src/basketball/types/basketball-teams.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"basketball-teams.js","sourceRoot":"","sources":["../../../src/basketball/types/basketball-teams.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Types for Basketball Teams endpoints\n */\n\nimport type { Optional } from \"@sudobility/types\";\n\n/**\n * Basketball team information\n */\nexport interface BasketballTeam {\n /** Team ID */\n id: number;\n /** Team name */\n name: string;\n /** Team logo URL */\n logo: Optional<string>;\n /** Whether this is a national team */\n national: boolean;\n}\n\n/**\n * Basketball team response - flat structure from API\n * API returns: { id, name, logo, national, country: {...} }\n */\nexport interface BasketballTeamResponse {\n /** Team ID */\n id: number;\n /** Team name */\n name: string;\n /** Team logo URL */\n logo: Optional<string>;\n /** Whether this is a national team */\n national: boolean;\n /** Country information */\n country: {\n id: number;\n name: string;\n code: Optional<string>;\n flag: Optional<string>;\n };\n}\n\n/**\n * Parameters for teams endpoint\n */\nexport interface BasketballTeamsParams {\n /** Filter by team ID */\n id?: Optional<number>;\n /** Filter by team name */\n name?: Optional<string>;\n /** Filter by country ID */\n country?: Optional<number>;\n /** Filter by league ID */\n league?: Optional<number>;\n /** Filter by season */\n season?: Optional<string>;\n /** Search by partial name (min 3 characters) */\n search?: Optional<string>;\n}\n\n/**\n * Basketball team statistics\n */\nexport interface BasketballTeamStatistics {\n /** League information */\n league: {\n id: number;\n name: string;\n type: string;\n logo: Optional<string>;\n };\n /** Country information */\n country: {\n id: number;\n name: string;\n code: Optional<string>;\n flag: Optional<string>;\n };\n /** Team information */\n team: BasketballTeam;\n /** Games statistics */\n games: {\n played: {\n home: number;\n away: number;\n all: number;\n };\n wins: {\n home: { total: number; percentage: string };\n away: { total: number; percentage: string };\n all: { total: number; percentage: string };\n };\n loses: {\n home: { total: number; percentage: string };\n away: { total: number; percentage: string };\n all: { total: number; percentage: string };\n };\n };\n /** Points statistics */\n points: {\n for: {\n total: { home: number; away: number; all: number };\n average: { home: string; away: string; all: string };\n };\n against: {\n total: { home: number; away: number; all: number };\n average: { home: string; away: string; all: string };\n };\n };\n}\n\n/**\n * Parameters for team statistics endpoint\n */\nexport interface BasketballTeamStatisticsParams {\n /** League ID (required) */\n league: number;\n /** Season (required) */\n season: string;\n /** Team ID (required) */\n team: number;\n /** Filter by date */\n date?: Optional<string>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/basketball/types/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/basketball/types/index.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * API-Basketball Client Type Definitions\n */\n\n// Common types\nexport type {\n ApiBasketballConfig,\n ApiBasketballResponse,\n BasketballCountry,\n BasketballCountriesParams,\n BasketballTimezone,\n} from \"./basketball-common\";\n\n// Leagues and Seasons types\nexport type {\n BasketballLeague,\n BasketballLeagueResponse,\n BasketballLeaguesParams,\n BasketballSeason,\n BasketballSeasonsParams,\n} from \"./basketball-leagues\";\n\n// Teams types\nexport type {\n BasketballTeam,\n BasketballTeamResponse,\n BasketballTeamStatistics,\n BasketballTeamStatisticsParams,\n BasketballTeamsParams,\n} from \"./basketball-teams\";\n\n// Games types\nexport type {\n BasketballGame,\n BasketballGamesParams,\n BasketballGameStatus,\n BasketballHeadToHeadParams,\n BasketballScores,\n} from \"./basketball-games\";\n\n// Standings types\nexport type {\n BasketballStanding,\n BasketballStandingsParams,\n} from \"./basketball-standings\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"base-types.js","sourceRoot":"","sources":["../../src/common/base-types.ts"],"names":[],"mappings":"AA0FA,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,cAAc,EAAE,kBAAkB;IAClC,MAAM,EAAE,kBAAkB;CAClB,CAAC"}
1
+ {"version":3,"file":"base-types.js","sourceRoot":"","sources":["../../src/common/base-types.ts"],"names":[],"mappings":"AA0FA,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,cAAc,EAAE,kBAAkB;IAClC,MAAM,EAAE,kBAAkB;CAClB,CAAC","sourcesContent":["/**\n * @module common/base-types\n * @description Shared base types for all api-sports.io API clients\n *\n * All api-sports.io APIs (football, basketball, hockey, etc.) share the same\n * response structure. This module provides the base types that can be extended\n * by sport-specific implementations.\n */\n\nimport type { Optional } from \"@sudobility/types\";\n\n/**\n * Base response wrapper for all api-sports.io API endpoints\n *\n * All sport APIs return responses in this format. Sport-specific clients\n * can use this directly or extend it with additional fields.\n *\n * @template T - The type of data in the response array\n *\n * @example\n * ```typescript\n * // Use directly\n * type LeaguesResponse = BaseApiResponse<League>;\n *\n * // Or extend for sport-specific needs\n * interface ApiFootballResponse<T> extends BaseApiResponse<T> {\n * paging: ApiFootballPaging;\n * }\n * ```\n */\nexport interface BaseApiResponse<T> {\n /** The endpoint that was called */\n get: string;\n /** Parameters that were passed to the endpoint */\n parameters: Record<string, string>;\n /** Array of error messages or error object */\n errors: string[] | Record<string, string>;\n /** Number of results returned */\n results: number;\n /** Array of response data */\n response: T[];\n}\n\n/**\n * Base pagination information\n *\n * Some sport APIs include pagination in responses.\n */\nexport interface BaseApiPaging {\n /** Current page number */\n current: number;\n /** Total number of pages */\n total: number;\n}\n\n/**\n * Base configuration for all api-sports.io API clients\n *\n * All sport clients use the same authentication pattern, supporting both\n * direct API access and RapidAPI marketplace access.\n *\n * @example\n * ```typescript\n * // Direct API authentication\n * const config: BaseApiConfig = {\n * apiKey: \"YOUR_API_KEY\",\n * };\n *\n * // RapidAPI authentication\n * const rapidConfig: BaseApiConfig = {\n * apiKey: \"YOUR_RAPIDAPI_KEY\",\n * useRapidApi: true,\n * rapidApiHost: \"api-basketball-v1.p.rapidapi.com\",\n * };\n * ```\n */\nexport interface BaseApiConfig {\n /** Base URL for the API (each sport has its own default) */\n baseUrl?: Optional<string>;\n /** API key from api-sports.io dashboard or RapidAPI */\n apiKey: string;\n /** RapidAPI host for RapidAPI usage */\n rapidApiHost?: Optional<string>;\n /** Use RapidAPI authentication instead of direct API */\n useRapidApi?: Optional<boolean>;\n}\n\n/**\n * Default HTTP headers for all api-sports.io requests\n */\nexport const BASE_DEFAULT_HEADERS: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n} as const;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC","sourcesContent":["/**\n * Common module exports\n *\n * Shared types and utilities used across all sport API clients.\n */\n\nexport type {\n BaseApiResponse,\n BaseApiPaging,\n BaseApiConfig,\n} from \"./base-types\";\n\nexport { BASE_DEFAULT_HEADERS } from \"./base-types\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"football-context.js","sourceRoot":"","sources":["../../../src/football/hooks/football-context.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,EACZ,aAAa,EAEb,UAAU,EACV,OAAO,GACR,MAAM,OAAO,CAAC;AAGf,OAAO,EAGL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAclB,MAAM,kBAAkB,GAAG,aAAa,CAAiC,IAAI,CAAC,CAAC;AAmD/E,MAAM,UAAU,mBAAmB,CAAC,EAClC,MAAM,EACN,cAAc,EACd,QAAQ,GACiB;IAEzB,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,EAClE,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAC5B,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAC;IAEF,OAAO,CACL,oBAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,IAC7C,QAAQ,CACmB,CAC/B,CAAC;AACJ,CAAC;AAgBD,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC;AAiBD,MAAM,UAAU,0BAA0B;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC;AAC1B,CAAC;AAmBD,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;IAC9C,OAAO,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"football-context.js","sourceRoot":"","sources":["../../../src/football/hooks/football-context.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,EACZ,aAAa,EAEb,UAAU,EACV,OAAO,GACR,MAAM,OAAO,CAAC;AAGf,OAAO,EAGL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAclB,MAAM,kBAAkB,GAAG,aAAa,CAAiC,IAAI,CAAC,CAAC;AAmD/E,MAAM,UAAU,mBAAmB,CAAC,EAClC,MAAM,EACN,cAAc,EACd,QAAQ,GACiB;IAEzB,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,EAClE,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAC5B,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAC;IAEF,OAAO,CACL,oBAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,IAC7C,QAAQ,CACmB,CAC/B,CAAC;AACJ,CAAC;AAgBD,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC;AAiBD,MAAM,UAAU,0BAA0B;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC;AAC1B,CAAC;AAmBD,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;IAC9C,OAAO,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC","sourcesContent":["/**\n * @module hooks/context\n * @description React context for API-Football client and store\n *\n * Provides the ApiFootballClient and store instances to all hooks via React context.\n * Must wrap your app with ApiFootballProvider to use the hooks.\n *\n * Uses DI pattern for cross-platform compatibility (React and React Native).\n *\n * @example\n * ```typescript\n * import { ApiFootballProvider } from \"@sudobility/sports_api_client\";\n * import type { StorageService } from \"@sudobility/di\";\n *\n * // Get services from your DI container\n * const storageService = container.get<StorageService>(ServiceKeys.STORAGE);\n *\n * function App() {\n * return (\n * <QueryClientProvider client={queryClient}>\n * <ApiFootballProvider client={apiClient} storageService={storageService}>\n * <YourApp />\n * </ApiFootballProvider>\n * </QueryClientProvider>\n * );\n * }\n * ```\n */\n\nimport React, {\n createContext,\n type ReactNode,\n useContext,\n useMemo,\n} from \"react\";\nimport type { StorageService } from \"@sudobility/di\";\nimport type { ApiFootballClient } from \"../network/api-football-client\";\nimport {\n type ApiFootballState,\n type ApiFootballStore,\n createApiFootballStore,\n createStorageAdapter,\n} from \"../store\";\n\n/**\n * Context value containing the API client and store\n */\ninterface ApiFootballContextValue {\n client: ApiFootballClient;\n useStore: ApiFootballStore;\n}\n\n/**\n * React context for API-Football client and store\n * @internal\n */\nconst ApiFootballContext = createContext<ApiFootballContextValue | null>(null);\n\n/**\n * Props for ApiFootballProvider\n */\nexport interface ApiFootballProviderProps {\n /** The ApiFootballClient instance to provide */\n client: ApiFootballClient;\n /** Storage service from DI for cross-platform persistence */\n storageService: StorageService;\n /** Child components */\n children: ReactNode;\n}\n\n/**\n * Provider component for API-Football hooks\n *\n * Wrap your application with this provider to enable API-Football hooks.\n * You must also wrap with QueryClientProvider from @tanstack/react-query.\n *\n * Requires a StorageService from your DI container for cross-platform\n * React Native compatibility.\n *\n * @param props - Provider props including client, storageService, and children\n * @returns Provider component\n *\n * @example\n * ```typescript\n * import { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\n * import { ApiFootballProvider, ApiFootballClient } from \"@sudobility/sports_api_client\";\n * import type { StorageService, NetworkClient } from \"@sudobility/di\";\n *\n * const queryClient = new QueryClient();\n *\n * // Get services from your DI container\n * const networkClient = container.get<NetworkClient>(ServiceKeys.NETWORK);\n * const storageService = container.get<StorageService>(ServiceKeys.STORAGE);\n *\n * const apiClient = new ApiFootballClient(networkClient, { apiKey: \"YOUR_KEY\" });\n *\n * function App() {\n * return (\n * <QueryClientProvider client={queryClient}>\n * <ApiFootballProvider client={apiClient} storageService={storageService}>\n * <YourApp />\n * </ApiFootballProvider>\n * </QueryClientProvider>\n * );\n * }\n * ```\n */\nexport function ApiFootballProvider({\n client,\n storageService,\n children,\n}: ApiFootballProviderProps) {\n // Create store once with the provided storage service\n const useStore = useMemo(\n () => createApiFootballStore(createStorageAdapter(storageService)),\n [storageService],\n );\n\n const contextValue = useMemo(\n () => ({ client, useStore }),\n [client, useStore],\n );\n\n return (\n <ApiFootballContext.Provider value={contextValue}>\n {children}\n </ApiFootballContext.Provider>\n );\n}\n\n/**\n * Hook to access the ApiFootballClient from context\n *\n * @returns The ApiFootballClient instance\n * @throws Error if used outside of ApiFootballProvider\n *\n * @example\n * ```typescript\n * function MyComponent() {\n * const client = useApiFootballClient();\n * // Use client directly if needed\n * }\n * ```\n */\nexport function useApiFootballClient(): ApiFootballClient {\n const context = useContext(ApiFootballContext);\n if (!context) {\n throw new Error(\n \"useApiFootballClient must be used within an ApiFootballProvider\",\n );\n }\n return context.client;\n}\n\n/**\n * Hook to access the API-Football Zustand store from context\n *\n * @returns The Zustand store hook for API-Football state\n * @throws Error if used outside of ApiFootballProvider\n *\n * @example\n * ```typescript\n * function MyComponent() {\n * const useStore = useApiFootballStoreContext();\n * const { getLeagues, setLeagues, cacheTTL } = useStore();\n * // ...\n * }\n * ```\n */\nexport function useApiFootballStoreContext(): ApiFootballStore {\n const context = useContext(ApiFootballContext);\n if (!context) {\n throw new Error(\n \"useApiFootballStoreContext must be used within an ApiFootballProvider\",\n );\n }\n return context.useStore;\n}\n\n/**\n * Hook to access API-Football store state\n *\n * Convenience hook that combines context access with store selection.\n * Returns the full state object with all methods and data.\n *\n * @returns Full store state with getters, setters, and cached data\n * @throws Error if used outside of ApiFootballProvider\n *\n * @example\n * ```typescript\n * function MyComponent() {\n * const { getLeagues, setLeagues, cacheTTL } = useApiFootballStore();\n * // ...\n * }\n * ```\n */\nexport function useApiFootballStore(): ApiFootballState {\n const useStore = useApiFootballStoreContext();\n return useStore((state) => state);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"football-types.js","sourceRoot":"","sources":["../../../src/football/hooks/football-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"football-types.js","sourceRoot":"","sources":["../../../src/football/hooks/football-types.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module hooks/types\n * @description Type definitions for API-Football hooks\n */\n\nimport type { UseQueryOptions } from \"@tanstack/react-query\";\nimport type { ApiFootballResponse } from \"../types\";\n\n/**\n * Base options for all API-Football hooks\n *\n * Extends React Query's UseQueryOptions with common defaults.\n */\nexport interface UseApiFootballQueryOptions<TData, TParams = void> extends Omit<\n UseQueryOptions<ApiFootballResponse<TData>, Error>,\n \"queryKey\" | \"queryFn\"\n> {\n /** Parameters for the API call */\n params?: TParams;\n}\n\n/**\n * Options for hooks with required parameters\n */\nexport interface UseApiFootballQueryOptionsRequired<\n TData,\n TParams,\n> extends Omit<\n UseQueryOptions<ApiFootballResponse<TData>, Error>,\n \"queryKey\" | \"queryFn\"\n> {\n /** Parameters for the API call (required) */\n params: TParams;\n}\n\n// Base key for all API-Football queries\nconst FOOTBALL_BASE_KEY = [\"api-football\"] as const;\n\n/**\n * Query keys namespace for all API-Football queries\n *\n * Use these keys for cache invalidation and prefetching.\n *\n * @example\n * ```typescript\n * import { queryClient } from \"./your-query-client\";\n * import { apiFootballKeys } from \"@sudobility/sports_api_client\";\n *\n * // Invalidate all leagues queries\n * queryClient.invalidateQueries({ queryKey: apiFootballKeys.leagues.all });\n *\n * // Invalidate specific leagues query\n * queryClient.invalidateQueries({\n * queryKey: apiFootballKeys.leagues.list({ country: \"England\" }),\n * });\n * ```\n */\nexport const apiFootballKeys = {\n all: FOOTBALL_BASE_KEY,\n\n // General\n timezone: () => [...FOOTBALL_BASE_KEY, \"timezone\"] as const,\n countries: {\n all: [...FOOTBALL_BASE_KEY, \"countries\"] as const,\n list: (params?: object) =>\n [...FOOTBALL_BASE_KEY, \"countries\", params ?? {}] as const,\n },\n seasons: () => [...FOOTBALL_BASE_KEY, \"seasons\"] as const,\n\n // Leagues\n leagues: {\n all: [...FOOTBALL_BASE_KEY, \"leagues\"] as const,\n list: (params?: object) =>\n [...FOOTBALL_BASE_KEY, \"leagues\", params ?? {}] as const,\n },\n\n // Teams\n teams: {\n all: [...FOOTBALL_BASE_KEY, \"teams\"] as const,\n list: (params: object) => [...FOOTBALL_BASE_KEY, \"teams\", params] as const,\n statistics: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"team-statistics\", params] as const,\n },\n venues: {\n all: [...FOOTBALL_BASE_KEY, \"venues\"] as const,\n list: (params?: object) =>\n [...FOOTBALL_BASE_KEY, \"venues\", params ?? {}] as const,\n },\n\n // Standings\n standings: {\n all: [...FOOTBALL_BASE_KEY, \"standings\"] as const,\n list: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"standings\", params] as const,\n },\n\n // Fixtures\n fixtures: {\n all: [...FOOTBALL_BASE_KEY, \"fixtures\"] as const,\n list: (params?: object) =>\n [...FOOTBALL_BASE_KEY, \"fixtures\", params ?? {}] as const,\n headToHead: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"fixtures-h2h\", params] as const,\n statistics: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"fixture-statistics\", params] as const,\n events: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"fixture-events\", params] as const,\n lineups: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"fixture-lineups\", params] as const,\n players: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"fixture-players\", params] as const,\n },\n\n // Players\n players: {\n all: [...FOOTBALL_BASE_KEY, \"players\"] as const,\n list: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"players\", params] as const,\n seasons: (params?: object) =>\n [...FOOTBALL_BASE_KEY, \"player-seasons\", params ?? {}] as const,\n topScorers: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"top-scorers\", params] as const,\n topAssists: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"top-assists\", params] as const,\n topCards: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"top-cards\", params] as const,\n },\n squads: {\n all: [...FOOTBALL_BASE_KEY, \"squads\"] as const,\n list: (params: object) => [...FOOTBALL_BASE_KEY, \"squads\", params] as const,\n },\n\n // Transfers & Others\n transfers: {\n all: [...FOOTBALL_BASE_KEY, \"transfers\"] as const,\n list: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"transfers\", params] as const,\n },\n trophies: {\n all: [...FOOTBALL_BASE_KEY, \"trophies\"] as const,\n list: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"trophies\", params] as const,\n },\n sidelined: {\n all: [...FOOTBALL_BASE_KEY, \"sidelined\"] as const,\n list: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"sidelined\", params] as const,\n },\n coaches: {\n all: [...FOOTBALL_BASE_KEY, \"coaches\"] as const,\n list: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"coaches\", params] as const,\n },\n injuries: {\n all: [...FOOTBALL_BASE_KEY, \"injuries\"] as const,\n list: (params: object) =>\n [...FOOTBALL_BASE_KEY, \"injuries\", params] as const,\n },\n} as const;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/football/hooks/index.ts"],"names":[],"mappings":"AA6CA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/football/hooks/index.ts"],"names":[],"mappings":"AA6CA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["/**\n * @module hooks\n * @description React hooks for API-Football with React Query and Zustand caching\n *\n * All hooks integrate with React Query for data fetching and Zustand for\n * persistent caching. Cached data is automatically used as initial data\n * when available and valid.\n *\n * Uses DI pattern for cross-platform React/React Native compatibility.\n * Requires StorageService from @sudobility/di for persistent caching.\n *\n * @example\n * ```typescript\n * import {\n * ApiFootballProvider,\n * ApiFootballClient,\n * useFootballLeagues,\n * useFootballFixtures,\n * useFootballStandings,\n * apiFootballKeys,\n * } from \"@sudobility/sports_api_client\";\n * import { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\n * import type { StorageService, NetworkClient } from \"@sudobility/di\";\n *\n * const queryClient = new QueryClient();\n *\n * // Get services from your DI container\n * const networkClient = container.get<NetworkClient>(ServiceKeys.NETWORK);\n * const storageService = container.get<StorageService>(ServiceKeys.STORAGE);\n *\n * const apiClient = new ApiFootballClient(networkClient, { apiKey: \"KEY\" });\n *\n * function App() {\n * return (\n * <QueryClientProvider client={queryClient}>\n * <ApiFootballProvider client={apiClient} storageService={storageService}>\n * <YourApp />\n * </ApiFootballProvider>\n * </QueryClientProvider>\n * );\n * }\n * ```\n */\n\n// Context and provider\nexport {\n ApiFootballProvider,\n useApiFootballClient,\n useApiFootballStore,\n useApiFootballStoreContext,\n} from \"./football-context\";\nexport type { ApiFootballProviderProps } from \"./football-context\";\n\n// Types and keys\nexport { apiFootballKeys } from \"./football-types\";\nexport type {\n UseApiFootballQueryOptions,\n UseApiFootballQueryOptionsRequired,\n} from \"./football-types\";\n\n// Coaches hook\nexport { useFootballCoaches } from \"./use-football-coaches\";\n\n// Countries hook\nexport { useFootballCountries } from \"./use-football-countries\";\n\n// Fixtures hooks\nexport {\n useFootballFixtureEvents,\n useFootballFixtureLineups,\n useFootballFixturePlayers,\n useFootballFixtures,\n useFootballFixturesHeadToHead,\n useFootballFixtureStatistics,\n} from \"./use-football-fixtures\";\n\n// Injuries hook\nexport { useFootballInjuries } from \"./use-football-injuries\";\n\n// Leagues hook\nexport { useFootballLeagues } from \"./use-football-leagues\";\n\n// Players hooks\nexport {\n useFootballPlayers,\n useFootballPlayersSeasons,\n useFootballSquads,\n useFootballTopAssists,\n useFootballTopCards,\n useFootballTopScorers,\n} from \"./use-football-players\";\n\n// Seasons hook\nexport { useFootballSeasons } from \"./use-football-seasons\";\n\n// Sidelined hook\nexport { useFootballSidelined } from \"./use-football-sidelined\";\n\n// Standings hook\nexport { useFootballStandings } from \"./use-football-standings\";\n\n// Teams hooks\nexport {\n useFootballTeams,\n useFootballTeamStatistics,\n useFootballVenues,\n} from \"./use-football-teams\";\n\n// Timezone hook\nexport { useFootballTimezone } from \"./use-football-timezone\";\n\n// Transfers hook\nexport { useFootballTransfers } from \"./use-football-transfers\";\n\n// Trophies hook\nexport { useFootballTrophies } from \"./use-football-trophies\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-coaches.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-coaches.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAyB1B,MAAM,UAAU,kBAAkB,CAChC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACnE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,SAAS,EACT,MAA4C,CAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChD,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,GAAG,EAAE,QAAQ;oBACb,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"use-football-coaches.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-coaches.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAyB1B,MAAM,UAAU,kBAAkB,CAChC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACnE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,SAAS,EACT,MAA4C,CAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChD,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,GAAG,EAAE,QAAQ;oBACb,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * @module hooks/use-football-coaches\n * @description React hook for coaches endpoint\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient, useApiFootballStore } from \"./football-context\";\nimport { generateCacheKey } from \"../../utils/cache-utils\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptionsRequired,\n} from \"./football-types\";\nimport type { FootballCoach, FootballCoachsParams } from \"../types\";\n\n/**\n * Hook to fetch coach information\n *\n * @param options - Query options with id, team, or search param\n * @returns Query result with coach data\n *\n * @example\n * ```typescript\n * // Get team's coach\n * function TeamCoach({ teamId }: Props) {\n * const { data } = useCoaches({ params: { team: teamId } });\n * const coach = data?.response[0];\n * // ...\n * }\n *\n * // Search coaches\n * function CoachSearch({ search }: Props) {\n * const { data } = useCoaches({ params: { search } });\n * // ...\n * }\n * ```\n */\nexport function useFootballCoaches(\n options: UseApiFootballQueryOptionsRequired<\n FootballCoach,\n FootballCoachsParams\n >,\n) {\n const client = useApiFootballClient();\n const { getCoaches, setCoaches, cacheTTL } = useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"coaches\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.coaches.list(params),\n queryFn: async () => {\n const response = await client.getCoachs(params);\n setCoaches(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getCoaches(cacheKey);\n if (cached) {\n return {\n get: \"coachs\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-countries.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-countries.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AA0B1B,MAAM,UAAU,oBAAoB,CAClC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,GACvD,mBAAmB,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAE/B,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAChD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAEnD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAEhB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,IAAI,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnD,OAAO;wBACL,GAAG,EAAE,WAAW;wBAChB,UAAU,EAAE,EAA4B;wBACxC,MAAM,EAAE,EAAc;wBACtB,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM;wBAC9B,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;wBAChC,QAAQ,EAAE,SAAS,CAAC,IAAI;qBACzB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"use-football-countries.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-countries.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AA0B1B,MAAM,UAAU,oBAAoB,CAClC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,GACvD,mBAAmB,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAE/B,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAChD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAEnD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAEhB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,IAAI,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnD,OAAO;wBACL,GAAG,EAAE,WAAW;wBAChB,UAAU,EAAE,EAA4B;wBACxC,MAAM,EAAE,EAAc;wBACtB,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM;wBAC9B,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;wBAChC,QAAQ,EAAE,SAAS,CAAC,IAAI;qBACzB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * @module hooks/use-football-countries\n * @description React hook for countries endpoint\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient, useApiFootballStore } from \"./football-context\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptions,\n} from \"./football-types\";\nimport type { FootballCountriesParams, FootballCountry } from \"../types\";\n\n/**\n * Hook to fetch countries\n *\n * Caches results in Zustand store for persistence.\n *\n * @param options - Query options including optional filter params\n * @returns Query result with country data\n *\n * @example\n * ```typescript\n * // Get all countries\n * function CountryList() {\n * const { data, isLoading } = useCountries();\n * // ...\n * }\n *\n * // Search countries\n * function CountrySearch({ search }: { search: string }) {\n * const { data } = useCountries({ params: { search } });\n * // ...\n * }\n * ```\n */\nexport function useFootballCountries(\n options?: UseApiFootballQueryOptions<\n FootballCountry,\n FootballCountriesParams\n >,\n) {\n const client = useApiFootballClient();\n const { countries, setCountries, isCacheValid, cacheTTL } =\n useApiFootballStore();\n const params = options?.params;\n\n return useQuery({\n queryKey: apiFootballKeys.countries.list(params),\n queryFn: async () => {\n const response = await client.getCountries(params);\n // Only cache when no params (full list)\n if (!params || Object.keys(params).length === 0) {\n setCountries(response.response);\n }\n return response;\n },\n initialData: () => {\n // Only use cache for full list\n if (!params || Object.keys(params).length === 0) {\n if (countries && isCacheValid(countries.timestamp)) {\n return {\n get: \"countries\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: countries.data.length,\n paging: { current: 1, total: 1 },\n response: countries.data,\n };\n }\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...options,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-fixtures.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-football-fixtures.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-fixtures.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module hooks/use-football-fixtures\n * @description React hooks for fixtures endpoints\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient, useApiFootballStore } from \"./football-context\";\nimport { generateCacheKey } from \"../../utils/cache-utils\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptions,\n type UseApiFootballQueryOptionsRequired,\n} from \"./football-types\";\nimport type {\n FootballFixtureEvent,\n FootballFixtureEventsParams,\n FootballFixtureLineup,\n FootballFixtureLineupsParams,\n FootballFixturePlayersParams,\n FootballFixturePlayerStats,\n FootballFixtureResponse,\n FootballFixturesParams,\n FootballFixtureStatistics,\n FootballFixtureStatisticsParams,\n FootballHeadToHeadParams,\n} from \"../types\";\n\n/**\n * Hook to fetch fixtures\n *\n * Fetches matches with optional filtering.\n *\n * @param options - Query options with optional filter params\n * @returns Query result with fixture data\n *\n * @example\n * ```typescript\n * // Get live fixtures\n * function LiveMatches() {\n * const { data, isLoading } = useFixtures({ params: { live: \"all\" } });\n * // ...\n * }\n *\n * // Get fixtures by date\n * function TodayMatches() {\n * const today = new Date().toISOString().split(\"T\")[0];\n * const { data } = useFixtures({ params: { date: today } });\n * // ...\n * }\n *\n * // Get next 5 fixtures for a team\n * function UpcomingMatches({ teamId }: Props) {\n * const { data } = useFixtures({ params: { team: teamId, next: 5 } });\n * // ...\n * }\n * ```\n */\nexport function useFootballFixtures(\n options?: UseApiFootballQueryOptions<\n FootballFixtureResponse,\n FootballFixturesParams\n >,\n) {\n const client = useApiFootballClient();\n const { getFixtures, setFixtures, cacheTTL } = useApiFootballStore();\n const params = options?.params;\n const cacheKey = generateCacheKey(\n \"fixtures\",\n params as unknown as Record<string, unknown>,\n );\n\n // Don't cache live fixtures\n const isLive = params?.live !== undefined;\n\n return useQuery({\n queryKey: apiFootballKeys.fixtures.list(params),\n queryFn: async () => {\n const response = await client.getFixtures(params);\n if (!isLive) {\n setFixtures(cacheKey, response.response);\n }\n return response;\n },\n initialData: () => {\n if (isLive) return undefined;\n const cached = getFixtures(cacheKey);\n if (cached) {\n return {\n get: \"fixtures\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: isLive ? 0 : cacheTTL,\n refetchInterval: isLive ? 30000 : false, // Refetch live every 30s\n ...options,\n });\n}\n\n/**\n * Hook to fetch head-to-head fixtures\n *\n * @param options - Query options with required h2h param (format: \"teamId-teamId\")\n * @returns Query result with head-to-head fixture data\n *\n * @example\n * ```typescript\n * function HeadToHead({ team1Id, team2Id }: Props) {\n * const { data } = useFixturesHeadToHead({\n * params: { h2h: `${team1Id}-${team2Id}` },\n * });\n *\n * return (\n * <div>\n * <h2>Previous Meetings</h2>\n * {data?.response.map((match) => (\n * <MatchCard key={match.fixture.id} match={match} />\n * ))}\n * </div>\n * );\n * }\n * ```\n */\nexport function useFootballFixturesHeadToHead(\n options: UseApiFootballQueryOptionsRequired<\n FootballFixtureResponse,\n FootballHeadToHeadParams\n >,\n) {\n const client = useApiFootballClient();\n const { getFixtures, setFixtures, cacheTTL } = useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"fixtures-h2h\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.fixtures.headToHead(params),\n queryFn: async () => {\n const response = await client.getFixturesHeadToHead(params);\n setFixtures(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getFixtures(cacheKey);\n if (cached) {\n return {\n get: \"fixtures/headtohead\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n\n/**\n * Hook to fetch fixture statistics\n *\n * @param options - Query options with required fixture param\n * @returns Query result with fixture statistics\n *\n * @example\n * ```typescript\n * function MatchStats({ fixtureId }: Props) {\n * const { data } = useFixtureStatistics({\n * params: { fixture: fixtureId },\n * });\n *\n * const [homeStats, awayStats] = data?.response ?? [];\n * // ...\n * }\n * ```\n */\nexport function useFootballFixtureStatistics(\n options: UseApiFootballQueryOptionsRequired<\n FootballFixtureStatistics,\n FootballFixtureStatisticsParams\n >,\n) {\n const client = useApiFootballClient();\n const { getFixtureStatistics, setFixtureStatistics, cacheTTL } =\n useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"fixture-statistics\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.fixtures.statistics(params),\n queryFn: async () => {\n const response = await client.getFixtureStatistics(params);\n setFixtureStatistics(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getFixtureStatistics(cacheKey);\n if (cached) {\n return {\n get: \"fixtures/statistics\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n\n/**\n * Hook to fetch fixture events\n *\n * @param options - Query options with required fixture param\n * @returns Query result with fixture events (goals, cards, subs, VAR)\n *\n * @example\n * ```typescript\n * function MatchTimeline({ fixtureId }: Props) {\n * const { data } = useFixtureEvents({\n * params: { fixture: fixtureId },\n * });\n *\n * return (\n * <Timeline>\n * {data?.response.map((event, i) => (\n * <Event key={i} type={event.type} time={event.time.elapsed} />\n * ))}\n * </Timeline>\n * );\n * }\n * ```\n */\nexport function useFootballFixtureEvents(\n options: UseApiFootballQueryOptionsRequired<\n FootballFixtureEvent,\n FootballFixtureEventsParams\n >,\n) {\n const client = useApiFootballClient();\n const { getFixtureEvents, setFixtureEvents, cacheTTL } =\n useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"fixture-events\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.fixtures.events(params),\n queryFn: async () => {\n const response = await client.getFixtureEvents(params);\n setFixtureEvents(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getFixtureEvents(cacheKey);\n if (cached) {\n return {\n get: \"fixtures/events\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n\n/**\n * Hook to fetch fixture lineups\n *\n * @param options - Query options with required fixture param\n * @returns Query result with fixture lineups\n *\n * @example\n * ```typescript\n * function MatchLineups({ fixtureId }: Props) {\n * const { data } = useFixtureLineups({\n * params: { fixture: fixtureId },\n * });\n *\n * const [homeLineup, awayLineup] = data?.response ?? [];\n * // ...\n * }\n * ```\n */\nexport function useFootballFixtureLineups(\n options: UseApiFootballQueryOptionsRequired<\n FootballFixtureLineup,\n FootballFixtureLineupsParams\n >,\n) {\n const client = useApiFootballClient();\n const { getFixtureLineups, setFixtureLineups, cacheTTL } =\n useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"fixture-lineups\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.fixtures.lineups(params),\n queryFn: async () => {\n const response = await client.getFixtureLineups(params);\n setFixtureLineups(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getFixtureLineups(cacheKey);\n if (cached) {\n return {\n get: \"fixtures/lineups\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n\n/**\n * Hook to fetch player statistics for a fixture\n *\n * @param options - Query options with required fixture param\n * @returns Query result with player statistics per team\n *\n * @example\n * ```typescript\n * function MatchPlayerStats({ fixtureId }: Props) {\n * const { data } = useFixturePlayers({\n * params: { fixture: fixtureId },\n * });\n *\n * return data?.response.map((team) => (\n * <TeamStats key={team.team.id} team={team} />\n * ));\n * }\n * ```\n */\nexport function useFootballFixturePlayers(\n options: UseApiFootballQueryOptionsRequired<\n FootballFixturePlayerStats,\n FootballFixturePlayersParams\n >,\n) {\n const client = useApiFootballClient();\n const { getFixturePlayers, setFixturePlayers, cacheTTL } =\n useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"fixture-players\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.fixtures.players(params),\n queryFn: async () => {\n const response = await client.getFixturePlayers(params);\n setFixturePlayers(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getFixturePlayers(cacheKey);\n if (cached) {\n return {\n get: \"fixtures/players\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-injuries.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-injuries.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AA0B1B,MAAM,UAAU,mBAAmB,CACjC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAE5C,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/C,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;QACzC,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACzB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"use-football-injuries.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-injuries.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AA0B1B,MAAM,UAAU,mBAAmB,CACjC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAE5C,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/C,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;QACzC,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACzB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * @module hooks/use-football-injuries\n * @description React hook for injuries endpoint\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient } from \"./football-context\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptionsRequired,\n} from \"./football-types\";\nimport type { FootballInjuriesParams, FootballInjury } from \"../types\";\n\n/**\n * Hook to fetch injuries\n *\n * @param options - Query options with league/season, fixture, team, or player params\n * @returns Query result with injury data\n *\n * @example\n * ```typescript\n * // Get team injuries\n * function TeamInjuries({ teamId, season }: Props) {\n * const { data } = useInjuries({\n * params: { team: teamId, season },\n * });\n * // ...\n * }\n *\n * // Get fixture injuries\n * function MatchInjuries({ fixtureId }: Props) {\n * const { data } = useInjuries({ params: { fixture: fixtureId } });\n * // ...\n * }\n * ```\n */\nexport function useFootballInjuries(\n options: UseApiFootballQueryOptionsRequired<\n FootballInjury,\n FootballInjuriesParams\n >,\n) {\n const client = useApiFootballClient();\n const { params, ...queryOptions } = options;\n\n return useQuery({\n queryKey: apiFootballKeys.injuries.list(params),\n queryFn: () => client.getInjuries(params),\n staleTime: 60 * 60 * 1000, // Injuries update less frequently, cache for 1h\n ...queryOptions,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-leagues.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-leagues.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAiC1B,MAAM,UAAU,kBAAkB,CAChC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACnE,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAC/B,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,SAAS,EACT,MAA4C,CAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAEjD,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,GAAG,EAAE,SAAS;oBACd,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"use-football-leagues.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-leagues.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAiC1B,MAAM,UAAU,kBAAkB,CAChC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACnE,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAC/B,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,SAAS,EACT,MAA4C,CAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAEjD,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,GAAG,EAAE,SAAS;oBACd,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * @module hooks/use-football-leagues\n * @description React hooks for leagues endpoints\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient, useApiFootballStore } from \"./football-context\";\nimport { generateCacheKey } from \"../../utils/cache-utils\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptions,\n} from \"./football-types\";\nimport type { FootballLeagueResponse, FootballLeaguesParams } from \"../types\";\n\n/**\n * Hook to fetch leagues\n *\n * Fetches leagues with optional filtering and caches results in Zustand.\n *\n * @param options - Query options including optional filter params\n * @returns Query result with league data\n *\n * @example\n * ```typescript\n * // Get all leagues\n * function AllLeagues() {\n * const { data, isLoading } = useLeagues();\n * // ...\n * }\n *\n * // Get leagues by country\n * function EnglishLeagues() {\n * const { data } = useLeagues({ params: { country: \"England\" } });\n * // ...\n * }\n *\n * // Get specific league\n * function PremierLeague() {\n * const { data } = useLeagues({ params: { id: 39 } });\n * const league = data?.response[0];\n * // ...\n * }\n * ```\n */\nexport function useFootballLeagues(\n options?: UseApiFootballQueryOptions<\n FootballLeagueResponse,\n FootballLeaguesParams\n >,\n) {\n const client = useApiFootballClient();\n const { getLeagues, setLeagues, cacheTTL } = useApiFootballStore();\n const params = options?.params;\n const cacheKey = generateCacheKey(\n \"leagues\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.leagues.list(params),\n queryFn: async () => {\n const response = await client.getLeagues(params);\n // Cache in Zustand\n setLeagues(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getLeagues(cacheKey);\n if (cached) {\n return {\n get: \"leagues\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...options,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-players.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-players.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-football-players.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-players.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module hooks/use-football-players\n * @description React hooks for players endpoints\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient, useApiFootballStore } from \"./football-context\";\nimport { generateCacheKey } from \"../../utils/cache-utils\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptions,\n type UseApiFootballQueryOptionsRequired,\n} from \"./football-types\";\nimport type {\n FootballPlayerResponse,\n FootballPlayersParams,\n FootballPlayersSeasonParams,\n FootballSquadResponse,\n FootballSquadsParams,\n FootballTopAssistsParams,\n FootballTopCardsParams,\n FootballTopScorersParams,\n} from \"../types\";\n\n/**\n * Hook to fetch players\n *\n * Requires at least one filter parameter.\n *\n * @param options - Query options with required params\n * @returns Query result with player data\n *\n * @example\n * ```typescript\n * // Get players by team and season\n * function TeamPlayers({ teamId, season }: Props) {\n * const { data, isLoading } = usePlayers({\n * params: { team: teamId, season },\n * });\n * // ...\n * }\n *\n * // Search players\n * function PlayerSearch({ search }: Props) {\n * const { data } = usePlayers({\n * params: { search, league: 39, season: 2023 },\n * });\n * // ...\n * }\n * ```\n */\nexport function useFootballPlayers(\n options: UseApiFootballQueryOptionsRequired<\n FootballPlayerResponse,\n FootballPlayersParams\n >,\n) {\n const client = useApiFootballClient();\n const { getPlayers, setPlayers, cacheTTL } = useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"players\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.players.list(params),\n queryFn: async () => {\n const response = await client.getPlayers(params);\n setPlayers(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getPlayers(cacheKey);\n if (cached) {\n return {\n get: \"players\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n\n/**\n * Hook to fetch available player seasons\n *\n * @param options - Query options with optional player param\n * @returns Query result with season years\n *\n * @example\n * ```typescript\n * function PlayerSeasons({ playerId }: Props) {\n * const { data } = usePlayersSeasons({ params: { player: playerId } });\n * // data.response = [2020, 2021, 2022, 2023]\n * }\n * ```\n */\nexport function useFootballPlayersSeasons(\n options?: UseApiFootballQueryOptions<number, FootballPlayersSeasonParams>,\n) {\n const client = useApiFootballClient();\n const params = options?.params;\n\n return useQuery({\n queryKey: apiFootballKeys.players.seasons(params),\n queryFn: () => client.getPlayersSeasons(params),\n staleTime: 24 * 60 * 60 * 1000, // Seasons rarely change, cache for 24h\n ...options,\n });\n}\n\n/**\n * Hook to fetch team squads\n *\n * @param options - Query options with team or player param\n * @returns Query result with squad data\n *\n * @example\n * ```typescript\n * // Get team squad\n * function TeamSquad({ teamId }: Props) {\n * const { data } = useSquads({ params: { team: teamId } });\n * const players = data?.response[0]?.players;\n * // ...\n * }\n *\n * // Get player's teams\n * function PlayerTeams({ playerId }: Props) {\n * const { data } = useSquads({ params: { player: playerId } });\n * // ...\n * }\n * ```\n */\nexport function useFootballSquads(\n options: UseApiFootballQueryOptionsRequired<\n FootballSquadResponse,\n FootballSquadsParams\n >,\n) {\n const client = useApiFootballClient();\n const { getSquads, setSquads, cacheTTL } = useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"squads\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.squads.list(params),\n queryFn: async () => {\n const response = await client.getSquads(params);\n setSquads(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getSquads(cacheKey);\n if (cached) {\n return {\n get: \"players/squads\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n\n/**\n * Hook to fetch top scorers\n *\n * @param options - Query options with required league and season params\n * @returns Query result with top scorers data\n *\n * @example\n * ```typescript\n * function TopScorers({ leagueId, season }: Props) {\n * const { data, isLoading } = useTopScorers({\n * params: { league: leagueId, season },\n * });\n *\n * return (\n * <List>\n * {data?.response.map((player, i) => (\n * <Item key={player.player.id}>\n * {i + 1}. {player.player.name} - {player.statistics[0].goals.total}\n * </Item>\n * ))}\n * </List>\n * );\n * }\n * ```\n */\nexport function useFootballTopScorers(\n options: UseApiFootballQueryOptionsRequired<\n FootballPlayerResponse,\n FootballTopScorersParams\n >,\n) {\n const client = useApiFootballClient();\n const { getPlayers, setPlayers, cacheTTL } = useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"top-scorers\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.players.topScorers(params),\n queryFn: async () => {\n const response = await client.getTopScorers(params);\n setPlayers(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getPlayers(cacheKey);\n if (cached) {\n return {\n get: \"players/topscorers\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n\n/**\n * Hook to fetch top assists\n *\n * @param options - Query options with required league and season params\n * @returns Query result with top assists data\n *\n * @example\n * ```typescript\n * function TopAssists({ leagueId, season }: Props) {\n * const { data } = useTopAssists({\n * params: { league: leagueId, season },\n * });\n * // ...\n * }\n * ```\n */\nexport function useFootballTopAssists(\n options: UseApiFootballQueryOptionsRequired<\n FootballPlayerResponse,\n FootballTopAssistsParams\n >,\n) {\n const client = useApiFootballClient();\n const { getPlayers, setPlayers, cacheTTL } = useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"top-assists\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.players.topAssists(params),\n queryFn: async () => {\n const response = await client.getTopAssists(params);\n setPlayers(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getPlayers(cacheKey);\n if (cached) {\n return {\n get: \"players/topassists\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n\n/**\n * Hook to fetch top cards (most carded players)\n *\n * @param options - Query options with required league and season params\n * @returns Query result with most carded players data\n *\n * @example\n * ```typescript\n * function MostCardedPlayers({ leagueId, season }: Props) {\n * const { data } = useTopCards({\n * params: { league: leagueId, season },\n * });\n * // ...\n * }\n * ```\n */\nexport function useFootballTopCards(\n options: UseApiFootballQueryOptionsRequired<\n FootballPlayerResponse,\n FootballTopCardsParams\n >,\n) {\n const client = useApiFootballClient();\n const { getPlayers, setPlayers, cacheTTL } = useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"top-cards\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.players.topCards(params),\n queryFn: async () => {\n const response = await client.getTopCards(params);\n setPlayers(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getPlayers(cacheKey);\n if (cached) {\n return {\n get: \"players/topcards\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-seasons.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-seasons.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AA6B1B,MAAM,UAAU,kBAAkB,CAChC,OAAkD;IAElD,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAE9E,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,OAAO,EAAE;QACnC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YAE3C,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC9B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,IAAI,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/C,OAAO;oBACL,GAAG,EAAE,iBAAiB;oBACtB,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;oBAC5B,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,OAAO,CAAC,IAAI;iBACvB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"use-football-seasons.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-seasons.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AA6B1B,MAAM,UAAU,kBAAkB,CAChC,OAAkD;IAElD,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAE9E,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,OAAO,EAAE;QACnC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YAE3C,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC9B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,IAAI,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/C,OAAO;oBACL,GAAG,EAAE,iBAAiB;oBACtB,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;oBAC5B,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,OAAO,CAAC,IAAI;iBACvB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * @module hooks/use-football-seasons\n * @description React hook for seasons endpoint\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient, useApiFootballStore } from \"./football-context\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptions,\n} from \"./football-types\";\n\n/**\n * Hook to fetch available seasons\n *\n * Caches results in Zustand store for persistence.\n *\n * @param options - React Query options\n * @returns Query result with season years\n *\n * @example\n * ```typescript\n * function SeasonSelector() {\n * const { data, isLoading } = useSeasons();\n *\n * const currentSeason = data?.response\n * ? Math.max(...data.response)\n * : new Date().getFullYear();\n *\n * return (\n * <Select defaultValue={currentSeason}>\n * {data?.response.map((year) => (\n * <Option key={year} value={year}>{year}</Option>\n * ))}\n * </Select>\n * );\n * }\n * ```\n */\nexport function useFootballSeasons(\n options?: UseApiFootballQueryOptions<number, void>,\n) {\n const client = useApiFootballClient();\n const { seasons, setSeasons, isCacheValid, cacheTTL } = useApiFootballStore();\n\n return useQuery({\n queryKey: apiFootballKeys.seasons(),\n queryFn: async () => {\n const response = await client.getSeasons();\n // Cache in Zustand\n setSeasons(response.response);\n return response;\n },\n initialData: () => {\n if (seasons && isCacheValid(seasons.timestamp)) {\n return {\n get: \"leagues/seasons\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: seasons.data.length,\n paging: { current: 1, total: 1 },\n response: seasons.data,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...options,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-sidelined.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-sidelined.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAiB1B,MAAM,UAAU,oBAAoB,CAClC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACvE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,WAAW,EACX,MAA4C,CAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAChD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACnD,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1C,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,GAAG,EAAE,WAAW;oBAChB,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"use-football-sidelined.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-sidelined.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAiB1B,MAAM,UAAU,oBAAoB,CAClC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACvE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,WAAW,EACX,MAA4C,CAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAChD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACnD,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1C,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,GAAG,EAAE,WAAW;oBAChB,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * @module hooks/use-football-sidelined\n * @description React hook for sidelined endpoint\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient, useApiFootballStore } from \"./football-context\";\nimport { generateCacheKey } from \"../../utils/cache-utils\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptionsRequired,\n} from \"./football-types\";\nimport type { FootballSidelined, FootballSidelinedParams } from \"../types\";\n\n/**\n * Hook to fetch sidelined players (injured/suspended)\n *\n * @param options - Query options with player or coach param\n * @returns Query result with sidelined data\n *\n * @example\n * ```typescript\n * function PlayerInjuryHistory({ playerId }: Props) {\n * const { data } = useSidelined({ params: { player: playerId } });\n * // ...\n * }\n * ```\n */\nexport function useFootballSidelined(\n options: UseApiFootballQueryOptionsRequired<\n FootballSidelined,\n FootballSidelinedParams\n >,\n) {\n const client = useApiFootballClient();\n const { getSidelined, setSidelined, cacheTTL } = useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"sidelined\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.sidelined.list(params),\n queryFn: async () => {\n const response = await client.getSidelined(params);\n setSidelined(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getSidelined(cacheKey);\n if (cached) {\n return {\n get: \"sidelined\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-standings.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-standings.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAqC1B,MAAM,UAAU,oBAAoB,CAClC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACvE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,WAAW,EACX,MAA4C,CAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAChD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACnD,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1C,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,GAAG,EAAE,WAAW;oBAChB,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"use-football-standings.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-standings.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAqC1B,MAAM,UAAU,oBAAoB,CAClC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACvE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,WAAW,EACX,MAA4C,CAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAChD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACnD,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1C,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,GAAG,EAAE,WAAW;oBAChB,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * @module hooks/use-football-standings\n * @description React hooks for standings endpoints\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient, useApiFootballStore } from \"./football-context\";\nimport { generateCacheKey } from \"../../utils/cache-utils\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptionsRequired,\n} from \"./football-types\";\nimport type {\n FootballStandingsParams,\n FootballStandingsResponse,\n} from \"../types\";\n\n/**\n * Hook to fetch league standings\n *\n * Requires league and season parameters.\n *\n * @param options - Query options with required params\n * @returns Query result with standings data\n *\n * @example\n * ```typescript\n * function LeagueTable({ leagueId, season }: Props) {\n * const { data, isLoading } = useStandings({\n * params: { league: leagueId, season },\n * });\n *\n * const standings = data?.response[0]?.league.standings[0];\n *\n * return (\n * <Table>\n * {standings?.map((team) => (\n * <Row key={team.team.id}>\n * <Cell>{team.rank}</Cell>\n * <Cell>{team.team.name}</Cell>\n * <Cell>{team.points}</Cell>\n * </Row>\n * ))}\n * </Table>\n * );\n * }\n * ```\n */\nexport function useFootballStandings(\n options: UseApiFootballQueryOptionsRequired<\n FootballStandingsResponse,\n FootballStandingsParams\n >,\n) {\n const client = useApiFootballClient();\n const { getStandings, setStandings, cacheTTL } = useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"standings\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.standings.list(params),\n queryFn: async () => {\n const response = await client.getStandings(params);\n setStandings(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getStandings(cacheKey);\n if (cached) {\n return {\n get: \"standings\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-teams.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-teams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-football-teams.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-teams.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module hooks/use-football-teams\n * @description React hooks for teams endpoints\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient, useApiFootballStore } from \"./football-context\";\nimport { generateCacheKey } from \"../../utils/cache-utils\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptions,\n type UseApiFootballQueryOptionsRequired,\n} from \"./football-types\";\nimport type {\n FootballTeamResponse,\n FootballTeamsParams,\n FootballTeamStatistics,\n FootballTeamStatisticsParams,\n FootballVenue,\n FootballVenuesParams,\n} from \"../types\";\n\n/**\n * Hook to fetch teams\n *\n * Requires at least one filter parameter.\n *\n * @param options - Query options with required params\n * @returns Query result with team data\n *\n * @example\n * ```typescript\n * // Get teams by league and season\n * function LeagueTeams({ leagueId, season }: Props) {\n * const { data, isLoading } = useTeams({\n * params: { league: leagueId, season },\n * });\n * // ...\n * }\n *\n * // Get specific team\n * function TeamDetails({ teamId }: Props) {\n * const { data } = useTeams({ params: { id: teamId } });\n * const team = data?.response[0];\n * // ...\n * }\n * ```\n */\nexport function useFootballTeams(\n options: UseApiFootballQueryOptionsRequired<\n FootballTeamResponse,\n FootballTeamsParams\n >,\n) {\n const client = useApiFootballClient();\n const { getTeams, setTeams, cacheTTL } = useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"teams\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.teams.list(params),\n queryFn: async () => {\n const response = await client.getTeams(params);\n setTeams(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getTeams(cacheKey);\n if (cached) {\n return {\n get: \"teams\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n\n/**\n * Hook to fetch team statistics\n *\n * @param options - Query options with required params (team, league, season)\n * @returns Query result with team statistics\n *\n * @example\n * ```typescript\n * function TeamStats({ teamId, leagueId, season }: Props) {\n * const { data, isLoading } = useTeamStatistics({\n * params: { team: teamId, league: leagueId, season },\n * });\n *\n * const stats = data?.response[0];\n * // ...\n * }\n * ```\n */\nexport function useFootballTeamStatistics(\n options: UseApiFootballQueryOptionsRequired<\n FootballTeamStatistics,\n FootballTeamStatisticsParams\n >,\n) {\n const client = useApiFootballClient();\n const { getTeamStatistics, setTeamStatistics, cacheTTL } =\n useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"team-statistics\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.teams.statistics(params),\n queryFn: async () => {\n const response = await client.getTeamStatistics(params);\n if (response.response[0]) {\n setTeamStatistics(cacheKey, response.response[0]);\n }\n return response;\n },\n initialData: () => {\n const cached = getTeamStatistics(cacheKey);\n if (cached) {\n return {\n get: \"teams/statistics\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: 1,\n paging: { current: 1, total: 1 },\n response: [cached],\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n\n/**\n * Hook to fetch venues/stadiums\n *\n * @param options - Query options with optional filter params\n * @returns Query result with venue data\n *\n * @example\n * ```typescript\n * // Get venues by country\n * function EnglishStadiums() {\n * const { data } = useVenues({ params: { country: \"England\" } });\n * // ...\n * }\n *\n * // Search venues\n * function VenueSearch({ search }: Props) {\n * const { data } = useVenues({ params: { search } });\n * // ...\n * }\n * ```\n */\nexport function useFootballVenues(\n options?: UseApiFootballQueryOptions<FootballVenue, FootballVenuesParams>,\n) {\n const client = useApiFootballClient();\n const { getVenues, setVenues, cacheTTL } = useApiFootballStore();\n const params = options?.params;\n const cacheKey = generateCacheKey(\n \"venues\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.venues.list(params),\n queryFn: async () => {\n const response = await client.getVenues(params);\n setVenues(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getVenues(cacheKey);\n if (cached) {\n return {\n get: \"venues\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...options,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-timezone.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-timezone.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AA6B1B,MAAM,UAAU,mBAAmB,CACjC,OAA4D;IAE5D,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,GACvD,mBAAmB,EAAE,CAAC;IAExB,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE;QACpC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAE5C,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAEhB,IAAI,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnD,OAAO;oBACL,GAAG,EAAE,UAAU;oBACf,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM;oBAC9B,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,SAAS,CAAC,IAAI;iBACzB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"use-football-timezone.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-timezone.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AA6B1B,MAAM,UAAU,mBAAmB,CACjC,OAA4D;IAE5D,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,GACvD,mBAAmB,EAAE,CAAC;IAExB,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE;QACpC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAE5C,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAEhB,IAAI,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnD,OAAO;oBACL,GAAG,EAAE,UAAU;oBACf,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM;oBAC9B,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,SAAS,CAAC,IAAI;iBACzB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * @module hooks/use-football-timezone\n * @description React hook for timezone endpoint\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient, useApiFootballStore } from \"./football-context\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptions,\n} from \"./football-types\";\nimport type { FootballTimezone } from \"../types\";\n\n/**\n * Hook to fetch available timezones\n *\n * Caches results in Zustand store for persistence.\n *\n * @param options - React Query options\n * @returns Query result with timezone data\n *\n * @example\n * ```typescript\n * function TimezoneSelector() {\n * const { data, isLoading, error } = useTimezone();\n *\n * if (isLoading) return <Spinner />;\n * if (error) return <Error message={error.message} />;\n *\n * return (\n * <Select>\n * {data?.response.map((tz) => (\n * <Option key={tz} value={tz}>{tz}</Option>\n * ))}\n * </Select>\n * );\n * }\n * ```\n */\nexport function useFootballTimezone(\n options?: UseApiFootballQueryOptions<FootballTimezone, void>,\n) {\n const client = useApiFootballClient();\n const { timezones, setTimezones, isCacheValid, cacheTTL } =\n useApiFootballStore();\n\n return useQuery({\n queryKey: apiFootballKeys.timezone(),\n queryFn: async () => {\n const response = await client.getTimezone();\n // Cache in Zustand\n setTimezones(response.response);\n return response;\n },\n initialData: () => {\n // Check Zustand cache first\n if (timezones && isCacheValid(timezones.timestamp)) {\n return {\n get: \"timezone\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: timezones.data.length,\n paging: { current: 1, total: 1 },\n response: timezones.data,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...options,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-transfers.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-transfers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AA4B1B,MAAM,UAAU,oBAAoB,CAClC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACvE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,WAAW,EACX,MAA4C,CAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAChD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACnD,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1C,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,GAAG,EAAE,WAAW;oBAChB,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"use-football-transfers.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-transfers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AA4B1B,MAAM,UAAU,oBAAoB,CAClC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACvE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,WAAW,EACX,MAA4C,CAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAChD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACnD,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1C,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,GAAG,EAAE,WAAW;oBAChB,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * @module hooks/use-football-transfers\n * @description React hook for transfers endpoint\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient, useApiFootballStore } from \"./football-context\";\nimport { generateCacheKey } from \"../../utils/cache-utils\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptionsRequired,\n} from \"./football-types\";\nimport type {\n FootballTransferResponse,\n FootballTransfersParams,\n} from \"../types\";\n\n/**\n * Hook to fetch player transfers\n *\n * @param options - Query options with player or team param\n * @returns Query result with transfer data\n *\n * @example\n * ```typescript\n * // Get player transfers\n * function PlayerTransfers({ playerId }: Props) {\n * const { data } = useTransfers({ params: { player: playerId } });\n * const transfers = data?.response[0]?.transfers;\n * // ...\n * }\n *\n * // Get team transfers\n * function TeamTransfers({ teamId }: Props) {\n * const { data } = useTransfers({ params: { team: teamId } });\n * // ...\n * }\n * ```\n */\nexport function useFootballTransfers(\n options: UseApiFootballQueryOptionsRequired<\n FootballTransferResponse,\n FootballTransfersParams\n >,\n) {\n const client = useApiFootballClient();\n const { getTransfers, setTransfers, cacheTTL } = useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"transfers\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.transfers.list(params),\n queryFn: async () => {\n const response = await client.getTransfers(params);\n setTransfers(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getTransfers(cacheKey);\n if (cached) {\n return {\n get: \"transfers\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-football-trophies.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-trophies.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AA0B1B,MAAM,UAAU,mBAAmB,CACjC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACrE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,UAAU,EACV,MAA4C,CAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClD,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,GAAG,EAAE,UAAU;oBACf,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"use-football-trophies.js","sourceRoot":"","sources":["../../../src/football/hooks/use-football-trophies.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AA0B1B,MAAM,UAAU,mBAAmB,CACjC,OAGC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACrE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,UAAU,EACV,MAA4C,CAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClD,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,GAAG,EAAE,UAAU;oBACf,UAAU,EAAE,EAA4B;oBACxC,MAAM,EAAE,EAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,QAAQ;QACnB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * @module hooks/use-football-trophies\n * @description React hook for trophies endpoint\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useApiFootballClient, useApiFootballStore } from \"./football-context\";\nimport { generateCacheKey } from \"../../utils/cache-utils\";\nimport {\n apiFootballKeys,\n type UseApiFootballQueryOptionsRequired,\n} from \"./football-types\";\nimport type { FootballTrophiesParams, FootballTrophy } from \"../types\";\n\n/**\n * Hook to fetch trophies\n *\n * @param options - Query options with player or coach param\n * @returns Query result with trophy data\n *\n * @example\n * ```typescript\n * function PlayerTrophies({ playerId }: Props) {\n * const { data } = useTrophies({ params: { player: playerId } });\n *\n * return (\n * <List>\n * {data?.response.map((trophy, i) => (\n * <Item key={i}>\n * {trophy.league} - {trophy.season}\n * </Item>\n * ))}\n * </List>\n * );\n * }\n * ```\n */\nexport function useFootballTrophies(\n options: UseApiFootballQueryOptionsRequired<\n FootballTrophy,\n FootballTrophiesParams\n >,\n) {\n const client = useApiFootballClient();\n const { getTrophies, setTrophies, cacheTTL } = useApiFootballStore();\n const { params, ...queryOptions } = options;\n const cacheKey = generateCacheKey(\n \"trophies\",\n params as unknown as Record<string, unknown>,\n );\n\n return useQuery({\n queryKey: apiFootballKeys.trophies.list(params),\n queryFn: async () => {\n const response = await client.getTrophies(params);\n setTrophies(cacheKey, response.response);\n return response;\n },\n initialData: () => {\n const cached = getTrophies(cacheKey);\n if (cached) {\n return {\n get: \"trophies\",\n parameters: {} as Record<string, string>,\n errors: [] as string[],\n results: cached.length,\n paging: { current: 1, total: 1 },\n response: cached,\n };\n }\n return undefined;\n },\n staleTime: cacheTTL,\n ...queryOptions,\n });\n}\n"]}