stunk 3.0.0-beta.3 → 3.0.0-beta.4

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.
@@ -0,0 +1 @@
1
+ import {a as a$1}from'./chunk-PZ7A72TA.js';var m=new Set,a=new Map,M=0;function O(s,l={}){let o=M++,d=`chunk_${o}`,f=l.middleware||[];l.strict??false;if(s===void 0)throw new Error(`[${d}] Initial value cannot be undefined.`);let D=f.length>0,_=false,n=s,c=new Set,y=()=>{c.forEach(e=>e(n));};a.set(o,{notify:y});let k=()=>{if(c.size===0){a.delete(o);return}y();},g=()=>(n),S=()=>n,x=e=>{let t;if(typeof e=="function"?t=e(n):t=e,_);let r=D?a$1(t,f):t;r!==n&&(n=r,k());},T=e=>{if(typeof e!="function")throw new Error("Callback must be a function.");return c.add(e),()=>c.delete(e)},b={get:g,peek:S,set:x,subscribe:T,derive:e=>{if(typeof e!="function")throw new Error("Derive function must be a function.");let t=e(n),r=O(t),u=T(()=>{let E=e(n);r.set(E);}),i=r.destroy;return r.destroy=()=>{u(),i();},r},reset:()=>{n=s,k();},destroy:()=>{c.clear(),n=s,m.delete(o),a.delete(o);}};return b}export{O as a};
@@ -0,0 +1 @@
1
+ function d(e,r){if(e===void 0)throw new Error("Value cannot be undefined.");if(r.length===0)return e;let t=e;for(let o=0;o<r.length;o++){let s=r[o],l=typeof s=="function"?s:s.fn,u=typeof s=="function"?`index ${o}`:s.name||`index ${o}`;try{let f=l(t);if(f===void 0)break;if(f===null)throw new Error(`Middleware "${u}" returned null value.`);t=f;}catch(f){let y=f instanceof Error?f.message:String(f);throw new Error(`Middleware "${u}" threw an error: ${y}`)}}return t}function p(e,r){if(e===r)return true;if(!e||!r||typeof e!=typeof r)return false;if(Array.isArray(e)&&Array.isArray(r)){if(e.length!==r.length)return false;for(let t=0;t<e.length;t++)if(e[t]!==r[t])return false;return true}if(typeof e=="object"&&typeof r=="object"){let t=Object.keys(e),o=Object.keys(r);if(t.length!==o.length)return false;for(let s of t)if(!Object.prototype.hasOwnProperty.call(r,s)||e[s]!==r[s])return false;return true}return false}function h(e,r,t="",o={}){let{checkMissing:s=true,checkTypes:l=true}=o;if(e===null||r===null||e===void 0||r===void 0)return;if(typeof e!=typeof r){console.error(`\u{1F6A8} Stunk: Type mismatch at '${t||"root"}'. Expected ${typeof e}, got ${typeof r}.`);return}if(typeof e!="object"||typeof r!="object")return;if(Array.isArray(e)!==Array.isArray(r)){console.error(`\u{1F6A8} Stunk: Type mismatch at '${t||"root"}'. Expected ${Array.isArray(e)?"array":"object"}, got ${Array.isArray(r)?"array":"object"}.`);return}if(Array.isArray(e)&&Array.isArray(r)){if(e.length>0&&typeof e[0]=="object")for(let n=0;n<r.length;n++)h(e[0],r[n],`${t}[${n}]`,o);return}let u=Object.keys(e),f=Object.keys(r),y=new Set(u),k=new Set(f),a=f.filter(n=>!y.has(n));if(a.length>0&&(console.error(`\u{1F6A8} Stunk: Unknown properties at '${t||"root"}': ${a.join(", ")}`),console.error("Expected keys:",u),console.error("Received keys:",f)),s){let n=u.filter(c=>!k.has(c));n.length>0&&console.error(`\u{1F6A8} Stunk: Missing properties at '${t||"root"}': ${n.join(", ")}`);}for(let n of u){let c=e[n],i=r[n];c===void 0||i===void 0||i===null||(l&&typeof c!="object"&&typeof c!=typeof i&&console.error(`\u{1F6A8} Stunk: Type mismatch at '${t?t+".":""}${n}'. Expected ${typeof c}, got ${typeof i}.`),h(c,i,t?`${t}.${n}`:n,o));}}export{d as a,p as b,h as c};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var be=Object.defineProperty;var re=(e,a)=>{for(var t in a)be(e,t,{get:a[t],enumerable:true});};function ne(e,a){if(e===void 0)throw new Error("Value cannot be undefined.");if(a.length===0)return e;let t=e;for(let c=0;c<a.length;c++){let i=a[c],s=typeof i=="function"?i:i.fn,f=typeof i=="function"?`index ${c}`:i.name||`index ${c}`;try{let n=s(t);if(n===void 0)break;if(n===null)throw new Error(`Middleware "${f}" returned null value.`);t=n;}catch(n){let r=n instanceof Error?n.message:String(n);throw new Error(`Middleware "${f}" threw an error: ${r}`)}}return t}function O(e,a){if(e===a)return true;if(!e||!a||typeof e!=typeof a)return false;if(Array.isArray(e)&&Array.isArray(a)){if(e.length!==a.length)return false;for(let t=0;t<e.length;t++)if(e[t]!==a[t])return false;return true}if(typeof e=="object"&&typeof a=="object"){let t=Object.keys(e),c=Object.keys(a);if(t.length!==c.length)return false;for(let i of t)if(!Object.prototype.hasOwnProperty.call(a,i)||e[i]!==a[i])return false;return true}return false}function ke(e){return e[Symbol.for("stunk.meta")]}var _=null;function U(e){let a=new Set,t=_;_=a;try{return [e(),Array.from(a)]}finally{_=t;}}function Ee(e){_&&_.add(e);}var Q=false,G=new Set,W=new Map,ve=0;function xe(e){let a=Q;Q=true;try{e();}finally{if(!a){Q=false;let t=[...G];G.clear(),t.forEach(c=>{let i=W.get(c);i&&i.notify();});}}}function v(e,a={}){let t=ve++,c=`chunk_${t}`,i=a.middleware||[];a.strict??false;if(e===void 0)throw new Error(`[${c}] Initial value cannot be undefined.`);let n=e,r=new Set,p=()=>{r.forEach(h=>h(n));};W.set(t,{notify:p});let u=()=>{if(r.size===0){W.delete(t);return}Q?G.add(t):p();},o=()=>(Ee(D),n),d=()=>n,m=h=>{let x;typeof h=="function"?x=h(n):x=h;let P=ne(x,i);P!==n&&(n=P,u());},T=h=>{if(typeof h!="function")throw new Error("Callback must be a function.");return r.add(h),()=>r.delete(h)},D={get:o,peek:d,set:m,subscribe:T,derive:h=>{if(typeof h!="function")throw new Error("Derive function must be a function.");let x=h(n),P=v(x),y=T(()=>{let $=h(n);P.set($);}),g=P.destroy;return P.destroy=()=>{y(),g();},P},reset:()=>{n=e,u();},destroy:()=>{r.clear(),n=e,G.delete(t),W.delete(t);}};return D}function oe(e){let[a,t]=U(e),c=a,i=t,s=false,f=[],n=0,r=v(c),p=()=>{if(!s)return;s=false;let[o,d]=U(e);O(d,i)||(f.forEach(T=>T()),f=d.map(T=>T.subscribe(()=>{s=true,n>0&&p();})),i=d),(typeof o=="object"&&typeof c=="object"?!O(o,c):o!==c)&&(c=o,r.set(o));};f=i.map(o=>o.subscribe(()=>{s=true,n>0&&p();}));let u;return u={get:()=>(s&&p(),r.get()),peek:()=>c,subscribe:o=>{let d=r.subscribe(o);return n++,()=>{n=Math.max(0,n-1),d();}},derive:o=>(n++,oe(()=>o(u.get()))),recompute:()=>{s=true,p();},isDirty:()=>s,destroy:()=>{f.forEach(o=>o()),r.destroy(),n=0;}},u}function ae(e,a,t={}){let{useShallowEqual:c=false}=t,i=e.get(),s=a(i),f=v(s),n=()=>{let d=e.get(),m=a(d);(c?!O(m,s):m!==s)&&(s=m,f.set(m));},r=e.subscribe(n),{set:p,reset:u,...o}=f;return {...o,derive:d=>ae(f,d,t),destroy:()=>{r(),f.destroy();}}}var ce={};re(ce,{history:()=>ue,logger:()=>ie,nonNegativeValidator:()=>se,persist:()=>le});function ie(){return e=>(console.log("Setting value:",e),e)}var se=e=>{if(e<0)throw new Error("Value must be non-negative!");return e};function ue(e,a={}){let{maxHistory:t=100,skipDuplicates:c=false}=a,i=[e.get()],s=0;return {...e,get:()=>e.get(),peek:()=>e.peek(),set:n=>{let r;if(typeof n=="function"?r=n(e.get()):r=n,c){let p=i[s];if(r===p||c==="shallow"&&typeof r=="object"&&typeof p=="object"&&r!==null&&p!==null&&O(r,p))return}if(i.splice(s+1),i.push(r),i.length>t){let p=i.length-t;i.splice(0,p);}s=i.length-1,e.set(r);},undo:()=>{s<=0||(s--,e.set(i[s]));},redo:()=>{s>=i.length-1||(s++,e.set(i[s]));},canUndo:()=>s>0,canRedo:()=>s<i.length-1,getHistory:()=>[...i],clearHistory:()=>{let n=e.get();i.length=0,i.push(n),s=0;},reset:()=>{e.reset(),i.length=0,i.push(e.get()),s=0;},destroy:()=>{i.length=0,e.destroy();},subscribe:n=>e.subscribe(n)}}function le(e,a){let{key:t,serialize:c=JSON.stringify,deserialize:i=JSON.parse,onError:s}=a,f="storage"in a?a.storage:typeof window<"u"?localStorage:void 0;if(!f)return console.warn(`persist: Storage not available for key "${t}". Persistence disabled.`),{...e,clearStorage:()=>{}};let n=e.get();try{let u=f.getItem(t);if(u!==null){let o=i(u);if(o!==null&&n!==null&&(typeof o!=typeof n||Array.isArray(o)!==Array.isArray(n))){let T=`persist: Type mismatch for "${t}". Expected ${Array.isArray(n)?"array":typeof n}, got ${Array.isArray(o)?"array":typeof o}. Using initial value.`;console.warn(T),s?.(new Error(T),"load");}else e.set(o);}}catch(u){let o=u instanceof Error?u:new Error(String(u));console.error(`persist: Failed to load state for "${t}":`,o),s?.(o,"load");}let r=e.subscribe(u=>{try{f.setItem(t,c(u));}catch(o){let d=o instanceof Error?o:new Error(String(o));console.error(`persist: Failed to save state for "${t}":`,d),s?.(d,"save");}});return {...e,get:()=>e.get(),peek:()=>e.peek(),set:u=>e.set(u),subscribe:u=>e.subscribe(u),derive:u=>e.derive(u),reset:()=>e.reset(),destroy:()=>{r(),e.destroy();},clearStorage:()=>{try{f.removeItem(t);}catch(u){let o=u instanceof Error?u:new Error(String(u));console.error(`persist: Failed to clear storage for "${t}":`,o),s?.(o,"save");}}}}var he={};re(he,{asyncChunk:()=>K,combineAsyncChunks:()=>pe,configureQuery:()=>de,getGlobalQueryConfig:()=>F,infiniteAsyncChunk:()=>ye,mutation:()=>me,resetQueryConfig:()=>fe});var q={};function de(e){q={...e.query!==void 0&&{query:{...q.query,...e.query}},...e.mutation!==void 0&&{mutation:{...q.mutation,...e.mutation}}};}function F(){return q}function fe(){q={};}var N=new Map,Pe=0;function K(e,a={}){let t=F().query??{},{key:c,initialData:i=null,enabled:s=true,onSuccess:f=t.onSuccess,onError:n=t.onError,retryCount:r=t.retryCount??0,retryDelay:p=t.retryDelay??1e3,keepPreviousData:u=false,staleTime:o=t.staleTime??0,cacheTime:d=t.cacheTime??5*60*1e3,refetchInterval:m=t.refetchInterval,refetchOnWindowFocus:T=t.refetchOnWindowFocus??false,pagination:A}=a,E=c??`async_chunk_${Pe++}`,C=()=>typeof s=="function"?s():s,D=!!A,h=A?.mode||"replace",x=e.length>0,P={loading:C()&&!x,error:null,data:i,lastFetched:void 0,isPlaceholderData:false,pagination:D?{page:A.initialPage||1,pageSize:A.pageSize||10,total:void 0,hasMore:void 0}:void 0},y=v(P),g={},$=null,R=null,I=null,H=0,J=()=>{let l=y.get();return !l.lastFetched||o===0?true:Date.now()-l.lastFetched>o},ge=()=>{y.set({...y.get(),data:i,lastFetched:void 0});},Te=()=>{R&&clearTimeout(R),d>0&&(R=setTimeout(ge,d));},B=()=>{$&&(clearInterval($),$=null),R&&(clearTimeout(R),R=null),I&&typeof window<"u"&&(window.removeEventListener("focus",I),I=null);},X=()=>{C()&&(typeof window>"u"||(m&&m>0&&($=setInterval(()=>{k(void 0,0,false);},m)),T&&(I=()=>{J()&&k(void 0,0,false);},window.addEventListener("focus",I))));},k=async(l,b=r,M=false)=>{if(!C()||(l!==void 0&&(g={...g,...l}),!M&&!J()&&y.get().data!==null))return;if(N.has(E))return N.get(E);let L=y.get();y.set({...L,loading:true,error:null,data:L.data,isPlaceholderData:u&&L.data!==null});let Z=(async()=>{try{let j={...g};if(D){let V=y.get().pagination;V&&(j.page=V.page,j.pageSize=V.pageSize);}let w=x?await e(j):await e(),S,ee,te;if(w&&typeof w=="object"&&"data"in w){let V=w;S=V.data,ee=V.total,te=V.hasMore;}else S=w;let z=y.get();D&&h==="accumulate"&&z.data&&Array.isArray(z.data)&&Array.isArray(S)&&(S=[...z.data,...S]),y.set({loading:!1,error:null,data:S,lastFetched:Date.now(),isPlaceholderData:!1,pagination:D?{...z.pagination,total:ee,hasMore:te}:void 0}),Te(),f&&f(S);}catch(j){if(b>0)return await new Promise(S=>setTimeout(S,p)),N.delete(E),k(l,b-1,M);let w=y.get();y.set({loading:false,error:j,data:w.data,lastFetched:w.lastFetched,isPlaceholderData:false,pagination:w.pagination}),n&&n(j);}finally{N.delete(E);}})();return N.set(E,Z),Z};X(),C()&&!x&&k();let Y={...y,subscribe:l=>{H++;let b=y.subscribe(l);return ()=>{b(),H--;}},reload:async l=>{await k(l,r,true);},refresh:async l=>{await k(l,r,false);},mutate:l=>{let b=y.get();y.set({...b,data:l(b.data)});},reset:()=>{B(),g={},y.set({...P,loading:C()&&!x}),X(),C()&&!x&&k();},cleanup:()=>{H<=0&&B();},forceCleanup:()=>{B();},setParams:l=>{let b={...g};for(let M in l)l[M]===null?delete b[M]:b[M]=l[M];g=b,C()&&k(g,r,true);},clearParams:()=>{g={},C()&&k(void 0,r,true);}};return D?{...Y,nextPage:async()=>{let l=y.get();!l.pagination||l.pagination.hasMore===false||(y.set({...l,pagination:{...l.pagination,page:l.pagination.page+1}}),await k(g,r,true));},prevPage:async()=>{let l=y.get();!l.pagination||l.pagination.page<=1||(y.set({...l,pagination:{...l.pagination,page:l.pagination.page-1}}),await k(g,r,true));},goToPage:async l=>{let b=y.get();!b.pagination||l<1||(y.set({...b,pagination:{...b.pagination,page:l}}),await k(g,r,true));},resetPagination:async()=>{let l=y.get();l.pagination&&(y.set({...l,data:h==="accumulate"?i:l.data,pagination:{...l.pagination,page:A?.initialPage||1}}),await k(g,r,true));}}:Y}function ye(e,a={}){let{pageSize:t=10,...c}=a;return K(e,{...c,pagination:{pageSize:t,mode:"accumulate",initialPage:1}})}function pe(e){let a=Object.entries(e),t=a.reduce((r,[p,u])=>(r[p]=u.get().data,r),{}),c=a.reduce((r,[p,u])=>{let o=u.get().error;return o&&(r[p]=o),r},{}),i=a.some(([,r])=>r.get().loading),s=a.find(([,r])=>r.get().error)?.[1].get().error??null,n=v({loading:i,error:s,errors:c,data:t});return a.forEach(([r,p])=>{p.subscribe(()=>{let u=false,o=null,d={},m={...n.get().data};a.forEach(([T,A])=>{let E=A.get();E.loading&&(u=true),E.error&&(o||(o=E.error),d[T]=E.error),m[T]=E.data;}),n.set({loading:u,error:o,errors:d,data:m});});}),n}function me(e,a={}){let t=F().mutation??{},{invalidates:c=[],onSuccess:i=t.onSuccess,onError:s=t.onError,onSettled:f}=a,n={loading:false,data:null,error:null,isSuccess:false},r=v(n);return {mutate:async(...u)=>{let o=u[0];r.set({loading:true,data:null,error:null,isSuccess:false});try{let d=await e(o);return r.set({loading:!1,data:d,error:null,isSuccess:!0}),c.length>0&&await Promise.all(c.map(m=>m.reload())),i&&i(d,o),f&&f(d,null,o),{data:d,error:null}}catch(d){let m=d;return r.set({loading:false,data:null,error:m,isSuccess:false}),s&&s(m,o),f&&f(null,m,o),{data:null,error:m}}},get:()=>r.get(),subscribe:u=>r.subscribe(u),reset:()=>r.set(n)}}export{xe as batch,v as chunk,oe as computed,ke as getChunkMeta,ce as middleware,he as query,ae as select};
1
+ var ke=Object.defineProperty;var ne=(e,r)=>{for(var t in r)ke(e,t,{get:r[t],enumerable:true});};function oe(e,r){if(e===void 0)throw new Error("Value cannot be undefined.");if(r.length===0)return e;let t=e;for(let c=0;c<r.length;c++){let o=r[c],i=typeof o=="function"?o:o.fn,p=typeof o=="function"?`index ${c}`:o.name||`index ${c}`;try{let s=i(t);if(s===void 0)break;if(s===null)throw new Error(`Middleware "${p}" returned null value.`);t=s;}catch(s){let a=s instanceof Error?s.message:String(s);throw new Error(`Middleware "${p}" threw an error: ${a}`)}}return t}function j(e,r){if(e===r)return true;if(!e||!r||typeof e!=typeof r)return false;if(Array.isArray(e)&&Array.isArray(r)){if(e.length!==r.length)return false;for(let t=0;t<e.length;t++)if(e[t]!==r[t])return false;return true}if(typeof e=="object"&&typeof r=="object"){let t=Object.keys(e),c=Object.keys(r);if(t.length!==c.length)return false;for(let o of t)if(!Object.prototype.hasOwnProperty.call(r,o)||e[o]!==r[o])return false;return true}return false}function Ee(e){return e[Symbol.for("stunk.meta")]}var I=null;function J(e){let r=new Set,t=I;I=r;try{return [e(),Array.from(r)]}finally{I=t;}}function ve(e){I&&I.add(e);}var Q=false,G=new Set,W=new Map,Ce=0;function Pe(e){let r=Q;Q=true;try{e();}finally{if(!r){Q=false;let t=[...G];G.clear(),t.forEach(c=>{let o=W.get(c);o&&o.notify();});}}}function x(e,r={}){let t=Ce++,c=`chunk_${t}`,o=r.middleware||[];r.strict??false;if(e===void 0)throw new Error(`[${c}] Initial value cannot be undefined.`);let s=o.length>0,a=false,h=e,u=new Set,n=()=>{u.forEach(b=>b(h));};W.set(t,{notify:n});let f=()=>{if(u.size===0){W.delete(t);return}Q?G.add(t):n();},l=()=>(ve(M),h),m=()=>h,v=b=>{let y;if(typeof b=="function"?y=b(h):y=b,a);let g=s?oe(y,o):y;g!==h&&(h=g,f());},T=b=>{if(typeof b!="function")throw new Error("Callback must be a function.");return u.add(b),()=>u.delete(b)},M={get:l,peek:m,set:v,subscribe:T,derive:b=>{if(typeof b!="function")throw new Error("Derive function must be a function.");let y=b(h),g=x(y),w=T(()=>{let V=b(h);g.set(V);}),C=g.destroy;return g.destroy=()=>{w(),C();},g},reset:()=>{h=e,f();},destroy:()=>{u.clear(),h=e,G.delete(t),W.delete(t);}};return M}function ae(e){let[r,t]=J(e),c=r,o=t,i=false,p=[],s=new Set,a=x(c),h=l=>l.map(m=>m.subscribe(()=>{i=true,(s.size>0||a.subscribe!==void 0)&&u();})),u=()=>{if(!i)return;i=false;let[l,m]=J(e);(m.length!==o.length||m.some((k,A)=>k!==o[A]))&&(p.forEach(k=>k()),p=h(m),o=m),(typeof l=="object"&&l!==null&&typeof c=="object"&&c!==null?!j(l,c):l!==c)&&(c=l,a.set(l),s.forEach(k=>k(c)));},n=()=>()=>{i=true,s.size>0&&u();};p=o.map(l=>l.subscribe(n()));let f;return f={get:()=>(i&&u(),a.get()),peek:()=>c,subscribe:l=>(s.add(l),()=>{s.delete(l);}),derive:l=>{let m=f.subscribe(()=>{}),v=ae(()=>l(f.get())),T=v.destroy;return v.destroy=()=>{m(),T();},v},recompute:()=>{i=true,u();},isDirty:()=>i,destroy:()=>{p.forEach(l=>l()),s.clear(),a.destroy();}},f}function ie(e,r,t={}){let{useShallowEqual:c=false}=t,o=e.get(),i=r(o),p=x(i),s=()=>{let f=e.get(),l=r(f);(c?!j(l,i):l!==i)&&(i=l,p.set(l));},a=e.subscribe(s),{set:h,reset:u,...n}=p;return {...n,derive:f=>ie(p,f,t),destroy:()=>{a(),p.destroy();}}}var de={};ne(de,{history:()=>le,logger:()=>se,nonNegativeValidator:()=>ue,persist:()=>ce});function se(){return e=>(console.log("Setting value:",e),e)}var ue=e=>{if(e<0)throw new Error("Value must be non-negative!");return e};function le(e,r={}){let{maxHistory:t=100,skipDuplicates:c=false}=r,o=[e.get()],i=0;return {...e,get:()=>e.get(),peek:()=>e.peek(),set:s=>{let a;if(typeof s=="function"?a=s(e.get()):a=s,c){let h=o[i];if(a===h||c==="shallow"&&typeof a=="object"&&typeof h=="object"&&a!==null&&h!==null&&j(a,h))return}if(o.splice(i+1),o.push(a),o.length>t){let h=o.length-t;o.splice(0,h);}i=o.length-1,e.set(a);},undo:()=>{i<=0||(i--,e.set(o[i]));},redo:()=>{i>=o.length-1||(i++,e.set(o[i]));},canUndo:()=>i>0,canRedo:()=>i<o.length-1,getHistory:()=>[...o],clearHistory:()=>{let s=e.get();o.length=0,o.push(s),i=0;},reset:()=>{e.reset(),o.length=0,o.push(e.get()),i=0;},destroy:()=>{o.length=0,e.destroy();},subscribe:s=>e.subscribe(s)}}function ce(e,r){let{key:t,serialize:c=JSON.stringify,deserialize:o=JSON.parse,onError:i}=r,p="storage"in r?r.storage:typeof window<"u"?localStorage:void 0;if(!p)return console.warn(`persist: Storage not available for key "${t}". Persistence disabled.`),{...e,clearStorage:()=>{}};let s=e.get();try{let u=p.getItem(t);if(u!==null){let n=o(u);if(n!==null&&s!==null&&(typeof n!=typeof s||Array.isArray(n)!==Array.isArray(s))){let m=`persist: Type mismatch for "${t}". Expected ${Array.isArray(s)?"array":typeof s}, got ${Array.isArray(n)?"array":typeof n}. Using initial value.`;console.warn(m),i?.(new Error(m),"load");}else e.set(n);}}catch(u){let n=u instanceof Error?u:new Error(String(u));console.error(`persist: Failed to load state for "${t}":`,n),i?.(n,"load");}let a=e.subscribe(u=>{try{p.setItem(t,c(u));}catch(n){let f=n instanceof Error?n:new Error(String(n));console.error(`persist: Failed to save state for "${t}":`,f),i?.(f,"save");}});return {...e,get:()=>e.get(),peek:()=>e.peek(),set:u=>e.set(u),subscribe:u=>e.subscribe(u),derive:u=>e.derive(u),reset:()=>e.reset(),destroy:()=>{a(),e.destroy();},clearStorage:()=>{try{p.removeItem(t);}catch(u){let n=u instanceof Error?u:new Error(String(u));console.error(`persist: Failed to clear storage for "${t}":`,n),i?.(n,"save");}}}}var me={};ne(me,{asyncChunk:()=>H,combineAsyncChunks:()=>he,configureQuery:()=>fe,getGlobalQueryConfig:()=>F,infiniteAsyncChunk:()=>pe,mutation:()=>ge,resetQueryConfig:()=>ye});var _={};function fe(e){_={...e.query!==void 0&&{query:{..._.query,...e.query}},...e.mutation!==void 0&&{mutation:{..._.mutation,...e.mutation}}};}function F(){return _}function ye(){_={};}var q=new Map,xe=0;function H(e,r={}){let t=F().query??{},{key:c,initialData:o=null,enabled:i=true,onSuccess:p=t.onSuccess,onError:s=t.onError,retryCount:a=t.retryCount??0,retryDelay:h=t.retryDelay??1e3,keepPreviousData:u=false,staleTime:n=t.staleTime??0,cacheTime:f=t.cacheTime??5*60*1e3,refetchInterval:l=t.refetchInterval,refetchOnWindowFocus:m=t.refetchOnWindowFocus??false,pagination:v}=r,T=c??`async_chunk_${xe++}`,k=()=>typeof i=="function"?i():i,A=!!v,K=v?.mode||"replace",M=e.length>0,b={loading:k()&&!M,error:null,data:o,lastFetched:void 0,isPlaceholderData:false,pagination:A?{page:v.initialPage||1,pageSize:v.pageSize||10,total:void 0,hasMore:void 0}:void 0},y=x(b),g={},w=null,C=null,V=null,U=0,X=()=>{let d=y.get();return !d.lastFetched||n===0?true:Date.now()-d.lastFetched>n},Te=()=>{y.set({...y.get(),data:o,lastFetched:void 0});},be=()=>{C&&clearTimeout(C),f>0&&(C=setTimeout(Te,f));},B=()=>{w&&(clearInterval(w),w=null),C&&(clearTimeout(C),C=null),V&&typeof window<"u"&&(window.removeEventListener("focus",V),V=null);},Y=()=>{k()&&(typeof window>"u"||(l&&l>0&&(w=setInterval(()=>{P(void 0,0,false);},l)),m&&(V=()=>{X()&&P(void 0,0,false);},window.addEventListener("focus",V))));},P=async(d,E=a,O=false)=>{if(!k()||(d!==void 0&&(g={...g,...d}),!O&&!X()&&y.get().data!==null))return;if(q.has(T))return q.get(T);let L=y.get();y.set({...L,loading:true,error:null,data:L.data,isPlaceholderData:u&&L.data!==null});let ee=(async()=>{try{let R={...g};if(A){let $=y.get().pagination;$&&(R.page=$.page,R.pageSize=$.pageSize);}let S=M?await e(R):await e(),D,te,re;if(S&&typeof S=="object"&&"data"in S){let $=S;D=$.data,te=$.total,re=$.hasMore;}else D=S;let z=y.get();A&&K==="accumulate"&&z.data&&Array.isArray(z.data)&&Array.isArray(D)&&(D=[...z.data,...D]),y.set({loading:!1,error:null,data:D,lastFetched:Date.now(),isPlaceholderData:!1,pagination:A?{...z.pagination,total:te,hasMore:re}:void 0}),be(),p&&p(D);}catch(R){if(E>0)return await new Promise(D=>setTimeout(D,h)),q.delete(T),P(d,E-1,O);let S=y.get();y.set({loading:false,error:R,data:S.data,lastFetched:S.lastFetched,isPlaceholderData:false,pagination:S.pagination}),s&&s(R);}finally{q.delete(T);}})();return q.set(T,ee),ee};Y(),k()&&!M&&P();let Z={...y,subscribe:d=>{U++;let E=y.subscribe(d);return ()=>{E(),U--;}},reload:async d=>{await P(d,a,true);},refresh:async d=>{await P(d,a,false);},mutate:d=>{let E=y.get();y.set({...E,data:d(E.data)});},reset:()=>{B(),g={},y.set({...b,loading:k()&&!M}),Y(),k()&&!M&&P();},cleanup:()=>{U<=0&&B();},forceCleanup:()=>{B();},setParams:d=>{let E={...g};for(let O in d)d[O]===null?delete E[O]:E[O]=d[O];g=E,k()&&P(g,a,true);},clearParams:()=>{g={},k()&&P(void 0,a,true);}};return A?{...Z,nextPage:async()=>{let d=y.get();!d.pagination||d.pagination.hasMore===false||(y.set({...d,pagination:{...d.pagination,page:d.pagination.page+1}}),await P(g,a,true));},prevPage:async()=>{let d=y.get();!d.pagination||d.pagination.page<=1||(y.set({...d,pagination:{...d.pagination,page:d.pagination.page-1}}),await P(g,a,true));},goToPage:async d=>{let E=y.get();!E.pagination||d<1||(y.set({...E,pagination:{...E.pagination,page:d}}),await P(g,a,true));},resetPagination:async()=>{let d=y.get();d.pagination&&(y.set({...d,data:K==="accumulate"?o:d.data,pagination:{...d.pagination,page:v?.initialPage||1}}),await P(g,a,true));}}:Z}function pe(e,r={}){let{pageSize:t=10,...c}=r;return H(e,{...c,pagination:{pageSize:t,mode:"accumulate",initialPage:1}})}function he(e){let r=Object.entries(e),t=r.reduce((a,[h,u])=>(a[h]=u.get().data,a),{}),c=r.reduce((a,[h,u])=>{let n=u.get().error;return n&&(a[h]=n),a},{}),o=r.some(([,a])=>a.get().loading),i=r.find(([,a])=>a.get().error)?.[1].get().error??null,s=x({loading:o,error:i,errors:c,data:t});return r.forEach(([a,h])=>{h.subscribe(()=>{let u=false,n=null,f={},l={...s.get().data};r.forEach(([m,v])=>{let T=v.get();T.loading&&(u=true),T.error&&(n||(n=T.error),f[m]=T.error),l[m]=T.data;}),s.set({loading:u,error:n,errors:f,data:l});});}),s}function ge(e,r={}){let t=F().mutation??{},{invalidates:c=[],onSuccess:o=t.onSuccess,onError:i=t.onError,onSettled:p}=r,s={loading:false,data:null,error:null,isSuccess:false},a=x(s);return {mutate:async(...u)=>{let n=u[0];a.set({loading:true,data:null,error:null,isSuccess:false});try{let f=await e(n);return a.set({loading:!1,data:f,error:null,isSuccess:!0}),c.length>0&&await Promise.all(c.map(l=>l.reload())),o&&o(f,n),p&&p(f,null,n),{data:f,error:null}}catch(f){let l=f;return a.set({loading:false,data:null,error:l,isSuccess:false}),i&&i(l,n),p&&p(null,l,n),{data:null,error:l}}},get:()=>a.get(),subscribe:u=>a.subscribe(u),reset:()=>a.set(s)}}export{Pe as batch,x as chunk,ae as computed,Ee as getChunkMeta,de as middleware,me as query,ie as select};
@@ -1 +1 @@
1
- import {b}from'../chunk-ILRKKHYZ.js';function u(){return r=>(console.log("Setting value:",r),r)}var m=r=>{if(r<0)throw new Error("Value must be non-negative!");return r};function T(r,c={}){let{maxHistory:n=100,skipDuplicates:p=false}=c,e=[r.get()],t=0;return {...r,get:()=>r.get(),peek:()=>r.peek(),set:i=>{let l;if(typeof i=="function"?l=i(r.get()):l=i,p){let a=e[t];if(l===a||p==="shallow"&&typeof l=="object"&&typeof a=="object"&&l!==null&&a!==null&&b(l,a))return}if(e.splice(t+1),e.push(l),e.length>n){let a=e.length-n;e.splice(0,a);}t=e.length-1,r.set(l);},undo:()=>{t<=0||(t--,r.set(e[t]));},redo:()=>{t>=e.length-1||(t++,r.set(e[t]));},canUndo:()=>t>0,canRedo:()=>t<e.length-1,getHistory:()=>[...e],clearHistory:()=>{let i=r.get();e.length=0,e.push(i),t=0;},reset:()=>{r.reset(),e.length=0,e.push(r.get()),t=0;},destroy:()=>{e.length=0,r.destroy();},subscribe:i=>r.subscribe(i)}}function h(r,c){let{key:n,serialize:p=JSON.stringify,deserialize:e=JSON.parse,onError:t}=c,d="storage"in c?c.storage:typeof window<"u"?localStorage:void 0;if(!d)return console.warn(`persist: Storage not available for key "${n}". Persistence disabled.`),{...r,clearStorage:()=>{}};let i=r.get();try{let o=d.getItem(n);if(o!==null){let s=e(o);if(s!==null&&i!==null&&(typeof s!=typeof i||Array.isArray(s)!==Array.isArray(i))){let y=`persist: Type mismatch for "${n}". Expected ${Array.isArray(i)?"array":typeof i}, got ${Array.isArray(s)?"array":typeof s}. Using initial value.`;console.warn(y),t?.(new Error(y),"load");}else r.set(s);}}catch(o){let s=o instanceof Error?o:new Error(String(o));console.error(`persist: Failed to load state for "${n}":`,s),t?.(s,"load");}let l=r.subscribe(o=>{try{d.setItem(n,p(o));}catch(s){let g=s instanceof Error?s:new Error(String(s));console.error(`persist: Failed to save state for "${n}":`,g),t?.(g,"save");}});return {...r,get:()=>r.get(),peek:()=>r.peek(),set:o=>r.set(o),subscribe:o=>r.subscribe(o),derive:o=>r.derive(o),reset:()=>r.reset(),destroy:()=>{l(),r.destroy();},clearStorage:()=>{try{d.removeItem(n);}catch(o){let s=o instanceof Error?o:new Error(String(o));console.error(`persist: Failed to clear storage for "${n}":`,s),t?.(s,"save");}}}}export{T as history,u as logger,m as nonNegativeValidator,h as persist};
1
+ import {b}from'../chunk-PZ7A72TA.js';function u(){return r=>(console.log("Setting value:",r),r)}var m=r=>{if(r<0)throw new Error("Value must be non-negative!");return r};function T(r,c={}){let{maxHistory:n=100,skipDuplicates:p=false}=c,e=[r.get()],t=0;return {...r,get:()=>r.get(),peek:()=>r.peek(),set:i=>{let l;if(typeof i=="function"?l=i(r.get()):l=i,p){let a=e[t];if(l===a||p==="shallow"&&typeof l=="object"&&typeof a=="object"&&l!==null&&a!==null&&b(l,a))return}if(e.splice(t+1),e.push(l),e.length>n){let a=e.length-n;e.splice(0,a);}t=e.length-1,r.set(l);},undo:()=>{t<=0||(t--,r.set(e[t]));},redo:()=>{t>=e.length-1||(t++,r.set(e[t]));},canUndo:()=>t>0,canRedo:()=>t<e.length-1,getHistory:()=>[...e],clearHistory:()=>{let i=r.get();e.length=0,e.push(i),t=0;},reset:()=>{r.reset(),e.length=0,e.push(r.get()),t=0;},destroy:()=>{e.length=0,r.destroy();},subscribe:i=>r.subscribe(i)}}function h(r,c){let{key:n,serialize:p=JSON.stringify,deserialize:e=JSON.parse,onError:t}=c,d="storage"in c?c.storage:typeof window<"u"?localStorage:void 0;if(!d)return console.warn(`persist: Storage not available for key "${n}". Persistence disabled.`),{...r,clearStorage:()=>{}};let i=r.get();try{let o=d.getItem(n);if(o!==null){let s=e(o);if(s!==null&&i!==null&&(typeof s!=typeof i||Array.isArray(s)!==Array.isArray(i))){let y=`persist: Type mismatch for "${n}". Expected ${Array.isArray(i)?"array":typeof i}, got ${Array.isArray(s)?"array":typeof s}. Using initial value.`;console.warn(y),t?.(new Error(y),"load");}else r.set(s);}}catch(o){let s=o instanceof Error?o:new Error(String(o));console.error(`persist: Failed to load state for "${n}":`,s),t?.(s,"load");}let l=r.subscribe(o=>{try{d.setItem(n,p(o));}catch(s){let g=s instanceof Error?s:new Error(String(s));console.error(`persist: Failed to save state for "${n}":`,g),t?.(g,"save");}});return {...r,get:()=>r.get(),peek:()=>r.peek(),set:o=>r.set(o),subscribe:o=>r.subscribe(o),derive:o=>r.derive(o),reset:()=>r.reset(),destroy:()=>{l(),r.destroy();},clearStorage:()=>{try{d.removeItem(n);}catch(o){let s=o instanceof Error?o:new Error(String(o));console.error(`persist: Failed to clear storage for "${n}":`,s),t?.(s,"save");}}}}export{T as history,u as logger,m as nonNegativeValidator,h as persist};
@@ -1 +1 @@
1
- import {a}from'../chunk-3ATMNOKX.js';import'../chunk-ILRKKHYZ.js';var O={};function Y(i){O={...i.query!==void 0&&{query:{...O.query,...i.query}},...i.mutation!==void 0&&{mutation:{...O.mutation,...i.mutation}}};}function R(){return O}function Z(){O={};}var V=new Map,ee=0;function L(i,l={}){let r=R().query??{},{key:T,initialData:b=null,enabled:h=true,onSuccess:E=r.onSuccess,onError:p=r.onError,retryCount:a$1=r.retryCount??0,retryDelay:P=r.retryDelay??1e3,keepPreviousData:c=false,staleTime:n=r.staleTime??0,cacheTime:d=r.cacheTime??5*60*1e3,refetchInterval:s=r.refetchInterval,refetchOnWindowFocus:Q=r.refetchOnWindowFocus??false,pagination:k}=l,g=T??`async_chunk_${ee++}`,C=()=>typeof h=="function"?h():h,w=!!k,j=k?.mode||"replace",M=i.length>0,K={loading:C()&&!M,error:null,data:b,lastFetched:void 0,isPlaceholderData:false,pagination:w?{page:k.initialPage||1,pageSize:k.pageSize||10,total:void 0,hasMore:void 0}:void 0},t=a(K),f={},I=null,S=null,F=null,G=0,N=()=>{let e=t.get();return !e.lastFetched||n===0?true:Date.now()-e.lastFetched>n},U=()=>{t.set({...t.get(),data:b,lastFetched:void 0});},X=()=>{S&&clearTimeout(S),d>0&&(S=setTimeout(U,d));},q=()=>{I&&(clearInterval(I),I=null),S&&(clearTimeout(S),S=null),F&&typeof window<"u"&&(window.removeEventListener("focus",F),F=null);},_=()=>{C()&&(typeof window>"u"||(s&&s>0&&(I=setInterval(()=>{u(void 0,0,false);},s)),Q&&(F=()=>{N()&&u(void 0,0,false);},window.addEventListener("focus",F))));},u=async(e,o=a$1,v=false)=>{if(!C()||(e!==void 0&&(f={...f,...e}),!v&&!N()&&t.get().data!==null))return;if(V.has(g))return V.get(g);let W=t.get();t.set({...W,loading:true,error:null,data:W.data,isPlaceholderData:c&&W.data!==null});let $=(async()=>{try{let A={...f};if(w){let x=t.get().pagination;x&&(A.page=x.page,A.pageSize=x.pageSize);}let m=M?await i(A):await i(),y,B,J;if(m&&typeof m=="object"&&"data"in m){let x=m;y=x.data,B=x.total,J=x.hasMore;}else y=m;let z=t.get();w&&j==="accumulate"&&z.data&&Array.isArray(z.data)&&Array.isArray(y)&&(y=[...z.data,...y]),t.set({loading:!1,error:null,data:y,lastFetched:Date.now(),isPlaceholderData:!1,pagination:w?{...z.pagination,total:B,hasMore:J}:void 0}),X(),E&&E(y);}catch(A){if(o>0)return await new Promise(y=>setTimeout(y,P)),V.delete(g),u(e,o-1,v);let m=t.get();t.set({loading:false,error:A,data:m.data,lastFetched:m.lastFetched,isPlaceholderData:false,pagination:m.pagination}),p&&p(A);}finally{V.delete(g);}})();return V.set(g,$),$};_(),C()&&!M&&u();let H={...t,subscribe:e=>{G++;let o=t.subscribe(e);return ()=>{o(),G--;}},reload:async e=>{await u(e,a$1,true);},refresh:async e=>{await u(e,a$1,false);},mutate:e=>{let o=t.get();t.set({...o,data:e(o.data)});},reset:()=>{q(),f={},t.set({...K,loading:C()&&!M}),_(),C()&&!M&&u();},cleanup:()=>{G<=0&&q();},forceCleanup:()=>{q();},setParams:e=>{let o={...f};for(let v in e)e[v]===null?delete o[v]:o[v]=e[v];f=o,C()&&u(f,a$1,true);},clearParams:()=>{f={},C()&&u(void 0,a$1,true);}};return w?{...H,nextPage:async()=>{let e=t.get();!e.pagination||e.pagination.hasMore===false||(t.set({...e,pagination:{...e.pagination,page:e.pagination.page+1}}),await u(f,a$1,true));},prevPage:async()=>{let e=t.get();!e.pagination||e.pagination.page<=1||(t.set({...e,pagination:{...e.pagination,page:e.pagination.page-1}}),await u(f,a$1,true));},goToPage:async e=>{let o=t.get();!o.pagination||e<1||(t.set({...o,pagination:{...o.pagination,page:e}}),await u(f,a$1,true));},resetPagination:async()=>{let e=t.get();e.pagination&&(t.set({...e,data:j==="accumulate"?b:e.data,pagination:{...e.pagination,page:k?.initialPage||1}}),await u(f,a$1,true));}}:H}function ae(i,l={}){let{pageSize:r=10,...T}=l;return L(i,{...T,pagination:{pageSize:r,mode:"accumulate",initialPage:1}})}function te(i){let l=Object.entries(i),r=l.reduce((a,[P,c])=>(a[P]=c.get().data,a),{}),T=l.reduce((a,[P,c])=>{let n=c.get().error;return n&&(a[P]=n),a},{}),b=l.some(([,a])=>a.get().loading),h=l.find(([,a])=>a.get().error)?.[1].get().error??null,p=a({loading:b,error:h,errors:T,data:r});return l.forEach(([a,P])=>{P.subscribe(()=>{let c=false,n=null,d={},s={...p.get().data};l.forEach(([Q,k])=>{let g=k.get();g.loading&&(c=true),g.error&&(n||(n=g.error),d[Q]=g.error),s[Q]=g.data;}),p.set({loading:c,error:n,errors:d,data:s});});}),p}function re(i,l={}){let r=R().mutation??{},{invalidates:T=[],onSuccess:b=r.onSuccess,onError:h=r.onError,onSettled:E}=l,p={loading:false,data:null,error:null,isSuccess:false},a$1=a(p);return {mutate:async(...c)=>{let n=c[0];a$1.set({loading:true,data:null,error:null,isSuccess:false});try{let d=await i(n);return a$1.set({loading:!1,data:d,error:null,isSuccess:!0}),T.length>0&&await Promise.all(T.map(s=>s.reload())),b&&b(d,n),E&&E(d,null,n),{data:d,error:null}}catch(d){let s=d;return a$1.set({loading:false,data:null,error:s,isSuccess:false}),h&&h(s,n),E&&E(null,s,n),{data:null,error:s}}},get:()=>a$1.get(),subscribe:c=>a$1.subscribe(c),reset:()=>a$1.set(p)}}export{L as asyncChunk,te as combineAsyncChunks,Y as configureQuery,R as getGlobalQueryConfig,ae as infiniteAsyncChunk,re as mutation,Z as resetQueryConfig};
1
+ import {a}from'../chunk-7PLFRQ2T.js';import'../chunk-PZ7A72TA.js';var O={};function Y(i){O={...i.query!==void 0&&{query:{...O.query,...i.query}},...i.mutation!==void 0&&{mutation:{...O.mutation,...i.mutation}}};}function R(){return O}function Z(){O={};}var V=new Map,ee=0;function L(i,l={}){let r=R().query??{},{key:T,initialData:b=null,enabled:h=true,onSuccess:E=r.onSuccess,onError:p=r.onError,retryCount:a$1=r.retryCount??0,retryDelay:P=r.retryDelay??1e3,keepPreviousData:c=false,staleTime:n=r.staleTime??0,cacheTime:d=r.cacheTime??5*60*1e3,refetchInterval:s=r.refetchInterval,refetchOnWindowFocus:Q=r.refetchOnWindowFocus??false,pagination:k}=l,g=T??`async_chunk_${ee++}`,C=()=>typeof h=="function"?h():h,w=!!k,j=k?.mode||"replace",M=i.length>0,K={loading:C()&&!M,error:null,data:b,lastFetched:void 0,isPlaceholderData:false,pagination:w?{page:k.initialPage||1,pageSize:k.pageSize||10,total:void 0,hasMore:void 0}:void 0},t=a(K),f={},I=null,S=null,F=null,G=0,N=()=>{let e=t.get();return !e.lastFetched||n===0?true:Date.now()-e.lastFetched>n},U=()=>{t.set({...t.get(),data:b,lastFetched:void 0});},X=()=>{S&&clearTimeout(S),d>0&&(S=setTimeout(U,d));},q=()=>{I&&(clearInterval(I),I=null),S&&(clearTimeout(S),S=null),F&&typeof window<"u"&&(window.removeEventListener("focus",F),F=null);},_=()=>{C()&&(typeof window>"u"||(s&&s>0&&(I=setInterval(()=>{u(void 0,0,false);},s)),Q&&(F=()=>{N()&&u(void 0,0,false);},window.addEventListener("focus",F))));},u=async(e,o=a$1,v=false)=>{if(!C()||(e!==void 0&&(f={...f,...e}),!v&&!N()&&t.get().data!==null))return;if(V.has(g))return V.get(g);let W=t.get();t.set({...W,loading:true,error:null,data:W.data,isPlaceholderData:c&&W.data!==null});let $=(async()=>{try{let A={...f};if(w){let x=t.get().pagination;x&&(A.page=x.page,A.pageSize=x.pageSize);}let m=M?await i(A):await i(),y,B,J;if(m&&typeof m=="object"&&"data"in m){let x=m;y=x.data,B=x.total,J=x.hasMore;}else y=m;let z=t.get();w&&j==="accumulate"&&z.data&&Array.isArray(z.data)&&Array.isArray(y)&&(y=[...z.data,...y]),t.set({loading:!1,error:null,data:y,lastFetched:Date.now(),isPlaceholderData:!1,pagination:w?{...z.pagination,total:B,hasMore:J}:void 0}),X(),E&&E(y);}catch(A){if(o>0)return await new Promise(y=>setTimeout(y,P)),V.delete(g),u(e,o-1,v);let m=t.get();t.set({loading:false,error:A,data:m.data,lastFetched:m.lastFetched,isPlaceholderData:false,pagination:m.pagination}),p&&p(A);}finally{V.delete(g);}})();return V.set(g,$),$};_(),C()&&!M&&u();let H={...t,subscribe:e=>{G++;let o=t.subscribe(e);return ()=>{o(),G--;}},reload:async e=>{await u(e,a$1,true);},refresh:async e=>{await u(e,a$1,false);},mutate:e=>{let o=t.get();t.set({...o,data:e(o.data)});},reset:()=>{q(),f={},t.set({...K,loading:C()&&!M}),_(),C()&&!M&&u();},cleanup:()=>{G<=0&&q();},forceCleanup:()=>{q();},setParams:e=>{let o={...f};for(let v in e)e[v]===null?delete o[v]:o[v]=e[v];f=o,C()&&u(f,a$1,true);},clearParams:()=>{f={},C()&&u(void 0,a$1,true);}};return w?{...H,nextPage:async()=>{let e=t.get();!e.pagination||e.pagination.hasMore===false||(t.set({...e,pagination:{...e.pagination,page:e.pagination.page+1}}),await u(f,a$1,true));},prevPage:async()=>{let e=t.get();!e.pagination||e.pagination.page<=1||(t.set({...e,pagination:{...e.pagination,page:e.pagination.page-1}}),await u(f,a$1,true));},goToPage:async e=>{let o=t.get();!o.pagination||e<1||(t.set({...o,pagination:{...o.pagination,page:e}}),await u(f,a$1,true));},resetPagination:async()=>{let e=t.get();e.pagination&&(t.set({...e,data:j==="accumulate"?b:e.data,pagination:{...e.pagination,page:k?.initialPage||1}}),await u(f,a$1,true));}}:H}function ae(i,l={}){let{pageSize:r=10,...T}=l;return L(i,{...T,pagination:{pageSize:r,mode:"accumulate",initialPage:1}})}function te(i){let l=Object.entries(i),r=l.reduce((a,[P,c])=>(a[P]=c.get().data,a),{}),T=l.reduce((a,[P,c])=>{let n=c.get().error;return n&&(a[P]=n),a},{}),b=l.some(([,a])=>a.get().loading),h=l.find(([,a])=>a.get().error)?.[1].get().error??null,p=a({loading:b,error:h,errors:T,data:r});return l.forEach(([a,P])=>{P.subscribe(()=>{let c=false,n=null,d={},s={...p.get().data};l.forEach(([Q,k])=>{let g=k.get();g.loading&&(c=true),g.error&&(n||(n=g.error),d[Q]=g.error),s[Q]=g.data;}),p.set({loading:c,error:n,errors:d,data:s});});}),p}function re(i,l={}){let r=R().mutation??{},{invalidates:T=[],onSuccess:b=r.onSuccess,onError:h=r.onError,onSettled:E}=l,p={loading:false,data:null,error:null,isSuccess:false},a$1=a(p);return {mutate:async(...c)=>{let n=c[0];a$1.set({loading:true,data:null,error:null,isSuccess:false});try{let d=await i(n);return a$1.set({loading:!1,data:d,error:null,isSuccess:!0}),T.length>0&&await Promise.all(T.map(s=>s.reload())),b&&b(d,n),E&&E(d,null,n),{data:d,error:null}}catch(d){let s=d;return a$1.set({loading:false,data:null,error:s,isSuccess:false}),h&&h(s,n),E&&E(null,s,n),{data:null,error:s}}},get:()=>a$1.get(),subscribe:c=>a$1.subscribe(c),reset:()=>a$1.set(p)}}export{L as asyncChunk,te as combineAsyncChunks,Y as configureQuery,R as getGlobalQueryConfig,ae as infiniteAsyncChunk,re as mutation,Z as resetQueryConfig};
@@ -1 +1 @@
1
- import {a}from'../chunk-3ATMNOKX.js';import {b}from'../chunk-ILRKKHYZ.js';import {useState,useEffect,useCallback,useRef}from'react';function k(e,s,t={}){let{useShallowEqual:i=false}=t,u=e.get(),n=s(u),a$1=a(n),P=()=>{let m=e.get(),l=s(m);(i?!b(l,n):l!==n)&&(n=l,a$1.set(l));},o=e.subscribe(P),{set:d,reset:T,...E}=a$1;return {...E,derive:m=>k(a$1,m,t),destroy:()=>{o(),a$1.destroy();}}}function U(e,s){let t=s?k(e,s):e,[i,u]=useState(()=>t.get());useEffect(()=>{let o=t.subscribe(d=>{u(()=>d);});return ()=>o()},[t]);let n=useCallback(o=>{e.set(o);},[e]),a=useCallback(()=>{e.reset();},[e]),P=useCallback(()=>{e.destroy();},[e]);return [i,n,a,P]}function _(e,s){let[t]=U(e,s);return t}function x(e){return "nextPage"in e}function M(e){return "setParams"in e}function G(e){return "clearParams"in e}function O(e,s={}){let{initialParams:t,fetchOnMount:i=false}=s,[u,n]=useState(()=>e.get()),a=useRef({initialParams:t,fetchOnMount:i});a.current={initialParams:t,fetchOnMount:i},useEffect(()=>{n(e.get());let r=e.subscribe(q=>{n(q);}),{initialParams:D,fetchOnMount:F}=a.current;return D&&M(e)?e.setParams(D):F&&e.reload(),()=>{r(),e.cleanup();}},[e]);let P=useCallback(r=>e.reload(r),[e]),o=useCallback(r=>e.refresh(r),[e]),d=useCallback(r=>e.mutate(r),[e]),T=useCallback(()=>e.reset(),[e]),E=useCallback(r=>{M(e)&&e.setParams(r);},[e]),m=useCallback(()=>{G(e)&&e.clearParams();},[e]),l=useCallback(()=>x(e)?e.nextPage():Promise.resolve(),[e]),f=useCallback(()=>x(e)?e.prevPage():Promise.resolve(),[e]),h=useCallback(r=>x(e)?e.goToPage(r):Promise.resolve(),[e]),y=useCallback(()=>x(e)?e.resetPagination():Promise.resolve(),[e]),{data:b,loading:v,error:p,lastFetched:g,isPlaceholderData:C=false,pagination:w}=u,A={data:b,loading:v,error:p,lastFetched:g,isPlaceholderData:C,reload:P,refresh:o,mutate:d,reset:T};if(M(e)&&(A.setParams=E,A.clearParams=m),x(e)){let r=A;r.pagination=w,r.nextPage=l,r.prevPage=f,r.goToPage=h,r.resetPagination=y;}return A}function N(e,s={}){let{initialParams:t,autoLoad:i=true,threshold:u=1,fetchOnMount:n}=s,a=O(e,{...t&&{initialParams:t},fetchOnMount:n}),{loading:P,pagination:o,nextPage:d,data:T,error:E,isPlaceholderData:m}=a,l=useRef(P),f=useRef(o?.hasMore??false),h=useRef(d);l.current=P,f.current=o?.hasMore??false,h.current=d;let y=useRef(null);useEffect(()=>{if(!i||typeof window>"u"||!("IntersectionObserver"in window))return;let p=new IntersectionObserver(C=>{C[0].isIntersecting&&!l.current&&f.current&&h.current();},{threshold:u}),g=y.current;return g&&p.observe(g),()=>{g&&p.unobserve(g),p.disconnect();}},[i,u]);let b=useCallback(()=>{!l.current&&f.current&&h.current();},[]),v=P&&T!==null&&T.length>0&&(o?.page??1)>1;return {...a,data:T,error:E,isPlaceholderData:m??false,isFetchingMore:v,hasMore:o?.hasMore??false,loadMore:b,observerTarget:y}}function Y(e){let[s,t]=useState(()=>e.get());useEffect(()=>(t(e.get()),e.subscribe(a=>{t(a);})),[e]);let i=useCallback((...n)=>e.mutate(...n),[e]),u=useCallback(()=>e.reset(),[e]);return {loading:s.loading,data:s.data,error:s.error,isSuccess:s.isSuccess,mutate:i,reset:u}}export{O as useAsyncChunk,U as useChunk,_ as useChunkValue,N as useInfiniteAsyncChunk,Y as useMutation};
1
+ import {a}from'../chunk-7PLFRQ2T.js';import {b}from'../chunk-PZ7A72TA.js';import {useState,useEffect,useCallback,useRef}from'react';function k(e,s,t={}){let{useShallowEqual:i=false}=t,u=e.get(),n=s(u),a$1=a(n),P=()=>{let m=e.get(),l=s(m);(i?!b(l,n):l!==n)&&(n=l,a$1.set(l));},o=e.subscribe(P),{set:d,reset:T,...E}=a$1;return {...E,derive:m=>k(a$1,m,t),destroy:()=>{o(),a$1.destroy();}}}function U(e,s){let t=s?k(e,s):e,[i,u]=useState(()=>t.get());useEffect(()=>{let o=t.subscribe(d=>{u(()=>d);});return ()=>o()},[t]);let n=useCallback(o=>{e.set(o);},[e]),a=useCallback(()=>{e.reset();},[e]),P=useCallback(()=>{e.destroy();},[e]);return [i,n,a,P]}function _(e,s){let[t]=U(e,s);return t}function x(e){return "nextPage"in e}function M(e){return "setParams"in e}function G(e){return "clearParams"in e}function O(e,s={}){let{initialParams:t,fetchOnMount:i=false}=s,[u,n]=useState(()=>e.get()),a=useRef({initialParams:t,fetchOnMount:i});a.current={initialParams:t,fetchOnMount:i},useEffect(()=>{n(e.get());let r=e.subscribe(q=>{n(q);}),{initialParams:D,fetchOnMount:F}=a.current;return D&&M(e)?e.setParams(D):F&&e.reload(),()=>{r(),e.cleanup();}},[e]);let P=useCallback(r=>e.reload(r),[e]),o=useCallback(r=>e.refresh(r),[e]),d=useCallback(r=>e.mutate(r),[e]),T=useCallback(()=>e.reset(),[e]),E=useCallback(r=>{M(e)&&e.setParams(r);},[e]),m=useCallback(()=>{G(e)&&e.clearParams();},[e]),l=useCallback(()=>x(e)?e.nextPage():Promise.resolve(),[e]),f=useCallback(()=>x(e)?e.prevPage():Promise.resolve(),[e]),h=useCallback(r=>x(e)?e.goToPage(r):Promise.resolve(),[e]),y=useCallback(()=>x(e)?e.resetPagination():Promise.resolve(),[e]),{data:b,loading:v,error:p,lastFetched:g,isPlaceholderData:C=false,pagination:w}=u,A={data:b,loading:v,error:p,lastFetched:g,isPlaceholderData:C,reload:P,refresh:o,mutate:d,reset:T};if(M(e)&&(A.setParams=E,A.clearParams=m),x(e)){let r=A;r.pagination=w,r.nextPage=l,r.prevPage=f,r.goToPage=h,r.resetPagination=y;}return A}function N(e,s={}){let{initialParams:t,autoLoad:i=true,threshold:u=1,fetchOnMount:n}=s,a=O(e,{...t&&{initialParams:t},fetchOnMount:n}),{loading:P,pagination:o,nextPage:d,data:T,error:E,isPlaceholderData:m}=a,l=useRef(P),f=useRef(o?.hasMore??false),h=useRef(d);l.current=P,f.current=o?.hasMore??false,h.current=d;let y=useRef(null);useEffect(()=>{if(!i||typeof window>"u"||!("IntersectionObserver"in window))return;let p=new IntersectionObserver(C=>{C[0].isIntersecting&&!l.current&&f.current&&h.current();},{threshold:u}),g=y.current;return g&&p.observe(g),()=>{g&&p.unobserve(g),p.disconnect();}},[i,u]);let b=useCallback(()=>{!l.current&&f.current&&h.current();},[]),v=P&&T!==null&&T.length>0&&(o?.page??1)>1;return {...a,data:T,error:E,isPlaceholderData:m??false,isFetchingMore:v,hasMore:o?.hasMore??false,loadMore:b,observerTarget:y}}function Y(e){let[s,t]=useState(()=>e.get());useEffect(()=>(t(e.get()),e.subscribe(a=>{t(a);})),[e]);let i=useCallback((...n)=>e.mutate(...n),[e]),u=useCallback(()=>e.reset(),[e]);return {loading:s.loading,data:s.data,error:s.error,isSuccess:s.isSuccess,mutate:i,reset:u}}export{O as useAsyncChunk,U as useChunk,_ as useChunkValue,N as useInfiniteAsyncChunk,Y as useMutation};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stunk",
3
- "version": "3.0.0-beta.3",
3
+ "version": "3.0.0-beta.4",
4
4
  "description": "Stunk is a lightweight, framework-agnostic state management library for JavaScript and TypeScript. It uses chunk-based state units for efficient updates, reactivity, and performance optimization in React, Vue(WIP), Svelte(Coming soon), and Vanilla JS/TS applications.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- import {a}from'./chunk-ILRKKHYZ.js';var b=new Set,c=new Map,g=0;function S(r,u={}){let s=g++,w=`chunk_${s}`,p=u.middleware||[];u.strict??false;if(r===void 0)throw new Error(`[${w}] Initial value cannot be undefined.`);let n=r,o=new Set,l=()=>{o.forEach(e=>e(n));};c.set(s,{notify:l});let d=()=>{if(o.size===0){c.delete(s);return}l();},v=()=>(n),m=()=>n,C=e=>{let i;typeof e=="function"?i=e(n):i=e;let t=a(i,p);t!==n&&(n=t,d());},f=e=>{if(typeof e!="function")throw new Error("Callback must be a function.");return o.add(e),()=>o.delete(e)},y={get:v,peek:m,set:C,subscribe:f,derive:e=>{if(typeof e!="function")throw new Error("Derive function must be a function.");let i=e(n),t=S(i),h=f(()=>{let D=e(n);t.set(D);}),a=t.destroy;return t.destroy=()=>{h(),a();},t},reset:()=>{n=r,d();},destroy:()=>{o.clear(),n=r,b.delete(s),c.delete(s);}};return y}export{S as a};
@@ -1 +0,0 @@
1
- function i(e,r){if(e===void 0)throw new Error("Value cannot be undefined.");if(r.length===0)return e;let t=e;for(let o=0;o<r.length;o++){let n=r[o],c=typeof n=="function"?n:n.fn,f=typeof n=="function"?`index ${o}`:n.name||`index ${o}`;try{let s=c(t);if(s===void 0)break;if(s===null)throw new Error(`Middleware "${f}" returned null value.`);t=s;}catch(s){let u=s instanceof Error?s.message:String(s);throw new Error(`Middleware "${f}" threw an error: ${u}`)}}return t}function l(e,r){if(e===r)return true;if(!e||!r||typeof e!=typeof r)return false;if(Array.isArray(e)&&Array.isArray(r)){if(e.length!==r.length)return false;for(let t=0;t<e.length;t++)if(e[t]!==r[t])return false;return true}if(typeof e=="object"&&typeof r=="object"){let t=Object.keys(e),o=Object.keys(r);if(t.length!==o.length)return false;for(let n of t)if(!Object.prototype.hasOwnProperty.call(r,n)||e[n]!==r[n])return false;return true}return false}export{i as a,l as b};