fansunited-data-layer 0.5.1 → 0.5.2

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":"http.d.ts","sourceRoot":"","sources":["../../../src/lib/api/sportal365-sports/http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5B,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC3B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,kEAAkE;IAClE,MAAM,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACjC;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CA+DrE"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/lib/api/sportal365-sports/http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5B,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC3B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,kEAAkE;IAClE,MAAM,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACjC;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAoGrE"}
package/client.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("react"),Z=require("./index-C7ZA8KMC.cjs");var et={exports:{}},Ge={};var ma;function bs(){if(ma)return Ge;ma=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function a(i,s,r){var n=null;if(r!==void 0&&(n=""+r),s.key!==void 0&&(n=""+s.key),"key"in s){r={};for(var o in s)o!=="key"&&(r[o]=s[o])}else r=s;return s=r.ref,{$$typeof:e,type:i,key:n,ref:s!==void 0?s:null,props:r}}return Ge.Fragment=t,Ge.jsx=a,Ge.jsxs=a,Ge}var $e={};var ga;function Ps(){return ga||(ga=1,process.env.NODE_ENV!=="production"&&(function(){function e(w){if(w==null)return null;if(typeof w=="function")return w.$$typeof===P?null:w.displayName||w.name||null;if(typeof w=="string")return w;switch(w){case b:return"Fragment";case A:return"Profiler";case I:return"StrictMode";case g:return"Suspense";case f:return"SuspenseList";case C:return"Activity"}if(typeof w=="object")switch(typeof w.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),w.$$typeof){case v:return"Portal";case $:return w.displayName||"Context";case F:return(w._context.displayName||"Context")+".Consumer";case D:var R=w.render;return w=w.displayName,w||(w=R.displayName||R.name||"",w=w!==""?"ForwardRef("+w+")":"ForwardRef"),w;case y:return R=w.displayName||null,R!==null?R:e(w.type)||"Memo";case T:R=w._payload,w=w._init;try{return e(w(R))}catch{}}return null}function t(w){return""+w}function a(w){try{t(w);var R=!1}catch{R=!0}if(R){R=console;var M=R.error,N=typeof Symbol=="function"&&Symbol.toStringTag&&w[Symbol.toStringTag]||w.constructor.name||"Object";return M.call(R,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",N),t(w)}}function i(w){if(w===b)return"<>";if(typeof w=="object"&&w!==null&&w.$$typeof===T)return"<...>";try{var R=e(w);return R?"<"+R+">":"<...>"}catch{return"<...>"}}function s(){var w=k.A;return w===null?null:w.getOwner()}function r(){return Error("react-stack-top-frame")}function n(w){if(U.call(w,"key")){var R=Object.getOwnPropertyDescriptor(w,"key").get;if(R&&R.isReactWarning)return!1}return w.key!==void 0}function o(w,R){function M(){re||(re=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",R))}M.isReactWarning=!0,Object.defineProperty(w,"key",{get:M,configurable:!0})}function l(){var w=e(this.type);return ae[w]||(ae[w]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),w=this.props.ref,w!==void 0?w:null}function c(w,R,M,N,ne,ve){var G=M.ref;return w={$$typeof:_,type:w,key:R,props:M,_owner:N},(G!==void 0?G:null)!==null?Object.defineProperty(w,"ref",{enumerable:!1,get:l}):Object.defineProperty(w,"ref",{enumerable:!1,value:null}),w._store={},Object.defineProperty(w._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(w,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(w,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:ne}),Object.defineProperty(w,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:ve}),Object.freeze&&(Object.freeze(w.props),Object.freeze(w)),w}function d(w,R,M,N,ne,ve){var G=R.children;if(G!==void 0)if(N)if(q(G)){for(N=0;N<G.length;N++)p(G[N]);Object.freeze&&Object.freeze(G)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else p(G);if(U.call(R,"key")){G=e(w);var K=Object.keys(R).filter(function(Ne){return Ne!=="key"});N=0<K.length?"{key: someKey, "+K.join(": ..., ")+": ...}":"{key: someKey}",J[G+N]||(K=0<K.length?"{"+K.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("react"),Z=require("./index-BWAwKR8L.cjs");var et={exports:{}},Ge={};var ma;function bs(){if(ma)return Ge;ma=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function a(i,s,r){var n=null;if(r!==void 0&&(n=""+r),s.key!==void 0&&(n=""+s.key),"key"in s){r={};for(var o in s)o!=="key"&&(r[o]=s[o])}else r=s;return s=r.ref,{$$typeof:e,type:i,key:n,ref:s!==void 0?s:null,props:r}}return Ge.Fragment=t,Ge.jsx=a,Ge.jsxs=a,Ge}var $e={};var ga;function Ps(){return ga||(ga=1,process.env.NODE_ENV!=="production"&&(function(){function e(w){if(w==null)return null;if(typeof w=="function")return w.$$typeof===P?null:w.displayName||w.name||null;if(typeof w=="string")return w;switch(w){case b:return"Fragment";case A:return"Profiler";case I:return"StrictMode";case g:return"Suspense";case f:return"SuspenseList";case C:return"Activity"}if(typeof w=="object")switch(typeof w.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),w.$$typeof){case v:return"Portal";case $:return w.displayName||"Context";case F:return(w._context.displayName||"Context")+".Consumer";case D:var R=w.render;return w=w.displayName,w||(w=R.displayName||R.name||"",w=w!==""?"ForwardRef("+w+")":"ForwardRef"),w;case y:return R=w.displayName||null,R!==null?R:e(w.type)||"Memo";case T:R=w._payload,w=w._init;try{return e(w(R))}catch{}}return null}function t(w){return""+w}function a(w){try{t(w);var R=!1}catch{R=!0}if(R){R=console;var M=R.error,N=typeof Symbol=="function"&&Symbol.toStringTag&&w[Symbol.toStringTag]||w.constructor.name||"Object";return M.call(R,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",N),t(w)}}function i(w){if(w===b)return"<>";if(typeof w=="object"&&w!==null&&w.$$typeof===T)return"<...>";try{var R=e(w);return R?"<"+R+">":"<...>"}catch{return"<...>"}}function s(){var w=k.A;return w===null?null:w.getOwner()}function r(){return Error("react-stack-top-frame")}function n(w){if(U.call(w,"key")){var R=Object.getOwnPropertyDescriptor(w,"key").get;if(R&&R.isReactWarning)return!1}return w.key!==void 0}function o(w,R){function M(){re||(re=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",R))}M.isReactWarning=!0,Object.defineProperty(w,"key",{get:M,configurable:!0})}function l(){var w=e(this.type);return ae[w]||(ae[w]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),w=this.props.ref,w!==void 0?w:null}function c(w,R,M,N,ne,ve){var G=M.ref;return w={$$typeof:_,type:w,key:R,props:M,_owner:N},(G!==void 0?G:null)!==null?Object.defineProperty(w,"ref",{enumerable:!1,get:l}):Object.defineProperty(w,"ref",{enumerable:!1,value:null}),w._store={},Object.defineProperty(w._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(w,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(w,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:ne}),Object.defineProperty(w,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:ve}),Object.freeze&&(Object.freeze(w.props),Object.freeze(w)),w}function d(w,R,M,N,ne,ve){var G=R.children;if(G!==void 0)if(N)if(q(G)){for(N=0;N<G.length;N++)p(G[N]);Object.freeze&&Object.freeze(G)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else p(G);if(U.call(R,"key")){G=e(w);var K=Object.keys(R).filter(function(Ne){return Ne!=="key"});N=0<K.length?"{key: someKey, "+K.join(": ..., ")+": ...}":"{key: someKey}",J[G+N]||(K=0<K.length?"{"+K.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
2
2
  let props = %s;
3
3
  <%s {...props} />
4
4
  React keys must be passed directly to JSX without using spread:
package/client.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import Fs, { createContext as wt, useContext as _t, useMemo as b, useCallback as I, useState as V, useEffect as ke } from "react";
3
- import { m as As, p as ks, d as Ds, o as ma, q as ga, r as fa, e as ya, i as Ls, l as Ns, h as xs } from "./index-wKgzRn4X.js";
3
+ import { m as As, p as ks, d as Ds, o as ma, q as ga, r as fa, e as ya, i as Ls, l as Ns, h as xs } from "./index-D8MJQXDd.js";
4
4
  var at = { exports: {} }, Ue = {};
5
5
  var wa;
6
6
  function Gs() {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./index-C7ZA8KMC.cjs"),E=require("react");function me(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 fe(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 ge(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 pe(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 ye(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 he(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 Te(e){switch(e.entity_type){case"tournament":return me(e);case"player":return fe(e);case"team":return ge(e);case"president":return pe(e);case"venue":return ye(e);case"coach":return he(e);default:throw new Error(`Unknown entity type: ${e.entity_type}`)}}async function ve(e,t){if(!e.query||e.query.trim()==="")return{results:[],query:e.query||""};const o=t||m.getConfig(),{sportal365Sports:s}=o,n=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:n.join(","),language_code:e.languageCode??s?.languageCode??"en"},headers:{"Accept-Language":e.languageCode??s?.languageCode??"en"},next:e.next,config:o});return!i||i.length===0?{results:[],query:e.query}:{results:i.map(Te),query:e.query}}const Se=m.createHttpClient(m.SPORTAL365_SPORTS_SEARCH_DOMAIN);function M(e){return{language:e.language,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0}}function O(e){if(!(!e||!e.url))return{url:e.url}}function N(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(M),displayAsset:O(e.display_asset),slug:e.slug,providerRef:e.id}}function j(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),gender:e.gender,competitionIds:e.competition_ids,type:e.type,national:e.national,undecided:e.undecided,providerRef:e.id}}function X(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),providerRef:e.id}}function _e(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),gender:e.gender,providerRef:e.id}}function Ce(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),gender:e.gender,birthdate:e.birthdate??void 0,position:e.position??void 0,providerRef:e.id}}function Ae(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),gender:e.gender,birthdate:e.birthdate??void 0,providerRef:e.id}}function Me(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),city:e.city?X(e.city):void 0,providerRef:e.id}}function Oe(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),gender:e.gender,type:e.type??void 0,region:e.region??void 0,providerRef:e.id}}function Re(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(M),displayAsset:O(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?j(e.home_team):void 0,awayTeam:e.away_team?j(e.away_team):void 0,providerRef:e.id}}function Pe(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,providerRef:e.id}}function Ge(e){switch(e.entity_type){case"team":return j(e);case"city":return X(e);case"horse":return _e(e);case"player":return Ce(e);case"coach":return Ae(e);case"referee":return Fe(e);case"venue":return Me(e);case"tournament":case"competition":return Oe(e);case"match":return Re(e);case"country":return Pe(e);default:{const t=e;throw new Error(`Unknown entity type: ${t.entity_type}`)}}}async function Ne(e={},t){const o=t??m.getConfig(),s={};e.name&&(s.name=e.name),e.entityTypes&&e.entityTypes.length>0&&(s.entity_type=e.entityTypes.join(",")),e.sports&&e.sports.length>0&&(s.sport=e.sports.join(",")),e.eventStartTime&&(s.event_start_time=e.eventStartTime),e.ids&&e.ids.length>0&&(s.ids=e.ids.join(",")),e.competitionIds&&e.competitionIds.length>0&&(s.competition_ids=e.competitionIds.join(",")),e.domain&&(s.domain=e.domain),e.inputLanguage&&(s.input_language=e.inputLanguage),e.translationLanguage&&(s.translation_language=e.translationLanguage),e.limit!==void 0&&(s.limit=e.limit.toString()),e.offset!==void 0&&(s.offset=e.offset.toString());const n=await Se.get({path:"/suggest",params:s,next:e.next,config:o});return!n.results||n.results.length===0?{results:[],query:e.name}:{results:n.results.map(Ge),query:e.name}}const De=m.createHttpClient(m.SPORTAL365_STATISTICS_DOMAIN);function Ee(e,t){return{teamId:e.id,teamName:e.name,seasonId:t,statistics:e.statistics.map(o=>({key:o.id,value:o.value,label:o.name}))}}async function be(e,t){const o=t||m.getConfig(),s=e.next??{revalidate:600},n={participant_ids:e.teamId,season_ids:e.seasonId,participant_type:"TEAM"};console.log("[getTeamSeasonStatistics] Fetching team statistics:",{path:"/statistics/aggregate",params:n,teamId:e.teamId,seasonId:e.seasonId});const i=await De.get({path:"/statistics/aggregate",params:n,next:s,config:o});if(console.log("[getTeamSeasonStatistics] API response received:",{hasData:!!i.data,dataLength:i.data?.length??0,rawResponse:i}),!i.data||i.data.length===0)throw console.error("[getTeamSeasonStatistics] No statistics found:",{teamId:e.teamId,seasonId:e.seasonId,rawResponse:i}),new Error(`No statistics found for team ${e.teamId} in season ${e.seasonId}`);console.log("[getTeamSeasonStatistics] Transforming team statistics:",{teamId:i.data[0].id,teamName:i.data[0].name,statisticsCount:i.data[0].statistics?.length??0});const a=Ee(i.data[0],e.seasonId);return console.log("[getTeamSeasonStatistics] Successfully transformed team statistics:",{teamId:a.teamId,teamName:a.teamName,seasonId:a.seasonId,statisticsCount:a.statistics.length}),a}function Ie(e){const t=e.replace(/\/$/,"");function o(s){return`${t}${s}`}return{async get(s){const n=s.config||m.getConfig(),{fansUnited:i}=n;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 a=new URL(o(s.path));if(a.searchParams.set("key",i.apiKey),a.searchParams.set("client_id",i.clientId),s.params)for(const[l,u]of Object.entries(s.params))u!==void 0&&(Array.isArray(u)?u.length>0&&a.searchParams.set(l,u.join(",")):a.searchParams.set(l,u));const d=await fetch(a.toString(),{method:"GET",headers:{Accept:"application/json","Content-Type":"application/json",...s.headers},signal:AbortSignal.timeout(3e4),...s.next&&{next:s.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 Le="https://football.fansunitedapi.com",D=Ie(Le);function He(e){return{id:String(e.id),name:e.name,active:e.active,providerRef:[{provider:"fansunited",id:String(e.id)}]}}function ke(e){const t={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&&(t.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&&(t.assets={logo:e.logo}),e.seasons&&e.seasons.length>0&&(t.seasons=e.seasons.map(He)),e.current_season&&(t.season={id:String(e.current_season.id),name:e.current_season.name,status:e.current_season.active?"ACTIVE":"INACTIVE"}),t}function Ue(e){return e.map(ke)}async function Be(e,t){const o={};e?.lang?o.lang=e.lang:o.lang="EN",e?.sortField&&(o.sort_field=e.sortField),e?.sortOrder&&(o.sort_order=e.sortOrder),e?.page!==void 0&&(o.page=String(e.page)),e?.perPage!==void 0&&(o.per_page=String(e.perPage)),e?.countryId!==void 0&&(o.country_id=String(e.countryId)),e?.active!==void 0&&(o.active=e.active?"1":"0");const s=await D.get({path:"/v1/competitions",params:o,config:t,next:e?.next});return Ue(s.data)}function $e(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 xe(e){return{id:e.id,name:e.name,type:e.type?.toUpperCase()||"LEAGUE",gender:e.gender?.toUpperCase(),country:e.country?$e(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function We(e){return xe(e.data)}async function qe(e,t,o){const s=o||m.getConfig(),n={};t?.lang&&(n.lang=t.lang);const i=await D.get({path:`/v1/competitions/${e}`,params:n,next:t?.next,config:s});return We(i)}function Ve(e){return{id:e.id,name:e.name,code:e.country_code,flag:e.assets?.flag,providerRef:[{provider:"fansunited",id:e.id}]}}function je(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?Ve(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 Ye(e){return je(e.data)}async function Ke(e,t,o){const s=o||m.getConfig(),n={};t?.lang&&(n.lang=t.lang);const i=await D.get({path:`/v1/teams/${e}`,params:n,next:t?.next,config:s});return Ye(i)}function Y(e){return{id:e.id,name:e.name,code:e.country_code,flag:e.assets?.flag,providerRef:[{provider:"fansunited",id:e.id}]}}function ze(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?Y(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Je(e){return{id:e.id,name:e.name,type:e.type?.toUpperCase()||"LEAGUE",gender:e.gender?.toUpperCase(),country:e.country?Y(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Z(e){return{type:"player",id:e.id,name:e.name,position:e.position,birthdate:e.birth_date,country:e.country?Y(e.country):void 0,assets:e.assets?.headshot?{photo:e.assets.headshot}:void 0,teams:e.teams?.map(ze),competitions:e.competitions?.map(Je),providerRef:[{provider:"fansunited",id:e.id}]}}function Qe(e){return Z(e.data)}function Xe(e){return e.data.map(Z)}async function Ze(e,t,o){const s=o||m.getConfig(),n={};t?.lang&&(n.lang=t.lang);const i=await D.get({path:`/v1/players/${e}`,params:n,next:t?.next,config:s});return Qe(i)}async function we(e,t){const o=t||m.getConfig(),s={};e?.lang&&(s.lang=e.lang),e?.playerIds&&(s.player_ids=e.playerIds),e?.countryId&&(s.country_id=e.countryId),e?.name&&(s.name=e.name),e?.scope&&(s.scope=e.scope),e?.limit!==void 0&&(s.limit=String(e.limit)),e?.page!==void 0&&(s.page=String(e.page)),e?.sortField&&(s.sort_field=e.sortField),e?.sortOrder&&(s.sort_order=e.sortOrder);const n=await D.get({path:"/v1/players",params:s,next:e?.next,config:o});return Xe(n)}function w(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 et(e){return{id:e.id,name:e.name,type:e.type?.toUpperCase()||"LEAGUE",gender:e.gender?.toUpperCase(),country:e.country?w(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function tt(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 t="not_started",o="NOT_STARTED",s="Not Started";return e.finished_at?(t="finished",o="FINISHED",s="Finished"):e.started_at&&(t="live",o="LIVE",s="Live"),{code:t,name:s,type:o}}function ot(e){return{kickoffTime:new Date(e.kickoff_at),currentMinute:e.minute??void 0,currentPeriod:void 0}}function z(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?w(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function st(e){if(!e)return;const t=s=>s?{competitorOne:s.home_goals!==null?String(s.home_goals):"0",competitorTwo:s.away_goals!==null?String(s.away_goals):"0"}:void 0,o=t(e.ft_score);if(o)return{competitorOne:o.competitorOne,competitorTwo:o.competitorTwo,breakdown:{total:o,halfTime:t(e.ht_score),regularTime:t(e.ft_score),extraTime:t(e.aet_score),penaltyShootout:t(e.pen_score)}}}function ee(e){return{id:e.id,status:tt(e),timing:ot(e),competitorOne:z(e.home_team),competitorTwo:z(e.away_team),score:st(e.scores),competition:e.context?.competition?et(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 nt(e){return ee(e.data)}function it(e){return e.data.map(ee)}async function at(e,t,o){const s=o||m.getConfig(),n={};t?.lang&&(n.lang=t.lang);const i=await D.get({path:`/v1/matches/${e}`,params:n,next:t?.next,config:s});return nt(i)}async function rt(e,t){const o=t||m.getConfig(),s={};e?.lang&&(s.lang=e.lang),e?.competitions&&(s.competitions=e.competitions),e?.countries&&(s.countries=e.countries),e?.fromDate&&(s.from_date=e.fromDate),e?.toDate&&(s.to_date=e.toDate),e?.matches&&(s.matches=e.matches),e?.teams&&(s.teams=e.teams),e?.status&&(s.status=e.status),e?.limit!==void 0&&(s.limit=String(e.limit)),e?.page!==void 0&&(s.page=String(e.page)),e?.sortField&&(s.sort_field=e.sortField),e?.sortOrder&&(s.sort_order=e.sortOrder),e?.showDeleted!==void 0&&(s.show_deleted=e.showDeleted?"true":"false");const n=await D.get({path:"/v1/matches",params:s,next:e?.next,config:o});return it(n)}function K(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 ct(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?K(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function lt(e){return{type:"player",id:e.id,name:e.name,position:e.position||void 0,gender:e.gender?.toUpperCase(),birthdate:e.birth_date||void 0,country:e.country?K(e.country):void 0,assets:e.assets?.headshot?{photo:e.assets.headshot}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function dt(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?K(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function V(e){switch(e.entity_type){case"competition":{const t=ct(e);return{source:"FOOTBALL",entityType:"competition",entityId:e.id,entityData:t}}case"player":{const t=lt(e);return{source:"FOOTBALL",entityType:"player",entityId:e.id,entityData:t}}case"team":{const t=dt(e);return{source:"FOOTBALL",entityType:"team",entityId:e.id,entityData:t}}case"venue":case"coach":return null;default:throw new Error(`Unknown entity type: ${e.entity_type}`)}}async function ut(e,t){if(!e.query||e.query.trim()==="")return[];const o=t||m.getConfig(),s={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}});s.entities=i.join(","),e.lang&&(s.lang=e.lang),e.limit&&(s.limit=String(e.limit));const a=await D.get({path:"/v1/search",params:s,next:e.next,config:o}),r=[];return a.data&&(a.data.competitions&&a.data.competitions.forEach(d=>{const l=V({...d,entity_type:"competition"});l&&r.push(l)}),a.data.teams&&a.data.teams.forEach(d=>{const l=V({...d,entity_type:"team"});l&&r.push(l)}),a.data.players&&a.data.players.forEach(d=>{const l=V({...d,entity_type:"player"});l&&r.push(l)})),r}function mt(e){return!e.seasons||e.seasons.length===0?void 0:e.seasons.find(o=>o.active)??e.seasons[0]}function ft(e,t){const o=new Date,s=t.filter(n=>{const i=n.competitorOne.id===e||n.competitorTwo.id===e,a=n.status.type==="NOT_STARTED",r=new Date(n.timing.kickoffTime)>=o;return i&&a&&r});return s.sort((n,i)=>new Date(n.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime()),s[0]}function gt(e,t){const o=new Date,s=t.filter(n=>{const i=n.competitorOne.id===e||n.competitorTwo.id===e,a=n.status.type==="FINISHED",r=new Date(n.timing.kickoffTime)<=o;return i&&a&&r});return s.sort((n,i)=>new Date(i.timing.kickoffTime).getTime()-new Date(n.timing.kickoffTime).getTime()),s[0]}function pt(e,t){const o=new Date;return t.filter(n=>{const i=n.competitorOne.id===e||n.competitorTwo.id===e,a=n.status.type==="NOT_STARTED"||n.status.type==="LIVE",r=new Date(n.timing.kickoffTime)>=o||n.status.type==="LIVE";return i&&a&&r}).sort((n,i)=>new Date(n.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime())}function yt(e,t){const o=new Date;return t.filter(n=>{const i=n.competitorOne.id===e||n.competitorTwo.id===e,a=n.status.type==="FINISHED",r=new Date(n.timing.kickoffTime)<=o;return i&&a&&r}).sort((n,i)=>new Date(i.timing.kickoffTime).getTime()-new Date(n.timing.kickoffTime).getTime())}function ht(e,t,o){const s=o.filter(a=>a.status.type==="FINISHED"),n=o.filter(a=>a.status.type==="NOT_STARTED"||a.status.type==="POSTPONED"),i=t.entries.map(a=>{const r=a.competitor.id,d=s.filter(f=>f.competitorOne.id===e&&f.competitorTwo.id===r||f.competitorOne.id===r&&f.competitorTwo.id===e),l=n.filter(f=>f.competitorOne.id===e&&f.competitorTwo.id===r||f.competitorOne.id===r&&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"),R=p?y:T,C=p?T:y;let F;R>C?F="W":R===C?F="D":F="L";const P={result:F,score:`${y} - ${T}`,date:f.timing.kickoffTime,matchId:f.id,isUpcoming:!1};p?u=P:c=P}),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:a.rank,teamId:a.competitor.id,teamName:a.competitor.name,teamShortName:a.competitor.shortName,teamLogo:a.competitor.logo,gamesPlayed:a.stats.played??0,points:a.stats.points??0,homeResult:u,awayResult:c}});return{teamId:e,rows:i}}function Tt(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.goals??0)>0).sort((o,s)=>{const n=o.seasonStatistics?.goals??0,i=s.seasonStatistics?.goals??0;if(i!==n)return i-n;const a=o.seasonStatistics?.assists??0;return(s.seasonStatistics?.assists??0)-a}).slice(0,t)}function vt(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.assists??0)>0).sort((o,s)=>{const n=o.seasonStatistics?.assists??0,i=s.seasonStatistics?.assists??0;if(i!==n)return i-n;const a=o.seasonStatistics?.goals??0;return(s.seasonStatistics?.goals??0)-a}).slice(0,t)}function St(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.appearances??0)>0).sort((o,s)=>{const n=o.seasonStatistics?.appearances??0,i=s.seasonStatistics?.appearances??0;if(i!==n)return i-n;const a=o.seasonStatistics?.minutes??0;return(s.seasonStatistics?.minutes??0)-a}).slice(0,t)}function _t(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.minutes??0)>0).sort((o,s)=>{const n=o.seasonStatistics?.minutes??0,i=s.seasonStatistics?.minutes??0;if(i!==n)return i-n;const a=o.seasonStatistics?.appearances??0;return(s.seasonStatistics?.appearances??0)-a}).slice(0,t)}function Ct(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.cleansheets??0)>0).sort((o,s)=>{const n=o.seasonStatistics?.cleansheets??0,i=s.seasonStatistics?.cleansheets??0;if(i!==n)return i-n;const a=o.seasonStatistics?.appearances??0;return(s.seasonStatistics?.appearances??0)-a}).slice(0,t)}function At(e,t=10){return e.players.filter(o=>{const s=o.seasonStatistics?.yellowCards??0,n=o.seasonStatistics?.redCards??0;return s+n>0}).sort((o,s)=>{const n=o.seasonStatistics?.yellowCards??0,i=o.seasonStatistics?.redCards??0,a=s.seasonStatistics?.yellowCards??0,r=s.seasonStatistics?.redCards??0,d=n+i*3,l=a+r*3;return l!==d?l-d:r!==i?r-i:a-n}).slice(0,t)}function b(e){const t=new Map,o=new Map;return e.forEach(s=>{!s.mainEvents||s.mainEvents.length===0||s.mainEvents.forEach(n=>{if(n.primaryPlayer){const i=n.primaryPlayer.id;t.has(i)||t.set(i,{playerId:n.primaryPlayer.id,seasonId:"",teamId:"",goals:0,assists:0,yellowCards:0,redCards:0,appearances:0});const a=t.get(i);o.has(i)||o.set(i,new Set),o.get(i).add(s.id),(n.type==="GOAL"||n.type==="PENALTY_GOAL")&&(a.goals=(a.goals??0)+1),n.type==="YELLOW_CARD"&&(a.yellowCards=(a.yellowCards??0)+1),(n.type==="RED_CARD"||n.type==="YELLOW_RED_CARD")&&(a.redCards=(a.redCards??0)+1)}if(n.secondaryPlayer&&(n.type==="GOAL"||n.type==="PENALTY_GOAL")){const i=n.secondaryPlayer.id;t.has(i)||t.set(i,{playerId:n.secondaryPlayer.id,seasonId:"",teamId:"",goals:0,assists:0,yellowCards:0,redCards:0,appearances:0});const a=t.get(i);a.assists=(a.assists??0)+1,o.has(i)||o.set(i,new Set),o.get(i).add(s.id)}})}),o.forEach((s,n)=>{const i=t.get(n);i&&i.appearances!==void 0&&(i.appearances=s.size)}),t}function U(e){return Array.from(e.values()).map(t=>({...t,totalCards:(t.yellowCards??0)+(t.redCards??0)}))}function te(e,t=10){const o=b(e);return U(o).filter(n=>(n.goals??0)>0).sort((n,i)=>{const a=n.goals??0,r=i.goals??0;if(r!==a)return r-a;const d=n.assists??0;return(i.assists??0)-d}).slice(0,t)}function oe(e,t=10){const o=b(e);return U(o).filter(n=>(n.assists??0)>0).sort((n,i)=>{const a=n.assists??0,r=i.assists??0;if(r!==a)return r-a;const d=n.goals??0;return(i.goals??0)-d}).slice(0,t)}function se(e,t=10){const o=b(e);return U(o).filter(n=>(n.totalCards??0)>0).sort((n,i)=>{const a=(n.yellowCards??0)+(n.redCards??0)*3,r=(i.yellowCards??0)+(i.redCards??0)*3;if(r!==a)return r-a;const d=n.redCards??0,l=i.redCards??0;if(l!==d)return l-d;const u=n.yellowCards??0;return(i.yellowCards??0)-u}).slice(0,t)}function ne(e,t=10){const o=b(e);return U(o).filter(n=>(n.goals??0)+(n.assists??0)>0).sort((n,i)=>{const a=(n.goals??0)+(n.assists??0),r=(i.goals??0)+(i.assists??0);if(r!==a)return r-a;const d=n.goals??0,l=i.goals??0;if(l!==d)return l-d;const u=n.assists??0;return(i.assists??0)-u}).slice(0,t)}function ie(e){const t=b(e);return U(t).sort((s,n)=>{const i=s.appearances??0,a=n.appearances??0;if(a!==i)return a-i;const r=(s.goals??0)+(s.assists??0);return(n.goals??0)+(n.assists??0)-r})}function Ft(e,t=10){return E.useMemo(()=>te(e,t),[e,t])}function Mt(e,t=10){return E.useMemo(()=>oe(e,t),[e,t])}function Ot(e,t=10){return E.useMemo(()=>se(e,t),[e,t])}function Rt(e,t=10){return E.useMemo(()=>ne(e,t),[e,t])}function Pt(e){return E.useMemo(()=>ie(e),[e])}function ae(e){return E.useMemo(()=>b(e),[e])}function Gt(e,t){const o=ae(e);return E.useMemo(()=>o.get(t),[o,t])}const re=["GOAL","PENALTY_GOAL","OWN_GOAL"];function A(e,t){return t>0?e/t*100:0}function H(e,t){return t>0?e/t:0}function Nt(e,t=!1,o=2){return t?`${Math.round(e)}%`:Number.isInteger(e)?e.toString():e.toFixed(o)}function Dt(e,t){const o=typeof e=="string"?parseFloat(e):e;if(isNaN(o)||t===0)return"0";const s=(o/t).toFixed(1);return`${o} (${s} avg)`}function Et(e,t){const o=typeof e=="string"?parseFloat(e):e;return isNaN(o)||t===0?"0.0":(o/t).toFixed(1)}function bt(e){const t=parseFloat(e);return isNaN(t)?"0%":`${Math.round(t)}%`}function ce(e,t,o){if(e.status?.type!=="FINISHED"||!e.score)return null;const s=parseInt(e.score.competitorOne||"0"),n=parseInt(e.score.competitorTwo||"0"),i=o?s:n,a=o?n:s;let r=null,d=null;const l=e.score.breakdown?.halfTime;if(l){const p=parseInt(l.competitorOne||"0"),y=parseInt(l.competitorTwo||"0");r=o?p:y,d=o?y:p}const u=e.statistics;let c=null,f=null;if(u){const p=u.find?.(y=>y.type==="CORNERS");p&&(c=o?p.competitorOne:p.competitorTwo,f=o?p.competitorTwo:p.competitorOne)}return{goalsFor:i,goalsAgainst:a,halfTimeGoalsFor:r,halfTimeGoalsAgainst:d,cornersFor:c,cornersAgainst:f,isWin:i>a,isDraw:i===a,isLoss:i<a}}function q(e,t){return e.competitorOne.id===t}function le(e,t){return e.competitorTwo.id===t}function It(e,t){return q(e,t)||le(e,t)}function Lt(e){return e.status?.type==="FINISHED"}function Ht(e,t){const o=q(e,t);return parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0")}function kt(e,t){const o=q(e,t);return parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0")}function Ut(e,t,o){const s=e.filter(u=>{if(u.status?.type!=="FINISHED"||!u.score)return!1;const c=u.competitorOne.id===t||u.competitorTwo.id===t,f=u.competitorOne.id===o||u.competitorTwo.id===o;return c&&f});let n=0,i=0,a=0,r=0,d=0;s.forEach(u=>{const c=parseInt(u.score?.competitorOne||"0"),f=parseInt(u.score?.competitorTwo||"0"),p=u.competitorOne.id===t,y=p?c:f,T=p?f:c;r+=y,d+=T,y>T?n++:T>y?i++:a++});const l=s.length;return{totalMatches:l,homeTeamWins:n,awayTeamWins:i,draws:a,homeTeamGoals:r,awayTeamGoals:d,homeTeamWinPercentage:l>0?n/l*100:0,awayTeamWinPercentage:l>0?i/l*100:0,drawPercentage:l>0?a/l*100:0,homeTeamAvgGoals:l>0?r/l:0,awayTeamAvgGoals:l>0?d/l:0}}function Bt(e,t,o,s=5){return e.filter(i=>{if(i.status?.type!=="FINISHED"||!i.score)return!1;const a=i.competitorOne.id===t||i.competitorTwo.id===t,r=i.competitorOne.id===o||i.competitorTwo.id===o;return a&&r}).sort((i,a)=>new Date(a.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime()).slice(0,s).map(i=>{const a=parseInt(i.score?.competitorOne||"0"),r=parseInt(i.score?.competitorTwo||"0"),d=i.competitorOne.id===t,l=d?a:r,u=d?r:a;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:a,awayScore:r,venue:i.venue?.name,winner:c}})}function $t(e,t,o){return e.filter(s=>{const n=s.competitorOne.id===t,i=s.competitorTwo.id===t;return!n&&!i?!1:o==="home"?n:i}).map(s=>{const n=s.competitorOne.id===t;return ce(s,t,n)}).filter(s=>s!==null)}function J(e,t,o,s){let n=0;for(const i of e){const a=i.competitorOne.id===t,r=i.competitorTwo.id===t;if(!a&&!r||o==="home"&&!a||o==="away"&&!r||i.status?.type!=="FINISHED")continue;const d=i.mainEvents;if(!d||!Array.isArray(d))continue;const l=d.filter(y=>y.type&&re.includes(y.type)).sort((y,T)=>{const R=y.minute??0,C=T.minute??0;return R!==C?R-C:(y.injuryMinute??0)-(T.injuryMinute??0)});if(l.length===0)continue;const u=l[0],c=a?"ONE":"TWO",f=u.type==="OWN_GOAL";let p;f?p=u.competitorPosition!==c:p=u.competitorPosition===c,(s==="scored"&&p||s==="conceded"&&!p)&&n++}return n}function xt(e,t,o){let s=0;for(const n of e){const i=n.competitorOne.id===t,a=n.competitorTwo.id===t;if(!i&&!a||o==="home"&&!i||o==="away"&&!a||n.status?.type!=="FINISHED")continue;const r=n.mainEvents;r&&Array.isArray(r)&&s++}return s}function Wt(e,t,o){const s=$t(e,t,o),n=s.length;if(n===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=s.reduce((g,S)=>g+S.goalsFor,0),a=s.reduce((g,S)=>g+S.goalsAgainst,0),r=s.filter(g=>g.goalsAgainst===0).length,d=s.filter(g=>g.isWin&&g.goalsAgainst===0).length,l=s.filter(g=>g.goalsFor>0).length,u=s.filter(g=>g.goalsFor===0).length,c=s.filter(g=>g.isLoss&&g.goalsFor===0).length,f=s.filter(g=>g.goalsAgainst>0).length,p=s.filter(g=>g.halfTimeGoalsFor!==null),y=p.length,T=p.filter(g=>{const S=g.halfTimeGoalsFor,L=g.goalsFor-S;return S>0&&L>0}).length,R=J(e,t,o,"scored"),C=xt(e,t,o),F=p.filter(g=>g.halfTimeGoalsFor>g.halfTimeGoalsAgainst).length,P=p.filter(g=>{const S=g.halfTimeGoalsAgainst,L=g.goalsAgainst-S;return S>0&&L>0}).length,B=J(e,t,o,"conceded"),$=p.filter(g=>g.halfTimeGoalsAgainst>g.halfTimeGoalsFor).length,I=s.filter(g=>g.cornersFor!==null),x=I.reduce((g,S)=>g+(S.cornersFor||0),0),W=I.reduce((g,S)=>g+(S.cornersAgainst||0),0);return{played:n,goalsForPerMatch:H(i,n),cleanSheets:A(r,n),wonToNil:A(d,n),scoringRate:A(l,n),scoredInBothHalves:A(T,y),scoredFirst:A(R,C),leadingAtHalfTime:A(F,y),goalsAgainstPerMatch:H(a,n),failedToScore:A(u,n),lostToNil:A(c,n),concedingRate:A(f,n),concededInBothHalves:A(P,y),concededFirst:A(B,C),losingAtHalfTime:A($,y),avgCornersFor:H(x,I.length),avgCornersAgainst:H(W,I.length)}}function qt(e,t){return e.filter(o=>o.status?.type!=="FINISHED"?!1:o.competitorOne.id===t||o.competitorTwo.id===t).map(o=>{const s=o.competitorOne.id===t,n=parseInt(o.score?.competitorOne||"0"),i=parseInt(o.score?.competitorTwo||"0"),a=n+i,r=o.periods;let d=null;if(r&&Array.isArray(r)){const l=r.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:a,halfTimeGoals:d,isHome:s}})}function h(e,t){return e.length===0?0:e.filter(s=>s>t).length/e.length*100}function Vt(e,t){const o=qt(e,t),s=o.filter(c=>c.isHome),n=o.filter(c=>!c.isHome),i=o.map(c=>c.totalGoals),a=s.map(c=>c.totalGoals),r=n.map(c=>c.totalGoals),d=o.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals),l=s.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals),u=n.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals);return{over05:{home:h(a,.5),total:h(i,.5),away:h(r,.5)},over15:{home:h(a,1.5),total:h(i,1.5),away:h(r,1.5)},over25:{home:h(a,2.5),total:h(i,2.5),away:h(r,2.5)},over35:{home:h(a,3.5),total:h(i,3.5),away:h(r,3.5)},over45:{home:h(a,4.5),total:h(i,4.5),away:h(r,4.5)},over55:{home:h(a,5.5),total:h(i,5.5),away:h(r,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 de(e,t){const o=e.competitorOne.id===t,s=e.competitorTwo.id===t;if(!o&&!s||!e.score)return null;const n=parseInt(o?e.score.competitorOne||"0":e.score.competitorTwo||"0"),i=parseInt(o?e.score.competitorTwo||"0":e.score.competitorOne||"0");let a;return n>i?a="W":n<i?a="L":a="D",{result:{score:`${n}:${i}`,result:a,isHome:o},isHome:o}}function jt(e,t,o,s,n,i){const a=t?.entries.find(G=>G.competitor.id===e),r=o?.entries.find(G=>G.competitor.id===e),d=s?.entries.find(G=>G.competitor.id===e),l=n?.entries.find(G=>G.competitor.id===e),u=i?.entries.find(G=>G.competitor.id===e);if(!a)return null;const c=r?.stats?.goalsFor??0,f=d?.stats?.goalsFor??0,p=a?.stats?.goalsFor??0,y=l?.stats?.goalsAgainst??0,T=u?.stats?.goalsAgainst??0,R=a?.stats?.goalsAgainst??0,C=r?.stats?.played??0,F=d?.stats?.played??0,P=a?.stats?.played??0,B=P>0?p/P:0,$=P>0?R/P:0,I=B+$,x=C>0?c/C:0,W=F>0?f/F:0,g=C>0?y/C:0,S=F>0?T/F:0,L=x+g,ue=W+S;return{homeGoals:c,totalGoals:p,awayGoals:f,homeGamesPlayed:C,awayGamesPlayed:F,totalGamesPlayed:P,homeGoalsConceded:y,totalGoalsConceded:R,awayGoalsConceded:T,gfPerMatch:B,gaPerMatch:$,gfGaPerMatch:I,homeGfPerMatch:x,awayGfPerMatch:W,homeGaPerMatch:g,awayGaPerMatch:S,homeGfGaPerMatch:L,awayGfGaPerMatch:ue}}function _(e,t,o,s){const n=e.filter(a=>{const r=a.competitorOne.id===t,d=a.competitorTwo.id===t;return!(!r&&!d||a.status?.type!=="FINISHED"||s==="home"&&!r||s==="away"&&!d)}).sort((a,r)=>new Date(r.timing.kickoffTime).getTime()-new Date(a.timing.kickoffTime).getTime());if(n.length===0)return null;let i=0;for(const a of n){const r=a.competitorOne.id===t;if(o(a,t,r))i++;else break}return i>0?i:null}const v={win:(e,t,o)=>{const s=parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0"),n=parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0");return s>n},draw:e=>e.score?.competitorOne===e.score?.competitorTwo,loss:(e,t,o)=>{const s=parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0"),n=parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0");return s<n},noWin:(e,t,o)=>!v.win(e,t,o),noDraw:e=>!v.draw(e),noDefeat:(e,t,o)=>!v.loss(e,t,o),scored:(e,t,o)=>parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0")>=1,conceded:(e,t,o)=>parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0")>=1,noGoalScored:(e,t,o)=>!v.scored(e,t,o),noGoalConceded:(e,t,o)=>!v.conceded(e,t,o),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,t,o)=>parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0")>=2,concededTwice:(e,t,o)=>parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0")>=2};function k(e,t,o){return{win:_(e,t,v.win,o),draw:_(e,t,v.draw,o),loss:_(e,t,v.loss,o),noWin:_(e,t,v.noWin,o),noDraw:_(e,t,v.noDraw,o),noDefeat:_(e,t,v.noDefeat,o),scored:_(e,t,v.scored,o),conceded:_(e,t,v.conceded,o),noGoalScored:_(e,t,v.noGoalScored,o),noGoalConceded:_(e,t,v.noGoalConceded,o),over25:_(e,t,v.over25,o),under25:_(e,t,v.under25,o),scoredTwice:_(e,t,v.scoredTwice,o),concededTwice:_(e,t,v.concededTwice,o)}}function Yt(e,t,o){const s=k(e,t,"home"),n=k(e,t),i=k(e,o,"away"),a=k(e,o);return[{label:"Consecutive wins",homeTeam:{home:s.win,total:n.win},awayTeam:{total:a.win,home:i.win},colorType:"neutral"},{label:"Consecutive draws",homeTeam:{home:s.draw,total:n.draw},awayTeam:{total:a.draw,home:i.draw},colorType:"neutral"},{label:"Consecutive defeats",homeTeam:{home:s.loss,total:n.loss},awayTeam:{total:a.loss,home:i.loss},colorType:"neutral"},{label:"No win",homeTeam:{home:s.noWin,total:n.noWin},awayTeam:{total:a.noWin,home:i.noWin},colorType:"negative"},{label:"No draw",homeTeam:{home:s.noDraw,total:n.noDraw},awayTeam:{total:a.noDraw,home:i.noDraw},colorType:"neutral"},{label:"No defeat",homeTeam:{home:s.noDefeat,total:n.noDefeat},awayTeam:{total:a.noDefeat,home:i.noDefeat},colorType:"positive"},{label:"Scored at least once",homeTeam:{home:s.scored,total:n.scored},awayTeam:{total:a.scored,home:i.scored},colorType:"positive"},{label:"Conceded at least once",homeTeam:{home:s.conceded,total:n.conceded},awayTeam:{total:a.conceded,home:i.conceded},colorType:"negative"},{label:"No goal scored",homeTeam:{home:s.noGoalScored,total:n.noGoalScored},awayTeam:{total:a.noGoalScored,home:i.noGoalScored},colorType:"neutral"},{label:"No goal conceded",homeTeam:{home:s.noGoalConceded,total:n.noGoalConceded},awayTeam:{total:a.noGoalConceded,home:i.noGoalConceded},colorType:"neutral"},{label:"GS + GC over 2.5",homeTeam:{home:s.over25,total:n.over25},awayTeam:{total:a.over25,home:i.over25},colorType:"neutral"},{label:"GS + GC under 2.5",homeTeam:{home:s.under25,total:n.under25},awayTeam:{total:a.under25,home:i.under25},colorType:"neutral"},{label:"Scored at least twice",homeTeam:{home:s.scoredTwice,total:n.scoredTwice},awayTeam:{total:a.scoredTwice,home:i.scoredTwice},colorType:"positive"},{label:"Conceded at least twice",homeTeam:{home:s.concededTwice,total:n.concededTwice},awayTeam:{total:a.concededTwice,home:i.concededTwice},colorType:"negative"}]}function Q(e,t){const o=new Map;return e.forEach(s=>{if(s.status?.type!=="FINISHED")return;const n=de(s,t);if(!n)return;const i=n.isHome?s.competitorTwo.id:s.competitorOne.id,a=n.isHome?s.competitorTwo:s.competitorOne,r=o.get(i)||{opponentId:i,opponentName:a.name,opponentLogo:a.assets?.logo};n.isHome?r.homeResult=n.result:r.awayResult=n.result,o.set(i,r)}),o}function Kt(e,t,o,s,n,i,a){const r=Q(e,t),d=Q(e,o),l=new Set([...r.keys(),...d.keys(),t,o]),u=[];return l.forEach(c=>{const f=r.get(c),p=d.get(c);if(!f&&!p&&c!==t&&c!==o)return;let y,T;c===t?(y=s,T=i):c===o?(y=n,T=a):(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===t,isAwayTeamRow:c===o})}),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=re;exports.aggregatePlayerStatisticsFromMatches=b;exports.analyzeMatch=ce;exports.calcAverage=H;exports.calcPercentage=A;exports.calculateH2HStats=Ut;exports.calculateStreak=_;exports.formatAsAverage=Et;exports.formatPossessionPercentage=bt;exports.formatStatValue=Nt;exports.formatWithAverage=Dt;exports.getActiveSeason=mt;exports.getAllPlayerStatisticsFromMatches=ie;exports.getFansUnitedFootballCompetition=qe;exports.getFansUnitedFootballCompetitions=Be;exports.getFansUnitedFootballMatch=at;exports.getFansUnitedFootballMatches=rt;exports.getFansUnitedFootballPlayer=Ze;exports.getFansUnitedFootballPlayers=we;exports.getFansUnitedFootballSearch=ut;exports.getFansUnitedFootballTeam=Ke;exports.getMatchResult=de;exports.getMostCardedPlayersFromMatches=se;exports.getOpponentScore=kt;exports.getRecentH2HMeetings=Bt;exports.getTeamFinishedMatches=yt;exports.getTeamGoalStats=jt;exports.getTeamHomeAwayStats=Wt;exports.getTeamMostDecorated=At;exports.getTeamNextMatch=ft;exports.getTeamOverUnderStats=Vt;exports.getTeamPreviousMatch=gt;exports.getTeamResultsTable=ht;exports.getTeamScore=Ht;exports.getTeamSeasonStatistics=be;exports.getTeamStreaks=k;exports.getTeamStreaksComparison=Yt;exports.getTeamTopAppearances=St;exports.getTeamTopAssisters=vt;exports.getTeamTopCleanSheets=Ct;exports.getTeamTopMinutesPlayed=_t;exports.getTeamTopScorers=Tt;exports.getTeamUpcomingMatches=pt;exports.getTeamsCommonOpponents=Kt;exports.getTopAssistersFromMatches=oe;exports.getTopGoalContributorsFromMatches=ne;exports.getTopScorersFromMatches=te;exports.isMatchFinished=Lt;exports.isTeamAway=le;exports.isTeamHome=q;exports.isTeamInMatch=It;exports.search=Ne;exports.searchFootball=ve;exports.streakFilters=v;exports.useAllPlayerStatisticsFromMatches=Pt;exports.useMostCardedPlayersFromMatches=Ot;exports.usePlayerStatistics=Gt;exports.usePlayerStatisticsMap=ae;exports.useTopAssistersFromMatches=Mt;exports.useTopGoalContributorsFromMatches=Rt;exports.useTopScorersFromMatches=Ft;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./index-BWAwKR8L.cjs"),E=require("react");function me(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 fe(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 ge(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 pe(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 ye(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 he(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 Te(e){switch(e.entity_type){case"tournament":return me(e);case"player":return fe(e);case"team":return ge(e);case"president":return pe(e);case"venue":return ye(e);case"coach":return he(e);default:throw new Error(`Unknown entity type: ${e.entity_type}`)}}async function ve(e,t){if(!e.query||e.query.trim()==="")return{results:[],query:e.query||""};const o=t||m.getConfig(),{sportal365Sports:s}=o,n=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:n.join(","),language_code:e.languageCode??s?.languageCode??"en"},headers:{"Accept-Language":e.languageCode??s?.languageCode??"en"},next:e.next,config:o});return!i||i.length===0?{results:[],query:e.query}:{results:i.map(Te),query:e.query}}const Se=m.createHttpClient(m.SPORTAL365_SPORTS_SEARCH_DOMAIN);function M(e){return{language:e.language,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code??void 0}}function O(e){if(!(!e||!e.url))return{url:e.url}}function N(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(M),displayAsset:O(e.display_asset),slug:e.slug,providerRef:e.id}}function j(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),gender:e.gender,competitionIds:e.competition_ids,type:e.type,national:e.national,undecided:e.undecided,providerRef:e.id}}function X(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),providerRef:e.id}}function _e(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),gender:e.gender,providerRef:e.id}}function Ce(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),gender:e.gender,birthdate:e.birthdate??void 0,position:e.position??void 0,providerRef:e.id}}function Ae(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),gender:e.gender,birthdate:e.birthdate??void 0,providerRef:e.id}}function Me(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),city:e.city?X(e.city):void 0,providerRef:e.id}}function Oe(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,country:N(e.country),gender:e.gender,type:e.type??void 0,region:e.region??void 0,providerRef:e.id}}function Re(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(M),displayAsset:O(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?j(e.home_team):void 0,awayTeam:e.away_team?j(e.away_team):void 0,providerRef:e.id}}function Pe(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(M),displayAsset:O(e.display_asset),slug:e.slug,tagScore:e.tag_score??void 0,sport:e.sport,providerRef:e.id}}function Ge(e){switch(e.entity_type){case"team":return j(e);case"city":return X(e);case"horse":return _e(e);case"player":return Ce(e);case"coach":return Ae(e);case"referee":return Fe(e);case"venue":return Me(e);case"tournament":case"competition":return Oe(e);case"match":return Re(e);case"country":return Pe(e);default:{const t=e;throw new Error(`Unknown entity type: ${t.entity_type}`)}}}async function Ne(e={},t){const o=t??m.getConfig(),s={};e.name&&(s.name=e.name),e.entityTypes&&e.entityTypes.length>0&&(s.entity_type=e.entityTypes.join(",")),e.sports&&e.sports.length>0&&(s.sport=e.sports.join(",")),e.eventStartTime&&(s.event_start_time=e.eventStartTime),e.ids&&e.ids.length>0&&(s.ids=e.ids.join(",")),e.competitionIds&&e.competitionIds.length>0&&(s.competition_ids=e.competitionIds.join(",")),e.domain&&(s.domain=e.domain),e.inputLanguage&&(s.input_language=e.inputLanguage),e.translationLanguage&&(s.translation_language=e.translationLanguage),e.limit!==void 0&&(s.limit=e.limit.toString()),e.offset!==void 0&&(s.offset=e.offset.toString());const n=await Se.get({path:"/suggest",params:s,next:e.next,config:o});return!n.results||n.results.length===0?{results:[],query:e.name}:{results:n.results.map(Ge),query:e.name}}const De=m.createHttpClient(m.SPORTAL365_STATISTICS_DOMAIN);function Ee(e,t){return{teamId:e.id,teamName:e.name,seasonId:t,statistics:e.statistics.map(o=>({key:o.id,value:o.value,label:o.name}))}}async function be(e,t){const o=t||m.getConfig(),s=e.next??{revalidate:600},n={participant_ids:e.teamId,season_ids:e.seasonId,participant_type:"TEAM"};console.log("[getTeamSeasonStatistics] Fetching team statistics:",{path:"/statistics/aggregate",params:n,teamId:e.teamId,seasonId:e.seasonId});const i=await De.get({path:"/statistics/aggregate",params:n,next:s,config:o});if(console.log("[getTeamSeasonStatistics] API response received:",{hasData:!!i.data,dataLength:i.data?.length??0,rawResponse:i}),!i.data||i.data.length===0)throw console.error("[getTeamSeasonStatistics] No statistics found:",{teamId:e.teamId,seasonId:e.seasonId,rawResponse:i}),new Error(`No statistics found for team ${e.teamId} in season ${e.seasonId}`);console.log("[getTeamSeasonStatistics] Transforming team statistics:",{teamId:i.data[0].id,teamName:i.data[0].name,statisticsCount:i.data[0].statistics?.length??0});const a=Ee(i.data[0],e.seasonId);return console.log("[getTeamSeasonStatistics] Successfully transformed team statistics:",{teamId:a.teamId,teamName:a.teamName,seasonId:a.seasonId,statisticsCount:a.statistics.length}),a}function Ie(e){const t=e.replace(/\/$/,"");function o(s){return`${t}${s}`}return{async get(s){const n=s.config||m.getConfig(),{fansUnited:i}=n;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 a=new URL(o(s.path));if(a.searchParams.set("key",i.apiKey),a.searchParams.set("client_id",i.clientId),s.params)for(const[l,u]of Object.entries(s.params))u!==void 0&&(Array.isArray(u)?u.length>0&&a.searchParams.set(l,u.join(",")):a.searchParams.set(l,u));const d=await fetch(a.toString(),{method:"GET",headers:{Accept:"application/json","Content-Type":"application/json",...s.headers},signal:AbortSignal.timeout(3e4),...s.next&&{next:s.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 Le="https://football.fansunitedapi.com",D=Ie(Le);function He(e){return{id:String(e.id),name:e.name,active:e.active,providerRef:[{provider:"fansunited",id:String(e.id)}]}}function ke(e){const t={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&&(t.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&&(t.assets={logo:e.logo}),e.seasons&&e.seasons.length>0&&(t.seasons=e.seasons.map(He)),e.current_season&&(t.season={id:String(e.current_season.id),name:e.current_season.name,status:e.current_season.active?"ACTIVE":"INACTIVE"}),t}function Ue(e){return e.map(ke)}async function Be(e,t){const o={};e?.lang?o.lang=e.lang:o.lang="EN",e?.sortField&&(o.sort_field=e.sortField),e?.sortOrder&&(o.sort_order=e.sortOrder),e?.page!==void 0&&(o.page=String(e.page)),e?.perPage!==void 0&&(o.per_page=String(e.perPage)),e?.countryId!==void 0&&(o.country_id=String(e.countryId)),e?.active!==void 0&&(o.active=e.active?"1":"0");const s=await D.get({path:"/v1/competitions",params:o,config:t,next:e?.next});return Ue(s.data)}function $e(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 xe(e){return{id:e.id,name:e.name,type:e.type?.toUpperCase()||"LEAGUE",gender:e.gender?.toUpperCase(),country:e.country?$e(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function We(e){return xe(e.data)}async function qe(e,t,o){const s=o||m.getConfig(),n={};t?.lang&&(n.lang=t.lang);const i=await D.get({path:`/v1/competitions/${e}`,params:n,next:t?.next,config:s});return We(i)}function Ve(e){return{id:e.id,name:e.name,code:e.country_code,flag:e.assets?.flag,providerRef:[{provider:"fansunited",id:e.id}]}}function je(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?Ve(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 Ye(e){return je(e.data)}async function Ke(e,t,o){const s=o||m.getConfig(),n={};t?.lang&&(n.lang=t.lang);const i=await D.get({path:`/v1/teams/${e}`,params:n,next:t?.next,config:s});return Ye(i)}function Y(e){return{id:e.id,name:e.name,code:e.country_code,flag:e.assets?.flag,providerRef:[{provider:"fansunited",id:e.id}]}}function ze(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?Y(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Je(e){return{id:e.id,name:e.name,type:e.type?.toUpperCase()||"LEAGUE",gender:e.gender?.toUpperCase(),country:e.country?Y(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function Z(e){return{type:"player",id:e.id,name:e.name,position:e.position,birthdate:e.birth_date,country:e.country?Y(e.country):void 0,assets:e.assets?.headshot?{photo:e.assets.headshot}:void 0,teams:e.teams?.map(ze),competitions:e.competitions?.map(Je),providerRef:[{provider:"fansunited",id:e.id}]}}function Qe(e){return Z(e.data)}function Xe(e){return e.data.map(Z)}async function Ze(e,t,o){const s=o||m.getConfig(),n={};t?.lang&&(n.lang=t.lang);const i=await D.get({path:`/v1/players/${e}`,params:n,next:t?.next,config:s});return Qe(i)}async function we(e,t){const o=t||m.getConfig(),s={};e?.lang&&(s.lang=e.lang),e?.playerIds&&(s.player_ids=e.playerIds),e?.countryId&&(s.country_id=e.countryId),e?.name&&(s.name=e.name),e?.scope&&(s.scope=e.scope),e?.limit!==void 0&&(s.limit=String(e.limit)),e?.page!==void 0&&(s.page=String(e.page)),e?.sortField&&(s.sort_field=e.sortField),e?.sortOrder&&(s.sort_order=e.sortOrder);const n=await D.get({path:"/v1/players",params:s,next:e?.next,config:o});return Xe(n)}function w(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 et(e){return{id:e.id,name:e.name,type:e.type?.toUpperCase()||"LEAGUE",gender:e.gender?.toUpperCase(),country:e.country?w(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function tt(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 t="not_started",o="NOT_STARTED",s="Not Started";return e.finished_at?(t="finished",o="FINISHED",s="Finished"):e.started_at&&(t="live",o="LIVE",s="Live"),{code:t,name:s,type:o}}function ot(e){return{kickoffTime:new Date(e.kickoff_at),currentMinute:e.minute??void 0,currentPeriod:void 0}}function z(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?w(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function st(e){if(!e)return;const t=s=>s?{competitorOne:s.home_goals!==null?String(s.home_goals):"0",competitorTwo:s.away_goals!==null?String(s.away_goals):"0"}:void 0,o=t(e.ft_score);if(o)return{competitorOne:o.competitorOne,competitorTwo:o.competitorTwo,breakdown:{total:o,halfTime:t(e.ht_score),regularTime:t(e.ft_score),extraTime:t(e.aet_score),penaltyShootout:t(e.pen_score)}}}function ee(e){return{id:e.id,status:tt(e),timing:ot(e),competitorOne:z(e.home_team),competitorTwo:z(e.away_team),score:st(e.scores),competition:e.context?.competition?et(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 nt(e){return ee(e.data)}function it(e){return e.data.map(ee)}async function at(e,t,o){const s=o||m.getConfig(),n={};t?.lang&&(n.lang=t.lang);const i=await D.get({path:`/v1/matches/${e}`,params:n,next:t?.next,config:s});return nt(i)}async function rt(e,t){const o=t||m.getConfig(),s={};e?.lang&&(s.lang=e.lang),e?.competitions&&(s.competitions=e.competitions),e?.countries&&(s.countries=e.countries),e?.fromDate&&(s.from_date=e.fromDate),e?.toDate&&(s.to_date=e.toDate),e?.matches&&(s.matches=e.matches),e?.teams&&(s.teams=e.teams),e?.status&&(s.status=e.status),e?.limit!==void 0&&(s.limit=String(e.limit)),e?.page!==void 0&&(s.page=String(e.page)),e?.sortField&&(s.sort_field=e.sortField),e?.sortOrder&&(s.sort_order=e.sortOrder),e?.showDeleted!==void 0&&(s.show_deleted=e.showDeleted?"true":"false");const n=await D.get({path:"/v1/matches",params:s,next:e?.next,config:o});return it(n)}function K(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 ct(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?K(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function lt(e){return{type:"player",id:e.id,name:e.name,position:e.position||void 0,gender:e.gender?.toUpperCase(),birthdate:e.birth_date||void 0,country:e.country?K(e.country):void 0,assets:e.assets?.headshot?{photo:e.assets.headshot}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function dt(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?K(e.country):void 0,assets:e.assets?.logo?{logo:e.assets.logo}:void 0,providerRef:[{provider:"fansunited",id:e.id}]}}function V(e){switch(e.entity_type){case"competition":{const t=ct(e);return{source:"FOOTBALL",entityType:"competition",entityId:e.id,entityData:t}}case"player":{const t=lt(e);return{source:"FOOTBALL",entityType:"player",entityId:e.id,entityData:t}}case"team":{const t=dt(e);return{source:"FOOTBALL",entityType:"team",entityId:e.id,entityData:t}}case"venue":case"coach":return null;default:throw new Error(`Unknown entity type: ${e.entity_type}`)}}async function ut(e,t){if(!e.query||e.query.trim()==="")return[];const o=t||m.getConfig(),s={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}});s.entities=i.join(","),e.lang&&(s.lang=e.lang),e.limit&&(s.limit=String(e.limit));const a=await D.get({path:"/v1/search",params:s,next:e.next,config:o}),r=[];return a.data&&(a.data.competitions&&a.data.competitions.forEach(d=>{const l=V({...d,entity_type:"competition"});l&&r.push(l)}),a.data.teams&&a.data.teams.forEach(d=>{const l=V({...d,entity_type:"team"});l&&r.push(l)}),a.data.players&&a.data.players.forEach(d=>{const l=V({...d,entity_type:"player"});l&&r.push(l)})),r}function mt(e){return!e.seasons||e.seasons.length===0?void 0:e.seasons.find(o=>o.active)??e.seasons[0]}function ft(e,t){const o=new Date,s=t.filter(n=>{const i=n.competitorOne.id===e||n.competitorTwo.id===e,a=n.status.type==="NOT_STARTED",r=new Date(n.timing.kickoffTime)>=o;return i&&a&&r});return s.sort((n,i)=>new Date(n.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime()),s[0]}function gt(e,t){const o=new Date,s=t.filter(n=>{const i=n.competitorOne.id===e||n.competitorTwo.id===e,a=n.status.type==="FINISHED",r=new Date(n.timing.kickoffTime)<=o;return i&&a&&r});return s.sort((n,i)=>new Date(i.timing.kickoffTime).getTime()-new Date(n.timing.kickoffTime).getTime()),s[0]}function pt(e,t){const o=new Date;return t.filter(n=>{const i=n.competitorOne.id===e||n.competitorTwo.id===e,a=n.status.type==="NOT_STARTED"||n.status.type==="LIVE",r=new Date(n.timing.kickoffTime)>=o||n.status.type==="LIVE";return i&&a&&r}).sort((n,i)=>new Date(n.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime())}function yt(e,t){const o=new Date;return t.filter(n=>{const i=n.competitorOne.id===e||n.competitorTwo.id===e,a=n.status.type==="FINISHED",r=new Date(n.timing.kickoffTime)<=o;return i&&a&&r}).sort((n,i)=>new Date(i.timing.kickoffTime).getTime()-new Date(n.timing.kickoffTime).getTime())}function ht(e,t,o){const s=o.filter(a=>a.status.type==="FINISHED"),n=o.filter(a=>a.status.type==="NOT_STARTED"||a.status.type==="POSTPONED"),i=t.entries.map(a=>{const r=a.competitor.id,d=s.filter(f=>f.competitorOne.id===e&&f.competitorTwo.id===r||f.competitorOne.id===r&&f.competitorTwo.id===e),l=n.filter(f=>f.competitorOne.id===e&&f.competitorTwo.id===r||f.competitorOne.id===r&&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"),R=p?y:T,C=p?T:y;let F;R>C?F="W":R===C?F="D":F="L";const P={result:F,score:`${y} - ${T}`,date:f.timing.kickoffTime,matchId:f.id,isUpcoming:!1};p?u=P:c=P}),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:a.rank,teamId:a.competitor.id,teamName:a.competitor.name,teamShortName:a.competitor.shortName,teamLogo:a.competitor.logo,gamesPlayed:a.stats.played??0,points:a.stats.points??0,homeResult:u,awayResult:c}});return{teamId:e,rows:i}}function Tt(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.goals??0)>0).sort((o,s)=>{const n=o.seasonStatistics?.goals??0,i=s.seasonStatistics?.goals??0;if(i!==n)return i-n;const a=o.seasonStatistics?.assists??0;return(s.seasonStatistics?.assists??0)-a}).slice(0,t)}function vt(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.assists??0)>0).sort((o,s)=>{const n=o.seasonStatistics?.assists??0,i=s.seasonStatistics?.assists??0;if(i!==n)return i-n;const a=o.seasonStatistics?.goals??0;return(s.seasonStatistics?.goals??0)-a}).slice(0,t)}function St(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.appearances??0)>0).sort((o,s)=>{const n=o.seasonStatistics?.appearances??0,i=s.seasonStatistics?.appearances??0;if(i!==n)return i-n;const a=o.seasonStatistics?.minutes??0;return(s.seasonStatistics?.minutes??0)-a}).slice(0,t)}function _t(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.minutes??0)>0).sort((o,s)=>{const n=o.seasonStatistics?.minutes??0,i=s.seasonStatistics?.minutes??0;if(i!==n)return i-n;const a=o.seasonStatistics?.appearances??0;return(s.seasonStatistics?.appearances??0)-a}).slice(0,t)}function Ct(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.cleansheets??0)>0).sort((o,s)=>{const n=o.seasonStatistics?.cleansheets??0,i=s.seasonStatistics?.cleansheets??0;if(i!==n)return i-n;const a=o.seasonStatistics?.appearances??0;return(s.seasonStatistics?.appearances??0)-a}).slice(0,t)}function At(e,t=10){return e.players.filter(o=>{const s=o.seasonStatistics?.yellowCards??0,n=o.seasonStatistics?.redCards??0;return s+n>0}).sort((o,s)=>{const n=o.seasonStatistics?.yellowCards??0,i=o.seasonStatistics?.redCards??0,a=s.seasonStatistics?.yellowCards??0,r=s.seasonStatistics?.redCards??0,d=n+i*3,l=a+r*3;return l!==d?l-d:r!==i?r-i:a-n}).slice(0,t)}function b(e){const t=new Map,o=new Map;return e.forEach(s=>{!s.mainEvents||s.mainEvents.length===0||s.mainEvents.forEach(n=>{if(n.primaryPlayer){const i=n.primaryPlayer.id;t.has(i)||t.set(i,{playerId:n.primaryPlayer.id,seasonId:"",teamId:"",goals:0,assists:0,yellowCards:0,redCards:0,appearances:0});const a=t.get(i);o.has(i)||o.set(i,new Set),o.get(i).add(s.id),(n.type==="GOAL"||n.type==="PENALTY_GOAL")&&(a.goals=(a.goals??0)+1),n.type==="YELLOW_CARD"&&(a.yellowCards=(a.yellowCards??0)+1),(n.type==="RED_CARD"||n.type==="YELLOW_RED_CARD")&&(a.redCards=(a.redCards??0)+1)}if(n.secondaryPlayer&&(n.type==="GOAL"||n.type==="PENALTY_GOAL")){const i=n.secondaryPlayer.id;t.has(i)||t.set(i,{playerId:n.secondaryPlayer.id,seasonId:"",teamId:"",goals:0,assists:0,yellowCards:0,redCards:0,appearances:0});const a=t.get(i);a.assists=(a.assists??0)+1,o.has(i)||o.set(i,new Set),o.get(i).add(s.id)}})}),o.forEach((s,n)=>{const i=t.get(n);i&&i.appearances!==void 0&&(i.appearances=s.size)}),t}function U(e){return Array.from(e.values()).map(t=>({...t,totalCards:(t.yellowCards??0)+(t.redCards??0)}))}function te(e,t=10){const o=b(e);return U(o).filter(n=>(n.goals??0)>0).sort((n,i)=>{const a=n.goals??0,r=i.goals??0;if(r!==a)return r-a;const d=n.assists??0;return(i.assists??0)-d}).slice(0,t)}function oe(e,t=10){const o=b(e);return U(o).filter(n=>(n.assists??0)>0).sort((n,i)=>{const a=n.assists??0,r=i.assists??0;if(r!==a)return r-a;const d=n.goals??0;return(i.goals??0)-d}).slice(0,t)}function se(e,t=10){const o=b(e);return U(o).filter(n=>(n.totalCards??0)>0).sort((n,i)=>{const a=(n.yellowCards??0)+(n.redCards??0)*3,r=(i.yellowCards??0)+(i.redCards??0)*3;if(r!==a)return r-a;const d=n.redCards??0,l=i.redCards??0;if(l!==d)return l-d;const u=n.yellowCards??0;return(i.yellowCards??0)-u}).slice(0,t)}function ne(e,t=10){const o=b(e);return U(o).filter(n=>(n.goals??0)+(n.assists??0)>0).sort((n,i)=>{const a=(n.goals??0)+(n.assists??0),r=(i.goals??0)+(i.assists??0);if(r!==a)return r-a;const d=n.goals??0,l=i.goals??0;if(l!==d)return l-d;const u=n.assists??0;return(i.assists??0)-u}).slice(0,t)}function ie(e){const t=b(e);return U(t).sort((s,n)=>{const i=s.appearances??0,a=n.appearances??0;if(a!==i)return a-i;const r=(s.goals??0)+(s.assists??0);return(n.goals??0)+(n.assists??0)-r})}function Ft(e,t=10){return E.useMemo(()=>te(e,t),[e,t])}function Mt(e,t=10){return E.useMemo(()=>oe(e,t),[e,t])}function Ot(e,t=10){return E.useMemo(()=>se(e,t),[e,t])}function Rt(e,t=10){return E.useMemo(()=>ne(e,t),[e,t])}function Pt(e){return E.useMemo(()=>ie(e),[e])}function ae(e){return E.useMemo(()=>b(e),[e])}function Gt(e,t){const o=ae(e);return E.useMemo(()=>o.get(t),[o,t])}const re=["GOAL","PENALTY_GOAL","OWN_GOAL"];function A(e,t){return t>0?e/t*100:0}function H(e,t){return t>0?e/t:0}function Nt(e,t=!1,o=2){return t?`${Math.round(e)}%`:Number.isInteger(e)?e.toString():e.toFixed(o)}function Dt(e,t){const o=typeof e=="string"?parseFloat(e):e;if(isNaN(o)||t===0)return"0";const s=(o/t).toFixed(1);return`${o} (${s} avg)`}function Et(e,t){const o=typeof e=="string"?parseFloat(e):e;return isNaN(o)||t===0?"0.0":(o/t).toFixed(1)}function bt(e){const t=parseFloat(e);return isNaN(t)?"0%":`${Math.round(t)}%`}function ce(e,t,o){if(e.status?.type!=="FINISHED"||!e.score)return null;const s=parseInt(e.score.competitorOne||"0"),n=parseInt(e.score.competitorTwo||"0"),i=o?s:n,a=o?n:s;let r=null,d=null;const l=e.score.breakdown?.halfTime;if(l){const p=parseInt(l.competitorOne||"0"),y=parseInt(l.competitorTwo||"0");r=o?p:y,d=o?y:p}const u=e.statistics;let c=null,f=null;if(u){const p=u.find?.(y=>y.type==="CORNERS");p&&(c=o?p.competitorOne:p.competitorTwo,f=o?p.competitorTwo:p.competitorOne)}return{goalsFor:i,goalsAgainst:a,halfTimeGoalsFor:r,halfTimeGoalsAgainst:d,cornersFor:c,cornersAgainst:f,isWin:i>a,isDraw:i===a,isLoss:i<a}}function q(e,t){return e.competitorOne.id===t}function le(e,t){return e.competitorTwo.id===t}function It(e,t){return q(e,t)||le(e,t)}function Lt(e){return e.status?.type==="FINISHED"}function Ht(e,t){const o=q(e,t);return parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0")}function kt(e,t){const o=q(e,t);return parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0")}function Ut(e,t,o){const s=e.filter(u=>{if(u.status?.type!=="FINISHED"||!u.score)return!1;const c=u.competitorOne.id===t||u.competitorTwo.id===t,f=u.competitorOne.id===o||u.competitorTwo.id===o;return c&&f});let n=0,i=0,a=0,r=0,d=0;s.forEach(u=>{const c=parseInt(u.score?.competitorOne||"0"),f=parseInt(u.score?.competitorTwo||"0"),p=u.competitorOne.id===t,y=p?c:f,T=p?f:c;r+=y,d+=T,y>T?n++:T>y?i++:a++});const l=s.length;return{totalMatches:l,homeTeamWins:n,awayTeamWins:i,draws:a,homeTeamGoals:r,awayTeamGoals:d,homeTeamWinPercentage:l>0?n/l*100:0,awayTeamWinPercentage:l>0?i/l*100:0,drawPercentage:l>0?a/l*100:0,homeTeamAvgGoals:l>0?r/l:0,awayTeamAvgGoals:l>0?d/l:0}}function Bt(e,t,o,s=5){return e.filter(i=>{if(i.status?.type!=="FINISHED"||!i.score)return!1;const a=i.competitorOne.id===t||i.competitorTwo.id===t,r=i.competitorOne.id===o||i.competitorTwo.id===o;return a&&r}).sort((i,a)=>new Date(a.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime()).slice(0,s).map(i=>{const a=parseInt(i.score?.competitorOne||"0"),r=parseInt(i.score?.competitorTwo||"0"),d=i.competitorOne.id===t,l=d?a:r,u=d?r:a;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:a,awayScore:r,venue:i.venue?.name,winner:c}})}function $t(e,t,o){return e.filter(s=>{const n=s.competitorOne.id===t,i=s.competitorTwo.id===t;return!n&&!i?!1:o==="home"?n:i}).map(s=>{const n=s.competitorOne.id===t;return ce(s,t,n)}).filter(s=>s!==null)}function J(e,t,o,s){let n=0;for(const i of e){const a=i.competitorOne.id===t,r=i.competitorTwo.id===t;if(!a&&!r||o==="home"&&!a||o==="away"&&!r||i.status?.type!=="FINISHED")continue;const d=i.mainEvents;if(!d||!Array.isArray(d))continue;const l=d.filter(y=>y.type&&re.includes(y.type)).sort((y,T)=>{const R=y.minute??0,C=T.minute??0;return R!==C?R-C:(y.injuryMinute??0)-(T.injuryMinute??0)});if(l.length===0)continue;const u=l[0],c=a?"ONE":"TWO",f=u.type==="OWN_GOAL";let p;f?p=u.competitorPosition!==c:p=u.competitorPosition===c,(s==="scored"&&p||s==="conceded"&&!p)&&n++}return n}function xt(e,t,o){let s=0;for(const n of e){const i=n.competitorOne.id===t,a=n.competitorTwo.id===t;if(!i&&!a||o==="home"&&!i||o==="away"&&!a||n.status?.type!=="FINISHED")continue;const r=n.mainEvents;r&&Array.isArray(r)&&s++}return s}function Wt(e,t,o){const s=$t(e,t,o),n=s.length;if(n===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=s.reduce((g,S)=>g+S.goalsFor,0),a=s.reduce((g,S)=>g+S.goalsAgainst,0),r=s.filter(g=>g.goalsAgainst===0).length,d=s.filter(g=>g.isWin&&g.goalsAgainst===0).length,l=s.filter(g=>g.goalsFor>0).length,u=s.filter(g=>g.goalsFor===0).length,c=s.filter(g=>g.isLoss&&g.goalsFor===0).length,f=s.filter(g=>g.goalsAgainst>0).length,p=s.filter(g=>g.halfTimeGoalsFor!==null),y=p.length,T=p.filter(g=>{const S=g.halfTimeGoalsFor,L=g.goalsFor-S;return S>0&&L>0}).length,R=J(e,t,o,"scored"),C=xt(e,t,o),F=p.filter(g=>g.halfTimeGoalsFor>g.halfTimeGoalsAgainst).length,P=p.filter(g=>{const S=g.halfTimeGoalsAgainst,L=g.goalsAgainst-S;return S>0&&L>0}).length,B=J(e,t,o,"conceded"),$=p.filter(g=>g.halfTimeGoalsAgainst>g.halfTimeGoalsFor).length,I=s.filter(g=>g.cornersFor!==null),x=I.reduce((g,S)=>g+(S.cornersFor||0),0),W=I.reduce((g,S)=>g+(S.cornersAgainst||0),0);return{played:n,goalsForPerMatch:H(i,n),cleanSheets:A(r,n),wonToNil:A(d,n),scoringRate:A(l,n),scoredInBothHalves:A(T,y),scoredFirst:A(R,C),leadingAtHalfTime:A(F,y),goalsAgainstPerMatch:H(a,n),failedToScore:A(u,n),lostToNil:A(c,n),concedingRate:A(f,n),concededInBothHalves:A(P,y),concededFirst:A(B,C),losingAtHalfTime:A($,y),avgCornersFor:H(x,I.length),avgCornersAgainst:H(W,I.length)}}function qt(e,t){return e.filter(o=>o.status?.type!=="FINISHED"?!1:o.competitorOne.id===t||o.competitorTwo.id===t).map(o=>{const s=o.competitorOne.id===t,n=parseInt(o.score?.competitorOne||"0"),i=parseInt(o.score?.competitorTwo||"0"),a=n+i,r=o.periods;let d=null;if(r&&Array.isArray(r)){const l=r.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:a,halfTimeGoals:d,isHome:s}})}function h(e,t){return e.length===0?0:e.filter(s=>s>t).length/e.length*100}function Vt(e,t){const o=qt(e,t),s=o.filter(c=>c.isHome),n=o.filter(c=>!c.isHome),i=o.map(c=>c.totalGoals),a=s.map(c=>c.totalGoals),r=n.map(c=>c.totalGoals),d=o.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals),l=s.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals),u=n.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals);return{over05:{home:h(a,.5),total:h(i,.5),away:h(r,.5)},over15:{home:h(a,1.5),total:h(i,1.5),away:h(r,1.5)},over25:{home:h(a,2.5),total:h(i,2.5),away:h(r,2.5)},over35:{home:h(a,3.5),total:h(i,3.5),away:h(r,3.5)},over45:{home:h(a,4.5),total:h(i,4.5),away:h(r,4.5)},over55:{home:h(a,5.5),total:h(i,5.5),away:h(r,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 de(e,t){const o=e.competitorOne.id===t,s=e.competitorTwo.id===t;if(!o&&!s||!e.score)return null;const n=parseInt(o?e.score.competitorOne||"0":e.score.competitorTwo||"0"),i=parseInt(o?e.score.competitorTwo||"0":e.score.competitorOne||"0");let a;return n>i?a="W":n<i?a="L":a="D",{result:{score:`${n}:${i}`,result:a,isHome:o},isHome:o}}function jt(e,t,o,s,n,i){const a=t?.entries.find(G=>G.competitor.id===e),r=o?.entries.find(G=>G.competitor.id===e),d=s?.entries.find(G=>G.competitor.id===e),l=n?.entries.find(G=>G.competitor.id===e),u=i?.entries.find(G=>G.competitor.id===e);if(!a)return null;const c=r?.stats?.goalsFor??0,f=d?.stats?.goalsFor??0,p=a?.stats?.goalsFor??0,y=l?.stats?.goalsAgainst??0,T=u?.stats?.goalsAgainst??0,R=a?.stats?.goalsAgainst??0,C=r?.stats?.played??0,F=d?.stats?.played??0,P=a?.stats?.played??0,B=P>0?p/P:0,$=P>0?R/P:0,I=B+$,x=C>0?c/C:0,W=F>0?f/F:0,g=C>0?y/C:0,S=F>0?T/F:0,L=x+g,ue=W+S;return{homeGoals:c,totalGoals:p,awayGoals:f,homeGamesPlayed:C,awayGamesPlayed:F,totalGamesPlayed:P,homeGoalsConceded:y,totalGoalsConceded:R,awayGoalsConceded:T,gfPerMatch:B,gaPerMatch:$,gfGaPerMatch:I,homeGfPerMatch:x,awayGfPerMatch:W,homeGaPerMatch:g,awayGaPerMatch:S,homeGfGaPerMatch:L,awayGfGaPerMatch:ue}}function _(e,t,o,s){const n=e.filter(a=>{const r=a.competitorOne.id===t,d=a.competitorTwo.id===t;return!(!r&&!d||a.status?.type!=="FINISHED"||s==="home"&&!r||s==="away"&&!d)}).sort((a,r)=>new Date(r.timing.kickoffTime).getTime()-new Date(a.timing.kickoffTime).getTime());if(n.length===0)return null;let i=0;for(const a of n){const r=a.competitorOne.id===t;if(o(a,t,r))i++;else break}return i>0?i:null}const v={win:(e,t,o)=>{const s=parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0"),n=parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0");return s>n},draw:e=>e.score?.competitorOne===e.score?.competitorTwo,loss:(e,t,o)=>{const s=parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0"),n=parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0");return s<n},noWin:(e,t,o)=>!v.win(e,t,o),noDraw:e=>!v.draw(e),noDefeat:(e,t,o)=>!v.loss(e,t,o),scored:(e,t,o)=>parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0")>=1,conceded:(e,t,o)=>parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0")>=1,noGoalScored:(e,t,o)=>!v.scored(e,t,o),noGoalConceded:(e,t,o)=>!v.conceded(e,t,o),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,t,o)=>parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0")>=2,concededTwice:(e,t,o)=>parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0")>=2};function k(e,t,o){return{win:_(e,t,v.win,o),draw:_(e,t,v.draw,o),loss:_(e,t,v.loss,o),noWin:_(e,t,v.noWin,o),noDraw:_(e,t,v.noDraw,o),noDefeat:_(e,t,v.noDefeat,o),scored:_(e,t,v.scored,o),conceded:_(e,t,v.conceded,o),noGoalScored:_(e,t,v.noGoalScored,o),noGoalConceded:_(e,t,v.noGoalConceded,o),over25:_(e,t,v.over25,o),under25:_(e,t,v.under25,o),scoredTwice:_(e,t,v.scoredTwice,o),concededTwice:_(e,t,v.concededTwice,o)}}function Yt(e,t,o){const s=k(e,t,"home"),n=k(e,t),i=k(e,o,"away"),a=k(e,o);return[{label:"Consecutive wins",homeTeam:{home:s.win,total:n.win},awayTeam:{total:a.win,home:i.win},colorType:"neutral"},{label:"Consecutive draws",homeTeam:{home:s.draw,total:n.draw},awayTeam:{total:a.draw,home:i.draw},colorType:"neutral"},{label:"Consecutive defeats",homeTeam:{home:s.loss,total:n.loss},awayTeam:{total:a.loss,home:i.loss},colorType:"neutral"},{label:"No win",homeTeam:{home:s.noWin,total:n.noWin},awayTeam:{total:a.noWin,home:i.noWin},colorType:"negative"},{label:"No draw",homeTeam:{home:s.noDraw,total:n.noDraw},awayTeam:{total:a.noDraw,home:i.noDraw},colorType:"neutral"},{label:"No defeat",homeTeam:{home:s.noDefeat,total:n.noDefeat},awayTeam:{total:a.noDefeat,home:i.noDefeat},colorType:"positive"},{label:"Scored at least once",homeTeam:{home:s.scored,total:n.scored},awayTeam:{total:a.scored,home:i.scored},colorType:"positive"},{label:"Conceded at least once",homeTeam:{home:s.conceded,total:n.conceded},awayTeam:{total:a.conceded,home:i.conceded},colorType:"negative"},{label:"No goal scored",homeTeam:{home:s.noGoalScored,total:n.noGoalScored},awayTeam:{total:a.noGoalScored,home:i.noGoalScored},colorType:"neutral"},{label:"No goal conceded",homeTeam:{home:s.noGoalConceded,total:n.noGoalConceded},awayTeam:{total:a.noGoalConceded,home:i.noGoalConceded},colorType:"neutral"},{label:"GS + GC over 2.5",homeTeam:{home:s.over25,total:n.over25},awayTeam:{total:a.over25,home:i.over25},colorType:"neutral"},{label:"GS + GC under 2.5",homeTeam:{home:s.under25,total:n.under25},awayTeam:{total:a.under25,home:i.under25},colorType:"neutral"},{label:"Scored at least twice",homeTeam:{home:s.scoredTwice,total:n.scoredTwice},awayTeam:{total:a.scoredTwice,home:i.scoredTwice},colorType:"positive"},{label:"Conceded at least twice",homeTeam:{home:s.concededTwice,total:n.concededTwice},awayTeam:{total:a.concededTwice,home:i.concededTwice},colorType:"negative"}]}function Q(e,t){const o=new Map;return e.forEach(s=>{if(s.status?.type!=="FINISHED")return;const n=de(s,t);if(!n)return;const i=n.isHome?s.competitorTwo.id:s.competitorOne.id,a=n.isHome?s.competitorTwo:s.competitorOne,r=o.get(i)||{opponentId:i,opponentName:a.name,opponentLogo:a.assets?.logo};n.isHome?r.homeResult=n.result:r.awayResult=n.result,o.set(i,r)}),o}function Kt(e,t,o,s,n,i,a){const r=Q(e,t),d=Q(e,o),l=new Set([...r.keys(),...d.keys(),t,o]),u=[];return l.forEach(c=>{const f=r.get(c),p=d.get(c);if(!f&&!p&&c!==t&&c!==o)return;let y,T;c===t?(y=s,T=i):c===o?(y=n,T=a):(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===t,isAwayTeamRow:c===o})}),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=re;exports.aggregatePlayerStatisticsFromMatches=b;exports.analyzeMatch=ce;exports.calcAverage=H;exports.calcPercentage=A;exports.calculateH2HStats=Ut;exports.calculateStreak=_;exports.formatAsAverage=Et;exports.formatPossessionPercentage=bt;exports.formatStatValue=Nt;exports.formatWithAverage=Dt;exports.getActiveSeason=mt;exports.getAllPlayerStatisticsFromMatches=ie;exports.getFansUnitedFootballCompetition=qe;exports.getFansUnitedFootballCompetitions=Be;exports.getFansUnitedFootballMatch=at;exports.getFansUnitedFootballMatches=rt;exports.getFansUnitedFootballPlayer=Ze;exports.getFansUnitedFootballPlayers=we;exports.getFansUnitedFootballSearch=ut;exports.getFansUnitedFootballTeam=Ke;exports.getMatchResult=de;exports.getMostCardedPlayersFromMatches=se;exports.getOpponentScore=kt;exports.getRecentH2HMeetings=Bt;exports.getTeamFinishedMatches=yt;exports.getTeamGoalStats=jt;exports.getTeamHomeAwayStats=Wt;exports.getTeamMostDecorated=At;exports.getTeamNextMatch=ft;exports.getTeamOverUnderStats=Vt;exports.getTeamPreviousMatch=gt;exports.getTeamResultsTable=ht;exports.getTeamScore=Ht;exports.getTeamSeasonStatistics=be;exports.getTeamStreaks=k;exports.getTeamStreaksComparison=Yt;exports.getTeamTopAppearances=St;exports.getTeamTopAssisters=vt;exports.getTeamTopCleanSheets=Ct;exports.getTeamTopMinutesPlayed=_t;exports.getTeamTopScorers=Tt;exports.getTeamUpcomingMatches=pt;exports.getTeamsCommonOpponents=Kt;exports.getTopAssistersFromMatches=oe;exports.getTopGoalContributorsFromMatches=ne;exports.getTopScorersFromMatches=te;exports.isMatchFinished=Lt;exports.isTeamAway=le;exports.isTeamHome=q;exports.isTeamInMatch=It;exports.search=Ne;exports.searchFootball=ve;exports.streakFilters=v;exports.useAllPlayerStatisticsFromMatches=Pt;exports.useMostCardedPlayersFromMatches=Ot;exports.usePlayerStatistics=Gt;exports.usePlayerStatisticsMap=ae;exports.useTopAssistersFromMatches=Mt;exports.useTopGoalContributorsFromMatches=Rt;exports.useTopScorersFromMatches=Ft;
@@ -1,5 +1,5 @@
1
- import { t as C, g as F, f as se, c as Z, S as ie, a as ae } from "./index-wKgzRn4X.js";
2
- import { b as no, d as so, e as io, h as ao, i as ro, j as co, k as lo, l as uo, m as mo, n as fo, o as po, p as go, q as yo, r as ho, s as To, u as vo, v as So } from "./index-wKgzRn4X.js";
1
+ import { t as C, g as F, f as se, c as Z, S as ie, a as ae } from "./index-D8MJQXDd.js";
2
+ import { b as no, d as so, e as io, h as ao, i as ro, j as co, k as lo, l as uo, m as mo, n as fo, o as po, p as go, q as yo, r as ho, s as To, u as vo, v as So } from "./index-D8MJQXDd.js";
3
3
  import { useMemo as L } from "react";
4
4
  function re(e) {
5
5
  return {
@@ -0,0 +1 @@
1
+ "use strict";const S="__FANSUNITED_DATA_LAYER_CONFIG__";function L(e){globalThis[S]=e}function g(){const e=globalThis[S];if(!e)throw new Error("Data layer config not initialized. Call setConfig() in your root layout.");return e}function D(){return globalThis[S]!==void 0}function O(e){const t=e.replace(/\/$/,"");function o(a){const{sportal365Sports:s}=a;if(!s)throw new Error("Sportal365 Sports API configuration is missing");const c=`${s.username}:${s.password}`;return`Basic ${btoa(c)}`}function n(a){return`${t}${a}`}return{async get(a){const s=a.config||g(),{sportal365Sports:c}=s;if(!c)throw new Error("Sportal365 Sports API configuration is missing");const r=new URL(n(a.path));if(a.params)for(const[_,y]of Object.entries(a.params))y!==void 0&&(Array.isArray(y)?y.length>0&&r.searchParams.set(_,y.join(",")):r.searchParams.set(_,y));const f={Authorization:o(s),"Content-Type":"application/json","X-Project":c.projectId,...a.headers};console.log("[Sportal365 HTTP] Making request:",{url:r.toString(),method:"GET",headers:{...f,Authorization:f.Authorization?"[REDACTED]":void 0},params:a.params});const u=await fetch(r.toString(),{method:"GET",headers:f,signal:c.timeout?AbortSignal.timeout(c.timeout):void 0,...a.next&&{next:a.next}});if(console.log("[Sportal365 HTTP] Response received:",{url:r.toString(),status:u.status,statusText:u.statusText,ok:u.ok,headers:Object.fromEntries(u.headers.entries())}),!u.ok){const _=`Sportal365 API error: ${u.status} ${u.statusText}`;throw console.error("[Sportal365 HTTP] Request failed:",{url:r.toString(),status:u.status,statusText:u.statusText}),new Error(_)}const l=await u.json();return console.log("[Sportal365 HTTP] Response data:",{url:r.toString(),dataType:typeof l,isArray:Array.isArray(l),hasData:!!l,keys:typeof l=="object"&&l!==null?Object.keys(l):void 0,data:l}),l}}}const F="https://football.api.sportal365.com",N="https://sports-statistics.api.sportal365.com",P="https://sports-search.api.sportal365.com",m=O(F);function C(e){if(e)return{id:e.id,name:e.name,slug:e.slug,position:e.position,gender:e.gender,assets:e.assets?{photo:e.assets.thumb?.url,photoTransparent:e.assets.thumb_transparent_background?.url}:void 0}}const x={GOAL:"GOAL",PENALTY_GOAL:"PENALTY_GOAL",OWN_GOAL:"OWN_GOAL",DISALLOWED_GOAL:"DISALLOWED_GOAL",PENALTY_SHOOTOUT_SCORED:"PENALTY_SHOOTOUT_SCORED",PENALTY_SHOOTOUT_MISSED:"PENALTY_SHOOTOUT_MISSED",YELLOW_CARD:"YELLOW_CARD",RED_CARD:"RED_CARD",YELLOW_RED_CARD:"YELLOW_RED_CARD",SUBSTITUTION:"SUBSTITUTION",KICKOFF:"KICKOFF",HALFTIME:"HALFTIME",START_SECOND_HALF:"START_SECOND_HALF",FINISHED:"FINISHED",INJURY_TIME:"INJURY_TIME",PENALTY_AWARDED:"PENALTY_AWARDED",PENALTY_MISSED:"PENALTY_MISSED",PENALTY_SAVED:"PENALTY_SAVED"};function h(e){const t=x[e.type_code];return t?{id:e.id,type:t,competitorPosition:e.team_position==="HOME"?"ONE":"TWO",minute:e.minute,injuryMinute:e.injury_minute,primaryPlayer:C(e.primary_player),secondaryPlayer:C(e.secondary_player),score:e.score?{competitorOne:String(e.score.home),competitorTwo:String(e.score.away)}:void 0}:(console.warn(`Unknown event type: ${e.type_code}`),null)}function i(e,t="sportal365"){if(e)return[{provider:t,id:e}]}function M(e,t){return e?e.find(n=>n.provider===t)?.id:void 0}function H(e,t,o){const n=e??[],a=n.findIndex(s=>s.provider===t);if(a>=0){const s=[...n];return s[a]={provider:t,id:o},s}else return[...n,{provider:t,id:o}]}function $(e){const t={finished_ap:"finished_after_penalties",finished_aet:"finished_after_extra_time",finished:"finished",not_started:"not_started",live:"live",interrupted:"interrupted",cancelled:"cancelled",postponed:"postponed",abandoned:"abandoned"};let o;return e.code&&t[e.code]?o=t[e.code]:o={FINISHED:"finished",NOT_STARTED:"not_started",LIVE:"live",INTERRUPTED:"interrupted",CANCELLED:"cancelled",POSTPONED:"postponed",UNKNOWN:"not_started",ABANDONED:"abandoned"}[e.type]??"not_started",{code:o,name:e.name,shortName:e.short_name,type:e.type}}function b(e){return{id:e.id,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code,slug:e.slug,type:e.type==="national"?"national":"club",gender:e.gender,assets:e.assets?{logo:e.assets.logo?.url,homeKit:e.assets.home_kit?.url,awayKit:e.assets.away_kit?.url,squadImage:e.assets.squad_image?.url}:void 0,metadata:e.shirt_color?{shirtColors:[{type:"home",colorCode:e.shirt_color}]}:void 0,providerRef:i(e.uuid)}}function q(e){return{kickoffTime:new Date(e.kickoff_time),currentMinute:e.minute?.regular_time,phaseStartedAt:e.phase_started_at?new Date(e.phase_started_at):void 0,finishedAt:e.finished_at?new Date(e.finished_at):void 0,firstHalfStartedAt:e.first_half_started_at?new Date(e.first_half_started_at):void 0,secondHalfStartedAt:e.second_half_started_at?new Date(e.second_half_started_at):void 0,extraTimeFirstHalfStartedAt:e.extra_time_first_half_started_at?new Date(e.extra_time_first_half_started_at):void 0,extraTimeSecondHalfStartedAt:e.extra_time_second_half_started_at?new Date(e.extra_time_second_half_started_at):void 0}}function Y(e){if(!e)return;const t=n=>n?{competitorOne:String(n.home),competitorTwo:String(n.away)}:void 0,o=e.after_extra_time??e.regular_time;return{competitorOne:o?.home!=null?String(o.home):null,competitorTwo:o?.away!=null?String(o.away):null,breakdown:{total:t(e.total),halfTime:t(e.half_time),regularTime:t(e.regular_time),extraTime:t(e.extra_time),penaltyShootout:t(e.penalty_shootout),aggregate:t(e.aggregate)}}}function U(e){if(e)return{id:e.id,name:e.name,slug:e.slug,assets:e.assets?.image?.url?{image:e.assets.image.url}:void 0,providerRef:i(e.uuid)}}function W(e){if(e?.length)return e.map(t=>({id:t.id,name:t.name,slug:t.slug,role:t.role??"REFEREE",gender:t.gender}))}function j(e){if(!e.season?.tournament)return;const{tournament:t,...o}=e.season;return{id:t.id,name:t.name,slug:t.slug,type:t.type,region:t.region,country:t.country?{id:t.country.id,name:t.country.name,code:t.country.code??void 0,flag:t.country.assets?.flag?.url,providerRef:i(t.country.uuid)}:void 0,season:{id:o.id,name:o.name,status:o.status},stage:e.stage?{id:e.stage.id,name:e.stage.name,type:e.stage.type}:void 0,assets:t.assets?.logo?.url?{logo:t.assets.logo.url}:void 0,providerRef:i(t.uuid)}}function G(e){if(!e.winner?.match?.id)return;const t={"Regular Time":"REGULAR_TIME","Extra Time":"EXTRA_TIME",Penalties:"PENALTIES"};return{competitorId:e.winner.match.id,reason:e.winner.match.reason?.name?t[e.winner.match.reason.name]:void 0,aggregate:!!e.winner.aggregate}}function k(e){return{id:e.id,slug:e.slug,status:$(e.status),timing:q(e),competitorOne:b(e.home_team),competitorTwo:b(e.away_team),competition:j(e),round:e.round?{id:e.round.id??e.round.key,key:e.round.key,name:e.round.name,type:e.round.type??"REGULAR",providerRef:i(e.round.uuid)}:void 0,group:e.group?{id:e.group.id,name:e.group.name,providerRef:i(e.group.uuid)}:void 0,venue:U(e.venue),officials:W(e.referees),spectators:e.spectators??void 0,score:Y(e.score),mainEvents:e.main_events?.map(h).filter(t=>t!==null),penaltyShootoutEvents:e.penalty_shootout_events?.map(h).filter(t=>t!==null),winner:G(e),coverage:e.coverage==="NOT_LIVE"?"UNKNOWN":e.coverage,lineupStatus:e.lineup_status==="UNCONFIRMED"?"EXPECTED":e.lineup_status,providerRef:i(e.uuid)}}function K(e){const t=e.player;return{id:t.id,name:t.name,slug:t.slug,position:t.position,shirtNumber:e.shirt_number,positionX:e.position_x??void 0,positionY:e.position_y??void 0,country:t.country?{id:t.country.id,name:t.country.name,code:t.country.code,providerRef:i(t.country.uuid)}:void 0,birthdate:t.birthdate,profile:t.profile?{height:t.profile.height,weight:t.profile.weight}:void 0,assets:t.assets?{photo:t.assets.thumb?.url,photoTransparent:t.assets.thumb_transparent_background?.url}:void 0,events:e.events?.map(h).filter(o=>o!==null),providerRef:i(t.uuid)}}function A(e){const t=[],o=[];for(const n of e.players){const a=K(n);n.type.category==="start"?t.push(a):n.type.category==="sub"&&o.push(a)}return{competitorId:e.team_id,formation:e.formation,coach:e.coach?{id:e.coach.id,name:e.coach.name,slug:e.coach.slug,country:e.coach.country?{id:e.coach.country.id,name:e.coach.country.name,code:e.coach.country.code,providerRef:i(e.coach.country.uuid)}:void 0,birthdate:e.coach.birthdate,providerRef:i(e.coach.uuid)}:void 0,starters:t,substitutes:o}}function V(e){return{matchId:e.match_id,confirmed:e.status==="CONFIRMED",competitorOne:A(e.home_team),competitorTwo:A(e.away_team)}}function p(e,t,o,n){return t==null?null:{key:e,value:String(t),label:o,unit:n}}function I(e,t){const o=(t.shots_on??0)+(t.shots_off??0)+(t.shots_blocked??0),n=[p("possession",t.possession,"Possession","%"),p("shots_total",o,"Shots"),p("shots_on_target",t.shots_on,"Shots on Target"),p("shots_off_target",t.shots_off,"Shots off Target"),p("shots_blocked",t.shots_blocked,"Shots Blocked"),p("corners",t.corners,"Corner Kicks"),p("goal_kicks",t.goal_kicks,"Goal Kicks"),p("throw_ins",t.throw_in,"Throw Ins"),p("offsides",t.offside,"Offsides"),p("fouls",t.fouls_committed,"Fouls"),p("yellow_cards",t.yellow_cards,"Yellow Cards"),p("passes",t.pass,"Passes"),p("crosses",t.crosses,"Crosses")];return{competitorId:e,statistics:n.filter(a=>a!==null)}}function B(e){const t=e.find(n=>n.home_team),o=e.find(n=>!n.home_team);if(!t||!o)throw new Error("Missing competitor statistics");return{competitorOne:I(String(t.team.id),t.statistics),competitorTwo:I(String(o.team.id),o.statistics)}}function z(e){const t=e.urls?.find(o=>o.app_type==="desktop")?.url;return{id:e.id,name:e.name,code:e.code,value:e.value??void 0,odds:e.odds,oddsOld:e.odds_old,movement:e.movement==="STABLE"?"NONE":e.movement,url:t}}function X(e){return{type:{id:e.type.id,code:e.type.code,name:e.type.name},period:{id:e.scope.id,type:e.scope.type,name:e.scope.name},selections:e.selections.map(z)}}function J(e){if(!e)return!0;const t=e.replace("#",""),o=parseInt(t.substring(0,2),16),n=parseInt(t.substring(2,4),16),a=parseInt(t.substring(4,6),16);return(.2126*o+.7152*n+.0722*a)/255<.5}function Q(e){const t=e.bookmaker.assets?.[0],o=e.bookmaker.branding||t,n=e.bookmaker.branding?.background_color||t?.background_color,a=e.bookmaker.branding?.text_color||(J(n)?"#FFFFFF":"#000000");return{operator:{id:e.bookmaker.id,name:e.bookmaker.name,url:e.bookmaker.url,branding:o?{backgroundColor:n,textColor:a,logo:t?.logo}:void 0},type:e.type,markets:e.markets.map(X)}}function Z(e,t){return{matchId:e,operators:t.map(Q)}}function E(e){if(e==null||e==="")return;const t=typeof e=="number"?e:parseInt(e,10);return isNaN(t)?void 0:t}function w(e){return{externalId:e.external_id,minute:E(e.elapsed),addedTime:E(e.elapsed_plus),text:e.auto_text,details:e.details,meta:{type:e.type,commentaryType:e.commentary_type,subtype1:e.subtype_1,subtype2:e.subtype_2,timestamp:e.incident_timestamp}}}async function ee(e,t,o){const n=o||g(),{sportal365Sports:a}=n,s=await m.get({path:`/v2/matches/${e}`,params:{language_code:t?.languageCode??a?.languageCode??"en",odd_client:t?.oddClient,odd_type:t?.oddType,scope_type:t?.scopeType,odd_format:t?.oddFormat,market_types:t?.marketTypes,bookmaker_ids:t?.bookmakerIds,optional_data:t?.optionalData},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});return k(s)}async function te(e,t,o){const n=o||g(),{sportal365Sports:a}=n;return(await m.get({path:`/v2/matches/${e}/events`,params:{language_code:t?.languageCode??a?.languageCode??"en"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n})).events.map(h).filter(c=>c!==null)}async function oe(e,t,o){const n=o||g(),{sportal365Sports:a}=n,s=await m.get({path:`/v2/matches/${e}/lineups`,params:{language_code:t?.languageCode??a?.languageCode??"en"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});return V(s)}async function ne(e,t,o){const n=o||g(),{sportal365Sports:a}=n,s=await m.get({path:`/v2/matches/${e}`,params:{language_code:t?.languageCode??a?.languageCode??"en",odd_client:t?.oddClient??a?.oddClient,odd_type:t?.oddType,scope_type:t?.scopeType??"ALL",odd_format:t?.oddFormat??"DECIMAL",market_types:t?.marketTypes,bookmaker_ids:t?.bookmakerIds},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});return Z(e,s.odds??[])}async function ae(e,t,o){const n=o||g(),{sportal365Sports:a}=n,s=await m.get({path:`/events/${e}/teamstats`,params:{language_code:t?.languageCode??a?.languageCode??"en"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});return B(s)}async function se(e,t,o){const n=o||g(),{sportal365Sports:a}=n;return(await m.get({path:`/matches/${e}/commentary`,params:{language_code:t?.languageCode??a?.languageCode??"en"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n})).map(w)}async function ie(e,t){const o=t||g(),{sportal365Sports:n}=o;return(await m.get({path:"/v2/matches",params:{language_code:e.languageCode??n?.languageCode??"en",limit:e.limit.toString(),offset:e.offset.toString(),tournament_ids:e.tournamentIds,season_ids:e.seasonIds,stage_ids:e.stageIds,group_ids:e.groupIds,round_ids:e.roundIds,round_filter:e.roundFilter,from_kickoff_time:e.fromKickoffTime,to_kickoff_time:e.toKickoffTime,team_ids:e.teamIds,team_ids_operator:e.teamIdsOperator,referee_id:e.refereeId,venue_id:e.venueId,player_id:e.playerId,status_types:e.statusTypes,status_codes:e.statusCodes,odd_client:e.oddClient??n?.oddClient,odd_type:e.oddType,scope_type:e.scopeType,odd_format:e.oddFormat,market_types:e.marketTypes,bookmaker_ids:e.bookmakerIds,sort_direction:e.sortDirection,optional_data:e.optionalData},headers:{"Accept-Language":e.languageCode??n?.languageCode??"en"},next:e.next,config:o})).matches.map(k)}function re(e){return{id:e.id,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code,slug:e.slug,type:e.type==="placeholder"||e.type==="club"?"club":"national",gender:e.gender,country:e.country?{id:e.country.id,name:e.country.name,code:e.country.code??void 0,flag:e.country.assets?.flag?.url,providerRef:i(e.country.uuid)}:void 0,venue:e.venue?{id:e.venue.id,name:e.venue.name,slug:e.venue.slug,city:e.venue.city?{id:e.venue.city.id,name:e.venue.city.name,country:e.venue.city.country?{id:e.venue.city.country.id,name:e.venue.city.country.name,code:e.venue.city.country.code??void 0,flag:e.venue.city.country.assets?.flag?.url,providerRef:i(e.venue.city.country.uuid)}:void 0,providerRef:i(e.venue.city.uuid??void 0)}:void 0,country:e.venue.country?{id:e.venue.country.id,name:e.venue.country.name,code:e.venue.country.code??void 0,flag:e.venue.country.assets?.flag?.url,providerRef:i(e.venue.country.uuid)}:void 0,profile:e.venue.profile?{latitude:e.venue.profile.lat,longitude:e.venue.profile.lng,capacity:e.venue.profile.capacity}:void 0,assets:e.venue.assets?.image?.url?{image:e.venue.assets.image.url}:void 0,providerRef:i(e.venue.uuid)}:void 0,coach:e.coach?{id:e.coach.id,name:e.coach.name,slug:e.coach.slug,country:{id:e.coach.country.id,name:e.coach.country.name,code:e.coach.country.code??void 0,flag:e.coach.country.assets?.flag?.url,providerRef:i(e.coach.country.uuid)},birthdate:e.coach.birthdate,providerRef:i(e.coach.uuid)}:void 0,founded:e.founded,assets:e.assets?{logo:e.assets.logo?.url,homeKit:e.assets.home_kit?.url,awayKit:e.assets.away_kit?.url,squadImage:e.assets.squad_image?.url}:void 0,metadata:{shirtColors:e.shirt_colors?.map(t=>({type:t.type,colorCode:t.color_code})),socials:e.social?{website:e.social.web,x:e.social.twitter_id,facebook:e.social.facebook_id,instagram:e.social.instagram_id,wikipedia:e.social.wikipedia_id}:void 0},activeSeasons:e.active_seasons?.map(t=>({id:t.id,name:t.name,slug:t.slug,active:t.status==="ACTIVE",providerRef:i(t.uuid)})),currentSeason:e.current_season?{id:e.current_season.id,name:e.current_season.name,slug:e.current_season.slug,active:e.current_season.status==="ACTIVE",providerRef:i(e.current_season.uuid)}:void 0,form:e.form&&e.form.length>0?{competitorId:e.id,results:e.form.map(t=>{const n=t.participants[0].id===e.uuid?t.participants[1]:t.participants[0],a=t.result[0]?.results.find(r=>r.position==="1")?.value,s=t.result[0]?.results.find(r=>r.position==="2")?.value,c=t.outcome==="win"?"W":t.outcome==="draw"?"D":"L";return{matchId:t.id,result:c,score:a&&s?`${a}-${s}`:void 0,opponent:{id:n.id,name:n.name,logo:n.display_asset?.url},date:new Date(t.start_time),competition:t.competition?{id:t.competition.id,name:t.competition.name}:void 0}}),formString:e.form.map(t=>t.outcome==="win"?"W":t.outcome==="draw"?"D":"L").join("")}:void 0,providerRef:i(e.uuid)}}function de(e){const t=e.player;return{id:t.id,name:t.name,slug:t.slug,position:t.position,shirtNumber:e.shirt_number,country:t.country?{id:t.country.id,name:t.country.name,code:t.country.code??void 0,flag:t.country.assets?.flag?.url,providerRef:i(t.country.uuid)}:void 0,gender:t.gender,birthdate:t.birthdate,profile:{height:t.profile?.height??void 0,weight:t.profile?.weight??void 0},assets:t.assets?{photo:t.assets.thumb?.url,photoTransparent:t.assets.thumb_transparent_background?.url}:void 0,status:e.status,contractType:e.contract_type,contractUntil:e.contract_until??void 0,joinedDate:e.start_date??void 0,providerRef:i(t.id)}}function ce(e){return{id:e.id,name:e.name,slug:e.slug,country:e.country?{id:e.country.id,name:e.country.name,code:e.country.code??void 0,flag:e.country.assets?.flag?.url,providerRef:i(e.country.uuid)}:void 0,birthdate:e.birthdate,providerRef:i(e.uuid)}}function ue(e){return{teamId:e.team.id,teamName:e.team.name,coach:e.coach?ce(e.coach):void 0,players:e.players.map(de)}}function le(e){const t=parseInt(e,10);return isNaN(t)?void 0:t}function d(e,t){const o=e.find(n=>n.name===t);return o?le(o.value):void 0}function ge(e,t){const o=e.statistics;return{playerId:e.player.id,seasonId:e.season.id,teamId:t,appearances:d(o,"played"),started:d(o,"started"),substituteIn:d(o,"substitute_in"),substituteOut:d(o,"substitute_out"),minutes:d(o,"minutes"),minutesSubstitute:d(o,"minutes_substitute"),goals:d(o,"goals"),goalsSubstitute:d(o,"goals_substitute"),penaltyGoals:d(o,"penalty_goals"),ownGoals:d(o,"own_goals"),assists:d(o,"assists"),shots:d(o,"shots"),shotsOnTarget:d(o,"shots_on_target"),yellowCards:d(o,"yellow_cards"),redCards:d(o,"red_cards"),foulsCommitted:d(o,"fouls_committed"),penaltiesCommitted:d(o,"penalties_committed"),penaltiesMissed:d(o,"penalties_missed"),cleansheets:d(o,"cleansheets"),saves:d(o,"saves"),conceded:d(o,"conceded"),caughtBall:d(o,"caught_ball"),penaltiesReceived:d(o,"penalties_received"),offsides:d(o,"offsides"),rawStatistics:o.map(n=>({name:n.name,value:n.value}))}}async function R(e,t){const o=t||g(),{sportal365Sports:n}=o,{seasonIds:a,teamId:s,languageCode:c,next:r}=e,f=r??{revalidate:120},u={season_ids:a.join(","),team_id:s,language_code:c??n?.languageCode??"en"};console.log("[getFootballPlayerSeasonStatistics] Fetching player statistics:",{path:"/v2/statistics/players/season",params:u,teamId:s,seasonIds:a});const l=await m.get({path:"/v2/statistics/players/season",params:u,headers:{"Accept-Language":c??n?.languageCode??"en"},next:f,config:o});console.log("[getFootballPlayerSeasonStatistics] API response received:",{statisticsCount:l.statistics?.length??0,hasStatistics:!!l.statistics&&l.statistics.length>0});const _={};for(const y of l.statistics){const v=y.player.id;_[v]=ge(y,s),console.log("[getFootballPlayerSeasonStatistics] Transformed stats for player:",{playerId:v,playerName:y.player.name,hasStats:!!_[v]})}return console.log("[getFootballPlayerSeasonStatistics] Returning stats map with",Object.keys(_).length,"players"),_}async function me(e,t,o){const n=o||g(),{sportal365Sports:a}=n,s=await m.get({path:`/v2/teams/${e}`,params:{language_code:t?.languageCode??a?.languageCode??"en",optional_data:"form"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});return re(s)}async function pe(e,t,o){const n=o||g(),{sportal365Sports:a}=n;console.log("[getFootballTeamSquad] Fetching squad for team:",e,"with options:",t);const s=await m.get({path:`/v2/teams/${e}/squad`,params:{language_code:t?.languageCode??a?.languageCode??"en",memberStatus:t?.memberStatus??"ACTIVE"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});console.log("[getFootballTeamSquad] Squad API response:",{teamId:s.team?.id,teamName:s.team?.name,playerCount:s.players?.length,hasCoach:!!s.coach});const c=ue(s);if(t?.seasonIds&&t.seasonIds.length>0){console.log("[getFootballTeamSquad] Fetching player statistics for seasonIds:",t.seasonIds);try{const r=await R({seasonIds:t.seasonIds,teamId:e,languageCode:t.languageCode,next:t.next},n);console.log("[getFootballTeamSquad] Player statistics received:",{playerIdsWithStats:Object.keys(r),statsCount:Object.keys(r).length});let f=0;for(const u of c.players){const l=r[u.id];l?(u.seasonStatistics=l,f++,console.log("[getFootballTeamSquad] Attached stats to player:",u.id,u.name)):console.log("[getFootballTeamSquad] No stats found for player:",u.id,u.name)}console.log("[getFootballTeamSquad] Statistics attachment complete:",{totalPlayers:c.players.length,playersWithStats:f,playersWithoutStats:c.players.length-f})}catch(r){console.error("[getFootballTeamSquad] Failed to fetch player statistics:",{error:r instanceof Error?r.message:String(r),stack:r instanceof Error?r.stack:void 0,teamId:e,seasonIds:t.seasonIds})}}else console.log("[getFootballTeamSquad] No seasonIds provided, skipping player statistics fetch");return c}function fe(e){return{id:String(e.id),name:e.name,slug:e.slug,type:e.type,region:e.region,gender:e.gender,country:{id:String(e.country.id),name:e.country.name,flag:e.country.url_flag,providerRef:i(e.country.uuid)},seasons:e.seasons.map(t=>({id:String(t.id),name:t.name,slug:t.slug,active:t.active,providerRef:i(t.uuid)})),assets:e.url_logo?{logo:e.url_logo}:void 0,providerRef:i(e.uuid)}}function _e(e){const t=e.rounds.map(o=>({id:o.id,name:o.name,key:o.key,type:o.type,status:o.status,startDate:o.start_date,endDate:o.end_date,providerRef:i(o.uuid)}));return{id:e.stage.id,name:e.stage.name,slug:e.stage.slug,shortName:e.stage.short_name??void 0,type:e.stage.type,status:e.stage.status,coverage:e.stage.coverage,order:e.stage.order_in_season,startDate:e.stage.start_date,endDate:e.stage.end_date,rounds:t,providerRef:i(e.stage.uuid)}}function ye(e){const{season:t,stages:o}=e,{tournament:n}=t,a={id:n.id,name:n.name,slug:n.slug,type:n.type,region:n.region,gender:n.gender,country:{id:n.country.id,name:n.country.name,code:n.country.code??void 0,flag:n.country.assets?.flag?.url,providerRef:i(n.country.uuid)},assets:n.assets?.logo?.url?{logo:n.assets.logo.url}:void 0,providerRef:i(n.uuid)};return{id:t.id,name:t.name,slug:t.slug,active:t.status==="ACTIVE",status:t.status==="ACTIVE"?"ACTIVE":"INACTIVE",competition:a,stages:o.map(_e),providerRef:i(t.uuid)}}async function he(e,t,o){const n=o||g(),{sportal365Sports:a}=n,s=await m.get({path:`/tournaments/${e}`,params:{language_code:t?.languageCode??a?.languageCode??"en"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});return fe(s)}async function ve(e,t){const o=t||g(),{sportal365Sports:n}=o;if(!e?.seasonId&&!e?.competitionId)throw new Error("Either seasonId or competitionId must be provided");const a={language_code:e?.languageCode??n?.languageCode??"en"};e.seasonId?a.season_id=e.seasonId:e.competitionId&&(a.tournament_id=e.competitionId,e.status&&(a.status=e.status));const s=await m.get({path:"/v2/seasons/details",params:a,headers:{"Accept-Language":e?.languageCode??n?.languageCode??"en"},next:e?.next,config:o});return ye(s)}function T(e){return{championsleague:"championsLeague",europaleague:"europaLeague",conferenceleague:"conferenceLeague",relegation:"relegation",playoff:"playoff",promotion:"promotion"}[e.toLowerCase()]??e.toLowerCase().replace(/_/g,"")}function Se(e){const t=e.toLowerCase();return t==="relegation"?"BOTTOM":t==="playoff"?"MIDDLE":"TOP"}function Te(e,t){if(!t||t.length===0)return;const o=t.map(a=>{const s=a.event,c=s.home_team.id===e,r=c?s.away_team:s.home_team,f=`${s.goal_home}-${s.goal_away}`;return{matchId:s.id.toString(),result:a.outcome,score:f,homeAway:c?"HOME":"AWAY",opponent:{id:r.id.toString(),name:r.name,logo:r.url_logo},date:new Date(s.start_time),competition:void 0}}),n=o.map(a=>a.result).join("");return{competitorId:e.toString(),results:o,formString:n}}function Ce(e){return{key:T(e.code),name:e.name,position:Se(e.type)}}function be(e){const t={played:e.played,won:e.wins,drawn:e.draws,lost:e.defeits,goalsFor:e.goals_for,goalsAgainst:e.goals_against,goalDifference:e.goals_for-e.goals_against,points:e.points},o=e.rules?.length>0?e.rules.map(a=>T(a.code)):void 0,n=Te(e.team.id,e.team.form??[]);return{rank:e.rank,competitor:{id:e.team.id.toString(),name:e.team.name,shortName:e.team.short_name??void 0,logo:e.team.url_logo},stats:t,form:n,rules:o}}function Ae(e){const t=e.map(be),o=new Map;for(const n of e)if(n.rules)for(const a of n.rules){const s=T(a.code);o.has(s)||o.set(s,Ce(a))}return{entries:t,metadata:{legend:Array.from(o.values())}}}async function Ie(e,t){const o=t||g(),{sportal365Sports:n}=o,a=e.expand?.join(","),s=await m.get({path:`/tournaments/seasons/stages/${e.stageId}/standing`,params:{expand:a,language_code:e.languageCode??n?.languageCode??"en"},headers:{"Accept-Language":e.languageCode??n?.languageCode??"en"},next:e.next,config:o});return!s||s.length===0?{entries:[],metadata:{legend:[]}}:Ae(s)}exports.SPORTAL365_SPORTS_SEARCH_DOMAIN=P;exports.SPORTAL365_STATISTICS_DOMAIN=N;exports.addProviderRef=H;exports.createHttpClient=O;exports.footballHttp=m;exports.getConfig=g;exports.getFootballCompetition=he;exports.getFootballMatch=ee;exports.getFootballMatchCommentary=se;exports.getFootballMatchEvents=te;exports.getFootballMatchLineups=oe;exports.getFootballMatchOdds=ne;exports.getFootballMatchStatistics=ae;exports.getFootballMatches=ie;exports.getFootballPlayerSeasonStatistics=R;exports.getFootballSeasonDetails=ve;exports.getFootballStandings=Ie;exports.getFootballTeam=me;exports.getFootballTeamSquad=pe;exports.getProviderRefId=M;exports.isConfigured=D;exports.setConfig=L;exports.toProviderRefArray=i;
@@ -2,13 +2,13 @@ const S = "__FANSUNITED_DATA_LAYER_CONFIG__";
2
2
  function de(e) {
3
3
  globalThis[S] = e;
4
4
  }
5
- function u() {
5
+ function g() {
6
6
  const e = globalThis[S];
7
7
  if (!e)
8
8
  throw new Error("Data layer config not initialized. Call setConfig() in your root layout.");
9
9
  return e;
10
10
  }
11
- function ce() {
11
+ function ue() {
12
12
  return globalThis[S] !== void 0;
13
13
  }
14
14
  function O(e) {
@@ -17,42 +17,72 @@ function O(e) {
17
17
  const { sportal365Sports: a } = s;
18
18
  if (!a)
19
19
  throw new Error("Sportal365 Sports API configuration is missing");
20
- const c = `${a.username}:${a.password}`;
21
- return `Basic ${btoa(c)}`;
20
+ const u = `${a.username}:${a.password}`;
21
+ return `Basic ${btoa(u)}`;
22
22
  }
23
23
  function n(s) {
24
24
  return `${t}${s}`;
25
25
  }
26
26
  return {
27
27
  async get(s) {
28
- const a = s.config || u(), { sportal365Sports: c } = a;
29
- if (!c)
28
+ const a = s.config || g(), { sportal365Sports: u } = a;
29
+ if (!u)
30
30
  throw new Error("Sportal365 Sports API configuration is missing");
31
- const d = new URL(n(s.path));
31
+ const r = new URL(n(s.path));
32
32
  if (s.params)
33
- for (const [f, l] of Object.entries(s.params))
34
- l !== void 0 && (Array.isArray(l) ? l.length > 0 && d.searchParams.set(f, l.join(",")) : d.searchParams.set(f, l));
35
- const p = await fetch(d.toString(), {
33
+ for (const [y, _] of Object.entries(s.params))
34
+ _ !== void 0 && (Array.isArray(_) ? _.length > 0 && r.searchParams.set(y, _.join(",")) : r.searchParams.set(y, _));
35
+ const f = {
36
+ Authorization: o(a),
37
+ "Content-Type": "application/json",
38
+ "X-Project": u.projectId,
39
+ // Merge custom headers (they can override defaults)
40
+ ...s.headers
41
+ };
42
+ console.log("[Sportal365 HTTP] Making request:", {
43
+ url: r.toString(),
36
44
  method: "GET",
37
45
  headers: {
38
- Authorization: o(a),
39
- "Content-Type": "application/json",
40
- "X-Project": c.projectId,
41
- // Merge custom headers (they can override defaults)
42
- ...s.headers
46
+ ...f,
47
+ Authorization: f.Authorization ? "[REDACTED]" : void 0
43
48
  },
44
- signal: c.timeout ? AbortSignal.timeout(c.timeout) : void 0,
49
+ params: s.params
50
+ });
51
+ const c = await fetch(r.toString(), {
52
+ method: "GET",
53
+ headers: f,
54
+ signal: u.timeout ? AbortSignal.timeout(u.timeout) : void 0,
45
55
  // Next.js cache options for ISR/on-demand revalidation
46
56
  ...s.next && { next: s.next }
47
57
  });
48
- if (!p.ok)
49
- throw new Error(`Sportal365 API error: ${p.status} ${p.statusText}`);
50
- return p.json();
58
+ if (console.log("[Sportal365 HTTP] Response received:", {
59
+ url: r.toString(),
60
+ status: c.status,
61
+ statusText: c.statusText,
62
+ ok: c.ok,
63
+ headers: Object.fromEntries(c.headers.entries())
64
+ }), !c.ok) {
65
+ const y = `Sportal365 API error: ${c.status} ${c.statusText}`;
66
+ throw console.error("[Sportal365 HTTP] Request failed:", {
67
+ url: r.toString(),
68
+ status: c.status,
69
+ statusText: c.statusText
70
+ }), new Error(y);
71
+ }
72
+ const l = await c.json();
73
+ return console.log("[Sportal365 HTTP] Response data:", {
74
+ url: r.toString(),
75
+ dataType: typeof l,
76
+ isArray: Array.isArray(l),
77
+ hasData: !!l,
78
+ keys: typeof l == "object" && l !== null ? Object.keys(l) : void 0,
79
+ data: l
80
+ }), l;
51
81
  }
52
82
  };
53
83
  }
54
- const L = "https://football.api.sportal365.com", ue = "https://sports-statistics.api.sportal365.com", le = "https://sports-search.api.sportal365.com", m = O(L);
55
- function T(e) {
84
+ const L = "https://football.api.sportal365.com", ce = "https://sports-statistics.api.sportal365.com", le = "https://sports-search.api.sportal365.com", p = O(L);
85
+ function C(e) {
56
86
  if (e)
57
87
  return {
58
88
  id: e.id,
@@ -91,7 +121,7 @@ const R = {
91
121
  PENALTY_MISSED: "PENALTY_MISSED",
92
122
  PENALTY_SAVED: "PENALTY_SAVED"
93
123
  };
94
- function y(e) {
124
+ function h(e) {
95
125
  const t = R[e.type_code];
96
126
  return t ? {
97
127
  id: e.id,
@@ -99,8 +129,8 @@ function y(e) {
99
129
  competitorPosition: e.team_position === "HOME" ? "ONE" : "TWO",
100
130
  minute: e.minute,
101
131
  injuryMinute: e.injury_minute,
102
- primaryPlayer: T(e.primary_player),
103
- secondaryPlayer: T(e.secondary_player),
132
+ primaryPlayer: C(e.primary_player),
133
+ secondaryPlayer: C(e.secondary_player),
104
134
  score: e.score ? { competitorOne: String(e.score.home), competitorTwo: String(e.score.away) } : void 0
105
135
  } : (console.warn(`Unknown event type: ${e.type_code}`), null);
106
136
  }
@@ -193,7 +223,7 @@ function N(e) {
193
223
  extraTimeSecondHalfStartedAt: e.extra_time_second_half_started_at ? new Date(e.extra_time_second_half_started_at) : void 0
194
224
  };
195
225
  }
196
- function F(e) {
226
+ function x(e) {
197
227
  if (!e) return;
198
228
  const t = (n) => n ? { competitorOne: String(n.home), competitorTwo: String(n.away) } : void 0, o = e.after_extra_time ?? e.regular_time;
199
229
  return {
@@ -209,7 +239,7 @@ function F(e) {
209
239
  }
210
240
  };
211
241
  }
212
- function x(e) {
242
+ function F(e) {
213
243
  if (e)
214
244
  return {
215
245
  id: e.id,
@@ -259,7 +289,7 @@ function M(e) {
259
289
  providerRef: i(t.uuid)
260
290
  };
261
291
  }
262
- function $(e) {
292
+ function H(e) {
263
293
  if (!e.winner?.match?.id) return;
264
294
  const t = {
265
295
  "Regular Time": "REGULAR_TIME",
@@ -293,19 +323,19 @@ function k(e) {
293
323
  name: e.group.name,
294
324
  providerRef: i(e.group.uuid)
295
325
  } : void 0,
296
- venue: x(e.venue),
326
+ venue: F(e.venue),
297
327
  officials: P(e.referees),
298
328
  spectators: e.spectators ?? void 0,
299
- score: F(e.score),
300
- mainEvents: e.main_events?.map(y).filter((t) => t !== null),
301
- penaltyShootoutEvents: e.penalty_shootout_events?.map(y).filter((t) => t !== null),
302
- winner: $(e),
329
+ score: x(e.score),
330
+ mainEvents: e.main_events?.map(h).filter((t) => t !== null),
331
+ penaltyShootoutEvents: e.penalty_shootout_events?.map(h).filter((t) => t !== null),
332
+ winner: H(e),
303
333
  coverage: e.coverage === "NOT_LIVE" ? "UNKNOWN" : e.coverage,
304
334
  lineupStatus: e.lineup_status === "UNCONFIRMED" ? "EXPECTED" : e.lineup_status,
305
335
  providerRef: i(e.uuid)
306
336
  };
307
337
  }
308
- function H(e) {
338
+ function $(e) {
309
339
  const t = e.player;
310
340
  return {
311
341
  id: t.id,
@@ -330,14 +360,14 @@ function H(e) {
330
360
  photo: t.assets.thumb?.url,
331
361
  photoTransparent: t.assets.thumb_transparent_background?.url
332
362
  } : void 0,
333
- events: e.events?.map(y).filter((o) => o !== null),
363
+ events: e.events?.map(h).filter((o) => o !== null),
334
364
  providerRef: i(t.uuid)
335
365
  };
336
366
  }
337
- function I(e) {
367
+ function A(e) {
338
368
  const t = [], o = [];
339
369
  for (const n of e.players) {
340
- const s = H(n);
370
+ const s = $(n);
341
371
  n.type.category === "start" ? t.push(s) : n.type.category === "sub" && o.push(s);
342
372
  }
343
373
  return {
@@ -360,45 +390,45 @@ function I(e) {
360
390
  substitutes: o
361
391
  };
362
392
  }
363
- function Y(e) {
393
+ function q(e) {
364
394
  return {
365
395
  matchId: e.match_id,
366
396
  confirmed: e.status === "CONFIRMED",
367
- competitorOne: I(e.home_team),
368
- competitorTwo: I(e.away_team)
397
+ competitorOne: A(e.home_team),
398
+ competitorTwo: A(e.away_team)
369
399
  };
370
400
  }
371
- function g(e, t, o, n) {
401
+ function m(e, t, o, n) {
372
402
  return t == null ? null : { key: e, value: String(t), label: o, unit: n };
373
403
  }
374
- function A(e, t) {
404
+ function I(e, t) {
375
405
  const o = (t.shots_on ?? 0) + (t.shots_off ?? 0) + (t.shots_blocked ?? 0), n = [
376
- g("possession", t.possession, "Possession", "%"),
377
- g("shots_total", o, "Shots"),
378
- g("shots_on_target", t.shots_on, "Shots on Target"),
379
- g("shots_off_target", t.shots_off, "Shots off Target"),
380
- g("shots_blocked", t.shots_blocked, "Shots Blocked"),
381
- g("corners", t.corners, "Corner Kicks"),
382
- g("goal_kicks", t.goal_kicks, "Goal Kicks"),
383
- g("throw_ins", t.throw_in, "Throw Ins"),
384
- g("offsides", t.offside, "Offsides"),
385
- g("fouls", t.fouls_committed, "Fouls"),
386
- g("yellow_cards", t.yellow_cards, "Yellow Cards"),
387
- g("passes", t.pass, "Passes"),
388
- g("crosses", t.crosses, "Crosses")
406
+ m("possession", t.possession, "Possession", "%"),
407
+ m("shots_total", o, "Shots"),
408
+ m("shots_on_target", t.shots_on, "Shots on Target"),
409
+ m("shots_off_target", t.shots_off, "Shots off Target"),
410
+ m("shots_blocked", t.shots_blocked, "Shots Blocked"),
411
+ m("corners", t.corners, "Corner Kicks"),
412
+ m("goal_kicks", t.goal_kicks, "Goal Kicks"),
413
+ m("throw_ins", t.throw_in, "Throw Ins"),
414
+ m("offsides", t.offside, "Offsides"),
415
+ m("fouls", t.fouls_committed, "Fouls"),
416
+ m("yellow_cards", t.yellow_cards, "Yellow Cards"),
417
+ m("passes", t.pass, "Passes"),
418
+ m("crosses", t.crosses, "Crosses")
389
419
  ];
390
420
  return {
391
421
  competitorId: e,
392
422
  statistics: n.filter((s) => s !== null)
393
423
  };
394
424
  }
395
- function q(e) {
425
+ function Y(e) {
396
426
  const t = e.find((n) => n.home_team), o = e.find((n) => !n.home_team);
397
427
  if (!t || !o)
398
428
  throw new Error("Missing competitor statistics");
399
429
  return {
400
- competitorOne: A(String(t.team.id), t.statistics),
401
- competitorTwo: A(String(o.team.id), o.statistics)
430
+ competitorOne: I(String(t.team.id), t.statistics),
431
+ competitorTwo: I(String(o.team.id), o.statistics)
402
432
  };
403
433
  }
404
434
  function U(e) {
@@ -414,7 +444,7 @@ function U(e) {
414
444
  url: t
415
445
  };
416
446
  }
417
- function W(e) {
447
+ function j(e) {
418
448
  return {
419
449
  type: {
420
450
  id: e.type.id,
@@ -429,13 +459,13 @@ function W(e) {
429
459
  selections: e.selections.map(U)
430
460
  };
431
461
  }
432
- function j(e) {
462
+ function W(e) {
433
463
  if (!e) return !0;
434
464
  const t = e.replace("#", ""), o = parseInt(t.substring(0, 2), 16), n = parseInt(t.substring(2, 4), 16), s = parseInt(t.substring(4, 6), 16);
435
465
  return (0.2126 * o + 0.7152 * n + 0.0722 * s) / 255 < 0.5;
436
466
  }
437
467
  function G(e) {
438
- const t = e.bookmaker.assets?.[0], o = e.bookmaker.branding || t, n = e.bookmaker.branding?.background_color || t?.background_color, s = e.bookmaker.branding?.text_color || (j(n) ? "#FFFFFF" : "#000000");
468
+ const t = e.bookmaker.assets?.[0], o = e.bookmaker.branding || t, n = e.bookmaker.branding?.background_color || t?.background_color, s = e.bookmaker.branding?.text_color || (W(n) ? "#FFFFFF" : "#000000");
439
469
  return {
440
470
  operator: {
441
471
  id: e.bookmaker.id,
@@ -448,7 +478,7 @@ function G(e) {
448
478
  } : void 0
449
479
  },
450
480
  type: e.type,
451
- markets: e.markets.map(W)
481
+ markets: e.markets.map(j)
452
482
  };
453
483
  }
454
484
  function K(e, t) {
@@ -480,7 +510,7 @@ function V(e) {
480
510
  };
481
511
  }
482
512
  async function pe(e, t, o) {
483
- const n = o || u(), { sportal365Sports: s } = n, a = await m.get({
513
+ const n = o || g(), { sportal365Sports: s } = n, a = await p.get({
484
514
  path: `/v2/matches/${e}`,
485
515
  params: {
486
516
  language_code: t?.languageCode ?? s?.languageCode ?? "en",
@@ -501,8 +531,8 @@ async function pe(e, t, o) {
501
531
  return k(a);
502
532
  }
503
533
  async function fe(e, t, o) {
504
- const n = o || u(), { sportal365Sports: s } = n;
505
- return (await m.get({
534
+ const n = o || g(), { sportal365Sports: s } = n;
535
+ return (await p.get({
506
536
  path: `/v2/matches/${e}/events`,
507
537
  params: {
508
538
  language_code: t?.languageCode ?? s?.languageCode ?? "en"
@@ -512,10 +542,10 @@ async function fe(e, t, o) {
512
542
  },
513
543
  next: t?.next,
514
544
  config: n
515
- })).events.map(y).filter((c) => c !== null);
545
+ })).events.map(h).filter((u) => u !== null);
516
546
  }
517
- async function _e(e, t, o) {
518
- const n = o || u(), { sportal365Sports: s } = n, a = await m.get({
547
+ async function ye(e, t, o) {
548
+ const n = o || g(), { sportal365Sports: s } = n, a = await p.get({
519
549
  path: `/v2/matches/${e}/lineups`,
520
550
  params: {
521
551
  language_code: t?.languageCode ?? s?.languageCode ?? "en"
@@ -526,10 +556,10 @@ async function _e(e, t, o) {
526
556
  next: t?.next,
527
557
  config: n
528
558
  });
529
- return Y(a);
559
+ return q(a);
530
560
  }
531
- async function ye(e, t, o) {
532
- const n = o || u(), { sportal365Sports: s } = n, a = await m.get({
561
+ async function _e(e, t, o) {
562
+ const n = o || g(), { sportal365Sports: s } = n, a = await p.get({
533
563
  path: `/v2/matches/${e}`,
534
564
  params: {
535
565
  language_code: t?.languageCode ?? s?.languageCode ?? "en",
@@ -549,7 +579,7 @@ async function ye(e, t, o) {
549
579
  return K(e, a.odds ?? []);
550
580
  }
551
581
  async function he(e, t, o) {
552
- const n = o || u(), { sportal365Sports: s } = n, a = await m.get({
582
+ const n = o || g(), { sportal365Sports: s } = n, a = await p.get({
553
583
  path: `/events/${e}/teamstats`,
554
584
  params: {
555
585
  language_code: t?.languageCode ?? s?.languageCode ?? "en"
@@ -560,11 +590,11 @@ async function he(e, t, o) {
560
590
  next: t?.next,
561
591
  config: n
562
592
  });
563
- return q(a);
593
+ return Y(a);
564
594
  }
565
595
  async function ve(e, t, o) {
566
- const n = o || u(), { sportal365Sports: s } = n;
567
- return (await m.get({
596
+ const n = o || g(), { sportal365Sports: s } = n;
597
+ return (await p.get({
568
598
  path: `/matches/${e}/commentary`,
569
599
  params: {
570
600
  language_code: t?.languageCode ?? s?.languageCode ?? "en"
@@ -577,8 +607,8 @@ async function ve(e, t, o) {
577
607
  })).map(V);
578
608
  }
579
609
  async function Se(e, t) {
580
- const o = t || u(), { sportal365Sports: n } = o;
581
- return (await m.get({
610
+ const o = t || g(), { sportal365Sports: n } = o;
611
+ return (await p.get({
582
612
  path: "/v2/matches",
583
613
  params: {
584
614
  language_code: e.languageCode ?? n?.languageCode ?? "en",
@@ -726,10 +756,10 @@ function B(e) {
726
756
  form: e.form && e.form.length > 0 ? {
727
757
  competitorId: e.id,
728
758
  results: e.form.map((t) => {
729
- const n = t.participants[0].id === e.uuid ? t.participants[1] : t.participants[0], s = t.result[0]?.results.find((d) => d.position === "1")?.value, a = t.result[0]?.results.find((d) => d.position === "2")?.value, c = t.outcome === "win" ? "W" : t.outcome === "draw" ? "D" : "L";
759
+ const n = t.participants[0].id === e.uuid ? t.participants[1] : t.participants[0], s = t.result[0]?.results.find((r) => r.position === "1")?.value, a = t.result[0]?.results.find((r) => r.position === "2")?.value, u = t.outcome === "win" ? "W" : t.outcome === "draw" ? "D" : "L";
730
760
  return {
731
761
  matchId: t.id,
732
- result: c,
762
+ result: u,
733
763
  score: s && a ? `${s}-${a}` : void 0,
734
764
  opponent: {
735
765
  id: n.id,
@@ -748,7 +778,7 @@ function B(e) {
748
778
  providerRef: i(e.uuid)
749
779
  };
750
780
  }
751
- function X(e) {
781
+ function z(e) {
752
782
  const t = e.player;
753
783
  return {
754
784
  id: t.id,
@@ -781,7 +811,7 @@ function X(e) {
781
811
  // Using player.id as provider reference
782
812
  };
783
813
  }
784
- function z(e) {
814
+ function X(e) {
785
815
  return {
786
816
  id: e.id,
787
817
  name: e.name,
@@ -801,15 +831,15 @@ function J(e) {
801
831
  return {
802
832
  teamId: e.team.id,
803
833
  teamName: e.team.name,
804
- coach: e.coach ? z(e.coach) : void 0,
805
- players: e.players.map(X)
834
+ coach: e.coach ? X(e.coach) : void 0,
835
+ players: e.players.map(z)
806
836
  };
807
837
  }
808
838
  function Q(e) {
809
839
  const t = parseInt(e, 10);
810
840
  return isNaN(t) ? void 0 : t;
811
841
  }
812
- function r(e, t) {
842
+ function d(e, t) {
813
843
  const o = e.find((n) => n.name === t);
814
844
  return o ? Q(o.value) : void 0;
815
845
  }
@@ -820,37 +850,37 @@ function Z(e, t) {
820
850
  seasonId: e.season.id,
821
851
  teamId: t,
822
852
  // Core statistics
823
- appearances: r(o, "played"),
824
- started: r(o, "started"),
825
- substituteIn: r(o, "substitute_in"),
826
- substituteOut: r(o, "substitute_out"),
827
- minutes: r(o, "minutes"),
828
- minutesSubstitute: r(o, "minutes_substitute"),
853
+ appearances: d(o, "played"),
854
+ started: d(o, "started"),
855
+ substituteIn: d(o, "substitute_in"),
856
+ substituteOut: d(o, "substitute_out"),
857
+ minutes: d(o, "minutes"),
858
+ minutesSubstitute: d(o, "minutes_substitute"),
829
859
  // Scoring
830
- goals: r(o, "goals"),
831
- goalsSubstitute: r(o, "goals_substitute"),
832
- penaltyGoals: r(o, "penalty_goals"),
833
- ownGoals: r(o, "own_goals"),
834
- assists: r(o, "assists"),
860
+ goals: d(o, "goals"),
861
+ goalsSubstitute: d(o, "goals_substitute"),
862
+ penaltyGoals: d(o, "penalty_goals"),
863
+ ownGoals: d(o, "own_goals"),
864
+ assists: d(o, "assists"),
835
865
  // Shooting
836
- shots: r(o, "shots"),
837
- shotsOnTarget: r(o, "shots_on_target"),
866
+ shots: d(o, "shots"),
867
+ shotsOnTarget: d(o, "shots_on_target"),
838
868
  // Discipline
839
- yellowCards: r(o, "yellow_cards"),
840
- redCards: r(o, "red_cards"),
841
- foulsCommitted: r(o, "fouls_committed"),
842
- penaltiesCommitted: r(o, "penalties_committed"),
869
+ yellowCards: d(o, "yellow_cards"),
870
+ redCards: d(o, "red_cards"),
871
+ foulsCommitted: d(o, "fouls_committed"),
872
+ penaltiesCommitted: d(o, "penalties_committed"),
843
873
  // Penalties
844
- penaltiesMissed: r(o, "penalties_missed"),
874
+ penaltiesMissed: d(o, "penalties_missed"),
845
875
  // Defensive
846
- cleansheets: r(o, "cleansheets"),
876
+ cleansheets: d(o, "cleansheets"),
847
877
  // Goalkeeper-specific
848
- saves: r(o, "saves"),
849
- conceded: r(o, "conceded"),
850
- caughtBall: r(o, "caught_ball"),
851
- penaltiesReceived: r(o, "penalties_received"),
878
+ saves: d(o, "saves"),
879
+ conceded: d(o, "conceded"),
880
+ caughtBall: d(o, "caught_ball"),
881
+ penaltiesReceived: d(o, "penalties_received"),
852
882
  // Other
853
- offsides: r(o, "offsides"),
883
+ offsides: d(o, "offsides"),
854
884
  // Raw statistics array (for any additional stats not mapped above)
855
885
  rawStatistics: o.map((n) => ({
856
886
  name: n.name,
@@ -859,43 +889,43 @@ function Z(e, t) {
859
889
  };
860
890
  }
861
891
  async function w(e, t) {
862
- const o = t || u(), { sportal365Sports: n } = o, { seasonIds: s, teamId: a, languageCode: c, next: d } = e, p = d ?? { revalidate: 120 }, f = {
892
+ const o = t || g(), { sportal365Sports: n } = o, { seasonIds: s, teamId: a, languageCode: u, next: r } = e, f = r ?? { revalidate: 120 }, c = {
863
893
  season_ids: s.join(","),
864
894
  team_id: a,
865
- language_code: c ?? n?.languageCode ?? "en"
895
+ language_code: u ?? n?.languageCode ?? "en"
866
896
  };
867
897
  console.log("[getFootballPlayerSeasonStatistics] Fetching player statistics:", {
868
898
  path: "/v2/statistics/players/season",
869
- params: f,
899
+ params: c,
870
900
  teamId: a,
871
901
  seasonIds: s
872
902
  });
873
- const l = await m.get({
903
+ const l = await p.get({
874
904
  path: "/v2/statistics/players/season",
875
- params: f,
905
+ params: c,
876
906
  headers: {
877
- "Accept-Language": c ?? n?.languageCode ?? "en"
907
+ "Accept-Language": u ?? n?.languageCode ?? "en"
878
908
  },
879
- next: p,
909
+ next: f,
880
910
  config: o
881
911
  });
882
912
  console.log("[getFootballPlayerSeasonStatistics] API response received:", {
883
913
  statisticsCount: l.statistics?.length ?? 0,
884
914
  hasStatistics: !!l.statistics && l.statistics.length > 0
885
915
  });
886
- const _ = {};
887
- for (const h of l.statistics) {
888
- const v = h.player.id;
889
- _[v] = Z(h, a), console.log("[getFootballPlayerSeasonStatistics] Transformed stats for player:", {
916
+ const y = {};
917
+ for (const _ of l.statistics) {
918
+ const v = _.player.id;
919
+ y[v] = Z(_, a), console.log("[getFootballPlayerSeasonStatistics] Transformed stats for player:", {
890
920
  playerId: v,
891
- playerName: h.player.name,
892
- hasStats: !!_[v]
921
+ playerName: _.player.name,
922
+ hasStats: !!y[v]
893
923
  });
894
924
  }
895
- return console.log("[getFootballPlayerSeasonStatistics] Returning stats map with", Object.keys(_).length, "players"), _;
925
+ return console.log("[getFootballPlayerSeasonStatistics] Returning stats map with", Object.keys(y).length, "players"), y;
896
926
  }
897
- async function Ce(e, t, o) {
898
- const n = o || u(), { sportal365Sports: s } = n, a = await m.get({
927
+ async function Te(e, t, o) {
928
+ const n = o || g(), { sportal365Sports: s } = n, a = await p.get({
899
929
  path: `/v2/teams/${e}`,
900
930
  params: {
901
931
  language_code: t?.languageCode ?? s?.languageCode ?? "en",
@@ -909,10 +939,10 @@ async function Ce(e, t, o) {
909
939
  });
910
940
  return B(a);
911
941
  }
912
- async function Te(e, t, o) {
913
- const n = o || u(), { sportal365Sports: s } = n;
942
+ async function Ce(e, t, o) {
943
+ const n = o || g(), { sportal365Sports: s } = n;
914
944
  console.log("[getFootballTeamSquad] Fetching squad for team:", e, "with options:", t);
915
- const a = await m.get({
945
+ const a = await p.get({
916
946
  path: `/v2/teams/${e}/squad`,
917
947
  params: {
918
948
  language_code: t?.languageCode ?? s?.languageCode ?? "en",
@@ -930,11 +960,11 @@ async function Te(e, t, o) {
930
960
  playerCount: a.players?.length,
931
961
  hasCoach: !!a.coach
932
962
  });
933
- const c = J(a);
963
+ const u = J(a);
934
964
  if (t?.seasonIds && t.seasonIds.length > 0) {
935
965
  console.log("[getFootballTeamSquad] Fetching player statistics for seasonIds:", t.seasonIds);
936
966
  try {
937
- const d = await w(
967
+ const r = await w(
938
968
  {
939
969
  seasonIds: t.seasonIds,
940
970
  teamId: e,
@@ -944,30 +974,30 @@ async function Te(e, t, o) {
944
974
  n
945
975
  );
946
976
  console.log("[getFootballTeamSquad] Player statistics received:", {
947
- playerIdsWithStats: Object.keys(d),
948
- statsCount: Object.keys(d).length
977
+ playerIdsWithStats: Object.keys(r),
978
+ statsCount: Object.keys(r).length
949
979
  });
950
- let p = 0;
951
- for (const f of c.players) {
952
- const l = d[f.id];
953
- l ? (f.seasonStatistics = l, p++, console.log("[getFootballTeamSquad] Attached stats to player:", f.id, f.name)) : console.log("[getFootballTeamSquad] No stats found for player:", f.id, f.name);
980
+ let f = 0;
981
+ for (const c of u.players) {
982
+ const l = r[c.id];
983
+ l ? (c.seasonStatistics = l, f++, console.log("[getFootballTeamSquad] Attached stats to player:", c.id, c.name)) : console.log("[getFootballTeamSquad] No stats found for player:", c.id, c.name);
954
984
  }
955
985
  console.log("[getFootballTeamSquad] Statistics attachment complete:", {
956
- totalPlayers: c.players.length,
957
- playersWithStats: p,
958
- playersWithoutStats: c.players.length - p
986
+ totalPlayers: u.players.length,
987
+ playersWithStats: f,
988
+ playersWithoutStats: u.players.length - f
959
989
  });
960
- } catch (d) {
990
+ } catch (r) {
961
991
  console.error("[getFootballTeamSquad] Failed to fetch player statistics:", {
962
- error: d instanceof Error ? d.message : String(d),
963
- stack: d instanceof Error ? d.stack : void 0,
992
+ error: r instanceof Error ? r.message : String(r),
993
+ stack: r instanceof Error ? r.stack : void 0,
964
994
  teamId: e,
965
995
  seasonIds: t.seasonIds
966
996
  });
967
997
  }
968
998
  } else
969
999
  console.log("[getFootballTeamSquad] No seasonIds provided, skipping player statistics fetch");
970
- return c;
1000
+ return u;
971
1001
  }
972
1002
  function ee(e) {
973
1003
  return {
@@ -1054,7 +1084,7 @@ function oe(e) {
1054
1084
  };
1055
1085
  }
1056
1086
  async function be(e, t, o) {
1057
- const n = o || u(), { sportal365Sports: s } = n, a = await m.get({
1087
+ const n = o || g(), { sportal365Sports: s } = n, a = await p.get({
1058
1088
  path: `/tournaments/${e}`,
1059
1089
  params: {
1060
1090
  language_code: t?.languageCode ?? s?.languageCode ?? "en"
@@ -1067,15 +1097,15 @@ async function be(e, t, o) {
1067
1097
  });
1068
1098
  return ee(a);
1069
1099
  }
1070
- async function Ie(e, t) {
1071
- const o = t || u(), { sportal365Sports: n } = o;
1100
+ async function Ae(e, t) {
1101
+ const o = t || g(), { sportal365Sports: n } = o;
1072
1102
  if (!e?.seasonId && !e?.competitionId)
1073
1103
  throw new Error("Either seasonId or competitionId must be provided");
1074
1104
  const s = {
1075
1105
  language_code: e?.languageCode ?? n?.languageCode ?? "en"
1076
1106
  };
1077
1107
  e.seasonId ? s.season_id = e.seasonId : e.competitionId && (s.tournament_id = e.competitionId, e.status && (s.status = e.status));
1078
- const a = await m.get({
1108
+ const a = await p.get({
1079
1109
  path: "/v2/seasons/details",
1080
1110
  params: s,
1081
1111
  headers: {
@@ -1086,7 +1116,7 @@ async function Ie(e, t) {
1086
1116
  });
1087
1117
  return oe(a);
1088
1118
  }
1089
- function C(e) {
1119
+ function T(e) {
1090
1120
  return {
1091
1121
  championsleague: "championsLeague",
1092
1122
  europaleague: "europaLeague",
@@ -1104,16 +1134,16 @@ function se(e, t) {
1104
1134
  if (!t || t.length === 0)
1105
1135
  return;
1106
1136
  const o = t.map((s) => {
1107
- const a = s.event, c = a.home_team.id === e, d = c ? a.away_team : a.home_team, p = `${a.goal_home}-${a.goal_away}`;
1137
+ const a = s.event, u = a.home_team.id === e, r = u ? a.away_team : a.home_team, f = `${a.goal_home}-${a.goal_away}`;
1108
1138
  return {
1109
1139
  matchId: a.id.toString(),
1110
1140
  result: s.outcome,
1111
- score: p,
1112
- homeAway: c ? "HOME" : "AWAY",
1141
+ score: f,
1142
+ homeAway: u ? "HOME" : "AWAY",
1113
1143
  opponent: {
1114
- id: d.id.toString(),
1115
- name: d.name,
1116
- logo: d.url_logo
1144
+ id: r.id.toString(),
1145
+ name: r.name,
1146
+ logo: r.url_logo
1117
1147
  },
1118
1148
  date: new Date(a.start_time),
1119
1149
  competition: void 0
@@ -1128,7 +1158,7 @@ function se(e, t) {
1128
1158
  }
1129
1159
  function ae(e) {
1130
1160
  return {
1131
- key: C(e.code),
1161
+ key: T(e.code),
1132
1162
  name: e.name,
1133
1163
  position: ne(e.type)
1134
1164
  };
@@ -1143,7 +1173,7 @@ function ie(e) {
1143
1173
  goalsAgainst: e.goals_against,
1144
1174
  goalDifference: e.goals_for - e.goals_against,
1145
1175
  points: e.points
1146
- }, o = e.rules?.length > 0 ? e.rules.map((s) => C(s.code)) : void 0, n = se(e.team.id, e.team.form ?? []);
1176
+ }, o = e.rules?.length > 0 ? e.rules.map((s) => T(s.code)) : void 0, n = se(e.team.id, e.team.form ?? []);
1147
1177
  return {
1148
1178
  rank: e.rank,
1149
1179
  competitor: {
@@ -1162,7 +1192,7 @@ function re(e) {
1162
1192
  for (const n of e)
1163
1193
  if (n.rules)
1164
1194
  for (const s of n.rules) {
1165
- const a = C(s.code);
1195
+ const a = T(s.code);
1166
1196
  o.has(a) || o.set(a, ae(s));
1167
1197
  }
1168
1198
  return {
@@ -1172,8 +1202,8 @@ function re(e) {
1172
1202
  }
1173
1203
  };
1174
1204
  }
1175
- async function Ae(e, t) {
1176
- const o = t || u(), { sportal365Sports: n } = o, s = e.expand?.join(","), a = await m.get({
1205
+ async function Ie(e, t) {
1206
+ const o = t || g(), { sportal365Sports: n } = o, s = e.expand?.join(","), a = await p.get({
1177
1207
  path: `/tournaments/seasons/stages/${e.stageId}/standing`,
1178
1208
  params: {
1179
1209
  expand: s,
@@ -1189,26 +1219,26 @@ async function Ae(e, t) {
1189
1219
  }
1190
1220
  export {
1191
1221
  le as S,
1192
- ue as a,
1222
+ ce as a,
1193
1223
  me as b,
1194
1224
  O as c,
1195
1225
  be as d,
1196
1226
  pe as e,
1197
- m as f,
1198
- u as g,
1227
+ p as f,
1228
+ g,
1199
1229
  ve as h,
1200
1230
  fe as i,
1201
- _e as j,
1202
- ye as k,
1231
+ ye as j,
1232
+ _e as k,
1203
1233
  he as l,
1204
1234
  Se as m,
1205
1235
  w as n,
1206
- Ie as o,
1207
- Ae as p,
1208
- Ce as q,
1209
- Te as r,
1236
+ Ae as o,
1237
+ Ie as p,
1238
+ Te as q,
1239
+ Ce as r,
1210
1240
  ge as s,
1211
1241
  i as t,
1212
- ce as u,
1242
+ ue as u,
1213
1243
  de as v
1214
1244
  };
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.5.1",
7
+ "version": "0.5.2",
8
8
  "type": "module",
9
9
  "main": "./fansunited-data-layer.cjs",
10
10
  "module": "./fansunited-data-layer.js",
@@ -1 +0,0 @@
1
- "use strict";const S="__FANSUNITED_DATA_LAYER_CONFIG__";function R(e){globalThis[S]=e}function u(){const e=globalThis[S];if(!e)throw new Error("Data layer config not initialized. Call setConfig() in your root layout.");return e}function D(){return globalThis[S]!==void 0}function O(e){const t=e.replace(/\/$/,"");function o(a){const{sportal365Sports:s}=a;if(!s)throw new Error("Sportal365 Sports API configuration is missing");const c=`${s.username}:${s.password}`;return`Basic ${btoa(c)}`}function n(a){return`${t}${a}`}return{async get(a){const s=a.config||u(),{sportal365Sports:c}=s;if(!c)throw new Error("Sportal365 Sports API configuration is missing");const d=new URL(n(a.path));if(a.params)for(const[f,g]of Object.entries(a.params))g!==void 0&&(Array.isArray(g)?g.length>0&&d.searchParams.set(f,g.join(",")):d.searchParams.set(f,g));const p=await fetch(d.toString(),{method:"GET",headers:{Authorization:o(s),"Content-Type":"application/json","X-Project":c.projectId,...a.headers},signal:c.timeout?AbortSignal.timeout(c.timeout):void 0,...a.next&&{next:a.next}});if(!p.ok)throw new Error(`Sportal365 API error: ${p.status} ${p.statusText}`);return p.json()}}}const F="https://football.api.sportal365.com",N="https://sports-statistics.api.sportal365.com",P="https://sports-search.api.sportal365.com",l=O(F);function T(e){if(e)return{id:e.id,name:e.name,slug:e.slug,position:e.position,gender:e.gender,assets:e.assets?{photo:e.assets.thumb?.url,photoTransparent:e.assets.thumb_transparent_background?.url}:void 0}}const x={GOAL:"GOAL",PENALTY_GOAL:"PENALTY_GOAL",OWN_GOAL:"OWN_GOAL",DISALLOWED_GOAL:"DISALLOWED_GOAL",PENALTY_SHOOTOUT_SCORED:"PENALTY_SHOOTOUT_SCORED",PENALTY_SHOOTOUT_MISSED:"PENALTY_SHOOTOUT_MISSED",YELLOW_CARD:"YELLOW_CARD",RED_CARD:"RED_CARD",YELLOW_RED_CARD:"YELLOW_RED_CARD",SUBSTITUTION:"SUBSTITUTION",KICKOFF:"KICKOFF",HALFTIME:"HALFTIME",START_SECOND_HALF:"START_SECOND_HALF",FINISHED:"FINISHED",INJURY_TIME:"INJURY_TIME",PENALTY_AWARDED:"PENALTY_AWARDED",PENALTY_MISSED:"PENALTY_MISSED",PENALTY_SAVED:"PENALTY_SAVED"};function y(e){const t=x[e.type_code];return t?{id:e.id,type:t,competitorPosition:e.team_position==="HOME"?"ONE":"TWO",minute:e.minute,injuryMinute:e.injury_minute,primaryPlayer:T(e.primary_player),secondaryPlayer:T(e.secondary_player),score:e.score?{competitorOne:String(e.score.home),competitorTwo:String(e.score.away)}:void 0}:(console.warn(`Unknown event type: ${e.type_code}`),null)}function i(e,t="sportal365"){if(e)return[{provider:t,id:e}]}function M(e,t){return e?e.find(n=>n.provider===t)?.id:void 0}function H(e,t,o){const n=e??[],a=n.findIndex(s=>s.provider===t);if(a>=0){const s=[...n];return s[a]={provider:t,id:o},s}else return[...n,{provider:t,id:o}]}function $(e){const t={finished_ap:"finished_after_penalties",finished_aet:"finished_after_extra_time",finished:"finished",not_started:"not_started",live:"live",interrupted:"interrupted",cancelled:"cancelled",postponed:"postponed",abandoned:"abandoned"};let o;return e.code&&t[e.code]?o=t[e.code]:o={FINISHED:"finished",NOT_STARTED:"not_started",LIVE:"live",INTERRUPTED:"interrupted",CANCELLED:"cancelled",POSTPONED:"postponed",UNKNOWN:"not_started",ABANDONED:"abandoned"}[e.type]??"not_started",{code:o,name:e.name,shortName:e.short_name,type:e.type}}function b(e){return{id:e.id,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code,slug:e.slug,type:e.type==="national"?"national":"club",gender:e.gender,assets:e.assets?{logo:e.assets.logo?.url,homeKit:e.assets.home_kit?.url,awayKit:e.assets.away_kit?.url,squadImage:e.assets.squad_image?.url}:void 0,metadata:e.shirt_color?{shirtColors:[{type:"home",colorCode:e.shirt_color}]}:void 0,providerRef:i(e.uuid)}}function Y(e){return{kickoffTime:new Date(e.kickoff_time),currentMinute:e.minute?.regular_time,phaseStartedAt:e.phase_started_at?new Date(e.phase_started_at):void 0,finishedAt:e.finished_at?new Date(e.finished_at):void 0,firstHalfStartedAt:e.first_half_started_at?new Date(e.first_half_started_at):void 0,secondHalfStartedAt:e.second_half_started_at?new Date(e.second_half_started_at):void 0,extraTimeFirstHalfStartedAt:e.extra_time_first_half_started_at?new Date(e.extra_time_first_half_started_at):void 0,extraTimeSecondHalfStartedAt:e.extra_time_second_half_started_at?new Date(e.extra_time_second_half_started_at):void 0}}function q(e){if(!e)return;const t=n=>n?{competitorOne:String(n.home),competitorTwo:String(n.away)}:void 0,o=e.after_extra_time??e.regular_time;return{competitorOne:o?.home!=null?String(o.home):null,competitorTwo:o?.away!=null?String(o.away):null,breakdown:{total:t(e.total),halfTime:t(e.half_time),regularTime:t(e.regular_time),extraTime:t(e.extra_time),penaltyShootout:t(e.penalty_shootout),aggregate:t(e.aggregate)}}}function U(e){if(e)return{id:e.id,name:e.name,slug:e.slug,assets:e.assets?.image?.url?{image:e.assets.image.url}:void 0,providerRef:i(e.uuid)}}function W(e){if(e?.length)return e.map(t=>({id:t.id,name:t.name,slug:t.slug,role:t.role??"REFEREE",gender:t.gender}))}function G(e){if(!e.season?.tournament)return;const{tournament:t,...o}=e.season;return{id:t.id,name:t.name,slug:t.slug,type:t.type,region:t.region,country:t.country?{id:t.country.id,name:t.country.name,code:t.country.code??void 0,flag:t.country.assets?.flag?.url,providerRef:i(t.country.uuid)}:void 0,season:{id:o.id,name:o.name,status:o.status},stage:e.stage?{id:e.stage.id,name:e.stage.name,type:e.stage.type}:void 0,assets:t.assets?.logo?.url?{logo:t.assets.logo.url}:void 0,providerRef:i(t.uuid)}}function j(e){if(!e.winner?.match?.id)return;const t={"Regular Time":"REGULAR_TIME","Extra Time":"EXTRA_TIME",Penalties:"PENALTIES"};return{competitorId:e.winner.match.id,reason:e.winner.match.reason?.name?t[e.winner.match.reason.name]:void 0,aggregate:!!e.winner.aggregate}}function k(e){return{id:e.id,slug:e.slug,status:$(e.status),timing:Y(e),competitorOne:b(e.home_team),competitorTwo:b(e.away_team),competition:G(e),round:e.round?{id:e.round.id??e.round.key,key:e.round.key,name:e.round.name,type:e.round.type??"REGULAR",providerRef:i(e.round.uuid)}:void 0,group:e.group?{id:e.group.id,name:e.group.name,providerRef:i(e.group.uuid)}:void 0,venue:U(e.venue),officials:W(e.referees),spectators:e.spectators??void 0,score:q(e.score),mainEvents:e.main_events?.map(y).filter(t=>t!==null),penaltyShootoutEvents:e.penalty_shootout_events?.map(y).filter(t=>t!==null),winner:j(e),coverage:e.coverage==="NOT_LIVE"?"UNKNOWN":e.coverage,lineupStatus:e.lineup_status==="UNCONFIRMED"?"EXPECTED":e.lineup_status,providerRef:i(e.uuid)}}function K(e){const t=e.player;return{id:t.id,name:t.name,slug:t.slug,position:t.position,shirtNumber:e.shirt_number,positionX:e.position_x??void 0,positionY:e.position_y??void 0,country:t.country?{id:t.country.id,name:t.country.name,code:t.country.code,providerRef:i(t.country.uuid)}:void 0,birthdate:t.birthdate,profile:t.profile?{height:t.profile.height,weight:t.profile.weight}:void 0,assets:t.assets?{photo:t.assets.thumb?.url,photoTransparent:t.assets.thumb_transparent_background?.url}:void 0,events:e.events?.map(y).filter(o=>o!==null),providerRef:i(t.uuid)}}function A(e){const t=[],o=[];for(const n of e.players){const a=K(n);n.type.category==="start"?t.push(a):n.type.category==="sub"&&o.push(a)}return{competitorId:e.team_id,formation:e.formation,coach:e.coach?{id:e.coach.id,name:e.coach.name,slug:e.coach.slug,country:e.coach.country?{id:e.coach.country.id,name:e.coach.country.name,code:e.coach.country.code,providerRef:i(e.coach.country.uuid)}:void 0,birthdate:e.coach.birthdate,providerRef:i(e.coach.uuid)}:void 0,starters:t,substitutes:o}}function V(e){return{matchId:e.match_id,confirmed:e.status==="CONFIRMED",competitorOne:A(e.home_team),competitorTwo:A(e.away_team)}}function m(e,t,o,n){return t==null?null:{key:e,value:String(t),label:o,unit:n}}function I(e,t){const o=(t.shots_on??0)+(t.shots_off??0)+(t.shots_blocked??0),n=[m("possession",t.possession,"Possession","%"),m("shots_total",o,"Shots"),m("shots_on_target",t.shots_on,"Shots on Target"),m("shots_off_target",t.shots_off,"Shots off Target"),m("shots_blocked",t.shots_blocked,"Shots Blocked"),m("corners",t.corners,"Corner Kicks"),m("goal_kicks",t.goal_kicks,"Goal Kicks"),m("throw_ins",t.throw_in,"Throw Ins"),m("offsides",t.offside,"Offsides"),m("fouls",t.fouls_committed,"Fouls"),m("yellow_cards",t.yellow_cards,"Yellow Cards"),m("passes",t.pass,"Passes"),m("crosses",t.crosses,"Crosses")];return{competitorId:e,statistics:n.filter(a=>a!==null)}}function B(e){const t=e.find(n=>n.home_team),o=e.find(n=>!n.home_team);if(!t||!o)throw new Error("Missing competitor statistics");return{competitorOne:I(String(t.team.id),t.statistics),competitorTwo:I(String(o.team.id),o.statistics)}}function X(e){const t=e.urls?.find(o=>o.app_type==="desktop")?.url;return{id:e.id,name:e.name,code:e.code,value:e.value??void 0,odds:e.odds,oddsOld:e.odds_old,movement:e.movement==="STABLE"?"NONE":e.movement,url:t}}function z(e){return{type:{id:e.type.id,code:e.type.code,name:e.type.name},period:{id:e.scope.id,type:e.scope.type,name:e.scope.name},selections:e.selections.map(X)}}function J(e){if(!e)return!0;const t=e.replace("#",""),o=parseInt(t.substring(0,2),16),n=parseInt(t.substring(2,4),16),a=parseInt(t.substring(4,6),16);return(.2126*o+.7152*n+.0722*a)/255<.5}function Q(e){const t=e.bookmaker.assets?.[0],o=e.bookmaker.branding||t,n=e.bookmaker.branding?.background_color||t?.background_color,a=e.bookmaker.branding?.text_color||(J(n)?"#FFFFFF":"#000000");return{operator:{id:e.bookmaker.id,name:e.bookmaker.name,url:e.bookmaker.url,branding:o?{backgroundColor:n,textColor:a,logo:t?.logo}:void 0},type:e.type,markets:e.markets.map(z)}}function Z(e,t){return{matchId:e,operators:t.map(Q)}}function E(e){if(e==null||e==="")return;const t=typeof e=="number"?e:parseInt(e,10);return isNaN(t)?void 0:t}function w(e){return{externalId:e.external_id,minute:E(e.elapsed),addedTime:E(e.elapsed_plus),text:e.auto_text,details:e.details,meta:{type:e.type,commentaryType:e.commentary_type,subtype1:e.subtype_1,subtype2:e.subtype_2,timestamp:e.incident_timestamp}}}async function ee(e,t,o){const n=o||u(),{sportal365Sports:a}=n,s=await l.get({path:`/v2/matches/${e}`,params:{language_code:t?.languageCode??a?.languageCode??"en",odd_client:t?.oddClient,odd_type:t?.oddType,scope_type:t?.scopeType,odd_format:t?.oddFormat,market_types:t?.marketTypes,bookmaker_ids:t?.bookmakerIds,optional_data:t?.optionalData},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});return k(s)}async function te(e,t,o){const n=o||u(),{sportal365Sports:a}=n;return(await l.get({path:`/v2/matches/${e}/events`,params:{language_code:t?.languageCode??a?.languageCode??"en"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n})).events.map(y).filter(c=>c!==null)}async function oe(e,t,o){const n=o||u(),{sportal365Sports:a}=n,s=await l.get({path:`/v2/matches/${e}/lineups`,params:{language_code:t?.languageCode??a?.languageCode??"en"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});return V(s)}async function ne(e,t,o){const n=o||u(),{sportal365Sports:a}=n,s=await l.get({path:`/v2/matches/${e}`,params:{language_code:t?.languageCode??a?.languageCode??"en",odd_client:t?.oddClient??a?.oddClient,odd_type:t?.oddType,scope_type:t?.scopeType??"ALL",odd_format:t?.oddFormat??"DECIMAL",market_types:t?.marketTypes,bookmaker_ids:t?.bookmakerIds},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});return Z(e,s.odds??[])}async function ae(e,t,o){const n=o||u(),{sportal365Sports:a}=n,s=await l.get({path:`/events/${e}/teamstats`,params:{language_code:t?.languageCode??a?.languageCode??"en"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});return B(s)}async function se(e,t,o){const n=o||u(),{sportal365Sports:a}=n;return(await l.get({path:`/matches/${e}/commentary`,params:{language_code:t?.languageCode??a?.languageCode??"en"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n})).map(w)}async function ie(e,t){const o=t||u(),{sportal365Sports:n}=o;return(await l.get({path:"/v2/matches",params:{language_code:e.languageCode??n?.languageCode??"en",limit:e.limit.toString(),offset:e.offset.toString(),tournament_ids:e.tournamentIds,season_ids:e.seasonIds,stage_ids:e.stageIds,group_ids:e.groupIds,round_ids:e.roundIds,round_filter:e.roundFilter,from_kickoff_time:e.fromKickoffTime,to_kickoff_time:e.toKickoffTime,team_ids:e.teamIds,team_ids_operator:e.teamIdsOperator,referee_id:e.refereeId,venue_id:e.venueId,player_id:e.playerId,status_types:e.statusTypes,status_codes:e.statusCodes,odd_client:e.oddClient??n?.oddClient,odd_type:e.oddType,scope_type:e.scopeType,odd_format:e.oddFormat,market_types:e.marketTypes,bookmaker_ids:e.bookmakerIds,sort_direction:e.sortDirection,optional_data:e.optionalData},headers:{"Accept-Language":e.languageCode??n?.languageCode??"en"},next:e.next,config:o})).matches.map(k)}function re(e){return{id:e.id,name:e.name,shortName:e.short_name??void 0,threeLetterCode:e.three_letter_code,slug:e.slug,type:e.type==="placeholder"||e.type==="club"?"club":"national",gender:e.gender,country:e.country?{id:e.country.id,name:e.country.name,code:e.country.code??void 0,flag:e.country.assets?.flag?.url,providerRef:i(e.country.uuid)}:void 0,venue:e.venue?{id:e.venue.id,name:e.venue.name,slug:e.venue.slug,city:e.venue.city?{id:e.venue.city.id,name:e.venue.city.name,country:e.venue.city.country?{id:e.venue.city.country.id,name:e.venue.city.country.name,code:e.venue.city.country.code??void 0,flag:e.venue.city.country.assets?.flag?.url,providerRef:i(e.venue.city.country.uuid)}:void 0,providerRef:i(e.venue.city.uuid??void 0)}:void 0,country:e.venue.country?{id:e.venue.country.id,name:e.venue.country.name,code:e.venue.country.code??void 0,flag:e.venue.country.assets?.flag?.url,providerRef:i(e.venue.country.uuid)}:void 0,profile:e.venue.profile?{latitude:e.venue.profile.lat,longitude:e.venue.profile.lng,capacity:e.venue.profile.capacity}:void 0,assets:e.venue.assets?.image?.url?{image:e.venue.assets.image.url}:void 0,providerRef:i(e.venue.uuid)}:void 0,coach:e.coach?{id:e.coach.id,name:e.coach.name,slug:e.coach.slug,country:{id:e.coach.country.id,name:e.coach.country.name,code:e.coach.country.code??void 0,flag:e.coach.country.assets?.flag?.url,providerRef:i(e.coach.country.uuid)},birthdate:e.coach.birthdate,providerRef:i(e.coach.uuid)}:void 0,founded:e.founded,assets:e.assets?{logo:e.assets.logo?.url,homeKit:e.assets.home_kit?.url,awayKit:e.assets.away_kit?.url,squadImage:e.assets.squad_image?.url}:void 0,metadata:{shirtColors:e.shirt_colors?.map(t=>({type:t.type,colorCode:t.color_code})),socials:e.social?{website:e.social.web,x:e.social.twitter_id,facebook:e.social.facebook_id,instagram:e.social.instagram_id,wikipedia:e.social.wikipedia_id}:void 0},activeSeasons:e.active_seasons?.map(t=>({id:t.id,name:t.name,slug:t.slug,active:t.status==="ACTIVE",providerRef:i(t.uuid)})),currentSeason:e.current_season?{id:e.current_season.id,name:e.current_season.name,slug:e.current_season.slug,active:e.current_season.status==="ACTIVE",providerRef:i(e.current_season.uuid)}:void 0,form:e.form&&e.form.length>0?{competitorId:e.id,results:e.form.map(t=>{const n=t.participants[0].id===e.uuid?t.participants[1]:t.participants[0],a=t.result[0]?.results.find(d=>d.position==="1")?.value,s=t.result[0]?.results.find(d=>d.position==="2")?.value,c=t.outcome==="win"?"W":t.outcome==="draw"?"D":"L";return{matchId:t.id,result:c,score:a&&s?`${a}-${s}`:void 0,opponent:{id:n.id,name:n.name,logo:n.display_asset?.url},date:new Date(t.start_time),competition:t.competition?{id:t.competition.id,name:t.competition.name}:void 0}}),formString:e.form.map(t=>t.outcome==="win"?"W":t.outcome==="draw"?"D":"L").join("")}:void 0,providerRef:i(e.uuid)}}function de(e){const t=e.player;return{id:t.id,name:t.name,slug:t.slug,position:t.position,shirtNumber:e.shirt_number,country:t.country?{id:t.country.id,name:t.country.name,code:t.country.code??void 0,flag:t.country.assets?.flag?.url,providerRef:i(t.country.uuid)}:void 0,gender:t.gender,birthdate:t.birthdate,profile:{height:t.profile?.height??void 0,weight:t.profile?.weight??void 0},assets:t.assets?{photo:t.assets.thumb?.url,photoTransparent:t.assets.thumb_transparent_background?.url}:void 0,status:e.status,contractType:e.contract_type,contractUntil:e.contract_until??void 0,joinedDate:e.start_date??void 0,providerRef:i(t.id)}}function ce(e){return{id:e.id,name:e.name,slug:e.slug,country:e.country?{id:e.country.id,name:e.country.name,code:e.country.code??void 0,flag:e.country.assets?.flag?.url,providerRef:i(e.country.uuid)}:void 0,birthdate:e.birthdate,providerRef:i(e.uuid)}}function ue(e){return{teamId:e.team.id,teamName:e.team.name,coach:e.coach?ce(e.coach):void 0,players:e.players.map(de)}}function le(e){const t=parseInt(e,10);return isNaN(t)?void 0:t}function r(e,t){const o=e.find(n=>n.name===t);return o?le(o.value):void 0}function ge(e,t){const o=e.statistics;return{playerId:e.player.id,seasonId:e.season.id,teamId:t,appearances:r(o,"played"),started:r(o,"started"),substituteIn:r(o,"substitute_in"),substituteOut:r(o,"substitute_out"),minutes:r(o,"minutes"),minutesSubstitute:r(o,"minutes_substitute"),goals:r(o,"goals"),goalsSubstitute:r(o,"goals_substitute"),penaltyGoals:r(o,"penalty_goals"),ownGoals:r(o,"own_goals"),assists:r(o,"assists"),shots:r(o,"shots"),shotsOnTarget:r(o,"shots_on_target"),yellowCards:r(o,"yellow_cards"),redCards:r(o,"red_cards"),foulsCommitted:r(o,"fouls_committed"),penaltiesCommitted:r(o,"penalties_committed"),penaltiesMissed:r(o,"penalties_missed"),cleansheets:r(o,"cleansheets"),saves:r(o,"saves"),conceded:r(o,"conceded"),caughtBall:r(o,"caught_ball"),penaltiesReceived:r(o,"penalties_received"),offsides:r(o,"offsides"),rawStatistics:o.map(n=>({name:n.name,value:n.value}))}}async function L(e,t){const o=t||u(),{sportal365Sports:n}=o,{seasonIds:a,teamId:s,languageCode:c,next:d}=e,p=d??{revalidate:120},f={season_ids:a.join(","),team_id:s,language_code:c??n?.languageCode??"en"};console.log("[getFootballPlayerSeasonStatistics] Fetching player statistics:",{path:"/v2/statistics/players/season",params:f,teamId:s,seasonIds:a});const g=await l.get({path:"/v2/statistics/players/season",params:f,headers:{"Accept-Language":c??n?.languageCode??"en"},next:p,config:o});console.log("[getFootballPlayerSeasonStatistics] API response received:",{statisticsCount:g.statistics?.length??0,hasStatistics:!!g.statistics&&g.statistics.length>0});const _={};for(const h of g.statistics){const v=h.player.id;_[v]=ge(h,s),console.log("[getFootballPlayerSeasonStatistics] Transformed stats for player:",{playerId:v,playerName:h.player.name,hasStats:!!_[v]})}return console.log("[getFootballPlayerSeasonStatistics] Returning stats map with",Object.keys(_).length,"players"),_}async function me(e,t,o){const n=o||u(),{sportal365Sports:a}=n,s=await l.get({path:`/v2/teams/${e}`,params:{language_code:t?.languageCode??a?.languageCode??"en",optional_data:"form"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});return re(s)}async function pe(e,t,o){const n=o||u(),{sportal365Sports:a}=n;console.log("[getFootballTeamSquad] Fetching squad for team:",e,"with options:",t);const s=await l.get({path:`/v2/teams/${e}/squad`,params:{language_code:t?.languageCode??a?.languageCode??"en",memberStatus:t?.memberStatus??"ACTIVE"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});console.log("[getFootballTeamSquad] Squad API response:",{teamId:s.team?.id,teamName:s.team?.name,playerCount:s.players?.length,hasCoach:!!s.coach});const c=ue(s);if(t?.seasonIds&&t.seasonIds.length>0){console.log("[getFootballTeamSquad] Fetching player statistics for seasonIds:",t.seasonIds);try{const d=await L({seasonIds:t.seasonIds,teamId:e,languageCode:t.languageCode,next:t.next},n);console.log("[getFootballTeamSquad] Player statistics received:",{playerIdsWithStats:Object.keys(d),statsCount:Object.keys(d).length});let p=0;for(const f of c.players){const g=d[f.id];g?(f.seasonStatistics=g,p++,console.log("[getFootballTeamSquad] Attached stats to player:",f.id,f.name)):console.log("[getFootballTeamSquad] No stats found for player:",f.id,f.name)}console.log("[getFootballTeamSquad] Statistics attachment complete:",{totalPlayers:c.players.length,playersWithStats:p,playersWithoutStats:c.players.length-p})}catch(d){console.error("[getFootballTeamSquad] Failed to fetch player statistics:",{error:d instanceof Error?d.message:String(d),stack:d instanceof Error?d.stack:void 0,teamId:e,seasonIds:t.seasonIds})}}else console.log("[getFootballTeamSquad] No seasonIds provided, skipping player statistics fetch");return c}function fe(e){return{id:String(e.id),name:e.name,slug:e.slug,type:e.type,region:e.region,gender:e.gender,country:{id:String(e.country.id),name:e.country.name,flag:e.country.url_flag,providerRef:i(e.country.uuid)},seasons:e.seasons.map(t=>({id:String(t.id),name:t.name,slug:t.slug,active:t.active,providerRef:i(t.uuid)})),assets:e.url_logo?{logo:e.url_logo}:void 0,providerRef:i(e.uuid)}}function _e(e){const t=e.rounds.map(o=>({id:o.id,name:o.name,key:o.key,type:o.type,status:o.status,startDate:o.start_date,endDate:o.end_date,providerRef:i(o.uuid)}));return{id:e.stage.id,name:e.stage.name,slug:e.stage.slug,shortName:e.stage.short_name??void 0,type:e.stage.type,status:e.stage.status,coverage:e.stage.coverage,order:e.stage.order_in_season,startDate:e.stage.start_date,endDate:e.stage.end_date,rounds:t,providerRef:i(e.stage.uuid)}}function ye(e){const{season:t,stages:o}=e,{tournament:n}=t,a={id:n.id,name:n.name,slug:n.slug,type:n.type,region:n.region,gender:n.gender,country:{id:n.country.id,name:n.country.name,code:n.country.code??void 0,flag:n.country.assets?.flag?.url,providerRef:i(n.country.uuid)},assets:n.assets?.logo?.url?{logo:n.assets.logo.url}:void 0,providerRef:i(n.uuid)};return{id:t.id,name:t.name,slug:t.slug,active:t.status==="ACTIVE",status:t.status==="ACTIVE"?"ACTIVE":"INACTIVE",competition:a,stages:o.map(_e),providerRef:i(t.uuid)}}async function he(e,t,o){const n=o||u(),{sportal365Sports:a}=n,s=await l.get({path:`/tournaments/${e}`,params:{language_code:t?.languageCode??a?.languageCode??"en"},headers:{"Accept-Language":t?.languageCode??a?.languageCode??"en"},next:t?.next,config:n});return fe(s)}async function ve(e,t){const o=t||u(),{sportal365Sports:n}=o;if(!e?.seasonId&&!e?.competitionId)throw new Error("Either seasonId or competitionId must be provided");const a={language_code:e?.languageCode??n?.languageCode??"en"};e.seasonId?a.season_id=e.seasonId:e.competitionId&&(a.tournament_id=e.competitionId,e.status&&(a.status=e.status));const s=await l.get({path:"/v2/seasons/details",params:a,headers:{"Accept-Language":e?.languageCode??n?.languageCode??"en"},next:e?.next,config:o});return ye(s)}function C(e){return{championsleague:"championsLeague",europaleague:"europaLeague",conferenceleague:"conferenceLeague",relegation:"relegation",playoff:"playoff",promotion:"promotion"}[e.toLowerCase()]??e.toLowerCase().replace(/_/g,"")}function Se(e){const t=e.toLowerCase();return t==="relegation"?"BOTTOM":t==="playoff"?"MIDDLE":"TOP"}function Ce(e,t){if(!t||t.length===0)return;const o=t.map(a=>{const s=a.event,c=s.home_team.id===e,d=c?s.away_team:s.home_team,p=`${s.goal_home}-${s.goal_away}`;return{matchId:s.id.toString(),result:a.outcome,score:p,homeAway:c?"HOME":"AWAY",opponent:{id:d.id.toString(),name:d.name,logo:d.url_logo},date:new Date(s.start_time),competition:void 0}}),n=o.map(a=>a.result).join("");return{competitorId:e.toString(),results:o,formString:n}}function Te(e){return{key:C(e.code),name:e.name,position:Se(e.type)}}function be(e){const t={played:e.played,won:e.wins,drawn:e.draws,lost:e.defeits,goalsFor:e.goals_for,goalsAgainst:e.goals_against,goalDifference:e.goals_for-e.goals_against,points:e.points},o=e.rules?.length>0?e.rules.map(a=>C(a.code)):void 0,n=Ce(e.team.id,e.team.form??[]);return{rank:e.rank,competitor:{id:e.team.id.toString(),name:e.team.name,shortName:e.team.short_name??void 0,logo:e.team.url_logo},stats:t,form:n,rules:o}}function Ae(e){const t=e.map(be),o=new Map;for(const n of e)if(n.rules)for(const a of n.rules){const s=C(a.code);o.has(s)||o.set(s,Te(a))}return{entries:t,metadata:{legend:Array.from(o.values())}}}async function Ie(e,t){const o=t||u(),{sportal365Sports:n}=o,a=e.expand?.join(","),s=await l.get({path:`/tournaments/seasons/stages/${e.stageId}/standing`,params:{expand:a,language_code:e.languageCode??n?.languageCode??"en"},headers:{"Accept-Language":e.languageCode??n?.languageCode??"en"},next:e.next,config:o});return!s||s.length===0?{entries:[],metadata:{legend:[]}}:Ae(s)}exports.SPORTAL365_SPORTS_SEARCH_DOMAIN=P;exports.SPORTAL365_STATISTICS_DOMAIN=N;exports.addProviderRef=H;exports.createHttpClient=O;exports.footballHttp=l;exports.getConfig=u;exports.getFootballCompetition=he;exports.getFootballMatch=ee;exports.getFootballMatchCommentary=se;exports.getFootballMatchEvents=te;exports.getFootballMatchLineups=oe;exports.getFootballMatchOdds=ne;exports.getFootballMatchStatistics=ae;exports.getFootballMatches=ie;exports.getFootballPlayerSeasonStatistics=L;exports.getFootballSeasonDetails=ve;exports.getFootballStandings=Ie;exports.getFootballTeam=me;exports.getFootballTeamSquad=pe;exports.getProviderRefId=M;exports.isConfigured=D;exports.setConfig=R;exports.toProviderRefArray=i;