fansunited-data-layer 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/fansunited/football/players/transformer.d.ts.map +1 -1
- package/api/fansunited/football/players/types.d.ts +11 -1
- package/api/fansunited/football/players/types.d.ts.map +1 -1
- package/fansunited-data-layer.cjs +1 -1
- package/fansunited-data-layer.js +295 -254
- package/package.json +3 -3
- package/types/canonical/base.types.d.ts +2 -0
- package/types/canonical/base.types.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../../../../src/lib/api/fansunited/football/players/transformer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../../../../src/lib/api/fansunited/football/players/transformer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACR,wBAAwB,EAG3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAkD,MAAM,SAAS,CAAC;AAkGjG;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,iBAAiB,GAAG,wBAAwB,CAEhF"}
|
|
@@ -36,6 +36,16 @@ export interface RawTeam {
|
|
|
36
36
|
logo?: string;
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
+
export interface RawCompetition {
|
|
40
|
+
id: string;
|
|
41
|
+
name: string;
|
|
42
|
+
type?: "league" | "cup" | "tournament" | "friendly" | null;
|
|
43
|
+
gender?: "male" | "female";
|
|
44
|
+
country?: RawCountry;
|
|
45
|
+
assets?: {
|
|
46
|
+
logo?: string;
|
|
47
|
+
} | null;
|
|
48
|
+
}
|
|
39
49
|
/**
|
|
40
50
|
* Raw player data from API
|
|
41
51
|
*/
|
|
@@ -52,7 +62,7 @@ export interface RawPlayer {
|
|
|
52
62
|
headshot?: string;
|
|
53
63
|
};
|
|
54
64
|
teams?: RawTeam[];
|
|
55
|
-
competitions?:
|
|
65
|
+
competitions?: RawCompetition[];
|
|
56
66
|
}
|
|
57
67
|
/**
|
|
58
68
|
* Raw player response from /v1/players/{id}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/api/fansunited/football/players/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMnD,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,MAAM,WAAW,SAAS;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/api/fansunited/football/players/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMnD,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,MAAM,WAAW,SAAS;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,GAAG,IAAI,CAAC;IAC3D,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,SAAS,CAAC;CACnB;AAMD,MAAM,WAAW,wBAAwB;IACrC,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,IAAI,CAAC,EAAE,gBAAgB,CAAC;CAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./index-Cogo-Kkd.cjs");function te(e){return{entityType:"tournament",id:e.id.toString(),name:e.name,slug:e.slug,gender:e.gender,type:e.type,region:e.region,country:{id:e.country.id.toString(),name:e.country.name,code:void 0,flag:e.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.country.uuid)},assets:e.url_logo?{logo:e.url_logo}:void 0,providerRef:m.toProviderRefArray(e.uuid)}}function oe(e){return{entityType:"player",id:e.id.toString(),name:e.name,slug:e.slug,position:e.position,gender:e.gender,birthdate:e.birthdate,country:{id:e.country.id.toString(),name:e.country.name,code:void 0,flag:e.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.country.uuid)},assets:e.url_thumb?{photo:e.url_thumb}:void 0,providerRef:m.toProviderRefArray(e.uuid)}}function ne(e){return{entityType:"team",id:e.id.toString(),name:e.name,slug:e.slug,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,type:e.type==="national"?"national":"club",gender:e.gender,country:{id:e.country.id.toString(),name:e.country.name,code:void 0,flag:e.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.country.uuid)},assets:e.url_logo?{logo:e.url_logo}:void 0,providerRef:m.toProviderRefArray(e.uuid)}}function se(e){return{entityType:"president",id:e.id.toString(),name:e.name,slug:e.slug,birthdate:e.birthdate??void 0,country:{id:e.country.id.toString(),name:e.country.name,code:void 0,flag:e.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.country.uuid)},assets:e.url_thumb?{photo:e.url_thumb}:void 0,providerRef:m.toProviderRefArray(e.uuid)}}function ie(e){return{entityType:"venue",id:e.id.toString(),name:e.name,slug:e.slug,city:{id:e.city.id.toString(),name:e.city.name,country:{id:e.city.country.id.toString(),name:e.city.country.name,code:void 0,flag:e.city.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.city.country.uuid)},providerRef:m.toProviderRefArray(e.city.uuid)},country:{id:e.country.id.toString(),name:e.country.name,code:void 0,flag:e.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.country.uuid)},profile:{latitude:e.profile.lat,longitude:e.profile.lng,capacity:e.profile.capacity},assets:e.url_thumb?{image:e.url_thumb}:void 0,providerRef:m.toProviderRefArray(e.uuid)}}function re(e){return{entityType:"coach",id:e.id.toString(),name:e.name,slug:e.slug,birthdate:e.birthdate??void 0,country:{id:e.country.id.toString(),name:e.country.name,code:void 0,flag:e.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.country.uuid)},assets:e.url_thumb?{photo:e.url_thumb}:void 0,providerRef:m.toProviderRefArray(e.uuid)}}function ae(e){switch(e.entity_type){case"tournament":return te(e);case"player":return oe(e);case"team":return ne(e);case"president":return se(e);case"venue":return ie(e);case"coach":return re(e);default:throw new Error(`Unknown entity type: ${e.entity_type}`)}}async function ce(e,o){if(!e.query||e.query.trim()==="")return{results:[],query:e.query||""};const t=o||m.getConfig(),{sportal365Sports:n}=t,s=e.entityTypes&&e.entityTypes.length>0?e.entityTypes:["tournament","player","team","president","venue","coach"],i=await m.footballHttp.get({path:"/search",params:{query:e.query.trim(),entity_type:s.join(","),language_code:e.languageCode??n?.languageCode??"en"},headers:{"Accept-Language":e.languageCode??n?.languageCode??"en"},next:e.next,config:t});return!i||i.length===0?{results:[],query:e.query}:{results:i.map(ae),query:e.query}}const le=m.createHttpClient(m.SPORTAL365_SPORTS_SEARCH_DOMAIN);function O(e){return{language:e.language,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0}}function R(e){if(!(!e||!e.url))return{url:e.url}}function D(e){if(e)return{id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,providerRef:e.id}}function W(e){return{entityType:"team",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:D(e.country),gender:e.gender,competitionIds:e.competition_ids,type:e.type,national:e.national,undecided:e.undecided,providerRef:e.id}}function Y(e){return{entityType:"city",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:D(e.country),providerRef:e.id}}function de(e){return{entityType:"horse",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:D(e.country),gender:e.gender,providerRef:e.id}}function ue(e){return{entityType:"player",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:D(e.country),gender:e.gender,birthdate:e.birthdate??void 0,position:e.position??void 0,providerRef:e.id}}function me(e){return{entityType:"coach",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:D(e.country),gender:e.gender,birthdate:e.birthdate??void 0,providerRef:e.id}}function fe(e){return{entityType:"referee",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:D(e.country),gender:e.gender,birthdate:e.birthdate??void 0,providerRef:e.id}}function ge(e){return{entityType:"venue",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:D(e.country),city:e.city?Y(e.city):void 0,providerRef:e.id}}function pe(e){return{entityType:e.entity_type,id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:D(e.country),gender:e.gender,type:e.type??void 0,region:e.region??void 0,providerRef:e.id}}function ye(e){return{entityType:"match",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,competitionId:e.competition_id??void 0,startTime:e.start_time??void 0,homeTeam:e.home_team?W(e.home_team):void 0,awayTeam:e.away_team?W(e.away_team):void 0,providerRef:e.id}}function he(e){return{entityType:"country",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,providerRef:e.id}}function Te(e){switch(e.entity_type){case"team":return W(e);case"city":return Y(e);case"horse":return de(e);case"player":return ue(e);case"coach":return me(e);case"referee":return fe(e);case"venue":return ge(e);case"tournament":case"competition":return pe(e);case"match":return ye(e);case"country":return he(e);default:{const o=e;throw new Error(`Unknown entity type: ${o.entity_type}`)}}}async function ve(e={},o){const t=o??m.getConfig(),n={};e.name&&(n.name=e.name),e.entityTypes&&e.entityTypes.length>0&&(n.entity_type=e.entityTypes.join(",")),e.sports&&e.sports.length>0&&(n.sport=e.sports.join(",")),e.eventStartTime&&(n.event_start_time=e.eventStartTime),e.ids&&e.ids.length>0&&(n.ids=e.ids.join(",")),e.competitionIds&&e.competitionIds.length>0&&(n.competition_ids=e.competitionIds.join(",")),e.domain&&(n.domain=e.domain),e.inputLanguage&&(n.input_language=e.inputLanguage),e.translationLanguage&&(n.translation_language=e.translationLanguage),e.limit!==void 0&&(n.limit=e.limit.toString()),e.offset!==void 0&&(n.offset=e.offset.toString());const s=await le.get({path:"/suggest",params:n,next:e.next,config:t});return!s.results||s.results.length===0?{results:[],query:e.name}:{results:s.results.map(Te),query:e.name}}const Se=m.createHttpClient(m.SPORTAL365_STATISTICS_DOMAIN);function _e(e,o){return{teamId:e.id,teamName:e.name,seasonId:o,statistics:e.statistics.map(t=>({key:t.id,value:t.value,label:t.name}))}}async function Ae(e,o){const t=o||m.getConfig(),n=e.next??{revalidate:600},s=await Se.get({path:"/statistics/aggregate",params:{participant_ids:e.teamId,season_ids:e.seasonId,participant_type:"TEAM"},next:n,config:t});if(!s.data||s.data.length===0)throw new Error(`No statistics found for team ${e.teamId} in season ${e.seasonId}`);return _e(s.data[0],e.seasonId)}function Ce(e){const o=e.replace(/\/$/,"");function t(n){return`${o}${n}`}return{async get(n){const s=n.config||m.getConfig(),{fansUnited:i}=s;if(!i)throw new Error("Fans United configuration is missing. Add 'fansUnited' with 'apiKey' and 'clientId' to your config.");if(!i.apiKey||!i.clientId)throw new Error("Fans United configuration requires both 'apiKey' and 'clientId'");const r=new URL(t(n.path));if(r.searchParams.set("key",i.apiKey),r.searchParams.set("client_id",i.clientId),n.params)for(const[l,u]of Object.entries(n.params))u!==void 0&&(Array.isArray(u)?u.length>0&&r.searchParams.set(l,u.join(",")):r.searchParams.set(l,u));const d=await fetch(r.toString(),{method:"GET",headers:{Accept:"application/json","Content-Type":"application/json",...n.headers},signal:AbortSignal.timeout(3e4),...n.next&&{next:n.next}});if(!d.ok){let l=`Fans United API error: ${d.status} ${d.statusText}`;try{const u=await d.text();u&&(l+=` - ${u}`)}catch{}throw new Error(l)}return d.json()}}}const Fe="https://football.fansunitedapi.com",G=Ce(Fe);function Oe(e){return{id:String(e.id),name:e.name,active:e.active,providerRef:[{provider:"fansunited",id:String(e.id)}]}}function Re(e){const o={id:String(e.id),name:e.name,shortName:e.short_name,slug:e.slug,type:e.type||"LEAGUE",region:e.region,gender:e.gender,providerRef:[{provider:"fansunited",id:String(e.id)}]};return e.country&&(o.country={id:String(e.country.id),name:e.country.name,code:e.country.code,flag:e.country.flag,providerRef:[{provider:"fansunited",id:String(e.country.id)}]}),e.logo&&(o.assets={logo:e.logo}),e.seasons&&e.seasons.length>0&&(o.seasons=e.seasons.map(Oe)),e.current_season&&(o.season={id:String(e.current_season.id),name:e.current_season.name,status:e.current_season.active?"ACTIVE":"INACTIVE"}),o}function Me(e){return e.map(Re)}async function be(e,o){const t={};e?.lang?t.lang=e.lang:t.lang="EN",e?.sortField&&(t.sort_field=e.sortField),e?.sortOrder&&(t.sort_order=e.sortOrder),e?.page!==void 0&&(t.page=String(e.page)),e?.perPage!==void 0&&(t.per_page=String(e.perPage)),e?.countryId!==void 0&&(t.country_id=String(e.countryId)),e?.active!==void 0&&(t.active=e.active?"1":"0");const n=await G.get({path:"/v1/competitions",params:t,config:o,next:e?.next});return Me(n.data)}function Ne(e){return{id:e.id,name:e.name,code:e.country_code,assets:e.assets?.flag?{flag:e.assets.flag}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function De(e){return{id:e.id,name:e.name,type:e.type?.toUpperCase()||"LEAGUE",gender:e.gender?.toUpperCase(),country:e.country?Ne(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Ge(e){return De(e.data)}async function Ee(e,o,t){const n=t||m.getConfig(),s={};o?.lang&&(s.lang=o.lang);const i=await G.get({path:`/v1/competitions/${e}`,params:s,next:o?.next,config:n});return Ge(i)}function Pe(e){return{id:e.id,name:e.name,code:e.country_code,flag:e.assets?.flag,providerRef:[{provider:"fansunited",id:e.id}]}}function He(e){return{id:e.id,name:e.name,shortName:e.short_name||void 0,threeLetterCode:e.code,type:e.national?"national":"club",gender:e.gender?e.gender.toUpperCase():void 0,country:e.country?Pe(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,metadata:e.colors?{shirtColors:e.colors.primary?[{type:"home",colorCode:e.colors.primary}]:void 0}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Ie(e){return He(e.data)}async function ke(e,o,t){const n=t||m.getConfig(),s={};o?.lang&&(s.lang=o.lang);const i=await G.get({path:`/v1/teams/${e}`,params:s,next:o?.next,config:n});return Ie(i)}function Le(e){return{id:e.id,name:e.name,code:e.country_code,flag:e.assets?.flag,providerRef:[{provider:"fansunited",id:e.id}]}}function Ue(e){return{type:"player",id:e.id,name:e.name,position:e.position,birthdate:e.birth_date,country:e.country?Le(e.country):void 0,assets:e.assets?.headshot?{photo:e.assets.headshot}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function $e(e){return Ue(e.data)}async function xe(e,o,t){const n=t||m.getConfig(),s={};o?.lang&&(s.lang=o.lang);const i=await G.get({path:`/v1/players/${e}`,params:s,next:o?.next,config:n});return $e(i)}function z(e){return{id:e.id,name:e.name,code:e.country_code,assets:e.assets?.flag?{flag:e.assets.flag}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Be(e){return{id:e.id,name:e.name,type:e.type?.toUpperCase()||"LEAGUE",gender:e.gender?.toUpperCase(),country:e.country?z(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function We(e){if(e.status){const i={notstarted:{code:"not_started",type:"NOT_STARTED",name:"Not Started"},live:{code:"live",type:"LIVE",name:"Live"},finished:{code:"finished",type:"FINISHED",name:"Finished"},postponed:{code:"postponed",type:"POSTPONED",name:"Postponed"},cancelled:{code:"cancelled",type:"CANCELLED",name:"Cancelled"},abandoned:{code:"abandoned",type:"ABANDONED",name:"Abandoned"}}[e.status.type];if(i)return i}let o="not_started",t="NOT_STARTED",n="Not Started";return e.finished_at?(o="finished",t="FINISHED",n="Finished"):e.started_at&&(o="live",t="LIVE",n="Live"),{code:o,name:n,type:t}}function qe(e){return{kickoffTime:new Date(e.kickoff_at),currentMinute:e.minute??void 0,currentPeriod:void 0}}function V(e){return{id:e.id,name:e.name,shortName:e.short_name??void 0,fullName:e.full_name??void 0,threeLetterCode:e.code,type:e.national?"national":"club",gender:e.gender?.toUpperCase(),country:e.country?z(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Ve(e){if(!e)return;const o=n=>n?{competitorOne:n.home_goals!==null?String(n.home_goals):"0",competitorTwo:n.away_goals!==null?String(n.away_goals):"0"}:void 0,t=o(e.ft_score);if(t)return{competitorOne:t.competitorOne,competitorTwo:t.competitorTwo,breakdown:{total:t,halfTime:o(e.ht_score),regularTime:o(e.ft_score),extraTime:o(e.aet_score),penaltyShootout:o(e.pen_score)}}}function J(e){return{id:e.id,status:We(e),timing:qe(e),competitorOne:V(e.home_team),competitorTwo:V(e.away_team),score:Ve(e.scores),competition:e.context?.competition?Be(e.context.competition):void 0,lineupStatus:e.lineups_confirmed?"CONFIRMED":"NOT_AVAILABLE",updatedAt:e.updated_at?new Date(e.updated_at):void 0,isUndecided:e.undecided??void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function je(e){return J(e.data)}function Ke(e){return e.data.map(J)}async function Ye(e,o,t){const n=t||m.getConfig(),s={};o?.lang&&(s.lang=o.lang);const i=await G.get({path:`/v1/matches/${e}`,params:s,next:o?.next,config:n});return je(i)}async function ze(e,o){const t=o||m.getConfig(),n={};e?.lang&&(n.lang=e.lang),e?.competitions&&(n.competitions=e.competitions),e?.countries&&(n.countries=e.countries),e?.fromDate&&(n.from_date=e.fromDate),e?.toDate&&(n.to_date=e.toDate),e?.matches&&(n.matches=e.matches),e?.teams&&(n.teams=e.teams),e?.status&&(n.status=e.status),e?.limit!==void 0&&(n.limit=String(e.limit)),e?.page!==void 0&&(n.page=String(e.page)),e?.sortField&&(n.sort_field=e.sortField),e?.sortOrder&&(n.sort_order=e.sortOrder),e?.showDeleted!==void 0&&(n.show_deleted=e.showDeleted?"true":"false");const s=await G.get({path:"/v1/matches",params:n,next:e?.next,config:t});return Ke(s)}function q(e){return{id:e.id,name:e.name,code:e.country_code,flag:e.assets?.flag||void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Je(e){return{id:e.id,name:e.name,shortName:e.short_name||void 0,type:e.type||"LEAGUE",region:e.region,gender:e.gender?.toUpperCase(),country:e.country?q(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Qe(e){return{type:"player",id:e.id,name:e.name,position:e.position||void 0,gender:e.gender?.toUpperCase(),birthdate:e.birthdate||void 0,country:e.country?q(e.country):void 0,assets:e.assets?.photo?{photo:e.assets.photo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Xe(e){return{type:e.national?"national":"club",id:e.id,name:e.name,shortName:e.short_name||void 0,threeLetterCode:e.code||void 0,gender:e.gender?.toUpperCase(),country:e.country?q(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function B(e){switch(e.entity_type){case"competition":{const o=Je(e);return{source:"FOOTBALL",entityType:"competition",entityId:e.id,entityData:o}}case"player":{const o=Qe(e);return{source:"FOOTBALL",entityType:"player",entityId:e.id,entityData:o}}case"team":{const o=Xe(e);return{source:"FOOTBALL",entityType:"team",entityId:e.id,entityData:o}}case"venue":case"coach":return null;default:throw new Error(`Unknown entity type: ${e.entity_type}`)}}async function Ze(e,o){if(!e.query||e.query.trim()==="")return[];const t=o||m.getConfig(),n={q:e.query.trim()},i=(e.entityTypes&&e.entityTypes.length>0?e.entityTypes:["competition","team","player"]).map(d=>{switch(d){case"team":return"teams";case"player":return"players";case"competition":return"competitions";default:return d}});n.entities=i.join(","),e.lang&&(n.lang=e.lang),e.limit&&(n.limit=String(e.limit));const r=await G.get({path:"/v1/search",params:n,next:e.next,config:t}),a=[];return r.data&&(r.data.competitions&&r.data.competitions.forEach(d=>{const l=B({...d,entity_type:"competition"});l&&a.push(l)}),r.data.teams&&r.data.teams.forEach(d=>{const l=B({...d,entity_type:"team"});l&&a.push(l)}),r.data.players&&r.data.players.forEach(d=>{const l=B({...d,entity_type:"player"});l&&a.push(l)})),a}function we(e){return!e.seasons||e.seasons.length===0?void 0:e.seasons.find(t=>t.active)??e.seasons[0]}function et(e,o){const t=new Date,n=o.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="NOT_STARTED",a=new Date(s.timing.kickoffTime)>=t;return i&&r&&a});return n.sort((s,i)=>new Date(s.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime()),n[0]}function tt(e,o){const t=new Date,n=o.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="FINISHED",a=new Date(s.timing.kickoffTime)<=t;return i&&r&&a});return n.sort((s,i)=>new Date(i.timing.kickoffTime).getTime()-new Date(s.timing.kickoffTime).getTime()),n[0]}function ot(e,o){const t=new Date;return o.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="NOT_STARTED"||s.status.type==="LIVE",a=new Date(s.timing.kickoffTime)>=t||s.status.type==="LIVE";return i&&r&&a}).sort((s,i)=>new Date(s.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime())}function nt(e,o){const t=new Date;return o.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="FINISHED",a=new Date(s.timing.kickoffTime)<=t;return i&&r&&a}).sort((s,i)=>new Date(i.timing.kickoffTime).getTime()-new Date(s.timing.kickoffTime).getTime())}function st(e,o,t){const n=t.filter(r=>r.status.type==="FINISHED"),s=t.filter(r=>r.status.type==="NOT_STARTED"||r.status.type==="POSTPONED"),i=o.entries.map(r=>{const a=r.competitor.id,d=n.filter(f=>f.competitorOne.id===e&&f.competitorTwo.id===a||f.competitorOne.id===a&&f.competitorTwo.id===e),l=s.filter(f=>f.competitorOne.id===e&&f.competitorTwo.id===a||f.competitorOne.id===a&&f.competitorTwo.id===e);let u,c;return d.forEach(f=>{const p=f.competitorOne.id===e,y=parseInt(f.score?.competitorOne??"0"),T=parseInt(f.score?.competitorTwo??"0"),M=p?y:T,A=p?T:y;let F;M>A?F="W":M===A?F="D":F="L";const b={result:F,score:`${y} - ${T}`,date:f.timing.kickoffTime,matchId:f.id,isUpcoming:!1};p?u=b:c=b}),l.forEach(f=>{const p=f.competitorOne.id===e;p&&!u?u={date:f.timing.kickoffTime,matchId:f.id,isUpcoming:!0}:!p&&!c&&(c={date:f.timing.kickoffTime,matchId:f.id,isUpcoming:!0})}),{rank:r.rank,teamId:r.competitor.id,teamName:r.competitor.name,teamShortName:r.competitor.shortName,teamLogo:r.competitor.logo,gamesPlayed:r.stats.played??0,points:r.stats.points??0,homeResult:u,awayResult:c}});return{teamId:e,rows:i}}function it(e,o=10){return e.players.filter(t=>(t.seasonStatistics?.goals??0)>0).sort((t,n)=>{const s=t.seasonStatistics?.goals??0,i=n.seasonStatistics?.goals??0;if(i!==s)return i-s;const r=t.seasonStatistics?.assists??0;return(n.seasonStatistics?.assists??0)-r}).slice(0,o)}function rt(e,o=10){return e.players.filter(t=>(t.seasonStatistics?.assists??0)>0).sort((t,n)=>{const s=t.seasonStatistics?.assists??0,i=n.seasonStatistics?.assists??0;if(i!==s)return i-s;const r=t.seasonStatistics?.goals??0;return(n.seasonStatistics?.goals??0)-r}).slice(0,o)}function at(e,o=10){return e.players.filter(t=>(t.seasonStatistics?.appearances??0)>0).sort((t,n)=>{const s=t.seasonStatistics?.appearances??0,i=n.seasonStatistics?.appearances??0;if(i!==s)return i-s;const r=t.seasonStatistics?.minutes??0;return(n.seasonStatistics?.minutes??0)-r}).slice(0,o)}function ct(e,o=10){return e.players.filter(t=>(t.seasonStatistics?.minutes??0)>0).sort((t,n)=>{const s=t.seasonStatistics?.minutes??0,i=n.seasonStatistics?.minutes??0;if(i!==s)return i-s;const r=t.seasonStatistics?.appearances??0;return(n.seasonStatistics?.appearances??0)-r}).slice(0,o)}function lt(e,o=10){return e.players.filter(t=>(t.seasonStatistics?.cleansheets??0)>0).sort((t,n)=>{const s=t.seasonStatistics?.cleansheets??0,i=n.seasonStatistics?.cleansheets??0;if(i!==s)return i-s;const r=t.seasonStatistics?.appearances??0;return(n.seasonStatistics?.appearances??0)-r}).slice(0,o)}function dt(e,o=10){return e.players.filter(t=>{const n=t.seasonStatistics?.yellowCards??0,s=t.seasonStatistics?.redCards??0;return n+s>0}).sort((t,n)=>{const s=t.seasonStatistics?.yellowCards??0,i=t.seasonStatistics?.redCards??0,r=n.seasonStatistics?.yellowCards??0,a=n.seasonStatistics?.redCards??0,d=s+i*3,l=r+a*3;return l!==d?l-d:a!==i?a-i:r-s}).slice(0,o)}const Q=["GOAL","PENALTY_GOAL","OWN_GOAL"];function C(e,o){return o>0?e/o*100:0}function H(e,o){return o>0?e/o:0}function ut(e,o=!1,t=2){return o?`${Math.round(e)}%`:Number.isInteger(e)?e.toString():e.toFixed(t)}function mt(e,o){const t=typeof e=="string"?parseFloat(e):e;if(isNaN(t)||o===0)return"0";const n=(t/o).toFixed(1);return`${t} (${n} avg)`}function ft(e,o){const t=typeof e=="string"?parseFloat(e):e;return isNaN(t)||o===0?"0.0":(t/o).toFixed(1)}function gt(e){const o=parseFloat(e);return isNaN(o)?"0%":`${Math.round(o)}%`}function X(e,o,t){if(e.status?.type!=="FINISHED"||!e.score)return null;const n=parseInt(e.score.competitorOne||"0"),s=parseInt(e.score.competitorTwo||"0"),i=t?n:s,r=t?s:n;let a=null,d=null;const l=e.score.breakdown?.halfTime;if(l){const p=parseInt(l.competitorOne||"0"),y=parseInt(l.competitorTwo||"0");a=t?p:y,d=t?y:p}const u=e.statistics;let c=null,f=null;if(u){const p=u.find?.(y=>y.type==="CORNERS");p&&(c=t?p.competitorOne:p.competitorTwo,f=t?p.competitorTwo:p.competitorOne)}return{goalsFor:i,goalsAgainst:r,halfTimeGoalsFor:a,halfTimeGoalsAgainst:d,cornersFor:c,cornersAgainst:f,isWin:i>r,isDraw:i===r,isLoss:i<r}}function x(e,o){return e.competitorOne.id===o}function Z(e,o){return e.competitorTwo.id===o}function pt(e,o){return x(e,o)||Z(e,o)}function yt(e){return e.status?.type==="FINISHED"}function ht(e,o){const t=x(e,o);return parseInt(t?e.score?.competitorOne||"0":e.score?.competitorTwo||"0")}function Tt(e,o){const t=x(e,o);return parseInt(t?e.score?.competitorTwo||"0":e.score?.competitorOne||"0")}function vt(e,o,t){const n=e.filter(u=>{if(u.status?.type!=="FINISHED"||!u.score)return!1;const c=u.competitorOne.id===o||u.competitorTwo.id===o,f=u.competitorOne.id===t||u.competitorTwo.id===t;return c&&f});let s=0,i=0,r=0,a=0,d=0;n.forEach(u=>{const c=parseInt(u.score?.competitorOne||"0"),f=parseInt(u.score?.competitorTwo||"0"),p=u.competitorOne.id===o,y=p?c:f,T=p?f:c;a+=y,d+=T,y>T?s++:T>y?i++:r++});const l=n.length;return{totalMatches:l,homeTeamWins:s,awayTeamWins:i,draws:r,homeTeamGoals:a,awayTeamGoals:d,homeTeamWinPercentage:l>0?s/l*100:0,awayTeamWinPercentage:l>0?i/l*100:0,drawPercentage:l>0?r/l*100:0,homeTeamAvgGoals:l>0?a/l:0,awayTeamAvgGoals:l>0?d/l:0}}function St(e,o,t,n=5){return e.filter(i=>{if(i.status?.type!=="FINISHED"||!i.score)return!1;const r=i.competitorOne.id===o||i.competitorTwo.id===o,a=i.competitorOne.id===t||i.competitorTwo.id===t;return r&&a}).sort((i,r)=>new Date(r.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime()).slice(0,n).map(i=>{const r=parseInt(i.score?.competitorOne||"0"),a=parseInt(i.score?.competitorTwo||"0"),d=i.competitorOne.id===o,l=d?r:a,u=d?a:r;let c;return l>u?c="home":u>l?c="away":c="draw",{id:i.id,date:new Date(i.timing.kickoffTime).toLocaleDateString("en-GB",{day:"numeric",month:"short",year:"numeric"}),homeTeamName:i.competitorOne.name,awayTeamName:i.competitorTwo.name,homeTeamLogo:i.competitorOne.assets?.logo,awayTeamLogo:i.competitorTwo.assets?.logo,homeScore:r,awayScore:a,venue:i.venue?.name,winner:c}})}function _t(e,o,t){return e.filter(n=>{const s=n.competitorOne.id===o,i=n.competitorTwo.id===o;return!s&&!i?!1:t==="home"?s:i}).map(n=>{const s=n.competitorOne.id===o;return X(n,o,s)}).filter(n=>n!==null)}function j(e,o,t,n){let s=0;for(const i of e){const r=i.competitorOne.id===o,a=i.competitorTwo.id===o;if(!r&&!a||t==="home"&&!r||t==="away"&&!a||i.status?.type!=="FINISHED")continue;const d=i.mainEvents;if(!d||!Array.isArray(d))continue;const l=d.filter(y=>y.type&&Q.includes(y.type)).sort((y,T)=>{const M=y.minute??0,A=T.minute??0;return M!==A?M-A:(y.injuryMinute??0)-(T.injuryMinute??0)});if(l.length===0)continue;const u=l[0],c=r?"ONE":"TWO",f=u.type==="OWN_GOAL";let p;f?p=u.competitorPosition!==c:p=u.competitorPosition===c,(n==="scored"&&p||n==="conceded"&&!p)&&s++}return s}function At(e,o,t){let n=0;for(const s of e){const i=s.competitorOne.id===o,r=s.competitorTwo.id===o;if(!i&&!r||t==="home"&&!i||t==="away"&&!r||s.status?.type!=="FINISHED")continue;const a=s.mainEvents;a&&Array.isArray(a)&&n++}return n}function Ct(e,o,t){const n=_t(e,o,t),s=n.length;if(s===0)return{played:0,goalsForPerMatch:0,cleanSheets:0,wonToNil:0,scoringRate:0,scoredInBothHalves:0,scoredFirst:0,leadingAtHalfTime:0,goalsAgainstPerMatch:0,failedToScore:0,lostToNil:0,concedingRate:0,concededInBothHalves:0,concededFirst:0,losingAtHalfTime:0,avgCornersFor:0,avgCornersAgainst:0};const i=n.reduce((g,S)=>g+S.goalsFor,0),r=n.reduce((g,S)=>g+S.goalsAgainst,0),a=n.filter(g=>g.goalsAgainst===0).length,d=n.filter(g=>g.isWin&&g.goalsAgainst===0).length,l=n.filter(g=>g.goalsFor>0).length,u=n.filter(g=>g.goalsFor===0).length,c=n.filter(g=>g.isLoss&&g.goalsFor===0).length,f=n.filter(g=>g.goalsAgainst>0).length,p=n.filter(g=>g.halfTimeGoalsFor!==null),y=p.length,T=p.filter(g=>{const S=g.halfTimeGoalsFor,P=g.goalsFor-S;return S>0&&P>0}).length,M=j(e,o,t,"scored"),A=At(e,o,t),F=p.filter(g=>g.halfTimeGoalsFor>g.halfTimeGoalsAgainst).length,b=p.filter(g=>{const S=g.halfTimeGoalsAgainst,P=g.goalsAgainst-S;return S>0&&P>0}).length,k=j(e,o,t,"conceded"),L=p.filter(g=>g.halfTimeGoalsAgainst>g.halfTimeGoalsFor).length,E=n.filter(g=>g.cornersFor!==null),U=E.reduce((g,S)=>g+(S.cornersFor||0),0),$=E.reduce((g,S)=>g+(S.cornersAgainst||0),0);return{played:s,goalsForPerMatch:H(i,s),cleanSheets:C(a,s),wonToNil:C(d,s),scoringRate:C(l,s),scoredInBothHalves:C(T,y),scoredFirst:C(M,A),leadingAtHalfTime:C(F,y),goalsAgainstPerMatch:H(r,s),failedToScore:C(u,s),lostToNil:C(c,s),concedingRate:C(f,s),concededInBothHalves:C(b,y),concededFirst:C(k,A),losingAtHalfTime:C(L,y),avgCornersFor:H(U,E.length),avgCornersAgainst:H($,E.length)}}function Ft(e,o){return e.filter(t=>t.status?.type!=="FINISHED"?!1:t.competitorOne.id===o||t.competitorTwo.id===o).map(t=>{const n=t.competitorOne.id===o,s=parseInt(t.score?.competitorOne||"0"),i=parseInt(t.score?.competitorTwo||"0"),r=s+i,a=t.periods;let d=null;if(a&&Array.isArray(a)){const l=a.find(u=>u.type==="FIRST_HALF"||u.type==="1ST_HALF");if(l?.score){const u=parseInt(l.score.competitorOne||"0"),c=parseInt(l.score.competitorTwo||"0");d=u+c}}return{totalGoals:r,halfTimeGoals:d,isHome:n}})}function h(e,o){return e.length===0?0:e.filter(n=>n>o).length/e.length*100}function Ot(e,o){const t=Ft(e,o),n=t.filter(c=>c.isHome),s=t.filter(c=>!c.isHome),i=t.map(c=>c.totalGoals),r=n.map(c=>c.totalGoals),a=s.map(c=>c.totalGoals),d=t.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals),l=n.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals),u=s.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals);return{over05:{home:h(r,.5),total:h(i,.5),away:h(a,.5)},over15:{home:h(r,1.5),total:h(i,1.5),away:h(a,1.5)},over25:{home:h(r,2.5),total:h(i,2.5),away:h(a,2.5)},over35:{home:h(r,3.5),total:h(i,3.5),away:h(a,3.5)},over45:{home:h(r,4.5),total:h(i,4.5),away:h(a,4.5)},over55:{home:h(r,5.5),total:h(i,5.5),away:h(a,5.5)},over05HT:{home:h(l,.5),total:h(d,.5),away:h(u,.5)},over15HT:{home:h(l,1.5),total:h(d,1.5),away:h(u,1.5)},over25HT:{home:h(l,2.5),total:h(d,2.5),away:h(u,2.5)}}}function w(e,o){const t=e.competitorOne.id===o,n=e.competitorTwo.id===o;if(!t&&!n||!e.score)return null;const s=parseInt(t?e.score.competitorOne||"0":e.score.competitorTwo||"0"),i=parseInt(t?e.score.competitorTwo||"0":e.score.competitorOne||"0");let r;return s>i?r="W":s<i?r="L":r="D",{result:{score:`${s}:${i}`,result:r,isHome:t},isHome:t}}function Rt(e,o,t,n,s,i){const r=o?.entries.find(N=>N.competitor.id===e),a=t?.entries.find(N=>N.competitor.id===e),d=n?.entries.find(N=>N.competitor.id===e),l=s?.entries.find(N=>N.competitor.id===e),u=i?.entries.find(N=>N.competitor.id===e);if(!r)return null;const c=a?.stats?.goalsFor??0,f=d?.stats?.goalsFor??0,p=r?.stats?.goalsFor??0,y=l?.stats?.goalsAgainst??0,T=u?.stats?.goalsAgainst??0,M=r?.stats?.goalsAgainst??0,A=a?.stats?.played??0,F=d?.stats?.played??0,b=r?.stats?.played??0,k=b>0?p/b:0,L=b>0?M/b:0,E=k+L,U=A>0?c/A:0,$=F>0?f/F:0,g=A>0?y/A:0,S=F>0?T/F:0,P=U+g,ee=$+S;return{homeGoals:c,totalGoals:p,awayGoals:f,homeGamesPlayed:A,awayGamesPlayed:F,totalGamesPlayed:b,homeGoalsConceded:y,totalGoalsConceded:M,awayGoalsConceded:T,gfPerMatch:k,gaPerMatch:L,gfGaPerMatch:E,homeGfPerMatch:U,awayGfPerMatch:$,homeGaPerMatch:g,awayGaPerMatch:S,homeGfGaPerMatch:P,awayGfGaPerMatch:ee}}function _(e,o,t,n){const s=e.filter(r=>{const a=r.competitorOne.id===o,d=r.competitorTwo.id===o;return!(!a&&!d||r.status?.type!=="FINISHED"||n==="home"&&!a||n==="away"&&!d)}).sort((r,a)=>new Date(a.timing.kickoffTime).getTime()-new Date(r.timing.kickoffTime).getTime());if(s.length===0)return null;let i=0;for(const r of s){const a=r.competitorOne.id===o;if(t(r,o,a))i++;else break}return i>0?i:null}const v={win:(e,o,t)=>{const n=parseInt(t?e.score?.competitorOne||"0":e.score?.competitorTwo||"0"),s=parseInt(t?e.score?.competitorTwo||"0":e.score?.competitorOne||"0");return n>s},draw:e=>e.score?.competitorOne===e.score?.competitorTwo,loss:(e,o,t)=>{const n=parseInt(t?e.score?.competitorOne||"0":e.score?.competitorTwo||"0"),s=parseInt(t?e.score?.competitorTwo||"0":e.score?.competitorOne||"0");return n<s},noWin:(e,o,t)=>!v.win(e,o,t),noDraw:e=>!v.draw(e),noDefeat:(e,o,t)=>!v.loss(e,o,t),scored:(e,o,t)=>parseInt(t?e.score?.competitorOne||"0":e.score?.competitorTwo||"0")>=1,conceded:(e,o,t)=>parseInt(t?e.score?.competitorTwo||"0":e.score?.competitorOne||"0")>=1,noGoalScored:(e,o,t)=>!v.scored(e,o,t),noGoalConceded:(e,o,t)=>!v.conceded(e,o,t),over25:e=>parseInt(e.score?.competitorOne||"0")+parseInt(e.score?.competitorTwo||"0")>2,under25:e=>parseInt(e.score?.competitorOne||"0")+parseInt(e.score?.competitorTwo||"0")<3,scoredTwice:(e,o,t)=>parseInt(t?e.score?.competitorOne||"0":e.score?.competitorTwo||"0")>=2,concededTwice:(e,o,t)=>parseInt(t?e.score?.competitorTwo||"0":e.score?.competitorOne||"0")>=2};function I(e,o,t){return{win:_(e,o,v.win,t),draw:_(e,o,v.draw,t),loss:_(e,o,v.loss,t),noWin:_(e,o,v.noWin,t),noDraw:_(e,o,v.noDraw,t),noDefeat:_(e,o,v.noDefeat,t),scored:_(e,o,v.scored,t),conceded:_(e,o,v.conceded,t),noGoalScored:_(e,o,v.noGoalScored,t),noGoalConceded:_(e,o,v.noGoalConceded,t),over25:_(e,o,v.over25,t),under25:_(e,o,v.under25,t),scoredTwice:_(e,o,v.scoredTwice,t),concededTwice:_(e,o,v.concededTwice,t)}}function Mt(e,o,t){const n=I(e,o,"home"),s=I(e,o),i=I(e,t,"away"),r=I(e,t);return[{label:"Consecutive wins",homeTeam:{home:n.win,total:s.win},awayTeam:{total:r.win,home:i.win},colorType:"neutral"},{label:"Consecutive draws",homeTeam:{home:n.draw,total:s.draw},awayTeam:{total:r.draw,home:i.draw},colorType:"neutral"},{label:"Consecutive defeats",homeTeam:{home:n.loss,total:s.loss},awayTeam:{total:r.loss,home:i.loss},colorType:"neutral"},{label:"No win",homeTeam:{home:n.noWin,total:s.noWin},awayTeam:{total:r.noWin,home:i.noWin},colorType:"negative"},{label:"No draw",homeTeam:{home:n.noDraw,total:s.noDraw},awayTeam:{total:r.noDraw,home:i.noDraw},colorType:"neutral"},{label:"No defeat",homeTeam:{home:n.noDefeat,total:s.noDefeat},awayTeam:{total:r.noDefeat,home:i.noDefeat},colorType:"positive"},{label:"Scored at least once",homeTeam:{home:n.scored,total:s.scored},awayTeam:{total:r.scored,home:i.scored},colorType:"positive"},{label:"Conceded at least once",homeTeam:{home:n.conceded,total:s.conceded},awayTeam:{total:r.conceded,home:i.conceded},colorType:"negative"},{label:"No goal scored",homeTeam:{home:n.noGoalScored,total:s.noGoalScored},awayTeam:{total:r.noGoalScored,home:i.noGoalScored},colorType:"neutral"},{label:"No goal conceded",homeTeam:{home:n.noGoalConceded,total:s.noGoalConceded},awayTeam:{total:r.noGoalConceded,home:i.noGoalConceded},colorType:"neutral"},{label:"GS + GC over 2.5",homeTeam:{home:n.over25,total:s.over25},awayTeam:{total:r.over25,home:i.over25},colorType:"neutral"},{label:"GS + GC under 2.5",homeTeam:{home:n.under25,total:s.under25},awayTeam:{total:r.under25,home:i.under25},colorType:"neutral"},{label:"Scored at least twice",homeTeam:{home:n.scoredTwice,total:s.scoredTwice},awayTeam:{total:r.scoredTwice,home:i.scoredTwice},colorType:"positive"},{label:"Conceded at least twice",homeTeam:{home:n.concededTwice,total:s.concededTwice},awayTeam:{total:r.concededTwice,home:i.concededTwice},colorType:"negative"}]}function K(e,o){const t=new Map;return e.forEach(n=>{if(n.status?.type!=="FINISHED")return;const s=w(n,o);if(!s)return;const i=s.isHome?n.competitorTwo.id:n.competitorOne.id,r=s.isHome?n.competitorTwo:n.competitorOne,a=t.get(i)||{opponentId:i,opponentName:r.name,opponentLogo:r.assets?.logo};s.isHome?a.homeResult=s.result:a.awayResult=s.result,t.set(i,a)}),t}function bt(e,o,t,n,s,i,r){const a=K(e,o),d=K(e,t),l=new Set([...a.keys(),...d.keys(),o,t]),u=[];return l.forEach(c=>{const f=a.get(c),p=d.get(c);if(!f&&!p&&c!==o&&c!==t)return;let y,T;c===o?(y=n,T=i):c===t?(y=s,T=r):(y=f?.opponentName||p?.opponentName||"",T=f?.opponentLogo||p?.opponentLogo),u.push({opponentId:c,opponentName:y,opponentLogo:T,homeTeamHome:f?.homeResult,homeTeamAway:f?.awayResult,awayTeamHome:p?.homeResult,awayTeamAway:p?.awayResult,isHomeTeamRow:c===o,isAwayTeamRow:c===t})}),u.sort((c,f)=>c.isHomeTeamRow?-1:f.isHomeTeamRow?1:c.isAwayTeamRow?-1:f.isAwayTeamRow?1:c.opponentName.localeCompare(f.opponentName))}exports.addProviderRef=m.addProviderRef;exports.getConfig=m.getConfig;exports.getFootballCompetition=m.getFootballCompetition;exports.getFootballMatch=m.getFootballMatch;exports.getFootballMatchCommentary=m.getFootballMatchCommentary;exports.getFootballMatchEvents=m.getFootballMatchEvents;exports.getFootballMatchLineups=m.getFootballMatchLineups;exports.getFootballMatchOdds=m.getFootballMatchOdds;exports.getFootballMatchStatistics=m.getFootballMatchStatistics;exports.getFootballMatches=m.getFootballMatches;exports.getFootballPlayerSeasonStatistics=m.getFootballPlayerSeasonStatistics;exports.getFootballSeasonDetails=m.getFootballSeasonDetails;exports.getFootballStandings=m.getFootballStandings;exports.getFootballTeam=m.getFootballTeam;exports.getFootballTeamSquad=m.getFootballTeamSquad;exports.getProviderRefId=m.getProviderRefId;exports.isConfigured=m.isConfigured;exports.setConfig=m.setConfig;exports.toProviderRefArray=m.toProviderRefArray;exports.GOAL_EVENT_TYPES=Q;exports.analyzeMatch=X;exports.calcAverage=H;exports.calcPercentage=C;exports.calculateH2HStats=vt;exports.calculateStreak=_;exports.formatAsAverage=ft;exports.formatPossessionPercentage=gt;exports.formatStatValue=ut;exports.formatWithAverage=mt;exports.getActiveSeason=we;exports.getFansUnitedFootballCompetition=Ee;exports.getFansUnitedFootballCompetitions=be;exports.getFansUnitedFootballMatch=Ye;exports.getFansUnitedFootballMatches=ze;exports.getFansUnitedFootballPlayer=xe;exports.getFansUnitedFootballSearch=Ze;exports.getFansUnitedFootballTeam=ke;exports.getMatchResult=w;exports.getOpponentScore=Tt;exports.getRecentH2HMeetings=St;exports.getTeamFinishedMatches=nt;exports.getTeamGoalStats=Rt;exports.getTeamHomeAwayStats=Ct;exports.getTeamMostDecorated=dt;exports.getTeamNextMatch=et;exports.getTeamOverUnderStats=Ot;exports.getTeamPreviousMatch=tt;exports.getTeamResultsTable=st;exports.getTeamScore=ht;exports.getTeamSeasonStatistics=Ae;exports.getTeamStreaks=I;exports.getTeamStreaksComparison=Mt;exports.getTeamTopAppearances=at;exports.getTeamTopAssisters=rt;exports.getTeamTopCleanSheets=lt;exports.getTeamTopMinutesPlayed=ct;exports.getTeamTopScorers=it;exports.getTeamUpcomingMatches=ot;exports.getTeamsCommonOpponents=bt;exports.isMatchFinished=yt;exports.isTeamAway=Z;exports.isTeamHome=x;exports.isTeamInMatch=pt;exports.search=ve;exports.searchFootball=ce;exports.streakFilters=v;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./index-Cogo-Kkd.cjs");function oe(e){return{entityType:"tournament",id:e.id.toString(),name:e.name,slug:e.slug,gender:e.gender,type:e.type,region:e.region,country:{id:e.country.id.toString(),name:e.country.name,code:void 0,flag:e.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.country.uuid)},assets:e.url_logo?{logo:e.url_logo}:void 0,providerRef:m.toProviderRefArray(e.uuid)}}function ne(e){return{entityType:"player",id:e.id.toString(),name:e.name,slug:e.slug,position:e.position,gender:e.gender,birthdate:e.birthdate,country:{id:e.country.id.toString(),name:e.country.name,code:void 0,flag:e.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.country.uuid)},assets:e.url_thumb?{photo:e.url_thumb}:void 0,providerRef:m.toProviderRefArray(e.uuid)}}function se(e){return{entityType:"team",id:e.id.toString(),name:e.name,slug:e.slug,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,type:e.type==="national"?"national":"club",gender:e.gender,country:{id:e.country.id.toString(),name:e.country.name,code:void 0,flag:e.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.country.uuid)},assets:e.url_logo?{logo:e.url_logo}:void 0,providerRef:m.toProviderRefArray(e.uuid)}}function ie(e){return{entityType:"president",id:e.id.toString(),name:e.name,slug:e.slug,birthdate:e.birthdate??void 0,country:{id:e.country.id.toString(),name:e.country.name,code:void 0,flag:e.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.country.uuid)},assets:e.url_thumb?{photo:e.url_thumb}:void 0,providerRef:m.toProviderRefArray(e.uuid)}}function re(e){return{entityType:"venue",id:e.id.toString(),name:e.name,slug:e.slug,city:{id:e.city.id.toString(),name:e.city.name,country:{id:e.city.country.id.toString(),name:e.city.country.name,code:void 0,flag:e.city.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.city.country.uuid)},providerRef:m.toProviderRefArray(e.city.uuid)},country:{id:e.country.id.toString(),name:e.country.name,code:void 0,flag:e.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.country.uuid)},profile:{latitude:e.profile.lat,longitude:e.profile.lng,capacity:e.profile.capacity},assets:e.url_thumb?{image:e.url_thumb}:void 0,providerRef:m.toProviderRefArray(e.uuid)}}function ae(e){return{entityType:"coach",id:e.id.toString(),name:e.name,slug:e.slug,birthdate:e.birthdate??void 0,country:{id:e.country.id.toString(),name:e.country.name,code:void 0,flag:e.country.url_flag??void 0,providerRef:m.toProviderRefArray(e.country.uuid)},assets:e.url_thumb?{photo:e.url_thumb}:void 0,providerRef:m.toProviderRefArray(e.uuid)}}function ce(e){switch(e.entity_type){case"tournament":return oe(e);case"player":return ne(e);case"team":return se(e);case"president":return ie(e);case"venue":return re(e);case"coach":return ae(e);default:throw new Error(`Unknown entity type: ${e.entity_type}`)}}async function le(e,o){if(!e.query||e.query.trim()==="")return{results:[],query:e.query||""};const t=o||m.getConfig(),{sportal365Sports:n}=t,s=e.entityTypes&&e.entityTypes.length>0?e.entityTypes:["tournament","player","team","president","venue","coach"],i=await m.footballHttp.get({path:"/search",params:{query:e.query.trim(),entity_type:s.join(","),language_code:e.languageCode??n?.languageCode??"en"},headers:{"Accept-Language":e.languageCode??n?.languageCode??"en"},next:e.next,config:t});return!i||i.length===0?{results:[],query:e.query}:{results:i.map(ce),query:e.query}}const de=m.createHttpClient(m.SPORTAL365_SPORTS_SEARCH_DOMAIN);function O(e){return{language:e.language,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0}}function R(e){if(!(!e||!e.url))return{url:e.url}}function G(e){if(e)return{id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,providerRef:e.id}}function W(e){return{entityType:"team",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:G(e.country),gender:e.gender,competitionIds:e.competition_ids,type:e.type,national:e.national,undecided:e.undecided,providerRef:e.id}}function z(e){return{entityType:"city",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:G(e.country),providerRef:e.id}}function ue(e){return{entityType:"horse",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:G(e.country),gender:e.gender,providerRef:e.id}}function me(e){return{entityType:"player",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:G(e.country),gender:e.gender,birthdate:e.birthdate??void 0,position:e.position??void 0,providerRef:e.id}}function fe(e){return{entityType:"coach",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:G(e.country),gender:e.gender,birthdate:e.birthdate??void 0,providerRef:e.id}}function ge(e){return{entityType:"referee",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:G(e.country),gender:e.gender,birthdate:e.birthdate??void 0,providerRef:e.id}}function pe(e){return{entityType:"venue",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:G(e.country),city:e.city?z(e.city):void 0,providerRef:e.id}}function ye(e){return{entityType:e.entity_type,id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:G(e.country),gender:e.gender,type:e.type??void 0,region:e.region??void 0,providerRef:e.id}}function he(e){return{entityType:"match",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,competitionId:e.competition_id??void 0,startTime:e.start_time??void 0,homeTeam:e.home_team?W(e.home_team):void 0,awayTeam:e.away_team?W(e.away_team):void 0,providerRef:e.id}}function Te(e){return{entityType:"country",id:e.id,legacyId:e.legacy_id??void 0,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0,translations:e.translations.map(O),displayAsset:R(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,providerRef:e.id}}function ve(e){switch(e.entity_type){case"team":return W(e);case"city":return z(e);case"horse":return ue(e);case"player":return me(e);case"coach":return fe(e);case"referee":return ge(e);case"venue":return pe(e);case"tournament":case"competition":return ye(e);case"match":return he(e);case"country":return Te(e);default:{const o=e;throw new Error(`Unknown entity type: ${o.entity_type}`)}}}async function Se(e={},o){const t=o??m.getConfig(),n={};e.name&&(n.name=e.name),e.entityTypes&&e.entityTypes.length>0&&(n.entity_type=e.entityTypes.join(",")),e.sports&&e.sports.length>0&&(n.sport=e.sports.join(",")),e.eventStartTime&&(n.event_start_time=e.eventStartTime),e.ids&&e.ids.length>0&&(n.ids=e.ids.join(",")),e.competitionIds&&e.competitionIds.length>0&&(n.competition_ids=e.competitionIds.join(",")),e.domain&&(n.domain=e.domain),e.inputLanguage&&(n.input_language=e.inputLanguage),e.translationLanguage&&(n.translation_language=e.translationLanguage),e.limit!==void 0&&(n.limit=e.limit.toString()),e.offset!==void 0&&(n.offset=e.offset.toString());const s=await de.get({path:"/suggest",params:n,next:e.next,config:t});return!s.results||s.results.length===0?{results:[],query:e.name}:{results:s.results.map(ve),query:e.name}}const _e=m.createHttpClient(m.SPORTAL365_STATISTICS_DOMAIN);function Ce(e,o){return{teamId:e.id,teamName:e.name,seasonId:o,statistics:e.statistics.map(t=>({key:t.id,value:t.value,label:t.name}))}}async function Ae(e,o){const t=o||m.getConfig(),n=e.next??{revalidate:600},s=await _e.get({path:"/statistics/aggregate",params:{participant_ids:e.teamId,season_ids:e.seasonId,participant_type:"TEAM"},next:n,config:t});if(!s.data||s.data.length===0)throw new Error(`No statistics found for team ${e.teamId} in season ${e.seasonId}`);return Ce(s.data[0],e.seasonId)}function Fe(e){const o=e.replace(/\/$/,"");function t(n){return`${o}${n}`}return{async get(n){const s=n.config||m.getConfig(),{fansUnited:i}=s;if(!i)throw new Error("Fans United configuration is missing. Add 'fansUnited' with 'apiKey' and 'clientId' to your config.");if(!i.apiKey||!i.clientId)throw new Error("Fans United configuration requires both 'apiKey' and 'clientId'");const r=new URL(t(n.path));if(r.searchParams.set("key",i.apiKey),r.searchParams.set("client_id",i.clientId),n.params)for(const[l,u]of Object.entries(n.params))u!==void 0&&(Array.isArray(u)?u.length>0&&r.searchParams.set(l,u.join(",")):r.searchParams.set(l,u));const d=await fetch(r.toString(),{method:"GET",headers:{Accept:"application/json","Content-Type":"application/json",...n.headers},signal:AbortSignal.timeout(3e4),...n.next&&{next:n.next}});if(!d.ok){let l=`Fans United API error: ${d.status} ${d.statusText}`;try{const u=await d.text();u&&(l+=` - ${u}`)}catch{}throw new Error(l)}return d.json()}}}const Oe="https://football.fansunitedapi.com",D=Fe(Oe);function Re(e){return{id:String(e.id),name:e.name,active:e.active,providerRef:[{provider:"fansunited",id:String(e.id)}]}}function Me(e){const o={id:String(e.id),name:e.name,shortName:e.short_name,slug:e.slug,type:e.type||"LEAGUE",region:e.region,gender:e.gender,providerRef:[{provider:"fansunited",id:String(e.id)}]};return e.country&&(o.country={id:String(e.country.id),name:e.country.name,code:e.country.code,flag:e.country.flag,providerRef:[{provider:"fansunited",id:String(e.country.id)}]}),e.logo&&(o.assets={logo:e.logo}),e.seasons&&e.seasons.length>0&&(o.seasons=e.seasons.map(Re)),e.current_season&&(o.season={id:String(e.current_season.id),name:e.current_season.name,status:e.current_season.active?"ACTIVE":"INACTIVE"}),o}function be(e){return e.map(Me)}async function Ne(e,o){const t={};e?.lang?t.lang=e.lang:t.lang="EN",e?.sortField&&(t.sort_field=e.sortField),e?.sortOrder&&(t.sort_order=e.sortOrder),e?.page!==void 0&&(t.page=String(e.page)),e?.perPage!==void 0&&(t.per_page=String(e.perPage)),e?.countryId!==void 0&&(t.country_id=String(e.countryId)),e?.active!==void 0&&(t.active=e.active?"1":"0");const n=await D.get({path:"/v1/competitions",params:t,config:o,next:e?.next});return be(n.data)}function Ge(e){return{id:e.id,name:e.name,code:e.country_code,assets:e.assets?.flag?{flag:e.assets.flag}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function De(e){return{id:e.id,name:e.name,type:e.type?.toUpperCase()||"LEAGUE",gender:e.gender?.toUpperCase(),country:e.country?Ge(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Ee(e){return De(e.data)}async function Pe(e,o,t){const n=t||m.getConfig(),s={};o?.lang&&(s.lang=o.lang);const i=await D.get({path:`/v1/competitions/${e}`,params:s,next:o?.next,config:n});return Ee(i)}function He(e){return{id:e.id,name:e.name,code:e.country_code,flag:e.assets?.flag,providerRef:[{provider:"fansunited",id:e.id}]}}function Ie(e){return{id:e.id,name:e.name,shortName:e.short_name||void 0,threeLetterCode:e.code,type:e.national?"national":"club",gender:e.gender?e.gender.toUpperCase():void 0,country:e.country?He(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,metadata:e.colors?{shirtColors:e.colors.primary?[{type:"home",colorCode:e.colors.primary}]:void 0}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function ke(e){return Ie(e.data)}async function Le(e,o,t){const n=t||m.getConfig(),s={};o?.lang&&(s.lang=o.lang);const i=await D.get({path:`/v1/teams/${e}`,params:s,next:o?.next,config:n});return ke(i)}function q(e){return{id:e.id,name:e.name,code:e.country_code,flag:e.assets?.flag,providerRef:[{provider:"fansunited",id:e.id}]}}function Ue(e){return{id:e.id,name:e.name,shortName:e.short_name??void 0,fullName:e.full_name??void 0,threeLetterCode:e.code,type:e.national?"national":"club",gender:e.gender?.toUpperCase(),country:e.country?q(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function $e(e){return{id:e.id,name:e.name,type:e.type?.toUpperCase()||"LEAGUE",gender:e.gender?.toUpperCase(),country:e.country?q(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function xe(e){return{type:"player",id:e.id,name:e.name,position:e.position,birthdate:e.birth_date,country:e.country?q(e.country):void 0,assets:e.assets?.headshot?{photo:e.assets.headshot}:void 0,teams:e.teams?.map(Ue),competitions:e.competitions?.map($e),providerRef:[{provider:"fansunited",id:e.id}]}}function Be(e){return xe(e.data)}async function We(e,o,t){const n=t||m.getConfig(),s={};o?.lang&&(s.lang=o.lang);const i=await D.get({path:`/v1/players/${e}`,params:s,next:o?.next,config:n});return Be(i)}function J(e){return{id:e.id,name:e.name,code:e.country_code,assets:e.assets?.flag?{flag:e.assets.flag}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function qe(e){return{id:e.id,name:e.name,type:e.type?.toUpperCase()||"LEAGUE",gender:e.gender?.toUpperCase(),country:e.country?J(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Ve(e){if(e.status){const i={notstarted:{code:"not_started",type:"NOT_STARTED",name:"Not Started"},live:{code:"live",type:"LIVE",name:"Live"},finished:{code:"finished",type:"FINISHED",name:"Finished"},postponed:{code:"postponed",type:"POSTPONED",name:"Postponed"},cancelled:{code:"cancelled",type:"CANCELLED",name:"Cancelled"},abandoned:{code:"abandoned",type:"ABANDONED",name:"Abandoned"}}[e.status.type];if(i)return i}let o="not_started",t="NOT_STARTED",n="Not Started";return e.finished_at?(o="finished",t="FINISHED",n="Finished"):e.started_at&&(o="live",t="LIVE",n="Live"),{code:o,name:n,type:t}}function je(e){return{kickoffTime:new Date(e.kickoff_at),currentMinute:e.minute??void 0,currentPeriod:void 0}}function j(e){return{id:e.id,name:e.name,shortName:e.short_name??void 0,fullName:e.full_name??void 0,threeLetterCode:e.code,type:e.national?"national":"club",gender:e.gender?.toUpperCase(),country:e.country?J(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Ke(e){if(!e)return;const o=n=>n?{competitorOne:n.home_goals!==null?String(n.home_goals):"0",competitorTwo:n.away_goals!==null?String(n.away_goals):"0"}:void 0,t=o(e.ft_score);if(t)return{competitorOne:t.competitorOne,competitorTwo:t.competitorTwo,breakdown:{total:t,halfTime:o(e.ht_score),regularTime:o(e.ft_score),extraTime:o(e.aet_score),penaltyShootout:o(e.pen_score)}}}function Q(e){return{id:e.id,status:Ve(e),timing:je(e),competitorOne:j(e.home_team),competitorTwo:j(e.away_team),score:Ke(e.scores),competition:e.context?.competition?qe(e.context.competition):void 0,lineupStatus:e.lineups_confirmed?"CONFIRMED":"NOT_AVAILABLE",updatedAt:e.updated_at?new Date(e.updated_at):void 0,isUndecided:e.undecided??void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Ye(e){return Q(e.data)}function ze(e){return e.data.map(Q)}async function Je(e,o,t){const n=t||m.getConfig(),s={};o?.lang&&(s.lang=o.lang);const i=await D.get({path:`/v1/matches/${e}`,params:s,next:o?.next,config:n});return Ye(i)}async function Qe(e,o){const t=o||m.getConfig(),n={};e?.lang&&(n.lang=e.lang),e?.competitions&&(n.competitions=e.competitions),e?.countries&&(n.countries=e.countries),e?.fromDate&&(n.from_date=e.fromDate),e?.toDate&&(n.to_date=e.toDate),e?.matches&&(n.matches=e.matches),e?.teams&&(n.teams=e.teams),e?.status&&(n.status=e.status),e?.limit!==void 0&&(n.limit=String(e.limit)),e?.page!==void 0&&(n.page=String(e.page)),e?.sortField&&(n.sort_field=e.sortField),e?.sortOrder&&(n.sort_order=e.sortOrder),e?.showDeleted!==void 0&&(n.show_deleted=e.showDeleted?"true":"false");const s=await D.get({path:"/v1/matches",params:n,next:e?.next,config:t});return ze(s)}function V(e){return{id:e.id,name:e.name,code:e.country_code,flag:e.assets?.flag||void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Xe(e){return{id:e.id,name:e.name,shortName:e.short_name||void 0,type:e.type||"LEAGUE",region:e.region,gender:e.gender?.toUpperCase(),country:e.country?V(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Ze(e){return{type:"player",id:e.id,name:e.name,position:e.position||void 0,gender:e.gender?.toUpperCase(),birthdate:e.birthdate||void 0,country:e.country?V(e.country):void 0,assets:e.assets?.photo?{photo:e.assets.photo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function we(e){return{type:e.national?"national":"club",id:e.id,name:e.name,shortName:e.short_name||void 0,threeLetterCode:e.code||void 0,gender:e.gender?.toUpperCase(),country:e.country?V(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function B(e){switch(e.entity_type){case"competition":{const o=Xe(e);return{source:"FOOTBALL",entityType:"competition",entityId:e.id,entityData:o}}case"player":{const o=Ze(e);return{source:"FOOTBALL",entityType:"player",entityId:e.id,entityData:o}}case"team":{const o=we(e);return{source:"FOOTBALL",entityType:"team",entityId:e.id,entityData:o}}case"venue":case"coach":return null;default:throw new Error(`Unknown entity type: ${e.entity_type}`)}}async function et(e,o){if(!e.query||e.query.trim()==="")return[];const t=o||m.getConfig(),n={q:e.query.trim()},i=(e.entityTypes&&e.entityTypes.length>0?e.entityTypes:["competition","team","player"]).map(d=>{switch(d){case"team":return"teams";case"player":return"players";case"competition":return"competitions";default:return d}});n.entities=i.join(","),e.lang&&(n.lang=e.lang),e.limit&&(n.limit=String(e.limit));const r=await D.get({path:"/v1/search",params:n,next:e.next,config:t}),a=[];return r.data&&(r.data.competitions&&r.data.competitions.forEach(d=>{const l=B({...d,entity_type:"competition"});l&&a.push(l)}),r.data.teams&&r.data.teams.forEach(d=>{const l=B({...d,entity_type:"team"});l&&a.push(l)}),r.data.players&&r.data.players.forEach(d=>{const l=B({...d,entity_type:"player"});l&&a.push(l)})),a}function tt(e){return!e.seasons||e.seasons.length===0?void 0:e.seasons.find(t=>t.active)??e.seasons[0]}function ot(e,o){const t=new Date,n=o.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="NOT_STARTED",a=new Date(s.timing.kickoffTime)>=t;return i&&r&&a});return n.sort((s,i)=>new Date(s.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime()),n[0]}function nt(e,o){const t=new Date,n=o.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="FINISHED",a=new Date(s.timing.kickoffTime)<=t;return i&&r&&a});return n.sort((s,i)=>new Date(i.timing.kickoffTime).getTime()-new Date(s.timing.kickoffTime).getTime()),n[0]}function st(e,o){const t=new Date;return o.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="NOT_STARTED"||s.status.type==="LIVE",a=new Date(s.timing.kickoffTime)>=t||s.status.type==="LIVE";return i&&r&&a}).sort((s,i)=>new Date(s.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime())}function it(e,o){const t=new Date;return o.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="FINISHED",a=new Date(s.timing.kickoffTime)<=t;return i&&r&&a}).sort((s,i)=>new Date(i.timing.kickoffTime).getTime()-new Date(s.timing.kickoffTime).getTime())}function rt(e,o,t){const n=t.filter(r=>r.status.type==="FINISHED"),s=t.filter(r=>r.status.type==="NOT_STARTED"||r.status.type==="POSTPONED"),i=o.entries.map(r=>{const a=r.competitor.id,d=n.filter(f=>f.competitorOne.id===e&&f.competitorTwo.id===a||f.competitorOne.id===a&&f.competitorTwo.id===e),l=s.filter(f=>f.competitorOne.id===e&&f.competitorTwo.id===a||f.competitorOne.id===a&&f.competitorTwo.id===e);let u,c;return d.forEach(f=>{const p=f.competitorOne.id===e,y=parseInt(f.score?.competitorOne??"0"),T=parseInt(f.score?.competitorTwo??"0"),M=p?y:T,C=p?T:y;let F;M>C?F="W":M===C?F="D":F="L";const b={result:F,score:`${y} - ${T}`,date:f.timing.kickoffTime,matchId:f.id,isUpcoming:!1};p?u=b:c=b}),l.forEach(f=>{const p=f.competitorOne.id===e;p&&!u?u={date:f.timing.kickoffTime,matchId:f.id,isUpcoming:!0}:!p&&!c&&(c={date:f.timing.kickoffTime,matchId:f.id,isUpcoming:!0})}),{rank:r.rank,teamId:r.competitor.id,teamName:r.competitor.name,teamShortName:r.competitor.shortName,teamLogo:r.competitor.logo,gamesPlayed:r.stats.played??0,points:r.stats.points??0,homeResult:u,awayResult:c}});return{teamId:e,rows:i}}function at(e,o=10){return e.players.filter(t=>(t.seasonStatistics?.goals??0)>0).sort((t,n)=>{const s=t.seasonStatistics?.goals??0,i=n.seasonStatistics?.goals??0;if(i!==s)return i-s;const r=t.seasonStatistics?.assists??0;return(n.seasonStatistics?.assists??0)-r}).slice(0,o)}function ct(e,o=10){return e.players.filter(t=>(t.seasonStatistics?.assists??0)>0).sort((t,n)=>{const s=t.seasonStatistics?.assists??0,i=n.seasonStatistics?.assists??0;if(i!==s)return i-s;const r=t.seasonStatistics?.goals??0;return(n.seasonStatistics?.goals??0)-r}).slice(0,o)}function lt(e,o=10){return e.players.filter(t=>(t.seasonStatistics?.appearances??0)>0).sort((t,n)=>{const s=t.seasonStatistics?.appearances??0,i=n.seasonStatistics?.appearances??0;if(i!==s)return i-s;const r=t.seasonStatistics?.minutes??0;return(n.seasonStatistics?.minutes??0)-r}).slice(0,o)}function dt(e,o=10){return e.players.filter(t=>(t.seasonStatistics?.minutes??0)>0).sort((t,n)=>{const s=t.seasonStatistics?.minutes??0,i=n.seasonStatistics?.minutes??0;if(i!==s)return i-s;const r=t.seasonStatistics?.appearances??0;return(n.seasonStatistics?.appearances??0)-r}).slice(0,o)}function ut(e,o=10){return e.players.filter(t=>(t.seasonStatistics?.cleansheets??0)>0).sort((t,n)=>{const s=t.seasonStatistics?.cleansheets??0,i=n.seasonStatistics?.cleansheets??0;if(i!==s)return i-s;const r=t.seasonStatistics?.appearances??0;return(n.seasonStatistics?.appearances??0)-r}).slice(0,o)}function mt(e,o=10){return e.players.filter(t=>{const n=t.seasonStatistics?.yellowCards??0,s=t.seasonStatistics?.redCards??0;return n+s>0}).sort((t,n)=>{const s=t.seasonStatistics?.yellowCards??0,i=t.seasonStatistics?.redCards??0,r=n.seasonStatistics?.yellowCards??0,a=n.seasonStatistics?.redCards??0,d=s+i*3,l=r+a*3;return l!==d?l-d:a!==i?a-i:r-s}).slice(0,o)}const X=["GOAL","PENALTY_GOAL","OWN_GOAL"];function A(e,o){return o>0?e/o*100:0}function H(e,o){return o>0?e/o:0}function ft(e,o=!1,t=2){return o?`${Math.round(e)}%`:Number.isInteger(e)?e.toString():e.toFixed(t)}function gt(e,o){const t=typeof e=="string"?parseFloat(e):e;if(isNaN(t)||o===0)return"0";const n=(t/o).toFixed(1);return`${t} (${n} avg)`}function pt(e,o){const t=typeof e=="string"?parseFloat(e):e;return isNaN(t)||o===0?"0.0":(t/o).toFixed(1)}function yt(e){const o=parseFloat(e);return isNaN(o)?"0%":`${Math.round(o)}%`}function Z(e,o,t){if(e.status?.type!=="FINISHED"||!e.score)return null;const n=parseInt(e.score.competitorOne||"0"),s=parseInt(e.score.competitorTwo||"0"),i=t?n:s,r=t?s:n;let a=null,d=null;const l=e.score.breakdown?.halfTime;if(l){const p=parseInt(l.competitorOne||"0"),y=parseInt(l.competitorTwo||"0");a=t?p:y,d=t?y:p}const u=e.statistics;let c=null,f=null;if(u){const p=u.find?.(y=>y.type==="CORNERS");p&&(c=t?p.competitorOne:p.competitorTwo,f=t?p.competitorTwo:p.competitorOne)}return{goalsFor:i,goalsAgainst:r,halfTimeGoalsFor:a,halfTimeGoalsAgainst:d,cornersFor:c,cornersAgainst:f,isWin:i>r,isDraw:i===r,isLoss:i<r}}function x(e,o){return e.competitorOne.id===o}function w(e,o){return e.competitorTwo.id===o}function ht(e,o){return x(e,o)||w(e,o)}function Tt(e){return e.status?.type==="FINISHED"}function vt(e,o){const t=x(e,o);return parseInt(t?e.score?.competitorOne||"0":e.score?.competitorTwo||"0")}function St(e,o){const t=x(e,o);return parseInt(t?e.score?.competitorTwo||"0":e.score?.competitorOne||"0")}function _t(e,o,t){const n=e.filter(u=>{if(u.status?.type!=="FINISHED"||!u.score)return!1;const c=u.competitorOne.id===o||u.competitorTwo.id===o,f=u.competitorOne.id===t||u.competitorTwo.id===t;return c&&f});let s=0,i=0,r=0,a=0,d=0;n.forEach(u=>{const c=parseInt(u.score?.competitorOne||"0"),f=parseInt(u.score?.competitorTwo||"0"),p=u.competitorOne.id===o,y=p?c:f,T=p?f:c;a+=y,d+=T,y>T?s++:T>y?i++:r++});const l=n.length;return{totalMatches:l,homeTeamWins:s,awayTeamWins:i,draws:r,homeTeamGoals:a,awayTeamGoals:d,homeTeamWinPercentage:l>0?s/l*100:0,awayTeamWinPercentage:l>0?i/l*100:0,drawPercentage:l>0?r/l*100:0,homeTeamAvgGoals:l>0?a/l:0,awayTeamAvgGoals:l>0?d/l:0}}function Ct(e,o,t,n=5){return e.filter(i=>{if(i.status?.type!=="FINISHED"||!i.score)return!1;const r=i.competitorOne.id===o||i.competitorTwo.id===o,a=i.competitorOne.id===t||i.competitorTwo.id===t;return r&&a}).sort((i,r)=>new Date(r.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime()).slice(0,n).map(i=>{const r=parseInt(i.score?.competitorOne||"0"),a=parseInt(i.score?.competitorTwo||"0"),d=i.competitorOne.id===o,l=d?r:a,u=d?a:r;let c;return l>u?c="home":u>l?c="away":c="draw",{id:i.id,date:new Date(i.timing.kickoffTime).toLocaleDateString("en-GB",{day:"numeric",month:"short",year:"numeric"}),homeTeamName:i.competitorOne.name,awayTeamName:i.competitorTwo.name,homeTeamLogo:i.competitorOne.assets?.logo,awayTeamLogo:i.competitorTwo.assets?.logo,homeScore:r,awayScore:a,venue:i.venue?.name,winner:c}})}function At(e,o,t){return e.filter(n=>{const s=n.competitorOne.id===o,i=n.competitorTwo.id===o;return!s&&!i?!1:t==="home"?s:i}).map(n=>{const s=n.competitorOne.id===o;return Z(n,o,s)}).filter(n=>n!==null)}function K(e,o,t,n){let s=0;for(const i of e){const r=i.competitorOne.id===o,a=i.competitorTwo.id===o;if(!r&&!a||t==="home"&&!r||t==="away"&&!a||i.status?.type!=="FINISHED")continue;const d=i.mainEvents;if(!d||!Array.isArray(d))continue;const l=d.filter(y=>y.type&&X.includes(y.type)).sort((y,T)=>{const M=y.minute??0,C=T.minute??0;return M!==C?M-C:(y.injuryMinute??0)-(T.injuryMinute??0)});if(l.length===0)continue;const u=l[0],c=r?"ONE":"TWO",f=u.type==="OWN_GOAL";let p;f?p=u.competitorPosition!==c:p=u.competitorPosition===c,(n==="scored"&&p||n==="conceded"&&!p)&&s++}return s}function Ft(e,o,t){let n=0;for(const s of e){const i=s.competitorOne.id===o,r=s.competitorTwo.id===o;if(!i&&!r||t==="home"&&!i||t==="away"&&!r||s.status?.type!=="FINISHED")continue;const a=s.mainEvents;a&&Array.isArray(a)&&n++}return n}function Ot(e,o,t){const n=At(e,o,t),s=n.length;if(s===0)return{played:0,goalsForPerMatch:0,cleanSheets:0,wonToNil:0,scoringRate:0,scoredInBothHalves:0,scoredFirst:0,leadingAtHalfTime:0,goalsAgainstPerMatch:0,failedToScore:0,lostToNil:0,concedingRate:0,concededInBothHalves:0,concededFirst:0,losingAtHalfTime:0,avgCornersFor:0,avgCornersAgainst:0};const i=n.reduce((g,S)=>g+S.goalsFor,0),r=n.reduce((g,S)=>g+S.goalsAgainst,0),a=n.filter(g=>g.goalsAgainst===0).length,d=n.filter(g=>g.isWin&&g.goalsAgainst===0).length,l=n.filter(g=>g.goalsFor>0).length,u=n.filter(g=>g.goalsFor===0).length,c=n.filter(g=>g.isLoss&&g.goalsFor===0).length,f=n.filter(g=>g.goalsAgainst>0).length,p=n.filter(g=>g.halfTimeGoalsFor!==null),y=p.length,T=p.filter(g=>{const S=g.halfTimeGoalsFor,P=g.goalsFor-S;return S>0&&P>0}).length,M=K(e,o,t,"scored"),C=Ft(e,o,t),F=p.filter(g=>g.halfTimeGoalsFor>g.halfTimeGoalsAgainst).length,b=p.filter(g=>{const S=g.halfTimeGoalsAgainst,P=g.goalsAgainst-S;return S>0&&P>0}).length,k=K(e,o,t,"conceded"),L=p.filter(g=>g.halfTimeGoalsAgainst>g.halfTimeGoalsFor).length,E=n.filter(g=>g.cornersFor!==null),U=E.reduce((g,S)=>g+(S.cornersFor||0),0),$=E.reduce((g,S)=>g+(S.cornersAgainst||0),0);return{played:s,goalsForPerMatch:H(i,s),cleanSheets:A(a,s),wonToNil:A(d,s),scoringRate:A(l,s),scoredInBothHalves:A(T,y),scoredFirst:A(M,C),leadingAtHalfTime:A(F,y),goalsAgainstPerMatch:H(r,s),failedToScore:A(u,s),lostToNil:A(c,s),concedingRate:A(f,s),concededInBothHalves:A(b,y),concededFirst:A(k,C),losingAtHalfTime:A(L,y),avgCornersFor:H(U,E.length),avgCornersAgainst:H($,E.length)}}function Rt(e,o){return e.filter(t=>t.status?.type!=="FINISHED"?!1:t.competitorOne.id===o||t.competitorTwo.id===o).map(t=>{const n=t.competitorOne.id===o,s=parseInt(t.score?.competitorOne||"0"),i=parseInt(t.score?.competitorTwo||"0"),r=s+i,a=t.periods;let d=null;if(a&&Array.isArray(a)){const l=a.find(u=>u.type==="FIRST_HALF"||u.type==="1ST_HALF");if(l?.score){const u=parseInt(l.score.competitorOne||"0"),c=parseInt(l.score.competitorTwo||"0");d=u+c}}return{totalGoals:r,halfTimeGoals:d,isHome:n}})}function h(e,o){return e.length===0?0:e.filter(n=>n>o).length/e.length*100}function Mt(e,o){const t=Rt(e,o),n=t.filter(c=>c.isHome),s=t.filter(c=>!c.isHome),i=t.map(c=>c.totalGoals),r=n.map(c=>c.totalGoals),a=s.map(c=>c.totalGoals),d=t.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals),l=n.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals),u=s.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals);return{over05:{home:h(r,.5),total:h(i,.5),away:h(a,.5)},over15:{home:h(r,1.5),total:h(i,1.5),away:h(a,1.5)},over25:{home:h(r,2.5),total:h(i,2.5),away:h(a,2.5)},over35:{home:h(r,3.5),total:h(i,3.5),away:h(a,3.5)},over45:{home:h(r,4.5),total:h(i,4.5),away:h(a,4.5)},over55:{home:h(r,5.5),total:h(i,5.5),away:h(a,5.5)},over05HT:{home:h(l,.5),total:h(d,.5),away:h(u,.5)},over15HT:{home:h(l,1.5),total:h(d,1.5),away:h(u,1.5)},over25HT:{home:h(l,2.5),total:h(d,2.5),away:h(u,2.5)}}}function ee(e,o){const t=e.competitorOne.id===o,n=e.competitorTwo.id===o;if(!t&&!n||!e.score)return null;const s=parseInt(t?e.score.competitorOne||"0":e.score.competitorTwo||"0"),i=parseInt(t?e.score.competitorTwo||"0":e.score.competitorOne||"0");let r;return s>i?r="W":s<i?r="L":r="D",{result:{score:`${s}:${i}`,result:r,isHome:t},isHome:t}}function bt(e,o,t,n,s,i){const r=o?.entries.find(N=>N.competitor.id===e),a=t?.entries.find(N=>N.competitor.id===e),d=n?.entries.find(N=>N.competitor.id===e),l=s?.entries.find(N=>N.competitor.id===e),u=i?.entries.find(N=>N.competitor.id===e);if(!r)return null;const c=a?.stats?.goalsFor??0,f=d?.stats?.goalsFor??0,p=r?.stats?.goalsFor??0,y=l?.stats?.goalsAgainst??0,T=u?.stats?.goalsAgainst??0,M=r?.stats?.goalsAgainst??0,C=a?.stats?.played??0,F=d?.stats?.played??0,b=r?.stats?.played??0,k=b>0?p/b:0,L=b>0?M/b:0,E=k+L,U=C>0?c/C:0,$=F>0?f/F:0,g=C>0?y/C:0,S=F>0?T/F:0,P=U+g,te=$+S;return{homeGoals:c,totalGoals:p,awayGoals:f,homeGamesPlayed:C,awayGamesPlayed:F,totalGamesPlayed:b,homeGoalsConceded:y,totalGoalsConceded:M,awayGoalsConceded:T,gfPerMatch:k,gaPerMatch:L,gfGaPerMatch:E,homeGfPerMatch:U,awayGfPerMatch:$,homeGaPerMatch:g,awayGaPerMatch:S,homeGfGaPerMatch:P,awayGfGaPerMatch:te}}function _(e,o,t,n){const s=e.filter(r=>{const a=r.competitorOne.id===o,d=r.competitorTwo.id===o;return!(!a&&!d||r.status?.type!=="FINISHED"||n==="home"&&!a||n==="away"&&!d)}).sort((r,a)=>new Date(a.timing.kickoffTime).getTime()-new Date(r.timing.kickoffTime).getTime());if(s.length===0)return null;let i=0;for(const r of s){const a=r.competitorOne.id===o;if(t(r,o,a))i++;else break}return i>0?i:null}const v={win:(e,o,t)=>{const n=parseInt(t?e.score?.competitorOne||"0":e.score?.competitorTwo||"0"),s=parseInt(t?e.score?.competitorTwo||"0":e.score?.competitorOne||"0");return n>s},draw:e=>e.score?.competitorOne===e.score?.competitorTwo,loss:(e,o,t)=>{const n=parseInt(t?e.score?.competitorOne||"0":e.score?.competitorTwo||"0"),s=parseInt(t?e.score?.competitorTwo||"0":e.score?.competitorOne||"0");return n<s},noWin:(e,o,t)=>!v.win(e,o,t),noDraw:e=>!v.draw(e),noDefeat:(e,o,t)=>!v.loss(e,o,t),scored:(e,o,t)=>parseInt(t?e.score?.competitorOne||"0":e.score?.competitorTwo||"0")>=1,conceded:(e,o,t)=>parseInt(t?e.score?.competitorTwo||"0":e.score?.competitorOne||"0")>=1,noGoalScored:(e,o,t)=>!v.scored(e,o,t),noGoalConceded:(e,o,t)=>!v.conceded(e,o,t),over25:e=>parseInt(e.score?.competitorOne||"0")+parseInt(e.score?.competitorTwo||"0")>2,under25:e=>parseInt(e.score?.competitorOne||"0")+parseInt(e.score?.competitorTwo||"0")<3,scoredTwice:(e,o,t)=>parseInt(t?e.score?.competitorOne||"0":e.score?.competitorTwo||"0")>=2,concededTwice:(e,o,t)=>parseInt(t?e.score?.competitorTwo||"0":e.score?.competitorOne||"0")>=2};function I(e,o,t){return{win:_(e,o,v.win,t),draw:_(e,o,v.draw,t),loss:_(e,o,v.loss,t),noWin:_(e,o,v.noWin,t),noDraw:_(e,o,v.noDraw,t),noDefeat:_(e,o,v.noDefeat,t),scored:_(e,o,v.scored,t),conceded:_(e,o,v.conceded,t),noGoalScored:_(e,o,v.noGoalScored,t),noGoalConceded:_(e,o,v.noGoalConceded,t),over25:_(e,o,v.over25,t),under25:_(e,o,v.under25,t),scoredTwice:_(e,o,v.scoredTwice,t),concededTwice:_(e,o,v.concededTwice,t)}}function Nt(e,o,t){const n=I(e,o,"home"),s=I(e,o),i=I(e,t,"away"),r=I(e,t);return[{label:"Consecutive wins",homeTeam:{home:n.win,total:s.win},awayTeam:{total:r.win,home:i.win},colorType:"neutral"},{label:"Consecutive draws",homeTeam:{home:n.draw,total:s.draw},awayTeam:{total:r.draw,home:i.draw},colorType:"neutral"},{label:"Consecutive defeats",homeTeam:{home:n.loss,total:s.loss},awayTeam:{total:r.loss,home:i.loss},colorType:"neutral"},{label:"No win",homeTeam:{home:n.noWin,total:s.noWin},awayTeam:{total:r.noWin,home:i.noWin},colorType:"negative"},{label:"No draw",homeTeam:{home:n.noDraw,total:s.noDraw},awayTeam:{total:r.noDraw,home:i.noDraw},colorType:"neutral"},{label:"No defeat",homeTeam:{home:n.noDefeat,total:s.noDefeat},awayTeam:{total:r.noDefeat,home:i.noDefeat},colorType:"positive"},{label:"Scored at least once",homeTeam:{home:n.scored,total:s.scored},awayTeam:{total:r.scored,home:i.scored},colorType:"positive"},{label:"Conceded at least once",homeTeam:{home:n.conceded,total:s.conceded},awayTeam:{total:r.conceded,home:i.conceded},colorType:"negative"},{label:"No goal scored",homeTeam:{home:n.noGoalScored,total:s.noGoalScored},awayTeam:{total:r.noGoalScored,home:i.noGoalScored},colorType:"neutral"},{label:"No goal conceded",homeTeam:{home:n.noGoalConceded,total:s.noGoalConceded},awayTeam:{total:r.noGoalConceded,home:i.noGoalConceded},colorType:"neutral"},{label:"GS + GC over 2.5",homeTeam:{home:n.over25,total:s.over25},awayTeam:{total:r.over25,home:i.over25},colorType:"neutral"},{label:"GS + GC under 2.5",homeTeam:{home:n.under25,total:s.under25},awayTeam:{total:r.under25,home:i.under25},colorType:"neutral"},{label:"Scored at least twice",homeTeam:{home:n.scoredTwice,total:s.scoredTwice},awayTeam:{total:r.scoredTwice,home:i.scoredTwice},colorType:"positive"},{label:"Conceded at least twice",homeTeam:{home:n.concededTwice,total:s.concededTwice},awayTeam:{total:r.concededTwice,home:i.concededTwice},colorType:"negative"}]}function Y(e,o){const t=new Map;return e.forEach(n=>{if(n.status?.type!=="FINISHED")return;const s=ee(n,o);if(!s)return;const i=s.isHome?n.competitorTwo.id:n.competitorOne.id,r=s.isHome?n.competitorTwo:n.competitorOne,a=t.get(i)||{opponentId:i,opponentName:r.name,opponentLogo:r.assets?.logo};s.isHome?a.homeResult=s.result:a.awayResult=s.result,t.set(i,a)}),t}function Gt(e,o,t,n,s,i,r){const a=Y(e,o),d=Y(e,t),l=new Set([...a.keys(),...d.keys(),o,t]),u=[];return l.forEach(c=>{const f=a.get(c),p=d.get(c);if(!f&&!p&&c!==o&&c!==t)return;let y,T;c===o?(y=n,T=i):c===t?(y=s,T=r):(y=f?.opponentName||p?.opponentName||"",T=f?.opponentLogo||p?.opponentLogo),u.push({opponentId:c,opponentName:y,opponentLogo:T,homeTeamHome:f?.homeResult,homeTeamAway:f?.awayResult,awayTeamHome:p?.homeResult,awayTeamAway:p?.awayResult,isHomeTeamRow:c===o,isAwayTeamRow:c===t})}),u.sort((c,f)=>c.isHomeTeamRow?-1:f.isHomeTeamRow?1:c.isAwayTeamRow?-1:f.isAwayTeamRow?1:c.opponentName.localeCompare(f.opponentName))}exports.addProviderRef=m.addProviderRef;exports.getConfig=m.getConfig;exports.getFootballCompetition=m.getFootballCompetition;exports.getFootballMatch=m.getFootballMatch;exports.getFootballMatchCommentary=m.getFootballMatchCommentary;exports.getFootballMatchEvents=m.getFootballMatchEvents;exports.getFootballMatchLineups=m.getFootballMatchLineups;exports.getFootballMatchOdds=m.getFootballMatchOdds;exports.getFootballMatchStatistics=m.getFootballMatchStatistics;exports.getFootballMatches=m.getFootballMatches;exports.getFootballPlayerSeasonStatistics=m.getFootballPlayerSeasonStatistics;exports.getFootballSeasonDetails=m.getFootballSeasonDetails;exports.getFootballStandings=m.getFootballStandings;exports.getFootballTeam=m.getFootballTeam;exports.getFootballTeamSquad=m.getFootballTeamSquad;exports.getProviderRefId=m.getProviderRefId;exports.isConfigured=m.isConfigured;exports.setConfig=m.setConfig;exports.toProviderRefArray=m.toProviderRefArray;exports.GOAL_EVENT_TYPES=X;exports.analyzeMatch=Z;exports.calcAverage=H;exports.calcPercentage=A;exports.calculateH2HStats=_t;exports.calculateStreak=_;exports.formatAsAverage=pt;exports.formatPossessionPercentage=yt;exports.formatStatValue=ft;exports.formatWithAverage=gt;exports.getActiveSeason=tt;exports.getFansUnitedFootballCompetition=Pe;exports.getFansUnitedFootballCompetitions=Ne;exports.getFansUnitedFootballMatch=Je;exports.getFansUnitedFootballMatches=Qe;exports.getFansUnitedFootballPlayer=We;exports.getFansUnitedFootballSearch=et;exports.getFansUnitedFootballTeam=Le;exports.getMatchResult=ee;exports.getOpponentScore=St;exports.getRecentH2HMeetings=Ct;exports.getTeamFinishedMatches=it;exports.getTeamGoalStats=bt;exports.getTeamHomeAwayStats=Ot;exports.getTeamMostDecorated=mt;exports.getTeamNextMatch=ot;exports.getTeamOverUnderStats=Mt;exports.getTeamPreviousMatch=nt;exports.getTeamResultsTable=rt;exports.getTeamScore=vt;exports.getTeamSeasonStatistics=Ae;exports.getTeamStreaks=I;exports.getTeamStreaksComparison=Nt;exports.getTeamTopAppearances=lt;exports.getTeamTopAssisters=ct;exports.getTeamTopCleanSheets=ut;exports.getTeamTopMinutesPlayed=dt;exports.getTeamTopScorers=at;exports.getTeamUpcomingMatches=st;exports.getTeamsCommonOpponents=Gt;exports.isMatchFinished=Tt;exports.isTeamAway=w;exports.isTeamHome=x;exports.isTeamInMatch=ht;exports.search=Se;exports.searchFootball=le;exports.streakFilters=v;
|