fansunited-data-layer 0.2.0 → 0.2.1

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