import{aaso,lasd}from"./index-jE2AGx2y.js";import{qasp}from"./vendor-CAoAb3tF.js";classtextendsError{constructor(e,s,a=!1,n){super(e),this.code=s,this.retryable=a,this.originalError=n,this.name="TrackServiceError"}}constf=1024*1024*2,h={uploadTrack:async(r,e,s)=>{consta=Math.ceil(r.size/f),n=awaito.post("/tracks/initiate",{filename:r.name,total_chunks:a,file_size:r.size,title:e.title,artist:e.artist,album:e.album,genre:e.genre}),{upload_id:i}=n.data;d.info(`[UPLOAD] Upload initiated with ID: ${i}`,{filename:r.name,totalChunks:a});for(letc=0;c<a;c++){constk=c*f,N=Math.min(k+f,r.size),T=r.slice(k,N),u=newFormData;u.append("chunk",T),u.append("index",c.toString()),u.append("upload_id",i);try{awaito.post("/tracks/chunk",u,{timeout:3e5,_enableLogging:!1});constl=(c+1)/a*100;s&&s(l)}catch(l){throwd.error(`[UPLOAD] Failed to upload chunk ${c} for ${i}`,{error:l}),l}}constw=awaito.post("/tracks/complete",{upload_id:i});returnd.info(`[UPLOAD] Upload completed. Track ID: ${w.data.track_id}`),w.data},getTrackStatus:asyncr=>(awaito.get(`/tracks/${r}/status`)).data};asyncfunctiong(r={}){try{conste=newURLSearchParams;r.page&&e.append("page",r.page.toString()),r.limit&&e.append("limit",r.limit.toString()),r.userId&&e.append("user_id",r.userId),r.genre&&e.append("genre",r.genre),r.format&&e.append("format",r.format),r.sortBy&&e.append("sort_by",r.sortBy),r.sortOrder&&e.append("sort_order",r.sortOrder);consts=e.toString(),a=`/tracks${s?`?${s}`:""}`;return(awaito.get(a)).data}catch(e){if(einstanceofp){if(e.response?.status===401)thrownewt("Non autorisé: Veuillez vous connecter pour voir les tracks","VALIDATION",!1,e);if(e.response?.status===500)thrownewt("Erreur serveur: Impossible de récupérer les tracks. Veuillez réessayer plus tard.","SERVER",!0,e);if(e.code==="ECONNABORTED"||e.code==="ETIMEDOUT"||!e.response)thrownewt("Erreur réseau: Impossible de se connecter au serveur.","NETWORK",!0,e);consts=e.response?.data?.error||e.message||"Échec de la récupération des tracks";thrownewt(s,"UNKNOWN",!1,e)}throweinstanceoft?e:newt("Erreur inconnue lors de la récupération des tracks","UNKNOWN",!1,e)}}asyncfunctionE(r){try{return(awaito.get(`/tracks/${r}`)).data.track}catch(e){if(einstanceofp){if(e.response?.status===401)thrownewt("Non autorisé: Veuillez vous connecter pour voir ce track","VALIDATION",!1,e);if(e.response?.status===404)thrownewt("Track introuvable","VALIDATION",!1,e);if(e.response?.status===500)thrownewt("Erreur serveur: Impossible de récupérer le track. Veuillez réessayer plus tard.","SERVER",!0,e);if(e.code==="ECONNABORTED"||e.code==="ETIMEDOUT"||!e.response)thrownewt("Erreur réseau: Impossible de se connecter au serveur.","NETWORK",!0,e);consts=e.response?.data?.error||e.message||"Échec de la récupération du track";thrownewt(s,"UNKNOWN",!1,e)}throweinstanceoft?e:newt("Erreur inconnue lors de la récupération du track","UNKNOWN",!1,e)}}asyncfunctionO(r,e){try{return(awaito.put(`/tracks/${r}`,e)).data.track}catch(s){if(sinstanceofp){if(s.response?.status===401)thrownewt("Non autorisé: Veuillez vous connecter pour modifier ce track","VALIDATION",!1,s);if(s.response?.status===403)thrownewt("Accès refusé: Vous ne pouvez modifier que vos propres tracks","VALIDATION",!1,s);if(s.response?.status===404)thrownewt("Track introuvable","VALIDATION",!1,s);if(s.response?.status===400){constn=s.response?.data?.error||"Données invalides";thrownewt(n,"VALIDATION",!1,s)}if(s.response?.status===500)thrownewt("Erreur serveur: Impossible de mettre à jour le track. Veuillez réessayer plus tard.","SERVER",!0,s);if(s.code==="ECONNABORTED"||s.code==="ETIMEDOUT"||!s.response)thrownewt("Erreur réseau: Impossible de se connecter au serveur.","NETWORK",!0,s);consta=s.response?.data?.error||s.message||"Échec de la mise à jour du track";thrownewt(a,"UNKNOWN",!1,s)}throwsinstanceoft?s:newt("Erreur inconnue lors de la mise à jour du track","UNKNOWN",!1,s)}}asyncfunctionI(r){try{awaito.delete(`/tracks/${r}`)}catch(e){if(einstanceofp){if(e.re