@serifpersia/dango 3.3.9 → 3.4.0

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 (180) hide show
  1. package/README.md +1 -1
  2. package/client/dist/assets/{AnimeCard-URCiiy5W.js → AnimeCard-CJy1SXH3.js} +1 -1
  3. package/client/dist/assets/{AnimeInfo-e3z3er9t.js → AnimeInfo-BoXlVvZ-.js} +1 -1
  4. package/client/dist/assets/{AnimeInfoPage-B7Djlmy_.js → AnimeInfoPage-BxbA_7AV.js} +2 -2
  5. package/client/dist/assets/Asmr--Zc8G9zv.js +2 -0
  6. package/client/dist/assets/AsmrResetProgressModal-CKYm-8cp.js +1 -0
  7. package/client/dist/assets/AvSyncCalibrator-3yjZS7s6.js +10 -0
  8. package/client/dist/assets/Home-rrhOGQcg.js +1 -0
  9. package/client/dist/assets/Insights-Bay90Yeg.js +1 -0
  10. package/client/dist/assets/{LibraryListPage-B0qWqhb_.js → LibraryListPage-HzuDavbb.js} +1 -1
  11. package/client/dist/assets/{ListeningList-CSqD8j1C.js → ListeningList-DYcQnnsG.js} +1 -1
  12. package/client/dist/assets/{Manga-Cg2YuObF.js → Manga-D8CT9aO0.js} +1 -1
  13. package/client/dist/assets/{MangaInfoPage-DcArhEsy.js → MangaInfoPage-DGK6CYp1.js} +1 -1
  14. package/client/dist/assets/MangaReadPage-B9XoDKF9.js +1 -0
  15. package/client/dist/assets/{MangaResetProgressModal-D_yT3d1v.js → MangaResetProgressModal-QjZyIAjl.js} +1 -1
  16. package/client/dist/assets/Mature-CHt_-Hz5.js +1 -0
  17. package/client/dist/assets/MediaCard-B5584Cq9.js +1 -0
  18. package/client/dist/assets/Music-HeLrEZ2d.js +1 -0
  19. package/client/dist/assets/OptionListMenu-CJ90CdwI.js +1 -0
  20. package/client/dist/assets/Player-BYtEax_z.js +56 -0
  21. package/client/dist/assets/PlayerSettings-4-cUAY4B.js +1 -0
  22. package/client/dist/assets/QueueOptionsButton-Ba0dg_82.js +1 -0
  23. package/client/dist/assets/{QueueRail-B7f1-e6i.js → QueueRail-O7f4RqjB.js} +1 -1
  24. package/client/dist/assets/Radio-DPZxQnyD.js +1 -0
  25. package/client/dist/assets/{ReadingList-BaIem8H1.js → ReadingList-n6rr8ygy.js} +1 -1
  26. package/client/dist/assets/{ResetProgressModal-DES5Y-Fl.js → ResetProgressModal-CcStlbhP.js} +1 -1
  27. package/client/dist/assets/Search-C2wrWOdy.js +1 -0
  28. package/client/dist/assets/Settings-CluUYs8U.js +21 -0
  29. package/client/dist/assets/{SkeletonGrid-BxfgjP4i.js → SkeletonGrid-CLEPY9nP.js} +1 -1
  30. package/client/dist/assets/Trackers-CTGPxs0V.js +2 -0
  31. package/client/dist/assets/Tv-BwHlDdi8.js +4 -0
  32. package/client/dist/assets/Tv-ZEA45gXK.css +1 -0
  33. package/client/dist/assets/TvInfo-CXnrLekr.js +1 -0
  34. package/client/dist/assets/TvPopup-BekfiNcX.js +1 -0
  35. package/client/dist/assets/{TvSearch-BWDwWnHe.js → TvSearch-DuqR-z3v.js} +1 -1
  36. package/client/dist/assets/{TvWatchlist-D3n5_4MI.js → TvWatchlist-CBvgFrA0.js} +1 -1
  37. package/client/dist/assets/Watchlist-mj8mTOam.js +1 -0
  38. package/client/dist/assets/{hls-BO_L1WoN.js → hls-Boje3IOE.js} +1 -1
  39. package/client/dist/assets/index-BXwhFWB_.js +178 -0
  40. package/client/dist/assets/useAnimeInfoData-DJ7A4B4T.js +1 -0
  41. package/client/dist/assets/useAsmr-DIwIsJXF.js +1 -0
  42. package/client/dist/assets/{useAsmrPopup-D_o9-QlR.js → useAsmrPopup-e4zNN9ig.js} +1 -1
  43. package/client/dist/assets/useMangaLibrary-C9Lci5N4.js +1 -0
  44. package/client/dist/assets/{useMangaPopup-TFzkC-tG.js → useMangaPopup-B8nnpvyi.js} +1 -1
  45. package/client/dist/assets/useProviders-B5Qr4I1y.js +1 -0
  46. package/client/dist/assets/useTv-Dm8MCYlL.js +1 -0
  47. package/client/dist/assets/useTvLibrary-B7jEk2Q7.js +1 -0
  48. package/client/dist/assets/{vendor-query-BXRECSI6.js → vendor-query-BUTye89G.js} +1 -1
  49. package/client/dist/index.html +2 -2
  50. package/orchestrator.js +1 -2
  51. package/package.json +2 -6
  52. package/server/dist/app-auth.js +9 -29
  53. package/server/dist/app-hono.js +621 -0
  54. package/server/dist/config.js +0 -1
  55. package/server/dist/db/drizzle.js +32 -0
  56. package/server/dist/db/schema-anime.js +64 -0
  57. package/server/dist/db/schema-asmr.js +25 -0
  58. package/server/dist/db/schema-manga.js +31 -0
  59. package/server/dist/db/schema-tv.js +33 -0
  60. package/server/dist/db.js +75 -4
  61. package/server/dist/discord-gateway.js +1 -1
  62. package/server/dist/google.js +0 -7
  63. package/server/dist/hono/asmr.js +1 -0
  64. package/server/dist/hono/auth.js +56 -0
  65. package/server/dist/hono/music.js +419 -0
  66. package/server/dist/{controllers/proxy.controller.js → hono/proxy.js} +390 -394
  67. package/server/dist/hono/tv.js +197 -0
  68. package/server/dist/hono/watchlist.js +733 -0
  69. package/server/dist/lib/anilist.js +3 -3
  70. package/server/dist/lib/insights.js +185 -0
  71. package/server/dist/lib/ipc.js +1 -2
  72. package/server/dist/lib/kitsu.js +1 -28
  73. package/server/dist/lib/mal-import.js +291 -0
  74. package/server/dist/lib/migration.js +20 -34
  75. package/server/dist/lib/offline-db.js +36 -36
  76. package/server/dist/lib/tracker/manga-sync.service.js +21 -21
  77. package/server/dist/lib/tracker/sync.service.js +20 -20
  78. package/server/dist/lib/translate.js +79 -0
  79. package/server/dist/lib/ytmusic.js +0 -2
  80. package/server/dist/providers/title-matching.js +0 -1
  81. package/server/dist/repositories/asmr.repository.js +90 -87
  82. package/server/dist/repositories/insights.repository.js +24 -13
  83. package/server/dist/repositories/library.repository.js +33 -93
  84. package/server/dist/repositories/manga.repository.js +108 -116
  85. package/server/dist/repositories/notifications.repository.js +50 -31
  86. package/server/dist/repositories/queue.repository.js +36 -25
  87. package/server/dist/repositories/settings.repository.js +18 -8
  88. package/server/dist/repositories/shows-meta.repository.js +54 -41
  89. package/server/dist/repositories/temp-show-ids.repository.js +43 -31
  90. package/server/dist/repositories/tv.repository.js +98 -115
  91. package/server/dist/repositories/watched-episodes.repository.js +52 -20
  92. package/server/dist/repositories/watchlist.repository.js +36 -48
  93. package/server/dist/server.js +59 -151
  94. package/server/dist/sync.js +41 -4
  95. package/server/dist/trpc/context.js +7 -0
  96. package/server/dist/trpc/errors.js +21 -0
  97. package/server/dist/trpc/index.js +19 -0
  98. package/server/dist/trpc/router.js +49 -0
  99. package/server/dist/trpc/routers/asmr-library.js +122 -0
  100. package/server/dist/trpc/routers/asmr-progress.js +133 -0
  101. package/server/dist/trpc/routers/asmr.js +87 -0
  102. package/server/dist/trpc/routers/auth.js +247 -0
  103. package/server/dist/trpc/routers/continue-watching.js +83 -0
  104. package/server/dist/trpc/routers/data.js +1039 -0
  105. package/server/dist/trpc/routers/discord.js +288 -0
  106. package/server/dist/trpc/routers/discovery.js +15 -0
  107. package/server/dist/trpc/routers/insights.js +45 -0
  108. package/server/dist/trpc/routers/manga-library.js +280 -0
  109. package/server/dist/trpc/routers/manga-progress.js +181 -0
  110. package/server/dist/trpc/routers/manga.js +201 -0
  111. package/server/dist/{controllers/music.controller.js → trpc/routers/music.js} +155 -288
  112. package/server/dist/trpc/routers/notifications.js +80 -0
  113. package/server/dist/trpc/routers/progress.js +15 -0
  114. package/server/dist/trpc/routers/queue.js +95 -0
  115. package/server/dist/{routes/radio.routes.js → trpc/routers/radio.js} +30 -23
  116. package/server/dist/trpc/routers/settings.js +105 -0
  117. package/server/dist/trpc/routers/tracker.js +219 -0
  118. package/server/dist/trpc/routers/tv-library.js +145 -0
  119. package/server/dist/trpc/routers/tv-progress.js +171 -0
  120. package/server/dist/trpc/routers/tv.js +565 -0
  121. package/server/dist/trpc/routers/watchlist.js +564 -0
  122. package/server/dist/trpc/validation.js +159 -0
  123. package/server/dist/utils/security.utils.js +0 -18
  124. package/server/package.json +5 -10
  125. package/client/dist/assets/Asmr-C28TfSvX.js +0 -2
  126. package/client/dist/assets/AsmrResetProgressModal-6Xh71AgR.js +0 -1
  127. package/client/dist/assets/AvSyncCalibrator-BwCtRW0P.js +0 -10
  128. package/client/dist/assets/Home-BJdbHYja.js +0 -1
  129. package/client/dist/assets/Insights-CjRy42YE.js +0 -1
  130. package/client/dist/assets/MangaReadPage-YCETZRte.js +0 -1
  131. package/client/dist/assets/Mature-BGxRWkV5.js +0 -1
  132. package/client/dist/assets/MediaCard-CAzoxsRS.js +0 -1
  133. package/client/dist/assets/Music-Cgo-yQ7E.js +0 -1
  134. package/client/dist/assets/OptionListMenu--Owe9Jle.js +0 -1
  135. package/client/dist/assets/Player-yRXG2BrP.js +0 -56
  136. package/client/dist/assets/PlayerSettings-DrZLa0CC.js +0 -1
  137. package/client/dist/assets/QueueOptionsButton-BVZyPyKf.js +0 -1
  138. package/client/dist/assets/Radio-BFjxlzuF.js +0 -1
  139. package/client/dist/assets/Search-BOBo0Ogh.js +0 -1
  140. package/client/dist/assets/Settings-DOvNQ0gX.js +0 -21
  141. package/client/dist/assets/Trackers-DZ9KqOWv.js +0 -2
  142. package/client/dist/assets/Tv-5mATEU4p.js +0 -4
  143. package/client/dist/assets/Tv-C2SWcVzN.css +0 -1
  144. package/client/dist/assets/TvInfo-CF-5C5Fs.js +0 -1
  145. package/client/dist/assets/TvPopup-Dfqifj3s.js +0 -1
  146. package/client/dist/assets/Watchlist-B8MHNsAU.js +0 -1
  147. package/client/dist/assets/index-D2RkUJIN.js +0 -178
  148. package/client/dist/assets/useAnimeInfoData-BWShDHqE.js +0 -1
  149. package/client/dist/assets/useAsmr-FyfD9G7b.js +0 -1
  150. package/client/dist/assets/useMangaLibrary-BJU5x8Vz.js +0 -1
  151. package/client/dist/assets/useProviders-DDRxa8vl.js +0 -1
  152. package/client/dist/assets/useTv-Bh6WmNnZ.js +0 -1
  153. package/client/dist/assets/useTvLibrary-_Pqm8re1.js +0 -1
  154. package/server/dist/controllers/asmr-library.controller.js +0 -288
  155. package/server/dist/controllers/auth.controller.js +0 -225
  156. package/server/dist/controllers/data.controller.js +0 -767
  157. package/server/dist/controllers/insights.controller.js +0 -203
  158. package/server/dist/controllers/manga-library.controller.js +0 -350
  159. package/server/dist/controllers/settings.controller.js +0 -609
  160. package/server/dist/controllers/tv-library.controller.js +0 -314
  161. package/server/dist/controllers/watchlist.controller.js +0 -1069
  162. package/server/dist/request-logger.js +0 -16
  163. package/server/dist/routes/asmr-library.routes.js +0 -23
  164. package/server/dist/routes/asmr.routes.js +0 -81
  165. package/server/dist/routes/auth.routes.js +0 -25
  166. package/server/dist/routes/data.routes.js +0 -47
  167. package/server/dist/routes/discord-gateway.routes.js +0 -51
  168. package/server/dist/routes/insights.routes.js +0 -35
  169. package/server/dist/routes/lan-auth.routes.js +0 -46
  170. package/server/dist/routes/manga-library.routes.js +0 -25
  171. package/server/dist/routes/manga.routes.js +0 -141
  172. package/server/dist/routes/music.routes.js +0 -20
  173. package/server/dist/routes/providers.routes.js +0 -17
  174. package/server/dist/routes/proxy.routes.js +0 -12
  175. package/server/dist/routes/settings.routes.js +0 -24
  176. package/server/dist/routes/tracker.routes.js +0 -287
  177. package/server/dist/routes/translate.routes.js +0 -88
  178. package/server/dist/routes/tv-library.routes.js +0 -23
  179. package/server/dist/routes/tv.routes.js +0 -629
  180. package/server/dist/routes/watchlist.routes.js +0 -341
@@ -1 +1 @@
1
- import{X as H,h as I,u as Tt,x as B,T as It,d as G,C as z,q as x}from"./vendor-core-8R2fFbyN.js";const ct=H(void 0),V=t=>{const e=B(ct);if(!e)throw new Error("No QueryClient set, use QueryClientProvider to set one");return e},ue=({client:t,children:e})=>(I(()=>(t.mount(),()=>{t.unmount()}),[t]),Tt(ct.Provider,{value:t,children:e})),Dt={setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t),setInterval:(t,e)=>setInterval(t,e),clearInterval:t=>clearInterval(t)};var xt=class{#e=Dt;#t=!1;setTimeoutProvider(t){this.#e=t}setTimeout(t,e){return this.#e.setTimeout(t,e)}clearTimeout(t){this.#e.clearTimeout(t)}setInterval(t,e){return this.#e.setInterval(t,e)}clearInterval(t){this.#e.clearInterval(t)}};const F=new xt;function At(t){setTimeout(t,0)}const qt=typeof window>"u"||"Deno"in globalThis;function P(){}function Ut(t,e){return typeof t=="function"?t(e):t}function lt(t){return typeof t=="number"&&t>=0&&t!==1/0}function ft(t,e){return Math.max(t+(e||0)-Date.now(),0)}function m(t,e){return typeof t=="function"?t(e):t}function et(t,e){const{type:s="all",exact:i,fetchStatus:r,predicate:o,queryKey:n,stale:u}=t;if(n){if(i){if(e.queryHash!==W(n,e.options))return!1}else if(!M(e.queryKey,n))return!1}if(s!=="all"){const a=e.isActive();if(s==="active"&&!a||s==="inactive"&&a)return!1}return!(typeof u=="boolean"&&e.isStale()!==u||r&&r!==e.state.fetchStatus||o&&!o(e))}function st(t,e){const{exact:s,status:i,predicate:r,mutationKey:o}=t;if(o){if(!e.options.mutationKey)return!1;if(s){if(Q(e.options.mutationKey)!==Q(o))return!1}else if(!M(e.options.mutationKey,o))return!1}return!(i&&e.state.status!==i||r&&!r(e))}function W(t,e){return(e?.queryKeyHashFn||Q)(t)}function Q(t){return JSON.stringify(t,(e,s)=>k(s)?Object.keys(s).sort().reduce((i,r)=>(i[r]=s[r],i),{}):s)}function M(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(t&&e&&typeof t=="object"&&typeof e=="object"){if(Array.isArray(t)&&Array.isArray(e)){for(let i=0;i<e.length;i++)if(!M(t[i],e[i]))return!1;return!0}const s=Object.keys(e);for(const i of s)if(!M(t[i],e[i]))return!1;return!0}return!1}const kt=Object.prototype.hasOwnProperty;function $(t,e,s=0){if(t===e)return t;if(s>500)return e;const i=it(t)&&it(e);if(!i&&!(k(t)&&k(e)))return e;const r=(i?t:Object.keys(t)).length,o=i?e:Object.keys(e),n=o.length,u=i?new Array(n):{};let a=0;for(let h=0;h<n;h++){const c=i?h:o[h],l=t[c],d=e[c];if(l===d){u[c]=l,(i?h<r:kt.call(t,c))&&a++;continue}if(l===null||d===null||typeof l!="object"||typeof d!="object"){u[c]=d;continue}const w=$(l,d,s+1);u[c]=w,w===l&&a++}return r===n&&a===r?t:u}function T(t,e){if(!e||Object.keys(t).length!==Object.keys(e).length)return!1;for(const s in t)if(t[s]!==e[s])return!1;return!0}function it(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function k(t){if(!rt(t))return!1;const e=t.constructor;if(e===void 0)return!0;const s=e.prototype;return!(!rt(s)||!s.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(t)!==Object.prototype)}function rt(t){return Object.prototype.toString.call(t)==="[object Object]"}function jt(t){return new Promise(e=>{F.setTimeout(e,t)})}function j(t,e,s){return typeof s.structuralSharing=="function"?s.structuralSharing(t,e):s.structuralSharing!==!1?$(t,e):e}function Kt(t,e,s=0){const i=[...t,e];return s&&i.length>s?i.slice(1):i}function Lt(t,e,s=0){const i=[e,...t];return s&&i.length>s?i.slice(0,-1):i}const J=Symbol();function dt(t,e){return!t.queryFn&&e?.initialPromise?()=>e.initialPromise:!t.queryFn||t.queryFn===J?()=>Promise.reject(new Error(`Missing queryFn: '${t.queryHash}'`)):t.queryFn}function X(t,e){return typeof t=="function"?t(...e):!!t}function Nt(t,e,s){let i=!1,r;return Object.defineProperty(t,"signal",{enumerable:!0,get:()=>(r??=e(),i||(i=!0,r.aborted?s():r.addEventListener("abort",s,{once:!0})),r)}),t}let _t=()=>qt;const Z=()=>_t();var E=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Ht=class extends E{#e;#t;#s;constructor(){super(),this.#s=t=>{if(typeof window<"u"&&window.addEventListener){const e=()=>t();return window.addEventListener("visibilitychange",e,!1),()=>{window.removeEventListener("visibilitychange",e)}}}}onSubscribe(){this.#t||this.setEventListener(this.#s)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(t){this.#s=t,this.#t?.(),this.#t=t(e=>{typeof e=="boolean"?this.setFocused(e):this.onFocus()})}setFocused(t){this.#e!==t&&(this.#e=t,this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(e=>{e(t)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}};const Y=new Ht,Bt=At;function Gt(){let t=[],e=0,s=u=>{u()},i=u=>{u()},r=Bt;const o=u=>{e?t.push(u):r(()=>{s(u)})},n=()=>{const u=t;t=[],u.length&&r(()=>{i(()=>{u.forEach(a=>{s(a)})})})};return{batch:u=>{let a;e++;try{a=u()}finally{e--,e||n()}return a},batchCalls:u=>(...a)=>{o(()=>{u(...a)})},schedule:o,setNotifyFunction:u=>{s=u},setBatchNotifyFunction:u=>{i=u},setScheduler:u=>{r=u}}}const v=Gt();var zt=class extends E{#e=!0;#t;#s;constructor(){super(),this.#s=t=>{if(typeof window<"u"&&window.addEventListener){const e=()=>t(!0),s=()=>t(!1);return window.addEventListener("online",e,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",s)}}}}onSubscribe(){this.#t||this.setEventListener(this.#s)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(t){this.#s=t,this.#t?.(),this.#t=t(this.setOnline.bind(this))}setOnline(t){this.#e!==t&&(this.#e=t,this.listeners.forEach(e=>{e(t)}))}isOnline(){return this.#e}};const A=new zt;function Vt(t){return Math.min(1e3*2**t,3e4)}function pt(t){return(t??"online")==="online"?A.isOnline():!0}var K=class extends Error{constructor(t){super("CancelledError"),this.revert=t?.revert,this.silent=t?.silent}};function yt(t){let e=!1,s=0,i,r="pending",o,n;const u=new Promise((g,R)=>{o=g,n=R});u.catch(P);const a=()=>r!=="pending",h=g=>{if(!a()){const R=new K(g);f(R),t.onCancel?.(R)}},c=()=>{e=!0},l=()=>{e=!1},d=()=>Y.isFocused()&&(t.networkMode==="always"||A.isOnline())&&t.canRun(),w=()=>pt(t.networkMode)&&t.canRun(),p=g=>{a()||(i?.(),r="resolved",o(g))},f=g=>{a()||(i?.(),r="rejected",n(g))},y=()=>new Promise(g=>{i=R=>{(a()||d())&&g(R)},t.onPause?.()}).then(()=>{i=void 0,a()||t.onContinue?.()}),b=()=>{if(a())return;let g;const R=s===0?t.initialPromise:void 0;try{g=R??t.fn()}catch(S){g=Promise.reject(S)}Promise.resolve(g).then(p).catch(S=>{if(a())return;const O=t.retry??(Z()?0:3),C=t.retryDelay??Vt,U=typeof C=="function"?C(s,S):C,Mt=O===!0||typeof O=="number"&&s<O||typeof O=="function"&&O(s,S);if(e||!Mt){f(S);return}s++,t.onFail?.(s,S),jt(U).then(()=>d()?void 0:y()).then(()=>{e?f(S):b()})})};return{promise:u,status:()=>r,cancel:h,continue:()=>(i?.(),u),cancelRetry:c,continueRetry:l,canStart:w,start:()=>(w()?b():y().then(b),u)}}var mt=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),lt(this.gcTime)&&(this.#e=F.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(Z()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(F.clearTimeout(this.#e),this.#e=void 0)}};function Wt(t){return{onFetch:(e,s)=>{const i=e.options,r=e.fetchOptions?.meta?.fetchMore?.direction,o=e.state.data?.pages||[],n=e.state.data?.pageParams||[];let u={pages:[],pageParams:[]},a=0;const h=async()=>{let c=!1;const l=p=>{Nt(p,()=>e.signal,()=>c=!0)},d=dt(e.options,e.fetchOptions),w=async(p,f,y)=>{if(c)return Promise.reject(e.signal.reason);if(f==null&&p.pages.length)return Promise.resolve(p);const g=(()=>{const C={client:e.client,queryKey:e.queryKey,pageParam:f,direction:y?"backward":"forward",meta:e.options.meta};return l(C),C})(),R=await d(g),{maxPages:S}=e.options,O=y?Lt:Kt;return{pages:O(p.pages,R,S),pageParams:O(p.pageParams,f,S)}};if(r&&o.length){const p=r==="backward",f=p?vt:L,y={pages:o,pageParams:n};u=await w(y,f(i,y),p)}else{const p=t??o.length;do{const f=a===0?n[0]??i.initialPageParam:L(i,u);if(a>0&&f==null)break;u=await w(u,f),a++}while(a<p)}return u};e.options.persister?e.fetchFn=()=>e.options.persister?.(h,{client:e.client,queryKey:e.queryKey,meta:e.options.meta,signal:e.signal},s):e.fetchFn=h}}}function L(t,{pages:e,pageParams:s}){const i=e.length-1;return e.length>0?t.getNextPageParam(e[i],e,s[i],s):void 0}function vt(t,{pages:e,pageParams:s}){return e.length>0?t.getPreviousPageParam?.(e[0],e,s[0],s):void 0}function $t(t,e){return e?L(t,e)!=null:!1}function Jt(t,e){return!e||!t.getPreviousPageParam?!1:vt(t,e)!=null}var Xt=class extends mt{#e;#t;#s;#i;#r;#n;#a;#u;constructor(t){super(),this.#u=!1,this.#a=t.defaultOptions,this.setOptions(t.options),this.observers=[],this.#r=t.client,this.#i=this.#r.getQueryCache(),this.queryKey=t.queryKey,this.queryHash=t.queryHash,this.#t=at(this.options),this.state=t.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#n?.promise}setOptions(t){if(this.options={...this.#a,...t},t?._type&&(this.#e=t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const e=at(this.options);e.data!==void 0&&(this.setState(nt(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#i.remove(this)}setData(t,e){const s=j(this.state.data,t,this.options);return this.#o({data:s,type:"success",dataUpdatedAt:e?.updatedAt,manual:e?.manual}),s}setState(t){this.#o({type:"setState",state:t})}cancel(t){const e=this.#n?.promise;return this.#n?.cancel(t),e?e.then(P).catch(P):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>m(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===J||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>m(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!ft(this.state.dataUpdatedAt,t)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#n?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#n?.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),this.#i.notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){const e=this.observers.indexOf(t);e!==-1&&(this.observers.splice(e,1),this.observers.length||(this.#n&&(this.#u||this.state.fetchStatus==="paused"&&this.state.status==="pending"?this.#n.cancel({revert:!0}):this.#n.cancelRetry()),this.scheduleGc()),this.#i.notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#o({type:"invalidate"})}async fetch(t,e){if(this.state.fetchStatus!=="idle"&&this.#n?.status()!=="rejected"){if(this.state.data!==void 0&&e?.cancelRefetch)this.cancel({silent:!0});else if(this.#n)return this.#n.continueRetry(),this.#n.promise}if(t&&this.setOptions(t),!this.options.queryFn){const a=this.observers.find(h=>h.options.queryFn);a&&this.setOptions(a.options)}const s=new AbortController,i=a=>{Object.defineProperty(a,"signal",{enumerable:!0,get:()=>(this.#u=!0,s.signal)})},r=()=>{const a=dt(this.options,e),c=(()=>{const l={client:this.#r,queryKey:this.queryKey,meta:this.meta};return i(l),l})();return this.#u=!1,this.options.persister?this.options.persister(a,c,this):a(c)},n=(()=>{const a={fetchOptions:e,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:r};return i(a),a})();(this.#e==="infinite"?Wt(this.options.pages):this.options.behavior)?.onFetch(n,this),this.#s=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==n.fetchOptions?.meta)&&this.#o({type:"fetch",meta:n.fetchOptions?.meta});const u=this.#n=yt({initialPromise:e?.initialPromise,fn:n.fetchFn,onCancel:a=>{a instanceof K&&a.revert&&this.setState({...this.#s,fetchStatus:"idle"}),s.abort()},onFail:(a,h)=>{this.#o({type:"failed",failureCount:a,error:h})},onPause:()=>{this.#o({type:"pause"})},onContinue:()=>{this.#o({type:"continue"})},retry:n.options.retry,retryDelay:n.options.retryDelay,networkMode:n.options.networkMode,canRun:()=>!0});try{const a=await u.start();if(a===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(a),this.#i.config.onSuccess?.(a,this),this.#i.config.onSettled?.(a,this.state.error,this),a}catch(a){if(a instanceof K){if(a.silent)return this.#n.promise;if(a.revert){if(this.state.data===void 0)throw a;return this.state.data}}throw this.#o({type:"error",error:a}),this.#i.config.onError?.(a,this),this.#i.config.onSettled?.(this.state.data,a,this),a}finally{this.#n===u&&(this.#n=void 0),this.scheduleGc()}}#o(t){const e=s=>{switch(t.type){case"failed":return{...s,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...s,fetchStatus:"paused"};case"continue":return{...s,fetchStatus:"fetching"};case"fetch":return{...s,...gt(s.data,this.options),fetchMeta:t.meta??null};case"success":const i={...s,...nt(t.data,t.dataUpdatedAt),dataUpdateCount:s.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#s=t.manual?i:void 0,i;case"error":const r=t.error;return{...s,error:r,errorUpdateCount:s.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:s.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...s,isInvalidated:!0};case"setState":return{...s,...t.state}}};this.state=e(this.state),v.batch(()=>{this.observers.slice().forEach(s=>{s.onQueryUpdate()}),this.#i.notify({query:this,type:"updated",action:t})})}};function gt(t,e){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:pt(e.networkMode)?"fetching":"paused",...t===void 0&&{error:null,status:"pending"}}}function nt(t,e){return{data:t,dataUpdatedAt:e??Date.now(),error:null,isInvalidated:!1,status:"success"}}function at(t){const e=typeof t.initialData=="function"?t.initialData():t.initialData,s=e!==void 0,i=s?typeof t.initialDataUpdatedAt=="function"?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:s?i??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:s?"success":"pending",fetchStatus:"idle"}}var q=class extends E{#e;#t=void 0;#s=void 0;#i=void 0;#r;#n;#a;#u;#o;#d;#h;#c;#l;#p=new Set;constructor(t,e){super(),this.options=e,this.#e=t,this.#a=null,this.bindMethods(),this.setOptions(e)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),ot(this.#t,this.options)?this.#f():this.updateResult(),this.#b())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return N(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return N(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#O(),this.#w(),this.#t.removeObserver(this)}setOptions(t){const e=this.options,s=this.#t;if(this.options=this.#e.defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof m(this.options.enabled,this.#t)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#P(),this.#t.setOptions(this.options),e._defaulted&&!T(this.options,e)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const i=this.hasListeners();i&&ut(this.#t,s,this.options,e)&&this.#f(),this.updateResult(),i&&(this.#t!==s||m(this.options.enabled,this.#t)!==m(e.enabled,this.#t)||m(this.options.staleTime,this.#t)!==m(e.staleTime,this.#t))&&this.#m();const r=this.#v();i&&(this.#t!==s||m(this.options.enabled,this.#t)!==m(e.enabled,this.#t)||r!==this.#l)&&this.#g(r)}getOptimisticResult(t){const e=this.#e.getQueryCache().build(this.#e,t),s=this.createResult(e,t);return T(this.getCurrentResult(),s)||(this.#i=s,this.#n=this.options,this.#r=this.#t.state),s}getCurrentResult(){return this.#i}trackResult(t,e){return new Proxy(t,{get:(s,i)=>(this.trackProp(i),e?.(i),Reflect.get(s,i))})}trackProp(t){this.#p.add(t)}getCurrentQuery(){return this.#t}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const e=this.#e.defaultQueryOptions(t),s=this.#e.getQueryCache().build(this.#e,e);let i=()=>{},r;const o=new Promise(n=>{r=n,i=this.#e.getQueryCache().subscribe(u=>{u.type==="updated"&&u.query.queryHash===s.queryHash&&s.state.data!==void 0&&(i(),n(this.createResult(s,e)))})});return Promise.race([s.fetch().then(()=>{const n=this.createResult(s,e);return r?.(n),n}).finally(()=>{i()}),o])}fetch(t){return this.#f({...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#i))}#f(t){this.#P();let e=this.#t.fetch(this.options,t);return t?.throwOnError||(e=e.catch(P)),e}#y(t){return!Z()&&m(this.options.enabled,this.#t)!==!1&&lt(t)}#m(){this.#O();const t=m(this.options.staleTime,this.#t);if(this.#i.isStale||!this.#y(t))return;const e=ft(this.#i.dataUpdatedAt,t)+1;this.#h=F.setTimeout(()=>{this.#i.isStale||this.updateResult()},e)}#v(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#g(t){this.#w(),this.#l=t,!(this.#l===0||!this.#y(this.#l))&&(this.#c=F.setInterval(()=>{(this.options.refetchIntervalInBackground||Y.isFocused())&&this.#f()},this.#l))}#b(){this.#m(),this.#g(this.#v())}#O(){this.#h!==void 0&&(F.clearTimeout(this.#h),this.#h=void 0)}#w(){this.#c!==void 0&&(F.clearInterval(this.#c),this.#c=void 0)}createResult(t,e){const s=this.#t,i=this.options,r=this.#i,o=this.#r,n=this.#n,u=t!==s?t.state:this.#s,{state:a}=t;let h={...a},c=!1,l;if(e._optimisticResults){const O=this.hasListeners(),C=!O&&ot(t,e),U=O&&ut(t,s,e,i);(C||U)&&(h={...h,...gt(a.data,t.options)}),e._optimisticResults==="isRestoring"&&(h.fetchStatus="idle")}let{error:d,errorUpdatedAt:w,status:p}=h;l=h.data;let f=!1;if(e.placeholderData!==void 0&&l===void 0&&p==="pending"){let O;r?.isPlaceholderData&&e.placeholderData===n?.placeholderData?(O=r.data,f=!0):O=typeof e.placeholderData=="function"?e.placeholderData(this.#d?.state.data,this.#d):e.placeholderData,O!==void 0&&(p="success",l=j(r?.data,O,e),c=!0)}if(e.select&&l!==void 0&&!f)if(r&&l===o?.data&&e.select===this.#u)l=this.#o;else try{this.#u=e.select,l=e.select(l),l=j(r?.data,l,e),this.#o=l,this.#a=null}catch(O){this.#a=O}else l===void 0&&(this.#a=null);this.#a&&(d=this.#a,l=this.#o,w=Date.now(),p="error",c=!1);const y=h.fetchStatus==="fetching",b=p==="pending",g=p==="error",R=b&&y,S=l!==void 0;return{status:p,fetchStatus:h.fetchStatus,isPending:b,isSuccess:p==="success",isError:g,isInitialLoading:R,isLoading:R,data:l,dataUpdatedAt:h.dataUpdatedAt,error:d,errorUpdatedAt:w,failureCount:h.fetchFailureCount,failureReason:h.fetchFailureReason,errorUpdateCount:h.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:h.dataUpdateCount>u.dataUpdateCount||h.errorUpdateCount>u.errorUpdateCount,isFetching:y,isRefetching:y&&!b,isLoadingError:g&&!S,isPaused:h.fetchStatus==="paused",isPlaceholderData:c,isRefetchError:g&&S,isStale:tt(t,e),refetch:this.refetch,isEnabled:m(e.enabled,t)!==!1}}updateResult(){const t=this.#i,e=this.createResult(this.#t,this.options);if(this.#r=this.#t.state,this.#n=this.options,this.#r.data!==void 0&&(this.#d=this.#t),T(e,t))return;this.#i=e;const i=(()=>{if(!t)return!0;const{notifyOnChangeProps:r}=this.options,o=typeof r=="function"?r():r;if(o==="all"||!o&&!this.#p.size)return!0;const n=new Set(o??this.#p);return this.options.throwOnError&&n.add("error"),Object.keys(this.#i).some(u=>{const a=u;return this.#i[a]!==t[a]&&n.has(a)})})();v.batch(()=>{i&&this.listeners.forEach(r=>{r(this.#i)}),this.#e.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}#P(){const t=this.#e.getQueryCache().build(this.#e,this.options);if(t===this.#t)return;const e=this.#t;this.#t=t,this.#s=t.state,this.hasListeners()&&(e?.removeObserver(this),t.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#b()}};function Zt(t,e){return m(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&m(e.retryOnMount,t)===!1)}function ot(t,e){return Zt(t,e)||t.state.data!==void 0&&N(t,e,e.refetchOnMount)}function N(t,e,s){if(m(e.enabled,t)!==!1&&m(e.staleTime,t)!=="static"){const i=typeof s=="function"?s(t):s;return i==="always"||i!==!1&&tt(t,e)}return!1}function ut(t,e,s,i){return(t!==e||m(i.enabled,t)===!1)&&(!s.suspense||t.state.status!=="error")&&tt(t,s)}function tt(t,e){return m(e.enabled,t)!==!1&&t.isStaleByTime(m(e.staleTime,t))}var Yt=class extends q{constructor(t,e){super(t,e)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(t){t._type="infinite",super.setOptions(t)}getOptimisticResult(t){return t._type="infinite",super.getOptimisticResult(t)}fetchNextPage(t){return this.fetch({...t,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(t){return this.fetch({...t,meta:{fetchMore:{direction:"backward"}}})}createResult(t,e){const{state:s}=t,i=super.createResult(t,e),{isFetching:r,isRefetching:o,isError:n,isRefetchError:u}=i,a=s.fetchMeta?.fetchMore?.direction,h=n&&a==="forward",c=r&&a==="forward",l=n&&a==="backward",d=r&&a==="backward";return{...i,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:$t(e,s.data),hasPreviousPage:Jt(e,s.data),isFetchNextPageError:h,isFetchingNextPage:c,isFetchPreviousPageError:l,isFetchingPreviousPage:d,isRefetchError:u&&!h&&!l,isRefetching:o&&!c&&!d}}},te=class extends mt{#e;#t;#s;#i;constructor(t){super(),this.#e=t.client,this.mutationId=t.mutationId,this.#s=t.mutationCache,this.#t=[],this.state=t.state||bt(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){this.#t.includes(t)||(this.#t.push(t),this.clearGcTimeout(),this.#s.notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){this.#t=this.#t.filter(e=>e!==t),this.scheduleGc(),this.#s.notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){this.#t.length||(this.state.status==="pending"?this.scheduleGc():this.#s.remove(this))}continue(){return this.#i?.continue()??(this.state.status==="pending"?this.execute(this.state.variables):Promise.resolve())}async execute(t){const e=()=>{this.#r({type:"continue"})},s={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey},i=this.#i=yt({fn:()=>this.options.mutationFn?this.options.mutationFn(t,s):Promise.reject(new Error("No mutationFn found")),onFail:(n,u)=>{this.#r({type:"failed",failureCount:n,error:u})},onPause:()=>{this.#r({type:"pause"})},onContinue:e,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#s.canRun(this)}),r=this.state.status==="pending",o=!i.canStart();try{if(r)e();else{this.#r({type:"pending",variables:t,isPaused:o}),this.#s.config.onMutate&&await this.#s.config.onMutate(t,this,s);const u=await this.options.onMutate?.(t,s);u!==this.state.context&&this.#r({type:"pending",context:u,variables:t,isPaused:o})}const n=await i.start();return await this.#s.config.onSuccess?.(n,t,this.state.context,this,s),await this.options.onSuccess?.(n,t,this.state.context,s),await this.#s.config.onSettled?.(n,null,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(n,null,t,this.state.context,s),this.#r({type:"success",data:n}),n}catch(n){try{await this.#s.config.onError?.(n,t,this.state.context,this,s)}catch(u){Promise.reject(u)}try{await this.options.onError?.(n,t,this.state.context,s)}catch(u){Promise.reject(u)}try{await this.#s.config.onSettled?.(void 0,n,this.state.variables,this.state.context,this,s)}catch(u){Promise.reject(u)}try{await this.options.onSettled?.(void 0,n,t,this.state.context,s)}catch(u){Promise.reject(u)}throw this.#r({type:"error",error:n}),n}finally{this.#i===i&&(this.#i=void 0),this.#s.runNext(this)}}#r(t){const e=s=>{switch(t.type){case"failed":return{...s,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...s,isPaused:!0};case"continue":return{...s,isPaused:!1};case"pending":return{...s,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...s,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...s,data:void 0,error:t.error,failureCount:s.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=e(this.state),v.batch(()=>{this.#t.forEach(s=>{s.onMutationUpdate(t)}),this.#s.notify({mutation:this,type:"updated",action:t})})}};function bt(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var ee=class extends E{#e;#t;#s;constructor(t={}){super(),this.config=t,this.#e=new Set,this.#t=new Map,this.#s=0}build(t,e,s){const i=new te({client:t,mutationCache:this,mutationId:++this.#s,options:t.defaultMutationOptions(e),state:s});return this.add(i),i}add(t){this.#e.add(t);const e=D(t);if(typeof e=="string"){const s=this.#t.get(e);s?s.push(t):this.#t.set(e,[t])}this.notify({type:"added",mutation:t})}remove(t){if(this.#e.delete(t)){const e=D(t);if(typeof e=="string"){const s=this.#t.get(e);if(s)if(s.length>1){const i=s.indexOf(t);i!==-1&&s.splice(i,1)}else s[0]===t&&this.#t.delete(e)}}this.notify({type:"removed",mutation:t})}canRun(t){const e=D(t);if(typeof e=="string"){const s=this.#t.get(e)?.find(i=>i.state.status==="pending");return!s||s===t}else return!0}runNext(t){const e=D(t);return typeof e=="string"?this.#t.get(e)?.find(s=>s!==t&&s.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){v.batch(()=>{this.#e.forEach(t=>{this.notify({type:"removed",mutation:t})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(t){const e={exact:!0,...t};return this.getAll().find(s=>st(e,s))}findAll(t={}){return this.getAll().filter(e=>st(t,e))}notify(t){v.batch(()=>{this.listeners.forEach(e=>{e(t)})})}resumePausedMutations(){const t=this.getAll().filter(e=>e.state.isPaused);return v.batch(()=>Promise.all(t.map(e=>e.continue().catch(P))))}};function D(t){return t.options.scope?.id}var se=class extends E{#e;#t=void 0;#s;#i;constructor(t,e){super(),this.#e=t,this.setOptions(e),this.bindMethods(),this.#r()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){const e=this.options;this.options=this.#e.defaultMutationOptions(t),T(this.options,e)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#s,observer:this}),e?.mutationKey&&this.options.mutationKey&&Q(e.mutationKey)!==Q(this.options.mutationKey)?this.reset():this.#s?.state.status==="pending"&&this.#s.setOptions(this.options)}onSubscribe(){this.listeners.size===1&&this.#s&&(this.#s.addObserver(this),this.#r())}onUnsubscribe(){this.hasListeners()||this.#s?.removeObserver(this)}onMutationUpdate(t){this.#r(),this.#n(t)}getCurrentResult(){return this.#t}reset(){this.#s?.removeObserver(this),this.#s=void 0,this.#r(),this.#n()}mutate(t,e){return this.#i=e,this.#s?.removeObserver(this),this.#s=this.#e.getMutationCache().build(this.#e,this.options),this.#s.addObserver(this),this.#s.execute(t)}#r(){const t=this.#s?.state??bt();this.#t={...t,isPending:t.status==="pending",isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset}}#n(t){v.batch(()=>{if(this.#i&&this.hasListeners()){const e=this.#t.variables,s=this.#t.context,i={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(t?.type==="success"){try{this.#i.onSuccess?.(t.data,e,s,i)}catch(r){Promise.reject(r)}try{this.#i.onSettled?.(t.data,null,e,s,i)}catch(r){Promise.reject(r)}}else if(t?.type==="error"){try{this.#i.onError?.(t.error,e,s,i)}catch(r){Promise.reject(r)}try{this.#i.onSettled?.(void 0,t.error,e,s,i)}catch(r){Promise.reject(r)}}}this.listeners.forEach(e=>{e(this.#t)})})}};function ht(t,e){const s=new Set(e);return t.filter(i=>!s.has(i))}var ie=class extends E{#e;#t;#s;#i;#r;#n;#a;#u;#o;#d=[];constructor(t,e,s){super(),this.#e=t,this.#i=s,this.#s=[],this.#r=[],this.#t=[],this.setQueries(e)}onSubscribe(){this.listeners.size===1&&this.#r.forEach(t=>{t.subscribe(e=>{this.#f(t,e)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#r.forEach(t=>{t.destroy()})}setQueries(t,e){this.#s=t,this.#i=e,v.batch(()=>{const s=this.#r,i=this.#p(this.#s);i.forEach(c=>c.observer.setOptions(c.defaultedQueryOptions));const r=i.map(c=>c.observer),o=r.map(c=>c.getCurrentResult()),n=s.length!==r.length,u=r.some((c,l)=>c!==s[l]),a=n||u,h=a?!0:o.some((c,l)=>{const d=this.#t[l];return!d||!T(c,d)});!a&&!h||(a&&(this.#d=i,this.#r=r),this.#t=o,this.hasListeners()&&(a&&(ht(s,r).forEach(c=>{c.destroy()}),ht(r,s).forEach(c=>{c.subscribe(l=>{this.#f(c,l)})})),this.#y()))})}getCurrentResult(){return this.#t}getQueries(){return this.#r.map(t=>t.getCurrentQuery())}getObservers(){return this.#r}getOptimisticResult(t,e){const s=this.#p(t),i=s.map(o=>o.observer.getOptimisticResult(o.defaultedQueryOptions)),r=s.map(o=>o.defaultedQueryOptions.queryHash);return[i,o=>this.#c(o??i,e,r),()=>this.#h(i,s)]}#h(t,e){const s=new Set;return e.map((i,r)=>{const o=t[r];return i.defaultedQueryOptions.notifyOnChangeProps?o:i.observer.trackResult(o,n=>{s.has(n)||(s.add(n),e.forEach(u=>{u.observer.trackProp(n)}))})})}#c(t,e,s){if(e){const i=this.#o,r=s!==void 0&&i!==void 0&&(i.length!==s.length||s.some((o,n)=>o!==i[n]));return(this.#t!==this.#u||r||e!==this.#a)&&(this.#a=e,this.#u=this.#t,s!==void 0&&(this.#o=s),this.#n=$(this.#n,e(t))),this.#n}return t}#l(){return!this.#i?.combine||this.#r.some((t,e)=>t.options.suspense&&this.#t[e]?.data===void 0)}#p(t){const e=new Map;this.#r.forEach(i=>{const r=i.options.queryHash;if(!r)return;const o=e.get(r);o?o.push(i):e.set(r,[i])});const s=[];return t.forEach(i=>{const r=this.#e.defaultQueryOptions(i),o=e.get(r.queryHash)?.shift()??new q(this.#e,r);s.push({defaultedQueryOptions:r,observer:o})}),s}#f(t,e){const s=this.#r.indexOf(t);s!==-1&&(this.#t=this.#t.slice(),this.#t[s]=e,this.#y())}#y(){if(this.hasListeners()){const t=this.#l(),e=this.#n,s=t?e:this.#c(this.#h(this.#t,this.#d),this.#i?.combine);(t||e!==s)&&v.batch(()=>{this.listeners.forEach(i=>{i(this.#t)})})}}},re=class extends E{#e;constructor(t={}){super(),this.config=t,this.#e=new Map}build(t,e,s){const i=e.queryKey,r=e.queryHash??W(i,e);let o=this.get(r);return o||(o=new Xt({client:t,queryKey:i,queryHash:r,options:t.defaultQueryOptions(e),state:s,defaultOptions:t.getQueryDefaults(i)}),this.add(o)),o}add(t){this.#e.has(t.queryHash)||(this.#e.set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const e=this.#e.get(t.queryHash);e&&(t.destroy(),e===t&&this.#e.delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){v.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return this.#e.get(t)}getAll(){return[...this.#e.values()]}find(t){const e={exact:!0,...t};return this.getAll().find(s=>et(e,s))}findAll(t={}){const e=this.getAll();return Object.keys(t).length>0?e.filter(s=>et(t,s)):e}notify(t){v.batch(()=>{this.listeners.forEach(e=>{e(t)})})}onFocus(){v.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){v.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},he=class{#e;#t;#s;#i;#r;#n;#a;#u;constructor(t={}){this.#e=t.queryCache||new re,this.#t=t.mutationCache||new ee,this.#s=t.defaultOptions||{},this.#i=new Map,this.#r=new Map,this.#n=0}mount(){this.#n++,this.#n===1&&(this.#a=Y.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#u=A.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#n--,this.#n===0&&(this.#a?.(),this.#a=void 0,this.#u?.(),this.#u=void 0)}isFetching(t){return this.#e.findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return this.#t.findAll({...t,status:"pending"}).length}getQueryData(t){const e=this.defaultQueryOptions({queryKey:t});return this.#e.get(e.queryHash)?.state.data}ensureQueryData(t){const e=this.defaultQueryOptions(t),s=this.#e.build(this,e),i=s.state.data;return i===void 0?this.fetchQuery(t):(t.revalidateIfStale&&s.isStaleByTime(m(e.staleTime,s))&&this.prefetchQuery(e),Promise.resolve(i))}getQueriesData(t){return this.#e.findAll(t).map(({queryKey:e,state:s})=>[e,s.data])}setQueryData(t,e,s){const i=this.defaultQueryOptions({queryKey:t}),r=this.#e.get(i.queryHash)?.state.data,o=Ut(e,r);if(o!==void 0)return this.#e.build(this,i).setData(o,{...s,manual:!0})}setQueriesData(t,e,s){return v.batch(()=>this.#e.findAll(t).map(({queryKey:i})=>[i,this.setQueryData(i,e,s)]))}getQueryState(t){const e=this.defaultQueryOptions({queryKey:t});return this.#e.get(e.queryHash)?.state}removeQueries(t){const e=this.#e;v.batch(()=>{e.findAll(t).forEach(s=>{e.remove(s)})})}resetQueries(t,e){const s=this.#e;return v.batch(()=>{const i=s.findAll(t),r=new Set(i);return i.forEach(o=>{o.reset()}),this.refetchQueries({type:"active",predicate:o=>r.has(o)},e)})}cancelQueries(t,e={}){const s={revert:!0,...e},i=v.batch(()=>this.#e.findAll(t).map(r=>r.cancel(s)));return Promise.all(i).then(P).catch(P)}invalidateQueries(t,e={}){return v.batch(()=>(this.#e.findAll(t).forEach(s=>{s.invalidate()}),t?.refetchType==="none"?Promise.resolve():this.refetchQueries({...t,type:t?.refetchType??t?.type??"active"},e)))}refetchQueries(t,e={}){const s={...e,cancelRefetch:e.cancelRefetch??!0},i=v.batch(()=>this.#e.findAll(t).filter(r=>!r.isDisabled()&&!r.isStatic()).map(r=>{let o=r.fetch(void 0,s);return s.throwOnError||(o=o.catch(P)),r.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(i).then(P)}async query(t){const e=this.defaultQueryOptions(t);e.retry===void 0&&(e.retry=!1);const s=this.#e.build(this,e),i=s.isStaleByTime(m(e.staleTime,s))?await s.fetch(e):s.state.data,r=e.select;return r?r(i):i}fetchQuery(t){const e=this.defaultQueryOptions(t);e.retry===void 0&&(e.retry=!1);const s=this.#e.build(this,e);return s.isStaleByTime(m(e.staleTime,s))?s.fetch(e):Promise.resolve(s.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(P).catch(P)}infiniteQuery(t){return t._type="infinite",this.query(t)}fetchInfiniteQuery(t){return t._type="infinite",this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(P).catch(P)}ensureInfiniteQueryData(t){return t._type="infinite",this.ensureQueryData(t)}resumePausedMutations(){return A.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#s}setDefaultOptions(t){this.#s=t}setQueryDefaults(t,e){this.#i.set(Q(t),{queryKey:t,defaultOptions:e})}getQueryDefaults(t){const e=[...this.#i.values()],s={};return e.forEach(i=>{M(t,i.queryKey)&&Object.assign(s,i.defaultOptions)}),s}setMutationDefaults(t,e){this.#r.set(Q(t),{mutationKey:t,defaultOptions:e})}getMutationDefaults(t){const e=[...this.#r.values()],s={};return e.forEach(i=>{M(t,i.mutationKey)&&Object.assign(s,i.defaultOptions)}),s}defaultQueryOptions(t){if(t._defaulted)return t;const e={...this.#s.queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return e.queryHash||(e.queryHash=W(e.queryKey,e)),e.refetchOnReconnect===void 0&&(e.refetchOnReconnect=e.networkMode!=="always"),e.throwOnError===void 0&&(e.throwOnError=!!e.suspense),!e.networkMode&&e.persister&&(e.networkMode="offlineFirst"),e.queryFn===J&&(e.enabled=!1),e}defaultMutationOptions(t){return t?._defaulted?t:{...this.#s.mutations,...t?.mutationKey&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}};const Ot=H(!1),wt=()=>B(Ot);Ot.Provider;function ne(){let t=!1;return{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t}}const ae=H(ne()),Pt=()=>B(ae),Rt=(t,e,s)=>{const i=s?.state.error&&typeof t.throwOnError=="function"?X(t.throwOnError,[s.state.error,s]):t.throwOnError;(t.suspense||i)&&(e.isReset()||(t.retryOnMount=!1))},St=t=>{I(()=>{t.clearReset()},[t])},Ct=({result:t,errorResetBoundary:e,throwOnError:s,query:i,suspense:r})=>t.isError&&!e.isReset()&&!t.isFetching&&i&&(r&&t.data===void 0||X(s,[t.error,i])),Ft=t=>{if(t.suspense){const s=r=>r==="static"?r:Math.max(r??1e3,1e3),i=t.staleTime;t.staleTime=typeof i=="function"?(...r)=>s(i(...r)):s(i),typeof t.gcTime=="number"&&(t.gcTime=Math.max(t.gcTime,1e3))}},_=(t,e)=>t?.suspense&&e.isPending,Qt=(t,e,s)=>e.fetchOptimistic(t).catch(()=>{s.clearReset()});function ce({queries:t,...e},s){const i=V(),r=wt(),o=Pt(),n=e.subscribed!==!1,u=It(()=>t.map(f=>{const y=i.defaultQueryOptions(f);return y._optimisticResults=r?"isRestoring":n?"optimistic":void 0,y}),[t,i,r,n]);u.forEach(f=>{Ft(f);const y=i.getQueryCache().get(f.queryHash);Rt(f,o,y)}),St(o);const[a]=G(()=>new ie(i,u,e)),[h,c,l]=a.getOptimisticResult(u,e.combine),d=!r&&n;z(x(f=>d?a.subscribe(v.batchCalls(f)):P,[a,d]),()=>a.getCurrentResult()),I(()=>{a.setQueries(u,e)},[u,e,a]);const w=h.some((f,y)=>_(u[y],f))?h.flatMap((f,y)=>{const b=u[y];if(b&&_(b,f)){const g=new q(i,b);return Qt(b,g,o)}return[]}):[];if(w.length>0)throw Promise.all(w);const p=h.find((f,y)=>{const b=u[y];return b&&Ct({result:f,errorResetBoundary:o,throwOnError:b.throwOnError,query:i.getQueryCache().get(b.queryHash),suspense:b.suspense})});if(p)throw p.error;return c(l())}function Et(t,e,s){const i=wt(),r=Pt(),o=V(),n=o.defaultQueryOptions(t),u=o.getQueryCache().get(n.queryHash),a=t.subscribed!==!1;n._optimisticResults=i?"isRestoring":a?"optimistic":void 0,Ft(n),Rt(n,r,u),St(r);const[h]=G(()=>new e(o,n)),c=h.getOptimisticResult(n),l=!i&&a;if(z(x(d=>{const w=l?h.subscribe(v.batchCalls(d)):P;return h.updateResult(),w},[h,l]),()=>h.getCurrentResult()),I(()=>{h.setOptions(n)},[n,h]),_(n,c))throw Qt(n,h,r);if(Ct({result:c,errorResetBoundary:r,throwOnError:n.throwOnError,query:u,suspense:n.suspense}))throw c.error;return n.notifyOnChangeProps?c:h.trackResult(c)}function le(t,e){return Et(t,q)}function fe(t,e){const s=V(),[i]=G(()=>new se(s,t));I(()=>{i.setOptions(t)},[i,t]);const r=z(x(n=>i.subscribe(v.batchCalls(n)),[i]),()=>i.getCurrentResult()),o=x((...n)=>{i.mutate(n[0],n[1]).catch(P)},[i]);if(r.error&&X(i.options.throwOnError,[r.error]))throw r.error;return{...r,mutate:o,mutateAsync:r.mutate}}function de(t,e){return Et(t,Yt)}export{he as Q,fe as a,le as b,de as c,ue as d,ce as e,V as u};
1
+ import{X as H,h as I,u as Tt,x as B,T as It,d as G,C as z,q as x}from"./vendor-core-8R2fFbyN.js";const ct=H(void 0),V=t=>{const e=B(ct);if(!e)throw new Error("No QueryClient set, use QueryClientProvider to set one");return e},ue=({client:t,children:e})=>(I(()=>(t.mount(),()=>{t.unmount()}),[t]),Tt(ct.Provider,{value:t,children:e})),Dt={setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t),setInterval:(t,e)=>setInterval(t,e),clearInterval:t=>clearInterval(t)};var xt=class{#e=Dt;#t=!1;setTimeoutProvider(t){this.#e=t}setTimeout(t,e){return this.#e.setTimeout(t,e)}clearTimeout(t){this.#e.clearTimeout(t)}setInterval(t,e){return this.#e.setInterval(t,e)}clearInterval(t){this.#e.clearInterval(t)}};const Q=new xt;function At(t){setTimeout(t,0)}const qt=typeof window>"u"||"Deno"in globalThis;function P(){}function Ut(t,e){return typeof t=="function"?t(e):t}function lt(t){return typeof t=="number"&&t>=0&&t!==1/0}function ft(t,e){return Math.max(t+(e||0)-Date.now(),0)}function m(t,e){return typeof t=="function"?t(e):t}function et(t,e){const{type:s="all",exact:i,fetchStatus:r,predicate:o,queryKey:n,stale:u}=t;if(n){if(i){if(e.queryHash!==W(n,e.options))return!1}else if(!M(e.queryKey,n))return!1}if(s!=="all"){const a=e.isActive();if(s==="active"&&!a||s==="inactive"&&a)return!1}return!(typeof u=="boolean"&&e.isStale()!==u||r&&r!==e.state.fetchStatus||o&&!o(e))}function st(t,e){const{exact:s,status:i,predicate:r,mutationKey:o}=t;if(o){if(!e.options.mutationKey)return!1;if(s){if(F(e.options.mutationKey)!==F(o))return!1}else if(!M(e.options.mutationKey,o))return!1}return!(i&&e.state.status!==i||r&&!r(e))}function W(t,e){return(e?.queryKeyHashFn||F)(t)}function F(t){return JSON.stringify(t,(e,s)=>k(s)?Object.keys(s).sort().reduce((i,r)=>(i[r]=s[r],i),{}):s)}function M(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(t&&e&&typeof t=="object"&&typeof e=="object"){if(Array.isArray(t)&&Array.isArray(e)){for(let i=0;i<e.length;i++)if(!M(t[i],e[i]))return!1;return!0}const s=Object.keys(e);for(const i of s)if(!M(t[i],e[i]))return!1;return!0}return!1}const kt=Object.prototype.hasOwnProperty;function $(t,e,s=0){if(t===e)return t;if(s>500)return e;const i=it(t)&&it(e);if(!i&&!(k(t)&&k(e)))return e;const r=(i?t:Object.keys(t)).length,o=i?e:Object.keys(e),n=o.length,u=i?new Array(n):{};let a=0;for(let h=0;h<n;h++){const c=i?h:o[h],l=t[c],d=e[c];if(l===d){u[c]=l,(i?h<r:kt.call(t,c))&&a++;continue}if(l===null||d===null||typeof l!="object"||typeof d!="object"){u[c]=d;continue}const w=$(l,d,s+1);u[c]=w,w===l&&a++}return r===n&&a===r?t:u}function T(t,e){if(!e||Object.keys(t).length!==Object.keys(e).length)return!1;for(const s in t)if(t[s]!==e[s])return!1;return!0}function it(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function k(t){if(!rt(t))return!1;const e=t.constructor;if(e===void 0)return!0;const s=e.prototype;return!(!rt(s)||!s.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(t)!==Object.prototype)}function rt(t){return Object.prototype.toString.call(t)==="[object Object]"}function jt(t){return new Promise(e=>{Q.setTimeout(e,t)})}function j(t,e,s){return typeof s.structuralSharing=="function"?s.structuralSharing(t,e):s.structuralSharing!==!1?$(t,e):e}function Kt(t,e,s=0){const i=[...t,e];return s&&i.length>s?i.slice(1):i}function Lt(t,e,s=0){const i=[e,...t];return s&&i.length>s?i.slice(0,-1):i}const J=Symbol();function dt(t,e){return!t.queryFn&&e?.initialPromise?()=>e.initialPromise:!t.queryFn||t.queryFn===J?()=>Promise.reject(new Error(`Missing queryFn: '${t.queryHash}'`)):t.queryFn}function X(t,e){return typeof t=="function"?t(...e):!!t}function Nt(t,e,s){let i=!1,r;return Object.defineProperty(t,"signal",{enumerable:!0,get:()=>(r??=e(),i||(i=!0,r.aborted?s():r.addEventListener("abort",s,{once:!0})),r)}),t}let _t=()=>qt;const Z=()=>_t();var E=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Ht=class extends E{#e;#t;#s;constructor(){super(),this.#s=t=>{if(typeof window<"u"&&window.addEventListener){const e=()=>t();return window.addEventListener("visibilitychange",e,!1),()=>{window.removeEventListener("visibilitychange",e)}}}}onSubscribe(){this.#t||this.setEventListener(this.#s)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(t){this.#s=t,this.#t?.(),this.#t=t(e=>{typeof e=="boolean"?this.setFocused(e):this.onFocus()})}setFocused(t){this.#e!==t&&(this.#e=t,this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(e=>{e(t)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}};const Y=new Ht,Bt=At;function Gt(){let t=[],e=0,s=u=>{u()},i=u=>{u()},r=Bt;const o=u=>{e?t.push(u):r(()=>{s(u)})},n=()=>{const u=t;t=[],u.length&&r(()=>{i(()=>{u.forEach(a=>{s(a)})})})};return{batch:u=>{let a;e++;try{a=u()}finally{e--,e||n()}return a},batchCalls:u=>(...a)=>{o(()=>{u(...a)})},schedule:o,setNotifyFunction:u=>{s=u},setBatchNotifyFunction:u=>{i=u},setScheduler:u=>{r=u}}}const v=Gt();var zt=class extends E{#e=!0;#t;#s;constructor(){super(),this.#s=t=>{if(typeof window<"u"&&window.addEventListener){const e=()=>t(!0),s=()=>t(!1);return window.addEventListener("online",e,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",s)}}}}onSubscribe(){this.#t||this.setEventListener(this.#s)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(t){this.#s=t,this.#t?.(),this.#t=t(this.setOnline.bind(this))}setOnline(t){this.#e!==t&&(this.#e=t,this.listeners.forEach(e=>{e(t)}))}isOnline(){return this.#e}};const A=new zt;function Vt(t){return Math.min(1e3*2**t,3e4)}function pt(t){return(t??"online")==="online"?A.isOnline():!0}var K=class extends Error{constructor(t){super("CancelledError"),this.revert=t?.revert,this.silent=t?.silent}};function yt(t){let e=!1,s=0,i,r="pending",o,n;const u=new Promise((g,R)=>{o=g,n=R});u.catch(P);const a=()=>r!=="pending",h=g=>{if(!a()){const R=new K(g);f(R),t.onCancel?.(R)}},c=()=>{e=!0},l=()=>{e=!1},d=()=>Y.isFocused()&&(t.networkMode==="always"||A.isOnline())&&t.canRun(),w=()=>pt(t.networkMode)&&t.canRun(),p=g=>{a()||(i?.(),r="resolved",o(g))},f=g=>{a()||(i?.(),r="rejected",n(g))},y=()=>new Promise(g=>{i=R=>{(a()||d())&&g(R)},t.onPause?.()}).then(()=>{i=void 0,a()||t.onContinue?.()}),b=()=>{if(a())return;let g;const R=s===0?t.initialPromise:void 0;try{g=R??t.fn()}catch(S){g=Promise.reject(S)}Promise.resolve(g).then(p).catch(S=>{if(a())return;const O=t.retry??(Z()?0:3),C=t.retryDelay??Vt,U=typeof C=="function"?C(s,S):C,Mt=O===!0||typeof O=="number"&&s<O||typeof O=="function"&&O(s,S);if(e||!Mt){f(S);return}s++,t.onFail?.(s,S),jt(U).then(()=>d()?void 0:y()).then(()=>{e?f(S):b()})})};return{promise:u,status:()=>r,cancel:h,continue:()=>(i?.(),u),cancelRetry:c,continueRetry:l,canStart:w,start:()=>(w()?b():y().then(b),u)}}var mt=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),lt(this.gcTime)&&(this.#e=Q.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(Z()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(Q.clearTimeout(this.#e),this.#e=void 0)}};function Wt(t){return{onFetch:(e,s)=>{const i=e.options,r=e.fetchOptions?.meta?.fetchMore?.direction,o=e.state.data?.pages||[],n=e.state.data?.pageParams||[];let u={pages:[],pageParams:[]},a=0;const h=async()=>{let c=!1;const l=p=>{Nt(p,()=>e.signal,()=>c=!0)},d=dt(e.options,e.fetchOptions),w=async(p,f,y)=>{if(c)return Promise.reject(e.signal.reason);if(f==null&&p.pages.length)return Promise.resolve(p);const g=(()=>{const C={client:e.client,queryKey:e.queryKey,pageParam:f,direction:y?"backward":"forward",meta:e.options.meta};return l(C),C})(),R=await d(g),{maxPages:S}=e.options,O=y?Lt:Kt;return{pages:O(p.pages,R,S),pageParams:O(p.pageParams,f,S)}};if(r&&o.length){const p=r==="backward",f=p?vt:L,y={pages:o,pageParams:n};u=await w(y,f(i,y),p)}else{const p=t??o.length;do{const f=a===0?n[0]??i.initialPageParam:L(i,u);if(a>0&&f==null)break;u=await w(u,f),a++}while(a<p)}return u};e.options.persister?e.fetchFn=()=>e.options.persister?.(h,{client:e.client,queryKey:e.queryKey,meta:e.options.meta,signal:e.signal},s):e.fetchFn=h}}}function L(t,{pages:e,pageParams:s}){const i=e.length-1;return e.length>0?t.getNextPageParam(e[i],e,s[i],s):void 0}function vt(t,{pages:e,pageParams:s}){return e.length>0?t.getPreviousPageParam?.(e[0],e,s[0],s):void 0}function $t(t,e){return e?L(t,e)!=null:!1}function Jt(t,e){return!e||!t.getPreviousPageParam?!1:vt(t,e)!=null}var Xt=class extends mt{#e;#t;#s;#i;#r;#n;#a;#u;constructor(t){super(),this.#u=!1,this.#a=t.defaultOptions,this.setOptions(t.options),this.observers=[],this.#r=t.client,this.#i=this.#r.getQueryCache(),this.queryKey=t.queryKey,this.queryHash=t.queryHash,this.#t=at(this.options),this.state=t.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#n?.promise}setOptions(t){if(this.options={...this.#a,...t},t?._type&&(this.#e=t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const e=at(this.options);e.data!==void 0&&(this.setState(nt(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#i.remove(this)}setData(t,e){const s=j(this.state.data,t,this.options);return this.#o({data:s,type:"success",dataUpdatedAt:e?.updatedAt,manual:e?.manual}),s}setState(t){this.#o({type:"setState",state:t})}cancel(t){const e=this.#n?.promise;return this.#n?.cancel(t),e?e.then(P).catch(P):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>m(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===J||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>m(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!ft(this.state.dataUpdatedAt,t)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#n?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#n?.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),this.#i.notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){const e=this.observers.indexOf(t);e!==-1&&(this.observers.splice(e,1),this.observers.length||(this.#n&&(this.#u||this.state.fetchStatus==="paused"&&this.state.status==="pending"?this.#n.cancel({revert:!0}):this.#n.cancelRetry()),this.scheduleGc()),this.#i.notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#o({type:"invalidate"})}async fetch(t,e){if(this.state.fetchStatus!=="idle"&&this.#n?.status()!=="rejected"){if(this.state.data!==void 0&&e?.cancelRefetch)this.cancel({silent:!0});else if(this.#n)return this.#n.continueRetry(),this.#n.promise}if(t&&this.setOptions(t),!this.options.queryFn){const a=this.observers.find(h=>h.options.queryFn);a&&this.setOptions(a.options)}const s=new AbortController,i=a=>{Object.defineProperty(a,"signal",{enumerable:!0,get:()=>(this.#u=!0,s.signal)})},r=()=>{const a=dt(this.options,e),c=(()=>{const l={client:this.#r,queryKey:this.queryKey,meta:this.meta};return i(l),l})();return this.#u=!1,this.options.persister?this.options.persister(a,c,this):a(c)},n=(()=>{const a={fetchOptions:e,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:r};return i(a),a})();(this.#e==="infinite"?Wt(this.options.pages):this.options.behavior)?.onFetch(n,this),this.#s=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==n.fetchOptions?.meta)&&this.#o({type:"fetch",meta:n.fetchOptions?.meta});const u=this.#n=yt({initialPromise:e?.initialPromise,fn:n.fetchFn,onCancel:a=>{a instanceof K&&a.revert&&this.setState({...this.#s,fetchStatus:"idle"}),s.abort()},onFail:(a,h)=>{this.#o({type:"failed",failureCount:a,error:h})},onPause:()=>{this.#o({type:"pause"})},onContinue:()=>{this.#o({type:"continue"})},retry:n.options.retry,retryDelay:n.options.retryDelay,networkMode:n.options.networkMode,canRun:()=>!0});try{const a=await u.start();if(a===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(a),this.#i.config.onSuccess?.(a,this),this.#i.config.onSettled?.(a,this.state.error,this),a}catch(a){if(a instanceof K){if(a.silent)return this.#n.promise;if(a.revert){if(this.state.data===void 0)throw a;return this.state.data}}throw this.#o({type:"error",error:a}),this.#i.config.onError?.(a,this),this.#i.config.onSettled?.(this.state.data,a,this),a}finally{this.#n===u&&(this.#n=void 0),this.scheduleGc()}}#o(t){const e=s=>{switch(t.type){case"failed":return{...s,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...s,fetchStatus:"paused"};case"continue":return{...s,fetchStatus:"fetching"};case"fetch":return{...s,...gt(s.data,this.options),fetchMeta:t.meta??null};case"success":const i={...s,...nt(t.data,t.dataUpdatedAt),dataUpdateCount:s.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#s=t.manual?i:void 0,i;case"error":const r=t.error;return{...s,error:r,errorUpdateCount:s.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:s.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...s,isInvalidated:!0};case"setState":return{...s,...t.state}}};this.state=e(this.state),v.batch(()=>{this.observers.slice().forEach(s=>{s.onQueryUpdate()}),this.#i.notify({query:this,type:"updated",action:t})})}};function gt(t,e){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:pt(e.networkMode)?"fetching":"paused",...t===void 0&&{error:null,status:"pending"}}}function nt(t,e){return{data:t,dataUpdatedAt:e??Date.now(),error:null,isInvalidated:!1,status:"success"}}function at(t){const e=typeof t.initialData=="function"?t.initialData():t.initialData,s=e!==void 0,i=s?typeof t.initialDataUpdatedAt=="function"?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:s?i??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:s?"success":"pending",fetchStatus:"idle"}}var q=class extends E{#e;#t=void 0;#s=void 0;#i=void 0;#r;#n;#a;#u;#o;#d;#h;#c;#l;#p=new Set;constructor(t,e){super(),this.options=e,this.#e=t,this.#a=null,this.bindMethods(),this.setOptions(e)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),ot(this.#t,this.options)?this.#f():this.updateResult(),this.#b())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return N(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return N(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#O(),this.#w(),this.#t.removeObserver(this)}setOptions(t){const e=this.options,s=this.#t;if(this.options=this.#e.defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof m(this.options.enabled,this.#t)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#P(),this.#t.setOptions(this.options),e._defaulted&&!T(this.options,e)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const i=this.hasListeners();i&&ut(this.#t,s,this.options,e)&&this.#f(),this.updateResult(),i&&(this.#t!==s||m(this.options.enabled,this.#t)!==m(e.enabled,this.#t)||m(this.options.staleTime,this.#t)!==m(e.staleTime,this.#t))&&this.#m();const r=this.#v();i&&(this.#t!==s||m(this.options.enabled,this.#t)!==m(e.enabled,this.#t)||r!==this.#l)&&this.#g(r)}getOptimisticResult(t){const e=this.#e.getQueryCache().build(this.#e,t),s=this.createResult(e,t);return T(this.getCurrentResult(),s)||(this.#i=s,this.#n=this.options,this.#r=this.#t.state),s}getCurrentResult(){return this.#i}trackResult(t,e){return new Proxy(t,{get:(s,i)=>(this.trackProp(i),e?.(i),Reflect.get(s,i))})}trackProp(t){this.#p.add(t)}getCurrentQuery(){return this.#t}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const e=this.#e.defaultQueryOptions(t),s=this.#e.getQueryCache().build(this.#e,e);let i=()=>{},r;const o=new Promise(n=>{r=n,i=this.#e.getQueryCache().subscribe(u=>{u.type==="updated"&&u.query.queryHash===s.queryHash&&s.state.data!==void 0&&(i(),n(this.createResult(s,e)))})});return Promise.race([s.fetch().then(()=>{const n=this.createResult(s,e);return r?.(n),n}).finally(()=>{i()}),o])}fetch(t){return this.#f({...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#i))}#f(t){this.#P();let e=this.#t.fetch(this.options,t);return t?.throwOnError||(e=e.catch(P)),e}#y(t){return!Z()&&m(this.options.enabled,this.#t)!==!1&&lt(t)}#m(){this.#O();const t=m(this.options.staleTime,this.#t);if(this.#i.isStale||!this.#y(t))return;const e=ft(this.#i.dataUpdatedAt,t)+1;this.#h=Q.setTimeout(()=>{this.#i.isStale||this.updateResult()},e)}#v(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#g(t){this.#w(),this.#l=t,!(this.#l===0||!this.#y(this.#l))&&(this.#c=Q.setInterval(()=>{(this.options.refetchIntervalInBackground||Y.isFocused())&&this.#f()},this.#l))}#b(){this.#m(),this.#g(this.#v())}#O(){this.#h!==void 0&&(Q.clearTimeout(this.#h),this.#h=void 0)}#w(){this.#c!==void 0&&(Q.clearInterval(this.#c),this.#c=void 0)}createResult(t,e){const s=this.#t,i=this.options,r=this.#i,o=this.#r,n=this.#n,u=t!==s?t.state:this.#s,{state:a}=t;let h={...a},c=!1,l;if(e._optimisticResults){const O=this.hasListeners(),C=!O&&ot(t,e),U=O&&ut(t,s,e,i);(C||U)&&(h={...h,...gt(a.data,t.options)}),e._optimisticResults==="isRestoring"&&(h.fetchStatus="idle")}let{error:d,errorUpdatedAt:w,status:p}=h;l=h.data;let f=!1;if(e.placeholderData!==void 0&&l===void 0&&p==="pending"){let O;r?.isPlaceholderData&&e.placeholderData===n?.placeholderData?(O=r.data,f=!0):O=typeof e.placeholderData=="function"?e.placeholderData(this.#d?.state.data,this.#d):e.placeholderData,O!==void 0&&(p="success",l=j(r?.data,O,e),c=!0)}if(e.select&&l!==void 0&&!f)if(r&&l===o?.data&&e.select===this.#u)l=this.#o;else try{this.#u=e.select,l=e.select(l),l=j(r?.data,l,e),this.#o=l,this.#a=null}catch(O){this.#a=O}else l===void 0&&(this.#a=null);this.#a&&(d=this.#a,l=this.#o,w=Date.now(),p="error",c=!1);const y=h.fetchStatus==="fetching",b=p==="pending",g=p==="error",R=b&&y,S=l!==void 0;return{status:p,fetchStatus:h.fetchStatus,isPending:b,isSuccess:p==="success",isError:g,isInitialLoading:R,isLoading:R,data:l,dataUpdatedAt:h.dataUpdatedAt,error:d,errorUpdatedAt:w,failureCount:h.fetchFailureCount,failureReason:h.fetchFailureReason,errorUpdateCount:h.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:h.dataUpdateCount>u.dataUpdateCount||h.errorUpdateCount>u.errorUpdateCount,isFetching:y,isRefetching:y&&!b,isLoadingError:g&&!S,isPaused:h.fetchStatus==="paused",isPlaceholderData:c,isRefetchError:g&&S,isStale:tt(t,e),refetch:this.refetch,isEnabled:m(e.enabled,t)!==!1}}updateResult(){const t=this.#i,e=this.createResult(this.#t,this.options);if(this.#r=this.#t.state,this.#n=this.options,this.#r.data!==void 0&&(this.#d=this.#t),T(e,t))return;this.#i=e;const i=(()=>{if(!t)return!0;const{notifyOnChangeProps:r}=this.options,o=typeof r=="function"?r():r;if(o==="all"||!o&&!this.#p.size)return!0;const n=new Set(o??this.#p);return this.options.throwOnError&&n.add("error"),Object.keys(this.#i).some(u=>{const a=u;return this.#i[a]!==t[a]&&n.has(a)})})();v.batch(()=>{i&&this.listeners.forEach(r=>{r(this.#i)}),this.#e.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}#P(){const t=this.#e.getQueryCache().build(this.#e,this.options);if(t===this.#t)return;const e=this.#t;this.#t=t,this.#s=t.state,this.hasListeners()&&(e?.removeObserver(this),t.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#b()}};function Zt(t,e){return m(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&m(e.retryOnMount,t)===!1)}function ot(t,e){return Zt(t,e)||t.state.data!==void 0&&N(t,e,e.refetchOnMount)}function N(t,e,s){if(m(e.enabled,t)!==!1&&m(e.staleTime,t)!=="static"){const i=typeof s=="function"?s(t):s;return i==="always"||i!==!1&&tt(t,e)}return!1}function ut(t,e,s,i){return(t!==e||m(i.enabled,t)===!1)&&(!s.suspense||t.state.status!=="error")&&tt(t,s)}function tt(t,e){return m(e.enabled,t)!==!1&&t.isStaleByTime(m(e.staleTime,t))}var Yt=class extends q{constructor(t,e){super(t,e)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(t){t._type="infinite",super.setOptions(t)}getOptimisticResult(t){return t._type="infinite",super.getOptimisticResult(t)}fetchNextPage(t){return this.fetch({...t,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(t){return this.fetch({...t,meta:{fetchMore:{direction:"backward"}}})}createResult(t,e){const{state:s}=t,i=super.createResult(t,e),{isFetching:r,isRefetching:o,isError:n,isRefetchError:u}=i,a=s.fetchMeta?.fetchMore?.direction,h=n&&a==="forward",c=r&&a==="forward",l=n&&a==="backward",d=r&&a==="backward";return{...i,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:$t(e,s.data),hasPreviousPage:Jt(e,s.data),isFetchNextPageError:h,isFetchingNextPage:c,isFetchPreviousPageError:l,isFetchingPreviousPage:d,isRefetchError:u&&!h&&!l,isRefetching:o&&!c&&!d}}},te=class extends mt{#e;#t;#s;#i;constructor(t){super(),this.#e=t.client,this.mutationId=t.mutationId,this.#s=t.mutationCache,this.#t=[],this.state=t.state||bt(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){this.#t.includes(t)||(this.#t.push(t),this.clearGcTimeout(),this.#s.notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){this.#t=this.#t.filter(e=>e!==t),this.scheduleGc(),this.#s.notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){this.#t.length||(this.state.status==="pending"?this.scheduleGc():this.#s.remove(this))}continue(){return this.#i?.continue()??(this.state.status==="pending"?this.execute(this.state.variables):Promise.resolve())}async execute(t){const e=()=>{this.#r({type:"continue"})},s={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey},i=this.#i=yt({fn:()=>this.options.mutationFn?this.options.mutationFn(t,s):Promise.reject(new Error("No mutationFn found")),onFail:(n,u)=>{this.#r({type:"failed",failureCount:n,error:u})},onPause:()=>{this.#r({type:"pause"})},onContinue:e,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#s.canRun(this)}),r=this.state.status==="pending",o=!i.canStart();try{if(r)e();else{this.#r({type:"pending",variables:t,isPaused:o}),this.#s.config.onMutate&&await this.#s.config.onMutate(t,this,s);const u=await this.options.onMutate?.(t,s);u!==this.state.context&&this.#r({type:"pending",context:u,variables:t,isPaused:o})}const n=await i.start();return await this.#s.config.onSuccess?.(n,t,this.state.context,this,s),await this.options.onSuccess?.(n,t,this.state.context,s),await this.#s.config.onSettled?.(n,null,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(n,null,t,this.state.context,s),this.#r({type:"success",data:n}),n}catch(n){try{await this.#s.config.onError?.(n,t,this.state.context,this,s)}catch(u){Promise.reject(u)}try{await this.options.onError?.(n,t,this.state.context,s)}catch(u){Promise.reject(u)}try{await this.#s.config.onSettled?.(void 0,n,this.state.variables,this.state.context,this,s)}catch(u){Promise.reject(u)}try{await this.options.onSettled?.(void 0,n,t,this.state.context,s)}catch(u){Promise.reject(u)}throw this.#r({type:"error",error:n}),n}finally{this.#i===i&&(this.#i=void 0),this.#s.runNext(this)}}#r(t){const e=s=>{switch(t.type){case"failed":return{...s,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...s,isPaused:!0};case"continue":return{...s,isPaused:!1};case"pending":return{...s,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...s,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...s,data:void 0,error:t.error,failureCount:s.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=e(this.state),v.batch(()=>{this.#t.forEach(s=>{s.onMutationUpdate(t)}),this.#s.notify({mutation:this,type:"updated",action:t})})}};function bt(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var ee=class extends E{#e;#t;#s;constructor(t={}){super(),this.config=t,this.#e=new Set,this.#t=new Map,this.#s=0}build(t,e,s){const i=new te({client:t,mutationCache:this,mutationId:++this.#s,options:t.defaultMutationOptions(e),state:s});return this.add(i),i}add(t){this.#e.add(t);const e=D(t);if(typeof e=="string"){const s=this.#t.get(e);s?s.push(t):this.#t.set(e,[t])}this.notify({type:"added",mutation:t})}remove(t){if(this.#e.delete(t)){const e=D(t);if(typeof e=="string"){const s=this.#t.get(e);if(s)if(s.length>1){const i=s.indexOf(t);i!==-1&&s.splice(i,1)}else s[0]===t&&this.#t.delete(e)}}this.notify({type:"removed",mutation:t})}canRun(t){const e=D(t);if(typeof e=="string"){const s=this.#t.get(e)?.find(i=>i.state.status==="pending");return!s||s===t}else return!0}runNext(t){const e=D(t);return typeof e=="string"?this.#t.get(e)?.find(s=>s!==t&&s.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){v.batch(()=>{this.#e.forEach(t=>{this.notify({type:"removed",mutation:t})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(t){const e={exact:!0,...t};return this.getAll().find(s=>st(e,s))}findAll(t={}){return this.getAll().filter(e=>st(t,e))}notify(t){v.batch(()=>{this.listeners.forEach(e=>{e(t)})})}resumePausedMutations(){const t=this.getAll().filter(e=>e.state.isPaused);return v.batch(()=>Promise.all(t.map(e=>e.continue().catch(P))))}};function D(t){return t.options.scope?.id}var se=class extends E{#e;#t=void 0;#s;#i;constructor(t,e){super(),this.#e=t,this.setOptions(e),this.bindMethods(),this.#r()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){const e=this.options;this.options=this.#e.defaultMutationOptions(t),T(this.options,e)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#s,observer:this}),e?.mutationKey&&this.options.mutationKey&&F(e.mutationKey)!==F(this.options.mutationKey)?this.reset():this.#s?.state.status==="pending"&&this.#s.setOptions(this.options)}onSubscribe(){this.listeners.size===1&&this.#s&&(this.#s.addObserver(this),this.#r())}onUnsubscribe(){this.hasListeners()||this.#s?.removeObserver(this)}onMutationUpdate(t){this.#r(),this.#n(t)}getCurrentResult(){return this.#t}reset(){this.#s?.removeObserver(this),this.#s=void 0,this.#r(),this.#n()}mutate(t,e){return this.#i=e,this.#s?.removeObserver(this),this.#s=this.#e.getMutationCache().build(this.#e,this.options),this.#s.addObserver(this),this.#s.execute(t)}#r(){const t=this.#s?.state??bt();this.#t={...t,isPending:t.status==="pending",isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset}}#n(t){v.batch(()=>{if(this.#i&&this.hasListeners()){const e=this.#t.variables,s=this.#t.context,i={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(t?.type==="success"){try{this.#i.onSuccess?.(t.data,e,s,i)}catch(r){Promise.reject(r)}try{this.#i.onSettled?.(t.data,null,e,s,i)}catch(r){Promise.reject(r)}}else if(t?.type==="error"){try{this.#i.onError?.(t.error,e,s,i)}catch(r){Promise.reject(r)}try{this.#i.onSettled?.(void 0,t.error,e,s,i)}catch(r){Promise.reject(r)}}}this.listeners.forEach(e=>{e(this.#t)})})}};function ht(t,e){const s=new Set(e);return t.filter(i=>!s.has(i))}var ie=class extends E{#e;#t;#s;#i;#r;#n;#a;#u;#o;#d=[];constructor(t,e,s){super(),this.#e=t,this.#i=s,this.#s=[],this.#r=[],this.#t=[],this.setQueries(e)}onSubscribe(){this.listeners.size===1&&this.#r.forEach(t=>{t.subscribe(e=>{this.#f(t,e)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#r.forEach(t=>{t.destroy()})}setQueries(t,e){this.#s=t,this.#i=e,v.batch(()=>{const s=this.#r,i=this.#p(this.#s);i.forEach(c=>c.observer.setOptions(c.defaultedQueryOptions));const r=i.map(c=>c.observer),o=r.map(c=>c.getCurrentResult()),n=s.length!==r.length,u=r.some((c,l)=>c!==s[l]),a=n||u,h=a?!0:o.some((c,l)=>{const d=this.#t[l];return!d||!T(c,d)});!a&&!h||(a&&(this.#d=i,this.#r=r),this.#t=o,this.hasListeners()&&(a&&(ht(s,r).forEach(c=>{c.destroy()}),ht(r,s).forEach(c=>{c.subscribe(l=>{this.#f(c,l)})})),this.#y()))})}getCurrentResult(){return this.#t}getQueries(){return this.#r.map(t=>t.getCurrentQuery())}getObservers(){return this.#r}getOptimisticResult(t,e){const s=this.#p(t),i=s.map(o=>o.observer.getOptimisticResult(o.defaultedQueryOptions)),r=s.map(o=>o.defaultedQueryOptions.queryHash);return[i,o=>this.#c(o??i,e,r),()=>this.#h(i,s)]}#h(t,e){const s=new Set;return e.map((i,r)=>{const o=t[r];return i.defaultedQueryOptions.notifyOnChangeProps?o:i.observer.trackResult(o,n=>{s.has(n)||(s.add(n),e.forEach(u=>{u.observer.trackProp(n)}))})})}#c(t,e,s){if(e){const i=this.#o,r=s!==void 0&&i!==void 0&&(i.length!==s.length||s.some((o,n)=>o!==i[n]));return(this.#t!==this.#u||r||e!==this.#a)&&(this.#a=e,this.#u=this.#t,s!==void 0&&(this.#o=s),this.#n=$(this.#n,e(t))),this.#n}return t}#l(){return!this.#i?.combine||this.#r.some((t,e)=>t.options.suspense&&this.#t[e]?.data===void 0)}#p(t){const e=new Map;this.#r.forEach(i=>{const r=i.options.queryHash;if(!r)return;const o=e.get(r);o?o.push(i):e.set(r,[i])});const s=[];return t.forEach(i=>{const r=this.#e.defaultQueryOptions(i),o=e.get(r.queryHash)?.shift()??new q(this.#e,r);s.push({defaultedQueryOptions:r,observer:o})}),s}#f(t,e){const s=this.#r.indexOf(t);s!==-1&&(this.#t=this.#t.slice(),this.#t[s]=e,this.#y())}#y(){if(this.hasListeners()){const t=this.#l(),e=this.#n,s=t?e:this.#c(this.#h(this.#t,this.#d),this.#i?.combine);(t||e!==s)&&v.batch(()=>{this.listeners.forEach(i=>{i(this.#t)})})}}},re=class extends E{#e;constructor(t={}){super(),this.config=t,this.#e=new Map}build(t,e,s){const i=e.queryKey,r=e.queryHash??W(i,e);let o=this.get(r);return o||(o=new Xt({client:t,queryKey:i,queryHash:r,options:t.defaultQueryOptions(e),state:s,defaultOptions:t.getQueryDefaults(i)}),this.add(o)),o}add(t){this.#e.has(t.queryHash)||(this.#e.set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const e=this.#e.get(t.queryHash);e&&(t.destroy(),e===t&&this.#e.delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){v.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return this.#e.get(t)}getAll(){return[...this.#e.values()]}find(t){const e={exact:!0,...t};return this.getAll().find(s=>et(e,s))}findAll(t={}){const e=this.getAll();return Object.keys(t).length>0?e.filter(s=>et(t,s)):e}notify(t){v.batch(()=>{this.listeners.forEach(e=>{e(t)})})}onFocus(){v.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){v.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},he=class{#e;#t;#s;#i;#r;#n;#a;#u;constructor(t={}){this.#e=t.queryCache||new re,this.#t=t.mutationCache||new ee,this.#s=t.defaultOptions||{},this.#i=new Map,this.#r=new Map,this.#n=0}mount(){this.#n++,this.#n===1&&(this.#a=Y.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#u=A.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#n--,this.#n===0&&(this.#a?.(),this.#a=void 0,this.#u?.(),this.#u=void 0)}isFetching(t){return this.#e.findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return this.#t.findAll({...t,status:"pending"}).length}getQueryData(t){const e=this.defaultQueryOptions({queryKey:t});return this.#e.get(e.queryHash)?.state.data}ensureQueryData(t){const e=this.defaultQueryOptions(t),s=this.#e.build(this,e),i=s.state.data;return i===void 0?this.fetchQuery(t):(t.revalidateIfStale&&s.isStaleByTime(m(e.staleTime,s))&&this.prefetchQuery(e),Promise.resolve(i))}getQueriesData(t){return this.#e.findAll(t).map(({queryKey:e,state:s})=>[e,s.data])}setQueryData(t,e,s){const i=this.defaultQueryOptions({queryKey:t}),r=this.#e.get(i.queryHash)?.state.data,o=Ut(e,r);if(o!==void 0)return this.#e.build(this,i).setData(o,{...s,manual:!0})}setQueriesData(t,e,s){return v.batch(()=>this.#e.findAll(t).map(({queryKey:i})=>[i,this.setQueryData(i,e,s)]))}getQueryState(t){const e=this.defaultQueryOptions({queryKey:t});return this.#e.get(e.queryHash)?.state}removeQueries(t){const e=this.#e;v.batch(()=>{e.findAll(t).forEach(s=>{e.remove(s)})})}resetQueries(t,e){const s=this.#e;return v.batch(()=>{const i=s.findAll(t),r=new Set(i);return i.forEach(o=>{o.reset()}),this.refetchQueries({type:"active",predicate:o=>r.has(o)},e)})}cancelQueries(t,e={}){const s={revert:!0,...e},i=v.batch(()=>this.#e.findAll(t).map(r=>r.cancel(s)));return Promise.all(i).then(P).catch(P)}invalidateQueries(t,e={}){return v.batch(()=>(this.#e.findAll(t).forEach(s=>{s.invalidate()}),t?.refetchType==="none"?Promise.resolve():this.refetchQueries({...t,type:t?.refetchType??t?.type??"active"},e)))}refetchQueries(t,e={}){const s={...e,cancelRefetch:e.cancelRefetch??!0},i=v.batch(()=>this.#e.findAll(t).filter(r=>!r.isDisabled()&&!r.isStatic()).map(r=>{let o=r.fetch(void 0,s);return s.throwOnError||(o=o.catch(P)),r.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(i).then(P)}async query(t){const e=this.defaultQueryOptions(t);e.retry===void 0&&(e.retry=!1);const s=this.#e.build(this,e),i=s.isStaleByTime(m(e.staleTime,s))?await s.fetch(e):s.state.data,r=e.select;return r?r(i):i}fetchQuery(t){const e=this.defaultQueryOptions(t);e.retry===void 0&&(e.retry=!1);const s=this.#e.build(this,e);return s.isStaleByTime(m(e.staleTime,s))?s.fetch(e):Promise.resolve(s.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(P).catch(P)}infiniteQuery(t){return t._type="infinite",this.query(t)}fetchInfiniteQuery(t){return t._type="infinite",this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(P).catch(P)}ensureInfiniteQueryData(t){return t._type="infinite",this.ensureQueryData(t)}resumePausedMutations(){return A.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#s}setDefaultOptions(t){this.#s=t}setQueryDefaults(t,e){this.#i.set(F(t),{queryKey:t,defaultOptions:e})}getQueryDefaults(t){const e=[...this.#i.values()],s={};return e.forEach(i=>{M(t,i.queryKey)&&Object.assign(s,i.defaultOptions)}),s}setMutationDefaults(t,e){this.#r.set(F(t),{mutationKey:t,defaultOptions:e})}getMutationDefaults(t){const e=[...this.#r.values()],s={};return e.forEach(i=>{M(t,i.mutationKey)&&Object.assign(s,i.defaultOptions)}),s}defaultQueryOptions(t){if(t._defaulted)return t;const e={...this.#s.queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return e.queryHash||(e.queryHash=W(e.queryKey,e)),e.refetchOnReconnect===void 0&&(e.refetchOnReconnect=e.networkMode!=="always"),e.throwOnError===void 0&&(e.throwOnError=!!e.suspense),!e.networkMode&&e.persister&&(e.networkMode="offlineFirst"),e.queryFn===J&&(e.enabled=!1),e}defaultMutationOptions(t){return t?._defaulted?t:{...this.#s.mutations,...t?.mutationKey&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}};const Ot=H(!1),wt=()=>B(Ot);Ot.Provider;function ne(){let t=!1;return{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t}}const ae=H(ne()),Pt=()=>B(ae),Rt=(t,e,s)=>{const i=s?.state.error&&typeof t.throwOnError=="function"?X(t.throwOnError,[s.state.error,s]):t.throwOnError;(t.suspense||i)&&(e.isReset()||(t.retryOnMount=!1))},St=t=>{I(()=>{t.clearReset()},[t])},Ct=({result:t,errorResetBoundary:e,throwOnError:s,query:i,suspense:r})=>t.isError&&!e.isReset()&&!t.isFetching&&i&&(r&&t.data===void 0||X(s,[t.error,i])),Qt=t=>{if(t.suspense){const s=r=>r==="static"?r:Math.max(r??1e3,1e3),i=t.staleTime;t.staleTime=typeof i=="function"?(...r)=>s(i(...r)):s(i),typeof t.gcTime=="number"&&(t.gcTime=Math.max(t.gcTime,1e3))}},_=(t,e)=>t?.suspense&&e.isPending,Ft=(t,e,s)=>e.fetchOptimistic(t).catch(()=>{s.clearReset()});function ce({queries:t,...e},s){const i=V(),r=wt(),o=Pt(),n=e.subscribed!==!1,u=It(()=>t.map(f=>{const y=i.defaultQueryOptions(f);return y._optimisticResults=r?"isRestoring":n?"optimistic":void 0,y}),[t,i,r,n]);u.forEach(f=>{Qt(f);const y=i.getQueryCache().get(f.queryHash);Rt(f,o,y)}),St(o);const[a]=G(()=>new ie(i,u,e)),[h,c,l]=a.getOptimisticResult(u,e.combine),d=!r&&n;z(x(f=>d?a.subscribe(v.batchCalls(f)):P,[a,d]),()=>a.getCurrentResult()),I(()=>{a.setQueries(u,e)},[u,e,a]);const w=h.some((f,y)=>_(u[y],f))?h.flatMap((f,y)=>{const b=u[y];if(b&&_(b,f)){const g=new q(i,b);return Ft(b,g,o)}return[]}):[];if(w.length>0)throw Promise.all(w);const p=h.find((f,y)=>{const b=u[y];return b&&Ct({result:f,errorResetBoundary:o,throwOnError:b.throwOnError,query:i.getQueryCache().get(b.queryHash),suspense:b.suspense})});if(p)throw p.error;return c(l())}function Et(t,e,s){const i=wt(),r=Pt(),o=V(),n=o.defaultQueryOptions(t),u=o.getQueryCache().get(n.queryHash),a=t.subscribed!==!1;n._optimisticResults=i?"isRestoring":a?"optimistic":void 0,Qt(n),Rt(n,r,u),St(r);const[h]=G(()=>new e(o,n)),c=h.getOptimisticResult(n),l=!i&&a;if(z(x(d=>{const w=l?h.subscribe(v.batchCalls(d)):P;return h.updateResult(),w},[h,l]),()=>h.getCurrentResult()),I(()=>{h.setOptions(n)},[n,h]),_(n,c))throw Ft(n,h,r);if(Ct({result:c,errorResetBoundary:r,throwOnError:n.throwOnError,query:u,suspense:n.suspense}))throw c.error;return n.notifyOnChangeProps?c:h.trackResult(c)}function le(t,e){return Et(t,q)}function fe(t){return t}function de(t){return t}function pe(t,e){const s=V(),[i]=G(()=>new se(s,t));I(()=>{i.setOptions(t)},[i,t]);const r=z(x(n=>i.subscribe(v.batchCalls(n)),[i]),()=>i.getCurrentResult()),o=x((...n)=>{i.mutate(n[0],n[1]).catch(P)},[i]);if(r.error&&X(i.options.throwOnError,[r.error]))throw r.error;return{...r,mutate:o,mutateAsync:r.mutate}}function ye(t,e){return Et(t,Yt)}export{he as Q,pe as a,le as b,ye as c,ue as d,ce as e,de as i,fe as q,J as s,V as u};
@@ -33,9 +33,9 @@
33
33
  background-color: #0c0d12;
34
34
  }
35
35
  </style>
36
- <script type="module" crossorigin src="/assets/index-D2RkUJIN.js"></script>
36
+ <script type="module" crossorigin src="/assets/index-BXwhFWB_.js"></script>
37
37
  <link rel="modulepreload" crossorigin href="/assets/vendor-core-8R2fFbyN.js">
38
- <link rel="modulepreload" crossorigin href="/assets/vendor-query-BXRECSI6.js">
38
+ <link rel="modulepreload" crossorigin href="/assets/vendor-query-BUTye89G.js">
39
39
  <link rel="modulepreload" crossorigin href="/assets/vendor-icons-CDMuNDeL.js">
40
40
  <link rel="stylesheet" crossorigin href="/assets/index-CUm1meqr.css">
41
41
  </head>
package/orchestrator.js CHANGED
@@ -339,10 +339,10 @@ const log = (prefix, color, data) => {
339
339
  }
340
340
 
341
341
  const spawnOpts = (cwd, extraEnv, withIpc = false) => ({
342
- // 'ipc' gives the child a structured message channel (see server/src/lib/ipc.ts).
343
342
  // It only works for directly spawned node processes (prod); under a
344
343
  // package-manager runner (dev) there is no IPC forwarding, so stdout tags remain the fallback signal.
345
344
  stdio: withIpc ? ['pipe', 'pipe', 'pipe', 'ipc'] : 'pipe',
345
+ stdio: withIpc ? ['ignore', 'pipe', 'pipe', 'ipc'] : ['ignore', 'pipe', 'pipe'],
346
346
  shell: false,
347
347
  cwd,
348
348
  detached: !isWin,
@@ -384,7 +384,6 @@ const terminateProcess = (proc, signal = 'SIGTERM') => {
384
384
  try {
385
385
  process.kill(-proc.pid, signal)
386
386
  } catch (err) {
387
- // ESRCH just means the process group is already gone — not an error.
388
387
  if (err.code !== 'ESRCH') {
389
388
  console.error(
390
389
  `${colors.system}[System]${colors.reset} Failed to signal ${proc.pid} (${signal}): ${err.message}`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serifpersia/dango",
3
- "version": "3.3.9",
3
+ "version": "3.4.0",
4
4
  "description": "A web application for watching anime.",
5
5
  "main": "orchestrator.js",
6
6
  "repository": {
@@ -58,14 +58,10 @@
58
58
  "@octokit/rest": "^22.0.1",
59
59
  "@xhayper/discord-rpc": "^1.3.4",
60
60
  "cheerio": "^1.2.0",
61
- "compression": "^1.8.1",
62
- "cors": "^2.8.5",
63
61
  "dotenv": "^17.4.2",
64
- "express": "^5.1.0",
65
62
  "fast-xml-parser": "^5.11.1",
66
63
  "got-scraping": "^3.2.9",
67
64
  "lru-cache": "^11.5.2",
68
- "multer": "^2.0.2",
69
65
  "pino": "^10.3.1",
70
66
  "ws": "^8.18.0",
71
67
  "youtubei.js": "^18.1.0"
@@ -81,5 +77,5 @@
81
77
  "allowScripts": {
82
78
  "esbuild@0.28.2": true
83
79
  },
84
- "versionDate": "2026-09-25T21:08:55.146Z"
80
+ "versionDate": "2026-09-26T19:42:52.715Z"
85
81
  }
@@ -35,7 +35,7 @@ function saveSessions(sessions) {
35
35
  fs.writeFileSync(sessionsFile(), JSON.stringify(sessions));
36
36
  }
37
37
  catch {
38
- // sessions won't be saved if disk write fails
38
+ // ignore
39
39
  }
40
40
  }
41
41
  export function getAppPasswordHash() {
@@ -113,23 +113,21 @@ export function revokeLanSession(token) {
113
113
  export function clearAllLanSessions() {
114
114
  saveSessions({});
115
115
  }
116
- function normalizeIp(ip) {
116
+ export function normalizeClientIp(ip) {
117
117
  if (!ip)
118
118
  return '';
119
119
  if (ip.startsWith('::ffff:'))
120
120
  return ip.slice('::ffff:'.length);
121
121
  return ip;
122
122
  }
123
- export function isLoopbackRequest(req) {
124
- const candidates = [req.ip, req.socket?.remoteAddress].map((v) => normalizeIp(v));
125
- return candidates.includes('127.0.0.1') || candidates.includes('::1');
123
+ export function isLoopbackIp(ip) {
124
+ const normalized = normalizeClientIp(ip);
125
+ return normalized === '127.0.0.1' || normalized === '::1';
126
126
  }
127
- export function getRequestToken(req) {
128
- const auth = req.headers.authorization;
129
- if (auth && auth.toLowerCase().startsWith('bearer ')) {
130
- return auth.slice(7).trim() || null;
127
+ export function getTokenFromHeaders(authorization, cookieHeader) {
128
+ if (authorization && authorization.toLowerCase().startsWith('bearer ')) {
129
+ return authorization.slice(7).trim() || null;
131
130
  }
132
- const cookieHeader = req.headers.cookie;
133
131
  if (cookieHeader) {
134
132
  const parts = cookieHeader.split(';');
135
133
  for (const part of parts) {
@@ -144,30 +142,12 @@ export function getRequestToken(req) {
144
142
  }
145
143
  return null;
146
144
  }
147
- export function isLanAuthenticated(req) {
148
- if (!hasAppPassword())
149
- return true;
150
- return validateLanSession(getRequestToken(req));
151
- }
152
- const PUBLIC_PATHS = new Set([
145
+ export const LAN_AUTH_PUBLIC_PATHS = new Set([
153
146
  '/api/auth/app-status',
154
147
  '/api/auth/app-login',
155
148
  '/api/auth/app-logout',
156
149
  '/api/internal/shutdown',
157
150
  ]);
158
- export function lanAuthMiddleware(req, res, next) {
159
- if (!req.path.startsWith('/api/'))
160
- return next();
161
- if (PUBLIC_PATHS.has(req.path))
162
- return next();
163
- if (req.path.startsWith('/api/internal/') && isLoopbackRequest(req))
164
- return next();
165
- if (!hasAppPassword())
166
- return next();
167
- if (validateLanSession(getRequestToken(req)))
168
- return next();
169
- return res.status(401).json({ error: 'LAN_AUTH_REQUIRED' });
170
- }
171
151
  export function buildLanCookie(token, expiry) {
172
152
  const maxAge = Math.max(1, Math.floor((expiry - Date.now()) / 1000));
173
153
  return `${LAN_AUTH_COOKIE}=${encodeURIComponent(token)}; HttpOnly; Path=/; Max-Age=${maxAge}; SameSite=Lax`;