@lunora/react 1.0.0-alpha.259 → 1.0.0-alpha.260

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 (40) hide show
  1. package/dist/index.mjs +1 -1
  2. package/dist/packem_shared/{AuthLoading-024-XH0I.mjs → AuthLoading-BNDsvgQ4.mjs} +1 -1
  3. package/dist/packem_shared/{LunoraProvider-Cge6aAOa.mjs → LunoraProvider-B5zAiX86.mjs} +1 -1
  4. package/dist/packem_shared/hydratePreloaded-B6d3r_u1.mjs +2 -0
  5. package/dist/packem_shared/lunora-provider-CW9Gd-pp.mjs +2 -0
  6. package/dist/packem_shared/query-core-CqnQ_-E5.mjs +2 -0
  7. package/dist/packem_shared/use-paginated-core-D9QnfDFs.mjs +2 -0
  8. package/dist/packem_shared/{useAction-jJl4KPEw.mjs → useAction-DnbG-lGf.mjs} +1 -1
  9. package/dist/packem_shared/{useAgent-CO523Dot.mjs → useAgent-C4XTDKr3.mjs} +1 -1
  10. package/dist/packem_shared/{useAgentApprovals-D3AHE0j0.mjs → useAgentApprovals-DIrIfUkR.mjs} +1 -1
  11. package/dist/packem_shared/{useAgentChat-51qFVjQW.mjs → useAgentChat-DgdA3BU5.mjs} +1 -1
  12. package/dist/packem_shared/{useAgentState-CwsVpvmD.mjs → useAgentState-CZkoGPL4.mjs} +1 -1
  13. package/dist/packem_shared/{useAgentToolEvents-YQl2HgR6.mjs → useAgentToolEvents-BrIFgqyT.mjs} +1 -1
  14. package/dist/packem_shared/{useAuth-CpGKVRsv.mjs → useAuth-Do03WzEi.mjs} +1 -1
  15. package/dist/packem_shared/{useAuthSessions-jJWdw8Zw.mjs → useAuthSessions-BYqSu44Q.mjs} +1 -1
  16. package/dist/packem_shared/{useAuthState-CqN1F2FM.mjs → useAuthState-CR-hIsvP.mjs} +1 -1
  17. package/dist/packem_shared/{useClientQuery-DUEUAqPh.mjs → useClientQuery-47csppXE.mjs} +1 -1
  18. package/dist/packem_shared/{useConnectionStatus-Dtx_OWez.mjs → useConnectionStatus-B4A2Vw8x.mjs} +1 -1
  19. package/dist/packem_shared/{useFlag-A7XPHExt.mjs → useFlag-DhCr93VG.mjs} +1 -1
  20. package/dist/packem_shared/{useHttpStream-CzryjxVH.mjs → useHttpStream-D0biamGu.mjs} +1 -1
  21. package/dist/packem_shared/{useInfiniteQuery-D_AG59dX.mjs → useInfiniteQuery-C6B9M0s9.mjs} +1 -1
  22. package/dist/packem_shared/{useLiveTopic-UYAE2s4R.mjs → useLiveTopic-COTTJo8q.mjs} +1 -1
  23. package/dist/packem_shared/{useMutation-29nXea_s.mjs → useMutation-DmI3aZBl.mjs} +1 -1
  24. package/dist/packem_shared/{usePaginatedQuery-DhQAsxgX.mjs → usePaginatedQuery-CK5xnM3r.mjs} +1 -1
  25. package/dist/packem_shared/usePresence-Bgw_pYzz.mjs +2 -0
  26. package/dist/packem_shared/useQuery-CHjpBW-E.mjs +2 -0
  27. package/dist/packem_shared/{useStream-D8GB__4j.mjs → useStream-De5SDR6Y.mjs} +1 -1
  28. package/dist/packem_shared/{useSubscription-D9QkGhO3.mjs → useSubscription-CC39EoMT.mjs} +1 -1
  29. package/dist/packem_shared/useSuspenseQuery-ZsmWeJKm.mjs +2 -0
  30. package/dist/packem_shared/{useVoiceAgent-ixfjauAR.mjs → useVoiceAgent-TyztaWYJ.mjs} +1 -1
  31. package/dist/payment.d.mts +2 -0
  32. package/dist/payment.d.ts +2 -0
  33. package/package.json +3 -3
  34. package/dist/packem_shared/hydratePreloaded-qs8nspKB.mjs +0 -2
  35. package/dist/packem_shared/lunora-provider-_WqSuvf9.mjs +0 -2
  36. package/dist/packem_shared/query-core-DRzrn3qJ.mjs +0 -2
  37. package/dist/packem_shared/use-paginated-core-Bf9xLRSk.mjs +0 -2
  38. package/dist/packem_shared/usePresence-X5Ax04Cf.mjs +0 -2
  39. package/dist/packem_shared/useQuery-Cek_oF7t.mjs +0 -2
  40. package/dist/packem_shared/useSuspenseQuery-CZTk7Kch.mjs +0 -2
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{AuthLoading as o,Authenticated as t,Unauthenticated as u}from"./packem_shared/AuthLoading-024-XH0I.mjs";import{useAuthState as a}from"./packem_shared/useAuthState-CqN1F2FM.mjs";import{L as f,u as n}from"./packem_shared/lunora-provider-_WqSuvf9.mjs";import{lunoraQueryOptions as m}from"./packem_shared/lunoraQueryOptions-IJB_aFzi.mjs";import{useAction as d}from"./packem_shared/useAction-jJl4KPEw.mjs";import{useAuthSessions as A,useAuthUsers as g,useImpersonate as c,useOrganizations as h,useSignUpInvitations as U}from"./packem_shared/useAuthSessions-jJWdw8Zw.mjs";import{useAgent as S}from"./packem_shared/useAgent-CO523Dot.mjs";import{useAgentApprovals as E}from"./packem_shared/useAgentApprovals-D3AHE0j0.mjs";import{useAgentChat as L}from"./packem_shared/useAgentChat-51qFVjQW.mjs";import{useAgentState as v}from"./packem_shared/useAgentState-CwsVpvmD.mjs";import{useAgentToolEvents as F}from"./packem_shared/useAgentToolEvents-YQl2HgR6.mjs";import{default as M}from"./packem_shared/useAuth-CpGKVRsv.mjs";import{default as b}from"./packem_shared/useClientQuery-DUEUAqPh.mjs";import{default as O}from"./packem_shared/useConnectionStatus-Dtx_OWez.mjs";import{useFlag as H,useFlags as V}from"./packem_shared/useFlag-A7XPHExt.mjs";import{useHttpStream as q}from"./packem_shared/useHttpStream-CzryjxVH.mjs";import{default as B}from"./packem_shared/useInfiniteQuery-D_AG59dX.mjs";import{useLiveTopic as G}from"./packem_shared/useLiveTopic-UYAE2s4R.mjs";import{useMutation as K}from"./packem_shared/useMutation-29nXea_s.mjs";import{useMutator as W}from"./packem_shared/useMutator-BtUd-xEA.mjs";import{usePaginatedQuery as Y}from"./packem_shared/usePaginatedQuery-DhQAsxgX.mjs";import{hydratePreloaded as _,default as $}from"./packem_shared/hydratePreloaded-qs8nspKB.mjs";import{usePresence as re}from"./packem_shared/usePresence-X5Ax04Cf.mjs";import{default as te}from"./packem_shared/useQuery-Cek_oF7t.mjs";import{useRateLimit as se}from"./packem_shared/useRateLimit-Cckxi8m9.mjs";import{useStream as pe}from"./packem_shared/useStream-D8GB__4j.mjs";import{default as ne}from"./packem_shared/useSubscription-D9QkGhO3.mjs";import{default as me}from"./packem_shared/useSuspenseQuery-CZTk7Kch.mjs";import{useVoiceAgent as de}from"./packem_shared/useVoiceAgent-ixfjauAR.mjs";import{createClientQuery as Ae,getErrorCode as ge,getRetryAfterMs as ce,isConflictError as he,isForbiddenError as Ue,isRateLimitedError as ye,isUnauthorizedError as Se}from"@lunora/client";import{RestrictionError as Ee,UploadControl as Qe,UploadError as Le}from"@visulima/storage-client";import{useChunkedRestUpload as ve,useFileInput as Re,useMultipartUpload as Fe,usePasteUpload as Ie,useTusUpload as Me,useUpload as Te}from"@visulima/storage-client/react";export{o as AuthLoading,t as Authenticated,f as LunoraProvider,Ee as RestrictionError,u as Unauthenticated,Qe as UploadControl,Le as UploadError,Ae as createClientQuery,ge as getErrorCode,ce as getRetryAfterMs,_ as hydratePreloaded,he as isConflictError,Ue as isForbiddenError,ye as isRateLimitedError,Se as isUnauthorizedError,m as lunoraQueryOptions,d as useAction,S as useAgent,E as useAgentApprovals,L as useAgentChat,v as useAgentState,F as useAgentToolEvents,M as useAuth,A as useAuthSessions,a as useAuthState,g as useAuthUsers,ve as useChunkedRestUpload,b as useClientQuery,O as useConnectionStatus,Re as useFileInput,H as useFlag,V as useFlags,q as useHttpStream,c as useImpersonate,B as useInfiniteQuery,G as useLiveTopic,n as useLunora,Fe as useMultipartUpload,K as useMutation,W as useMutator,h as useOrganizations,Y as usePaginatedQuery,Ie as usePasteUpload,$ as usePreloadedQuery,re as usePresence,te as useQuery,se as useRateLimit,U as useSignUpInvitations,pe as useStream,ne as useSubscription,me as useSuspenseQuery,Me as useTusUpload,Te as useUpload,de as useVoiceAgent};
2
+ import{AuthLoading as o,Authenticated as t,Unauthenticated as u}from"./packem_shared/AuthLoading-BNDsvgQ4.mjs";import{useAuthState as a}from"./packem_shared/useAuthState-CR-hIsvP.mjs";import{L as f,u as n}from"./packem_shared/lunora-provider-CW9Gd-pp.mjs";import{lunoraQueryOptions as m}from"./packem_shared/lunoraQueryOptions-IJB_aFzi.mjs";import{useAction as d}from"./packem_shared/useAction-DnbG-lGf.mjs";import{useAuthSessions as A,useAuthUsers as g,useImpersonate as c,useOrganizations as h,useSignUpInvitations as U}from"./packem_shared/useAuthSessions-BYqSu44Q.mjs";import{useAgent as S}from"./packem_shared/useAgent-C4XTDKr3.mjs";import{useAgentApprovals as E}from"./packem_shared/useAgentApprovals-DIrIfUkR.mjs";import{useAgentChat as L}from"./packem_shared/useAgentChat-DgdA3BU5.mjs";import{useAgentState as v}from"./packem_shared/useAgentState-CZkoGPL4.mjs";import{useAgentToolEvents as F}from"./packem_shared/useAgentToolEvents-BrIFgqyT.mjs";import{default as M}from"./packem_shared/useAuth-Do03WzEi.mjs";import{default as b}from"./packem_shared/useClientQuery-47csppXE.mjs";import{default as O}from"./packem_shared/useConnectionStatus-B4A2Vw8x.mjs";import{useFlag as H,useFlags as V}from"./packem_shared/useFlag-DhCr93VG.mjs";import{useHttpStream as q}from"./packem_shared/useHttpStream-D0biamGu.mjs";import{default as B}from"./packem_shared/useInfiniteQuery-C6B9M0s9.mjs";import{useLiveTopic as G}from"./packem_shared/useLiveTopic-COTTJo8q.mjs";import{useMutation as K}from"./packem_shared/useMutation-DmI3aZBl.mjs";import{useMutator as W}from"./packem_shared/useMutator-BtUd-xEA.mjs";import{usePaginatedQuery as Y}from"./packem_shared/usePaginatedQuery-CK5xnM3r.mjs";import{hydratePreloaded as _,default as $}from"./packem_shared/hydratePreloaded-B6d3r_u1.mjs";import{usePresence as re}from"./packem_shared/usePresence-Bgw_pYzz.mjs";import{default as te}from"./packem_shared/useQuery-CHjpBW-E.mjs";import{useRateLimit as se}from"./packem_shared/useRateLimit-Cckxi8m9.mjs";import{useStream as pe}from"./packem_shared/useStream-De5SDR6Y.mjs";import{default as ne}from"./packem_shared/useSubscription-CC39EoMT.mjs";import{default as me}from"./packem_shared/useSuspenseQuery-ZsmWeJKm.mjs";import{useVoiceAgent as de}from"./packem_shared/useVoiceAgent-TyztaWYJ.mjs";import{createClientQuery as Ae,getErrorCode as ge,getRetryAfterMs as ce,isConflictError as he,isForbiddenError as Ue,isRateLimitedError as ye,isUnauthorizedError as Se}from"@lunora/client";import{RestrictionError as Ee,UploadControl as Qe,UploadError as Le}from"@visulima/storage-client";import{useChunkedRestUpload as ve,useFileInput as Re,useMultipartUpload as Fe,usePasteUpload as Ie,useTusUpload as Me,useUpload as Te}from"@visulima/storage-client/react";export{o as AuthLoading,t as Authenticated,f as LunoraProvider,Ee as RestrictionError,u as Unauthenticated,Qe as UploadControl,Le as UploadError,Ae as createClientQuery,ge as getErrorCode,ce as getRetryAfterMs,_ as hydratePreloaded,he as isConflictError,Ue as isForbiddenError,ye as isRateLimitedError,Se as isUnauthorizedError,m as lunoraQueryOptions,d as useAction,S as useAgent,E as useAgentApprovals,L as useAgentChat,v as useAgentState,F as useAgentToolEvents,M as useAuth,A as useAuthSessions,a as useAuthState,g as useAuthUsers,ve as useChunkedRestUpload,b as useClientQuery,O as useConnectionStatus,Re as useFileInput,H as useFlag,V as useFlags,q as useHttpStream,c as useImpersonate,B as useInfiniteQuery,G as useLiveTopic,n as useLunora,Fe as useMultipartUpload,K as useMutation,W as useMutator,h as useOrganizations,Y as usePaginatedQuery,Ie as usePasteUpload,$ as usePreloadedQuery,re as usePresence,te as useQuery,se as useRateLimit,U as useSignUpInvitations,pe as useStream,ne as useSubscription,me as useSuspenseQuery,Me as useTusUpload,Te as useUpload,de as useVoiceAgent};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{useAuthState as o}from"./useAuthState-CqN1F2FM.mjs";const s=t=>{const{children:n}=t,{isAuthenticated:i}=o();return i?n:void 0},d=t=>{const{children:n}=t,{isAuthenticated:i,isLoading:e}=o();return!e&&!i?n:void 0},r=t=>{const{children:n}=t,{isLoading:i}=o();return i?n:void 0};export{r as AuthLoading,s as Authenticated,d as Unauthenticated};
2
+ import{useAuthState as o}from"./useAuthState-CR-hIsvP.mjs";const s=t=>{const{children:n}=t,{isAuthenticated:i}=o();return i?n:void 0},d=t=>{const{children:n}=t,{isAuthenticated:i,isLoading:e}=o();return!e&&!i?n:void 0},r=t=>{const{children:n}=t,{isLoading:i}=o();return i?n:void 0};export{r as AuthLoading,s as Authenticated,d as Unauthenticated};
@@ -1 +1 @@
1
- import{L as e,u as o,a as u}from"./lunora-provider-_WqSuvf9.mjs";export{e as LunoraProvider,o as useLunora,u as useLunoraClientSwapped};
1
+ import{L as e,u as o,a as u}from"./lunora-provider-CW9Gd-pp.mjs";export{e as LunoraProvider,o as useLunora,u as useLunoraClientSwapped};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{c as K}from"react/compiler-runtime";import{useQueryClient as P,useQuery as N}from"@tanstack/react-query";import{useRef as T,useEffect as I,useSyncExternalStore as w,useState as x}from"react";import{u as F,g as L,a as O}from"./lunora-provider-CW9Gd-pp.mjs";import{l as V,s as z}from"./query-key-BysXrewF.mjs";const D=function(o,r){const e=K(11);let s;e[0]!==r?(s=r===void 0?{}:r,e[0]=r,e[1]=s):s=e[1];const i=s,t=F(),n=P(),S=T(i.onError);let c;e[2]!==i.onError?(c=()=>{S.current=i.onError},e[2]=i.onError,e[3]=c):c=e[3],I(c);let u;e[4]===Symbol.for("react.memo_cache_sentinel")?(u=h=>{S.current?.(h)},e[4]=u):u=e[4];const b=u,m=L(t);let a;e[5]!==t?(a=()=>t.identityEpoch(),e[5]=t,e[6]=a):a=e[6];const _=w(m.subscribeIdentityEpoch,a,Y),[Q]=x(t),R=O(),{args:p,functionPath:q,shardKey:l}=o,g=_===0&&!R&&t===Q?o.value:void 0,d={__lunoraRef:q},f=V(d,p,l),{data:v}=N({initialData:g,queryFn:async h=>{const{signal:C}=h;return m.liveValue(n,f,C,{fetch:async()=>t.query(d,p,{shardKey:l}),shardKey:l})},queryKey:f,staleTime:Number.POSITIVE_INFINITY}),E=z(f);let y;return e[7]!==t||e[8]!==n||e[9]!==E?(y=[t,n,E,b],e[7]=t,e[8]=n,e[9]=E,e[10]=y):y=e[10],I(()=>m.attach(n,f,d,p,l,{onError:b}),y),v===void 0?g:v},G=function(o,r={}){return D(o,r)};function Y(){return 0}export{D as default,G as hydratePreloaded};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{c as W}from"react/compiler-runtime";import{LunoraError as D}from"@lunora/errors";import{QueryClientContext as M,QueryClientProvider as A,QueryClient as N}from"@tanstack/react-query";import{use as Q,useState as S,useEffect as T,useRef as R,createContext as x}from"react";import{k as b}from"./query-key-BysXrewF.mjs";import{jsx as m}from"react/jsx-runtime";const E=n=>{n!==void 0&&(n.cancel({silent:!0}),n.setState({...n.state,data:void 0,dataUpdatedAt:0,error:null,fetchStatus:"idle",status:"pending"}))},I={status:"idle"},F=(n,e)=>{for(const s of n.waiters)s(e);n.waiters.clear()},_=1e4,z=async(n,e,s)=>new Promise((i,d)=>{if(e.aborted){d(e.reason);return}let u,h;const l=()=>{clearTimeout(u),h?.(),n.waiters.delete(r),e.removeEventListener("abort",t)},t=()=>{l(),d(e.reason)},r=c=>{l(),i(c)};u=setTimeout(()=>{r(!1)},_),n.waiters.add(r),e.addEventListener("abort",t,{once:!0}),h=s(()=>{r(!1)}),n.waiters.has(r)||h()});class U{constructor(e){this.client=e}client;entries=new Map;live=new Map;identityWatched=new Set;listening=!1;hasConsumers(e){return this.entries.has(b(e))}async liveValue(e,s,i,d){const{fetch:u,shardKey:h,waitForPush:l=!0}=d;if(!("window"in globalThis)||this.client.getWebSocketImpl()===void 0)return u();const t=b(s),r=this.liveFor(t),c=r.state.status==="pushed"?e.getQueryData(s)??r.state.value:void 0;if(c!==void 0)return c;if(l&&r.state.status!=="errored"&&!this.client.isCrossTabFollower()&&this.client.expectsPush({shardKey:h})){let o;try{o=await z(r,i,f=>this.client.onConnectionStatus(()=>{this.client.expectsPush({shardKey:h})||f()}))}finally{this.forgetIdleLive(t)}if(o)return this.liveValue(e,s,i,d)}const p=r.state;let a;try{a=await u()}finally{this.forgetIdleLive(t)}if(r.state!==p&&r.state.status==="pushed"){const o=e.getQueryData(s);return o!==void 0?o:r.state.value}return a}clearOnIdentityChange(e){this.listenForIdentityChange(),this.identityWatched.add(e)}stopClearingOnIdentityChange(e){this.identityWatched.delete(e)}subscribeIdentityEpoch=e=>(this.listenForIdentityChange(),this.client.onIdentityChange(e));listenForIdentityChange(){this.listening||(this.listening=!0,this.client.onIdentityChange(()=>{for(const e of this.identityWatched)this.clearQueries(e)}))}clearQueries(e){const s=e.getQueryCache();for(const i of s.findAll({queryKey:["lunora"]}))E(i),i.getObserversCount()===0&&!this.hasConsumers(i.queryKey)&&s.remove(i)}attach(e,s,i,d,u,h={}){const l=b(s);let t=this.entries.get(l);if(!t){t={clients:new Map([[e,0]]),errorCallbacks:new Set,unsubscribe:void 0},this.entries.set(l,t);const a=t;try{t.unsubscribe=this.client.subscribe(i,d,o=>{const f=this.liveFor(l);if(o===void 0){f.state=I;for(const v of a.clients.keys())E(v.getQueryCache().find({exact:!0,queryKey:s}));return}for(const v of a.clients.keys())v.setQueryData(s,o);f.state={status:"pushed",value:o},F(f,!0)},{onError:o=>{const f=this.liveFor(l);f.state.status!=="pushed"&&(f.state={status:"errored"},F(f,!1));for(const v of a.errorCallbacks)v(o)},shardKey:u})}catch(o){throw this.entries.delete(l),this.dropLive(l),o}}t.clients.set(e,(t.clients.get(e)??0)+1);const r=this.live.get(l);r?.state.status==="pushed"&&e.setQueryData(s,r.state.value);const{onError:c}=h;c&&t.errorCallbacks.add(c);let p=!1;return()=>{if(p)return;p=!0;const a=this.entries.get(l);if(!a)return;const o=(a.clients.get(e)??1)-1;o>0?a.clients.set(e,o):a.clients.delete(e),c&&a.errorCallbacks.delete(c),a.clients.size===0&&(a.unsubscribe?.(),this.entries.delete(l),this.dropLive(l))}}liveFor(e){let s=this.live.get(e);return s||(s={state:I,waiters:new Set},this.live.set(e,s)),s}forgetIdleLive(e){!this.entries.has(e)&&this.live.get(e)?.waiters.size===0&&this.live.delete(e)}dropLive(e){const s=this.live.get(e);s!==void 0&&(s.waiters.size===0?this.live.delete(e):s.state=I)}}const k=new WeakMap,L=n=>{let e=k.get(n);return e||(e=new U(n),k.set(n,e)),e},P=x(null),O=x(!1),V=()=>new N({defaultOptions:{mutations:{retry:0},queries:{gcTime:5*6e4,retry:0,staleTime:Number.POSITIVE_INFINITY}}}),J=n=>{const e=W(20),{children:s,client:i,queryClient:d}=n,u=Q(M);let h;e[0]!==u||e[1]!==d?(h=()=>d??u??V(),e[0]=u,e[1]=d,e[2]=h):h=e[2];const[l]=S(h),t=d??u??l;let r,c;e[3]!==i||e[4]!==t?(r=()=>{L(i).clearOnIdentityChange(t)},c=[i,t],e[3]=i,e[4]=t,e[5]=r,e[6]=c):(r=e[5],c=e[6]),T(r,c);const p=R(i);let a,o;e[7]!==i||e[8]!==t?(a=()=>{p.current!==i&&(L(p.current).stopClearingOnIdentityChange(t),p.current=i,L(i).clearQueries(t),t.invalidateQueries({queryKey:["lunora"]}))},o=[i,t],e[7]=i,e[8]=t,e[9]=a,e[10]=o):(a=e[9],o=e[10]),T(a,o);const[f]=S(i),v=i!==f;let g;e[11]!==s||e[12]!==v?(g=m(O,{value:v,children:s}),e[11]=s,e[12]=v,e[13]=g):g=e[13];let w;e[14]!==i||e[15]!==g?(w=m(P,{value:i,children:g}),e[14]=i,e[15]=g,e[16]=w):w=e[16];const C=w;if(u===t)return C;let y;return e[17]!==C||e[18]!==t?(y=m(A,{client:t,children:C}),e[17]=C,e[18]=t,e[19]=y):y=e[19],y},X=()=>Q(O),Z=()=>{const n=Q(P);if(!n)throw new D("INTERNAL","useLunora must be used inside <LunoraProvider />");return n};export{J as L,X as a,L as g,Z as u};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{c as R}from"react/compiler-runtime";import{useRef as $,useEffect as b}from"react";import{g as h}from"./lunora-provider-CW9Gd-pp.mjs";const x=g=>{const e=R(16),{args:a,argsKey:E,client:r,function_:n,onError:s,queryClient:t,queryKey:m,shardKey:i,skipped:o}=g,p=`${n.__lunoraRef}\0${E}\0${i??""}`,y=$(s);let c;e[0]!==s?(c=()=>{y.current=s},e[0]=s,e[1]=c):c=e[1],b(c);let u;e[2]===Symbol.for("react.memo_cache_sentinel")?(u=K=>{y.current?.(K)},e[2]=u):u=e[2];const _=u;let f;e[3]!==a||e[4]!==r||e[5]!==n||e[6]!==t||e[7]!==m||e[8]!==i||e[9]!==o?(f=()=>o?S:h(r).attach(t,m,n,a,i,{onError:_}),e[3]=a,e[4]=r,e[5]=n,e[6]=t,e[7]=m,e[8]=i,e[9]=o,e[10]=f):f=e[10];let l;e[11]!==r||e[12]!==t||e[13]!==o||e[14]!==p?(l=[r,t,p,o,_],e[11]=r,e[12]=t,e[13]=o,e[14]=p,e[15]=l):l=e[15],b(f,l)};function S(){}export{x as u};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{initialPages as T,rebalance as Y,derivePaginationStatus as D,applyLoadMore as _}from"@lunora/client/pagination";import{useQueryClient as B,CancelledError as G}from"@tanstack/react-query";import{useRef as m,useReducer as J,useState as z,useEffect as h,useCallback as U}from"react";import{u as W,g as X}from"./lunora-provider-CW9Gd-pp.mjs";import{s as u,l as I}from"./query-key-BysXrewF.mjs";const Z=function(i){const l=m(void 0);return l.current??=i(),l},oe=function(i,l,R){const y=W(),a=B(),{initialNumItems:S,shardKey:g}=R,f=l==="skip",p=f?{}:l,[,H]=J(e=>e+1,0),[P,K]=z(()=>T(S)),[V,k]=z(void 0),A=m(R.onError);h(()=>{A.current=R.onError});const E=`${u(I(i,p,g))}::${String(S)}`,x=m(E);x.current!==E&&(x.current=E,K(T(S)),k(void 0));const C=P.map(e=>{const t={...p,paginationOpts:{cursor:e.lower,endCursor:e.upper,numItems:e.numItems}},r=I(i,t,g);return{args:t,key:r}}),F=C.map(({key:e})=>u(e)).join("|"),b=m({baseArgs:p,entries:[],fn:i,shardKey:g});h(()=>{b.current={baseArgs:p,entries:C,fn:i,shardKey:g}});const L=(e,t,r)=>{k(r),K(n=>{const s=b.current,o=n.at(-1);if(n.length<=1||!o||a.getQueryData(t)!==void 0)return n;const v={...s.baseArgs,paginationOpts:{cursor:o.lower,endCursor:o.upper,numItems:o.numItems}};return u(I(s.fn,v,s.shardKey))===e?n.slice(0,-1):n}),A.current?.(r)},Q=Z(()=>new Map),M=m(y);h(()=>{const e=Q.current;if(M.current!==y){for(const s of e.values())s();e.clear(),M.current=y}if(f){for(const s of e.values())s();e.clear();return}const t=b.current,r=X(y),n=new Set(t.entries.map(({key:s})=>u(s)));for(const[s,o]of e)n.has(s)||(o(),e.delete(s));for(const s of t.entries){const o=u(s.key);if(e.has(o))continue;const v=async()=>y.query(t.fn,s.args,{shardKey:t.shardKey}),d=()=>{a.fetchQuery({gcTime:Number.POSITIVE_INFINITY,queryFn:async({signal:c})=>r.liveValue(a,s.key,c,{fetch:v,shardKey:t.shardKey}),queryKey:s.key,staleTime:0}).catch(c=>{if(c instanceof G){r.hasConsumers(s.key)&&d();return}L(o,s.key,c instanceof Error?{code:c.code,message:c.message}:{message:String(c)})})};d();const w=r.attach(a,s.key,t.fn,s.args,t.shardKey,{onError:O=>{L(o,s.key,O)}}),N=s.key;e.set(o,()=>{w(),r.hasConsumers(N)||a.removeQueries({exact:!0,queryKey:N})})}},[y,a,F,f]),h(()=>()=>{for(const e of Q.current.values())e();Q.current.clear()},[]),h(()=>{const e=a.getQueryCache(),t=new Set(C.map(({key:n})=>u(n)));return e.subscribe(n=>{if(n.type!=="updated")return;const s=u(n.query.queryKey);t.has(s)&&(k(void 0),H())})},[a,F]);const q=f?[]:C.map(({key:e})=>a.getQueryData(e));h(()=>{if(f)return;const e=Y(P,q);e&&K(e)});const{status:$}=D(f,q),j=U(e=>{k(void 0),K(t=>{const r=b.current,n=t.map(d=>{const w={...r.baseArgs,paginationOpts:{cursor:d.lower,endCursor:d.upper,numItems:d.numItems}};return a.getQueryData(I(r.fn,w,r.shardKey))}),{nextCursor:s,status:o}=D(!1,n);return _(t,o==="CanLoadMore"?s:void 0,e)??t})},[a]);return{error:V,loadMore:j,pageResults:q,status:$}};export{oe as u};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as R}from"react/compiler-runtime";import{createCallRunner as k}from"@lunora/client";import{useMutation as x}from"@tanstack/react-query";import{useState as n}from"react";import{u as C}from"./lunora-provider-_WqSuvf9.mjs";const S=a=>{const t=R(12),i=C(),[c,g]=n(void 0),[l,m]=n(void 0),[u,M]=n(!1);let o;t[0]!==i||t[1]!==a?(o={mutationFn:async e=>{const{args:y,options:A}=e;return i.action(a,y,A)},networkMode:"always",retry:0},t[0]=i,t[1]=a,t[2]=o):o=t[2];const{mutateAsync:d,reset:p}=x(o);let s;t[3]!==d||t[4]!==p?(s=()=>({call:k(async(e,y)=>d({args:e,options:y}),{setError:m,setPending:M,setResult:e=>{g(()=>e),m(void 0)}}),reset:()=>{g(void 0),m(void 0),p()}}),t[3]=d,t[4]=p,t[5]=s):s=t[5];const[w]=n(s),{call:f,reset:v}=w;let r;return t[6]!==f||t[7]!==c||t[8]!==l||t[9]!==u||t[10]!==v?(r={call:f,data:c,error:l,pending:u,reset:v},t[6]=f,t[7]=c,t[8]=l,t[9]=u,t[10]=v,t[11]=r):r=t[11],r};export{S as useAction};
2
+ import{c as R}from"react/compiler-runtime";import{createCallRunner as k}from"@lunora/client";import{useMutation as x}from"@tanstack/react-query";import{useState as n}from"react";import{u as C}from"./lunora-provider-CW9Gd-pp.mjs";const S=a=>{const t=R(12),i=C(),[c,g]=n(void 0),[l,m]=n(void 0),[u,M]=n(!1);let o;t[0]!==i||t[1]!==a?(o={mutationFn:async e=>{const{args:y,options:A}=e;return i.action(a,y,A)},networkMode:"always",retry:0},t[0]=i,t[1]=a,t[2]=o):o=t[2];const{mutateAsync:d,reset:p}=x(o);let s;t[3]!==d||t[4]!==p?(s=()=>({call:k(async(e,y)=>d({args:e,options:y}),{setError:m,setPending:M,setResult:e=>{g(()=>e),m(void 0)}}),reset:()=>{g(void 0),m(void 0),p()}}),t[3]=d,t[4]=p,t[5]=s):s=t[5];const[w]=n(s),{call:f,reset:v}=w;let r;return t[6]!==f||t[7]!==c||t[8]!==l||t[9]!==u||t[10]!==v?(r={call:f,data:c,error:l,pending:u,reset:v},t[6]=f,t[7]=c,t[8]=l,t[9]=u,t[10]=v,t[11]=r):r=t[11],r};export{S as useAction};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as N}from"react/compiler-runtime";import{useMutation as R}from"./useMutation-29nXea_s.mjs";import O from"./useSubscription-D9QkGhO3.mjs";const b={__lunoraRef:""},F=_=>{const t=N(20),{api:A,cancel:a,onError:d,run:I,runArgs:f,threadKey:e}=_,s=R(I),T=R(a??b);let c;t[0]!==e?(c={key:e},t[0]=e,t[1]=c):c=t[1];let r;t[2]!==d?(r={onError:d},t[2]=d,t[3]=r):r=t[3];const{data:v,error:p}=O(A.agents.agentThread,c,r),n=v,g=n?.status,o=n?.instanceId,{mutate:m}=s,{mutate:M}=T;let i;t[4]!==f||t[5]!==m||t[6]!==e?(i=async(w,E)=>{await m({input:w,threadKey:e,...f,...E})},t[4]=f,t[5]=m,t[6]=e,t[7]=i):i=t[7];const h=i;let u;t[8]!==M||t[9]!==a||t[10]!==o||t[11]!==e?(u=async()=>{a===void 0||o===void 0||await M({instanceId:o,threadKey:e})},t[8]=M,t[9]=a,t[10]=o,t[11]=e,t[12]=u):u=t[12];const y=u;let l;return t[13]!==y||t[14]!==p||t[15]!==h||t[16]!==s.pending||t[17]!==g||t[18]!==n?(l={cancel:y,error:p,pending:s.pending,run:h,status:g,thread:n},t[13]=y,t[14]=p,t[15]=h,t[16]=s.pending,t[17]=g,t[18]=n,t[19]=l):l=t[19],l};export{F as useAgent};
2
+ import{c as N}from"react/compiler-runtime";import{useMutation as R}from"./useMutation-DmI3aZBl.mjs";import O from"./useSubscription-CC39EoMT.mjs";const b={__lunoraRef:""},F=_=>{const t=N(20),{api:A,cancel:a,onError:d,run:I,runArgs:f,threadKey:e}=_,s=R(I),T=R(a??b);let c;t[0]!==e?(c={key:e},t[0]=e,t[1]=c):c=t[1];let r;t[2]!==d?(r={onError:d},t[2]=d,t[3]=r):r=t[3];const{data:v,error:p}=O(A.agents.agentThread,c,r),n=v,g=n?.status,o=n?.instanceId,{mutate:m}=s,{mutate:M}=T;let i;t[4]!==f||t[5]!==m||t[6]!==e?(i=async(w,E)=>{await m({input:w,threadKey:e,...f,...E})},t[4]=f,t[5]=m,t[6]=e,t[7]=i):i=t[7];const h=i;let u;t[8]!==M||t[9]!==a||t[10]!==o||t[11]!==e?(u=async()=>{a===void 0||o===void 0||await M({instanceId:o,threadKey:e})},t[8]=M,t[9]=a,t[10]=o,t[11]=e,t[12]=u):u=t[12];const y=u;let l;return t[13]!==y||t[14]!==p||t[15]!==h||t[16]!==s.pending||t[17]!==g||t[18]!==n?(l={cancel:y,error:p,pending:s.pending,run:h,status:g,thread:n},t[13]=y,t[14]=p,t[15]=h,t[16]=s.pending,t[17]=g,t[18]=n,t[19]=l):l=t[19],l};export{F as useAgent};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as p}from"react/compiler-runtime";import c from"./useSubscription-D9QkGhO3.mjs";const m=n=>{const e=p(4);let t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t={},e[0]=t):t=e[0];const{data:a,error:r}=c(n.api.agents.agentPendingApprovals,t),s=a;let o;return e[1]!==r||e[2]!==s?(o={approvals:s,error:r},e[1]=r,e[2]=s,e[3]=o):o=e[3],o};export{m as useAgentApprovals};
2
+ import{c as p}from"react/compiler-runtime";import c from"./useSubscription-CC39EoMT.mjs";const m=n=>{const e=p(4);let t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t={},e[0]=t):t=e[0];const{data:a,error:r}=c(n.api.agents.agentPendingApprovals,t),s=a;let o;return e[1]!==r||e[2]!==s?(o={approvals:s,error:r},e[1]=r,e[2]=s,e[3]=o):o=e[3],o};export{m as useAgentApprovals};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{reconcileOptimistic as M,maxSeq as R}from"@lunora/client";import{useState as nt,useRef as k}from"react";import{u as rt}from"./lunora-provider-_WqSuvf9.mjs";import{useMutation as s}from"./useMutation-29nXea_s.mjs";import{useStream as at}from"./useStream-D8GB__4j.mjs";import d from"./useSubscription-D9QkGhO3.mjs";const ot={__lunoraRef:""},st={__lunoraRef:""},ct=[],it=[],kt=A=>{const{api:r,cancel:m,limit:g,onError:i,send:E,sendArgs:_,stream:v,threadKey:e}=A,T=g===void 0?{key:e}:{key:e,limit:g},{data:w,error:x}=d(r.agents.agentMessages,T,{onError:i}),{data:G,error:I}=d(r.agents.agentThread,{key:e},{onError:i}),{data:O,error:b}=d(r.agents.agentApprovalGrants,{key:e},{onError:i}),C=v===void 0?"skip":{key:e},{chunks:D}=at(v??st,C),j=s(E),q=s(m??ot),F=s(r.agents.agentResolveApproval),N=s(r.agents.agentRevokeApprovalGrant),K=s(r.agents.agentDeclineSecret),P=rt(),[Y,u]=nt([]),h=k(0),f=k(e);f.current!==e&&(f.current=e,u([]));const y=G,L=y?.status,c=y?.instanceId,a=w??ct,S=M(Y,a),U=R(a),$=S.length===0?a:[...a,...S.map((t,n)=>({content:t.content,optimistic:!0,role:"user",seq:U+1+n}))],z=a.filter(t=>t.role==="assistant").length,B=D.filter(t=>t.kind!=="progress"&&t.threadKey===e&&t.turn>=z).map(t=>t.text).join(""),{mutate:H}=j,{mutate:J}=q,{mutate:Q}=F,{mutate:V}=N,{mutate:W}=K,X=async(t,n)=>{const o=h.current;h.current+=1;const Z=R(a);u(p=>[...M(p,a),{content:t,id:o,maxDurableSeqAtSend:Z}]);try{await H({input:t,threadKey:e,..._,...n})}catch(p){throw u(tt=>tt.filter(et=>et.id!==o)),p}},l=async(t,n,o)=>{if(c===void 0)throw new Error(`useAgentChat: cannot ${t} — no in-flight run (thread has no instanceId)`);await Q({decision:t,instanceId:c,threadKey:e,toolCallId:n,...o===void 0?{}:{note:o}})};return{approvalGrants:O??it,approve:(t,n)=>l("approve",t,n),approveForThread:(t,n)=>l("approve_for_thread",t,n),cancel:async()=>{m===void 0||c===void 0||await J({instanceId:c,threadKey:e})},declineSecret:async t=>{await W({threadKey:e,toolCallId:t})},error:x??I??b,messages:$,reject:(t,n)=>l("reject",t,n),revokeGrant:async t=>{await V({threadKey:e,toolName:t})},send:X,status:L,streamingText:B,supplySecret:async(t,n)=>{await P.mutation(r.agents.agentSupplySecret,{secret:n,threadKey:e,toolCallId:t},{onlineOnly:!0})}}};export{kt as useAgentChat};
2
+ import{reconcileOptimistic as M,maxSeq as R}from"@lunora/client";import{useState as nt,useRef as k}from"react";import{u as rt}from"./lunora-provider-CW9Gd-pp.mjs";import{useMutation as s}from"./useMutation-DmI3aZBl.mjs";import{useStream as at}from"./useStream-De5SDR6Y.mjs";import d from"./useSubscription-CC39EoMT.mjs";const ot={__lunoraRef:""},st={__lunoraRef:""},ct=[],it=[],kt=A=>{const{api:r,cancel:m,limit:g,onError:i,send:E,sendArgs:_,stream:v,threadKey:e}=A,T=g===void 0?{key:e}:{key:e,limit:g},{data:w,error:x}=d(r.agents.agentMessages,T,{onError:i}),{data:G,error:I}=d(r.agents.agentThread,{key:e},{onError:i}),{data:O,error:b}=d(r.agents.agentApprovalGrants,{key:e},{onError:i}),C=v===void 0?"skip":{key:e},{chunks:D}=at(v??st,C),j=s(E),q=s(m??ot),F=s(r.agents.agentResolveApproval),N=s(r.agents.agentRevokeApprovalGrant),K=s(r.agents.agentDeclineSecret),P=rt(),[Y,u]=nt([]),h=k(0),f=k(e);f.current!==e&&(f.current=e,u([]));const y=G,L=y?.status,c=y?.instanceId,a=w??ct,S=M(Y,a),U=R(a),$=S.length===0?a:[...a,...S.map((t,n)=>({content:t.content,optimistic:!0,role:"user",seq:U+1+n}))],z=a.filter(t=>t.role==="assistant").length,B=D.filter(t=>t.kind!=="progress"&&t.threadKey===e&&t.turn>=z).map(t=>t.text).join(""),{mutate:H}=j,{mutate:J}=q,{mutate:Q}=F,{mutate:V}=N,{mutate:W}=K,X=async(t,n)=>{const o=h.current;h.current+=1;const Z=R(a);u(p=>[...M(p,a),{content:t,id:o,maxDurableSeqAtSend:Z}]);try{await H({input:t,threadKey:e,..._,...n})}catch(p){throw u(tt=>tt.filter(et=>et.id!==o)),p}},l=async(t,n,o)=>{if(c===void 0)throw new Error(`useAgentChat: cannot ${t} — no in-flight run (thread has no instanceId)`);await Q({decision:t,instanceId:c,threadKey:e,toolCallId:n,...o===void 0?{}:{note:o}})};return{approvalGrants:O??it,approve:(t,n)=>l("approve",t,n),approveForThread:(t,n)=>l("approve_for_thread",t,n),cancel:async()=>{m===void 0||c===void 0||await J({instanceId:c,threadKey:e})},declineSecret:async t=>{await W({threadKey:e,toolCallId:t})},error:x??I??b,messages:$,reject:(t,n)=>l("reject",t,n),revokeGrant:async t=>{await V({threadKey:e,toolName:t})},send:X,status:L,streamingText:B,supplySecret:async(t,n)=>{await P.mutation(r.agents.agentSupplySecret,{secret:n,threadKey:e,toolCallId:t},{onlineOnly:!0})}}};export{kt as useAgentChat};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as o}from"react/compiler-runtime";import d from"./useSubscription-D9QkGhO3.mjs";const l=t=>{const e=o(5);let r;e[0]!==t.threadKey?(r={key:t.threadKey},e[0]=t.threadKey,e[1]=r):r=e[1];const{data:n,error:s}=d(t.api.agents.agentState,r),c=n;let a;return e[2]!==s||e[3]!==c?(a={error:s,state:c},e[2]=s,e[3]=c,e[4]=a):a=e[4],a};export{l as useAgentState};
2
+ import{c as o}from"react/compiler-runtime";import d from"./useSubscription-CC39EoMT.mjs";const l=t=>{const e=o(5);let r;e[0]!==t.threadKey?(r={key:t.threadKey},e[0]=t.threadKey,e[1]=r):r=e[1];const{data:n,error:s}=d(t.api.agents.agentState,r),c=n;let a;return e[2]!==s||e[3]!==c?(a={error:s,state:c},e[2]=s,e[3]=c,e[4]=a):a=e[4],a};export{l as useAgentState};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as C}from"react/compiler-runtime";import{useStream as y}from"./useStream-D8GB__4j.mjs";import _ from"./useSubscription-D9QkGhO3.mjs";const I={__lunoraRef:""},N=[],S={awaiting_approval:"awaiting-approval",awaiting_secret:"awaiting-secret"},k=o=>{const t=o.status===void 0?void 0:S[o.status];if(t!==void 0)return{seq:o.seq,type:t,...o.toolCallId===void 0?{}:{toolCallId:o.toolCallId},...o.toolName===void 0?{}:{toolName:o.toolName}}},q=o=>{if(o.role==="assistant"&&o.toolCalls)return o.toolCalls.map(r=>({input:r.input,seq:o.seq,toolCallId:r.id,toolName:r.name,type:"call"}));if(o.role!=="tool")return;const t=k(o);return t!==void 0?[t]:[{output:o.content,seq:o.seq,type:"result",...o.status==="approved"||o.status==="rejected"?{status:o.status}:{},...o.toolCallId===void 0?{}:{toolCallId:o.toolCallId},...o.toolName===void 0?{}:{toolName:o.toolName}}]},m=o=>{const t=C(12),{api:r,limit:n,stream:i,threadKey:l}=o;let a;t[0]!==n||t[1]!==l?(a=n===void 0?{key:l}:{key:l,limit:n},t[0]=n,t[1]=l,t[2]=a):a=t[2];const v=a,{data:f}=_(r.agents.agentMessages,v);let s;t[3]!==i||t[4]!==l?(s=i===void 0?"skip":{key:l},t[3]=i,t[4]=l,t[5]=s):s=t[5];const E=s,{chunks:p}=y(i??I,E),c=f??N;let e;if(t[6]!==p||t[7]!==c||t[8]!==l){e=c.flatMap(A);for(const d of p)d.kind==="progress"&&d.threadKey===l&&e.push({data:d.data,toolCallId:d.toolCallId,type:"progress"});t[6]=p,t[7]=c,t[8]=l,t[9]=e}else e=t[9];let u;return t[10]!==e?(u={events:e},t[10]=e,t[11]=u):u=t[11],u};function A(o){return q(o)??[]}export{m as useAgentToolEvents};
2
+ import{c as C}from"react/compiler-runtime";import{useStream as y}from"./useStream-De5SDR6Y.mjs";import _ from"./useSubscription-CC39EoMT.mjs";const I={__lunoraRef:""},N=[],S={awaiting_approval:"awaiting-approval",awaiting_secret:"awaiting-secret"},k=o=>{const t=o.status===void 0?void 0:S[o.status];if(t!==void 0)return{seq:o.seq,type:t,...o.toolCallId===void 0?{}:{toolCallId:o.toolCallId},...o.toolName===void 0?{}:{toolName:o.toolName}}},q=o=>{if(o.role==="assistant"&&o.toolCalls)return o.toolCalls.map(r=>({input:r.input,seq:o.seq,toolCallId:r.id,toolName:r.name,type:"call"}));if(o.role!=="tool")return;const t=k(o);return t!==void 0?[t]:[{output:o.content,seq:o.seq,type:"result",...o.status==="approved"||o.status==="rejected"?{status:o.status}:{},...o.toolCallId===void 0?{}:{toolCallId:o.toolCallId},...o.toolName===void 0?{}:{toolName:o.toolName}}]},m=o=>{const t=C(12),{api:r,limit:n,stream:i,threadKey:l}=o;let a;t[0]!==n||t[1]!==l?(a=n===void 0?{key:l}:{key:l,limit:n},t[0]=n,t[1]=l,t[2]=a):a=t[2];const v=a,{data:f}=_(r.agents.agentMessages,v);let s;t[3]!==i||t[4]!==l?(s=i===void 0?"skip":{key:l},t[3]=i,t[4]=l,t[5]=s):s=t[5];const E=s,{chunks:p}=y(i??I,E),c=f??N;let e;if(t[6]!==p||t[7]!==c||t[8]!==l){e=c.flatMap(A);for(const d of p)d.kind==="progress"&&d.threadKey===l&&e.push({data:d.data,toolCallId:d.toolCallId,type:"progress"});t[6]=p,t[7]=c,t[8]=l,t[9]=e}else e=t[9];let u;return t[10]!==e?(u={events:e},t[10]=e,t[11]=u):u=t[11],u};function A(o){return q(o)??[]}export{m as useAgentToolEvents};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as h}from"react/compiler-runtime";import{getIdentityStore as k}from"@lunora/client/auth";import{useSyncExternalStore as p}from"react";import{u as A}from"./lunora-provider-_WqSuvf9.mjs";const _=()=>{const t=h(13),e=A();let o;t[0]!==e?(o=k(e),t[0]=e,t[1]=o):o=t[1];const n=o;let s,r,u;t[2]!==e?(s=g=>e.onAuthTokenChange(g),r=()=>e.getAuthToken(),u=()=>e.getAuthToken(),t[2]=e,t[3]=s,t[4]=r,t[5]=u):(s=t[3],r=t[4],u=t[5]);const i=p(s,r,u),f=p(n.subscribe,n.getUser,T),m=p(n.subscribe,n.getStatus,b);let l;t[6]!==e?(l=g=>{e.setAuthToken(g)},t[6]=e,t[7]=l):l=t[7];const a=l;let c;return t[8]!==a||t[9]!==m||t[10]!==i||t[11]!==f?(c={setToken:a,status:m,token:i,user:f},t[8]=a,t[9]=m,t[10]=i,t[11]=f,t[12]=c):c=t[12],c};function T(){return null}function b(){return"loading"}export{_ as default};
2
+ import{c as h}from"react/compiler-runtime";import{getIdentityStore as k}from"@lunora/client/auth";import{useSyncExternalStore as p}from"react";import{u as A}from"./lunora-provider-CW9Gd-pp.mjs";const _=()=>{const t=h(13),e=A();let o;t[0]!==e?(o=k(e),t[0]=e,t[1]=o):o=t[1];const n=o;let s,r,u;t[2]!==e?(s=g=>e.onAuthTokenChange(g),r=()=>e.getAuthToken(),u=()=>e.getAuthToken(),t[2]=e,t[3]=s,t[4]=r,t[5]=u):(s=t[3],r=t[4],u=t[5]);const i=p(s,r,u),f=p(n.subscribe,n.getUser,T),m=p(n.subscribe,n.getStatus,b);let l;t[6]!==e?(l=g=>{e.setAuthToken(g)},t[6]=e,t[7]=l):l=t[7];const a=l;let c;return t[8]!==a||t[9]!==m||t[10]!==i||t[11]!==f?(c={setToken:a,status:m,token:i,user:f},t[8]=a,t[9]=m,t[10]=i,t[11]=f,t[12]=c):c=t[12],c};function T(){return null}function b(){return"loading"}export{_ as default};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as y}from"react/compiler-runtime";import{useMutation as z,useQuery as _,keepPreviousData as b}from"@tanstack/react-query";import{useState as U,useSyncExternalStore as D}from"react";import{u as A}from"./lunora-provider-_WqSuvf9.mjs";const E="lunora-react-admin-auth",F=50;function S(t,e,o,u={}){const{enabled:r=!0,pageSize:c=F}=u,[i,s]=U(c),l=D(m=>{const v=t.onAuthTokenChange(m),I=t.onIdentityChange(m);return()=>{v(),I()}},()=>t.currentIdentity(),()=>t.currentIdentity()),n=[E,l??"anon",...e,i],a=_({enabled:r,placeholderData:(m,v)=>v?.queryKey[1]===n[1]?b(m):void 0,queryFn:()=>o(i),queryKey:n,staleTime:0}),d=a.data?.rows,f=a.data?.total,p=f!==void 0&&d!==void 0&&d.length<f,h=()=>{p&&s(m=>m+c)},g=()=>{a.refetch().catch(()=>{})};return{data:d,error:a.error??void 0,hasMore:p,loadMore:h,loading:a.isLoading,refetch:g,total:f}}const q=t=>{const e=y(20);let o;e[0]!==t?(o=t===void 0?{}:t,e[0]=t,e[1]=o):o=e[1];const u=o,r=A(),{enabled:c,filterField:i,filterValue:s,pageSize:l,search:n,searchField:a,sortBy:d,sortDirection:f}=u;let p;e[2]!==i||e[3]!==s||e[4]!==n||e[5]!==a||e[6]!==d||e[7]!==f?(p=["users",{filterField:i,filterValue:s,search:n,searchField:a,sortBy:d,sortDirection:f}],e[2]=i,e[3]=s,e[4]=n,e[5]=a,e[6]=d,e[7]=f,e[8]=p):p=e[8];let h;e[9]!==r||e[10]!==i||e[11]!==s||e[12]!==n||e[13]!==a||e[14]!==d||e[15]!==f?(h=m=>r.listAuthUsers({filterField:i,filterValue:s,limit:m,search:n,searchField:a,sortBy:d,sortDirection:f}),e[9]=r,e[10]=i,e[11]=s,e[12]=n,e[13]=a,e[14]=d,e[15]=f,e[16]=h):h=e[16];let g;return e[17]!==c||e[18]!==l?(g={enabled:c,pageSize:l},e[17]=c,e[18]=l,e[19]=g):g=e[19],S(r,p,h,g)},M=t=>{const e=y(8);let o;e[0]!==t?(o=t===void 0?{}:t,e[0]=t,e[1]=o):o=e[1];const u=o,r=A(),{enabled:c,pageSize:i}=u;let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=["organizations"],e[2]=s):s=e[2];let l;e[3]!==r?(l=a=>r.listAuthOrganizations({limit:a}),e[3]=r,e[4]=l):l=e[4];let n;return e[5]!==c||e[6]!==i?(n={enabled:c,pageSize:i},e[5]=c,e[6]=i,e[7]=n):n=e[7],S(r,s,l,n)},k=t=>{const e=y(8);let o;e[0]!==t?(o=t===void 0?{}:t,e[0]=t,e[1]=o):o=e[1];const u=o,r=A(),{enabled:c,pageSize:i}=u;let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=["sign-up-invitations"],e[2]=s):s=e[2];let l;e[3]!==r?(l=a=>r.listAuthSignUpInvitations({limit:a}),e[3]=r,e[4]=l):l=e[4];let n;return e[5]!==c||e[6]!==i?(n={enabled:c,pageSize:i},e[5]=c,e[6]=i,e[7]=n):n=e[7],S(r,s,l,n)},K=t=>{const e=y(10);let o;e[0]!==t?(o=t===void 0?{}:t,e[0]=t,e[1]=o):o=e[1];const u=o,r=A(),{enabled:c,pageSize:i,userId:s}=u;let l;e[2]!==s?(l=["sessions",{userId:s}],e[2]=s,e[3]=l):l=e[3];let n;e[4]!==r||e[5]!==s?(n=d=>r.listAuthSessions({limit:d,userId:s}),e[4]=r,e[5]=s,e[6]=n):n=e[6];let a;return e[7]!==c||e[8]!==i?(a={enabled:c,pageSize:i},e[7]=c,e[8]=i,e[9]=a):a=e[9],S(r,l,n,a)},w=()=>{const t=y(10),e=A();let o;t[0]!==e?(o={mutationFn:a=>e.impersonateAuthUser({userId:a})},t[0]=e,t[1]=o):o=t[1];const u=z(o),{mutateAsync:r,reset:c}=u;let i;t[2]!==r?(i=a=>r(a),t[2]=r,t[3]=i):i=t[3];const s=i,l=u.error??void 0;let n;return t[4]!==s||t[5]!==u.data||t[6]!==u.isPending||t[7]!==c||t[8]!==l?(n={data:u.data,error:l,impersonate:s,pending:u.isPending,reset:c},t[4]=s,t[5]=u.data,t[6]=u.isPending,t[7]=c,t[8]=l,t[9]=n):n=t[9],n};export{K as useAuthSessions,q as useAuthUsers,w as useImpersonate,M as useOrganizations,k as useSignUpInvitations};
2
+ import{c as y}from"react/compiler-runtime";import{useMutation as z,useQuery as _,keepPreviousData as b}from"@tanstack/react-query";import{useState as U,useSyncExternalStore as D}from"react";import{u as A}from"./lunora-provider-CW9Gd-pp.mjs";const E="lunora-react-admin-auth",F=50;function S(t,e,o,u={}){const{enabled:r=!0,pageSize:c=F}=u,[i,s]=U(c),l=D(m=>{const v=t.onAuthTokenChange(m),I=t.onIdentityChange(m);return()=>{v(),I()}},()=>t.currentIdentity(),()=>t.currentIdentity()),n=[E,l??"anon",...e,i],a=_({enabled:r,placeholderData:(m,v)=>v?.queryKey[1]===n[1]?b(m):void 0,queryFn:()=>o(i),queryKey:n,staleTime:0}),d=a.data?.rows,f=a.data?.total,p=f!==void 0&&d!==void 0&&d.length<f,h=()=>{p&&s(m=>m+c)},g=()=>{a.refetch().catch(()=>{})};return{data:d,error:a.error??void 0,hasMore:p,loadMore:h,loading:a.isLoading,refetch:g,total:f}}const q=t=>{const e=y(20);let o;e[0]!==t?(o=t===void 0?{}:t,e[0]=t,e[1]=o):o=e[1];const u=o,r=A(),{enabled:c,filterField:i,filterValue:s,pageSize:l,search:n,searchField:a,sortBy:d,sortDirection:f}=u;let p;e[2]!==i||e[3]!==s||e[4]!==n||e[5]!==a||e[6]!==d||e[7]!==f?(p=["users",{filterField:i,filterValue:s,search:n,searchField:a,sortBy:d,sortDirection:f}],e[2]=i,e[3]=s,e[4]=n,e[5]=a,e[6]=d,e[7]=f,e[8]=p):p=e[8];let h;e[9]!==r||e[10]!==i||e[11]!==s||e[12]!==n||e[13]!==a||e[14]!==d||e[15]!==f?(h=m=>r.listAuthUsers({filterField:i,filterValue:s,limit:m,search:n,searchField:a,sortBy:d,sortDirection:f}),e[9]=r,e[10]=i,e[11]=s,e[12]=n,e[13]=a,e[14]=d,e[15]=f,e[16]=h):h=e[16];let g;return e[17]!==c||e[18]!==l?(g={enabled:c,pageSize:l},e[17]=c,e[18]=l,e[19]=g):g=e[19],S(r,p,h,g)},M=t=>{const e=y(8);let o;e[0]!==t?(o=t===void 0?{}:t,e[0]=t,e[1]=o):o=e[1];const u=o,r=A(),{enabled:c,pageSize:i}=u;let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=["organizations"],e[2]=s):s=e[2];let l;e[3]!==r?(l=a=>r.listAuthOrganizations({limit:a}),e[3]=r,e[4]=l):l=e[4];let n;return e[5]!==c||e[6]!==i?(n={enabled:c,pageSize:i},e[5]=c,e[6]=i,e[7]=n):n=e[7],S(r,s,l,n)},k=t=>{const e=y(8);let o;e[0]!==t?(o=t===void 0?{}:t,e[0]=t,e[1]=o):o=e[1];const u=o,r=A(),{enabled:c,pageSize:i}=u;let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=["sign-up-invitations"],e[2]=s):s=e[2];let l;e[3]!==r?(l=a=>r.listAuthSignUpInvitations({limit:a}),e[3]=r,e[4]=l):l=e[4];let n;return e[5]!==c||e[6]!==i?(n={enabled:c,pageSize:i},e[5]=c,e[6]=i,e[7]=n):n=e[7],S(r,s,l,n)},K=t=>{const e=y(10);let o;e[0]!==t?(o=t===void 0?{}:t,e[0]=t,e[1]=o):o=e[1];const u=o,r=A(),{enabled:c,pageSize:i,userId:s}=u;let l;e[2]!==s?(l=["sessions",{userId:s}],e[2]=s,e[3]=l):l=e[3];let n;e[4]!==r||e[5]!==s?(n=d=>r.listAuthSessions({limit:d,userId:s}),e[4]=r,e[5]=s,e[6]=n):n=e[6];let a;return e[7]!==c||e[8]!==i?(a={enabled:c,pageSize:i},e[7]=c,e[8]=i,e[9]=a):a=e[9],S(r,l,n,a)},w=()=>{const t=y(10),e=A();let o;t[0]!==e?(o={mutationFn:a=>e.impersonateAuthUser({userId:a})},t[0]=e,t[1]=o):o=t[1];const u=z(o),{mutateAsync:r,reset:c}=u;let i;t[2]!==r?(i=a=>r(a),t[2]=r,t[3]=i):i=t[3];const s=i,l=u.error??void 0;let n;return t[4]!==s||t[5]!==u.data||t[6]!==u.isPending||t[7]!==c||t[8]!==l?(n={data:u.data,error:l,impersonate:s,pending:u.isPending,reset:c},t[4]=s,t[5]=u.data,t[6]=u.isPending,t[7]=c,t[8]=l,t[9]=n):n=t[9],n};export{K as useAuthSessions,q as useAuthUsers,w as useImpersonate,M as useOrganizations,k as useSignUpInvitations};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as u}from"react/compiler-runtime";import{isAuthenticatedStatus as r,isLoadingStatus as a}from"@lunora/client/auth";import n from"./useAuth-CpGKVRsv.mjs";const m=()=>{const t=u(7),{status:e}=n();let s;t[0]!==e?(s=r(e),t[0]=e,t[1]=s):s=t[1];let i;t[2]!==e?(i=a(e),t[2]=e,t[3]=i):i=t[3];let o;return t[4]!==s||t[5]!==i?(o={isAuthenticated:s,isLoading:i},t[4]=s,t[5]=i,t[6]=o):o=t[6],o};export{m as useAuthState};
2
+ import{c as u}from"react/compiler-runtime";import{isAuthenticatedStatus as r,isLoadingStatus as a}from"@lunora/client/auth";import n from"./useAuth-Do03WzEi.mjs";const m=()=>{const t=u(7),{status:e}=n();let s;t[0]!==e?(s=r(e),t[0]=e,t[1]=s):s=t[1];let i;t[2]!==e?(i=a(e),t[2]=e,t[3]=i):i=t[3];let o;return t[4]!==s||t[5]!==i?(o={isAuthenticated:s,isLoading:i},t[4]=s,t[5]=i,t[6]=o):o=t[6],o};export{m as useAuthState};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{useCallback as u,useSyncExternalStore as l}from"react";import{u as c}from"./lunora-provider-_WqSuvf9.mjs";const y=e=>{const t=c(),n=u(s=>t.subscribeClientQuery(e,()=>{s()}),[t,e.key]),r=l(n,()=>t.getClientQuery(e),()=>t.getClientQuery(e)),o=u(s=>{t.setClientQuery(e,s)},[t,e]);return[r,o]};export{y as default};
2
+ import{useCallback as u,useSyncExternalStore as l}from"react";import{u as c}from"./lunora-provider-CW9Gd-pp.mjs";const y=e=>{const t=c(),n=u(s=>t.subscribeClientQuery(e,()=>{s()}),[t,e.key]),r=l(n,()=>t.getClientQuery(e),()=>t.getClientQuery(e)),o=u(s=>{t.setClientQuery(e,s)},[t,e]);return[r,o]};export{y as default};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as r}from"react/compiler-runtime";import{useSyncExternalStore as u}from"react";import{u as a}from"./lunora-provider-_WqSuvf9.mjs";const S=()=>{const t=r(4),n=a();let o,e,s;return t[0]!==n?(o=c=>n.onConnectionStatus(()=>{c()}),e=()=>n.connectionStatus(),s=()=>n.connectionStatus(),t[0]=n,t[1]=o,t[2]=e,t[3]=s):(o=t[1],e=t[2],s=t[3]),u(o,e,s)};export{S as default};
2
+ import{c as r}from"react/compiler-runtime";import{useSyncExternalStore as u}from"react";import{u as a}from"./lunora-provider-CW9Gd-pp.mjs";const S=()=>{const t=r(4),n=a();let o,e,s;return t[0]!==n?(o=c=>n.onConnectionStatus(()=>{c()}),e=()=>n.connectionStatus(),s=()=>n.connectionStatus(),t[0]=n,t[1]=o,t[2]=e,t[3]=s):(o=t[1],e=t[2],s=t[3]),u(o,e,s)};export{S as default};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{useState as _,useRef as i,useEffect as b}from"react";import{u as d}from"./lunora-provider-_WqSuvf9.mjs";import{stableStringify as K}from"@lunora/wire";const g="__lunora_flags__:eval",m=t=>{const e=typeof t;return e==="boolean"||e==="number"||e==="string"?e:"object"},v={__lunoraRef:g},F=(t,e,n)=>{try{return t.subscribe(v,{default:e.default,key:e.key,type:m(e.default)},s=>{n(s)},{onError:()=>{n(e.default)}})}catch{return()=>{}}},S=(t,e)=>{const n=d(),[s,r]=_(e),o=m(e),u=`${t}::${o}`,f=i(u);f.current!==u&&(f.current=u,r(e));const l=i(e);return b(()=>{l.current=e}),b(()=>{let a=!1;const c=l.current;r(c);const p=F(n,{default:c,key:t},y=>{a||r(y)});return()=>{a=!0,p()}},[n,t,o]),s},h=t=>{const e=d(),[n,s]=_(t),r=K(t),o=i(r);o.current!==r&&(o.current=r,s(t));const u=i(t);return b(()=>{u.current=t}),b(()=>{let f=!1;const l=u.current;s(l);const a=[];for(const[c,p]of Object.entries(l))a.push(F(e,{default:p,key:c},y=>{f||s(R=>({...R,[c]:y}))}));return()=>{f=!0;for(const c of a)c()}},[e,r]),n};export{S as useFlag,h as useFlags};
2
+ import{useState as _,useRef as i,useEffect as b}from"react";import{u as d}from"./lunora-provider-CW9Gd-pp.mjs";import{stableStringify as K}from"@lunora/wire";const g="__lunora_flags__:eval",m=t=>{const e=typeof t;return e==="boolean"||e==="number"||e==="string"?e:"object"},v={__lunoraRef:g},F=(t,e,n)=>{try{return t.subscribe(v,{default:e.default,key:e.key,type:m(e.default)},s=>{n(s)},{onError:()=>{n(e.default)}})}catch{return()=>{}}},S=(t,e)=>{const n=d(),[s,r]=_(e),o=m(e),u=`${t}::${o}`,f=i(u);f.current!==u&&(f.current=u,r(e));const l=i(e);return b(()=>{l.current=e}),b(()=>{let a=!1;const c=l.current;r(c);const p=F(n,{default:c,key:t},y=>{a||r(y)});return()=>{a=!0,p()}},[n,t,o]),s},h=t=>{const e=d(),[n,s]=_(t),r=K(t),o=i(r);o.current!==r&&(o.current=r,s(t));const u=i(t);return b(()=>{u.current=t}),b(()=>{let f=!1;const l=u.current;s(l);const a=[];for(const[c,p]of Object.entries(l))a.push(F(e,{default:p,key:c},y=>{f||s(R=>({...R,[c]:y}))}));return()=>{f=!0;for(const c of a)c()}},[e,r]),n};export{S as useFlag,h as useFlags};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as S}from"react/compiler-runtime";import{useReducer as _,useRef as v,useEffect as R}from"react";import{u as b}from"./lunora-provider-_WqSuvf9.mjs";import{s as z,c as E}from"./stream-state-abygFxmy.mjs";import{stableWireKey as H}from"@lunora/wire";const w=(t,c,n)=>{const e=S(24);let m;e[0]!==n?(m=n===void 0?{}:n,e[0]=n,e[1]=m):m=e[1];const o=m,f=b();let a;e[2]===Symbol.for("react.memo_cache_sentinel")?(a={chunks:[],error:void 0,status:"idle"},e[2]=a):a=e[2];const[s,i]=_(z,a),r=c==="skip";let u;e[3]!==c||e[4]!==r?(u=r?"skip":H(c),e[3]=c,e[4]=r,e[5]=u):u=e[5];const k=u,x=v(void 0);let l;e[6]!==c||e[7]!==f||e[8]!==o.maxBuffer||e[9]!==t||e[10]!==r?(l=()=>{if(r)return i({type:"reset"}),K;i({type:"reset"}),i({type:"start"});const{cancel:B,cleanup:y}=E(f.httpStream(t,c,{maxBuffer:o.maxBuffer}),i);return x.current=B,()=>{y(),x.current=void 0}},e[6]=c,e[7]=f,e[8]=o.maxBuffer,e[9]=t,e[10]=r,e[11]=l):l=e[11];let p;e[12]!==f||e[13]!==o.maxBuffer||e[14]!==t.method||e[15]!==t.path||e[16]!==k||e[17]!==r?(p=[f,t.method,t.path,k,r,o.maxBuffer],e[12]=f,e[13]=o.maxBuffer,e[14]=t.method,e[15]=t.path,e[16]=k,e[17]=r,e[18]=p):p=e[18],R(l,p);let h;e[19]===Symbol.for("react.memo_cache_sentinel")?(h=()=>{x.current?.()},e[19]=h):h=e[19];let d;return e[20]!==s.chunks||e[21]!==s.error||e[22]!==s.status?(d={cancel:h,chunks:s.chunks,error:s.error,status:s.status},e[20]=s.chunks,e[21]=s.error,e[22]=s.status,e[23]=d):d=e[23],d};function K(){}export{w as useHttpStream};
2
+ import{c as S}from"react/compiler-runtime";import{useReducer as _,useRef as v,useEffect as R}from"react";import{u as b}from"./lunora-provider-CW9Gd-pp.mjs";import{s as z,c as E}from"./stream-state-abygFxmy.mjs";import{stableWireKey as H}from"@lunora/wire";const w=(t,c,n)=>{const e=S(24);let m;e[0]!==n?(m=n===void 0?{}:n,e[0]=n,e[1]=m):m=e[1];const o=m,f=b();let a;e[2]===Symbol.for("react.memo_cache_sentinel")?(a={chunks:[],error:void 0,status:"idle"},e[2]=a):a=e[2];const[s,i]=_(z,a),r=c==="skip";let u;e[3]!==c||e[4]!==r?(u=r?"skip":H(c),e[3]=c,e[4]=r,e[5]=u):u=e[5];const k=u,x=v(void 0);let l;e[6]!==c||e[7]!==f||e[8]!==o.maxBuffer||e[9]!==t||e[10]!==r?(l=()=>{if(r)return i({type:"reset"}),K;i({type:"reset"}),i({type:"start"});const{cancel:B,cleanup:y}=E(f.httpStream(t,c,{maxBuffer:o.maxBuffer}),i);return x.current=B,()=>{y(),x.current=void 0}},e[6]=c,e[7]=f,e[8]=o.maxBuffer,e[9]=t,e[10]=r,e[11]=l):l=e[11];let p;e[12]!==f||e[13]!==o.maxBuffer||e[14]!==t.method||e[15]!==t.path||e[16]!==k||e[17]!==r?(p=[f,t.method,t.path,k,r,o.maxBuffer],e[12]=f,e[13]=o.maxBuffer,e[14]=t.method,e[15]=t.path,e[16]=k,e[17]=r,e[18]=p):p=e[18],R(l,p);let h;e[19]===Symbol.for("react.memo_cache_sentinel")?(h=()=>{x.current?.()},e[19]=h):h=e[19];let d;return e[20]!==s.chunks||e[21]!==s.error||e[22]!==s.status?(d={cancel:h,chunks:s.chunks,error:s.error,status:s.status},e[20]=s.chunks,e[21]=s.error,e[22]=s.status,e[23]=d):d=e[23],d};function K(){}export{w as useHttpStream};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as M}from"react/compiler-runtime";import{useRef as R,useEffect as y}from"react";import{u as C}from"./use-paginated-core-Bf9xLRSk.mjs";const v=(x,c,N)=>{const e=M(16),{initialNumItems:s}=N,{error:u,loadMore:o,pageResults:m,status:a}=C(x,c==="skip"?"skip":c,N),P=c==="skip";let t;if(e[0]!==m){t=[];for(const f of m)f&&t.push(f.page);e[0]=m,e[1]=t}else t=e[1];let i;e[2]!==s||e[3]!==o?(i={defaultNumItems:s,loadMore:o},e[2]=s,e[3]=o,e[4]=i):i=e[4];const h=R(i);let n;e[5]!==s||e[6]!==o?(n=()=>{h.current={defaultNumItems:s,loadMore:o}},e[5]=s,e[6]=o,e[7]=n):n=e[7],y(n);let r;e[8]===Symbol.for("react.memo_cache_sentinel")?(r=f=>{const{defaultNumItems:k,loadMore:L}=h.current;L(f??k)},e[8]=r):r=e[8];const I=r,d=a==="CanLoadMore",p=!P&&a==="LoadingMore",g=!P&&a==="LoadingFirstPage";let l;return e[9]!==u||e[10]!==t||e[11]!==a||e[12]!==d||e[13]!==p||e[14]!==g?(l={error:u,fetchNextPage:I,hasNextPage:d,isFetchingNextPage:p,isLoading:g,pages:t,status:a},e[9]=u,e[10]=t,e[11]=a,e[12]=d,e[13]=p,e[14]=g,e[15]=l):l=e[15],l};export{v as default};
2
+ import{c as M}from"react/compiler-runtime";import{useRef as R,useEffect as y}from"react";import{u as C}from"./use-paginated-core-D9QnfDFs.mjs";const v=(x,c,N)=>{const e=M(16),{initialNumItems:s}=N,{error:u,loadMore:o,pageResults:m,status:a}=C(x,c==="skip"?"skip":c,N),P=c==="skip";let t;if(e[0]!==m){t=[];for(const f of m)f&&t.push(f.page);e[0]=m,e[1]=t}else t=e[1];let i;e[2]!==s||e[3]!==o?(i={defaultNumItems:s,loadMore:o},e[2]=s,e[3]=o,e[4]=i):i=e[4];const h=R(i);let n;e[5]!==s||e[6]!==o?(n=()=>{h.current={defaultNumItems:s,loadMore:o}},e[5]=s,e[6]=o,e[7]=n):n=e[7],y(n);let r;e[8]===Symbol.for("react.memo_cache_sentinel")?(r=f=>{const{defaultNumItems:k,loadMore:L}=h.current;L(f??k)},e[8]=r):r=e[8];const I=r,d=a==="CanLoadMore",p=!P&&a==="LoadingMore",g=!P&&a==="LoadingFirstPage";let l;return e[9]!==u||e[10]!==t||e[11]!==a||e[12]!==d||e[13]!==p||e[14]!==g?(l={error:u,fetchNextPage:I,hasNextPage:d,isFetchingNextPage:p,isLoading:g,pages:t,status:a},e[9]=u,e[10]=t,e[11]=a,e[12]=d,e[13]=p,e[14]=g,e[15]=l):l=e[15],l};export{v as default};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as D}from"react/compiler-runtime";import{liveTopicSubscription as R,subscribeLiveTopic as C}from"@lunora/client";import{stableWireKey as M}from"@lunora/wire";import{useState as W,useRef as $,useEffect as y}from"react";import{u as g}from"./lunora-provider-_WqSuvf9.mjs";function F(b,f){const t=D(8),d=f===void 0?{}:f,o=R(g(),b,d),{headers:k,maxDelayMs:T,retryDelay:K,sessionKey:L,topic:S,url:h,withCredentials:w}=o,e=M({headers:k,maxDelayMs:T,retryDelay:K,sessionKey:L,topic:S,url:h,withCredentials:w}),[p,l]=W(),m=p?.key===e?p:void 0,s=$(o);let n;t[0]!==o?(n=()=>{s.current=o},t[0]=o,t[1]=n):n=t[1],y(n);let i,c;t[2]!==e?(i=()=>{const x=C({...s.current,onError:r=>{l(E=>({error:r,key:e,lastEvent:E?.key===e?E.lastEvent:void 0})),s.current.onError?.(r)},onEvent:r=>{l({error:void 0,key:e,lastEvent:r}),s.current.onEvent?.(r)}});return()=>{x(),l(void 0)}},c=[e],t[2]=e,t[3]=i,t[4]=c):(i=t[3],c=t[4]),y(i,c);const a=m?.error,v=m?.lastEvent;let u;return t[5]!==a||t[6]!==v?(u={error:a,lastEvent:v},t[5]=a,t[6]=v,t[7]=u):u=t[7],u}export{F as useLiveTopic};
2
+ import{c as D}from"react/compiler-runtime";import{liveTopicSubscription as R,subscribeLiveTopic as C}from"@lunora/client";import{stableWireKey as M}from"@lunora/wire";import{useState as W,useRef as $,useEffect as y}from"react";import{u as g}from"./lunora-provider-CW9Gd-pp.mjs";function F(b,f){const t=D(8),d=f===void 0?{}:f,o=R(g(),b,d),{headers:k,maxDelayMs:T,retryDelay:K,sessionKey:L,topic:S,url:h,withCredentials:w}=o,e=M({headers:k,maxDelayMs:T,retryDelay:K,sessionKey:L,topic:S,url:h,withCredentials:w}),[p,l]=W(),m=p?.key===e?p:void 0,s=$(o);let n;t[0]!==o?(n=()=>{s.current=o},t[0]=o,t[1]=n):n=t[1],y(n);let i,c;t[2]!==e?(i=()=>{const x=C({...s.current,onError:r=>{l(E=>({error:r,key:e,lastEvent:E?.key===e?E.lastEvent:void 0})),s.current.onError?.(r)},onEvent:r=>{l({error:void 0,key:e,lastEvent:r}),s.current.onEvent?.(r)}});return()=>{x(),l(void 0)}},c=[e],t[2]=e,t[3]=i,t[4]=c):(i=t[3],c=t[4]),y(i,c);const a=m?.error,v=m?.lastEvent;let u;return t[5]!==a||t[6]!==v?(u={error:a,lastEvent:v},t[5]=a,t[6]=v,t[7]=u):u=t[7],u}export{F as useLiveTopic};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{useQueryClient as k,useMutation as v,onlineManager as g}from"@tanstack/react-query";import{useRef as A,useState as P,useCallback as O}from"react";import{u as Q}from"./lunora-provider-_WqSuvf9.mjs";const R=async()=>new Promise(n=>{if(g.isOnline()){n();return}const r=g.subscribe(u=>{u&&(r(),n())})}),x=n=>{const r=Q(),u=k(),a=n.sensitive===!0,c=A(0),[l,p]=P(!1),b=v({mutationFn:async({args:e,options:t})=>(!(a||t?.onlineOnly===!0)&&!r.canQueueOffline(t?.shardKey)&&await R(),r.mutation(n,e,t)),networkMode:"always",...a?{gcTime:0}:{},retry:0,onMutate:()=>{c.current+=1,p(!0)},onSettled:(e,t,o)=>{if(c.current-=1,p(c.current>0),a||o.options?.onlineOnly===!0){const i=u.getMutationCache();for(const h of i.findAll({predicate:C=>C.state.variables===o}))i.remove(h)}}}),{data:m,error:d,isError:f,mutateAsync:s,reset:y}=b,w=O((e,t)=>s({args:e,options:t}),[s]),M=O(e=>({data:m,error:d,isError:f,mutate:(o,i)=>s({args:o,options:{optimisticUpdate:e,...i}}),pending:l,reset:y,withOptimisticUpdate:M}),[s,m,d,f,l,y]);return{data:m,error:d,isError:f,mutate:w,pending:l,reset:y,withOptimisticUpdate:M}};export{x as useMutation};
2
+ import{useQueryClient as k,useMutation as v,onlineManager as g}from"@tanstack/react-query";import{useRef as A,useState as P,useCallback as O}from"react";import{u as Q}from"./lunora-provider-CW9Gd-pp.mjs";const R=async()=>new Promise(n=>{if(g.isOnline()){n();return}const r=g.subscribe(u=>{u&&(r(),n())})}),x=n=>{const r=Q(),u=k(),a=n.sensitive===!0,c=A(0),[l,p]=P(!1),b=v({mutationFn:async({args:e,options:t})=>(!(a||t?.onlineOnly===!0)&&!r.canQueueOffline(t?.shardKey)&&await R(),r.mutation(n,e,t)),networkMode:"always",...a?{gcTime:0}:{},retry:0,onMutate:()=>{c.current+=1,p(!0)},onSettled:(e,t,o)=>{if(c.current-=1,p(c.current>0),a||o.options?.onlineOnly===!0){const i=u.getMutationCache();for(const h of i.findAll({predicate:C=>C.state.variables===o}))i.remove(h)}}}),{data:m,error:d,isError:f,mutateAsync:s,reset:y}=b,w=O((e,t)=>s({args:e,options:t}),[s]),M=O(e=>({data:m,error:d,isError:f,mutate:(o,i)=>s({args:o,options:{optimisticUpdate:e,...i}}),pending:l,reset:y,withOptimisticUpdate:M}),[s,m,d,f,l,y]);return{data:m,error:d,isError:f,mutate:w,pending:l,reset:y,withOptimisticUpdate:M}};export{x as useMutation};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c}from"react/compiler-runtime";import{u as f}from"./use-paginated-core-Bf9xLRSk.mjs";const L=(d,i,l)=>{const e=c(8),{error:r,loadMore:p,pageResults:n,status:t}=f(d,i==="skip"?"skip":i,l);let s;if(e[0]!==n){s=[];for(const u of n)u&&s.push(...u.page);e[0]=n,e[1]=s}else s=e[1];const a=!(i==="skip")&&(t==="LoadingFirstPage"||t==="LoadingMore");let o;return e[2]!==r||e[3]!==p||e[4]!==s||e[5]!==t||e[6]!==a?(o={error:r,isLoading:a,loadMore:p,results:s,status:t},e[2]=r,e[3]=p,e[4]=s,e[5]=t,e[6]=a,e[7]=o):o=e[7],o};export{L as usePaginatedQuery};
2
+ import{c}from"react/compiler-runtime";import{u as f}from"./use-paginated-core-D9QnfDFs.mjs";const L=(d,i,l)=>{const e=c(8),{error:r,loadMore:p,pageResults:n,status:t}=f(d,i==="skip"?"skip":i,l);let s;if(e[0]!==n){s=[];for(const u of n)u&&s.push(...u.page);e[0]=n,e[1]=s}else s=e[1];const a=!(i==="skip")&&(t==="LoadingFirstPage"||t==="LoadingMore");let o;return e[2]!==r||e[3]!==p||e[4]!==s||e[5]!==t||e[6]!==a?(o={error:r,isLoading:a,loadMore:p,results:s,status:t},e[2]=r,e[3]=p,e[4]=s,e[5]=t,e[6]=a,e[7]=o):o=e[7],o};export{L as usePaginatedQuery};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{useMemo as _,useState as w,useRef as l,useEffect as u,useCallback as E}from"react";import{u as D}from"./lunora-provider-CW9Gd-pp.mjs";const V=e=>{if(!Number.isFinite(e)||e<=0)throw new RangeError(`presence intervalMs must be a positive number, got ${String(e)}`)},A=()=>{if(typeof crypto<"u"){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();if(typeof crypto.getRandomValues=="function"){const e=crypto.getRandomValues(new Uint8Array(16));return Array.from(e,r=>r.toString(16).padStart(2,"0")).join("")}}throw new Error("randomSessionId: no Web Crypto available — a session id needs crypto.randomUUID or crypto.getRandomValues")},C=1e4,P=(e,r)=>{const t=D(),{heartbeat:g,intervalMs:y=C,listPresent:m,shardKey:s}=r;V(y);const o=_(()=>r.sessionId??A(),[r.sessionId]),d=JSON.stringify([m.__lunoraRef,e,s??""]),[b,p]=w(),h=b?.client===t&&b.key===d?b:void 0,R=l(r.onError);u(()=>{R.current=r.onError});const v=l(r.data),I=l(!1),S=l({client:t,heartbeat:g,roomId:e,sessionId:o,shardKey:s});u(()=>{S.current={client:t,heartbeat:g,roomId:e,sessionId:o,shardKey:s}});const i=E(()=>{const{client:n,heartbeat:c,roomId:a,sessionId:f,shardKey:k}=S.current,L={roomId:a,sessionId:f,...v.current===void 0?{}:{data:v.current}};n.mutation(c,L,{shardKey:k}).catch(()=>{})},[]),U=E(n=>{v.current=n,I.current&&i()},[i]);return u(()=>(I.current=!0,()=>{I.current=!1}),[]),u(()=>{i();const n=setInterval(i,y),c=()=>{typeof document<"u"&&document.visibilityState==="visible"&&i()};return typeof document<"u"&&document.addEventListener("visibilitychange",c),()=>{clearInterval(n),typeof document<"u"&&document.removeEventListener("visibilitychange",c)}},[i,y,t,e,o,s]),u(()=>t.acquireConnectionContext({roomId:e,sessionId:o},{shardKey:s}),[t,e,o,s]),u(()=>{let n=!1;const c=t.subscribe(m,{roomId:e},a=>{n||p({client:t,error:void 0,key:d,present:a})},{onError:a=>{n||p(f=>({client:t,error:a,key:d,present:f?.client===t&&f.key===d?f.present:void 0})),R.current?.(a)},shardKey:s});return()=>{n=!0,c(),p(void 0)}},[t,m.__lunoraRef,e,d,s]),{error:h?.error,present:h?.present,sessionId:o,setData:U}};export{P as usePresence};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{c as k}from"react/compiler-runtime";import{useQueryClient as q,useQuery as E}from"@tanstack/react-query";import{useState as F,useEffect as N}from"react";import{u as T,g as V}from"./lunora-provider-CW9Gd-pp.mjs";import{u as A}from"./query-core-CqnQ_-E5.mjs";import{a as C}from"./query-key-BysXrewF.mjs";import{stableWireKey as D}from"@lunora/wire";const P=(s,K,R)=>{const e=k(26),v=R===void 0?{}:R,t=T(),y=q(),{onError:Q,shardKey:r}=v,u=K==="skip",o=u?{}:K,l=D(o),a=C(s.__lunoraRef,l,r),[n,b]=F(t.isReady);let d,c;e[0]!==t||e[1]!==n?(d=()=>{n||t.whenReady().then(()=>{b(!0)})},c=[t,n],e[0]=t,e[1]=n,e[2]=d,e[3]=c):(d=e[2],c=e[3]),N(d,c);let m;if(!u){const h=t.peekHydratedQueryByKey(s.__lunoraRef,l,r);m=h===void 0?t.peekActiveQuerySnapshot(s.__lunoraRef,o,r).value:h}const g=!u&&n;let i;e[4]!==o||e[5]!==t||e[6]!==s||e[7]!==y||e[8]!==a||e[9]!==r?(i=async h=>{const{signal:S}=h;return V(t).liveValue(y,a,S,{fetch:async()=>t.query(s,o,{shardKey:r}),shardKey:r})},e[4]=o,e[5]=t,e[6]=s,e[7]=y,e[8]=a,e[9]=r,e[10]=i):i=e[10];let p;e[11]!==m||e[12]!==a||e[13]!==g||e[14]!==i?(p={enabled:g,initialData:m,queryFn:i,queryKey:a,staleTime:Number.POSITIVE_INFINITY},e[11]=m,e[12]=a,e[13]=g,e[14]=i,e[15]=p):p=e[15];const{data:I}=E(p);let f;return e[16]!==l||e[17]!==o||e[18]!==t||e[19]!==s||e[20]!==Q||e[21]!==y||e[22]!==a||e[23]!==r||e[24]!==u?(f={args:o,argsKey:l,client:t,function_:s,onError:Q,queryClient:y,queryKey:a,shardKey:r,skipped:u},e[16]=l,e[17]=o,e[18]=t,e[19]=s,e[20]=Q,e[21]=y,e[22]=a,e[23]=r,e[24]=u,e[25]=f):f=e[25],A(f),u?void 0:I};export{P as default};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as K}from"react/compiler-runtime";import{useReducer as B,useRef as R,useEffect as _}from"react";import{u as v}from"./lunora-provider-_WqSuvf9.mjs";import{s as S,c as z}from"./stream-state-abygFxmy.mjs";import{stableWireKey as E}from"@lunora/wire";const A=(u,a,l)=>{const e=K(27);let c;e[0]!==l?(c=l===void 0?{}:l,e[0]=l,e[1]=c):c=e[1];const r=c,o=v();let f;e[2]===Symbol.for("react.memo_cache_sentinel")?(f={chunks:[],error:void 0,status:"idle"},e[2]=f):f=e[2];const[t,m]=B(S,f),s=a==="skip";let n;e[3]!==a||e[4]!==s?(n=s?"skip":E(a),e[3]=a,e[4]=s,e[5]=n):n=e[5];const y=n,b=R(void 0);let i;e[6]!==a||e[7]!==o||e[8]!==u||e[9]!==r.durable||e[10]!==r.maxBuffer||e[11]!==r.shardKey||e[12]!==s?(i=()=>{if(s)return m({type:"reset"}),L;m({type:"reset"}),m({type:"start"});const{cancel:k,cleanup:x}=z(o.stream(u,a,{durable:r.durable,maxBuffer:r.maxBuffer,shardKey:r.shardKey}),m);return b.current=k,()=>{x(),b.current=void 0}},e[6]=a,e[7]=o,e[8]=u,e[9]=r.durable,e[10]=r.maxBuffer,e[11]=r.shardKey,e[12]=s,e[13]=i):i=e[13];let d;e[14]!==o||e[15]!==u.__lunoraRef||e[16]!==r.durable||e[17]!==r.maxBuffer||e[18]!==r.shardKey||e[19]!==y||e[20]!==s?(d=[o,u.__lunoraRef,y,s,r.shardKey,r.maxBuffer,r.durable],e[14]=o,e[15]=u.__lunoraRef,e[16]=r.durable,e[17]=r.maxBuffer,e[18]=r.shardKey,e[19]=y,e[20]=s,e[21]=d):d=e[21],_(i,d);let p;e[22]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{b.current?.()},e[22]=p):p=e[22];let h;return e[23]!==t.chunks||e[24]!==t.error||e[25]!==t.status?(h={cancel:p,chunks:t.chunks,error:t.error,status:t.status},e[23]=t.chunks,e[24]=t.error,e[25]=t.status,e[26]=h):h=e[26],h};function L(){}export{A as useStream};
2
+ import{c as K}from"react/compiler-runtime";import{useReducer as B,useRef as R,useEffect as _}from"react";import{u as v}from"./lunora-provider-CW9Gd-pp.mjs";import{s as S,c as z}from"./stream-state-abygFxmy.mjs";import{stableWireKey as E}from"@lunora/wire";const A=(u,a,l)=>{const e=K(27);let c;e[0]!==l?(c=l===void 0?{}:l,e[0]=l,e[1]=c):c=e[1];const r=c,o=v();let f;e[2]===Symbol.for("react.memo_cache_sentinel")?(f={chunks:[],error:void 0,status:"idle"},e[2]=f):f=e[2];const[t,m]=B(S,f),s=a==="skip";let n;e[3]!==a||e[4]!==s?(n=s?"skip":E(a),e[3]=a,e[4]=s,e[5]=n):n=e[5];const y=n,b=R(void 0);let i;e[6]!==a||e[7]!==o||e[8]!==u||e[9]!==r.durable||e[10]!==r.maxBuffer||e[11]!==r.shardKey||e[12]!==s?(i=()=>{if(s)return m({type:"reset"}),L;m({type:"reset"}),m({type:"start"});const{cancel:k,cleanup:x}=z(o.stream(u,a,{durable:r.durable,maxBuffer:r.maxBuffer,shardKey:r.shardKey}),m);return b.current=k,()=>{x(),b.current=void 0}},e[6]=a,e[7]=o,e[8]=u,e[9]=r.durable,e[10]=r.maxBuffer,e[11]=r.shardKey,e[12]=s,e[13]=i):i=e[13];let d;e[14]!==o||e[15]!==u.__lunoraRef||e[16]!==r.durable||e[17]!==r.maxBuffer||e[18]!==r.shardKey||e[19]!==y||e[20]!==s?(d=[o,u.__lunoraRef,y,s,r.shardKey,r.maxBuffer,r.durable],e[14]=o,e[15]=u.__lunoraRef,e[16]=r.durable,e[17]=r.maxBuffer,e[18]=r.shardKey,e[19]=y,e[20]=s,e[21]=d):d=e[21],_(i,d);let p;e[22]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{b.current?.()},e[22]=p):p=e[22];let h;return e[23]!==t.chunks||e[24]!==t.error||e[25]!==t.status?(h={cancel:p,chunks:t.chunks,error:t.error,status:t.status},e[23]=t.chunks,e[24]=t.error,e[25]=t.status,e[26]=h):h=e[26],h};function L(){}export{A as useStream};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{c as O}from"react/compiler-runtime";import{createQuerySubscription as j}from"@lunora/client/query";import{LunoraError as L}from"@lunora/errors";import{useState as M,useRef as R,useEffect as E}from"react";import{u as q}from"./lunora-provider-_WqSuvf9.mjs";import{stableWireKey as x}from"@lunora/wire";const A=Object.freeze({data:void 0,error:void 0}),W=(t,n,b)=>{const e=O(20),r=b===void 0?{}:b,o=q(),a=n==="skip",c=a?"skip":x(n),i=JSON.stringify([t.__lunoraRef,c,r.shardKey??""]),[y,p]=M(void 0),v=R(r.onError);let u;e[0]!==r.onError?(u=()=>{v.current=r.onError},e[0]=r.onError,e[1]=u):u=e[1],E(u);let d;e[2]!==n||e[3]!==t?(d={args:n,fn:t},e[2]=n,e[3]=t,e[4]=d):d=e[4];const K=R(d);let l;e[5]!==n||e[6]!==t?(l=()=>{K.current={args:n,fn:t}},e[5]=n,e[6]=t,e[7]=l):l=e[7],E(l);let f;e[8]!==o||e[9]!==i||e[10]!==r.shardKey||e[11]!==a?(f=()=>{if(a)return D;let h=!1;const{args:k,fn:w}=K.current,S=j(o,w,k,{onData:s=>{h||p({client:o,key:i,result:{data:s,error:void 0}})},onError:s=>{const z=Object.assign(s.code===void 0?new Error(s.message):new L(s.code,s.message),s.why===void 0?{}:{why:s.why});v.current?.(s),queueMicrotask(()=>{h||p({client:o,key:i,result:{data:void 0,error:z}})})}},{shardKey:r.shardKey});return()=>{h=!0,S(),p(void 0)}},e[8]=o,e[9]=i,e[10]=r.shardKey,e[11]=a,e[12]=f):f=e[12];let m;return e[13]!==o||e[14]!==t.__lunoraRef||e[15]!==i||e[16]!==r.shardKey||e[17]!==c||e[18]!==a?(m=[o,t.__lunoraRef,i,c,r.shardKey,a],e[13]=o,e[14]=t.__lunoraRef,e[15]=i,e[16]=r.shardKey,e[17]=c,e[18]=a,e[19]=m):m=e[19],E(f,m),y?.client===o&&y.key===i?y.result:A};function D(){}export{W as default};
2
+ import{c as O}from"react/compiler-runtime";import{createQuerySubscription as j}from"@lunora/client/query";import{LunoraError as L}from"@lunora/errors";import{useState as M,useRef as R,useEffect as E}from"react";import{u as q}from"./lunora-provider-CW9Gd-pp.mjs";import{stableWireKey as x}from"@lunora/wire";const A=Object.freeze({data:void 0,error:void 0}),W=(t,n,b)=>{const e=O(20),r=b===void 0?{}:b,o=q(),a=n==="skip",c=a?"skip":x(n),i=JSON.stringify([t.__lunoraRef,c,r.shardKey??""]),[y,p]=M(void 0),v=R(r.onError);let u;e[0]!==r.onError?(u=()=>{v.current=r.onError},e[0]=r.onError,e[1]=u):u=e[1],E(u);let d;e[2]!==n||e[3]!==t?(d={args:n,fn:t},e[2]=n,e[3]=t,e[4]=d):d=e[4];const K=R(d);let l;e[5]!==n||e[6]!==t?(l=()=>{K.current={args:n,fn:t}},e[5]=n,e[6]=t,e[7]=l):l=e[7],E(l);let f;e[8]!==o||e[9]!==i||e[10]!==r.shardKey||e[11]!==a?(f=()=>{if(a)return D;let h=!1;const{args:k,fn:w}=K.current,S=j(o,w,k,{onData:s=>{h||p({client:o,key:i,result:{data:s,error:void 0}})},onError:s=>{const z=Object.assign(s.code===void 0?new Error(s.message):new L(s.code,s.message),s.why===void 0?{}:{why:s.why});v.current?.(s),queueMicrotask(()=>{h||p({client:o,key:i,result:{data:void 0,error:z}})})}},{shardKey:r.shardKey});return()=>{h=!0,S(),p(void 0)}},e[8]=o,e[9]=i,e[10]=r.shardKey,e[11]=a,e[12]=f):f=e[12];let m;return e[13]!==o||e[14]!==t.__lunoraRef||e[15]!==i||e[16]!==r.shardKey||e[17]!==c||e[18]!==a?(m=[o,t.__lunoraRef,i,c,r.shardKey,a],e[13]=o,e[14]=t.__lunoraRef,e[15]=i,e[16]=r.shardKey,e[17]=c,e[18]=a,e[19]=m):m=e[19],E(f,m),y?.client===o&&y.key===i?y.result:A};function D(){}export{W as default};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{c as h}from"react/compiler-runtime";import{useQueryClient as R,useSuspenseQuery as S}from"@tanstack/react-query";import{u as I,g as b}from"./lunora-provider-CW9Gd-pp.mjs";import{u as q}from"./query-core-CqnQ_-E5.mjs";import{a as F}from"./query-key-BysXrewF.mjs";import{stableWireKey as k}from"@lunora/wire";const E=(s,m,c)=>{const e=h(21),f=c===void 0?{}:c,r=I(),u=R(),{onError:d,shardKey:a}=f,y=m,o=k(y),t=F(s.__lunoraRef,o,a),p=r.isReady?r.peekHydratedQueryByKey(s.__lunoraRef,o,a):void 0;let i;e[0]!==o||e[1]!==y||e[2]!==r||e[3]!==s||e[4]!==u||e[5]!==t||e[6]!==a?(i=async K=>{const{signal:Q}=K;return await r.whenReady(),r.peekHydratedQueryByKey(s.__lunoraRef,o,a)??b(r).liveValue(u,t,Q,{fetch:async()=>r.query(s,y,{shardKey:a}),waitForPush:!1})},e[0]=o,e[1]=y,e[2]=r,e[3]=s,e[4]=u,e[5]=t,e[6]=a,e[7]=i):i=e[7];let l;e[8]!==p||e[9]!==t||e[10]!==i?(l={initialData:p,queryFn:i,queryKey:t,staleTime:Number.POSITIVE_INFINITY},e[8]=p,e[9]=t,e[10]=i,e[11]=l):l=e[11];const{data:g}=S(l);let n;return e[12]!==o||e[13]!==y||e[14]!==r||e[15]!==s||e[16]!==d||e[17]!==u||e[18]!==t||e[19]!==a?(n={args:y,argsKey:o,client:r,function_:s,onError:d,queryClient:u,queryKey:t,shardKey:a,skipped:!1},e[12]=o,e[13]=y,e[14]=r,e[15]=s,e[16]=d,e[17]=u,e[18]=t,e[19]=a,e[20]=n):n=e[20],q(n),g};export{E as default};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{useState as T,useRef as W,useCallback as y,useEffect as G}from"react";import{u as X}from"./lunora-provider-_WqSuvf9.mjs";const N="/_lunora/ws",j="/_lunora/voice/",z=4001,O=e=>e.startsWith("https://")?`wss://${e.slice(8)}`:e.startsWith("http://")?`ws://${e.slice(7)}`:e,Q=e=>{const r=e.startsWith("agents:")?e.slice(7):e;return r.endsWith("Voice")?r.slice(0,-5):r},Y=(e,r)=>{if(r===void 0||r==="")return O(e);if(r.endsWith(N))return r.slice(0,-N.length);try{return new URL(r).origin}catch{return O(e)}},Z=e=>{const r=Y(e.httpUrl,e.wsUrl),s=r.endsWith("/")?r.slice(0,-1):r,c=new URLSearchParams({threadKey:e.threadKey});return`${s}${j}${encodeURIComponent(e.agent)}?${c.toString()}`},ee=(e,r)=>{if(r?.code===z)return new Error(`${e}: authentication token expired — refresh the credential and start a new call`)},te=(e,r,s)=>{const c=e.currentIdentity();return e.onAuthTokenChange(()=>{e.currentIdentity()!==c&&s(new Error(`${r}: the signed-in identity changed during the call — the session was ended; start a new call`))})},ne=16e3,re=e=>{if(e.length===0)return 0;let r=0;for(const s of e)r+=s*s;return Math.sqrt(r/e.length)},se=(e,r)=>{const s=r/ne,c=s>1?Math.floor(e.length/s):e.length,d=new ArrayBuffer(c*2),l=new DataView(d);for(let u=0;u<c;u+=1){const g=e[Math.floor(u*s)]??0,p=Math.max(-1,Math.min(1,g));l.setInt16(u*2,p<0?p*32768:p*32767,!0)}return new Uint8Array(d)},oe=async e=>{const r=globalThis,s=r.navigator?.mediaDevices?.getUserMedia.bind(r.navigator.mediaDevices),c=r.AudioContext??r.webkitAudioContext;if(!s||!c)throw new Error("useVoiceAgent: microphone capture requires getUserMedia + AudioContext (no browser audio available)");const d=await s({audio:{channelCount:1,echoCancellation:!0,noiseSuppression:!0}}),l=new c,u=l.createMediaStreamSource(d),g=l.createScriptProcessor(4096,1,1);let p=!1,w=!1,a=0,h=0;return g.onaudioprocess=o=>{const f=o.inputBuffer.getChannelData(0),m=p?0:re(f);if(e.onLevel(m),p)return;if(e.onAudio(se(f,l.sampleRate)),e.isTurnActive()){h=m>=e.interruptThreshold?h+1:0,h>=e.interruptChunks&&(h=0,e.onInterrupt());return}h=0;const x=f.length/l.sampleRate*1e3;if(m>=e.silenceThreshold){w=!0,a=0;return}w&&(a+=x,a>=e.silenceDurationMs&&(w=!1,a=0,e.onSilence()))},u.connect(g),g.connect(l.destination),{setMuted:o=>{p=o},stop:()=>{g.disconnect(),u.disconnect();for(const o of d.getTracks())o.stop();l.close()}}},ie=()=>{const e=globalThis,r=e.AudioContext??e.webkitAudioContext;if(!r)throw new Error("useVoiceAgent: audio playback requires AudioContext (no browser audio available)");const s=new r,c=new Set;let d=0,l=Promise.resolve(),u=0;const g=async(a,h)=>{if(h!==u)return;let o;try{o=await s.decodeAudioData(a.buffer)}catch{return}if(h!==u)return;const f=s.createBufferSource();f.buffer=o,f.connect(s.destination);const m=Math.max(s.currentTime,d);f.start(m),d=m+o.duration,c.add(f),f.onended=()=>{c.delete(f)}},p=a=>{const h=Uint8Array.from(a),o=u;l=l.then(()=>g(h,o))},w=()=>{u+=1;for(const a of c)try{a.stop()}catch{}c.clear(),d=s.currentTime};return{enqueue:p,interrupt:w,stop:()=>{w(),s.close()}}},P=1,ce=.01,ae=1200,ue=.15,le=3,he=e=>{const{createMicrophone:r=oe,createSpeaker:s=ie,createSocket:c,interruptChunks:d=le,interruptThreshold:l=ue,silenceDurationMs:u=ae,silenceThreshold:g=ce,threadKey:p,voice:w}=e,a=X(),[h,o]=T("idle"),[f,m]=T(!1),[x,M]=T(""),[H,v]=T(""),[$,R]=T(0),[I,U]=T(!1),[B,E]=T(void 0),i=W(void 0),_=W(!1),C=y(n=>{const t=i.current?.socket;return t?.readyState===P?(t.send(JSON.stringify(n)),!0):!1},[]),A=y(()=>{const n=i.current;if(i.current=void 0,n){n.unwatchIdentity?.(),n.microphone?.stop(),n.speaker?.stop(),n.socket.onmessage=null,n.socket.onerror=null,n.socket.onclose=null;try{n.socket.close()}catch{}}_.current=!1,m(!1),o("idle"),R(0)},[]),L=y(n=>{const t=i.current;switch(n.type){case"assistant_delta":{t&&(t.speaking=!0),o("speaking"),v(F=>F+n.text);break}case"assistant_discarded":{t&&(t.suppressAudio=!0),t?.speaker?.interrupt(),v("");break}case"assistant_done":{t&&(t.awaitingTurn=!1,t.speaking=!1),v(n.text),o("listening");break}case"error":{t&&(t.awaitingTurn=!1,t.speaking=!1),E(new Error(n.message)),o("listening");break}case"interrupted":{t&&(t.awaitingTurn=!1,t.speaking=!1,t.suppressAudio=!1),t?.speaker?.interrupt(),o("listening");break}case"ready":{t&&(t.audioFormat=n.audioFormat,t.suppressAudio=!1),m(!0),o("listening");break}case"user_transcript":{t&&(t.suppressAudio=!1),M(n.text),v(""),o("thinking");break}}},[]),D=y(n=>{const t=i.current;!t||t.suppressAudio||(t.speaker??=s({audioFormat:t.audioFormat}),t.speaking=!0,o("speaking"),t.speaker.enqueue(n))},[s]),q=y(async()=>{if(i.current||_.current)return;_.current=!0,E(void 0),M(""),v("");let n;try{const t=Z({agent:Q(w.__lunoraRef),httpUrl:a.url,threadKey:p,wsUrl:a.wsUrl}),S=(c??(k=>{const b=a.getWebSocketImpl();if(!b)throw new Error("useVoiceAgent: no WebSocket implementation available (pass createSocket explicitly)");return new b(k)}))(t);S.binaryType="arraybuffer",n={audioFormat:"mp3",microphone:void 0,socket:S,speaker:void 0,speaking:!1,awaitingTurn:!1,suppressAudio:!1,unwatchIdentity:void 0},i.current=n,n.unwatchIdentity=te(a,"useVoiceAgent",k=>{i.current===n&&(E(k),A())}),S.onmessage=k=>{if(typeof k.data=="string"){try{L(JSON.parse(k.data))}catch{}return}D(new Uint8Array(k.data))},S.onerror=()=>{E(new Error("useVoiceAgent: voice socket error"))},S.onclose=k=>{if(i.current!==n)return;const b=ee("useVoiceAgent",k);b&&E(b),A()};const V=await r({interruptChunks:d,interruptThreshold:l,isTurnActive:()=>(i.current?.speaking??!1)||(i.current?.awaitingTurn??!1),onAudio:k=>{S.readyState===P&&S.send(k)},onInterrupt:()=>{C({type:"interrupt"}),i.current?.speaker?.interrupt(),i.current&&(i.current.awaitingTurn=!1,i.current.speaking=!1,i.current.suppressAudio=!0),o("listening")},onLevel:R,onSilence:()=>{C({type:"commit"}),i.current&&(i.current.awaitingTurn=!0),o("thinking")},silenceDurationMs:u,silenceThreshold:g});i.current===n?(n.microphone=V,U(!1),n.speaking||o("listening")):V.stop()}catch(t){i.current===n&&(E(t instanceof Error?t:new Error(String(t))),A())}finally{_.current=!1}},[a,r,c,D,L,d,l,C,u,g,A,p,w]),K=y(()=>{const n=!I;return i.current?.microphone?.setMuted(n),U(n),n},[I]),J=y(n=>{C({text:n,type:"text"})&&(i.current&&(i.current.awaitingTurn=!0),o("thinking"))},[C]);return G(()=>A,[A]),{audioLevel:$,connected:f,endCall:A,error:B,interimTranscript:H,isMuted:I,sendText:J,startCall:q,status:h,toggleMute:K,transcript:x}};export{he as useVoiceAgent};
2
+ import{useState as T,useRef as W,useCallback as y,useEffect as G}from"react";import{u as X}from"./lunora-provider-CW9Gd-pp.mjs";const N="/_lunora/ws",j="/_lunora/voice/",z=4001,O=e=>e.startsWith("https://")?`wss://${e.slice(8)}`:e.startsWith("http://")?`ws://${e.slice(7)}`:e,Q=e=>{const r=e.startsWith("agents:")?e.slice(7):e;return r.endsWith("Voice")?r.slice(0,-5):r},Y=(e,r)=>{if(r===void 0||r==="")return O(e);if(r.endsWith(N))return r.slice(0,-N.length);try{return new URL(r).origin}catch{return O(e)}},Z=e=>{const r=Y(e.httpUrl,e.wsUrl),s=r.endsWith("/")?r.slice(0,-1):r,c=new URLSearchParams({threadKey:e.threadKey});return`${s}${j}${encodeURIComponent(e.agent)}?${c.toString()}`},ee=(e,r)=>{if(r?.code===z)return new Error(`${e}: authentication token expired — refresh the credential and start a new call`)},te=(e,r,s)=>{const c=e.currentIdentity();return e.onAuthTokenChange(()=>{e.currentIdentity()!==c&&s(new Error(`${r}: the signed-in identity changed during the call — the session was ended; start a new call`))})},ne=16e3,re=e=>{if(e.length===0)return 0;let r=0;for(const s of e)r+=s*s;return Math.sqrt(r/e.length)},se=(e,r)=>{const s=r/ne,c=s>1?Math.floor(e.length/s):e.length,d=new ArrayBuffer(c*2),l=new DataView(d);for(let u=0;u<c;u+=1){const g=e[Math.floor(u*s)]??0,p=Math.max(-1,Math.min(1,g));l.setInt16(u*2,p<0?p*32768:p*32767,!0)}return new Uint8Array(d)},oe=async e=>{const r=globalThis,s=r.navigator?.mediaDevices?.getUserMedia.bind(r.navigator.mediaDevices),c=r.AudioContext??r.webkitAudioContext;if(!s||!c)throw new Error("useVoiceAgent: microphone capture requires getUserMedia + AudioContext (no browser audio available)");const d=await s({audio:{channelCount:1,echoCancellation:!0,noiseSuppression:!0}}),l=new c,u=l.createMediaStreamSource(d),g=l.createScriptProcessor(4096,1,1);let p=!1,w=!1,a=0,h=0;return g.onaudioprocess=o=>{const f=o.inputBuffer.getChannelData(0),m=p?0:re(f);if(e.onLevel(m),p)return;if(e.onAudio(se(f,l.sampleRate)),e.isTurnActive()){h=m>=e.interruptThreshold?h+1:0,h>=e.interruptChunks&&(h=0,e.onInterrupt());return}h=0;const x=f.length/l.sampleRate*1e3;if(m>=e.silenceThreshold){w=!0,a=0;return}w&&(a+=x,a>=e.silenceDurationMs&&(w=!1,a=0,e.onSilence()))},u.connect(g),g.connect(l.destination),{setMuted:o=>{p=o},stop:()=>{g.disconnect(),u.disconnect();for(const o of d.getTracks())o.stop();l.close()}}},ie=()=>{const e=globalThis,r=e.AudioContext??e.webkitAudioContext;if(!r)throw new Error("useVoiceAgent: audio playback requires AudioContext (no browser audio available)");const s=new r,c=new Set;let d=0,l=Promise.resolve(),u=0;const g=async(a,h)=>{if(h!==u)return;let o;try{o=await s.decodeAudioData(a.buffer)}catch{return}if(h!==u)return;const f=s.createBufferSource();f.buffer=o,f.connect(s.destination);const m=Math.max(s.currentTime,d);f.start(m),d=m+o.duration,c.add(f),f.onended=()=>{c.delete(f)}},p=a=>{const h=Uint8Array.from(a),o=u;l=l.then(()=>g(h,o))},w=()=>{u+=1;for(const a of c)try{a.stop()}catch{}c.clear(),d=s.currentTime};return{enqueue:p,interrupt:w,stop:()=>{w(),s.close()}}},P=1,ce=.01,ae=1200,ue=.15,le=3,he=e=>{const{createMicrophone:r=oe,createSpeaker:s=ie,createSocket:c,interruptChunks:d=le,interruptThreshold:l=ue,silenceDurationMs:u=ae,silenceThreshold:g=ce,threadKey:p,voice:w}=e,a=X(),[h,o]=T("idle"),[f,m]=T(!1),[x,M]=T(""),[H,v]=T(""),[$,R]=T(0),[I,U]=T(!1),[B,E]=T(void 0),i=W(void 0),_=W(!1),C=y(n=>{const t=i.current?.socket;return t?.readyState===P?(t.send(JSON.stringify(n)),!0):!1},[]),A=y(()=>{const n=i.current;if(i.current=void 0,n){n.unwatchIdentity?.(),n.microphone?.stop(),n.speaker?.stop(),n.socket.onmessage=null,n.socket.onerror=null,n.socket.onclose=null;try{n.socket.close()}catch{}}_.current=!1,m(!1),o("idle"),R(0)},[]),L=y(n=>{const t=i.current;switch(n.type){case"assistant_delta":{t&&(t.speaking=!0),o("speaking"),v(F=>F+n.text);break}case"assistant_discarded":{t&&(t.suppressAudio=!0),t?.speaker?.interrupt(),v("");break}case"assistant_done":{t&&(t.awaitingTurn=!1,t.speaking=!1),v(n.text),o("listening");break}case"error":{t&&(t.awaitingTurn=!1,t.speaking=!1),E(new Error(n.message)),o("listening");break}case"interrupted":{t&&(t.awaitingTurn=!1,t.speaking=!1,t.suppressAudio=!1),t?.speaker?.interrupt(),o("listening");break}case"ready":{t&&(t.audioFormat=n.audioFormat,t.suppressAudio=!1),m(!0),o("listening");break}case"user_transcript":{t&&(t.suppressAudio=!1),M(n.text),v(""),o("thinking");break}}},[]),D=y(n=>{const t=i.current;!t||t.suppressAudio||(t.speaker??=s({audioFormat:t.audioFormat}),t.speaking=!0,o("speaking"),t.speaker.enqueue(n))},[s]),q=y(async()=>{if(i.current||_.current)return;_.current=!0,E(void 0),M(""),v("");let n;try{const t=Z({agent:Q(w.__lunoraRef),httpUrl:a.url,threadKey:p,wsUrl:a.wsUrl}),S=(c??(k=>{const b=a.getWebSocketImpl();if(!b)throw new Error("useVoiceAgent: no WebSocket implementation available (pass createSocket explicitly)");return new b(k)}))(t);S.binaryType="arraybuffer",n={audioFormat:"mp3",microphone:void 0,socket:S,speaker:void 0,speaking:!1,awaitingTurn:!1,suppressAudio:!1,unwatchIdentity:void 0},i.current=n,n.unwatchIdentity=te(a,"useVoiceAgent",k=>{i.current===n&&(E(k),A())}),S.onmessage=k=>{if(typeof k.data=="string"){try{L(JSON.parse(k.data))}catch{}return}D(new Uint8Array(k.data))},S.onerror=()=>{E(new Error("useVoiceAgent: voice socket error"))},S.onclose=k=>{if(i.current!==n)return;const b=ee("useVoiceAgent",k);b&&E(b),A()};const V=await r({interruptChunks:d,interruptThreshold:l,isTurnActive:()=>(i.current?.speaking??!1)||(i.current?.awaitingTurn??!1),onAudio:k=>{S.readyState===P&&S.send(k)},onInterrupt:()=>{C({type:"interrupt"}),i.current?.speaker?.interrupt(),i.current&&(i.current.awaitingTurn=!1,i.current.speaking=!1,i.current.suppressAudio=!0),o("listening")},onLevel:R,onSilence:()=>{C({type:"commit"}),i.current&&(i.current.awaitingTurn=!0),o("thinking")},silenceDurationMs:u,silenceThreshold:g});i.current===n?(n.microphone=V,U(!1),n.speaking||o("listening")):V.stop()}catch(t){i.current===n&&(E(t instanceof Error?t:new Error(String(t))),A())}finally{_.current=!1}},[a,r,c,D,L,d,l,C,u,g,A,p,w]),K=y(()=>{const n=!I;return i.current?.microphone?.setMuted(n),U(n),n},[I]),J=y(n=>{C({text:n,type:"text"})&&(i.current&&(i.current.awaitingTurn=!0),o("thinking"))},[C]);return G(()=>A,[A]),{audioLevel:$,connected:f,endCall:A,error:B,interimTranscript:H,isMuted:I,sendText:J,startCall:q,status:h,toggleMute:K,transcript:x}};export{he as useVoiceAgent};
@@ -35,6 +35,8 @@ interface Subscription {
35
35
  readonly provider: ProviderId;
36
36
  readonly quantity: number;
37
37
  readonly referenceId: string;
38
+ /** Store-maintained write counter. The kit does not read it; it is mirrored so the drift gate sees every field. */
39
+ readonly revision?: number;
38
40
  readonly state: "active" | "canceled" | "past_due" | "paused" | "trialing";
39
41
  readonly updatedAt: number;
40
42
  }
package/dist/payment.d.ts CHANGED
@@ -35,6 +35,8 @@ interface Subscription {
35
35
  readonly provider: ProviderId;
36
36
  readonly quantity: number;
37
37
  readonly referenceId: string;
38
+ /** Store-maintained write counter. The kit does not read it; it is mirrored so the drift gate sees every field. */
39
+ readonly revision?: number;
38
40
  readonly state: "active" | "canceled" | "past_due" | "paused" | "trialing";
39
41
  readonly updatedAt: number;
40
42
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunora/react",
3
- "version": "1.0.0-alpha.259",
3
+ "version": "1.0.0-alpha.260",
4
4
  "description": "React hooks for Lunora: useQuery, useMutation, useSubscription, and useAuth",
5
5
  "keywords": [
6
6
  "cloudflare",
@@ -57,9 +57,9 @@
57
57
  "access": "public"
58
58
  },
59
59
  "dependencies": {
60
- "@lunora/client": "1.0.0-alpha.246",
60
+ "@lunora/client": "1.0.0-alpha.247",
61
61
  "@lunora/errors": ">=1.0.0-alpha.51 <2.0.0-0",
62
- "@lunora/ratelimit": "1.0.0-alpha.166",
62
+ "@lunora/ratelimit": "1.0.0-alpha.167",
63
63
  "@lunora/wire": "1.0.0-alpha.2",
64
64
  "@visulima/storage-client": "1.0.9"
65
65
  },
@@ -1,2 +0,0 @@
1
- 'use client';
2
- import{c as C}from"react/compiler-runtime";import{useQueryClient as K,useQuery as P}from"@tanstack/react-query";import{useRef as N,useEffect as _,useSyncExternalStore as T,useState as w}from"react";import{u as x,g as F,a as L}from"./lunora-provider-_WqSuvf9.mjs";import{l as O,s as z}from"./query-key-BysXrewF.mjs";const D=function(o,r){const e=C(11);let n;e[0]!==r?(n=r===void 0?{}:r,e[0]=r,e[1]=n):n=e[1];const s=n,t=x(),i=K(),E=N(s.onError);let u;e[2]!==s.onError?(u=()=>{E.current=s.onError},e[2]=s.onError,e[3]=u):u=e[3],_(u);let c;e[4]===Symbol.for("react.memo_cache_sentinel")?(c=q=>{E.current?.(q)},e[4]=c):c=e[4];const h=c,S=F(t);let a;e[5]!==t?(a=()=>t.identityEpoch(),e[5]=t,e[6]=a):a=e[6];const g=T(S.subscribeIdentityEpoch,a,V),[v]=w(t),Q=L(),{args:f,functionPath:R,shardKey:y}=o,b=g===0&&!Q&&t===v?o.value:void 0,m={__lunoraRef:R},p=O(m,f,y),{data:I}=P({initialData:b,queryFn:()=>t.query(m,f,{shardKey:y}),queryKey:p,staleTime:Number.POSITIVE_INFINITY}),d=z(p);let l;return e[7]!==t||e[8]!==i||e[9]!==d?(l=[t,i,d,h],e[7]=t,e[8]=i,e[9]=d,e[10]=l):l=e[10],_(()=>S.attach(i,p,m,f,y,{onError:h}),l),I===void 0?b:I},B=function(o,r={}){return D(o,r)};function V(){return 0}export{D as default,B as hydratePreloaded};
@@ -1,2 +0,0 @@
1
- 'use client';
2
- import{c as T}from"react/compiler-runtime";import{LunoraError as W}from"@lunora/errors";import{QueryClientContext as F,QueryClientProvider as M,QueryClient as P}from"@tanstack/react-query";import{use as S,useState as v,useEffect as w,useRef as R,createContext as x}from"react";import{k as b}from"./query-key-BysXrewF.mjs";import{jsx as k}from"react/jsx-runtime";const Q=r=>{r!==void 0&&(r.cancel({silent:!0}),r.setState({...r.state,data:void 0,dataUpdatedAt:0,error:null,fetchStatus:"idle",status:"pending"}))};class A{constructor(e){this.client=e}client;entries=new Map;pushes=new Map;samples=new Map;identityWatched=new Set;listening=!1;hasConsumers(e){return this.entries.has(b(e))}openSnapshotSample(e){const s=b(e);return this.samples.set(s,(this.samples.get(s)??0)+1),{key:s,pushes:this.pushes.get(s)??0}}closeSnapshotSample(e){const s=(this.samples.get(e.key)??1)-1,t=(this.pushes.get(e.key)??0)===e.pushes;return s>0?(this.samples.set(e.key,s),t):(this.samples.delete(e.key),this.entries.has(e.key)||this.pushes.delete(e.key),t)}clearOnIdentityChange(e){this.listenForIdentityChange(),this.identityWatched.add(e)}stopClearingOnIdentityChange(e){this.identityWatched.delete(e)}subscribeIdentityEpoch=e=>(this.listenForIdentityChange(),this.client.onIdentityChange(e));listenForIdentityChange(){this.listening||(this.listening=!0,this.client.onIdentityChange(()=>{for(const e of this.identityWatched)this.clearQueries(e)}))}clearQueries(e){const s=e.getQueryCache();for(const t of s.findAll({queryKey:["lunora"]}))Q(t),t.getObserversCount()===0&&!this.hasConsumers(t.queryKey)&&s.remove(t)}attach(e,s,t,h,l,d={}){const a=b(s);let n=this.entries.get(a);if(!n){n={errorCallbacks:new Set,refCount:0,unsubscribe:void 0},this.entries.set(a,n);const i=n;try{n.unsubscribe=this.client.subscribe(t,h,o=>{if(this.pushes.set(a,(this.pushes.get(a)??0)+1),o===void 0){Q(e.getQueryCache().find({exact:!0,queryKey:s}));return}e.setQueryData(s,o)},{onError:o=>{for(const f of i.errorCallbacks)f(o)},shardKey:l})}catch(o){throw this.entries.delete(a),o}}n.refCount+=1;const{onError:u}=d;u&&n.errorCallbacks.add(u);let c=!1;return()=>{if(c)return;c=!0;const i=this.entries.get(a);i&&(i.refCount-=1,u&&i.errorCallbacks.delete(u),i.refCount<=0&&(i.unsubscribe?.(),this.entries.delete(a)))}}}const L=new WeakMap,I=r=>{let e=L.get(r);return e||(e=new A(r),L.set(r,e)),e},E=x(null),O=x(!1),q=()=>new P({defaultOptions:{mutations:{retry:0},queries:{gcTime:5*6e4,retry:0,staleTime:Number.POSITIVE_INFINITY}}}),V=r=>{const e=T(20),{children:s,client:t,queryClient:h}=r,l=S(F);let d;e[0]!==l||e[1]!==h?(d=()=>h??l??q(),e[0]=l,e[1]=h,e[2]=d):d=e[2];const[a]=v(d),n=h??l??a;let u,c;e[3]!==t||e[4]!==n?(u=()=>{I(t).clearOnIdentityChange(n)},c=[t,n],e[3]=t,e[4]=n,e[5]=u,e[6]=c):(u=e[5],c=e[6]),w(u,c);const i=R(t);let o,f;e[7]!==t||e[8]!==n?(o=()=>{i.current!==t&&(I(i.current).stopClearingOnIdentityChange(n),i.current=t,I(t).clearQueries(n),n.invalidateQueries({queryKey:["lunora"]}))},f=[t,n],e[7]=t,e[8]=n,e[9]=o,e[10]=f):(o=e[9],f=e[10]),w(o,f);const[N]=v(t),m=t!==N;let y;e[11]!==s||e[12]!==m?(y=k(O,{value:m,children:s}),e[11]=s,e[12]=m,e[13]=y):y=e[13];let C;e[14]!==t||e[15]!==y?(C=k(E,{value:t,children:y}),e[14]=t,e[15]=y,e[16]=C):C=e[16];const p=C;if(l===n)return p;let g;return e[17]!==p||e[18]!==n?(g=k(M,{client:n,children:p}),e[17]=p,e[18]=n,e[19]=g):g=e[19],g},Y=()=>S(O),_=()=>{const r=S(E);if(!r)throw new W("INTERNAL","useLunora must be used inside <LunoraProvider />");return r};export{V as L,Y as a,I as g,_ as u};
@@ -1,2 +0,0 @@
1
- 'use client';
2
- import{c as R}from"react/compiler-runtime";import{useRef as $,useEffect as _}from"react";import{g as b}from"./lunora-provider-_WqSuvf9.mjs";const k=i=>{const e=R(16),{args:a,argsKey:y,client:t,function_:s,onError:o,queryClient:r,queryKey:n,shardKey:u,skipped:c}=i,h=`${s.__lunoraRef}\0${y}\0${u??""}`,S=$(o);let f;e[0]!==o?(f=()=>{S.current=o},e[0]=o,e[1]=f):f=e[1],_(f);let p;e[2]===Symbol.for("react.memo_cache_sentinel")?(p=E=>{S.current?.(E)},e[2]=p):p=e[2];const g=p;let l;e[3]!==a||e[4]!==t||e[5]!==s||e[6]!==r||e[7]!==n||e[8]!==u||e[9]!==c?(l=()=>c?K:b(t).attach(r,n,s,a,u,{onError:g}),e[3]=a,e[4]=t,e[5]=s,e[6]=r,e[7]=n,e[8]=u,e[9]=c,e[10]=l):l=e[10];let m;e[11]!==t||e[12]!==r||e[13]!==c||e[14]!==h?(m=[t,r,h,c,g],e[11]=t,e[12]=r,e[13]=c,e[14]=h,e[15]=m):m=e[15],_(l,m)},w=async(i,e,a,y,t,s)=>{const o=b(i),r=o.openSnapshotSample(s),n=await i.query(a,y,{shardKey:t});return o.closeSnapshotSample(r)?n:e.getQueryData(s)??n};function K(){}export{w as f,k as u};
@@ -1,2 +0,0 @@
1
- 'use client';
2
- import{initialPages as O,rebalance as Y,derivePaginationStatus as T,applyLoadMore as _}from"@lunora/client/pagination";import{useQueryClient as B,CancelledError as G}from"@tanstack/react-query";import{useRef as p,useReducer as J,useState as z,useEffect as d,useCallback as U}from"react";import{u as W,g as X}from"./lunora-provider-_WqSuvf9.mjs";import{s as u,l as S}from"./query-key-BysXrewF.mjs";const Z=function(i){const l=p(void 0);return l.current??=i(),l},oe=function(i,l,R){const y=W(),o=B(),{initialNumItems:Q,shardKey:g}=R,f=l==="skip",k=f?{}:l,[,$]=J(e=>e+1,0),[P,K]=z(()=>O(Q)),[j,C]=z(void 0),A=p(R.onError);d(()=>{A.current=R.onError});const E=`${u(S(i,k,g))}::${String(Q)}`,x=p(E);x.current!==E&&(x.current=E,K(O(Q)),C(void 0));const b=P.map(e=>{const r={...k,paginationOpts:{cursor:e.lower,endCursor:e.upper,numItems:e.numItems}},t=S(i,r,g);return{args:r,key:t}}),D=b.map(({key:e})=>u(e)).join("|"),v=p({baseArgs:k,entries:[],fn:i,shardKey:g});d(()=>{v.current={baseArgs:k,entries:b,fn:i,shardKey:g}});const F=(e,r,t)=>{C(t),K(a=>{const s=v.current,n=a.at(-1);if(a.length<=1||!n||o.getQueryData(r)!==void 0)return a;const m={...s.baseArgs,paginationOpts:{cursor:n.lower,endCursor:n.upper,numItems:n.numItems}};return u(S(s.fn,m,s.shardKey))===e?a.slice(0,-1):a}),A.current?.(t)},q=Z(()=>new Map),L=p(y);d(()=>{const e=q.current;if(L.current!==y){for(const s of e.values())s();e.clear(),L.current=y}if(f){for(const s of e.values())s();e.clear();return}const r=v.current,t=X(y),a=new Set(r.entries.map(({key:s})=>u(s)));for(const[s,n]of e)a.has(s)||(n(),e.delete(s));for(const s of r.entries){const n=u(s.key);if(e.has(n))continue;const m=()=>{o.fetchQuery({gcTime:Number.POSITIVE_INFINITY,queryFn:async()=>{const c=t.openSnapshotSample(s.key),N=await y.query(r.fn,s.args,{shardKey:r.shardKey});return t.closeSnapshotSample(c)?N:o.getQueryData(s.key)??N},queryKey:s.key,staleTime:0}).catch(c=>{if(c instanceof G){t.hasConsumers(s.key)&&m();return}F(n,s.key,c instanceof Error?{code:c.code,message:c.message}:{message:String(c)})})};m();const h=t.attach(o,s.key,r.fn,s.args,r.shardKey,{onError:M=>{F(n,s.key,M)}}),I=s.key;e.set(n,()=>{h(),t.hasConsumers(I)||o.removeQueries({exact:!0,queryKey:I})})}},[y,o,D,f]),d(()=>()=>{for(const e of q.current.values())e();q.current.clear()},[]),d(()=>o.getQueryCache().subscribe(t=>{if(t.type!=="updated")return;const a=u(t.query.queryKey);b.some(({key:s})=>u(s)===a)&&(C(void 0),$())}),[o,D]);const w=f?[]:b.map(({key:e})=>o.getQueryData(e));d(()=>{if(f)return;const e=Y(P,w);e&&K(e)});const{status:H}=T(f,w),V=U(e=>{C(void 0),K(r=>{const t=v.current,a=r.map(h=>{const I={...t.baseArgs,paginationOpts:{cursor:h.lower,endCursor:h.upper,numItems:h.numItems}};return o.getQueryData(S(t.fn,I,t.shardKey))}),{nextCursor:s,status:n}=T(!1,a);return _(r,n==="CanLoadMore"?s:void 0,e)??r})},[o]);return{error:j,loadMore:V,pageResults:w,status:H}};export{oe as u};
@@ -1,2 +0,0 @@
1
- 'use client';
2
- import{useMemo as _,useState as D,useRef as l,useEffect as d,useCallback as E}from"react";import{u as V}from"./lunora-provider-_WqSuvf9.mjs";const A=()=>{if(typeof crypto<"u"){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();if(typeof crypto.getRandomValues=="function"){const t=crypto.getRandomValues(new Uint8Array(16));return Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}}throw new Error("randomSessionId: no Web Crypto available — a session id needs crypto.randomUUID or crypto.getRandomValues")},C=1e4,M=(t,r)=>{const e=V(),{heartbeat:I,intervalMs:h=C,listPresent:y,shardKey:s}=r,o=_(()=>r.sessionId??A(),[r.sessionId]),u=JSON.stringify([y.__lunoraRef,t,s??""]),[m,b]=D(),R=m?.client===e&&m.key===u?m:void 0,S=l(r.onError);d(()=>{S.current=r.onError});const p=l(r.data),v=l(!1),g=l({client:e,heartbeat:I,roomId:t,sessionId:o,shardKey:s});d(()=>{g.current={client:e,heartbeat:I,roomId:t,sessionId:o,shardKey:s}});const c=E(()=>{const{client:n,heartbeat:i,roomId:a,sessionId:f,shardKey:k}=g.current,L={roomId:a,sessionId:f,...p.current===void 0?{}:{data:p.current}};n.mutation(i,L,{shardKey:k}).catch(()=>{})},[]),U=E(n=>{p.current=n,v.current&&c()},[c]);return d(()=>(v.current=!0,()=>{v.current=!1}),[]),d(()=>{c();const n=setInterval(c,h),i=()=>{typeof document<"u"&&document.visibilityState==="visible"&&c()};return typeof document<"u"&&document.addEventListener("visibilitychange",i),()=>{clearInterval(n),typeof document<"u"&&document.removeEventListener("visibilitychange",i)}},[c,h,e,t,o,s]),d(()=>e.acquireConnectionContext({roomId:t,sessionId:o},{shardKey:s}),[e,t,o,s]),d(()=>{let n=!1;const i=e.subscribe(y,{roomId:t},a=>{n||b({client:e,error:void 0,key:u,present:a})},{onError:a=>{n||b(f=>({client:e,error:a,key:u,present:f?.client===e&&f.key===u?f.present:void 0})),S.current?.(a)},shardKey:s});return()=>{n=!0,i(),b(void 0)}},[e,y.__lunoraRef,t,u,s]),{error:R?.error,present:R?.present,sessionId:o,setData:U}};export{M as usePresence};
@@ -1,2 +0,0 @@
1
- 'use client';
2
- import{c as g}from"react/compiler-runtime";import{useQueryClient as k,useQuery as q}from"@tanstack/react-query";import{useState as v,useEffect as E}from"react";import{u as F}from"./lunora-provider-_WqSuvf9.mjs";import{u as N,f as T}from"./query-core-DRzrn3qJ.mjs";import{a as C}from"./query-key-BysXrewF.mjs";import{stableWireKey as D}from"@lunora/wire";const O=(s,K,I)=>{const e=g(26),R=I===void 0?{}:I,t=F(),u=k(),{onError:f,shardKey:o}=R,a=K==="skip",y=a?{}:K,l=D(y),r=C(s.__lunoraRef,l,o),[d,b]=v(t.isReady);let n,m;e[0]!==t||e[1]!==d?(n=()=>{d||t.whenReady().then(()=>{b(!0)})},m=[t,d],e[0]=t,e[1]=d,e[2]=n,e[3]=m):(n=e[2],m=e[3]),E(n,m);const Q=a?void 0:t.peekHydratedQueryByKey(s.__lunoraRef,l,o),h=!a&&d;let i;e[4]!==y||e[5]!==t||e[6]!==s||e[7]!==u||e[8]!==r||e[9]!==o?(i=async()=>T(t,u,s,y,o,r),e[4]=y,e[5]=t,e[6]=s,e[7]=u,e[8]=r,e[9]=o,e[10]=i):i=e[10];let c;e[11]!==Q||e[12]!==r||e[13]!==h||e[14]!==i?(c={enabled:h,initialData:Q,queryFn:i,queryKey:r,staleTime:Number.POSITIVE_INFINITY},e[11]=Q,e[12]=r,e[13]=h,e[14]=i,e[15]=c):c=e[15];const{data:S}=q(c);let p;return e[16]!==l||e[17]!==y||e[18]!==t||e[19]!==s||e[20]!==f||e[21]!==u||e[22]!==r||e[23]!==o||e[24]!==a?(p={args:y,argsKey:l,client:t,function_:s,onError:f,queryClient:u,queryKey:r,shardKey:o,skipped:a},e[16]=l,e[17]=y,e[18]=t,e[19]=s,e[20]=f,e[21]=u,e[22]=r,e[23]=o,e[24]=a,e[25]=p):p=e[25],N(p),a?void 0:S};export{O as default};
@@ -1,2 +0,0 @@
1
- 'use client';
2
- import{c as K}from"react/compiler-runtime";import{useQueryClient as h,useSuspenseQuery as R}from"@tanstack/react-query";import{u as S}from"./lunora-provider-_WqSuvf9.mjs";import{u as I,f as g}from"./query-core-DRzrn3qJ.mjs";import{a as b}from"./query-key-BysXrewF.mjs";import{stableWireKey as k}from"@lunora/wire";const C=(s,c,m)=>{const e=K(21),Q=m===void 0?{}:m,r=S(),u=h(),{onError:n,shardKey:a}=Q,y=c,o=k(y),t=b(s.__lunoraRef,o,a),p=r.isReady?r.peekHydratedQueryByKey(s.__lunoraRef,o,a):void 0;let d;e[0]!==o||e[1]!==y||e[2]!==r||e[3]!==s||e[4]!==u||e[5]!==t||e[6]!==a?(d=async()=>(await r.whenReady(),r.peekHydratedQueryByKey(s.__lunoraRef,o,a)??g(r,u,s,y,a,t)),e[0]=o,e[1]=y,e[2]=r,e[3]=s,e[4]=u,e[5]=t,e[6]=a,e[7]=d):d=e[7];let l;e[8]!==p||e[9]!==t||e[10]!==d?(l={initialData:p,queryFn:d,queryKey:t,staleTime:Number.POSITIVE_INFINITY},e[8]=p,e[9]=t,e[10]=d,e[11]=l):l=e[11];const{data:f}=R(l);let i;return e[12]!==o||e[13]!==y||e[14]!==r||e[15]!==s||e[16]!==n||e[17]!==u||e[18]!==t||e[19]!==a?(i={args:y,argsKey:o,client:r,function_:s,onError:n,queryClient:u,queryKey:t,shardKey:a,skipped:!1},e[12]=o,e[13]=y,e[14]=r,e[15]=s,e[16]=n,e[17]=u,e[18]=t,e[19]=a,e[20]=i):i=e[20],I(i),f};export{C as default};