@serifpersia/dango 3.4.0 → 3.4.1

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.
Files changed (49) hide show
  1. package/README.md +1 -1
  2. package/client/dist/assets/{AnimeCard-CJy1SXH3.js → AnimeCard-B0oMgXBm.js} +1 -1
  3. package/client/dist/assets/{AnimeInfo-BoXlVvZ-.js → AnimeInfo-o0Udf0og.js} +1 -1
  4. package/client/dist/assets/{AnimeInfoPage-BxbA_7AV.js → AnimeInfoPage-CojMIEuf.js} +2 -2
  5. package/client/dist/assets/{Asmr--Zc8G9zv.js → Asmr-2V3yCCiK.js} +1 -1
  6. package/client/dist/assets/{AsmrResetProgressModal-CKYm-8cp.js → AsmrResetProgressModal-C9R7HlNa.js} +1 -1
  7. package/client/dist/assets/{AvSyncCalibrator-3yjZS7s6.js → AvSyncCalibrator-Bo3820j3.js} +1 -1
  8. package/client/dist/assets/{Home-rrhOGQcg.js → Home-C8uXTzIM.js} +1 -1
  9. package/client/dist/assets/{Insights-Bay90Yeg.js → Insights-CRqBfZuK.js} +1 -1
  10. package/client/dist/assets/{LibraryListPage-HzuDavbb.js → LibraryListPage-B_r51cRi.js} +1 -1
  11. package/client/dist/assets/{ListeningList-DYcQnnsG.js → ListeningList-BWnwvJTt.js} +1 -1
  12. package/client/dist/assets/{Manga-D8CT9aO0.js → Manga-CI5cZg3h.js} +1 -1
  13. package/client/dist/assets/{MangaInfoPage-DGK6CYp1.js → MangaInfoPage-BtkOrO34.js} +1 -1
  14. package/client/dist/assets/{MangaReadPage-B9XoDKF9.js → MangaReadPage-Uv72AYdY.js} +1 -1
  15. package/client/dist/assets/{MangaResetProgressModal-QjZyIAjl.js → MangaResetProgressModal-CPMEqZyi.js} +1 -1
  16. package/client/dist/assets/{Mature-CHt_-Hz5.js → Mature-DXHWvoY5.js} +1 -1
  17. package/client/dist/assets/{MediaCard-B5584Cq9.js → MediaCard-DzA336CA.js} +1 -1
  18. package/client/dist/assets/{Music-HeLrEZ2d.js → Music-C4dM0BQx.js} +1 -1
  19. package/client/dist/assets/{OptionListMenu-CJ90CdwI.js → OptionListMenu-CpwxAC3J.js} +1 -1
  20. package/client/dist/assets/{Player-BYtEax_z.js → Player-CpMvWTkH.js} +2 -2
  21. package/client/dist/assets/{PlayerSettings-4-cUAY4B.js → PlayerSettings-pMU85k7p.js} +1 -1
  22. package/client/dist/assets/{QueueOptionsButton-Ba0dg_82.js → QueueOptionsButton-1M7MdKzM.js} +1 -1
  23. package/client/dist/assets/{QueueRail-O7f4RqjB.js → QueueRail-Bpla2xD8.js} +1 -1
  24. package/client/dist/assets/{Radio-DPZxQnyD.js → Radio-DlmTC-qG.js} +1 -1
  25. package/client/dist/assets/{ReadingList-n6rr8ygy.js → ReadingList-wJMDUybm.js} +1 -1
  26. package/client/dist/assets/{ResetProgressModal-CcStlbhP.js → ResetProgressModal-CByRM1Fh.js} +1 -1
  27. package/client/dist/assets/{Search-C2wrWOdy.js → Search-B94D0tRM.js} +1 -1
  28. package/client/dist/assets/{Settings-CluUYs8U.js → Settings-CcU3oNY8.js} +1 -1
  29. package/client/dist/assets/{SkeletonGrid-CLEPY9nP.js → SkeletonGrid-BJyZkg_K.js} +1 -1
  30. package/client/dist/assets/{Trackers-CTGPxs0V.js → Trackers-vz-gqxtm.js} +1 -1
  31. package/client/dist/assets/{Tv-BwHlDdi8.js → Tv-Rji_lvQo.js} +1 -1
  32. package/client/dist/assets/{TvInfo-CXnrLekr.js → TvInfo-Ciujd6os.js} +1 -1
  33. package/client/dist/assets/{TvPopup-BekfiNcX.js → TvPopup-CqlVRF-Y.js} +1 -1
  34. package/client/dist/assets/{TvSearch-DuqR-z3v.js → TvSearch-BcKXQue9.js} +1 -1
  35. package/client/dist/assets/{TvWatchlist-CBvgFrA0.js → TvWatchlist-sjsiup2h.js} +1 -1
  36. package/client/dist/assets/{Watchlist-mj8mTOam.js → Watchlist-DAMdvt7Z.js} +1 -1
  37. package/client/dist/assets/{hls-Boje3IOE.js → hls-Do_n10_Y.js} +1 -1
  38. package/client/dist/assets/{index-BXwhFWB_.js → index-B5SLDCAi.js} +2 -2
  39. package/client/dist/assets/{useAnimeInfoData-DJ7A4B4T.js → useAnimeInfoData-DU9X90no.js} +1 -1
  40. package/client/dist/assets/{useAsmr-DIwIsJXF.js → useAsmr-D6cSjbvt.js} +1 -1
  41. package/client/dist/assets/{useAsmrPopup-e4zNN9ig.js → useAsmrPopup-DK1Vx-HV.js} +1 -1
  42. package/client/dist/assets/{useMangaLibrary-C9Lci5N4.js → useMangaLibrary-DcxPn0RM.js} +1 -1
  43. package/client/dist/assets/{useMangaPopup-B8nnpvyi.js → useMangaPopup-BLwvRZn0.js} +1 -1
  44. package/client/dist/assets/{useProviders-B5Qr4I1y.js → useProviders-D3L1Chqc.js} +1 -1
  45. package/client/dist/assets/{useTv-Dm8MCYlL.js → useTv-B546u-Rx.js} +1 -1
  46. package/client/dist/assets/{useTvLibrary-B7jEk2Q7.js → useTvLibrary-C2rPeCVT.js} +1 -1
  47. package/client/dist/index.html +1 -1
  48. package/package.json +6 -2
  49. package/server/package.json +1 -1
@@ -1 +1 @@
1
- import{T as E}from"./vendor-core-8R2fFbyN.js";import{b as y,u as l,a as d,e as F}from"./vendor-query-BUTye89G.js";import{g as n,z as a,t as v}from"./index-BXwhFWB_.js";function K(r){return String(r||"").trim().toUpperCase()}function M(r){return K(r.id||r._id||"")}function N(r){return!!r.isAdult}const D=["Listening","Completed","On-Hold","Dropped","Planned"],P=r=>K(r),G=(r="All",e=1,s=24)=>{const t=n();return y(t.asmrLibrary.list.queryOptions({status:r,page:e,limit:s}))},_=()=>{const r=n();return y({...r.asmrLibrary.ids.queryOptions(),staleTime:1e3*60})},H=r=>{const e=n();return y({...e.asmrLibrary.check.queryOptions({id:r||""}),enabled:!!r,staleTime:1e3*60})},U=(r=24)=>{const e=n();return y(e.asmrProgress.continueListening.queryOptions({limit:r}))},W=r=>{const e=n();return y({...e.asmrProgress.getByWork.queryOptions({workId:r||""}),enabled:!!r})},C=()=>{const r=n(),e=l();return d({mutationFn:async s=>{const{silent:t,...m}=s;return v.asmrLibrary.add.mutate(m)},onSuccess:(s,t)=>{t.silent||a.success("Added to listening list"),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries({queryKey:["asmr-library-ids"]}),e.invalidateQueries({queryKey:["asmr-library-check",P(t.rjCode)]}),e.invalidateQueries(r.asmrLibrary.pathFilter())},onError:s=>{a.error(`Failed to add: ${s.message}`)}})},O=()=>{const r=n(),e=l();return d(r.asmrLibrary.remove.mutationOptions({onSuccess:(s,t)=>{a.success("Removed from listening list"),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries({queryKey:["asmr-library-ids"]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries({queryKey:["asmr-library-check",t.id]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())},onError:s=>{a.error(`Failed to remove: ${s.message}`)}}))},x=()=>{const r=n(),e=l();return d(r.asmrLibrary.setStatus.mutationOptions({onSuccess:()=>{a.success("Status updated"),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())},onError:s=>{a.error(`Failed to update status: ${s.message}`)}}))},j=()=>{const r=n(),e=l();return d(r.asmrProgress.save.mutationOptions({onSuccess:(s,t)=>{e.invalidateQueries({queryKey:["asmr-progress",t.workId]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries({queryKey:["asmr-library-ids"]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())}}))},z=()=>{const r=n(),e=l();return d(r.asmrProgress.remove.mutationOptions({onSuccess:()=>{a.success("Progress reset"),e.invalidateQueries({queryKey:["asmr-progress"]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())},onError:s=>{a.error(`Failed to reset progress: ${s.message}`)}}))},Y=()=>{const r=n(),e=l();return d(r.asmrLibrary.batchStatus.mutationOptions({onSuccess:s=>{a.success(`Status updated for ${s.updated??0} items`),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())},onError:s=>{a.error(`Failed to update statuses: ${s.message}`)}}))},J=()=>{const r=n(),e=l();return d(r.asmrLibrary.removeMany.mutationOptions({onSuccess:s=>{const t=s.removed??0;a.success(`Removed ${t} ${t===1?"item":"items"} from listening list`),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries({queryKey:["asmr-library-ids"]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())},onError:s=>{a.error(`Failed to remove: ${s.message}`)}}))},V=()=>{const r=n(),e=l();return d(r.asmrProgress.removeMany.mutationOptions({onSuccess:s=>{const t=s.removed??0;a.success(`Reset progress for ${t} ${t===1?"item":"items"}`),e.invalidateQueries({queryKey:["asmr-progress"]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())},onError:s=>{a.error(`Failed to reset progress: ${s.message}`)}}))},X=()=>{const r=C(),e=O(),{data:s}=_(),t=E(()=>new Set(s?.ids||[]),[s]);return{toggle:i=>{const o=P(i.rjCode);t.has(o)?e.mutate({id:o}):r.mutate({...i,thumbnail:i.thumbnail||""})},bookmarkedIds:t,pending:r.isPending||e.isPending}},h=300*1e3,A=15,Z=(r,e,s,t)=>{const m=e+1,i=F({queries:Array.from({length:m},(u,w)=>{const L=w+1;return{queryKey:["asmrBrowse",r,L,s,t],queryFn:()=>{const k=r.trim();return v.asmr.browse.query({q:k||void 0,page:L,sort:s&&s!=="latest"?s:void 0,rating:t||void 0})},staleTime:h}})}),o=i.flatMap(u=>u.data?.shows??[]),q=o.slice((e-1)*A,e*A),g=i[i.length-1]?.data,b=!!(g&&(g.hasNext||o.length>e*A)),Q=i.some(u=>u.isLoading),c=i.some(u=>u.isFetching),f=i.some(u=>u.isError);return{data:{shows:q,hasNext:b},isLoading:Q,isError:f,isFetching:c}},ee=r=>y({queryKey:["asmrWork",r],queryFn:()=>v.asmr.work.query({rj:r}),enabled:!!r,staleTime:h,refetchOnMount:"always"}),T=15,p=6;function B(r){if(r.isAdult||!r.thumbnail)return!1;const e=(r.rating||"").toLowerCase();return e===""||e==="sfw"}function S(r,e){const s=new Set,t=[];for(const m of r)for(const i of m){if(t.length>=e)return t;const o=i.id||i._id;!o||s.has(o)||(s.add(o),B(i)&&t.push(i))}return t}const re=(r=!0)=>{const e=F({queries:Array.from({length:T},(c,f)=>{const u=f+1;return{queryKey:["asmrBrowse","",u,"popular_month",""],queryFn:()=>v.asmr.browse.query({page:u,sort:"popular_month"}),staleTime:h,enabled:r,retry:1}})}),s=e.map(c=>c.data?.shows??[]),t=S(s,p),m=e.every(c=>c.isFetched),i=r&&m&&t.length<p,o=y({queryKey:["asmrBrowse","",1,"popular","sfw"],queryFn:()=>v.asmr.browse.query({page:1,sort:"popular",rating:"sfw"}),staleTime:h,enabled:i,retry:1}),q=o.data?.shows??[],g=t.length>=p?t.slice(0,p):S([t,q],p),b=r&&(e.some(c=>c.isLoading)||i&&o.isLoading),Q=r&&m&&g.length===0&&e.some(c=>c.isError);return{data:g,isLoading:b,isError:Q}};export{D as A,M as a,re as b,ee as c,H as d,X as e,W as f,K as g,j as h,C as i,Z as j,P as k,N as l,G as m,O as n,x as o,Y as p,J as q,V as r,z as s,U as u};
1
+ import{T as E}from"./vendor-core-8R2fFbyN.js";import{b as y,u as l,a as d,e as F}from"./vendor-query-BUTye89G.js";import{g as n,z as a,t as v}from"./index-B5SLDCAi.js";function K(r){return String(r||"").trim().toUpperCase()}function M(r){return K(r.id||r._id||"")}function N(r){return!!r.isAdult}const D=["Listening","Completed","On-Hold","Dropped","Planned"],P=r=>K(r),G=(r="All",e=1,s=24)=>{const t=n();return y(t.asmrLibrary.list.queryOptions({status:r,page:e,limit:s}))},_=()=>{const r=n();return y({...r.asmrLibrary.ids.queryOptions(),staleTime:1e3*60})},H=r=>{const e=n();return y({...e.asmrLibrary.check.queryOptions({id:r||""}),enabled:!!r,staleTime:1e3*60})},U=(r=24)=>{const e=n();return y(e.asmrProgress.continueListening.queryOptions({limit:r}))},W=r=>{const e=n();return y({...e.asmrProgress.getByWork.queryOptions({workId:r||""}),enabled:!!r})},C=()=>{const r=n(),e=l();return d({mutationFn:async s=>{const{silent:t,...m}=s;return v.asmrLibrary.add.mutate(m)},onSuccess:(s,t)=>{t.silent||a.success("Added to listening list"),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries({queryKey:["asmr-library-ids"]}),e.invalidateQueries({queryKey:["asmr-library-check",P(t.rjCode)]}),e.invalidateQueries(r.asmrLibrary.pathFilter())},onError:s=>{a.error(`Failed to add: ${s.message}`)}})},O=()=>{const r=n(),e=l();return d(r.asmrLibrary.remove.mutationOptions({onSuccess:(s,t)=>{a.success("Removed from listening list"),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries({queryKey:["asmr-library-ids"]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries({queryKey:["asmr-library-check",t.id]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())},onError:s=>{a.error(`Failed to remove: ${s.message}`)}}))},x=()=>{const r=n(),e=l();return d(r.asmrLibrary.setStatus.mutationOptions({onSuccess:()=>{a.success("Status updated"),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())},onError:s=>{a.error(`Failed to update status: ${s.message}`)}}))},j=()=>{const r=n(),e=l();return d(r.asmrProgress.save.mutationOptions({onSuccess:(s,t)=>{e.invalidateQueries({queryKey:["asmr-progress",t.workId]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries({queryKey:["asmr-library-ids"]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())}}))},z=()=>{const r=n(),e=l();return d(r.asmrProgress.remove.mutationOptions({onSuccess:()=>{a.success("Progress reset"),e.invalidateQueries({queryKey:["asmr-progress"]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())},onError:s=>{a.error(`Failed to reset progress: ${s.message}`)}}))},Y=()=>{const r=n(),e=l();return d(r.asmrLibrary.batchStatus.mutationOptions({onSuccess:s=>{a.success(`Status updated for ${s.updated??0} items`),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())},onError:s=>{a.error(`Failed to update statuses: ${s.message}`)}}))},J=()=>{const r=n(),e=l();return d(r.asmrLibrary.removeMany.mutationOptions({onSuccess:s=>{const t=s.removed??0;a.success(`Removed ${t} ${t===1?"item":"items"} from listening list`),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries({queryKey:["asmr-library-ids"]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())},onError:s=>{a.error(`Failed to remove: ${s.message}`)}}))},V=()=>{const r=n(),e=l();return d(r.asmrProgress.removeMany.mutationOptions({onSuccess:s=>{const t=s.removed??0;a.success(`Reset progress for ${t} ${t===1?"item":"items"}`),e.invalidateQueries({queryKey:["asmr-progress"]}),e.invalidateQueries({queryKey:["asmr-continue-listening"]}),e.invalidateQueries({queryKey:["asmr-library"]}),e.invalidateQueries(r.asmrLibrary.pathFilter()),e.invalidateQueries(r.asmrProgress.pathFilter())},onError:s=>{a.error(`Failed to reset progress: ${s.message}`)}}))},X=()=>{const r=C(),e=O(),{data:s}=_(),t=E(()=>new Set(s?.ids||[]),[s]);return{toggle:i=>{const o=P(i.rjCode);t.has(o)?e.mutate({id:o}):r.mutate({...i,thumbnail:i.thumbnail||""})},bookmarkedIds:t,pending:r.isPending||e.isPending}},h=300*1e3,A=15,Z=(r,e,s,t)=>{const m=e+1,i=F({queries:Array.from({length:m},(u,w)=>{const L=w+1;return{queryKey:["asmrBrowse",r,L,s,t],queryFn:()=>{const k=r.trim();return v.asmr.browse.query({q:k||void 0,page:L,sort:s&&s!=="latest"?s:void 0,rating:t||void 0})},staleTime:h}})}),o=i.flatMap(u=>u.data?.shows??[]),q=o.slice((e-1)*A,e*A),g=i[i.length-1]?.data,b=!!(g&&(g.hasNext||o.length>e*A)),Q=i.some(u=>u.isLoading),c=i.some(u=>u.isFetching),f=i.some(u=>u.isError);return{data:{shows:q,hasNext:b},isLoading:Q,isError:f,isFetching:c}},ee=r=>y({queryKey:["asmrWork",r],queryFn:()=>v.asmr.work.query({rj:r}),enabled:!!r,staleTime:h,refetchOnMount:"always"}),T=15,p=6;function B(r){if(r.isAdult||!r.thumbnail)return!1;const e=(r.rating||"").toLowerCase();return e===""||e==="sfw"}function S(r,e){const s=new Set,t=[];for(const m of r)for(const i of m){if(t.length>=e)return t;const o=i.id||i._id;!o||s.has(o)||(s.add(o),B(i)&&t.push(i))}return t}const re=(r=!0)=>{const e=F({queries:Array.from({length:T},(c,f)=>{const u=f+1;return{queryKey:["asmrBrowse","",u,"popular_month",""],queryFn:()=>v.asmr.browse.query({page:u,sort:"popular_month"}),staleTime:h,enabled:r,retry:1}})}),s=e.map(c=>c.data?.shows??[]),t=S(s,p),m=e.every(c=>c.isFetched),i=r&&m&&t.length<p,o=y({queryKey:["asmrBrowse","",1,"popular","sfw"],queryFn:()=>v.asmr.browse.query({page:1,sort:"popular",rating:"sfw"}),staleTime:h,enabled:i,retry:1}),q=o.data?.shows??[],g=t.length>=p?t.slice(0,p):S([t,q],p),b=r&&(e.some(c=>c.isLoading)||i&&o.isLoading),Q=r&&m&&g.length===0&&e.some(c=>c.isError);return{data:g,isLoading:b,isError:Q}};export{D as A,M as a,re as b,ee as c,H as d,X as e,W as f,K as g,j as h,C as i,Z as j,P as k,N as l,G as m,O as n,x as o,Y as p,J as q,V as r,z as s,U as u};
@@ -1 +1 @@
1
- import{u as e,S as y,L as g,d as k,A as L,q as r}from"./vendor-core-8R2fFbyN.js";import{I as a}from"./vendor-icons-CDMuNDeL.js";import{c as P}from"./useAsmr-DIwIsJXF.js";import{p as s,a as f}from"./MediaCard-B5584Cq9.js";import{a as A}from"./Asmr.module-ChUXDZKx.js";const B=({data:n,anchorRect:l,bookmarked:i,onToggleBookmark:c,onMouseEnter:o,onMouseLeave:m,onRequestClose:p})=>{const{data:t,isLoading:d}=P(n.rjCode||null),u=t?.tracks.length??0,N=u>0,h=!d;return e(f,{anchorRect:l,onMouseEnter:o,onMouseLeave:m,onRequestClose:p,children:[e("div",{className:s.header,children:[n.thumbnail&&e("img",{src:n.thumbnail,alt:n.title,loading:"lazy",decoding:"async",className:A.popupCover}),e("div",{className:s.title,children:n.title}),e("div",{className:s.synopsis,children:n.rjCode})]}),e("div",{className:s.body,children:[e("div",{className:s.metaRow,children:[e("div",{className:s.metaItem,children:[e(a,{name:"headphones",size:14}),e("span",{children:h?N?e(y,{children:[u," track",u===1?"":"s"]}):"No tracks":"Loading tracks…"})]}),n.rating&&e("div",{className:s.metaItem,children:e("span",{children:n.rating.toUpperCase()})}),n.isAdult&&e("div",{className:s.metaItem,children:e("span",{children:"18+"})}),n.progressLabel&&e("div",{className:s.metaItem,children:[e(a,{name:"bookmark",size:12}),e("span",{children:n.progressLabel})]})]}),e("div",{className:s.synopsis,children:!h&&!t?.description?"Loading description…":t?.description??"No description available."})]}),e("div",{className:s.footer,children:[e("div",{className:s.primaryAction,children:N?e(g,{to:n.listenTarget,className:s.watchBtn,children:[e(a,{name:"play",size:14}),"Listen now"]}):e("span",{className:s.watchBtn,"aria-disabled":"true",style:{opacity:.5,pointerEvents:"none"},children:[e(a,{name:"play",size:14}),h?"No tracks":"Loading…"]})}),e("div",{className:s.secondaryActions,children:[e("button",{className:`${s.watchlistBtn} ${i?s.active:""}`,onClick:v=>{v.preventDefault(),v.stopPropagation(),c()},children:[i?e(a,{name:"check",size:12}):e(a,{name:"plus",size:12}),e("span",{children:i?"Remove":"Bookmark"})]}),e(g,{to:n.listenTarget,className:s.detailsBtn,children:"Details"})]})]})]})},C=300;function D(){const[n,l]=k(null),i=L(null),c=r(()=>{i.current&&(clearTimeout(i.current),i.current=null)},[]),o=r((t,d)=>{c(),l({data:d,rect:t})},[c]),m=r(()=>{c(),i.current=setTimeout(()=>{i.current=null,l(null)},C)},[c]),p=r(()=>{c(),l(null)},[c]);return{popup:n,openPopup:o,scheduleClose:m,cancelClose:c,closePopup:p}}export{B as A,D as u};
1
+ import{u as e,S as y,L as g,d as k,A as L,q as r}from"./vendor-core-8R2fFbyN.js";import{I as a}from"./vendor-icons-CDMuNDeL.js";import{c as P}from"./useAsmr-D6cSjbvt.js";import{p as s,a as f}from"./MediaCard-DzA336CA.js";import{a as A}from"./Asmr.module-ChUXDZKx.js";const B=({data:n,anchorRect:l,bookmarked:i,onToggleBookmark:c,onMouseEnter:o,onMouseLeave:m,onRequestClose:p})=>{const{data:t,isLoading:d}=P(n.rjCode||null),u=t?.tracks.length??0,N=u>0,h=!d;return e(f,{anchorRect:l,onMouseEnter:o,onMouseLeave:m,onRequestClose:p,children:[e("div",{className:s.header,children:[n.thumbnail&&e("img",{src:n.thumbnail,alt:n.title,loading:"lazy",decoding:"async",className:A.popupCover}),e("div",{className:s.title,children:n.title}),e("div",{className:s.synopsis,children:n.rjCode})]}),e("div",{className:s.body,children:[e("div",{className:s.metaRow,children:[e("div",{className:s.metaItem,children:[e(a,{name:"headphones",size:14}),e("span",{children:h?N?e(y,{children:[u," track",u===1?"":"s"]}):"No tracks":"Loading tracks…"})]}),n.rating&&e("div",{className:s.metaItem,children:e("span",{children:n.rating.toUpperCase()})}),n.isAdult&&e("div",{className:s.metaItem,children:e("span",{children:"18+"})}),n.progressLabel&&e("div",{className:s.metaItem,children:[e(a,{name:"bookmark",size:12}),e("span",{children:n.progressLabel})]})]}),e("div",{className:s.synopsis,children:!h&&!t?.description?"Loading description…":t?.description??"No description available."})]}),e("div",{className:s.footer,children:[e("div",{className:s.primaryAction,children:N?e(g,{to:n.listenTarget,className:s.watchBtn,children:[e(a,{name:"play",size:14}),"Listen now"]}):e("span",{className:s.watchBtn,"aria-disabled":"true",style:{opacity:.5,pointerEvents:"none"},children:[e(a,{name:"play",size:14}),h?"No tracks":"Loading…"]})}),e("div",{className:s.secondaryActions,children:[e("button",{className:`${s.watchlistBtn} ${i?s.active:""}`,onClick:v=>{v.preventDefault(),v.stopPropagation(),c()},children:[i?e(a,{name:"check",size:12}):e(a,{name:"plus",size:12}),e("span",{children:i?"Remove":"Bookmark"})]}),e(g,{to:n.listenTarget,className:s.detailsBtn,children:"Details"})]})]})]})},C=300;function D(){const[n,l]=k(null),i=L(null),c=r(()=>{i.current&&(clearTimeout(i.current),i.current=null)},[]),o=r((t,d)=>{c(),l({data:d,rect:t})},[c]),m=r(()=>{c(),i.current=setTimeout(()=>{i.current=null,l(null)},C)},[c]),p=r(()=>{c(),l(null)},[c]);return{popup:n,openPopup:o,scheduleClose:m,cancelClose:c,closePopup:p}}export{B as A,D as u};
@@ -1 +1 @@
1
- import{b as u,c as Q,u as g,a as c}from"./vendor-query-BUTye89G.js";import{t as v,g as s,z as i}from"./index-BXwhFWB_.js";import{T as K}from"./vendor-core-8R2fFbyN.js";const p=300*1e3,h={mangadex:"https://mangadex.org/",mangapill:"https://www.mangapill.com/"},M=(a,e)=>`/api/proxy?url=${encodeURIComponent(e)}&referer=${encodeURIComponent(h[a])}`,C=(a,e)=>e&&(a==="mangapill"?M(a,e):e),T=(a,e=!0)=>{const{provider:r,query:n,page:o,sort:t,status:d,type:m,rating:y,mature:l}=a;return u({queryKey:["mangaBrowse",r,n,o,t,d,m,y,l],queryFn:()=>v.manga.search.query({provider:r,q:n.trim()||void 0,page:o,sort:t||void 0,status:d||void 0,type:m||void 0,rating:y||void 0,mature:l?"1":void 0}),staleTime:p,enabled:e&&!!r})},E=(a,e=14)=>{const{provider:r,query:n,sort:o,status:t,type:d,rating:m,mature:y}=a;return Q({queryKey:["mangaBrowseInfinite",r,n,o,t,d,m,y,e],queryFn:({pageParam:l=1})=>v.manga.search.query({provider:r,q:n.trim()||void 0,page:l,limit:e,sort:o||void 0,status:t||void 0,type:d||void 0,rating:m||void 0,mature:y?"1":void 0}),initialPageParam:1,getNextPageParam:(l,b)=>l.hasNext?b.length+1:void 0,staleTime:p,enabled:!!r})},O=(a,e,r="safe",n=!1)=>u({queryKey:["mangaDetail",a,e,r,n],queryFn:()=>v.manga.info.query({provider:a||"",id:e||"",rating:r,mature:n?"1":void 0}),enabled:!!a&&!!e,staleTime:p}),$=(a,e,r)=>u({queryKey:["mangaPages",a,e],queryFn:()=>v.manga.pages.query({provider:a||"",id:e||""}),enabled:!!a&&!!e,staleTime:1800*1e3}),B=()=>{const a=s();return u({...a.manga.trending.queryOptions(),staleTime:600*1e3,retry:1})},I=a=>a.contentRating==="erotica"||a.contentRating==="pornographic"||a.type==="doujinshi";function N(a,e){const r=a.titles??{};return e==="englishName"?r.en||a.title:e==="nativeName"&&(r.native||r.romaji||a.altTitle)||a.title}function A(a){return{englishName:a.titles?.en??a.title,nativeName:a.titles?.native??a.titles?.romaji??a.altTitle??void 0}}const f=/^anilist:ch:(\d+)$/;function w(a){if(!a)return null;const e=f.exec(a.trim());if(!e)return null;const r=Number.parseInt(e[1],10);return Number.isFinite(r)?r:null}function _(a,e){const r=String(e),n=a.find(o=>(o.number??"").trim()===r);return n||(a.find(o=>{const t=Number.parseFloat((o.number??"").trim());return Number.isFinite(t)&&t===e})??null)}const x=["Reading","Completed","On-Hold","Dropped","Planned"],q=(a,e)=>`${a.toLowerCase()}:${e}`,D=(a="All",e=1,r=24)=>{const n=s();return u(n.mangaLibrary.list.queryOptions({status:a,page:e,limit:r}))},L=()=>{const a=s();return u({...a.mangaLibrary.ids.queryOptions(),staleTime:1e3*60})},U=a=>{const e=s();return u({...e.mangaLibrary.check.queryOptions({id:a??""}),enabled:!!a,staleTime:1e3*60})},j=a=>{const e=s();return u({...e.mangaLibrary.entry.queryOptions({id:a??""}),enabled:!!a,staleTime:1e3*60})},H=()=>{const a=s(),e=g();return c(a.mangaLibrary.link.mutationOptions({onSuccess:r=>{i.success(r?.progressMigrated?"Linked — chapter progress carried over":"Linked to AniList entry"),e.invalidateQueries(a.mangaLibrary.pathFilter()),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-library-ids"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]}),e.invalidateQueries({queryKey:["manga-library-check"]}),e.invalidateQueries({queryKey:["manga-library-entry"]})},onError:r=>{i.error(`Failed to link: ${r.message}`)}}))},z=(a=24)=>{const e=s();return u(e.mangaProgress.continueReading.queryOptions({limit:a}))},V=a=>{const e=s();return u({...e.mangaProgress.byManga.queryOptions({mangaId:a??""}),enabled:!!a})},P=()=>{const a=s(),e=g();return c(a.mangaLibrary.add.mutationOptions({onSuccess:(r,n)=>{n.silent||i.success("Bookmarked"),e.invalidateQueries(a.mangaLibrary.pathFilter()),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-library-ids"]}),e.invalidateQueries({queryKey:["manga-library-check",q(n.provider??"",n.mangaId??"")]})},onError:r=>{i.error(`Failed to bookmark: ${r.message}`)}}))},S=()=>{const a=s(),e=g();return c(a.mangaLibrary.remove.mutationOptions({onSuccess:(r,n)=>{i.success("Bookmark removed"),e.invalidateQueries(a.mangaLibrary.pathFilter()),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-library-ids"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]}),e.invalidateQueries({queryKey:["manga-library-check",n]})},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},Y=()=>{const a=s(),e=g();return c(a.mangaLibrary.setStatus.mutationOptions({onSuccess:()=>{i.success("Status updated"),e.invalidateQueries(a.mangaLibrary.pathFilter()),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{i.error(`Failed to update status: ${r.message}`)}}))},G=()=>{const a=s(),e=g();return c(a.mangaProgress.save.mutationOptions({onSuccess:(r,n)=>{e.invalidateQueries({queryKey:["manga-progress",n.mangaId]}),e.invalidateQueries({queryKey:["manga-continue-reading"]}),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-library-ids"]}),e.invalidateQueries(a.mangaProgress.pathFilter())}}))},J=()=>{const a=s(),e=g();return c(a.mangaProgress.remove.mutationOptions({onSuccess:()=>{i.success("Progress reset"),e.invalidateQueries({queryKey:["manga-progress"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]}),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries(a.mangaProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},W=()=>{const a=s(),e=g();return c(a.mangaLibrary.batchStatus.mutationOptions({onSuccess:r=>{i.success(`Status updated for ${r.updated??0} items`),e.invalidateQueries(a.mangaLibrary.pathFilter()),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{i.error(`Failed to update statuses: ${r.message}`)}}))},X=()=>{const a=s(),e=g();return c(a.mangaLibrary.removeMany.mutationOptions({onSuccess:r=>{const n=r.removed??0;i.success(`Removed ${n} ${n===1?"item":"items"} from reading list`),e.invalidateQueries(a.mangaLibrary.pathFilter()),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-library-ids"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},Z=()=>{const a=s(),e=g();return c(a.mangaProgress.removeMany.mutationOptions({onSuccess:r=>{const n=r.removed??0;i.success(`Reset progress for ${n} ${n===1?"item":"items"}`),e.invalidateQueries({queryKey:["manga-progress"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]}),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries(a.mangaProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},ee=()=>{const a=P(),e=S(),{data:r}=L(),n=K(()=>new Set(r?.ids||[]),[r]);return{toggle:t=>{const d=q(t.provider,t.id);n.has(d)?e.mutate(d):a.mutate({provider:t.provider,mangaId:t.id,title:t.title,cover:t.cover,altTitle:t.altTitle,contentRating:t.contentRating})},bookmarkedIds:n,pending:a.isPending||e.isPending}};export{Z as A,J as B,x as M,E as a,C as b,A as c,z as d,B as e,T as f,j as g,P as h,I as i,H as j,O as k,U as l,q as m,V as n,S as o,Y as p,w as q,N as r,_ as s,$ as t,ee as u,M as v,G as w,D as x,W as y,X as z};
1
+ import{b as u,c as Q,u as g,a as c}from"./vendor-query-BUTye89G.js";import{t as v,g as s,z as i}from"./index-B5SLDCAi.js";import{T as K}from"./vendor-core-8R2fFbyN.js";const p=300*1e3,h={mangadex:"https://mangadex.org/",mangapill:"https://www.mangapill.com/"},M=(a,e)=>`/api/proxy?url=${encodeURIComponent(e)}&referer=${encodeURIComponent(h[a])}`,C=(a,e)=>e&&(a==="mangapill"?M(a,e):e),T=(a,e=!0)=>{const{provider:r,query:n,page:o,sort:t,status:d,type:m,rating:y,mature:l}=a;return u({queryKey:["mangaBrowse",r,n,o,t,d,m,y,l],queryFn:()=>v.manga.search.query({provider:r,q:n.trim()||void 0,page:o,sort:t||void 0,status:d||void 0,type:m||void 0,rating:y||void 0,mature:l?"1":void 0}),staleTime:p,enabled:e&&!!r})},E=(a,e=14)=>{const{provider:r,query:n,sort:o,status:t,type:d,rating:m,mature:y}=a;return Q({queryKey:["mangaBrowseInfinite",r,n,o,t,d,m,y,e],queryFn:({pageParam:l=1})=>v.manga.search.query({provider:r,q:n.trim()||void 0,page:l,limit:e,sort:o||void 0,status:t||void 0,type:d||void 0,rating:m||void 0,mature:y?"1":void 0}),initialPageParam:1,getNextPageParam:(l,b)=>l.hasNext?b.length+1:void 0,staleTime:p,enabled:!!r})},O=(a,e,r="safe",n=!1)=>u({queryKey:["mangaDetail",a,e,r,n],queryFn:()=>v.manga.info.query({provider:a||"",id:e||"",rating:r,mature:n?"1":void 0}),enabled:!!a&&!!e,staleTime:p}),$=(a,e,r)=>u({queryKey:["mangaPages",a,e],queryFn:()=>v.manga.pages.query({provider:a||"",id:e||""}),enabled:!!a&&!!e,staleTime:1800*1e3}),B=()=>{const a=s();return u({...a.manga.trending.queryOptions(),staleTime:600*1e3,retry:1})},I=a=>a.contentRating==="erotica"||a.contentRating==="pornographic"||a.type==="doujinshi";function N(a,e){const r=a.titles??{};return e==="englishName"?r.en||a.title:e==="nativeName"&&(r.native||r.romaji||a.altTitle)||a.title}function A(a){return{englishName:a.titles?.en??a.title,nativeName:a.titles?.native??a.titles?.romaji??a.altTitle??void 0}}const f=/^anilist:ch:(\d+)$/;function w(a){if(!a)return null;const e=f.exec(a.trim());if(!e)return null;const r=Number.parseInt(e[1],10);return Number.isFinite(r)?r:null}function _(a,e){const r=String(e),n=a.find(o=>(o.number??"").trim()===r);return n||(a.find(o=>{const t=Number.parseFloat((o.number??"").trim());return Number.isFinite(t)&&t===e})??null)}const x=["Reading","Completed","On-Hold","Dropped","Planned"],q=(a,e)=>`${a.toLowerCase()}:${e}`,D=(a="All",e=1,r=24)=>{const n=s();return u(n.mangaLibrary.list.queryOptions({status:a,page:e,limit:r}))},L=()=>{const a=s();return u({...a.mangaLibrary.ids.queryOptions(),staleTime:1e3*60})},U=a=>{const e=s();return u({...e.mangaLibrary.check.queryOptions({id:a??""}),enabled:!!a,staleTime:1e3*60})},j=a=>{const e=s();return u({...e.mangaLibrary.entry.queryOptions({id:a??""}),enabled:!!a,staleTime:1e3*60})},H=()=>{const a=s(),e=g();return c(a.mangaLibrary.link.mutationOptions({onSuccess:r=>{i.success(r?.progressMigrated?"Linked — chapter progress carried over":"Linked to AniList entry"),e.invalidateQueries(a.mangaLibrary.pathFilter()),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-library-ids"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]}),e.invalidateQueries({queryKey:["manga-library-check"]}),e.invalidateQueries({queryKey:["manga-library-entry"]})},onError:r=>{i.error(`Failed to link: ${r.message}`)}}))},z=(a=24)=>{const e=s();return u(e.mangaProgress.continueReading.queryOptions({limit:a}))},V=a=>{const e=s();return u({...e.mangaProgress.byManga.queryOptions({mangaId:a??""}),enabled:!!a})},P=()=>{const a=s(),e=g();return c(a.mangaLibrary.add.mutationOptions({onSuccess:(r,n)=>{n.silent||i.success("Bookmarked"),e.invalidateQueries(a.mangaLibrary.pathFilter()),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-library-ids"]}),e.invalidateQueries({queryKey:["manga-library-check",q(n.provider??"",n.mangaId??"")]})},onError:r=>{i.error(`Failed to bookmark: ${r.message}`)}}))},S=()=>{const a=s(),e=g();return c(a.mangaLibrary.remove.mutationOptions({onSuccess:(r,n)=>{i.success("Bookmark removed"),e.invalidateQueries(a.mangaLibrary.pathFilter()),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-library-ids"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]}),e.invalidateQueries({queryKey:["manga-library-check",n]})},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},Y=()=>{const a=s(),e=g();return c(a.mangaLibrary.setStatus.mutationOptions({onSuccess:()=>{i.success("Status updated"),e.invalidateQueries(a.mangaLibrary.pathFilter()),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{i.error(`Failed to update status: ${r.message}`)}}))},G=()=>{const a=s(),e=g();return c(a.mangaProgress.save.mutationOptions({onSuccess:(r,n)=>{e.invalidateQueries({queryKey:["manga-progress",n.mangaId]}),e.invalidateQueries({queryKey:["manga-continue-reading"]}),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-library-ids"]}),e.invalidateQueries(a.mangaProgress.pathFilter())}}))},J=()=>{const a=s(),e=g();return c(a.mangaProgress.remove.mutationOptions({onSuccess:()=>{i.success("Progress reset"),e.invalidateQueries({queryKey:["manga-progress"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]}),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries(a.mangaProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},W=()=>{const a=s(),e=g();return c(a.mangaLibrary.batchStatus.mutationOptions({onSuccess:r=>{i.success(`Status updated for ${r.updated??0} items`),e.invalidateQueries(a.mangaLibrary.pathFilter()),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{i.error(`Failed to update statuses: ${r.message}`)}}))},X=()=>{const a=s(),e=g();return c(a.mangaLibrary.removeMany.mutationOptions({onSuccess:r=>{const n=r.removed??0;i.success(`Removed ${n} ${n===1?"item":"items"} from reading list`),e.invalidateQueries(a.mangaLibrary.pathFilter()),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries({queryKey:["manga-library-ids"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},Z=()=>{const a=s(),e=g();return c(a.mangaProgress.removeMany.mutationOptions({onSuccess:r=>{const n=r.removed??0;i.success(`Reset progress for ${n} ${n===1?"item":"items"}`),e.invalidateQueries({queryKey:["manga-progress"]}),e.invalidateQueries({queryKey:["manga-continue-reading"]}),e.invalidateQueries({queryKey:["manga-library"]}),e.invalidateQueries(a.mangaProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},ee=()=>{const a=P(),e=S(),{data:r}=L(),n=K(()=>new Set(r?.ids||[]),[r]);return{toggle:t=>{const d=q(t.provider,t.id);n.has(d)?e.mutate(d):a.mutate({provider:t.provider,mangaId:t.id,title:t.title,cover:t.cover,altTitle:t.altTitle,contentRating:t.contentRating})},bookmarkedIds:n,pending:a.isPending||e.isPending}};export{Z as A,J as B,x as M,E as a,C as b,A as c,z as d,B as e,T as f,j as g,P as h,I as i,H as j,O as k,U as l,q as m,V as n,S as o,Y as p,w as q,N as r,_ as s,$ as t,ee as u,M as v,G as w,D as x,W as y,X as z};
@@ -1 +1 @@
1
- import{u as e,S as T,L as N,d as P,A as y,q as o}from"./vendor-core-8R2fFbyN.js";import{I as c}from"./vendor-icons-CDMuNDeL.js";import{k as I,r as k}from"./useMangaLibrary-C9Lci5N4.js";import{d as A}from"./index-BXwhFWB_.js";import{p as s,a as L}from"./MediaCard-B5584Cq9.js";const S=({data:l,anchorRect:t,bookmarked:a,onToggleBookmark:i,onMouseEnter:d,onMouseLeave:m,onRequestClose:p})=>{const{data:n,isLoading:h}=I(l.provider,l.mangaId,l.rating||"safe",l.mature||!1),{titlePreference:f}=A(),u=n?.chapters.length??0,v=[n?.status,n?.type].filter(Boolean).join(" · "),g=k({title:l.title,altTitle:n?.altTitle??l.altTitle},f);return e(L,{anchorRect:t,onMouseEnter:d,onMouseLeave:m,onRequestClose:p,children:h?e("div",{className:s.loading,children:[e("div",{className:s.spinner}),e("span",{children:"Fetching details..."})]}):e(T,{children:[e("div",{className:s.header,children:[e("div",{className:s.title,children:g}),n?.altTitle&&n.altTitle!==g&&e("div",{className:s.synopsis,children:["Also known as: ",n.altTitle]})]}),e("div",{className:s.body,children:[e("div",{className:s.metaRow,children:[v&&e("div",{className:s.metaItem,children:[e(c,{name:"book",size:14}),e("span",{children:v})]}),u>0&&e("div",{className:s.metaItem,children:e("span",{children:[u," chapter",u===1?"":"s"]})}),l.progressLabel&&e("div",{className:s.metaItem,children:[e(c,{name:"bookmark",size:12}),e("span",{children:l.progressLabel})]})]}),e("div",{className:s.synopsis,children:n?.description?n.description:"No synopsis available."}),Array.isArray(n?.genres)&&(n?.genres?.length??0)>0&&e("div",{className:s.details,children:e("div",{className:s.genres,children:n.genres.filter(Boolean).slice(0,4).map(r=>e("span",{className:s.genre,children:r},r))})})]}),e("div",{className:s.footer,children:[e("div",{className:s.primaryAction,children:e(N,{to:l.readTarget,className:s.watchBtn,children:[e(c,{name:"book",size:14}),"Read now"]})}),e("div",{className:s.secondaryActions,children:[e("button",{className:`${s.watchlistBtn} ${a?s.active:""}`,onClick:r=>{r.preventDefault(),r.stopPropagation(),i()},children:[a?e(c,{name:"check",size:12}):e(c,{name:"plus",size:12}),e("span",{children:a?"Remove":"Bookmark"})]}),e(N,{to:`/manga/${l.provider}/${encodeURIComponent(l.mangaId)}`,className:s.detailsBtn,children:"Read more"})]})]})]})})},M=300;function $(){const[l,t]=P(null),a=y(null),i=o(()=>{a.current&&(clearTimeout(a.current),a.current=null)},[]),d=o((n,h)=>{i(),t({data:h,rect:n})},[i]),m=o(()=>{i(),a.current=setTimeout(()=>{a.current=null,t(null)},M)},[i]),p=o(()=>{i(),t(null)},[i]);return{popup:l,openPopup:d,scheduleClose:m,cancelClose:i,closePopup:p}}export{S as M,$ as u};
1
+ import{u as e,S as T,L as N,d as P,A as y,q as o}from"./vendor-core-8R2fFbyN.js";import{I as c}from"./vendor-icons-CDMuNDeL.js";import{k as I,r as k}from"./useMangaLibrary-DcxPn0RM.js";import{d as A}from"./index-B5SLDCAi.js";import{p as s,a as L}from"./MediaCard-DzA336CA.js";const S=({data:l,anchorRect:t,bookmarked:a,onToggleBookmark:i,onMouseEnter:d,onMouseLeave:m,onRequestClose:p})=>{const{data:n,isLoading:h}=I(l.provider,l.mangaId,l.rating||"safe",l.mature||!1),{titlePreference:f}=A(),u=n?.chapters.length??0,v=[n?.status,n?.type].filter(Boolean).join(" · "),g=k({title:l.title,altTitle:n?.altTitle??l.altTitle},f);return e(L,{anchorRect:t,onMouseEnter:d,onMouseLeave:m,onRequestClose:p,children:h?e("div",{className:s.loading,children:[e("div",{className:s.spinner}),e("span",{children:"Fetching details..."})]}):e(T,{children:[e("div",{className:s.header,children:[e("div",{className:s.title,children:g}),n?.altTitle&&n.altTitle!==g&&e("div",{className:s.synopsis,children:["Also known as: ",n.altTitle]})]}),e("div",{className:s.body,children:[e("div",{className:s.metaRow,children:[v&&e("div",{className:s.metaItem,children:[e(c,{name:"book",size:14}),e("span",{children:v})]}),u>0&&e("div",{className:s.metaItem,children:e("span",{children:[u," chapter",u===1?"":"s"]})}),l.progressLabel&&e("div",{className:s.metaItem,children:[e(c,{name:"bookmark",size:12}),e("span",{children:l.progressLabel})]})]}),e("div",{className:s.synopsis,children:n?.description?n.description:"No synopsis available."}),Array.isArray(n?.genres)&&(n?.genres?.length??0)>0&&e("div",{className:s.details,children:e("div",{className:s.genres,children:n.genres.filter(Boolean).slice(0,4).map(r=>e("span",{className:s.genre,children:r},r))})})]}),e("div",{className:s.footer,children:[e("div",{className:s.primaryAction,children:e(N,{to:l.readTarget,className:s.watchBtn,children:[e(c,{name:"book",size:14}),"Read now"]})}),e("div",{className:s.secondaryActions,children:[e("button",{className:`${s.watchlistBtn} ${a?s.active:""}`,onClick:r=>{r.preventDefault(),r.stopPropagation(),i()},children:[a?e(c,{name:"check",size:12}):e(c,{name:"plus",size:12}),e("span",{children:a?"Remove":"Bookmark"})]}),e(N,{to:`/manga/${l.provider}/${encodeURIComponent(l.mangaId)}`,className:s.detailsBtn,children:"Read more"})]})]})]})})},M=300;function $(){const[l,t]=P(null),a=y(null),i=o(()=>{a.current&&(clearTimeout(a.current),a.current=null)},[]),d=o((n,h)=>{i(),t({data:h,rect:n})},[i]),m=o(()=>{i(),a.current=setTimeout(()=>{a.current=null,t(null)},M)},[i]),p=o(()=>{i(),t(null)},[i]);return{popup:l,openPopup:d,scheduleClose:m,cancelClose:i,closePopup:p}}export{S as M,$ as u};
@@ -1 +1 @@
1
- import{T as l}from"./vendor-core-8R2fFbyN.js";import{b as m}from"./vendor-query-BUTye89G.js";import{X as n}from"./index-BXwhFWB_.js";const d=e=>new Promise(t=>setTimeout(t,e)),f=async(e,t)=>{const a={"Content-Type":"application/json"};if(e.startsWith("/")||typeof window<"u"&&e.startsWith(window.location.origin)){const o=localStorage.getItem("animepahe_ua"),s=localStorage.getItem("animepahe_cookie"),i=localStorage.getItem("jasmr_ua"),p=localStorage.getItem("jasmr_cookie");o&&(a["x-animepahe-ua"]=o),s&&(a["x-animepahe-cookie"]=s),i&&(a["x-jasmr-ua"]=i),p&&(a["x-jasmr-cookie"]=p)}let r=await fetch(e,{...t,headers:{...a,...t?.headers}});for(let o=0;r.status===503&&o<8;o++)await d(Math.min(500*2**o,4e3)),r=await fetch(e,{...t,headers:{...a,...t?.headers}});if(!r.ok){const o=await r.text().catch(()=>"");let s={};try{s=JSON.parse(o)}catch{}const i=typeof s.error=="string"?s.error:"";throw r.status===403&&i==="AUTH_REQUIRED"&&s.provider==="animepahe"&&n("animepahe"),r.status===403&&i==="AUTH_REQUIRED"&&s.provider==="jasmr"&&n("jasmr"),r.status===401&&i==="LAN_AUTH_REQUIRED"&&n("lan"),new Error(i||`Failed to fetch from ${e}`)}return r.json()},h=300*1e3;function u(e){return{value:e.id,label:e.label,mature:e.mature,kind:e.kind,sub:e.sub,tier:e.tier,browse:e.browse,facets:e.facets,servers:e.servers}}const j=()=>{const e=m({queryKey:["providers"],queryFn:()=>f("/api/providers"),staleTime:h,retry:1}),t=Array.isArray(e.data)?e.data:null,a=l(()=>t&&t.length>0?t.filter(c=>c.loaded).map(u):[],[t]);return{...e,options:a,isFallback:!t||t.length===0}};export{f,j as u};
1
+ import{T as l}from"./vendor-core-8R2fFbyN.js";import{b as m}from"./vendor-query-BUTye89G.js";import{X as n}from"./index-B5SLDCAi.js";const d=e=>new Promise(t=>setTimeout(t,e)),f=async(e,t)=>{const a={"Content-Type":"application/json"};if(e.startsWith("/")||typeof window<"u"&&e.startsWith(window.location.origin)){const o=localStorage.getItem("animepahe_ua"),s=localStorage.getItem("animepahe_cookie"),i=localStorage.getItem("jasmr_ua"),p=localStorage.getItem("jasmr_cookie");o&&(a["x-animepahe-ua"]=o),s&&(a["x-animepahe-cookie"]=s),i&&(a["x-jasmr-ua"]=i),p&&(a["x-jasmr-cookie"]=p)}let r=await fetch(e,{...t,headers:{...a,...t?.headers}});for(let o=0;r.status===503&&o<8;o++)await d(Math.min(500*2**o,4e3)),r=await fetch(e,{...t,headers:{...a,...t?.headers}});if(!r.ok){const o=await r.text().catch(()=>"");let s={};try{s=JSON.parse(o)}catch{}const i=typeof s.error=="string"?s.error:"";throw r.status===403&&i==="AUTH_REQUIRED"&&s.provider==="animepahe"&&n("animepahe"),r.status===403&&i==="AUTH_REQUIRED"&&s.provider==="jasmr"&&n("jasmr"),r.status===401&&i==="LAN_AUTH_REQUIRED"&&n("lan"),new Error(i||`Failed to fetch from ${e}`)}return r.json()},h=300*1e3;function u(e){return{value:e.id,label:e.label,mature:e.mature,kind:e.kind,sub:e.sub,tier:e.tier,browse:e.browse,facets:e.facets,servers:e.servers}}const j=()=>{const e=m({queryKey:["providers"],queryFn:()=>f("/api/providers"),staleTime:h,retry:1}),t=Array.isArray(e.data)?e.data:null,a=l(()=>t&&t.length>0?t.filter(c=>c.loaded).map(u):[],[t]);return{...e,options:a,isFallback:!t||t.length===0}};export{f,j as u};
@@ -1 +1 @@
1
- import{N as c,u as r,S as d}from"./vendor-core-8R2fFbyN.js";import{I as v}from"./vendor-icons-CDMuNDeL.js";import{M as g}from"./MediaCard-B5584Cq9.js";import{T}from"./TvPopup-BekfiNcX.js";import{c as m,i as f}from"./useTvLibrary-B7jEk2Q7.js";import{b as i}from"./vendor-query-BUTye89G.js";import{g as p}from"./index-BXwhFWB_.js";const _=c(({item:e})=>{const o=e.type==="tv"||e.type==="tvSeries"||e.type==="tvMiniSeries",s=m(e.type,e.id);return r(g,{item:{id:String(e.id),title:e.title,thumbnail:e.image,typeBadge:o?"TV":"Movie",isAdult:f(e)},linkTo:s,hoverIcon:"info",showInfoButton:!0,metaRow:r(d,{children:[e.year&&r("span",{style:{opacity:.75},children:e.year}),e.vote_average!=null&&r("span",{style:{display:"inline-flex",alignItems:"center",gap:3},children:[r(v,{name:"star",size:10}),Number(e.vote_average).toFixed(1)]})]}),renderPopup:(a,t)=>r(T,{item:e,anchorRect:a,onMouseEnter:t.onMouseEnter,onMouseLeave:t.onMouseLeave,onRequestClose:t.close})})}),u=1e3*60*5,b=e=>{const o=p(),{query:s,type:a,genre:t,year:n,sort_by:l,page:y}=e;return i({...o.tv.search.queryOptions({q:s?.trim()||"",type:a||"multi",genre:t||"",year:n&&n!=="ALL"?n:"",sortBy:l||"popularity.desc",page:y||1}),staleTime:u,retry:1})},A=(e="all",o="week",s=1,a=!0)=>{const t=p();return i({...t.tv.trending.queryOptions({mediaType:e,timeWindow:o,page:s}),enabled:a,staleTime:u,retry:1})};export{_ as T,b as a,A as u};
1
+ import{N as c,u as r,S as d}from"./vendor-core-8R2fFbyN.js";import{I as v}from"./vendor-icons-CDMuNDeL.js";import{M as g}from"./MediaCard-DzA336CA.js";import{T}from"./TvPopup-CqlVRF-Y.js";import{c as m,i as f}from"./useTvLibrary-C2rPeCVT.js";import{b as i}from"./vendor-query-BUTye89G.js";import{g as p}from"./index-B5SLDCAi.js";const _=c(({item:e})=>{const o=e.type==="tv"||e.type==="tvSeries"||e.type==="tvMiniSeries",s=m(e.type,e.id);return r(g,{item:{id:String(e.id),title:e.title,thumbnail:e.image,typeBadge:o?"TV":"Movie",isAdult:f(e)},linkTo:s,hoverIcon:"info",showInfoButton:!0,metaRow:r(d,{children:[e.year&&r("span",{style:{opacity:.75},children:e.year}),e.vote_average!=null&&r("span",{style:{display:"inline-flex",alignItems:"center",gap:3},children:[r(v,{name:"star",size:10}),Number(e.vote_average).toFixed(1)]})]}),renderPopup:(a,t)=>r(T,{item:e,anchorRect:a,onMouseEnter:t.onMouseEnter,onMouseLeave:t.onMouseLeave,onRequestClose:t.close})})}),u=1e3*60*5,b=e=>{const o=p(),{query:s,type:a,genre:t,year:n,sort_by:l,page:y}=e;return i({...o.tv.search.queryOptions({q:s?.trim()||"",type:a||"multi",genre:t||"",year:n&&n!=="ALL"?n:"",sortBy:l||"popularity.desc",page:y||1}),staleTime:u,retry:1})},A=(e="all",o="week",s=1,a=!0)=>{const t=p();return i({...t.tv.trending.queryOptions({mediaType:e,timeWindow:o,page:s}),enabled:a,staleTime:u,retry:1})};export{_ as T,b as a,A as u};
@@ -1 +1 @@
1
- import{T as p}from"./vendor-core-8R2fFbyN.js";import{b as v,u as n,a as o}from"./vendor-query-BUTye89G.js";import{g as a,z as i,t as m}from"./index-BXwhFWB_.js";const d=t=>String(t).toLowerCase()==="movie"?"movie":"tv",g=(t,e)=>`${d(t)}:${e}`,K=(t,e)=>{const r=d(t);return`/tv/${e}?type=${r}`},L=(t,e,r,s)=>{const u=new URLSearchParams;return u.set("type",d(t)),r!==void 0&&u.set("s",String(r)),s!==void 0&&u.set("e",String(s)),`/tv/${e}/watch?${u.toString()}`},S=t=>t.adult===!0||t.adult===1,F=["Watching","Completed","On-Hold","Dropped","Planned"],y=(t,e)=>g(t,e),$=(t="All",e=1,r=24)=>{const s=a();return v(s.tvLibrary.list.queryOptions({status:t,page:e,limit:r}))},b=()=>{const t=a();return v({...t.tvLibrary.ids.queryOptions(),staleTime:1e3*60})},C=t=>{const e=a();return v({...e.tvLibrary.check.queryOptions({id:t||""}),enabled:!!t,staleTime:1e3*60})},w=(t=24)=>{const e=a();return v(e.tvProgress.continueWatching.queryOptions({limit:t}))},O=t=>{const e=a();return v({...e.tvProgress.getByMedia.queryOptions({mediaId:t||""}),enabled:!!t})},k=(t,e,r)=>{const s=a();return v({...s.tvProgress.latest.queryOptions({mediaId:t||"",season:e,episode:r}),enabled:!!t,staleTime:0})},h=()=>{const t=a(),e=n();return o({mutationFn:async r=>{const{silent:s,...u}=r;return m.tvLibrary.add.mutate(u)},onSuccess:(r,s)=>{s.silent||i.success("Added to TV watchlist"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-library-ids"]}),e.invalidateQueries({queryKey:["tv-library-check",y(s.mediaType,s.tmdbId)]}),e.invalidateQueries(t.tvLibrary.pathFilter())},onError:r=>{i.error(`Failed to add: ${r.message}`)}})},Q=()=>{const t=a(),e=n();return o(t.tvLibrary.remove.mutationOptions({onSuccess:(r,s)=>{i.success("Removed from TV watchlist"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-library-ids"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library-check",s]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},f=()=>{const t=a(),e=n();return o(t.tvLibrary.setStatus.mutationOptions({onSuccess:()=>{i.success("Status updated"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to update status: ${r.message}`)}}))},R=()=>{const t=a(),e=n();return o(t.tvProgress.save.mutationOptions({onSuccess:(r,s)=>{e.invalidateQueries({queryKey:["tv-progress",s.mediaId]}),e.invalidateQueries({queryKey:["tv-progress-latest",s.mediaId]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-library-ids"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())}}))},I=()=>{const t=a(),e=n();return o(t.tvProgress.remove.mutationOptions({onSuccess:()=>{i.success("Progress reset"),e.invalidateQueries({queryKey:["tv-progress"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},B=()=>{const t=a(),e=n();return o(t.tvLibrary.batchStatus.mutationOptions({onSuccess:r=>{i.success(`Status updated for ${r.updated??0} items`),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to update statuses: ${r.message}`)}}))},E=()=>{const t=a(),e=n();return o(t.tvLibrary.removeMany.mutationOptions({onSuccess:r=>{const s=r.removed??0;i.success(`Removed ${s} ${s===1?"item":"items"} from TV watchlist`),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-library-ids"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},A=()=>{const t=a(),e=n();return o(t.tvProgress.removeMany.mutationOptions({onSuccess:r=>{const s=r.removed??0;i.success(`Reset progress for ${s} ${s===1?"item":"items"}`),e.invalidateQueries({queryKey:["tv-progress"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},_=()=>{const t=h(),e=Q(),{data:r}=b(),s=p(()=>new Set(r?.ids||[]),[r]);return{toggle:c=>{const l=y(c.mediaType,c.tmdbId);s.has(l)?e.mutate(l):t.mutate({...c,poster:c.poster||""})},bookmarkedIds:s,pending:t.isPending||e.isPending}};export{F as T,Q as a,I as b,K as c,g as d,C as e,_ as f,R as g,f as h,S as i,k as j,O as k,$ as l,B as m,d as n,E as o,A as p,L as t,w as u};
1
+ import{T as p}from"./vendor-core-8R2fFbyN.js";import{b as v,u as n,a as o}from"./vendor-query-BUTye89G.js";import{g as a,z as i,t as m}from"./index-B5SLDCAi.js";const d=t=>String(t).toLowerCase()==="movie"?"movie":"tv",g=(t,e)=>`${d(t)}:${e}`,K=(t,e)=>{const r=d(t);return`/tv/${e}?type=${r}`},L=(t,e,r,s)=>{const u=new URLSearchParams;return u.set("type",d(t)),r!==void 0&&u.set("s",String(r)),s!==void 0&&u.set("e",String(s)),`/tv/${e}/watch?${u.toString()}`},S=t=>t.adult===!0||t.adult===1,F=["Watching","Completed","On-Hold","Dropped","Planned"],y=(t,e)=>g(t,e),$=(t="All",e=1,r=24)=>{const s=a();return v(s.tvLibrary.list.queryOptions({status:t,page:e,limit:r}))},b=()=>{const t=a();return v({...t.tvLibrary.ids.queryOptions(),staleTime:1e3*60})},C=t=>{const e=a();return v({...e.tvLibrary.check.queryOptions({id:t||""}),enabled:!!t,staleTime:1e3*60})},w=(t=24)=>{const e=a();return v(e.tvProgress.continueWatching.queryOptions({limit:t}))},O=t=>{const e=a();return v({...e.tvProgress.getByMedia.queryOptions({mediaId:t||""}),enabled:!!t})},k=(t,e,r)=>{const s=a();return v({...s.tvProgress.latest.queryOptions({mediaId:t||"",season:e,episode:r}),enabled:!!t,staleTime:0})},h=()=>{const t=a(),e=n();return o({mutationFn:async r=>{const{silent:s,...u}=r;return m.tvLibrary.add.mutate(u)},onSuccess:(r,s)=>{s.silent||i.success("Added to TV watchlist"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-library-ids"]}),e.invalidateQueries({queryKey:["tv-library-check",y(s.mediaType,s.tmdbId)]}),e.invalidateQueries(t.tvLibrary.pathFilter())},onError:r=>{i.error(`Failed to add: ${r.message}`)}})},Q=()=>{const t=a(),e=n();return o(t.tvLibrary.remove.mutationOptions({onSuccess:(r,s)=>{i.success("Removed from TV watchlist"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-library-ids"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library-check",s]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},f=()=>{const t=a(),e=n();return o(t.tvLibrary.setStatus.mutationOptions({onSuccess:()=>{i.success("Status updated"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to update status: ${r.message}`)}}))},R=()=>{const t=a(),e=n();return o(t.tvProgress.save.mutationOptions({onSuccess:(r,s)=>{e.invalidateQueries({queryKey:["tv-progress",s.mediaId]}),e.invalidateQueries({queryKey:["tv-progress-latest",s.mediaId]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-library-ids"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())}}))},I=()=>{const t=a(),e=n();return o(t.tvProgress.remove.mutationOptions({onSuccess:()=>{i.success("Progress reset"),e.invalidateQueries({queryKey:["tv-progress"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},B=()=>{const t=a(),e=n();return o(t.tvLibrary.batchStatus.mutationOptions({onSuccess:r=>{i.success(`Status updated for ${r.updated??0} items`),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to update statuses: ${r.message}`)}}))},E=()=>{const t=a(),e=n();return o(t.tvLibrary.removeMany.mutationOptions({onSuccess:r=>{const s=r.removed??0;i.success(`Removed ${s} ${s===1?"item":"items"} from TV watchlist`),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-library-ids"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},A=()=>{const t=a(),e=n();return o(t.tvProgress.removeMany.mutationOptions({onSuccess:r=>{const s=r.removed??0;i.success(`Reset progress for ${s} ${s===1?"item":"items"}`),e.invalidateQueries({queryKey:["tv-progress"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},_=()=>{const t=h(),e=Q(),{data:r}=b(),s=p(()=>new Set(r?.ids||[]),[r]);return{toggle:c=>{const l=y(c.mediaType,c.tmdbId);s.has(l)?e.mutate(l):t.mutate({...c,poster:c.poster||""})},bookmarkedIds:s,pending:t.isPending||e.isPending}};export{F as T,Q as a,I as b,K as c,g as d,C as e,_ as f,R as g,f as h,S as i,k as j,O as k,$ as l,B as m,d as n,E as o,A as p,L as t,w as u};
@@ -33,7 +33,7 @@
33
33
  background-color: #0c0d12;
34
34
  }
35
35
  </style>
36
- <script type="module" crossorigin src="/assets/index-BXwhFWB_.js"></script>
36
+ <script type="module" crossorigin src="/assets/index-B5SLDCAi.js"></script>
37
37
  <link rel="modulepreload" crossorigin href="/assets/vendor-core-8R2fFbyN.js">
38
38
  <link rel="modulepreload" crossorigin href="/assets/vendor-query-BUTye89G.js">
39
39
  <link rel="modulepreload" crossorigin href="/assets/vendor-icons-CDMuNDeL.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serifpersia/dango",
3
- "version": "3.4.0",
3
+ "version": "3.4.1",
4
4
  "description": "A web application for watching anime.",
5
5
  "main": "orchestrator.js",
6
6
  "repository": {
@@ -54,13 +54,17 @@
54
54
  "type": "commonjs",
55
55
  "packageManager": "pnpm@11.27.0",
56
56
  "dependencies": {
57
+ "@hono/node-server": "^2.1.1",
57
58
  "@octokit/auth-oauth-device": "^8.0.3",
58
59
  "@octokit/rest": "^22.0.1",
60
+ "@trpc/server": "11.19.0",
59
61
  "@xhayper/discord-rpc": "^1.3.4",
60
62
  "cheerio": "^1.2.0",
61
63
  "dotenv": "^17.4.2",
64
+ "drizzle-orm": "0.45.3",
62
65
  "fast-xml-parser": "^5.11.1",
63
66
  "got-scraping": "^3.2.9",
67
+ "hono": "^4.13.9",
64
68
  "lru-cache": "^11.5.2",
65
69
  "pino": "^10.3.1",
66
70
  "ws": "^8.18.0",
@@ -77,5 +81,5 @@
77
81
  "allowScripts": {
78
82
  "esbuild@0.28.2": true
79
83
  },
80
- "versionDate": "2026-09-26T19:42:52.715Z"
84
+ "versionDate": "2026-09-26T19:57:08.199Z"
81
85
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dango-server",
3
3
  "private": true,
4
- "version": "3.4.0",
4
+ "version": "3.4.1",
5
5
  "type": "module",
6
6
  "engines": {
7
7
  "node": ">=22.12.0"