veza/apps/web/dist_verification/assets/tracks-0_sMTeS6.js
senke 670282989b chore(refactor/sumi-migration): commit pending changes — tests, stream server, dist_verification
- apps/web: test updates (Vitest/setup), playbackAnalyticsService, TrackGrid, serviceErrorHandler
- veza-common: logging, metrics, traits, validation, random
- veza-stream-server: audio pipeline, codecs, cache, monitoring, routes
- apps/web/dist_verification: refresh build assets (content-hashed filenames)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 19:39:18 +01:00

1 line
7.7 KiB
JavaScript

import{A as w,g as n}from"./index-BMBS6scK.js";import{A as c}from"./vendor-http-CctT3C58.js";import{g as f}from"./trackService-Dud99AaM.js";async function g(t,e){let i=0;for(;i<120;)try{const o=(await n.get(`/tracks/${t}`)).data;if(e){let a=0;o.status==="uploading"?a=30:o.status==="processing"?a=70:o.status==="completed"&&(a=100),e(a)}if(o.status==="completed")return o;if(o.status==="failed")throw new Error(o.status_message||"Le traitement du fichier a échoué");await new Promise(a=>setTimeout(a,1e3)),i++}catch(p){if(p instanceof c&&p.response?.status===404){await new Promise(o=>setTimeout(o,1e3)),i++;continue}throw p}throw new Error("Le traitement du fichier prend plus de temps que prévu. Veuillez réessayer plus tard.")}async function m(t,e={},r){try{const s=new FormData;s.append("file",t),e.title&&s.append("title",e.title),e.artist&&s.append("artist",e.artist),e.album&&s.append("album",e.album),e.genre&&s.append("genre",e.genre),e.year&&s.append("year",e.year.toString()),e.is_public!==void 0&&s.append("is_public",e.is_public.toString());const i={onUploadProgress:o=>{if(o.total&&r){const a=Math.round(o.loaded*100/o.total);r(Math.min(a*.2,20))}},timeout:w.UPLOAD},p=await n.post("/tracks",s,i);if(p.status===202){const a=p.data.track_id;return r&&r(25),await g(a,r)}return p.data}catch(s){if(s instanceof c){if(s.response?.status===400){const p=s.response?.data?.error?.message||s.response?.data?.message||"Format ou taille invalide";throw new Error(p)}if(s.response?.status===413)throw new Error("Fichier trop volumineux");if(s.response?.status===415)throw new Error("Format de fichier non supporté");if(s.response?.status===500)throw new Error("Erreur serveur: Impossible de traiter le fichier. Veuillez réessayer plus tard.");if(s.code==="ECONNABORTED"||s.code==="ETIMEDOUT"||!s.response)throw new Error("Erreur réseau: Impossible de se connecter au serveur.");const i=s.response?.data?.error?.message||s.response?.data?.message||s.message||"Erreur lors de l'upload";throw new Error(i)}throw s}}async function k(t=1,e=20,r){try{const s=new URLSearchParams;s.append("page",t.toString()),s.append("limit",e.toString()),r?.userId!==void 0&&s.append("user_id",r.userId.toString()),r?.genre&&s.append("genre",r.genre),r?.format&&s.append("format",r.format),r?.search&&s.append("search",r.search),r?.sortBy&&s.append("sort_by",r.sortBy),r?.sortOrder&&s.append("sort_order",r.sortOrder);const i=s.toString(),p=`/tracks${i?`?${i}`:""}`;return(await n.get(p)).data}catch(s){if(s instanceof c){if(s.response?.status===500)throw new Error("Erreur serveur: Impossible de récupérer les tracks. Veuillez réessayer plus tard.");if(s.code==="ECONNABORTED"||s.code==="ETIMEDOUT"||!s.response)throw new Error("Erreur réseau: Impossible de se connecter au serveur.");const i=s.response?.data?.error?.message||s.response?.data?.message||s.message||"Échec de la récupération des tracks";throw new Error(i)}throw s}}async function y(t,e){try{const{data:r}=await n.put(`/tracks/${t}`,e);return r.track}catch(r){if(r instanceof c){if(r.response?.status===404)throw new Error("Track introuvable");const s=r.response?.data?.error?.message||r.response?.data?.message||r.message||"Échec de la mise à jour du track";throw new Error(s)}throw r}}async function E(t){try{const{data:e}=await n.get(`/tracks/${t}/stats`);return e.stats}catch(e){if(e instanceof c){if(e.response?.status===404)throw new Error("Track introuvable");if(e.response?.status===501)throw new Error("Statistiques non disponibles pour le moment");const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec de la récupération des statistiques";throw new Error(r)}throw e}}async function T(t){try{const{data:e}=await n.get(`/tracks/${t}/history`);return e.history}catch(e){if(e instanceof c){if(e.response?.status===404)throw new Error("Track introuvable");if(e.response?.status===501)throw new Error("Historique non disponible pour le moment");const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec de la récupération de l'historique";throw new Error(r)}throw e}}async function b(t,e){try{const r=e?{params:{share_token:e},responseType:"blob"}:{responseType:"blob"};return(await n.get(`/tracks/${t}/download`,r)).data}catch(r){if(r instanceof c){if(r.response?.status===404)throw new Error("Track introuvable");const s=r.response?.data?.error?.message||r.response?.data?.message||r.message||"Échec du téléchargement";throw new Error(s)}throw r}}async function M(t){try{await n.post(`/tracks/${t}/like`)}catch(e){if(e instanceof c){if(e.response?.status===404)throw new Error("Track introuvable");const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec du like";throw new Error(r)}throw e}}async function _(t){try{await n.delete(`/tracks/${t}/like`)}catch(e){if(e instanceof c){if(e.response?.status===404)throw new Error("Track introuvable");const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec du unlike";throw new Error(r)}throw e}}async function S(t){try{await n.delete(`/tracks/${t}`)}catch(e){if(e instanceof c){if(e.response?.status===404)throw new Error("Track introuvable");const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec de la suppression du track";throw new Error(r)}throw e}}async function v(t){try{const{data:e}=await n.get(`/tracks/${t}/likes`);return e}catch(e){if(e instanceof c){if(e.response?.status===404)throw new Error("Track introuvable");const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec de la récupération des likes";throw new Error(r)}throw e}}async function I(t,e){try{const{data:r}=await n.post(`/tracks/${t}/share`,e);return r.share}catch(r){if(r instanceof c){if(r.response?.status===404)throw new Error("Track introuvable");const s=r.response?.data?.error?.message||r.response?.data?.message||r.message||"Échec de la création du lien de partage";throw new Error(s)}throw r}}async function $(t,e,r){try{const{data:s}=await n.post("/tracks/initiate",{total_chunks:t,total_size:e,filename:r});return s.upload_id}catch(s){if(s instanceof c){const i=s.response?.data?.error?.message||s.response?.data?.message||s.message||"Échec de l'initialisation de l'upload";throw new Error(i)}throw s}}async function D(t,e,r,s,i,p,o){try{const a=new FormData;a.append("upload_id",t),a.append("chunk_number",e.toString()),a.append("total_chunks",r.toString()),a.append("total_size",s.toString()),a.append("filename",i),a.append("chunk",p);const d=o?{onUploadProgress:u=>{if(u.total){const h=Math.round(u.loaded*100/u.total);o(h)}}}:{},{data:l}=await n.post("/tracks/chunk",a,d);return l}catch(a){if(a instanceof c){const d=a.response?.data?.error?.message||a.response?.data?.message||a.message||`Échec de l'upload du chunk ${e}`;throw new Error(d)}throw a}}async function U(t){try{const{data:e}=await n.post("/tracks/complete",{upload_id:t});return e.track}catch(e){if(e instanceof c){const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec de la finalisation de l'upload";throw new Error(r)}throw e}}async function A(t){try{const{data:e}=await n.post("/tracks/batch/delete",{track_ids:t});return e}catch(e){if(e instanceof c){const r=e.response?.data?.error?.message||e.response?.data?.message||e.message||"Échec de la suppression en masse";throw new Error(r)}throw e}}async function O(t,e){try{const{data:r}=await n.post("/tracks/batch/update",{track_ids:t,updates:e});return r}catch(r){if(r instanceof c){const s=r.response?.data?.error?.message||r.response?.data?.message||r.message||"Échec de la mise à jour en masse";throw new Error(s)}throw r}}const x={list:k,get:f,create:m,update:y,delete:S,getStats:E,getHistory:T,download:b,like:M,unlike:_,getLikes:v,createShare:I,initiateChunkedUpload:$,uploadChunk:D,completeChunkedUpload:U,batchDelete:A,batchUpdate:O};export{x as t};