const API_BASE_URL="/api";async function fetchFromAPI(t,a={},e=null,s=!1){try{const n={endpoint:t,...a};if(e&&!s&&"undefined"!=typeof r6Cache){const a=r6Cache.get(e,n);if(a)return console.log(`[API] Using cached data for ${t}`),a}const r=Object.keys(a).filter(t=>void 0!==a[t]&&null!==a[t]&&""!==a[t]).map(t=>`${encodeURIComponent(t)}=${encodeURIComponent(a[t])}`).join("&"),o=`/api/${t}${r?`?${r}`:""}`;console.log(`[API] Fetching from ${t}${s?" (forced refresh)":""}`);const c=await fetch(o);if(!c.ok)throw new Error(`API responded with status: ${c.status}`);const i=await c.json();return e&&"undefined"!=typeof r6Cache&&r6Cache.set(e,i,n),i}catch(a){throw console.error(`Error fetching from ${t}:`,a),a}}const api={getMaps:async(t={},a=!1)=>await fetchFromAPI("maps",t,"staticData",a),getOperators:async(t={},a=!1)=>await fetchFromAPI("operators",t,"staticData",a),getRanks:async(t={},a=!1)=>await fetchFromAPI("ranks",t,"ranks",a),getSeasons:async(t={},a=!1)=>await fetchFromAPI("seasons",t,"staticData",a),getServiceStatus:async(t=!1)=>await fetchFromAPI("service-status",{},"serviceStatus",t),getAttachments:async(t={},a=!1)=>await fetchFromAPI("attachments",t,"staticData",a),getCharms:async(t={},a=!1)=>await fetchFromAPI("charms",t,"staticData",a),getWeapons:async(t={},a=!1)=>await fetchFromAPI("weapons",t,"staticData",a),getUniversalSkins:async(t={},a=!1)=>await fetchFromAPI("skins",t,"staticData",a),search:async t=>{if(!t)throw new Error("Search query is required");return await fetchFromAPI("search",{q:t})},getPlayerStats:async(t={},a=!1)=>{const e="accountInfo"===t.type?"accountInfo":"playerStats";return await fetchFromAPI("stats",t,e,a)},getRankPointsHistory:async(t,a="uplay",e=!1)=>await fetchFromAPI(`rankPointsHistory/${t}`,{platformType:a},"rankHistory",e),getSeasonStats:async(t,a="uplay",e=!1)=>await fetchFromAPI(`seasonStats/${t}`,{platformType:a},"seasonStats",e),cache:{clear:t=>"undefined"!=typeof r6Cache?r6Cache.clearType(t):0,clearAll:()=>"undefined"!=typeof r6Cache?r6Cache.clearAll():0,getStats:()=>"undefined"!=typeof r6Cache?r6Cache.getStats():null,refreshPlayer:(t,a)=>{"undefined"!=typeof r6Cache&&(r6Cache.delete("playerStats",{endpoint:"stats",type:"stats",nameOnPlatform:t,platformType:a}),r6Cache.delete("accountInfo",{endpoint:"stats",type:"accountInfo",nameOnPlatform:t,platformType:a}),r6Cache.delete("seasonStats",{endpoint:`seasonStats/${t}`,platformType:a}),r6Cache.delete("rankHistory",{endpoint:`rankPointsHistory/${t}`,platformType:a}),console.log(`[Cache] Cleared all data for player ${t} on ${a}`))}}};