var M=i=>{throw TypeError(i)};var f=(i,t,s)=>t.has(i)||M("Cannot "+s);var e=(i,t,s)=>(f(i,t,"read from private field"),s?s.call(i):t.get(i)),b=(i,t,s)=>t.has(i)?M("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(i):t.set(i,s),d=(i,t,s,r)=>(f(i,t,"write to private field"),r?r.call(i,s):t.set(i,s),s),p=(i,t,s)=>(f(i,t,"access private method"),s);import{b as m}from"./vendor-q1sfVHxQ.js";import{bo as x,bp as K,bq as g,br as R,bs as E,aI as j,bt as w,bu as P}from"./index-BB3C6ia3.js";var h,l,o,u,c,v,O,C,q=(C=class extends x{constructor(t,s){super();b(this,c);b(this,h);b(this,l);b(this,o);b(this,u);d(this,h,t),this.setOptions(s),this.bindMethods(),p(this,c,v).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){const s=this.options;this.options=e(this,h).defaultMutationOptions(t),K(this.options,s)||e(this,h).getMutationCache().notify({type:"observerOptionsUpdated",mutation:e(this,o),observer:this}),s?.mutationKey&&this.options.mutationKey&&g(s.mutationKey)!==g(this.options.mutationKey)?this.reset():e(this,o)?.state.status==="pending"&&e(this,o).setOptions(this.options)}onUnsubscribe(){this.hasListeners()||e(this,o)?.removeObserver(this)}onMutationUpdate(t){p(this,c,v).call(this),p(this,c,O).call(this,t)}getCurrentResult(){return e(this,l)}reset(){e(this,o)?.removeObserver(this),d(this,o,void 0),p(this,c,v).call(this),p(this,c,O).call(this)}mutate(t,s){return d(this,u,s),e(this,o)?.removeObserver(this),d(this,o,e(this,h).getMutationCache().build(e(this,h),this.options)),e(this,o).addObserver(this),e(this,o).execute(t)}},h=new WeakMap,l=new WeakMap,o=new WeakMap,u=new WeakMap,c=new WeakSet,v=function(){const t=e(this,o)?.state??R();d(this,l,{...t,isPending:t.status==="pending",isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset})},O=function(t){E.batch(()=>{if(e(this,u)&&this.hasListeners()){const s=e(this,l).variables,r=e(this,l).context,n={client:e(this,h),meta:this.options.meta,mutationKey:this.options.mutationKey};if(t?.type==="success"){try{e(this,u).onSuccess?.(t.data,s,r,n)}catch(a){Promise.reject(a)}try{e(this,u).onSettled?.(t.data,null,s,r,n)}catch(a){Promise.reject(a)}}else if(t?.type==="error"){try{e(this,u).onError?.(t.error,s,r,n)}catch(a){Promise.reject(a)}try{e(this,u).onSettled?.(void 0,t.error,s,r,n)}catch(a){Promise.reject(a)}}}this.listeners.forEach(s=>{s(e(this,l))})})},C);function L(i,t){const s=j(),[r]=m.useState(()=>new q(s,i));m.useEffect(()=>{r.setOptions(i)},[r,i]);const n=m.useSyncExternalStore(m.useCallback(y=>r.subscribe(E.batchCalls(y)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=m.useCallback((y,S)=>{r.mutate(y,S).catch(w)},[r]);if(n.error&&P(r.options.throwOnError,[n.error]))throw n.error;return{...n,mutate:a,mutateAsync:n.mutate}}export{L as u};