fansunited-data-layer 0.14.4 → 0.14.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/api/sportal365-sports/tennis/matches/transformers/match.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACR,aAAa,EAUhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,UAAU,CAAC;AAoNrE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,aAAa,CA8CvE"}
1
+ {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/api/sportal365-sports/tennis/matches/transformers/match.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACR,aAAa,EAWhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EACR,cAAc,EAIjB,MAAM,UAAU,CAAC;AA2NlB;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,aAAa,CA8CvE"}
@@ -1,5 +1,18 @@
1
1
  import { transformOdds } from "../../../shared/odds.transformer.js";
2
2
  import { toProviderRefArray } from "../../../shared/providerRef.helper.js";
3
+ function transformCountry(rawCountry) {
4
+ if (!rawCountry) return void 0;
5
+ return {
6
+ id: rawCountry.id,
7
+ name: rawCountry.name,
8
+ flag: rawCountry.assets?.flag?.url
9
+ };
10
+ }
11
+ function transformPlayerAssets(rawAssets) {
12
+ const headshot = rawAssets?.headshot?.url;
13
+ if (!headshot) return void 0;
14
+ return { logo: headshot, photo: headshot };
15
+ }
3
16
  function transformStatus(raw) {
4
17
  const typeMap = {
5
18
  FINISHED: "finished",
@@ -25,11 +38,9 @@ function transformParticipant(raw) {
25
38
  shortName: raw.short_name,
26
39
  threeLetterCode: raw.three_letter_code,
27
40
  type: "player",
28
- country: raw.details?.[0]?.country ? {
29
- id: raw.details[0].country.id,
30
- name: raw.details[0].country.name
31
- } : void 0,
32
- gender: raw.details?.[0]?.gender
41
+ country: transformCountry(raw.details?.[0]?.country),
42
+ gender: raw.details?.[0]?.gender,
43
+ assets: transformPlayerAssets(raw.details?.[0]?.assets ?? raw.assets)
33
44
  };
34
45
  return player;
35
46
  } else if (raw.type === "TEAM_DOUBLE" && raw.details && raw.details.length === 2) {
@@ -39,11 +50,9 @@ function transformParticipant(raw) {
39
50
  shortName: raw.details[0].short_name,
40
51
  threeLetterCode: raw.details[0].three_letter_code,
41
52
  type: "player",
42
- country: raw.details[0].country ? {
43
- id: raw.details[0].country.id,
44
- name: raw.details[0].country.name
45
- } : void 0,
46
- gender: raw.details[0].gender
53
+ country: transformCountry(raw.details[0].country),
54
+ gender: raw.details[0].gender,
55
+ assets: transformPlayerAssets(raw.details[0].assets)
47
56
  };
48
57
  const player2 = {
49
58
  id: raw.details[1].id,
@@ -51,11 +60,9 @@ function transformParticipant(raw) {
51
60
  shortName: raw.details[1].short_name,
52
61
  threeLetterCode: raw.details[1].three_letter_code,
53
62
  type: "player",
54
- country: raw.details[1].country ? {
55
- id: raw.details[1].country.id,
56
- name: raw.details[1].country.name
57
- } : void 0,
58
- gender: raw.details[1].gender
63
+ country: transformCountry(raw.details[1].country),
64
+ gender: raw.details[1].gender,
65
+ assets: transformPlayerAssets(raw.details[1].assets)
59
66
  };
60
67
  const pair = {
61
68
  id: raw.id,
@@ -73,10 +80,7 @@ function transformParticipant(raw) {
73
80
  shortName: raw.short_name,
74
81
  threeLetterCode: raw.three_letter_code,
75
82
  type: "national",
76
- country: raw.details?.[0]?.country ? {
77
- id: raw.details[0].country.id,
78
- name: raw.details[0].country.name
79
- } : void 0,
83
+ country: transformCountry(raw.details?.[0]?.country),
80
84
  gender: raw.details?.[0]?.gender
81
85
  };
82
86
  return team;
@@ -1 +1 @@
1
- {"version":3,"file":"match.js","sources":["../../../../../../src/lib/api/sportal365-sports/tennis/matches/transformers/match.ts"],"sourcesContent":["/**\n * Tennis match transformation utilities\n * Transforms raw Tennis API match responses to canonical FUSports types\n */\n\nimport type {\n FUSportsMatch,\n FUSportsMatchStatus,\n FUSportsMatchTiming,\n FUSportsCompetitor,\n FUSportsPlayerCompetitor,\n FUSportsPairCompetitor,\n FUSportsTeamCompetitor,\n FUSportsCompetition,\n FUSportsMatchScore,\n FUSportsMatchWinner,\n} from \"../../../../../types/canonical\";\nimport type { RawTennisMatch, RawTennisParticipant } from \"../types\";\nimport { toProviderRefArray, transformOdds } from \"../../../shared\";\n\n/**\n * Transform raw tennis status to canonical format\n */\nfunction transformStatus(raw: RawTennisMatch[\"status\"]): FUSportsMatchStatus {\n const typeMap: Record<string, FUSportsMatchStatus[\"code\"]> = {\n FINISHED: \"finished\",\n NOT_STARTED: \"not_started\",\n LIVE: \"live\",\n INTERRUPTED: \"interrupted\",\n CANCELLED: \"cancelled\",\n POSTPONED: \"postponed\",\n };\n\n const normalizedType = raw.type.toUpperCase();\n return {\n code: typeMap[normalizedType] ?? \"not_started\",\n name: raw.name,\n shortName: raw.short_name,\n type: normalizedType as FUSportsMatchStatus[\"type\"],\n };\n}\n\n/**\n * Transform raw tennis participant to canonical competitor\n * Tennis can have: individual players, pairs (doubles), or teams\n */\nfunction transformParticipant(raw: RawTennisParticipant): FUSportsCompetitor {\n if (raw.type === \"PLAYER\") {\n // Single player\n const player: FUSportsPlayerCompetitor = {\n id: raw.id,\n name: raw.name,\n shortName: raw.short_name,\n threeLetterCode: raw.three_letter_code,\n type: \"player\",\n country: raw.details?.[0]?.country\n ? {\n id: raw.details[0].country.id,\n name: raw.details[0].country.name,\n }\n : undefined,\n gender: raw.details?.[0]?.gender as FUSportsPlayerCompetitor[\"gender\"],\n };\n return player;\n } else if (raw.type === \"TEAM_DOUBLE\" && raw.details && raw.details.length === 2) {\n // Pair/doubles team\n const player1: FUSportsPlayerCompetitor = {\n id: raw.details[0].id,\n name: raw.details[0].name,\n shortName: raw.details[0].short_name,\n threeLetterCode: raw.details[0].three_letter_code,\n type: \"player\",\n country: raw.details[0].country\n ? {\n id: raw.details[0].country.id,\n name: raw.details[0].country.name,\n }\n : undefined,\n gender: raw.details[0].gender as FUSportsPlayerCompetitor[\"gender\"],\n };\n\n const player2: FUSportsPlayerCompetitor = {\n id: raw.details[1].id,\n name: raw.details[1].name,\n shortName: raw.details[1].short_name,\n threeLetterCode: raw.details[1].three_letter_code,\n type: \"player\",\n country: raw.details[1].country\n ? {\n id: raw.details[1].country.id,\n name: raw.details[1].country.name,\n }\n : undefined,\n gender: raw.details[1].gender as FUSportsPlayerCompetitor[\"gender\"],\n };\n\n const pair: FUSportsPairCompetitor = {\n id: raw.id,\n name: raw.name,\n shortName: raw.short_name,\n threeLetterCode: raw.three_letter_code,\n type: \"pair\",\n players: [player1, player2],\n };\n return pair;\n } else {\n // Team (for team competitions like Davis Cup)\n const team: FUSportsTeamCompetitor = {\n id: raw.id,\n name: raw.name,\n shortName: raw.short_name,\n threeLetterCode: raw.three_letter_code,\n type: \"national\",\n country: raw.details?.[0]?.country\n ? {\n id: raw.details[0].country.id,\n name: raw.details[0].country.name,\n }\n : undefined,\n gender: raw.details?.[0]?.gender as FUSportsTeamCompetitor[\"gender\"],\n };\n return team;\n }\n}\n\n/**\n * Transform raw tennis timing to canonical format\n */\nfunction transformTiming(raw: RawTennisMatch): FUSportsMatchTiming {\n return {\n kickoffTime: new Date(raw.scheduled_start_time),\n phaseStartedAt: raw.started_at ? new Date(raw.started_at) : undefined,\n finishedAt: raw.finished_at ? new Date(raw.finished_at) : undefined,\n };\n}\n\n/**\n * Transform raw tennis competition to canonical format\n */\nfunction transformCompetition(raw: RawTennisMatch): FUSportsCompetition | undefined {\n if (!raw.tournament) return undefined;\n\n const tournament = raw.tournament;\n return {\n id: tournament.competition?.id ?? tournament.id,\n name: tournament.competition?.name ?? tournament.name,\n slug: tournament.competition?.slug ?? tournament.slug,\n type: \"TOURNAMENT\" as const,\n gender: tournament.gender as FUSportsCompetition[\"gender\"],\n region: \"INTERNATIONAL\" as const,\n country: tournament.country\n ? {\n id: tournament.country.id,\n name: tournament.country.name,\n }\n : undefined,\n };\n}\n\n/**\n * Transform raw tennis score to canonical format\n * Tennis scores are an array of sets with games\n */\nfunction transformScore(raw: RawTennisMatch): FUSportsMatchScore | undefined {\n if (!raw.results || raw.results.length === 0) return undefined;\n\n // Individual set entries have codes \"set1\", \"set2\", \"set3\", etc.\n // Other entries: \"gamescore\", \"setswon\", \"runningscore\", \"finalresult\"\n const setResults = raw.results.filter((r) => /^set\\d+$/i.test(r.type.code));\n if (setResults.length === 0) return undefined;\n\n const periods: Array<{ competitorOne: string; competitorTwo: string }> = [];\n\n for (const result of setResults) {\n const val1 = result.values.find((v) => v.position === \"1\");\n const val2 = result.values.find((v) => v.position === \"2\");\n\n if (!val1 || !val2 || val1.value == null || val2.value == null) continue;\n\n periods.push({\n competitorOne: val1.value,\n competitorTwo: val2.value,\n });\n }\n\n if (periods.length === 0) return undefined;\n\n // Use the \"setswon\" entry for the total sets score if available — more reliable than counting\n const setsWonResult = raw.results.find((r) => r.type.code === \"setswon\");\n const setsWonVal1 = setsWonResult?.values.find((v) => v.position === \"1\");\n const setsWonVal2 = setsWonResult?.values.find((v) => v.position === \"2\");\n\n let totalSetsOne: number;\n let totalSetsTwo: number;\n\n if (setsWonVal1?.value != null && setsWonVal2?.value != null) {\n totalSetsOne = parseInt(setsWonVal1.value);\n totalSetsTwo = parseInt(setsWonVal2.value);\n } else {\n // Fallback: count set wins from individual set entries\n totalSetsOne = periods.filter((p) => parseInt(p.competitorOne) > parseInt(p.competitorTwo)).length;\n totalSetsTwo = periods.filter((p) => parseInt(p.competitorTwo) > parseInt(p.competitorOne)).length;\n }\n\n return {\n competitorOne: String(totalSetsOne),\n competitorTwo: String(totalSetsTwo),\n breakdown: {\n total: {\n competitorOne: String(totalSetsOne),\n competitorTwo: String(totalSetsTwo),\n },\n periods,\n },\n };\n}\n\n/**\n * Transform raw tennis winner to canonical format\n */\nfunction transformWinner(raw: RawTennisMatch): FUSportsMatchWinner | undefined {\n const winner = raw.participants.find((p) => p.winner === \"YES\");\n if (!winner) return undefined;\n\n return {\n competitorId: winner.id,\n };\n}\n\n/**\n * Transform raw tennis match response to canonical FUSportsMatch\n */\nexport function transformTennisMatch(raw: RawTennisMatch): FUSportsMatch {\n const participants = raw.participants.sort((a, b) => a.position - b.position);\n\n return {\n id: raw.id,\n slug: raw.slug,\n sport: \"tennis\",\n status: transformStatus(raw.status),\n timing: transformTiming(raw),\n\n competitorOne: transformParticipant(participants[0]),\n competitorTwo: transformParticipant(participants[1]),\n\n competition: transformCompetition(raw),\n round: raw.round\n ? {\n id: raw.round.id,\n key: raw.round.uuid,\n name: raw.round.name,\n type: \"REGULAR\",\n providerRef: toProviderRefArray(raw.round.uuid),\n }\n : undefined,\n\n score: transformScore(raw),\n\n winner: transformWinner(raw),\n\n odds: raw.odds ? transformOdds(raw.odds) : undefined,\n\n coverage: raw.coverage?.type === \"NOT_LIVE\" ? \"UNKNOWN\" : (raw.coverage?.type as FUSportsMatch[\"coverage\"]),\n\n metadata: {\n matchType: raw.type,\n bestOfSets: raw.best_of_sets,\n surface: raw.tournament?.surface,\n indoorOutdoor: raw.tournament?.indoor_outdoor,\n },\n\n providerRef: [\n {\n provider: \"sportal365-tennis\",\n id: raw.id,\n },\n ],\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"match.js","sources":["../../../../../../src/lib/api/sportal365-sports/tennis/matches/transformers/match.ts"],"sourcesContent":["/**\n * Tennis match transformation utilities\n * Transforms raw Tennis API match responses to canonical FUSports types\n */\n\nimport type {\n FUSportsMatch,\n FUSportsMatchStatus,\n FUSportsMatchTiming,\n FUSportsCompetitor,\n FUSportsPlayerCompetitor,\n FUSportsPairCompetitor,\n FUSportsTeamCompetitor,\n FUSportsCompetition,\n FUSportsMatchScore,\n FUSportsMatchWinner,\n FUSportsCountry,\n} from \"../../../../../types/canonical\";\nimport type {\n RawTennisMatch,\n RawTennisParticipant,\n RawTennisCountry,\n RawTennisPlayerAssets,\n} from \"../types\";\nimport { toProviderRefArray, transformOdds } from \"../../../shared\";\n\n/**\n * Transform a raw tennis country to canonical, including the flag URL when present.\n */\nfunction transformCountry(rawCountry: RawTennisCountry | undefined): FUSportsCountry | undefined {\n if (!rawCountry) return undefined;\n return {\n id: rawCountry.id,\n name: rawCountry.name,\n flag: rawCountry.assets?.flag?.url,\n };\n}\n\n/**\n * Pull the player headshot out of raw assets and expose it as both logo and photo,\n * matching how the canonical player competitor surfaces visual assets.\n */\nfunction transformPlayerAssets(\n rawAssets: RawTennisPlayerAssets | undefined,\n): FUSportsPlayerCompetitor[\"assets\"] | undefined {\n const headshot = rawAssets?.headshot?.url;\n if (!headshot) return undefined;\n return { logo: headshot, photo: headshot };\n}\n\n/**\n * Transform raw tennis status to canonical format\n */\nfunction transformStatus(raw: RawTennisMatch[\"status\"]): FUSportsMatchStatus {\n const typeMap: Record<string, FUSportsMatchStatus[\"code\"]> = {\n FINISHED: \"finished\",\n NOT_STARTED: \"not_started\",\n LIVE: \"live\",\n INTERRUPTED: \"interrupted\",\n CANCELLED: \"cancelled\",\n POSTPONED: \"postponed\",\n };\n\n const normalizedType = raw.type.toUpperCase();\n return {\n code: typeMap[normalizedType] ?? \"not_started\",\n name: raw.name,\n shortName: raw.short_name,\n type: normalizedType as FUSportsMatchStatus[\"type\"],\n };\n}\n\n/**\n * Transform raw tennis participant to canonical competitor\n * Tennis can have: individual players, pairs (doubles), or teams\n */\nfunction transformParticipant(raw: RawTennisParticipant): FUSportsCompetitor {\n if (raw.type === \"PLAYER\") {\n // Single player\n const player: FUSportsPlayerCompetitor = {\n id: raw.id,\n name: raw.name,\n shortName: raw.short_name,\n threeLetterCode: raw.three_letter_code,\n type: \"player\",\n country: transformCountry(raw.details?.[0]?.country),\n gender: raw.details?.[0]?.gender as FUSportsPlayerCompetitor[\"gender\"],\n assets: transformPlayerAssets(raw.details?.[0]?.assets ?? raw.assets),\n };\n return player;\n } else if (raw.type === \"TEAM_DOUBLE\" && raw.details && raw.details.length === 2) {\n // Pair/doubles team\n const player1: FUSportsPlayerCompetitor = {\n id: raw.details[0].id,\n name: raw.details[0].name,\n shortName: raw.details[0].short_name,\n threeLetterCode: raw.details[0].three_letter_code,\n type: \"player\",\n country: transformCountry(raw.details[0].country),\n gender: raw.details[0].gender as FUSportsPlayerCompetitor[\"gender\"],\n assets: transformPlayerAssets(raw.details[0].assets),\n };\n\n const player2: FUSportsPlayerCompetitor = {\n id: raw.details[1].id,\n name: raw.details[1].name,\n shortName: raw.details[1].short_name,\n threeLetterCode: raw.details[1].three_letter_code,\n type: \"player\",\n country: transformCountry(raw.details[1].country),\n gender: raw.details[1].gender as FUSportsPlayerCompetitor[\"gender\"],\n assets: transformPlayerAssets(raw.details[1].assets),\n };\n\n const pair: FUSportsPairCompetitor = {\n id: raw.id,\n name: raw.name,\n shortName: raw.short_name,\n threeLetterCode: raw.three_letter_code,\n type: \"pair\",\n players: [player1, player2],\n };\n return pair;\n } else {\n // Team (for team competitions like Davis Cup)\n const team: FUSportsTeamCompetitor = {\n id: raw.id,\n name: raw.name,\n shortName: raw.short_name,\n threeLetterCode: raw.three_letter_code,\n type: \"national\",\n country: transformCountry(raw.details?.[0]?.country),\n gender: raw.details?.[0]?.gender as FUSportsTeamCompetitor[\"gender\"],\n };\n return team;\n }\n}\n\n/**\n * Transform raw tennis timing to canonical format\n */\nfunction transformTiming(raw: RawTennisMatch): FUSportsMatchTiming {\n return {\n kickoffTime: new Date(raw.scheduled_start_time),\n phaseStartedAt: raw.started_at ? new Date(raw.started_at) : undefined,\n finishedAt: raw.finished_at ? new Date(raw.finished_at) : undefined,\n };\n}\n\n/**\n * Transform raw tennis competition to canonical format\n */\nfunction transformCompetition(raw: RawTennisMatch): FUSportsCompetition | undefined {\n if (!raw.tournament) return undefined;\n\n const tournament = raw.tournament;\n return {\n id: tournament.competition?.id ?? tournament.id,\n name: tournament.competition?.name ?? tournament.name,\n slug: tournament.competition?.slug ?? tournament.slug,\n type: \"TOURNAMENT\" as const,\n gender: tournament.gender as FUSportsCompetition[\"gender\"],\n region: \"INTERNATIONAL\" as const,\n country: tournament.country\n ? {\n id: tournament.country.id,\n name: tournament.country.name,\n }\n : undefined,\n };\n}\n\n/**\n * Transform raw tennis score to canonical format\n * Tennis scores are an array of sets with games\n */\nfunction transformScore(raw: RawTennisMatch): FUSportsMatchScore | undefined {\n if (!raw.results || raw.results.length === 0) return undefined;\n\n // Individual set entries have codes \"set1\", \"set2\", \"set3\", etc.\n // Other entries: \"gamescore\", \"setswon\", \"runningscore\", \"finalresult\"\n const setResults = raw.results.filter((r) => /^set\\d+$/i.test(r.type.code));\n if (setResults.length === 0) return undefined;\n\n const periods: Array<{ competitorOne: string; competitorTwo: string }> = [];\n\n for (const result of setResults) {\n const val1 = result.values.find((v) => v.position === \"1\");\n const val2 = result.values.find((v) => v.position === \"2\");\n\n if (!val1 || !val2 || val1.value == null || val2.value == null) continue;\n\n periods.push({\n competitorOne: val1.value,\n competitorTwo: val2.value,\n });\n }\n\n if (periods.length === 0) return undefined;\n\n // Use the \"setswon\" entry for the total sets score if available — more reliable than counting\n const setsWonResult = raw.results.find((r) => r.type.code === \"setswon\");\n const setsWonVal1 = setsWonResult?.values.find((v) => v.position === \"1\");\n const setsWonVal2 = setsWonResult?.values.find((v) => v.position === \"2\");\n\n let totalSetsOne: number;\n let totalSetsTwo: number;\n\n if (setsWonVal1?.value != null && setsWonVal2?.value != null) {\n totalSetsOne = parseInt(setsWonVal1.value);\n totalSetsTwo = parseInt(setsWonVal2.value);\n } else {\n // Fallback: count set wins from individual set entries\n totalSetsOne = periods.filter((p) => parseInt(p.competitorOne) > parseInt(p.competitorTwo)).length;\n totalSetsTwo = periods.filter((p) => parseInt(p.competitorTwo) > parseInt(p.competitorOne)).length;\n }\n\n return {\n competitorOne: String(totalSetsOne),\n competitorTwo: String(totalSetsTwo),\n breakdown: {\n total: {\n competitorOne: String(totalSetsOne),\n competitorTwo: String(totalSetsTwo),\n },\n periods,\n },\n };\n}\n\n/**\n * Transform raw tennis winner to canonical format\n */\nfunction transformWinner(raw: RawTennisMatch): FUSportsMatchWinner | undefined {\n const winner = raw.participants.find((p) => p.winner === \"YES\");\n if (!winner) return undefined;\n\n return {\n competitorId: winner.id,\n };\n}\n\n/**\n * Transform raw tennis match response to canonical FUSportsMatch\n */\nexport function transformTennisMatch(raw: RawTennisMatch): FUSportsMatch {\n const participants = raw.participants.sort((a, b) => a.position - b.position);\n\n return {\n id: raw.id,\n slug: raw.slug,\n sport: \"tennis\",\n status: transformStatus(raw.status),\n timing: transformTiming(raw),\n\n competitorOne: transformParticipant(participants[0]),\n competitorTwo: transformParticipant(participants[1]),\n\n competition: transformCompetition(raw),\n round: raw.round\n ? {\n id: raw.round.id,\n key: raw.round.uuid,\n name: raw.round.name,\n type: \"REGULAR\",\n providerRef: toProviderRefArray(raw.round.uuid),\n }\n : undefined,\n\n score: transformScore(raw),\n\n winner: transformWinner(raw),\n\n odds: raw.odds ? transformOdds(raw.odds) : undefined,\n\n coverage: raw.coverage?.type === \"NOT_LIVE\" ? \"UNKNOWN\" : (raw.coverage?.type as FUSportsMatch[\"coverage\"]),\n\n metadata: {\n matchType: raw.type,\n bestOfSets: raw.best_of_sets,\n surface: raw.tournament?.surface,\n indoorOutdoor: raw.tournament?.indoor_outdoor,\n },\n\n providerRef: [\n {\n provider: \"sportal365-tennis\",\n id: raw.id,\n },\n ],\n };\n}\n"],"names":[],"mappings":"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"}
@@ -3,11 +3,21 @@
3
3
  */
4
4
  import type { NextCacheOptions } from "../../http";
5
5
  import type { RawMatchOdd } from "../../shared/odds.types";
6
+ export interface RawTennisAsset {
7
+ url: string;
8
+ }
9
+ export interface RawTennisCountryAssets {
10
+ flag?: RawTennisAsset;
11
+ }
12
+ export interface RawTennisPlayerAssets {
13
+ headshot?: RawTennisAsset;
14
+ }
6
15
  export interface RawTennisCountry {
7
16
  id: string;
8
17
  name: string;
9
18
  slug: string;
10
19
  entity_type: string;
20
+ assets?: RawTennisCountryAssets;
11
21
  }
12
22
  export interface RawTennisPlayer {
13
23
  id: string;
@@ -36,6 +46,7 @@ export interface RawTennisParticipantProfile {
36
46
  entity_type: string;
37
47
  short_name?: string;
38
48
  three_letter_code?: string;
49
+ assets?: RawTennisPlayerAssets;
39
50
  }
40
51
  export interface RawTennisParticipant {
41
52
  id: string;
@@ -48,6 +59,8 @@ export interface RawTennisParticipant {
48
59
  three_letter_code?: string;
49
60
  entity_type: string;
50
61
  current_server?: "NOT_AVAILABLE" | "YES" | "NO";
62
+ /** Fallback assets attached directly to the participant (some payloads carry headshot here instead of in details[0]) */
63
+ assets?: RawTennisPlayerAssets;
51
64
  }
52
65
  export interface RawTennisStatus {
53
66
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/api/sportal365-sports/tennis/matches/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/api/sportal365-sports/tennis/matches/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "description": "A TypeScript library for fetching and transforming sports data from multiple API providers. Returns clean, canonical types that are provider-agnostic.",
5
5
  "homepage": "https://fansunited.com/",
6
6
  "private": false,
7
- "version": "0.14.4",
7
+ "version": "0.14.5",
8
8
  "type": "module",
9
9
  "sideEffects": false,
10
10
  "module": "./fansunited-data-layer.js",