fansunited-data-layer 0.5.3 → 0.5.4

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":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/api/sportal365-sports/football/statistics/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,KAAK,EAER,wCAAwC,EAC3C,MAAM,uBAAuB,CAAC;AAI/B,YAAY,EAAE,wCAAwC,EAAE,MAAM,uBAAuB,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,iCAAiC,CACnD,OAAO,EAAE,wCAAwC,EACjD,MAAM,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC,CAkCzD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/api/sportal365-sports/football/statistics/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,KAAK,EAER,wCAAwC,EAC3C,MAAM,uBAAuB,CAAC;AAI/B,YAAY,EAAE,wCAAwC,EAAE,MAAM,uBAAuB,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,iCAAiC,CACnD,OAAO,EAAE,wCAAwC,EACjD,MAAM,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC,CA4DzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/api/sportal365-sports/football/teams/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,KAAK,EAAkB,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAoB,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAKnF,YAAY,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3D,YAAY,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,sBAAsB,EAChC,MAAM,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAkB7B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,2BAA2B,EACrC,MAAM,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,aAAa,CAAC,CAoDxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/api/sportal365-sports/football/teams/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,KAAK,EAAkB,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAoB,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAKnF,YAAY,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3D,YAAY,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,sBAAsB,EAChC,MAAM,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAkB7B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,2BAA2B,EACrC,MAAM,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,aAAa,CAAC,CA0ExB"}
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-DuWouLes.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-Hi8oKjxO.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-DMVprv64.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-35LeZQYN.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-DuWouLes.cjs"),D=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:n}=o,s=e.entityTypes&&e.entityTypes.length>0?e.entityTypes:["tournament","player","team","president","venue","coach"],i=await m.footballHttp.get({path:"/search",params:{query:e.query.trim(),entity_type:s.join(","),language_code:e.languageCode??n?.languageCode??"en"},headers:{"Accept-Language":e.languageCode??n?.languageCode??"en"},next:e.next,config: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 E(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:E(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:E(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:E(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:E(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:E(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:E(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:E(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:E(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 Ee(e={},t){const o=t??m.getConfig(),n={};e.name&&(n.name=e.name),e.entityTypes&&e.entityTypes.length>0&&(n.entity_type=e.entityTypes.join(",")),e.sports&&e.sports.length>0&&(n.sport=e.sports.join(",")),e.eventStartTime&&(n.event_start_time=e.eventStartTime),e.ids&&e.ids.length>0&&(n.ids=e.ids.join(",")),e.competitionIds&&e.competitionIds.length>0&&(n.competition_ids=e.competitionIds.join(",")),e.domain&&(n.domain=e.domain),e.inputLanguage&&(n.input_language=e.inputLanguage),e.translationLanguage&&(n.translation_language=e.translationLanguage),e.limit!==void 0&&(n.limit=e.limit.toString()),e.offset!==void 0&&(n.offset=e.offset.toString());const s=await Se.get({path:"/suggest",params:n,next:e.next,config:o});return!s.results||s.results.length===0?{results:[],query:e.name}:{results:s.results.map(Ge),query:e.name}}const be=m.createHttpClient(m.SPORTAL365_STATISTICS_DOMAIN);function De(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 Ne(e,t){const o=t||m.getConfig(),n=e.next??{revalidate:600},s=await be.get({path:"/statistics/aggregate",params:{participant_ids:e.teamId,season_ids:e.seasonId,participant_type:"TEAM"},next:n,config:o});if(!s.data||s.data.length===0)throw new Error(`No statistics found for team ${e.teamId} in season ${e.seasonId}`);return De(s.data[0],e.seasonId)}function Ie(e){const t=e.replace(/\/$/,"");function o(n){return`${t}${n}`}return{async get(n){const s=n.config||m.getConfig(),{fansUnited:i}=s;if(!i)throw new Error("Fans United configuration is missing. Add 'fansUnited' with 'apiKey' and 'clientId' to your config.");if(!i.apiKey||!i.clientId)throw new Error("Fans United configuration requires both 'apiKey' and 'clientId'");const r=new URL(o(n.path));if(r.searchParams.set("key",i.apiKey),r.searchParams.set("client_id",i.clientId),n.params)for(const[d,u]of Object.entries(n.params))u!==void 0&&(Array.isArray(u)?u.length>0&&r.searchParams.set(d,u.join(",")):r.searchParams.set(d,u));const l=await fetch(r.toString(),{method:"GET",headers:{Accept:"application/json","Content-Type":"application/json",...n.headers},signal:AbortSignal.timeout(3e4),...n.next&&{next:n.next}});if(!l.ok){let d=`Fans United API error: ${l.status} ${l.statusText}`;try{const u=await l.text();u&&(d+=` - ${u}`)}catch(u){console.error("[Fans United HTTP] Failed to read error response body:",{error:u instanceof Error?u.message:String(u),status:l.status,statusText:l.statusText})}throw new Error(d)}return l.json()}}}const Le="https://football.fansunitedapi.com",b=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 n=await b.get({path:"/v1/competitions",params:o,config:t,next:e?.next});return Ue(n.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 n=o||m.getConfig(),s={};t?.lang&&(s.lang=t.lang);const i=await b.get({path:`/v1/competitions/${e}`,params:s,next:t?.next,config:n});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 n=o||m.getConfig(),s={};t?.lang&&(s.lang=t.lang);const i=await b.get({path:`/v1/teams/${e}`,params:s,next:t?.next,config:n});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 n=o||m.getConfig(),s={};t?.lang&&(s.lang=t.lang);const i=await b.get({path:`/v1/players/${e}`,params:s,next:t?.next,config:n});return Qe(i)}async function we(e,t){const o=t||m.getConfig(),n={};e?.lang&&(n.lang=e.lang),e?.playerIds&&(n.player_ids=e.playerIds),e?.countryId&&(n.country_id=e.countryId),e?.name&&(n.name=e.name),e?.scope&&(n.scope=e.scope),e?.limit!==void 0&&(n.limit=String(e.limit)),e?.page!==void 0&&(n.page=String(e.page)),e?.sortField&&(n.sort_field=e.sortField),e?.sortOrder&&(n.sort_order=e.sortOrder);const s=await b.get({path:"/v1/players",params:n,next:e?.next,config:o});return Xe(s)}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",n="Not Started";return e.finished_at?(t="finished",o="FINISHED",n="Finished"):e.started_at&&(t="live",o="LIVE",n="Live"),{code:t,name:n,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 nt(e){if(!e)return;const t=n=>n?{competitorOne:n.home_goals!==null?String(n.home_goals):"0",competitorTwo:n.away_goals!==null?String(n.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:nt(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 st(e){return ee(e.data)}function it(e){return e.data.map(ee)}async function rt(e,t,o){const n=o||m.getConfig(),s={};t?.lang&&(s.lang=t.lang);const i=await b.get({path:`/v1/matches/${e}`,params:s,next:t?.next,config:n});return st(i)}async function at(e,t){const o=t||m.getConfig(),n={};e?.lang&&(n.lang=e.lang),e?.competitions&&(n.competitions=e.competitions),e?.countries&&(n.countries=e.countries),e?.fromDate&&(n.from_date=e.fromDate),e?.toDate&&(n.to_date=e.toDate),e?.matches&&(n.matches=e.matches),e?.teams&&(n.teams=e.teams),e?.status&&(n.status=e.status),e?.limit!==void 0&&(n.limit=String(e.limit)),e?.page!==void 0&&(n.page=String(e.page)),e?.sortField&&(n.sort_field=e.sortField),e?.sortOrder&&(n.sort_order=e.sortOrder),e?.showDeleted!==void 0&&(n.show_deleted=e.showDeleted?"true":"false");const s=await b.get({path:"/v1/matches",params:n,next:e?.next,config:o});return it(s)}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(),n={q:e.query.trim()},i=(e.entityTypes&&e.entityTypes.length>0?e.entityTypes:["competition","team","player"]).map(l=>{switch(l){case"team":return"teams";case"player":return"players";case"competition":return"competitions";default:return l}});n.entities=i.join(","),e.lang&&(n.lang=e.lang),e.limit&&(n.limit=String(e.limit));const r=await b.get({path:"/v1/search",params:n,next:e.next,config:o}),a=[];return r.data&&(r.data.competitions&&r.data.competitions.forEach(l=>{const d=V({...l,entity_type:"competition"});d&&a.push(d)}),r.data.teams&&r.data.teams.forEach(l=>{const d=V({...l,entity_type:"team"});d&&a.push(d)}),r.data.players&&r.data.players.forEach(l=>{const d=V({...l,entity_type:"player"});d&&a.push(d)})),a}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,n=t.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="NOT_STARTED",a=new Date(s.timing.kickoffTime)>=o;return i&&r&&a});return n.sort((s,i)=>new Date(s.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime()),n[0]}function gt(e,t){const o=new Date,n=t.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="FINISHED",a=new Date(s.timing.kickoffTime)<=o;return i&&r&&a});return n.sort((s,i)=>new Date(i.timing.kickoffTime).getTime()-new Date(s.timing.kickoffTime).getTime()),n[0]}function pt(e,t){const o=new Date;return t.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="NOT_STARTED"||s.status.type==="LIVE",a=new Date(s.timing.kickoffTime)>=o||s.status.type==="LIVE";return i&&r&&a}).sort((s,i)=>new Date(s.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime())}function yt(e,t){const o=new Date;return t.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="FINISHED",a=new Date(s.timing.kickoffTime)<=o;return i&&r&&a}).sort((s,i)=>new Date(i.timing.kickoffTime).getTime()-new Date(s.timing.kickoffTime).getTime())}function ht(e,t,o){const n=o.filter(r=>r.status.type==="FINISHED"),s=o.filter(r=>r.status.type==="NOT_STARTED"||r.status.type==="POSTPONED"),i=t.entries.map(r=>{const a=r.competitor.id,l=n.filter(f=>f.competitorOne.id===e&&f.competitorTwo.id===a||f.competitorOne.id===a&&f.competitorTwo.id===e),d=s.filter(f=>f.competitorOne.id===e&&f.competitorTwo.id===a||f.competitorOne.id===a&&f.competitorTwo.id===e);let u,c;return l.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}),d.forEach(f=>{const p=f.competitorOne.id===e;p&&!u?u={date:f.timing.kickoffTime,matchId:f.id,isUpcoming:!0}:!p&&!c&&(c={date:f.timing.kickoffTime,matchId:f.id,isUpcoming:!0})}),{rank:r.rank,teamId:r.competitor.id,teamName:r.competitor.name,teamShortName:r.competitor.shortName,teamLogo:r.competitor.logo,gamesPlayed:r.stats.played??0,points:r.stats.points??0,homeResult:u,awayResult:c}});return{teamId:e,rows:i}}function Tt(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.goals??0)>0).sort((o,n)=>{const s=o.seasonStatistics?.goals??0,i=n.seasonStatistics?.goals??0;if(i!==s)return i-s;const r=o.seasonStatistics?.assists??0;return(n.seasonStatistics?.assists??0)-r}).slice(0,t)}function vt(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.assists??0)>0).sort((o,n)=>{const s=o.seasonStatistics?.assists??0,i=n.seasonStatistics?.assists??0;if(i!==s)return i-s;const r=o.seasonStatistics?.goals??0;return(n.seasonStatistics?.goals??0)-r}).slice(0,t)}function St(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.appearances??0)>0).sort((o,n)=>{const s=o.seasonStatistics?.appearances??0,i=n.seasonStatistics?.appearances??0;if(i!==s)return i-s;const r=o.seasonStatistics?.minutes??0;return(n.seasonStatistics?.minutes??0)-r}).slice(0,t)}function _t(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.minutes??0)>0).sort((o,n)=>{const s=o.seasonStatistics?.minutes??0,i=n.seasonStatistics?.minutes??0;if(i!==s)return i-s;const r=o.seasonStatistics?.appearances??0;return(n.seasonStatistics?.appearances??0)-r}).slice(0,t)}function Ct(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.cleansheets??0)>0).sort((o,n)=>{const s=o.seasonStatistics?.cleansheets??0,i=n.seasonStatistics?.cleansheets??0;if(i!==s)return i-s;const r=o.seasonStatistics?.appearances??0;return(n.seasonStatistics?.appearances??0)-r}).slice(0,t)}function At(e,t=10){return e.players.filter(o=>{const n=o.seasonStatistics?.yellowCards??0,s=o.seasonStatistics?.redCards??0;return n+s>0}).sort((o,n)=>{const s=o.seasonStatistics?.yellowCards??0,i=o.seasonStatistics?.redCards??0,r=n.seasonStatistics?.yellowCards??0,a=n.seasonStatistics?.redCards??0,l=s+i*3,d=r+a*3;return d!==l?d-l:a!==i?a-i:r-s}).slice(0,t)}function N(e){const t=new Map,o=new Map;return e.forEach(n=>{!n.mainEvents||n.mainEvents.length===0||n.mainEvents.forEach(s=>{if(s.primaryPlayer){const i=s.primaryPlayer.id;t.has(i)||t.set(i,{playerId:s.primaryPlayer.id,seasonId:"",teamId:"",goals:0,assists:0,yellowCards:0,redCards:0,appearances:0});const r=t.get(i);o.has(i)||o.set(i,new Set),o.get(i).add(n.id),(s.type==="GOAL"||s.type==="PENALTY_GOAL")&&(r.goals=(r.goals??0)+1),s.type==="YELLOW_CARD"&&(r.yellowCards=(r.yellowCards??0)+1),(s.type==="RED_CARD"||s.type==="YELLOW_RED_CARD")&&(r.redCards=(r.redCards??0)+1)}if(s.secondaryPlayer&&(s.type==="GOAL"||s.type==="PENALTY_GOAL")){const i=s.secondaryPlayer.id;t.has(i)||t.set(i,{playerId:s.secondaryPlayer.id,seasonId:"",teamId:"",goals:0,assists:0,yellowCards:0,redCards:0,appearances:0});const r=t.get(i);r.assists=(r.assists??0)+1,o.has(i)||o.set(i,new Set),o.get(i).add(n.id)}})}),o.forEach((n,s)=>{const i=t.get(s);i&&i.appearances!==void 0&&(i.appearances=n.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=N(e);return U(o).filter(s=>(s.goals??0)>0).sort((s,i)=>{const r=s.goals??0,a=i.goals??0;if(a!==r)return a-r;const l=s.assists??0;return(i.assists??0)-l}).slice(0,t)}function oe(e,t=10){const o=N(e);return U(o).filter(s=>(s.assists??0)>0).sort((s,i)=>{const r=s.assists??0,a=i.assists??0;if(a!==r)return a-r;const l=s.goals??0;return(i.goals??0)-l}).slice(0,t)}function ne(e,t=10){const o=N(e);return U(o).filter(s=>(s.totalCards??0)>0).sort((s,i)=>{const r=(s.yellowCards??0)+(s.redCards??0)*3,a=(i.yellowCards??0)+(i.redCards??0)*3;if(a!==r)return a-r;const l=s.redCards??0,d=i.redCards??0;if(d!==l)return d-l;const u=s.yellowCards??0;return(i.yellowCards??0)-u}).slice(0,t)}function se(e,t=10){const o=N(e);return U(o).filter(s=>(s.goals??0)+(s.assists??0)>0).sort((s,i)=>{const r=(s.goals??0)+(s.assists??0),a=(i.goals??0)+(i.assists??0);if(a!==r)return a-r;const l=s.goals??0,d=i.goals??0;if(d!==l)return d-l;const u=s.assists??0;return(i.assists??0)-u}).slice(0,t)}function ie(e){const t=N(e);return U(t).sort((n,s)=>{const i=n.appearances??0,r=s.appearances??0;if(r!==i)return r-i;const a=(n.goals??0)+(n.assists??0);return(s.goals??0)+(s.assists??0)-a})}function Ft(e,t=10){return D.useMemo(()=>te(e,t),[e,t])}function Mt(e,t=10){return D.useMemo(()=>oe(e,t),[e,t])}function Ot(e,t=10){return D.useMemo(()=>ne(e,t),[e,t])}function Rt(e,t=10){return D.useMemo(()=>se(e,t),[e,t])}function Pt(e){return D.useMemo(()=>ie(e),[e])}function re(e){return D.useMemo(()=>N(e),[e])}function Gt(e,t){const o=re(e);return D.useMemo(()=>o.get(t),[o,t])}const ae=["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 Et(e,t=!1,o=2){return t?`${Math.round(e)}%`:Number.isInteger(e)?e.toString():e.toFixed(o)}function bt(e,t){const o=typeof e=="string"?parseFloat(e):e;if(isNaN(o)||t===0)return"0";const n=(o/t).toFixed(1);return`${o} (${n} avg)`}function Dt(e,t){const o=typeof e=="string"?parseFloat(e):e;return isNaN(o)||t===0?"0.0":(o/t).toFixed(1)}function Nt(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 n=parseInt(e.score.competitorOne||"0"),s=parseInt(e.score.competitorTwo||"0"),i=o?n:s,r=o?s:n;let a=null,l=null;const d=e.score.breakdown?.halfTime;if(d){const p=parseInt(d.competitorOne||"0"),y=parseInt(d.competitorTwo||"0");a=o?p:y,l=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:r,halfTimeGoalsFor:a,halfTimeGoalsAgainst:l,cornersFor:c,cornersAgainst:f,isWin:i>r,isDraw:i===r,isLoss:i<r}}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 n=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 s=0,i=0,r=0,a=0,l=0;n.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;a+=y,l+=T,y>T?s++:T>y?i++:r++});const d=n.length;return{totalMatches:d,homeTeamWins:s,awayTeamWins:i,draws:r,homeTeamGoals:a,awayTeamGoals:l,homeTeamWinPercentage:d>0?s/d*100:0,awayTeamWinPercentage:d>0?i/d*100:0,drawPercentage:d>0?r/d*100:0,homeTeamAvgGoals:d>0?a/d:0,awayTeamAvgGoals:d>0?l/d:0}}function Bt(e,t,o,n=5){return e.filter(i=>{if(i.status?.type!=="FINISHED"||!i.score)return!1;const r=i.competitorOne.id===t||i.competitorTwo.id===t,a=i.competitorOne.id===o||i.competitorTwo.id===o;return r&&a}).sort((i,r)=>new Date(r.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime()).slice(0,n).map(i=>{const r=parseInt(i.score?.competitorOne||"0"),a=parseInt(i.score?.competitorTwo||"0"),l=i.competitorOne.id===t,d=l?r:a,u=l?a:r;let c;return d>u?c="home":u>d?c="away":c="draw",{id:i.id,date:new Date(i.timing.kickoffTime).toLocaleDateString("en-GB",{day:"numeric",month:"short",year:"numeric"}),homeTeamName:i.competitorOne.name,awayTeamName:i.competitorTwo.name,homeTeamLogo:i.competitorOne.assets?.logo,awayTeamLogo:i.competitorTwo.assets?.logo,homeScore:r,awayScore:a,venue:i.venue?.name,winner:c}})}function $t(e,t,o){return e.filter(n=>{const s=n.competitorOne.id===t,i=n.competitorTwo.id===t;return!s&&!i?!1:o==="home"?s:i}).map(n=>{const s=n.competitorOne.id===t;return ce(n,t,s)}).filter(n=>n!==null)}function J(e,t,o,n){let s=0;for(const i of e){const r=i.competitorOne.id===t,a=i.competitorTwo.id===t;if(!r&&!a||o==="home"&&!r||o==="away"&&!a||i.status?.type!=="FINISHED")continue;const l=i.mainEvents;if(!l||!Array.isArray(l))continue;const d=l.filter(y=>y.type&&ae.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(d.length===0)continue;const u=d[0],c=r?"ONE":"TWO",f=u.type==="OWN_GOAL";let p;f?p=u.competitorPosition!==c:p=u.competitorPosition===c,(n==="scored"&&p||n==="conceded"&&!p)&&s++}return s}function xt(e,t,o){let n=0;for(const s of e){const i=s.competitorOne.id===t,r=s.competitorTwo.id===t;if(!i&&!r||o==="home"&&!i||o==="away"&&!r||s.status?.type!=="FINISHED")continue;const a=s.mainEvents;a&&Array.isArray(a)&&n++}return n}function Wt(e,t,o){const n=$t(e,t,o),s=n.length;if(s===0)return{played:0,goalsForPerMatch:0,cleanSheets:0,wonToNil:0,scoringRate:0,scoredInBothHalves:0,scoredFirst:0,leadingAtHalfTime:0,goalsAgainstPerMatch:0,failedToScore:0,lostToNil:0,concedingRate:0,concededInBothHalves:0,concededFirst:0,losingAtHalfTime:0,avgCornersFor:0,avgCornersAgainst:0};const i=n.reduce((g,S)=>g+S.goalsFor,0),r=n.reduce((g,S)=>g+S.goalsAgainst,0),a=n.filter(g=>g.goalsAgainst===0).length,l=n.filter(g=>g.isWin&&g.goalsAgainst===0).length,d=n.filter(g=>g.goalsFor>0).length,u=n.filter(g=>g.goalsFor===0).length,c=n.filter(g=>g.isLoss&&g.goalsFor===0).length,f=n.filter(g=>g.goalsAgainst>0).length,p=n.filter(g=>g.halfTimeGoalsFor!==null),y=p.length,T=p.filter(g=>{const S=g.halfTimeGoalsFor,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=n.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:s,goalsForPerMatch:H(i,s),cleanSheets:A(a,s),wonToNil:A(l,s),scoringRate:A(d,s),scoredInBothHalves:A(T,y),scoredFirst:A(R,C),leadingAtHalfTime:A(F,y),goalsAgainstPerMatch:H(r,s),failedToScore:A(u,s),lostToNil:A(c,s),concedingRate:A(f,s),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 n=o.competitorOne.id===t,s=parseInt(o.score?.competitorOne||"0"),i=parseInt(o.score?.competitorTwo||"0"),r=s+i,a=o.periods;let l=null;if(a&&Array.isArray(a)){const d=a.find(u=>u.type==="FIRST_HALF"||u.type==="1ST_HALF");if(d?.score){const u=parseInt(d.score.competitorOne||"0"),c=parseInt(d.score.competitorTwo||"0");l=u+c}}return{totalGoals:r,halfTimeGoals:l,isHome:n}})}function h(e,t){return e.length===0?0:e.filter(n=>n>t).length/e.length*100}function Vt(e,t){const o=qt(e,t),n=o.filter(c=>c.isHome),s=o.filter(c=>!c.isHome),i=o.map(c=>c.totalGoals),r=n.map(c=>c.totalGoals),a=s.map(c=>c.totalGoals),l=o.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals),d=n.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals),u=s.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals);return{over05:{home:h(r,.5),total:h(i,.5),away:h(a,.5)},over15:{home:h(r,1.5),total:h(i,1.5),away:h(a,1.5)},over25:{home:h(r,2.5),total:h(i,2.5),away:h(a,2.5)},over35:{home:h(r,3.5),total:h(i,3.5),away:h(a,3.5)},over45:{home:h(r,4.5),total:h(i,4.5),away:h(a,4.5)},over55:{home:h(r,5.5),total:h(i,5.5),away:h(a,5.5)},over05HT:{home:h(d,.5),total:h(l,.5),away:h(u,.5)},over15HT:{home:h(d,1.5),total:h(l,1.5),away:h(u,1.5)},over25HT:{home:h(d,2.5),total:h(l,2.5),away:h(u,2.5)}}}function de(e,t){const o=e.competitorOne.id===t,n=e.competitorTwo.id===t;if(!o&&!n||!e.score)return null;const s=parseInt(o?e.score.competitorOne||"0":e.score.competitorTwo||"0"),i=parseInt(o?e.score.competitorTwo||"0":e.score.competitorOne||"0");let r;return s>i?r="W":s<i?r="L":r="D",{result:{score:`${s}:${i}`,result:r,isHome:o},isHome:o}}function jt(e,t,o,n,s,i){const r=t?.entries.find(G=>G.competitor.id===e),a=o?.entries.find(G=>G.competitor.id===e),l=n?.entries.find(G=>G.competitor.id===e),d=s?.entries.find(G=>G.competitor.id===e),u=i?.entries.find(G=>G.competitor.id===e);if(!r)return null;const c=a?.stats?.goalsFor??0,f=l?.stats?.goalsFor??0,p=r?.stats?.goalsFor??0,y=d?.stats?.goalsAgainst??0,T=u?.stats?.goalsAgainst??0,R=r?.stats?.goalsAgainst??0,C=a?.stats?.played??0,F=l?.stats?.played??0,P=r?.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,n){const s=e.filter(r=>{const a=r.competitorOne.id===t,l=r.competitorTwo.id===t;return!(!a&&!l||r.status?.type!=="FINISHED"||n==="home"&&!a||n==="away"&&!l)}).sort((r,a)=>new Date(a.timing.kickoffTime).getTime()-new Date(r.timing.kickoffTime).getTime());if(s.length===0)return null;let i=0;for(const r of s){const a=r.competitorOne.id===t;if(o(r,t,a))i++;else break}return i>0?i:null}const v={win:(e,t,o)=>{const n=parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0"),s=parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0");return n>s},draw:e=>e.score?.competitorOne===e.score?.competitorTwo,loss:(e,t,o)=>{const n=parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0"),s=parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0");return n<s},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 n=k(e,t,"home"),s=k(e,t),i=k(e,o,"away"),r=k(e,o);return[{label:"Consecutive wins",homeTeam:{home:n.win,total:s.win},awayTeam:{total:r.win,home:i.win},colorType:"neutral"},{label:"Consecutive draws",homeTeam:{home:n.draw,total:s.draw},awayTeam:{total:r.draw,home:i.draw},colorType:"neutral"},{label:"Consecutive defeats",homeTeam:{home:n.loss,total:s.loss},awayTeam:{total:r.loss,home:i.loss},colorType:"neutral"},{label:"No win",homeTeam:{home:n.noWin,total:s.noWin},awayTeam:{total:r.noWin,home:i.noWin},colorType:"negative"},{label:"No draw",homeTeam:{home:n.noDraw,total:s.noDraw},awayTeam:{total:r.noDraw,home:i.noDraw},colorType:"neutral"},{label:"No defeat",homeTeam:{home:n.noDefeat,total:s.noDefeat},awayTeam:{total:r.noDefeat,home:i.noDefeat},colorType:"positive"},{label:"Scored at least once",homeTeam:{home:n.scored,total:s.scored},awayTeam:{total:r.scored,home:i.scored},colorType:"positive"},{label:"Conceded at least once",homeTeam:{home:n.conceded,total:s.conceded},awayTeam:{total:r.conceded,home:i.conceded},colorType:"negative"},{label:"No goal scored",homeTeam:{home:n.noGoalScored,total:s.noGoalScored},awayTeam:{total:r.noGoalScored,home:i.noGoalScored},colorType:"neutral"},{label:"No goal conceded",homeTeam:{home:n.noGoalConceded,total:s.noGoalConceded},awayTeam:{total:r.noGoalConceded,home:i.noGoalConceded},colorType:"neutral"},{label:"GS + GC over 2.5",homeTeam:{home:n.over25,total:s.over25},awayTeam:{total:r.over25,home:i.over25},colorType:"neutral"},{label:"GS + GC under 2.5",homeTeam:{home:n.under25,total:s.under25},awayTeam:{total:r.under25,home:i.under25},colorType:"neutral"},{label:"Scored at least twice",homeTeam:{home:n.scoredTwice,total:s.scoredTwice},awayTeam:{total:r.scoredTwice,home:i.scoredTwice},colorType:"positive"},{label:"Conceded at least twice",homeTeam:{home:n.concededTwice,total:s.concededTwice},awayTeam:{total:r.concededTwice,home:i.concededTwice},colorType:"negative"}]}function Q(e,t){const o=new Map;return e.forEach(n=>{if(n.status?.type!=="FINISHED")return;const s=de(n,t);if(!s)return;const i=s.isHome?n.competitorTwo.id:n.competitorOne.id,r=s.isHome?n.competitorTwo:n.competitorOne,a=o.get(i)||{opponentId:i,opponentName:r.name,opponentLogo:r.assets?.logo};s.isHome?a.homeResult=s.result:a.awayResult=s.result,o.set(i,a)}),o}function Kt(e,t,o,n,s,i,r){const a=Q(e,t),l=Q(e,o),d=new Set([...a.keys(),...l.keys(),t,o]),u=[];return d.forEach(c=>{const f=a.get(c),p=l.get(c);if(!f&&!p&&c!==t&&c!==o)return;let y,T;c===t?(y=n,T=i):c===o?(y=s,T=r):(y=f?.opponentName||p?.opponentName||"",T=f?.opponentLogo||p?.opponentLogo),u.push({opponentId:c,opponentName:y,opponentLogo:T,homeTeamHome:f?.homeResult,homeTeamAway:f?.awayResult,awayTeamHome:p?.homeResult,awayTeamAway:p?.awayResult,isHomeTeamRow:c===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=ae;exports.aggregatePlayerStatisticsFromMatches=N;exports.analyzeMatch=ce;exports.calcAverage=H;exports.calcPercentage=A;exports.calculateH2HStats=Ut;exports.calculateStreak=_;exports.formatAsAverage=Dt;exports.formatPossessionPercentage=Nt;exports.formatStatValue=Et;exports.formatWithAverage=bt;exports.getActiveSeason=mt;exports.getAllPlayerStatisticsFromMatches=ie;exports.getFansUnitedFootballCompetition=qe;exports.getFansUnitedFootballCompetitions=Be;exports.getFansUnitedFootballMatch=rt;exports.getFansUnitedFootballMatches=at;exports.getFansUnitedFootballPlayer=Ze;exports.getFansUnitedFootballPlayers=we;exports.getFansUnitedFootballSearch=ut;exports.getFansUnitedFootballTeam=Ke;exports.getMatchResult=de;exports.getMostCardedPlayersFromMatches=ne;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=Ne;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=se;exports.getTopScorersFromMatches=te;exports.isMatchFinished=Lt;exports.isTeamAway=le;exports.isTeamHome=q;exports.isTeamInMatch=It;exports.search=Ee;exports.searchFootball=ve;exports.streakFilters=v;exports.useAllPlayerStatisticsFromMatches=Pt;exports.useMostCardedPlayersFromMatches=Ot;exports.usePlayerStatistics=Gt;exports.usePlayerStatisticsMap=re;exports.useTopAssistersFromMatches=Mt;exports.useTopGoalContributorsFromMatches=Rt;exports.useTopScorersFromMatches=Ft;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./index-Hi8oKjxO.cjs"),D=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:n}=o,s=e.entityTypes&&e.entityTypes.length>0?e.entityTypes:["tournament","player","team","president","venue","coach"],i=await m.footballHttp.get({path:"/search",params:{query:e.query.trim(),entity_type:s.join(","),language_code:e.languageCode??n?.languageCode??"en"},headers:{"Accept-Language":e.languageCode??n?.languageCode??"en"},next:e.next,config: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 E(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:E(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:E(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:E(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:E(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:E(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:E(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:E(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:E(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 Ee(e={},t){const o=t??m.getConfig(),n={};e.name&&(n.name=e.name),e.entityTypes&&e.entityTypes.length>0&&(n.entity_type=e.entityTypes.join(",")),e.sports&&e.sports.length>0&&(n.sport=e.sports.join(",")),e.eventStartTime&&(n.event_start_time=e.eventStartTime),e.ids&&e.ids.length>0&&(n.ids=e.ids.join(",")),e.competitionIds&&e.competitionIds.length>0&&(n.competition_ids=e.competitionIds.join(",")),e.domain&&(n.domain=e.domain),e.inputLanguage&&(n.input_language=e.inputLanguage),e.translationLanguage&&(n.translation_language=e.translationLanguage),e.limit!==void 0&&(n.limit=e.limit.toString()),e.offset!==void 0&&(n.offset=e.offset.toString());const s=await Se.get({path:"/suggest",params:n,next:e.next,config:o});return!s.results||s.results.length===0?{results:[],query:e.name}:{results:s.results.map(Ge),query:e.name}}const be=m.createHttpClient(m.SPORTAL365_STATISTICS_DOMAIN);function De(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 Ne(e,t){const o=t||m.getConfig(),n=e.next??{revalidate:600},s=await be.get({path:"/statistics/aggregate",params:{participant_ids:e.teamId,season_ids:e.seasonId,participant_type:"TEAM"},next:n,config:o});if(!s.data||s.data.length===0)throw new Error(`No statistics found for team ${e.teamId} in season ${e.seasonId}`);return De(s.data[0],e.seasonId)}function Ie(e){const t=e.replace(/\/$/,"");function o(n){return`${t}${n}`}return{async get(n){const s=n.config||m.getConfig(),{fansUnited:i}=s;if(!i)throw new Error("Fans United configuration is missing. Add 'fansUnited' with 'apiKey' and 'clientId' to your config.");if(!i.apiKey||!i.clientId)throw new Error("Fans United configuration requires both 'apiKey' and 'clientId'");const r=new URL(o(n.path));if(r.searchParams.set("key",i.apiKey),r.searchParams.set("client_id",i.clientId),n.params)for(const[d,u]of Object.entries(n.params))u!==void 0&&(Array.isArray(u)?u.length>0&&r.searchParams.set(d,u.join(",")):r.searchParams.set(d,u));const l=await fetch(r.toString(),{method:"GET",headers:{Accept:"application/json","Content-Type":"application/json",...n.headers},signal:AbortSignal.timeout(3e4),...n.next&&{next:n.next}});if(!l.ok){let d=`Fans United API error: ${l.status} ${l.statusText}`;try{const u=await l.text();u&&(d+=` - ${u}`)}catch(u){console.error("[Fans United HTTP] Failed to read error response body:",{error:u instanceof Error?u.message:String(u),status:l.status,statusText:l.statusText})}throw new Error(d)}return l.json()}}}const Le="https://football.fansunitedapi.com",b=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 n=await b.get({path:"/v1/competitions",params:o,config:t,next:e?.next});return Ue(n.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 n=o||m.getConfig(),s={};t?.lang&&(s.lang=t.lang);const i=await b.get({path:`/v1/competitions/${e}`,params:s,next:t?.next,config:n});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 n=o||m.getConfig(),s={};t?.lang&&(s.lang=t.lang);const i=await b.get({path:`/v1/teams/${e}`,params:s,next:t?.next,config:n});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 n=o||m.getConfig(),s={};t?.lang&&(s.lang=t.lang);const i=await b.get({path:`/v1/players/${e}`,params:s,next:t?.next,config:n});return Qe(i)}async function we(e,t){const o=t||m.getConfig(),n={};e?.lang&&(n.lang=e.lang),e?.playerIds&&(n.player_ids=e.playerIds),e?.countryId&&(n.country_id=e.countryId),e?.name&&(n.name=e.name),e?.scope&&(n.scope=e.scope),e?.limit!==void 0&&(n.limit=String(e.limit)),e?.page!==void 0&&(n.page=String(e.page)),e?.sortField&&(n.sort_field=e.sortField),e?.sortOrder&&(n.sort_order=e.sortOrder);const s=await b.get({path:"/v1/players",params:n,next:e?.next,config:o});return Xe(s)}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",n="Not Started";return e.finished_at?(t="finished",o="FINISHED",n="Finished"):e.started_at&&(t="live",o="LIVE",n="Live"),{code:t,name:n,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 nt(e){if(!e)return;const t=n=>n?{competitorOne:n.home_goals!==null?String(n.home_goals):"0",competitorTwo:n.away_goals!==null?String(n.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:nt(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 st(e){return ee(e.data)}function it(e){return e.data.map(ee)}async function rt(e,t,o){const n=o||m.getConfig(),s={};t?.lang&&(s.lang=t.lang);const i=await b.get({path:`/v1/matches/${e}`,params:s,next:t?.next,config:n});return st(i)}async function at(e,t){const o=t||m.getConfig(),n={};e?.lang&&(n.lang=e.lang),e?.competitions&&(n.competitions=e.competitions),e?.countries&&(n.countries=e.countries),e?.fromDate&&(n.from_date=e.fromDate),e?.toDate&&(n.to_date=e.toDate),e?.matches&&(n.matches=e.matches),e?.teams&&(n.teams=e.teams),e?.status&&(n.status=e.status),e?.limit!==void 0&&(n.limit=String(e.limit)),e?.page!==void 0&&(n.page=String(e.page)),e?.sortField&&(n.sort_field=e.sortField),e?.sortOrder&&(n.sort_order=e.sortOrder),e?.showDeleted!==void 0&&(n.show_deleted=e.showDeleted?"true":"false");const s=await b.get({path:"/v1/matches",params:n,next:e?.next,config:o});return it(s)}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(),n={q:e.query.trim()},i=(e.entityTypes&&e.entityTypes.length>0?e.entityTypes:["competition","team","player"]).map(l=>{switch(l){case"team":return"teams";case"player":return"players";case"competition":return"competitions";default:return l}});n.entities=i.join(","),e.lang&&(n.lang=e.lang),e.limit&&(n.limit=String(e.limit));const r=await b.get({path:"/v1/search",params:n,next:e.next,config:o}),a=[];return r.data&&(r.data.competitions&&r.data.competitions.forEach(l=>{const d=V({...l,entity_type:"competition"});d&&a.push(d)}),r.data.teams&&r.data.teams.forEach(l=>{const d=V({...l,entity_type:"team"});d&&a.push(d)}),r.data.players&&r.data.players.forEach(l=>{const d=V({...l,entity_type:"player"});d&&a.push(d)})),a}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,n=t.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="NOT_STARTED",a=new Date(s.timing.kickoffTime)>=o;return i&&r&&a});return n.sort((s,i)=>new Date(s.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime()),n[0]}function gt(e,t){const o=new Date,n=t.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="FINISHED",a=new Date(s.timing.kickoffTime)<=o;return i&&r&&a});return n.sort((s,i)=>new Date(i.timing.kickoffTime).getTime()-new Date(s.timing.kickoffTime).getTime()),n[0]}function pt(e,t){const o=new Date;return t.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="NOT_STARTED"||s.status.type==="LIVE",a=new Date(s.timing.kickoffTime)>=o||s.status.type==="LIVE";return i&&r&&a}).sort((s,i)=>new Date(s.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime())}function yt(e,t){const o=new Date;return t.filter(s=>{const i=s.competitorOne.id===e||s.competitorTwo.id===e,r=s.status.type==="FINISHED",a=new Date(s.timing.kickoffTime)<=o;return i&&r&&a}).sort((s,i)=>new Date(i.timing.kickoffTime).getTime()-new Date(s.timing.kickoffTime).getTime())}function ht(e,t,o){const n=o.filter(r=>r.status.type==="FINISHED"),s=o.filter(r=>r.status.type==="NOT_STARTED"||r.status.type==="POSTPONED"),i=t.entries.map(r=>{const a=r.competitor.id,l=n.filter(f=>f.competitorOne.id===e&&f.competitorTwo.id===a||f.competitorOne.id===a&&f.competitorTwo.id===e),d=s.filter(f=>f.competitorOne.id===e&&f.competitorTwo.id===a||f.competitorOne.id===a&&f.competitorTwo.id===e);let u,c;return l.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}),d.forEach(f=>{const p=f.competitorOne.id===e;p&&!u?u={date:f.timing.kickoffTime,matchId:f.id,isUpcoming:!0}:!p&&!c&&(c={date:f.timing.kickoffTime,matchId:f.id,isUpcoming:!0})}),{rank:r.rank,teamId:r.competitor.id,teamName:r.competitor.name,teamShortName:r.competitor.shortName,teamLogo:r.competitor.logo,gamesPlayed:r.stats.played??0,points:r.stats.points??0,homeResult:u,awayResult:c}});return{teamId:e,rows:i}}function Tt(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.goals??0)>0).sort((o,n)=>{const s=o.seasonStatistics?.goals??0,i=n.seasonStatistics?.goals??0;if(i!==s)return i-s;const r=o.seasonStatistics?.assists??0;return(n.seasonStatistics?.assists??0)-r}).slice(0,t)}function vt(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.assists??0)>0).sort((o,n)=>{const s=o.seasonStatistics?.assists??0,i=n.seasonStatistics?.assists??0;if(i!==s)return i-s;const r=o.seasonStatistics?.goals??0;return(n.seasonStatistics?.goals??0)-r}).slice(0,t)}function St(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.appearances??0)>0).sort((o,n)=>{const s=o.seasonStatistics?.appearances??0,i=n.seasonStatistics?.appearances??0;if(i!==s)return i-s;const r=o.seasonStatistics?.minutes??0;return(n.seasonStatistics?.minutes??0)-r}).slice(0,t)}function _t(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.minutes??0)>0).sort((o,n)=>{const s=o.seasonStatistics?.minutes??0,i=n.seasonStatistics?.minutes??0;if(i!==s)return i-s;const r=o.seasonStatistics?.appearances??0;return(n.seasonStatistics?.appearances??0)-r}).slice(0,t)}function Ct(e,t=10){return e.players.filter(o=>(o.seasonStatistics?.cleansheets??0)>0).sort((o,n)=>{const s=o.seasonStatistics?.cleansheets??0,i=n.seasonStatistics?.cleansheets??0;if(i!==s)return i-s;const r=o.seasonStatistics?.appearances??0;return(n.seasonStatistics?.appearances??0)-r}).slice(0,t)}function At(e,t=10){return e.players.filter(o=>{const n=o.seasonStatistics?.yellowCards??0,s=o.seasonStatistics?.redCards??0;return n+s>0}).sort((o,n)=>{const s=o.seasonStatistics?.yellowCards??0,i=o.seasonStatistics?.redCards??0,r=n.seasonStatistics?.yellowCards??0,a=n.seasonStatistics?.redCards??0,l=s+i*3,d=r+a*3;return d!==l?d-l:a!==i?a-i:r-s}).slice(0,t)}function N(e){const t=new Map,o=new Map;return e.forEach(n=>{!n.mainEvents||n.mainEvents.length===0||n.mainEvents.forEach(s=>{if(s.primaryPlayer){const i=s.primaryPlayer.id;t.has(i)||t.set(i,{playerId:s.primaryPlayer.id,seasonId:"",teamId:"",goals:0,assists:0,yellowCards:0,redCards:0,appearances:0});const r=t.get(i);o.has(i)||o.set(i,new Set),o.get(i).add(n.id),(s.type==="GOAL"||s.type==="PENALTY_GOAL")&&(r.goals=(r.goals??0)+1),s.type==="YELLOW_CARD"&&(r.yellowCards=(r.yellowCards??0)+1),(s.type==="RED_CARD"||s.type==="YELLOW_RED_CARD")&&(r.redCards=(r.redCards??0)+1)}if(s.secondaryPlayer&&(s.type==="GOAL"||s.type==="PENALTY_GOAL")){const i=s.secondaryPlayer.id;t.has(i)||t.set(i,{playerId:s.secondaryPlayer.id,seasonId:"",teamId:"",goals:0,assists:0,yellowCards:0,redCards:0,appearances:0});const r=t.get(i);r.assists=(r.assists??0)+1,o.has(i)||o.set(i,new Set),o.get(i).add(n.id)}})}),o.forEach((n,s)=>{const i=t.get(s);i&&i.appearances!==void 0&&(i.appearances=n.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=N(e);return U(o).filter(s=>(s.goals??0)>0).sort((s,i)=>{const r=s.goals??0,a=i.goals??0;if(a!==r)return a-r;const l=s.assists??0;return(i.assists??0)-l}).slice(0,t)}function oe(e,t=10){const o=N(e);return U(o).filter(s=>(s.assists??0)>0).sort((s,i)=>{const r=s.assists??0,a=i.assists??0;if(a!==r)return a-r;const l=s.goals??0;return(i.goals??0)-l}).slice(0,t)}function ne(e,t=10){const o=N(e);return U(o).filter(s=>(s.totalCards??0)>0).sort((s,i)=>{const r=(s.yellowCards??0)+(s.redCards??0)*3,a=(i.yellowCards??0)+(i.redCards??0)*3;if(a!==r)return a-r;const l=s.redCards??0,d=i.redCards??0;if(d!==l)return d-l;const u=s.yellowCards??0;return(i.yellowCards??0)-u}).slice(0,t)}function se(e,t=10){const o=N(e);return U(o).filter(s=>(s.goals??0)+(s.assists??0)>0).sort((s,i)=>{const r=(s.goals??0)+(s.assists??0),a=(i.goals??0)+(i.assists??0);if(a!==r)return a-r;const l=s.goals??0,d=i.goals??0;if(d!==l)return d-l;const u=s.assists??0;return(i.assists??0)-u}).slice(0,t)}function ie(e){const t=N(e);return U(t).sort((n,s)=>{const i=n.appearances??0,r=s.appearances??0;if(r!==i)return r-i;const a=(n.goals??0)+(n.assists??0);return(s.goals??0)+(s.assists??0)-a})}function Ft(e,t=10){return D.useMemo(()=>te(e,t),[e,t])}function Mt(e,t=10){return D.useMemo(()=>oe(e,t),[e,t])}function Ot(e,t=10){return D.useMemo(()=>ne(e,t),[e,t])}function Rt(e,t=10){return D.useMemo(()=>se(e,t),[e,t])}function Pt(e){return D.useMemo(()=>ie(e),[e])}function re(e){return D.useMemo(()=>N(e),[e])}function Gt(e,t){const o=re(e);return D.useMemo(()=>o.get(t),[o,t])}const ae=["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 Et(e,t=!1,o=2){return t?`${Math.round(e)}%`:Number.isInteger(e)?e.toString():e.toFixed(o)}function bt(e,t){const o=typeof e=="string"?parseFloat(e):e;if(isNaN(o)||t===0)return"0";const n=(o/t).toFixed(1);return`${o} (${n} avg)`}function Dt(e,t){const o=typeof e=="string"?parseFloat(e):e;return isNaN(o)||t===0?"0.0":(o/t).toFixed(1)}function Nt(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 n=parseInt(e.score.competitorOne||"0"),s=parseInt(e.score.competitorTwo||"0"),i=o?n:s,r=o?s:n;let a=null,l=null;const d=e.score.breakdown?.halfTime;if(d){const p=parseInt(d.competitorOne||"0"),y=parseInt(d.competitorTwo||"0");a=o?p:y,l=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:r,halfTimeGoalsFor:a,halfTimeGoalsAgainst:l,cornersFor:c,cornersAgainst:f,isWin:i>r,isDraw:i===r,isLoss:i<r}}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 n=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 s=0,i=0,r=0,a=0,l=0;n.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;a+=y,l+=T,y>T?s++:T>y?i++:r++});const d=n.length;return{totalMatches:d,homeTeamWins:s,awayTeamWins:i,draws:r,homeTeamGoals:a,awayTeamGoals:l,homeTeamWinPercentage:d>0?s/d*100:0,awayTeamWinPercentage:d>0?i/d*100:0,drawPercentage:d>0?r/d*100:0,homeTeamAvgGoals:d>0?a/d:0,awayTeamAvgGoals:d>0?l/d:0}}function Bt(e,t,o,n=5){return e.filter(i=>{if(i.status?.type!=="FINISHED"||!i.score)return!1;const r=i.competitorOne.id===t||i.competitorTwo.id===t,a=i.competitorOne.id===o||i.competitorTwo.id===o;return r&&a}).sort((i,r)=>new Date(r.timing.kickoffTime).getTime()-new Date(i.timing.kickoffTime).getTime()).slice(0,n).map(i=>{const r=parseInt(i.score?.competitorOne||"0"),a=parseInt(i.score?.competitorTwo||"0"),l=i.competitorOne.id===t,d=l?r:a,u=l?a:r;let c;return d>u?c="home":u>d?c="away":c="draw",{id:i.id,date:new Date(i.timing.kickoffTime).toLocaleDateString("en-GB",{day:"numeric",month:"short",year:"numeric"}),homeTeamName:i.competitorOne.name,awayTeamName:i.competitorTwo.name,homeTeamLogo:i.competitorOne.assets?.logo,awayTeamLogo:i.competitorTwo.assets?.logo,homeScore:r,awayScore:a,venue:i.venue?.name,winner:c}})}function $t(e,t,o){return e.filter(n=>{const s=n.competitorOne.id===t,i=n.competitorTwo.id===t;return!s&&!i?!1:o==="home"?s:i}).map(n=>{const s=n.competitorOne.id===t;return ce(n,t,s)}).filter(n=>n!==null)}function J(e,t,o,n){let s=0;for(const i of e){const r=i.competitorOne.id===t,a=i.competitorTwo.id===t;if(!r&&!a||o==="home"&&!r||o==="away"&&!a||i.status?.type!=="FINISHED")continue;const l=i.mainEvents;if(!l||!Array.isArray(l))continue;const d=l.filter(y=>y.type&&ae.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(d.length===0)continue;const u=d[0],c=r?"ONE":"TWO",f=u.type==="OWN_GOAL";let p;f?p=u.competitorPosition!==c:p=u.competitorPosition===c,(n==="scored"&&p||n==="conceded"&&!p)&&s++}return s}function xt(e,t,o){let n=0;for(const s of e){const i=s.competitorOne.id===t,r=s.competitorTwo.id===t;if(!i&&!r||o==="home"&&!i||o==="away"&&!r||s.status?.type!=="FINISHED")continue;const a=s.mainEvents;a&&Array.isArray(a)&&n++}return n}function Wt(e,t,o){const n=$t(e,t,o),s=n.length;if(s===0)return{played:0,goalsForPerMatch:0,cleanSheets:0,wonToNil:0,scoringRate:0,scoredInBothHalves:0,scoredFirst:0,leadingAtHalfTime:0,goalsAgainstPerMatch:0,failedToScore:0,lostToNil:0,concedingRate:0,concededInBothHalves:0,concededFirst:0,losingAtHalfTime:0,avgCornersFor:0,avgCornersAgainst:0};const i=n.reduce((g,S)=>g+S.goalsFor,0),r=n.reduce((g,S)=>g+S.goalsAgainst,0),a=n.filter(g=>g.goalsAgainst===0).length,l=n.filter(g=>g.isWin&&g.goalsAgainst===0).length,d=n.filter(g=>g.goalsFor>0).length,u=n.filter(g=>g.goalsFor===0).length,c=n.filter(g=>g.isLoss&&g.goalsFor===0).length,f=n.filter(g=>g.goalsAgainst>0).length,p=n.filter(g=>g.halfTimeGoalsFor!==null),y=p.length,T=p.filter(g=>{const S=g.halfTimeGoalsFor,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=n.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:s,goalsForPerMatch:H(i,s),cleanSheets:A(a,s),wonToNil:A(l,s),scoringRate:A(d,s),scoredInBothHalves:A(T,y),scoredFirst:A(R,C),leadingAtHalfTime:A(F,y),goalsAgainstPerMatch:H(r,s),failedToScore:A(u,s),lostToNil:A(c,s),concedingRate:A(f,s),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 n=o.competitorOne.id===t,s=parseInt(o.score?.competitorOne||"0"),i=parseInt(o.score?.competitorTwo||"0"),r=s+i,a=o.periods;let l=null;if(a&&Array.isArray(a)){const d=a.find(u=>u.type==="FIRST_HALF"||u.type==="1ST_HALF");if(d?.score){const u=parseInt(d.score.competitorOne||"0"),c=parseInt(d.score.competitorTwo||"0");l=u+c}}return{totalGoals:r,halfTimeGoals:l,isHome:n}})}function h(e,t){return e.length===0?0:e.filter(n=>n>t).length/e.length*100}function Vt(e,t){const o=qt(e,t),n=o.filter(c=>c.isHome),s=o.filter(c=>!c.isHome),i=o.map(c=>c.totalGoals),r=n.map(c=>c.totalGoals),a=s.map(c=>c.totalGoals),l=o.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals),d=n.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals),u=s.filter(c=>c.halfTimeGoals!==null).map(c=>c.halfTimeGoals);return{over05:{home:h(r,.5),total:h(i,.5),away:h(a,.5)},over15:{home:h(r,1.5),total:h(i,1.5),away:h(a,1.5)},over25:{home:h(r,2.5),total:h(i,2.5),away:h(a,2.5)},over35:{home:h(r,3.5),total:h(i,3.5),away:h(a,3.5)},over45:{home:h(r,4.5),total:h(i,4.5),away:h(a,4.5)},over55:{home:h(r,5.5),total:h(i,5.5),away:h(a,5.5)},over05HT:{home:h(d,.5),total:h(l,.5),away:h(u,.5)},over15HT:{home:h(d,1.5),total:h(l,1.5),away:h(u,1.5)},over25HT:{home:h(d,2.5),total:h(l,2.5),away:h(u,2.5)}}}function de(e,t){const o=e.competitorOne.id===t,n=e.competitorTwo.id===t;if(!o&&!n||!e.score)return null;const s=parseInt(o?e.score.competitorOne||"0":e.score.competitorTwo||"0"),i=parseInt(o?e.score.competitorTwo||"0":e.score.competitorOne||"0");let r;return s>i?r="W":s<i?r="L":r="D",{result:{score:`${s}:${i}`,result:r,isHome:o},isHome:o}}function jt(e,t,o,n,s,i){const r=t?.entries.find(G=>G.competitor.id===e),a=o?.entries.find(G=>G.competitor.id===e),l=n?.entries.find(G=>G.competitor.id===e),d=s?.entries.find(G=>G.competitor.id===e),u=i?.entries.find(G=>G.competitor.id===e);if(!r)return null;const c=a?.stats?.goalsFor??0,f=l?.stats?.goalsFor??0,p=r?.stats?.goalsFor??0,y=d?.stats?.goalsAgainst??0,T=u?.stats?.goalsAgainst??0,R=r?.stats?.goalsAgainst??0,C=a?.stats?.played??0,F=l?.stats?.played??0,P=r?.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,n){const s=e.filter(r=>{const a=r.competitorOne.id===t,l=r.competitorTwo.id===t;return!(!a&&!l||r.status?.type!=="FINISHED"||n==="home"&&!a||n==="away"&&!l)}).sort((r,a)=>new Date(a.timing.kickoffTime).getTime()-new Date(r.timing.kickoffTime).getTime());if(s.length===0)return null;let i=0;for(const r of s){const a=r.competitorOne.id===t;if(o(r,t,a))i++;else break}return i>0?i:null}const v={win:(e,t,o)=>{const n=parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0"),s=parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0");return n>s},draw:e=>e.score?.competitorOne===e.score?.competitorTwo,loss:(e,t,o)=>{const n=parseInt(o?e.score?.competitorOne||"0":e.score?.competitorTwo||"0"),s=parseInt(o?e.score?.competitorTwo||"0":e.score?.competitorOne||"0");return n<s},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 n=k(e,t,"home"),s=k(e,t),i=k(e,o,"away"),r=k(e,o);return[{label:"Consecutive wins",homeTeam:{home:n.win,total:s.win},awayTeam:{total:r.win,home:i.win},colorType:"neutral"},{label:"Consecutive draws",homeTeam:{home:n.draw,total:s.draw},awayTeam:{total:r.draw,home:i.draw},colorType:"neutral"},{label:"Consecutive defeats",homeTeam:{home:n.loss,total:s.loss},awayTeam:{total:r.loss,home:i.loss},colorType:"neutral"},{label:"No win",homeTeam:{home:n.noWin,total:s.noWin},awayTeam:{total:r.noWin,home:i.noWin},colorType:"negative"},{label:"No draw",homeTeam:{home:n.noDraw,total:s.noDraw},awayTeam:{total:r.noDraw,home:i.noDraw},colorType:"neutral"},{label:"No defeat",homeTeam:{home:n.noDefeat,total:s.noDefeat},awayTeam:{total:r.noDefeat,home:i.noDefeat},colorType:"positive"},{label:"Scored at least once",homeTeam:{home:n.scored,total:s.scored},awayTeam:{total:r.scored,home:i.scored},colorType:"positive"},{label:"Conceded at least once",homeTeam:{home:n.conceded,total:s.conceded},awayTeam:{total:r.conceded,home:i.conceded},colorType:"negative"},{label:"No goal scored",homeTeam:{home:n.noGoalScored,total:s.noGoalScored},awayTeam:{total:r.noGoalScored,home:i.noGoalScored},colorType:"neutral"},{label:"No goal conceded",homeTeam:{home:n.noGoalConceded,total:s.noGoalConceded},awayTeam:{total:r.noGoalConceded,home:i.noGoalConceded},colorType:"neutral"},{label:"GS + GC over 2.5",homeTeam:{home:n.over25,total:s.over25},awayTeam:{total:r.over25,home:i.over25},colorType:"neutral"},{label:"GS + GC under 2.5",homeTeam:{home:n.under25,total:s.under25},awayTeam:{total:r.under25,home:i.under25},colorType:"neutral"},{label:"Scored at least twice",homeTeam:{home:n.scoredTwice,total:s.scoredTwice},awayTeam:{total:r.scoredTwice,home:i.scoredTwice},colorType:"positive"},{label:"Conceded at least twice",homeTeam:{home:n.concededTwice,total:s.concededTwice},awayTeam:{total:r.concededTwice,home:i.concededTwice},colorType:"negative"}]}function Q(e,t){const o=new Map;return e.forEach(n=>{if(n.status?.type!=="FINISHED")return;const s=de(n,t);if(!s)return;const i=s.isHome?n.competitorTwo.id:n.competitorOne.id,r=s.isHome?n.competitorTwo:n.competitorOne,a=o.get(i)||{opponentId:i,opponentName:r.name,opponentLogo:r.assets?.logo};s.isHome?a.homeResult=s.result:a.awayResult=s.result,o.set(i,a)}),o}function Kt(e,t,o,n,s,i,r){const a=Q(e,t),l=Q(e,o),d=new Set([...a.keys(),...l.keys(),t,o]),u=[];return d.forEach(c=>{const f=a.get(c),p=l.get(c);if(!f&&!p&&c!==t&&c!==o)return;let y,T;c===t?(y=n,T=i):c===o?(y=s,T=r):(y=f?.opponentName||p?.opponentName||"",T=f?.opponentLogo||p?.opponentLogo),u.push({opponentId:c,opponentName:y,opponentLogo:T,homeTeamHome:f?.homeResult,homeTeamAway:f?.awayResult,awayTeamHome:p?.homeResult,awayTeamAway:p?.awayResult,isHomeTeamRow:c===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=ae;exports.aggregatePlayerStatisticsFromMatches=N;exports.analyzeMatch=ce;exports.calcAverage=H;exports.calcPercentage=A;exports.calculateH2HStats=Ut;exports.calculateStreak=_;exports.formatAsAverage=Dt;exports.formatPossessionPercentage=Nt;exports.formatStatValue=Et;exports.formatWithAverage=bt;exports.getActiveSeason=mt;exports.getAllPlayerStatisticsFromMatches=ie;exports.getFansUnitedFootballCompetition=qe;exports.getFansUnitedFootballCompetitions=Be;exports.getFansUnitedFootballMatch=rt;exports.getFansUnitedFootballMatches=at;exports.getFansUnitedFootballPlayer=Ze;exports.getFansUnitedFootballPlayers=we;exports.getFansUnitedFootballSearch=ut;exports.getFansUnitedFootballTeam=Ke;exports.getMatchResult=de;exports.getMostCardedPlayersFromMatches=ne;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=Ne;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=se;exports.getTopScorersFromMatches=te;exports.isMatchFinished=Lt;exports.isTeamAway=le;exports.isTeamHome=q;exports.isTeamInMatch=It;exports.search=Ee;exports.searchFootball=ve;exports.streakFilters=v;exports.useAllPlayerStatisticsFromMatches=Pt;exports.useMostCardedPlayersFromMatches=Ot;exports.usePlayerStatistics=Gt;exports.usePlayerStatisticsMap=re;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 re } from "./index-DMVprv64.js";
2
- import { b as no, d as so, e as io, h as ro, i as ao, 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-DMVprv64.js";
1
+ import { t as C, g as F, f as se, c as Z, S as ie, a as re } from "./index-35LeZQYN.js";
2
+ import { b as no, d as so, e as io, h as ro, i as ao, 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-35LeZQYN.js";
3
3
  import { useMemo as L } from "react";
4
4
  function ae(e) {
5
5
  return {
@@ -1,15 +1,15 @@
1
- const y = "__FANSUNITED_DATA_LAYER_CONFIG__";
1
+ const h = "__FANSUNITED_DATA_LAYER_CONFIG__";
2
2
  function de(e) {
3
- globalThis[y] = e;
3
+ globalThis[h] = e;
4
4
  }
5
5
  function c() {
6
- const e = globalThis[y];
6
+ const e = globalThis[h];
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
11
  function ue() {
12
- return globalThis[y] !== void 0;
12
+ return globalThis[h] !== void 0;
13
13
  }
14
14
  function O(e) {
15
15
  const t = e.replace(/\/$/, "");
@@ -30,9 +30,9 @@ function O(e) {
30
30
  throw new Error("Sportal365 Sports API configuration is missing");
31
31
  const d = new URL(n(s.path));
32
32
  if (s.params)
33
- for (const [p, f] of Object.entries(s.params))
34
- f !== void 0 && (Array.isArray(f) ? f.length > 0 && d.searchParams.set(p, f.join(",")) : d.searchParams.set(p, f));
35
- const m = await fetch(d.toString(), {
33
+ for (const [l, g] of Object.entries(s.params))
34
+ g !== void 0 && (Array.isArray(g) ? g.length > 0 && d.searchParams.set(l, g.join(",")) : d.searchParams.set(l, g));
35
+ const f = await fetch(d.toString(), {
36
36
  method: "GET",
37
37
  headers: {
38
38
  Authorization: o(a),
@@ -45,14 +45,14 @@ function O(e) {
45
45
  // Next.js cache options for ISR/on-demand revalidation
46
46
  ...s.next && { next: s.next }
47
47
  });
48
- if (!m.ok)
49
- throw new Error(`Sportal365 API error: ${m.status} ${m.statusText}`);
50
- return m.json();
48
+ if (!f.ok)
49
+ throw new Error(`Sportal365 API error: ${f.status} ${f.statusText}`);
50
+ return f.json();
51
51
  }
52
52
  };
53
53
  }
54
- const L = "https://football.api.sportal365.com", ce = "https://sports-statistics.api.sportal365.com", le = "https://sports-search.api.sportal365.com", g = O(L);
55
- function S(e) {
54
+ const L = "https://football.api.sportal365.com", ce = "https://sports-statistics.api.sportal365.com", le = "https://sports-search.api.sportal365.com", p = O(L);
55
+ function C(e) {
56
56
  if (e)
57
57
  return {
58
58
  id: e.id,
@@ -99,8 +99,8 @@ function _(e) {
99
99
  competitorPosition: e.team_position === "HOME" ? "ONE" : "TWO",
100
100
  minute: e.minute,
101
101
  injuryMinute: e.injury_minute,
102
- primaryPlayer: S(e.primary_player),
103
- secondaryPlayer: S(e.secondary_player),
102
+ primaryPlayer: C(e.primary_player),
103
+ secondaryPlayer: C(e.secondary_player),
104
104
  score: e.score ? { competitorOne: String(e.score.home), competitorTwo: String(e.score.away) } : void 0
105
105
  } : (console.warn(`Unknown event type: ${e.type_code}`), null);
106
106
  }
@@ -193,7 +193,7 @@ function N(e) {
193
193
  extraTimeSecondHalfStartedAt: e.extra_time_second_half_started_at ? new Date(e.extra_time_second_half_started_at) : void 0
194
194
  };
195
195
  }
196
- function x(e) {
196
+ function F(e) {
197
197
  if (!e) return;
198
198
  const t = (n) => n ? { competitorOne: String(n.home), competitorTwo: String(n.away) } : void 0, o = e.after_extra_time ?? e.regular_time;
199
199
  return {
@@ -209,7 +209,7 @@ function x(e) {
209
209
  }
210
210
  };
211
211
  }
212
- function F(e) {
212
+ function x(e) {
213
213
  if (e)
214
214
  return {
215
215
  id: e.id,
@@ -293,10 +293,10 @@ function E(e) {
293
293
  name: e.group.name,
294
294
  providerRef: i(e.group.uuid)
295
295
  } : void 0,
296
- venue: F(e.venue),
296
+ venue: x(e.venue),
297
297
  officials: P(e.referees),
298
298
  spectators: e.spectators ?? void 0,
299
- score: x(e.score),
299
+ score: F(e.score),
300
300
  mainEvents: e.main_events?.map(_).filter((t) => t !== null),
301
301
  penaltyShootoutEvents: e.penalty_shootout_events?.map(_).filter((t) => t !== null),
302
302
  winner: $(e),
@@ -368,24 +368,24 @@ function Y(e) {
368
368
  competitorTwo: b(e.away_team)
369
369
  };
370
370
  }
371
- function l(e, t, o, n) {
371
+ function m(e, t, o, n) {
372
372
  return t == null ? null : { key: e, value: String(t), label: o, unit: n };
373
373
  }
374
- function A(e, t) {
374
+ function I(e, t) {
375
375
  const o = (t.shots_on ?? 0) + (t.shots_off ?? 0) + (t.shots_blocked ?? 0), n = [
376
- l("possession", t.possession, "Possession", "%"),
377
- l("shots_total", o, "Shots"),
378
- l("shots_on_target", t.shots_on, "Shots on Target"),
379
- l("shots_off_target", t.shots_off, "Shots off Target"),
380
- l("shots_blocked", t.shots_blocked, "Shots Blocked"),
381
- l("corners", t.corners, "Corner Kicks"),
382
- l("goal_kicks", t.goal_kicks, "Goal Kicks"),
383
- l("throw_ins", t.throw_in, "Throw Ins"),
384
- l("offsides", t.offside, "Offsides"),
385
- l("fouls", t.fouls_committed, "Fouls"),
386
- l("yellow_cards", t.yellow_cards, "Yellow Cards"),
387
- l("passes", t.pass, "Passes"),
388
- l("crosses", t.crosses, "Crosses")
376
+ m("possession", t.possession, "Possession", "%"),
377
+ m("shots_total", o, "Shots"),
378
+ m("shots_on_target", t.shots_on, "Shots on Target"),
379
+ m("shots_off_target", t.shots_off, "Shots off Target"),
380
+ m("shots_blocked", t.shots_blocked, "Shots Blocked"),
381
+ m("corners", t.corners, "Corner Kicks"),
382
+ m("goal_kicks", t.goal_kicks, "Goal Kicks"),
383
+ m("throw_ins", t.throw_in, "Throw Ins"),
384
+ m("offsides", t.offside, "Offsides"),
385
+ m("fouls", t.fouls_committed, "Fouls"),
386
+ m("yellow_cards", t.yellow_cards, "Yellow Cards"),
387
+ m("passes", t.pass, "Passes"),
388
+ m("crosses", t.crosses, "Crosses")
389
389
  ];
390
390
  return {
391
391
  competitorId: e,
@@ -397,11 +397,11 @@ function U(e) {
397
397
  if (!t || !o)
398
398
  throw new Error("Missing competitor statistics");
399
399
  return {
400
- competitorOne: A(String(t.team.id), t.statistics),
401
- competitorTwo: A(String(o.team.id), o.statistics)
400
+ competitorOne: I(String(t.team.id), t.statistics),
401
+ competitorTwo: I(String(o.team.id), o.statistics)
402
402
  };
403
403
  }
404
- function G(e) {
404
+ function q(e) {
405
405
  const t = e.urls?.find((o) => o.app_type === "desktop")?.url;
406
406
  return {
407
407
  id: e.id,
@@ -426,16 +426,16 @@ function W(e) {
426
426
  type: e.scope.type,
427
427
  name: e.scope.name
428
428
  },
429
- selections: e.selections.map(G)
429
+ selections: e.selections.map(q)
430
430
  };
431
431
  }
432
- function K(e) {
432
+ function j(e) {
433
433
  if (!e) return !0;
434
434
  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
435
  return (0.2126 * o + 0.7152 * n + 0.0722 * s) / 255 < 0.5;
436
436
  }
437
- function V(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 || (K(n) ? "#FFFFFF" : "#000000");
437
+ 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");
439
439
  return {
440
440
  operator: {
441
441
  id: e.bookmaker.id,
@@ -451,23 +451,23 @@ function V(e) {
451
451
  markets: e.markets.map(W)
452
452
  };
453
453
  }
454
- function j(e, t) {
454
+ function K(e, t) {
455
455
  return {
456
456
  matchId: e,
457
- operators: t.map(V)
457
+ operators: t.map(G)
458
458
  };
459
459
  }
460
- function I(e) {
460
+ function A(e) {
461
461
  if (e == null || e === "")
462
462
  return;
463
463
  const t = typeof e == "number" ? e : parseInt(e, 10);
464
464
  return isNaN(t) ? void 0 : t;
465
465
  }
466
- function q(e) {
466
+ function V(e) {
467
467
  return {
468
468
  externalId: e.external_id,
469
- minute: I(e.elapsed),
470
- addedTime: I(e.elapsed_plus),
469
+ minute: A(e.elapsed),
470
+ addedTime: A(e.elapsed_plus),
471
471
  text: e.auto_text,
472
472
  details: e.details,
473
473
  meta: {
@@ -480,7 +480,7 @@ function q(e) {
480
480
  };
481
481
  }
482
482
  async function pe(e, t, o) {
483
- const n = o || c(), { sportal365Sports: s } = n, a = await g.get({
483
+ const n = o || c(), { sportal365Sports: s } = n, a = await p.get({
484
484
  path: `/v2/matches/${e}`,
485
485
  params: {
486
486
  language_code: t?.languageCode ?? s?.languageCode ?? "en",
@@ -502,7 +502,7 @@ async function pe(e, t, o) {
502
502
  }
503
503
  async function fe(e, t, o) {
504
504
  const n = o || c(), { sportal365Sports: s } = n;
505
- return (await g.get({
505
+ return (await p.get({
506
506
  path: `/v2/matches/${e}/events`,
507
507
  params: {
508
508
  language_code: t?.languageCode ?? s?.languageCode ?? "en"
@@ -515,7 +515,7 @@ async function fe(e, t, o) {
515
515
  })).events.map(_).filter((u) => u !== null);
516
516
  }
517
517
  async function _e(e, t, o) {
518
- const n = o || c(), { sportal365Sports: s } = n, a = await g.get({
518
+ const n = o || c(), { sportal365Sports: s } = n, a = await p.get({
519
519
  path: `/v2/matches/${e}/lineups`,
520
520
  params: {
521
521
  language_code: t?.languageCode ?? s?.languageCode ?? "en"
@@ -529,7 +529,7 @@ async function _e(e, t, o) {
529
529
  return Y(a);
530
530
  }
531
531
  async function ye(e, t, o) {
532
- const n = o || c(), { sportal365Sports: s } = n, a = await g.get({
532
+ const n = o || c(), { sportal365Sports: s } = n, a = await p.get({
533
533
  path: `/v2/matches/${e}`,
534
534
  params: {
535
535
  language_code: t?.languageCode ?? s?.languageCode ?? "en",
@@ -546,10 +546,10 @@ async function ye(e, t, o) {
546
546
  next: t?.next,
547
547
  config: n
548
548
  });
549
- return j(e, a.odds ?? []);
549
+ return K(e, a.odds ?? []);
550
550
  }
551
551
  async function he(e, t, o) {
552
- const n = o || c(), { sportal365Sports: s } = n, a = await g.get({
552
+ const n = o || c(), { sportal365Sports: s } = n, a = await p.get({
553
553
  path: `/events/${e}/teamstats`,
554
554
  params: {
555
555
  language_code: t?.languageCode ?? s?.languageCode ?? "en"
@@ -564,7 +564,7 @@ async function he(e, t, o) {
564
564
  }
565
565
  async function ve(e, t, o) {
566
566
  const n = o || c(), { sportal365Sports: s } = n;
567
- return (await g.get({
567
+ return (await p.get({
568
568
  path: `/matches/${e}/commentary`,
569
569
  params: {
570
570
  language_code: t?.languageCode ?? s?.languageCode ?? "en"
@@ -574,11 +574,11 @@ async function ve(e, t, o) {
574
574
  },
575
575
  next: t?.next,
576
576
  config: n
577
- })).map(q);
577
+ })).map(V);
578
578
  }
579
- async function Ce(e, t) {
579
+ async function Se(e, t) {
580
580
  const o = t || c(), { sportal365Sports: n } = o;
581
- return (await g.get({
581
+ return (await p.get({
582
582
  path: "/v2/matches",
583
583
  params: {
584
584
  language_code: e.languageCode ?? n?.languageCode ?? "en",
@@ -859,27 +859,44 @@ function Z(e, t) {
859
859
  };
860
860
  }
861
861
  async function w(e, t) {
862
- const o = t || c(), { sportal365Sports: n } = o, { seasonIds: s, teamId: a, languageCode: u, next: d } = e, m = d ?? { revalidate: 120 }, p = {
862
+ const o = t || c(), { sportal365Sports: n } = o, { seasonIds: s, teamId: a, languageCode: u, next: d } = e, f = d ?? { revalidate: 120 }, l = {
863
863
  season_ids: s.join(","),
864
864
  team_id: a,
865
865
  language_code: u ?? n?.languageCode ?? "en"
866
- }, f = await g.get({
866
+ }, g = await p.get({
867
867
  path: "/v2/statistics/players/season",
868
- params: p,
868
+ params: l,
869
869
  headers: {
870
870
  "Accept-Language": u ?? n?.languageCode ?? "en"
871
871
  },
872
- next: m,
872
+ next: f,
873
873
  config: o
874
- }), v = {};
875
- for (const C of f.statistics) {
876
- const k = C.player.id;
877
- v[k] = Z(C, a);
874
+ });
875
+ if (!g.statistics)
876
+ return console.error("[getFootballPlayerSeasonStatistics] Invalid API response - missing statistics array:", {
877
+ teamId: a,
878
+ seasonIds: s,
879
+ response: g
880
+ }), {};
881
+ if (g.statistics.length === 0)
882
+ return console.warn("[getFootballPlayerSeasonStatistics] API returned empty statistics array:", {
883
+ teamId: a,
884
+ seasonIds: s,
885
+ hint: "This could be due to: wrong credentials, wrong project header, no data for this team/season, or API issue"
886
+ }), {};
887
+ const y = {};
888
+ for (const S of g.statistics) {
889
+ const k = S.player.id;
890
+ y[k] = Z(S, a);
878
891
  }
879
- return v;
892
+ return console.log(
893
+ "[getFootballPlayerSeasonStatistics] Successfully fetched statistics for",
894
+ Object.keys(y).length,
895
+ "players"
896
+ ), y;
880
897
  }
881
- async function Se(e, t, o) {
882
- const n = o || c(), { sportal365Sports: s } = n, a = await g.get({
898
+ async function Ce(e, t, o) {
899
+ const n = o || c(), { sportal365Sports: s } = n, a = await p.get({
883
900
  path: `/v2/teams/${e}`,
884
901
  params: {
885
902
  language_code: t?.languageCode ?? s?.languageCode ?? "en",
@@ -894,7 +911,7 @@ async function Se(e, t, o) {
894
911
  return B(a);
895
912
  }
896
913
  async function Te(e, t, o) {
897
- const n = o || c(), { sportal365Sports: s } = n, a = await g.get({
914
+ const n = o || c(), { sportal365Sports: s } = n, a = await p.get({
898
915
  path: `/v2/teams/${e}/squad`,
899
916
  params: {
900
917
  language_code: t?.languageCode ?? s?.languageCode ?? "en",
@@ -906,7 +923,8 @@ async function Te(e, t, o) {
906
923
  next: t?.next,
907
924
  config: n
908
925
  }), u = J(a);
909
- if (t?.seasonIds && t.seasonIds.length > 0)
926
+ if (t?.seasonIds && t.seasonIds.length > 0) {
927
+ console.log("[getFootballTeamSquad] Fetching player statistics for seasonIds:", t.seasonIds);
910
928
  try {
911
929
  const d = await w(
912
930
  {
@@ -917,10 +935,20 @@ async function Te(e, t, o) {
917
935
  },
918
936
  n
919
937
  );
920
- for (const m of u.players) {
921
- const p = d[m.id];
922
- p && (m.seasonStatistics = p);
938
+ console.log("[getFootballTeamSquad] Received stats map with", Object.keys(d).length, "players"), console.log("[getFootballTeamSquad] Player IDs in stats:", Object.keys(d)), console.log(
939
+ "[getFootballTeamSquad] Player IDs in squad:",
940
+ u.players.map((l) => l.id)
941
+ );
942
+ let f = 0;
943
+ for (const l of u.players) {
944
+ const g = d[l.id];
945
+ g ? (l.seasonStatistics = g, f++, console.log("[getFootballTeamSquad] ✓ Attached stats to player:", l.id, l.name)) : console.log("[getFootballTeamSquad] ✗ No stats found for player:", l.id, l.name);
923
946
  }
947
+ console.log("[getFootballTeamSquad] Stats attachment complete:", {
948
+ totalPlayers: u.players.length,
949
+ playersWithStats: f,
950
+ playersWithoutStats: u.players.length - f
951
+ });
924
952
  } catch (d) {
925
953
  console.error("[getFootballTeamSquad] Failed to fetch player statistics:", {
926
954
  error: d instanceof Error ? d.message : String(d),
@@ -929,6 +957,8 @@ async function Te(e, t, o) {
929
957
  seasonIds: t.seasonIds
930
958
  });
931
959
  }
960
+ } else
961
+ console.log("[getFootballTeamSquad] No seasonIds provided, skipping stats fetch");
932
962
  return u;
933
963
  }
934
964
  function ee(e) {
@@ -1016,7 +1046,7 @@ function oe(e) {
1016
1046
  };
1017
1047
  }
1018
1048
  async function be(e, t, o) {
1019
- const n = o || c(), { sportal365Sports: s } = n, a = await g.get({
1049
+ const n = o || c(), { sportal365Sports: s } = n, a = await p.get({
1020
1050
  path: `/tournaments/${e}`,
1021
1051
  params: {
1022
1052
  language_code: t?.languageCode ?? s?.languageCode ?? "en"
@@ -1029,7 +1059,7 @@ async function be(e, t, o) {
1029
1059
  });
1030
1060
  return ee(a);
1031
1061
  }
1032
- async function Ae(e, t) {
1062
+ async function Ie(e, t) {
1033
1063
  const o = t || c(), { sportal365Sports: n } = o;
1034
1064
  if (!e?.seasonId && !e?.competitionId)
1035
1065
  throw new Error("Either seasonId or competitionId must be provided");
@@ -1037,7 +1067,7 @@ async function Ae(e, t) {
1037
1067
  language_code: e?.languageCode ?? n?.languageCode ?? "en"
1038
1068
  };
1039
1069
  e.seasonId ? s.season_id = e.seasonId : e.competitionId && (s.tournament_id = e.competitionId, e.status && (s.status = e.status));
1040
- const a = await g.get({
1070
+ const a = await p.get({
1041
1071
  path: "/v2/seasons/details",
1042
1072
  params: s,
1043
1073
  headers: {
@@ -1048,7 +1078,7 @@ async function Ae(e, t) {
1048
1078
  });
1049
1079
  return oe(a);
1050
1080
  }
1051
- function h(e) {
1081
+ function v(e) {
1052
1082
  return {
1053
1083
  championsleague: "championsLeague",
1054
1084
  europaleague: "europaLeague",
@@ -1066,11 +1096,11 @@ function se(e, t) {
1066
1096
  if (!t || t.length === 0)
1067
1097
  return;
1068
1098
  const o = t.map((s) => {
1069
- const a = s.event, u = a.home_team.id === e, d = u ? a.away_team : a.home_team, m = `${a.goal_home}-${a.goal_away}`;
1099
+ const a = s.event, u = a.home_team.id === e, d = u ? a.away_team : a.home_team, f = `${a.goal_home}-${a.goal_away}`;
1070
1100
  return {
1071
1101
  matchId: a.id.toString(),
1072
1102
  result: s.outcome,
1073
- score: m,
1103
+ score: f,
1074
1104
  homeAway: u ? "HOME" : "AWAY",
1075
1105
  opponent: {
1076
1106
  id: d.id.toString(),
@@ -1090,7 +1120,7 @@ function se(e, t) {
1090
1120
  }
1091
1121
  function ae(e) {
1092
1122
  return {
1093
- key: h(e.code),
1123
+ key: v(e.code),
1094
1124
  name: e.name,
1095
1125
  position: ne(e.type)
1096
1126
  };
@@ -1105,7 +1135,7 @@ function ie(e) {
1105
1135
  goalsAgainst: e.goals_against,
1106
1136
  goalDifference: e.goals_for - e.goals_against,
1107
1137
  points: e.points
1108
- }, o = e.rules?.length > 0 ? e.rules.map((s) => h(s.code)) : void 0, n = se(e.team.id, e.team.form ?? []);
1138
+ }, o = e.rules?.length > 0 ? e.rules.map((s) => v(s.code)) : void 0, n = se(e.team.id, e.team.form ?? []);
1109
1139
  return {
1110
1140
  rank: e.rank,
1111
1141
  competitor: {
@@ -1124,7 +1154,7 @@ function re(e) {
1124
1154
  for (const n of e)
1125
1155
  if (n.rules)
1126
1156
  for (const s of n.rules) {
1127
- const a = h(s.code);
1157
+ const a = v(s.code);
1128
1158
  o.has(a) || o.set(a, ae(s));
1129
1159
  }
1130
1160
  return {
@@ -1134,8 +1164,8 @@ function re(e) {
1134
1164
  }
1135
1165
  };
1136
1166
  }
1137
- async function Ie(e, t) {
1138
- const o = t || c(), { sportal365Sports: n } = o, s = e.expand?.join(","), a = await g.get({
1167
+ async function Ae(e, t) {
1168
+ const o = t || c(), { sportal365Sports: n } = o, s = e.expand?.join(","), a = await p.get({
1139
1169
  path: `/tournaments/seasons/stages/${e.stageId}/standing`,
1140
1170
  params: {
1141
1171
  expand: s,
@@ -1156,18 +1186,18 @@ export {
1156
1186
  O as c,
1157
1187
  be as d,
1158
1188
  pe as e,
1159
- g as f,
1189
+ p as f,
1160
1190
  c as g,
1161
1191
  ve as h,
1162
1192
  fe as i,
1163
1193
  _e as j,
1164
1194
  ye as k,
1165
1195
  he as l,
1166
- Ce as m,
1196
+ Se as m,
1167
1197
  w as n,
1168
- Ae as o,
1169
- Ie as p,
1170
- Se as q,
1198
+ Ie as o,
1199
+ Ae as p,
1200
+ Ce as q,
1171
1201
  Te as r,
1172
1202
  ge as s,
1173
1203
  i as t,
@@ -1 +1 @@
1
- "use strict";const y="__FANSUNITED_DATA_LAYER_CONFIG__";function R(e){globalThis[y]=e}function c(){const e=globalThis[y];if(!e)throw new Error("Data layer config not initialized. Call setConfig() in your root layout.");return e}function D(){return globalThis[y]!==void 0}function E(e){const t=e.replace(/\/$/,"");function o(a){const{sportal365Sports:s}=a;if(!s)throw new Error("Sportal365 Sports API configuration is missing");const u=`${s.username}:${s.password}`;return`Basic ${btoa(u)}`}function n(a){return`${t}${a}`}return{async get(a){const s=a.config||c(),{sportal365Sports:u}=s;if(!u)throw new Error("Sportal365 Sports API configuration is missing");const d=new URL(n(a.path));if(a.params)for(const[p,f]of Object.entries(a.params))f!==void 0&&(Array.isArray(f)?f.length>0&&d.searchParams.set(p,f.join(",")):d.searchParams.set(p,f));const m=await fetch(d.toString(),{method:"GET",headers:{Authorization:o(s),"Content-Type":"application/json","X-Project":u.projectId,...a.headers},signal:u.timeout?AbortSignal.timeout(u.timeout):void 0,...a.next&&{next:a.next}});if(!m.ok)throw new Error(`Sportal365 API error: ${m.status} ${m.statusText}`);return m.json()}}}const N="https://football.api.sportal365.com",F="https://sports-statistics.api.sportal365.com",x="https://sports-search.api.sportal365.com",l=E(N);function S(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 P={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 _(e){const t=P[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:S(e.primary_player),secondaryPlayer:S(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 T(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 U(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 G(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 K(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 V(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 O(e){return{id:e.id,slug:e.slug,status:$(e.status),timing:Y(e),competitorOne:T(e.home_team),competitorTwo:T(e.away_team),competition:K(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:G(e.venue),officials:W(e.referees),spectators:e.spectators??void 0,score:U(e.score),mainEvents:e.main_events?.map(_).filter(t=>t!==null),penaltyShootoutEvents:e.penalty_shootout_events?.map(_).filter(t=>t!==null),winner:V(e),coverage:e.coverage==="NOT_LIVE"?"UNKNOWN":e.coverage,lineupStatus:e.lineup_status==="UNCONFIRMED"?"EXPECTED":e.lineup_status,providerRef:i(e.uuid)}}function j(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(_).filter(o=>o!==null),providerRef:i(t.uuid)}}function b(e){const t=[],o=[];for(const n of e.players){const a=j(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 q(e){return{matchId:e.match_id,confirmed:e.status==="CONFIRMED",competitorOne:b(e.home_team),competitorTwo:b(e.away_team)}}function g(e,t,o,n){return t==null?null:{key:e,value:String(t),label:o,unit:n}}function A(e,t){const o=(t.shots_on??0)+(t.shots_off??0)+(t.shots_blocked??0),n=[g("possession",t.possession,"Possession","%"),g("shots_total",o,"Shots"),g("shots_on_target",t.shots_on,"Shots on Target"),g("shots_off_target",t.shots_off,"Shots off Target"),g("shots_blocked",t.shots_blocked,"Shots Blocked"),g("corners",t.corners,"Corner Kicks"),g("goal_kicks",t.goal_kicks,"Goal Kicks"),g("throw_ins",t.throw_in,"Throw Ins"),g("offsides",t.offside,"Offsides"),g("fouls",t.fouls_committed,"Fouls"),g("yellow_cards",t.yellow_cards,"Yellow Cards"),g("passes",t.pass,"Passes"),g("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:A(String(t.team.id),t.statistics),competitorTwo:A(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 I(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:I(e.elapsed),addedTime:I(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||c(),{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 O(s)}async function te(e,t,o){const n=o||c(),{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(_).filter(u=>u!==null)}async function oe(e,t,o){const n=o||c(),{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 q(s)}async function ne(e,t,o){const n=o||c(),{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||c(),{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||c(),{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||c(),{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(O)}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,u=t.outcome==="win"?"W":t.outcome==="draw"?"D":"L";return{matchId:t.id,result:u,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 ue(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 ce(e){return{teamId:e.team.id,teamName:e.team.name,coach:e.coach?ue(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||c(),{sportal365Sports:n}=o,{seasonIds:a,teamId:s,languageCode:u,next:d}=e,m=d??{revalidate:120},p={season_ids:a.join(","),team_id:s,language_code:u??n?.languageCode??"en"},f=await l.get({path:"/v2/statistics/players/season",params:p,headers:{"Accept-Language":u??n?.languageCode??"en"},next:m,config:o}),v={};for(const C of f.statistics){const k=C.player.id;v[k]=ge(C,s)}return v}async function me(e,t,o){const n=o||c(),{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||c(),{sportal365Sports:a}=n,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}),u=ce(s);if(t?.seasonIds&&t.seasonIds.length>0)try{const d=await L({seasonIds:t.seasonIds,teamId:e,languageCode:t.languageCode,next:t.next},n);for(const m of u.players){const p=d[m.id];p&&(m.seasonStatistics=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})}return u}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||c(),{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||c(),{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 h(e){return{championsleague:"championsLeague",europaleague:"europaLeague",conferenceleague:"conferenceLeague",relegation:"relegation",playoff:"playoff",promotion:"promotion"}[e.toLowerCase()]??e.toLowerCase().replace(/_/g,"")}function Ce(e){const t=e.toLowerCase();return t==="relegation"?"BOTTOM":t==="playoff"?"MIDDLE":"TOP"}function Se(e,t){if(!t||t.length===0)return;const o=t.map(a=>{const s=a.event,u=s.home_team.id===e,d=u?s.away_team:s.home_team,m=`${s.goal_home}-${s.goal_away}`;return{matchId:s.id.toString(),result:a.outcome,score:m,homeAway:u?"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:h(e.code),name:e.name,position:Ce(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=>h(a.code)):void 0,n=Se(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=h(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||c(),{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=x;exports.SPORTAL365_STATISTICS_DOMAIN=F;exports.addProviderRef=H;exports.createHttpClient=E;exports.footballHttp=l;exports.getConfig=c;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;
1
+ "use strict";const h="__FANSUNITED_DATA_LAYER_CONFIG__";function R(e){globalThis[h]=e}function c(){const e=globalThis[h];if(!e)throw new Error("Data layer config not initialized. Call setConfig() in your root layout.");return e}function D(){return globalThis[h]!==void 0}function E(e){const t=e.replace(/\/$/,"");function o(a){const{sportal365Sports:s}=a;if(!s)throw new Error("Sportal365 Sports API configuration is missing");const u=`${s.username}:${s.password}`;return`Basic ${btoa(u)}`}function n(a){return`${t}${a}`}return{async get(a){const s=a.config||c(),{sportal365Sports:u}=s;if(!u)throw new Error("Sportal365 Sports API configuration is missing");const d=new URL(n(a.path));if(a.params)for(const[g,m]of Object.entries(a.params))m!==void 0&&(Array.isArray(m)?m.length>0&&d.searchParams.set(g,m.join(",")):d.searchParams.set(g,m));const f=await fetch(d.toString(),{method:"GET",headers:{Authorization:o(s),"Content-Type":"application/json","X-Project":u.projectId,...a.headers},signal:u.timeout?AbortSignal.timeout(u.timeout):void 0,...a.next&&{next:a.next}});if(!f.ok)throw new Error(`Sportal365 API error: ${f.status} ${f.statusText}`);return f.json()}}}const F="https://football.api.sportal365.com",N="https://sports-statistics.api.sportal365.com",P="https://sports-search.api.sportal365.com",l=E(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 _(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 T(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 U(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 q(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 O(e){return{id:e.id,slug:e.slug,status:$(e.status),timing:Y(e),competitorOne:T(e.home_team),competitorTwo:T(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:q(e.venue),officials:W(e.referees),spectators:e.spectators??void 0,score:U(e.score),mainEvents:e.main_events?.map(_).filter(t=>t!==null),penaltyShootoutEvents:e.penalty_shootout_events?.map(_).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(_).filter(o=>o!==null),providerRef:i(t.uuid)}}function b(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:b(e.home_team),competitorTwo:b(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 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 A(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:A(e.elapsed),addedTime:A(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||c(),{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 O(s)}async function te(e,t,o){const n=o||c(),{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(_).filter(u=>u!==null)}async function oe(e,t,o){const n=o||c(),{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||c(),{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||c(),{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||c(),{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||c(),{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(O)}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,u=t.outcome==="win"?"W":t.outcome==="draw"?"D":"L";return{matchId:t.id,result:u,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 ue(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 ce(e){return{teamId:e.team.id,teamName:e.team.name,coach:e.coach?ue(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 k(e,t){const o=t||c(),{sportal365Sports:n}=o,{seasonIds:a,teamId:s,languageCode:u,next:d}=e,f=d??{revalidate:120},g={season_ids:a.join(","),team_id:s,language_code:u??n?.languageCode??"en"},m=await l.get({path:"/v2/statistics/players/season",params:g,headers:{"Accept-Language":u??n?.languageCode??"en"},next:f,config:o});if(!m.statistics)return console.error("[getFootballPlayerSeasonStatistics] Invalid API response - missing statistics array:",{teamId:s,seasonIds:a,response:m}),{};if(m.statistics.length===0)return console.warn("[getFootballPlayerSeasonStatistics] API returned empty statistics array:",{teamId:s,seasonIds:a,hint:"This could be due to: wrong credentials, wrong project header, no data for this team/season, or API issue"}),{};const y={};for(const S of m.statistics){const L=S.player.id;y[L]=ge(S,s)}return console.log("[getFootballPlayerSeasonStatistics] Successfully fetched statistics for",Object.keys(y).length,"players"),y}async function me(e,t,o){const n=o||c(),{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||c(),{sportal365Sports:a}=n,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}),u=ce(s);if(t?.seasonIds&&t.seasonIds.length>0){console.log("[getFootballTeamSquad] Fetching player statistics for seasonIds:",t.seasonIds);try{const d=await k({seasonIds:t.seasonIds,teamId:e,languageCode:t.languageCode,next:t.next},n);console.log("[getFootballTeamSquad] Received stats map with",Object.keys(d).length,"players"),console.log("[getFootballTeamSquad] Player IDs in stats:",Object.keys(d)),console.log("[getFootballTeamSquad] Player IDs in squad:",u.players.map(g=>g.id));let f=0;for(const g of u.players){const m=d[g.id];m?(g.seasonStatistics=m,f++,console.log("[getFootballTeamSquad] ✓ Attached stats to player:",g.id,g.name)):console.log("[getFootballTeamSquad] ✗ No stats found for player:",g.id,g.name)}console.log("[getFootballTeamSquad] Stats attachment complete:",{totalPlayers:u.players.length,playersWithStats:f,playersWithoutStats:u.players.length-f})}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 stats fetch");return u}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||c(),{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||c(),{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 v(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,u=s.home_team.id===e,d=u?s.away_team:s.home_team,f=`${s.goal_home}-${s.goal_away}`;return{matchId:s.id.toString(),result:a.outcome,score:f,homeAway:u?"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:v(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=>v(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 Ie(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=v(a.code);o.has(s)||o.set(s,Te(a))}return{entries:t,metadata:{legend:Array.from(o.values())}}}async function Ae(e,t){const o=t||c(),{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:[]}}:Ie(s)}exports.SPORTAL365_SPORTS_SEARCH_DOMAIN=P;exports.SPORTAL365_STATISTICS_DOMAIN=N;exports.addProviderRef=H;exports.createHttpClient=E;exports.footballHttp=l;exports.getConfig=c;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=k;exports.getFootballSeasonDetails=ve;exports.getFootballStandings=Ae;exports.getFootballTeam=me;exports.getFootballTeamSquad=pe;exports.getProviderRefId=M;exports.isConfigured=D;exports.setConfig=R;exports.toProviderRefArray=i;
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.3",
7
+ "version": "0.5.4",
8
8
  "type": "module",
9
9
  "main": "./fansunited-data-layer.cjs",
10
10
  "module": "./fansunited-data-layer.js",