@lunora/studio 1.0.0-alpha.63 → 1.0.0-alpha.64
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.
- package/dist/index.d.ts +1 -1
- package/dist/packem_chunks/MetricsPanel.js +1 -1
- package/dist/packem_chunks/issues-panel.js +1 -1
- package/dist/packem_chunks/payments-panel.js +1 -1
- package/dist/standalone/{chunk-SM67QXQI.js → chunk-2F7G7IWQ.js} +1 -1
- package/dist/standalone/chunk-34UVAASH.js +1 -0
- package/dist/standalone/chunk-35II7U25.js +11 -0
- package/dist/standalone/{chunk-UVDPQU7J.js → chunk-3FUFEZ65.js} +1 -1
- package/dist/standalone/{chunk-VSS7NFZJ.js → chunk-3QRTYSSX.js} +1 -1
- package/dist/standalone/{chunk-PZPFWABF.js → chunk-4WLYA3XE.js} +1 -1
- package/dist/standalone/{chunk-TDE4AR5O.js → chunk-5OWIOACV.js} +1 -1
- package/dist/standalone/{chunk-ZSWWTXVW.js → chunk-5U2THBI7.js} +1 -1
- package/dist/standalone/{chunk-DY7CLL2H.js → chunk-65OTWFS3.js} +1 -1
- package/dist/standalone/chunk-6DWCIIHE.js +1 -0
- package/dist/standalone/{chunk-IJFCOWEQ.js → chunk-7J5N6DGQ.js} +1 -1
- package/dist/standalone/{chunk-M7QCL3ZP.js → chunk-B43FTQJ7.js} +1 -1
- package/dist/standalone/{chunk-TCQEDMAQ.js → chunk-BNUJ7QMG.js} +1 -1
- package/dist/standalone/{chunk-RLEENOIX.js → chunk-C43X4M5U.js} +1 -1
- package/dist/standalone/{chunk-JGY4NGFW.js → chunk-D7XXWV4E.js} +1 -1
- package/dist/standalone/{chunk-4MSKCWUL.js → chunk-DVOBKIUX.js} +1 -1
- package/dist/standalone/{chunk-K7M4SMQ7.js → chunk-EKRN4ZQM.js} +1 -1
- package/dist/standalone/{chunk-IGBEXNXY.js → chunk-EVN46TVV.js} +1 -1
- package/dist/standalone/{chunk-NPIULIRO.js → chunk-EXFBIISG.js} +1 -1
- package/dist/standalone/{chunk-OZGWNJXD.js → chunk-F5QWLENA.js} +1 -1
- package/dist/standalone/chunk-F6GOKFMU.js +3 -0
- package/dist/standalone/{chunk-PYXZLNG2.js → chunk-FGTK44LR.js} +1 -1
- package/dist/standalone/{chunk-XBGJVK32.js → chunk-GSPTEMYN.js} +1 -1
- package/dist/standalone/{chunk-XITDHIVL.js → chunk-HP2UCWND.js} +1 -1
- package/dist/standalone/{chunk-WQTUQZUM.js → chunk-IDNNI63H.js} +1 -1
- package/dist/standalone/{chunk-ZKEVSU66.js → chunk-KDOC2DP5.js} +1 -1
- package/dist/standalone/{chunk-P4J3Z3SA.js → chunk-L7N7F3DA.js} +1 -1
- package/dist/standalone/{chunk-IPHXIGYP.js → chunk-LJDP7NRB.js} +1 -1
- package/dist/standalone/{chunk-GBQHGYGH.js → chunk-OHKRN65U.js} +1 -1
- package/dist/standalone/{chunk-LA3HEESS.js → chunk-P24JBHEZ.js} +1 -1
- package/dist/standalone/chunk-PWWHP76O.js +1 -0
- package/dist/standalone/{chunk-IUW24D4X.js → chunk-QGKAJTQQ.js} +1 -1
- package/dist/standalone/{chunk-AX4PAEGP.js → chunk-QVEHPYA5.js} +1 -1
- package/dist/standalone/{chunk-7YAUSG6S.js → chunk-QWJ3NPE3.js} +1 -1
- package/dist/standalone/{chunk-H3V2QQ4K.js → chunk-RAA2RGG6.js} +1 -1
- package/dist/standalone/chunk-RBU52M5T.js +1 -0
- package/dist/standalone/{chunk-RWZKO2P6.js → chunk-SA3MDZC3.js} +1 -1
- package/dist/standalone/{chunk-66TS6K5F.js → chunk-T2JIUFOD.js} +1 -1
- package/dist/standalone/chunk-TJ2WZ5OP.js +1 -0
- package/dist/standalone/{chunk-37RIZFJ4.js → chunk-TLHJRWNK.js} +1 -1
- package/dist/standalone/{chunk-YQP2EYOC.js → chunk-UIS34ZPB.js} +1 -1
- package/dist/standalone/{chunk-P4DHFWH7.js → chunk-VPAXCQ2Y.js} +1 -1
- package/dist/standalone/{chunk-V4RWA7QI.js → chunk-XEDU5FO4.js} +1 -1
- package/dist/standalone/{chunk-M2B3MDFJ.js → chunk-XQBTNJUQ.js} +1 -1
- package/dist/standalone/{chunk-OWADN6BI.js → chunk-XSD4Y6SQ.js} +1 -1
- package/dist/standalone/{chunk-BY4QROKU.js → chunk-YD5NF6UT.js} +1 -1
- package/dist/standalone/{chunk-DCJKCERP.js → chunk-YI3WYUXK.js} +1 -1
- package/dist/standalone/{chunk-26TQSVUV.js → chunk-ZNNAGR6N.js} +1 -1
- package/dist/standalone/studio.js +1 -1
- package/package.json +4 -4
- package/dist/standalone/chunk-3NHORZCK.js +0 -1
- package/dist/standalone/chunk-B5E7GQHG.js +0 -1
- package/dist/standalone/chunk-F6LUZVVI.js +0 -1
- package/dist/standalone/chunk-GHUPW2Y5.js +0 -1
- package/dist/standalone/chunk-LWECXQWP.js +0 -11
- package/dist/standalone/chunk-TRHTFGFW.js +0 -3
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{b as d}from"./chunk-LE56LPNH.js";import{a,e as O,f as $,g as ht,h as Ne}from"./chunk-3XIESWL4.js";var M=class{static{a(this,"Subscribable")}constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};var fr=class extends M{static{a(this,"FocusManager")}#e;#t;#r;constructor(){super(),this.#r=t=>{if(typeof window<"u"&&window.addEventListener){let e=a(()=>t(),"listener");return window.addEventListener("visibilitychange",e,!1),()=>{window.removeEventListener("visibilitychange",e)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(t){this.#r=t,this.#t?.(),this.#t=t(e=>{typeof e=="boolean"?this.setFocused(e):this.onFocus()})}setFocused(t){this.#e!==t&&(this.#e=t,this.onFocus())}onFocus(){let t=this.isFocused();this.listeners.forEach(e=>{e(t)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},X=new fr;var pr={setTimeout:a((t,e)=>setTimeout(t,e),"setTimeout"),clearTimeout:a(t=>clearTimeout(t),"clearTimeout"),setInterval:a((t,e)=>setInterval(t,e),"setInterval"),clearInterval:a(t=>clearInterval(t),"clearInterval")},mr=class{static{a(this,"TimeoutManager")}#e=pr;#t=!1;setTimeoutProvider(t){this.#e=t}setTimeout(t,e){return this.#e.setTimeout(t,e)}clearTimeout(t){this.#e.clearTimeout(t)}setInterval(t,e){return this.#e.setInterval(t,e)}clearInterval(t){this.#e.clearInterval(t)}},_=new mr;function lt(t){setTimeout(t,0)}a(lt,"systemSetTimeoutZero");var De=typeof window>"u"||"Deno"in globalThis;function b(){}a(b,"noop");function pt(t,e){return typeof t=="function"?t(e):t}a(pt,"functionalUpdate");function se(t){return typeof t=="number"&&t>=0&&t!==1/0}a(se,"isValidTimeout");function me(t,e){return Math.max(t+(e||0)-Date.now(),0)}a(me,"timeUntilStale");function F(t,e){return typeof t=="function"?t(e):t}a(F,"resolveStaleTime");function T(t,e){return typeof t=="function"?t(e):t}a(T,"resolveQueryBoolean");function ye(t,e){let{type:r="all",exact:s,fetchStatus:i,predicate:n,queryKey:o,stale:c}=t;if(o){if(s){if(e.queryHash!==ie(o,e.options))return!1}else if(!q(e.queryKey,o))return!1}if(r!=="all"){let u=e.isActive();if(r==="active"&&!u||r==="inactive"&&u)return!1}return!(typeof c=="boolean"&&e.isStale()!==c||i&&i!==e.state.fetchStatus||n&&!n(e))}a(ye,"matchQuery");function ve(t,e){let{exact:r,status:s,predicate:i,mutationKey:n}=t;if(n){if(!e.options.mutationKey)return!1;if(r){if(H(e.options.mutationKey)!==H(n))return!1}else if(!q(e.options.mutationKey,n))return!1}return!(s&&e.state.status!==s||i&&!i(e))}a(ve,"matchMutation");function ie(t,e){return(e?.queryKeyHashFn||H)(t)}a(ie,"hashQueryKeyByOptions");function H(t){return JSON.stringify(t,(e,r)=>Qe(r)?Object.keys(r).sort().reduce((s,i)=>(s[i]=r[i],s),{}):r)}a(H,"hashKey");function q(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(t&&e&&typeof t=="object"&&typeof e=="object"){if(Array.isArray(t)&&Array.isArray(e)){for(let s=0;s<e.length;s++)if(!q(t[s],e[s]))return!1;return!0}let r=Object.keys(e);for(let s of r)if(!q(t[s],e[s]))return!1;return!0}return!1}a(q,"partialMatchKey");var yr=Object.prototype.hasOwnProperty;function Ue(t,e,r=0){if(t===e)return t;if(r>500)return e;let s=dt(t)&&dt(e);if(!s&&!(Qe(t)&&Qe(e)))return e;let n=(s?t:Object.keys(t)).length,o=s?e:Object.keys(e),c=o.length,u=s?new Array(c):{},l=0;for(let h=0;h<c;h++){let f=s?h:o[h],p=t[f],m=e[f];if(p===m){u[f]=p,(s?h<n:yr.call(t,f))&&l++;continue}if(p===null||m===null||typeof p!="object"||typeof m!="object"){u[f]=m;continue}let v=Ue(p,m,r+1);u[f]=v,v===p&&l++}return n===c&&l===n?t:u}a(Ue,"replaceEqualDeep");function ge(t,e){if(!e||Object.keys(t).length!==Object.keys(e).length)return!1;for(let r in t)if(t[r]!==e[r])return!1;return!0}a(ge,"shallowEqualObjects");function dt(t){return Array.isArray(t)&&t.length===Object.keys(t).length}a(dt,"isPlainArray");function Qe(t){if(!ft(t))return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(!ft(r)||!r.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(t)!==Object.prototype)}a(Qe,"isPlainObject");function ft(t){return Object.prototype.toString.call(t)==="[object Object]"}a(ft,"hasObjectPrototype");function mt(t){return new Promise(e=>{_.setTimeout(e,t)})}a(mt,"sleep");function ne(t,e,r){return typeof r.structuralSharing=="function"?r.structuralSharing(t,e):r.structuralSharing!==!1?Ue(t,e):e}a(ne,"replaceData");function vr(t){return t}a(vr,"keepPreviousData");function yt(t,e,r=0){let s=[...t,e];return r&&s.length>r?s.slice(1):s}a(yt,"addToEnd");function vt(t,e,r=0){let s=[e,...t];return r&&s.length>r?s.slice(0,-1):s}a(vt,"addToStart");var Y=Symbol();function be(t,e){return!t.queryFn&&e?.initialPromise?()=>e.initialPromise:!t.queryFn||t.queryFn===Y?()=>Promise.reject(new Error(`Missing queryFn: '${t.queryHash}'`)):t.queryFn}a(be,"ensureQueryFn");function we(t,e){return typeof t=="function"?t(...e):!!t}a(we,"shouldThrowError");function gt(t,e,r){let s=!1,i;return Object.defineProperty(t,"signal",{enumerable:!0,get:a(()=>(i??=e(),s||(s=!0,i.aborted?r():i.addEventListener("abort",r,{once:!0})),i),"get")}),t}a(gt,"addConsumeAwareSignal");var N=(()=>{let t=a(()=>De,"isServerFn");return{isServer(){return t()},setIsServer(e){t=e}}})();function ae(){let t,e,r=new Promise((i,n)=>{t=i,e=n});r.status="pending",r.catch(()=>{});function s(i){Object.assign(r,i),delete r.resolve,delete r.reject}return a(s,"finalize"),r.resolve=i=>{s({status:"fulfilled",value:i}),t(i)},r.reject=i=>{s({status:"rejected",reason:i}),e(i)},r}a(ae,"pendingThenable");var bt=lt;function gr(){let t=[],e=0,r=a(c=>{c()},"notifyFn"),s=a(c=>{c()},"batchNotifyFn"),i=bt,n=a(c=>{e?t.push(c):i(()=>{r(c)})},"schedule"),o=a(()=>{let c=t;t=[],c.length&&i(()=>{s(()=>{c.forEach(u=>{r(u)})})})},"flush");return{batch:a(c=>{let u;e++;try{u=c()}finally{e--,e||o()}return u},"batch"),batchCalls:a(c=>(...u)=>{n(()=>{c(...u)})},"batchCalls"),schedule:n,setNotifyFunction:a(c=>{r=c},"setNotifyFunction"),setBatchNotifyFunction:a(c=>{s=c},"setBatchNotifyFunction"),setScheduler:a(c=>{i=c},"setScheduler")}}a(gr,"createNotifyManager");var g=gr();var br=class extends M{static{a(this,"OnlineManager")}#e=!0;#t;#r;constructor(){super(),this.#r=t=>{if(typeof window<"u"&&window.addEventListener){let e=a(()=>t(!0),"onlineListener"),r=a(()=>t(!1),"offlineListener");return window.addEventListener("online",e,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(t){this.#r=t,this.#t?.(),this.#t=t(this.setOnline.bind(this))}setOnline(t){this.#e!==t&&(this.#e=t,this.listeners.forEach(r=>{r(t)}))}isOnline(){return this.#e}},Z=new br;function wr(t){return Math.min(1e3*2**t,3e4)}a(wr,"defaultRetryDelay");function qe(t){return(t??"online")==="online"?Z.isOnline():!0}a(qe,"canFetch");var Se=class extends Error{static{a(this,"CancelledError")}constructor(t){super("CancelledError"),this.revert=t?.revert,this.silent=t?.silent}};function Ce(t){let e=!1,r=0,s,i=ae(),n=a(()=>i.status!=="pending","isResolved"),o=a(y=>{if(!n()){let k=new Se(y);p(k),t.onCancel?.(k)}},"cancel"),c=a(()=>{e=!0},"cancelRetry"),u=a(()=>{e=!1},"continueRetry"),l=a(()=>X.isFocused()&&(t.networkMode==="always"||Z.isOnline())&&t.canRun(),"canContinue"),h=a(()=>qe(t.networkMode)&&t.canRun(),"canStart"),f=a(y=>{n()||(s?.(),i.resolve(y))},"resolve"),p=a(y=>{n()||(s?.(),i.reject(y))},"reject"),m=a(()=>new Promise(y=>{s=a(k=>{(n()||l())&&y(k)},"continueFn"),t.onPause?.()}).then(()=>{s=void 0,n()||t.onContinue?.()}),"pause"),v=a(()=>{if(n())return;let y,k=r===0?t.initialPromise:void 0;try{y=k??t.fn()}catch(S){y=Promise.reject(S)}Promise.resolve(y).then(f).catch(S=>{if(n())return;let x=t.retry??(N.isServer()?0:3),D=t.retryDelay??wr,K=typeof D=="function"?D(r,S):D,j=x===!0||typeof x=="number"&&r<x||typeof x=="function"&&x(r,S);if(e||!j){p(S);return}r++,t.onFail?.(r,S),mt(K).then(()=>l()?void 0:m()).then(()=>{e?p(S):v()})})},"run");return{promise:i,status:a(()=>i.status,"status"),cancel:o,continue:a(()=>(s?.(),i),"continue"),cancelRetry:c,continueRetry:u,canStart:h,start:a(()=>(h()?v():m().then(v),i),"start")}}a(Ce,"createRetryer");var ke=class{static{a(this,"Removable")}#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),se(this.gcTime)&&(this.#e=_.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(N.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(_.clearTimeout(this.#e),this.#e=void 0)}};function St(t){return{onFetch:a((e,r)=>{let s=e.options,i=e.fetchOptions?.meta?.fetchMore?.direction,n=e.state.data?.pages||[],o=e.state.data?.pageParams||[],c={pages:[],pageParams:[]},u=0,l=a(async()=>{let h=!1,f=a(v=>{gt(v,()=>e.signal,()=>h=!0)},"addSignalProperty"),p=be(e.options,e.fetchOptions),m=a(async(v,y,k)=>{if(h)return Promise.reject(e.signal.reason);if(y==null&&v.pages.length)return Promise.resolve(v);let x=a(()=>{let _e={client:e.client,queryKey:e.queryKey,pageParam:y,direction:k?"backward":"forward",meta:e.options.meta};return f(_e),_e},"createQueryFnContext")(),D=await p(x),{maxPages:K}=e.options,j=k?vt:yt;return{pages:j(v.pages,D,K),pageParams:j(v.pageParams,y,K)}},"fetchPage");if(i&&n.length){let v=i==="backward",y=v?Sr:wt,k={pages:n,pageParams:o},S=y(s,k);c=await m(k,S,v)}else{let v=t??n.length;do{let y=u===0?o[0]??s.initialPageParam:wt(s,c);if(u>0&&y==null)break;c=await m(c,y),u++}while(u<v)}return c},"fetchFn");e.options.persister?e.fetchFn=()=>e.options.persister?.(l,{client:e.client,queryKey:e.queryKey,meta:e.options.meta,signal:e.signal},r):e.fetchFn=l},"onFetch")}}a(St,"infiniteQueryBehavior");function wt(t,{pages:e,pageParams:r}){let s=e.length-1;return e.length>0?t.getNextPageParam(e[s],e,r[s],r):void 0}a(wt,"getNextPageParam");function Sr(t,{pages:e,pageParams:r}){return e.length>0?t.getPreviousPageParam?.(e[0],e,r[0],r):void 0}a(Sr,"getPreviousPageParam");var Et=class extends ke{static{a(this,"Query")}#e;#t;#r;#s;#n;#i;#o;#a;constructor(t){super(),this.#a=!1,this.#o=t.defaultOptions,this.setOptions(t.options),this.observers=[],this.#n=t.client,this.#s=this.#n.getQueryCache(),this.queryKey=t.queryKey,this.queryHash=t.queryHash,this.#t=kt(this.options),this.state=t.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#i?.promise}setOptions(t){if(this.options={...this.#o,...t},t?._type&&(this.#e=t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=kt(this.options);e.data!==void 0&&(this.setState(Ct(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#s.remove(this)}setData(t,e){let r=ne(this.state.data,t,this.options);return this.#c({data:r,type:"success",dataUpdatedAt:e?.updatedAt,manual:e?.manual}),r}setState(t){this.#c({type:"setState",state:t})}cancel(t){let e=this.#i?.promise;return this.#i?.cancel(t),e?e.then(b).catch(b):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>T(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Y||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>F(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!me(this.state.dataUpdatedAt,t)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),this.#s.notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(e=>e!==t),this.observers.length||(this.#i&&(this.#a||this.#h()?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#s.notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}#h(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"}invalidate(){this.state.isInvalidated||this.#c({type:"invalidate"})}async fetch(t,e){if(this.state.fetchStatus!=="idle"&&this.#i?.status()!=="rejected"){if(this.state.data!==void 0&&e?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(t&&this.setOptions(t),!this.options.queryFn){let u=this.observers.find(l=>l.options.queryFn);u&&this.setOptions(u.options)}let r=new AbortController,s=a(u=>{Object.defineProperty(u,"signal",{enumerable:!0,get:a(()=>(this.#a=!0,r.signal),"get")})},"addSignalProperty"),i=a(()=>{let u=be(this.options,e),h=a(()=>{let f={client:this.#n,queryKey:this.queryKey,meta:this.meta};return s(f),f},"createQueryFnContext")();return this.#a=!1,this.options.persister?this.options.persister(u,h,this):u(h)},"fetchFn"),o=a(()=>{let u={fetchOptions:e,options:this.options,queryKey:this.queryKey,client:this.#n,state:this.state,fetchFn:i};return s(u),u},"createFetchContext")();(this.#e==="infinite"?St(this.options.pages):this.options.behavior)?.onFetch(o,this),this.#r=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==o.fetchOptions?.meta)&&this.#c({type:"fetch",meta:o.fetchOptions?.meta}),this.#i=Ce({initialPromise:e?.initialPromise,fn:o.fetchFn,onCancel:a(u=>{u instanceof Se&&u.revert&&this.setState({...this.#r,fetchStatus:"idle"}),r.abort()},"onCancel"),onFail:a((u,l)=>{this.#c({type:"failed",failureCount:u,error:l})},"onFail"),onPause:a(()=>{this.#c({type:"pause"})},"onPause"),onContinue:a(()=>{this.#c({type:"continue"})},"onContinue"),retry:o.options.retry,retryDelay:o.options.retryDelay,networkMode:o.options.networkMode,canRun:a(()=>!0,"canRun")});try{let u=await this.#i.start();if(u===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(u),this.#s.config.onSuccess?.(u,this),this.#s.config.onSettled?.(u,this.state.error,this),u}catch(u){if(u instanceof Se){if(u.silent)return this.#i.promise;if(u.revert){if(this.state.data===void 0)throw u;return this.state.data}}throw this.#c({type:"error",error:u}),this.#s.config.onError?.(u,this),this.#s.config.onSettled?.(this.state.data,u,this),u}finally{this.scheduleGc()}}#c(t){let e=a(r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...Be(r.data,this.options),fetchMeta:t.meta??null};case"success":let s={...r,...Ct(t.data,t.dataUpdatedAt),dataUpdateCount:r.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#r=t.manual?s:void 0,s;case"error":let i=t.error;return{...r,error:i,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}},"reducer");this.state=e(this.state),g.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),this.#s.notify({query:this,type:"updated",action:t})})}};function Be(t,e){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:qe(e.networkMode)?"fetching":"paused",...t===void 0&&{error:null,status:"pending"}}}a(Be,"fetchState");function Ct(t,e){return{data:t,dataUpdatedAt:e??Date.now(),error:null,isInvalidated:!1,status:"success"}}a(Ct,"successState");function kt(t){let e=typeof t.initialData=="function"?t.initialData():t.initialData,r=e!==void 0,s=r?typeof t.initialDataUpdatedAt=="function"?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:r?s??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}a(kt,"getDefaultState");var je=class extends M{static{a(this,"QueryObserver")}constructor(t,e){super(),this.options=e,this.#e=t,this.#a=null,this.#o=ae(),this.bindMethods(),this.setOptions(e)}#e;#t=void 0;#r=void 0;#s=void 0;#n;#i;#o;#a;#h;#c;#p;#l;#d;#u;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),Tt(this.#t,this.options)?this.#f():this.updateResult(),this.#b())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Ke(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Ke(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#w(),this.#S(),this.#t.removeObserver(this)}setOptions(t){let e=this.options,r=this.#t;if(this.options=this.#e.defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof T(this.options.enabled,this.#t)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#C(),this.#t.setOptions(this.options),e._defaulted&&!ge(this.options,e)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});let s=this.hasListeners();s&&It(this.#t,r,this.options,e)&&this.#f(),this.updateResult(),s&&(this.#t!==r||T(this.options.enabled,this.#t)!==T(e.enabled,this.#t)||F(this.options.staleTime,this.#t)!==F(e.staleTime,this.#t))&&this.#y();let i=this.#v();s&&(this.#t!==r||T(this.options.enabled,this.#t)!==T(e.enabled,this.#t)||i!==this.#u)&&this.#g(i)}getOptimisticResult(t){let e=this.#e.getQueryCache().build(this.#e,t),r=this.createResult(e,t);return kr(this,r)&&(this.#s=r,this.#i=this.options,this.#n=this.#t.state),r}getCurrentResult(){return this.#s}trackResult(t,e){return new Proxy(t,{get:a((r,s)=>(this.trackProp(s),e?.(s),s==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&this.#o.status==="pending"&&this.#o.reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(r,s)),"get")})}trackProp(t){this.#m.add(t)}getCurrentQuery(){return this.#t}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){let e=this.#e.defaultQueryOptions(t),r=this.#e.getQueryCache().build(this.#e,e);return r.fetch().then(()=>this.createResult(r,e))}fetch(t){return this.#f({...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#s))}#f(t){this.#C();let e=this.#t.fetch(this.options,t);return t?.throwOnError||(e=e.catch(b)),e}#y(){this.#w();let t=F(this.options.staleTime,this.#t);if(N.isServer()||this.#s.isStale||!se(t))return;let r=me(this.#s.dataUpdatedAt,t)+1;this.#l=_.setTimeout(()=>{this.#s.isStale||this.updateResult()},r)}#v(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#g(t){this.#S(),this.#u=t,!(N.isServer()||T(this.options.enabled,this.#t)===!1||!se(this.#u)||this.#u===0)&&(this.#d=_.setInterval(()=>{(this.options.refetchIntervalInBackground||X.isFocused())&&this.#f()},this.#u))}#b(){this.#y(),this.#g(this.#v())}#w(){this.#l!==void 0&&(_.clearTimeout(this.#l),this.#l=void 0)}#S(){this.#d!==void 0&&(_.clearInterval(this.#d),this.#d=void 0)}createResult(t,e){let r=this.#t,s=this.options,i=this.#s,n=this.#n,o=this.#i,u=t!==r?t.state:this.#r,{state:l}=t,h={...l},f=!1,p;if(e._optimisticResults){let R=this.hasListeners(),re=!R&&Tt(t,e),de=R&&It(t,r,e,s);(re||de)&&(h={...h,...Be(l.data,t.options)}),e._optimisticResults==="isRestoring"&&(h.fetchStatus="idle")}let{error:m,errorUpdatedAt:v,status:y}=h;p=h.data;let k=!1;if(e.placeholderData!==void 0&&p===void 0&&y==="pending"){let R;i?.isPlaceholderData&&e.placeholderData===o?.placeholderData?(R=i.data,k=!0):R=typeof e.placeholderData=="function"?e.placeholderData(this.#p?.state.data,this.#p):e.placeholderData,R!==void 0&&(y="success",p=ne(i?.data,R,e),f=!0)}if(e.select&&p!==void 0&&!k)if(i&&p===n?.data&&e.select===this.#h)p=this.#c;else try{this.#h=e.select,p=e.select(p),p=ne(i?.data,p,e),this.#c=p,this.#a=null}catch(R){this.#a=R}this.#a&&(m=this.#a,p=this.#c,v=Date.now(),y="error");let S=h.fetchStatus==="fetching",x=y==="pending",D=y==="error",K=x&&S,j=p!==void 0,U={status:y,fetchStatus:h.fetchStatus,isPending:x,isSuccess:y==="success",isError:D,isInitialLoading:K,isLoading:K,data:p,dataUpdatedAt:h.dataUpdatedAt,error:m,errorUpdatedAt:v,failureCount:h.fetchFailureCount,failureReason:h.fetchFailureReason,errorUpdateCount:h.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:h.dataUpdateCount>u.dataUpdateCount||h.errorUpdateCount>u.errorUpdateCount,isFetching:S,isRefetching:S&&!x,isLoadingError:D&&!j,isPaused:h.fetchStatus==="paused",isPlaceholderData:f,isRefetchError:D&&j,isStale:$e(t,e),refetch:this.refetch,promise:this.#o,isEnabled:T(e.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){let R=U.data!==void 0,re=U.status==="error"&&!R,de=a(pe=>{re?pe.reject(U.error):R&&pe.resolve(U.data)},"finalizeThenableIfPossible"),ut=a(()=>{let pe=this.#o=U.promise=ae();de(pe)},"recreateThenable"),fe=this.#o;switch(fe.status){case"pending":t.queryHash===r.queryHash&&de(fe);break;case"fulfilled":(re||U.data!==fe.value)&&ut();break;case"rejected":(!re||U.error!==fe.reason)&&ut();break}}return U}updateResult(){let t=this.#s,e=this.createResult(this.#t,this.options);if(this.#n=this.#t.state,this.#i=this.options,this.#n.data!==void 0&&(this.#p=this.#t),ge(e,t))return;this.#s=e;let r=a(()=>{if(!t)return!0;let{notifyOnChangeProps:s}=this.options,i=typeof s=="function"?s():s;if(i==="all"||!i&&!this.#m.size)return!0;let n=new Set(i??this.#m);return this.options.throwOnError&&n.add("error"),Object.keys(this.#s).some(o=>{let c=o;return this.#s[c]!==t[c]&&n.has(c)})},"shouldNotifyListeners");this.#k({listeners:r()})}#C(){let t=this.#e.getQueryCache().build(this.#e,this.options);if(t===this.#t)return;let e=this.#t;this.#t=t,this.#r=t.state,this.hasListeners()&&(e?.removeObserver(this),t.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#b()}#k(t){g.batch(()=>{t.listeners&&this.listeners.forEach(e=>{e(this.#s)}),this.#e.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function Cr(t,e){return T(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&T(e.retryOnMount,t)===!1)}a(Cr,"shouldLoadOnMount");function Tt(t,e){return Cr(t,e)||t.state.data!==void 0&&Ke(t,e,e.refetchOnMount)}a(Tt,"shouldFetchOnMount");function Ke(t,e,r){if(T(e.enabled,t)!==!1&&F(e.staleTime,t)!=="static"){let s=typeof r=="function"?r(t):r;return s==="always"||s!==!1&&$e(t,e)}return!1}a(Ke,"shouldFetchOn");function It(t,e,r,s){return(t!==e||T(s.enabled,t)===!1)&&(!r.suspense||t.state.status!=="error")&&$e(t,r)}a(It,"shouldFetchOptionally");function $e(t,e){return T(e.enabled,t)!==!1&&t.isStaleByTime(F(e.staleTime,t))}a($e,"isStale");function kr(t,e){return!ge(t.getCurrentResult(),e)}a(kr,"shouldAssignObserverCurrentProperties");var Rt=class extends ke{static{a(this,"Mutation")}#e;#t;#r;#s;constructor(t){super(),this.#e=t.client,this.mutationId=t.mutationId,this.#r=t.mutationCache,this.#t=[],this.state=t.state||Er(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){this.#t.includes(t)||(this.#t.push(t),this.clearGcTimeout(),this.#r.notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){this.#t=this.#t.filter(e=>e!==t),this.scheduleGc(),this.#r.notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){this.#t.length||(this.state.status==="pending"?this.scheduleGc():this.#r.remove(this))}continue(){return this.#s?.continue()??this.execute(this.state.variables)}async execute(t){let e=a(()=>{this.#n({type:"continue"})},"onContinue"),r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#s=Ce({fn:a(()=>this.options.mutationFn?this.options.mutationFn(t,r):Promise.reject(new Error("No mutationFn found")),"fn"),onFail:a((n,o)=>{this.#n({type:"failed",failureCount:n,error:o})},"onFail"),onPause:a(()=>{this.#n({type:"pause"})},"onPause"),onContinue:e,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:a(()=>this.#r.canRun(this),"canRun")});let s=this.state.status==="pending",i=!this.#s.canStart();try{if(s)e();else{this.#n({type:"pending",variables:t,isPaused:i}),this.#r.config.onMutate&&await this.#r.config.onMutate(t,this,r);let o=await this.options.onMutate?.(t,r);o!==this.state.context&&this.#n({type:"pending",context:o,variables:t,isPaused:i})}let n=await this.#s.start();return await this.#r.config.onSuccess?.(n,t,this.state.context,this,r),await this.options.onSuccess?.(n,t,this.state.context,r),await this.#r.config.onSettled?.(n,null,this.state.variables,this.state.context,this,r),await this.options.onSettled?.(n,null,t,this.state.context,r),this.#n({type:"success",data:n}),n}catch(n){try{await this.#r.config.onError?.(n,t,this.state.context,this,r)}catch(o){Promise.reject(o)}try{await this.options.onError?.(n,t,this.state.context,r)}catch(o){Promise.reject(o)}try{await this.#r.config.onSettled?.(void 0,n,this.state.variables,this.state.context,this,r)}catch(o){Promise.reject(o)}try{await this.options.onSettled?.(void 0,n,t,this.state.context,r)}catch(o){Promise.reject(o)}throw this.#n({type:"error",error:n}),n}finally{this.#r.runNext(this)}}#n(t){let e=a(r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}},"reducer");this.state=e(this.state),g.batch(()=>{this.#t.forEach(r=>{r.onMutationUpdate(t)}),this.#r.notify({mutation:this,type:"updated",action:t})})}};function Er(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}a(Er,"getDefaultState");var Ot=class extends M{static{a(this,"MutationCache")}constructor(t={}){super(),this.config=t,this.#e=new Set,this.#t=new Map,this.#r=0}#e;#t;#r;build(t,e,r){let s=new Rt({client:t,mutationCache:this,mutationId:++this.#r,options:t.defaultMutationOptions(e),state:r});return this.add(s),s}add(t){this.#e.add(t);let e=Ee(t);if(typeof e=="string"){let r=this.#t.get(e);r?r.push(t):this.#t.set(e,[t])}this.notify({type:"added",mutation:t})}remove(t){if(this.#e.delete(t)){let e=Ee(t);if(typeof e=="string"){let r=this.#t.get(e);if(r)if(r.length>1){let s=r.indexOf(t);s!==-1&&r.splice(s,1)}else r[0]===t&&this.#t.delete(e)}}this.notify({type:"removed",mutation:t})}canRun(t){let e=Ee(t);if(typeof e=="string"){let s=this.#t.get(e)?.find(i=>i.state.status==="pending");return!s||s===t}else return!0}runNext(t){let e=Ee(t);return typeof e=="string"?this.#t.get(e)?.find(s=>s!==t&&s.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){g.batch(()=>{this.#e.forEach(t=>{this.notify({type:"removed",mutation:t})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(t){let e={exact:!0,...t};return this.getAll().find(r=>ve(e,r))}findAll(t={}){return this.getAll().filter(e=>ve(t,e))}notify(t){g.batch(()=>{this.listeners.forEach(e=>{e(t)})})}resumePausedMutations(){let t=this.getAll().filter(e=>e.state.isPaused);return g.batch(()=>Promise.all(t.map(e=>e.continue().catch(b))))}};function Ee(t){return t.options.scope?.id}a(Ee,"scopeFor");var Pt=class extends M{static{a(this,"QueryCache")}constructor(t={}){super(),this.config=t,this.#e=new Map}#e;build(t,e,r){let s=e.queryKey,i=e.queryHash??ie(s,e),n=this.get(i);return n||(n=new Et({client:t,queryKey:s,queryHash:i,options:t.defaultQueryOptions(e),state:r,defaultOptions:t.getQueryDefaults(s)}),this.add(n)),n}add(t){this.#e.has(t.queryHash)||(this.#e.set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){let e=this.#e.get(t.queryHash);e&&(t.destroy(),e===t&&this.#e.delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){g.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return this.#e.get(t)}getAll(){return[...this.#e.values()]}find(t){let e={exact:!0,...t};return this.getAll().find(r=>ye(e,r))}findAll(t={}){let e=this.getAll();return Object.keys(t).length>0?e.filter(r=>ye(t,r)):e}notify(t){g.batch(()=>{this.listeners.forEach(e=>{e(t)})})}onFocus(){g.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){g.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}};var He=class{static{a(this,"QueryClient")}#e;#t;#r;#s;#n;#i;#o;#a;constructor(t={}){this.#e=t.queryCache||new Pt,this.#t=t.mutationCache||new Ot,this.#r=t.defaultOptions||{},this.#s=new Map,this.#n=new Map,this.#i=0}mount(){this.#i++,this.#i===1&&(this.#o=X.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#a=Z.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#i--,this.#i===0&&(this.#o?.(),this.#o=void 0,this.#a?.(),this.#a=void 0)}isFetching(t){return this.#e.findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return this.#t.findAll({...t,status:"pending"}).length}getQueryData(t){let e=this.defaultQueryOptions({queryKey:t});return this.#e.get(e.queryHash)?.state.data}ensureQueryData(t){let e=this.defaultQueryOptions(t),r=this.#e.build(this,e),s=r.state.data;return s===void 0?this.fetchQuery(t):(t.revalidateIfStale&&r.isStaleByTime(F(e.staleTime,r))&&this.prefetchQuery(e),Promise.resolve(s))}getQueriesData(t){return this.#e.findAll(t).map(({queryKey:e,state:r})=>{let s=r.data;return[e,s]})}setQueryData(t,e,r){let s=this.defaultQueryOptions({queryKey:t}),n=this.#e.get(s.queryHash)?.state.data,o=pt(e,n);if(o!==void 0)return this.#e.build(this,s).setData(o,{...r,manual:!0})}setQueriesData(t,e,r){return g.batch(()=>this.#e.findAll(t).map(({queryKey:s})=>[s,this.setQueryData(s,e,r)]))}getQueryState(t){let e=this.defaultQueryOptions({queryKey:t});return this.#e.get(e.queryHash)?.state}removeQueries(t){let e=this.#e;g.batch(()=>{e.findAll(t).forEach(r=>{e.remove(r)})})}resetQueries(t,e){let r=this.#e;return g.batch(()=>(r.findAll(t).forEach(s=>{s.reset()}),this.refetchQueries({type:"active",...t},e)))}cancelQueries(t,e={}){let r={revert:!0,...e},s=g.batch(()=>this.#e.findAll(t).map(i=>i.cancel(r)));return Promise.all(s).then(b).catch(b)}invalidateQueries(t,e={}){return g.batch(()=>(this.#e.findAll(t).forEach(r=>{r.invalidate()}),t?.refetchType==="none"?Promise.resolve():this.refetchQueries({...t,type:t?.refetchType??t?.type??"active"},e)))}refetchQueries(t,e={}){let r={...e,cancelRefetch:e.cancelRefetch??!0},s=g.batch(()=>this.#e.findAll(t).filter(i=>!i.isDisabled()&&!i.isStatic()).map(i=>{let n=i.fetch(void 0,r);return r.throwOnError||(n=n.catch(b)),i.state.fetchStatus==="paused"?Promise.resolve():n}));return Promise.all(s).then(b)}fetchQuery(t){let e=this.defaultQueryOptions(t);e.retry===void 0&&(e.retry=!1);let r=this.#e.build(this,e);return r.isStaleByTime(F(e.staleTime,r))?r.fetch(e):Promise.resolve(r.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(b).catch(b)}fetchInfiniteQuery(t){return t._type="infinite",this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(b).catch(b)}ensureInfiniteQueryData(t){return t._type="infinite",this.ensureQueryData(t)}resumePausedMutations(){return Z.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#r}setDefaultOptions(t){this.#r=t}setQueryDefaults(t,e){this.#s.set(H(t),{queryKey:t,defaultOptions:e})}getQueryDefaults(t){let e=[...this.#s.values()],r={};return e.forEach(s=>{q(t,s.queryKey)&&Object.assign(r,s.defaultOptions)}),r}setMutationDefaults(t,e){this.#n.set(H(t),{mutationKey:t,defaultOptions:e})}getMutationDefaults(t){let e=[...this.#n.values()],r={};return e.forEach(s=>{q(t,s.mutationKey)&&Object.assign(r,s.defaultOptions)}),r}defaultQueryOptions(t){if(t._defaulted)return t;let e={...this.#r.queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return e.queryHash||(e.queryHash=ie(e.queryKey,e)),e.refetchOnReconnect===void 0&&(e.refetchOnReconnect=e.networkMode!=="always"),e.throwOnError===void 0&&(e.throwOnError=!!e.suspense),!e.networkMode&&e.persister&&(e.networkMode="offlineFirst"),e.queryFn===Y&&(e.enabled=!1),e}defaultMutationOptions(t){return t?._defaulted?t:{...this.#r.mutations,...t?.mutationKey&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}};var B=O($(),1);var ee=O($(),1),Lt=O(Ne(),1);var oe=ee.createContext(void 0),ze=a(t=>{let e=ee.useContext(oe);if(t)return t;if(!e)throw new Error("No QueryClient set, use QueryClientProvider to set one");return e},"useQueryClient"),We=a(({client:t,children:e})=>(ee.useEffect(()=>(t.mount(),()=>{t.unmount()}),[t]),(0,Lt.jsx)(oe.Provider,{value:t,children:e})),"QueryClientProvider");var ce=O($(),1),Tr=O(Ne(),1);function Ir(){let t=!1;return{clearReset:a(()=>{t=!1},"clearReset"),reset:a(()=>{t=!0},"reset"),isReset:a(()=>t,"isReset")}}a(Ir,"createValue");var Rr=ce.createContext(Ir()),At=a(()=>ce.useContext(Rr),"useQueryErrorResetBoundary");var xt=O($(),1);var Ft=a((t,e,r)=>{let s=r?.state.error&&typeof t.throwOnError=="function"?we(t.throwOnError,[r.state.error,r]):t.throwOnError;(t.suspense||t.experimental_prefetchInRender||s)&&(e.isReset()||(t.retryOnMount=!1))},"ensurePreventErrorBoundaryRetry"),Mt=a(t=>{xt.useEffect(()=>{t.clearReset()},[t])},"useClearResetErrorBoundary"),_t=a(({result:t,errorResetBoundary:e,throwOnError:r,query:s,suspense:i})=>t.isError&&!e.isReset()&&!t.isFetching&&s&&(i&&t.data===void 0||we(r,[t.error,s])),"getHasError");var Te=O($(),1);var Nt=Te.createContext(!1),Qt=a(()=>Te.useContext(Nt),"useIsRestoring"),Ia=Nt.Provider;var Dt=a(t=>{if(t.suspense){let r=a(i=>i==="static"?i:Math.max(i??1e3,1e3),"clamp"),s=t.staleTime;t.staleTime=typeof s=="function"?(...i)=>r(s(...i)):r(s),typeof t.gcTime=="number"&&(t.gcTime=Math.max(t.gcTime,1e3))}},"ensureSuspenseTimers"),Ut=a((t,e)=>t.isLoading&&t.isFetching&&!e,"willFetch"),qt=a((t,e)=>t?.suspense&&e.isPending,"shouldSuspend"),Ve=a((t,e,r)=>e.fetchOptimistic(t).catch(()=>{r.clearReset()}),"fetchOptimistic");function Bt(t,e,r){let s=Qt(),i=At(),n=ze(r),o=n.defaultQueryOptions(t);n.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let c=n.getQueryCache().get(o.queryHash),u=t.subscribed!==!1;o._optimisticResults=s?"isRestoring":u?"optimistic":void 0,Dt(o),Ft(o,i,c),Mt(i);let l=!n.getQueryCache().get(o.queryHash),[h]=B.useState(()=>new e(n,o)),f=h.getOptimisticResult(o),p=!s&&u;if(B.useSyncExternalStore(B.useCallback(m=>{let v=p?h.subscribe(g.batchCalls(m)):b;return h.updateResult(),v},[h,p]),()=>h.getCurrentResult(),()=>h.getCurrentResult()),B.useEffect(()=>{h.setOptions(o)},[o,h]),qt(o,f))throw Ve(o,h,i);if(_t({result:f,errorResetBoundary:i,throwOnError:o.throwOnError,query:c,suspense:o.suspense}))throw f.error;return n.getDefaultOptions().queries?._experimental_afterQuery?.(o,f),o.experimental_prefetchInRender&&!N.isServer()&&Ut(f,s)&&(l?Ve(o,h,i):c?.promise)?.catch(b).finally(()=>{h.updateResult()}),o.notifyOnChangeProps?f:h.trackResult(f)}a(Bt,"useBaseQuery");function Or(t,e){return Bt(t,je,e)}a(Or,"useQuery");var Kt=O(ht(),1);var z=O($(),1),Ge=O(Ne(),1);var jt=(0,z.createContext)(null),Pr=a(()=>new He({defaultOptions:{mutations:{retry:0},queries:{gcTime:5*6e4,retry:0,staleTime:Number.POSITIVE_INFINITY}}}),"T"),Lr=a(t=>{let e=(0,Kt.c)(9),{children:r,client:s,queryClient:i}=t,n=(0,z.use)(oe),o;e[0]!==n||e[1]!==i?(o=a(()=>i??n??Pr(),"i"),e[0]=n,e[1]=i,e[2]=o):o=e[2];let[c]=(0,z.useState)(o),u=i??n??c;if(!u)throw new d("INTERNAL","LunoraProvider: failed to resolve a QueryClient");let l;e[3]!==r||e[4]!==s?(l=(0,Ge.jsx)(jt,{value:s,children:r}),e[3]=r,e[4]=s,e[5]=l):l=e[5];let h=l;if(n===u)return h;let f;return e[6]!==h||e[7]!==u?(f=(0,Ge.jsx)(We,{client:u,children:h}),e[6]=h,e[7]=u,e[8]=f):f=e[8],f},"b"),Je=a(()=>{let t=(0,z.use)(jt);if(!t)throw new d("INTERNAL","useLunora must be used inside <LunoraProvider />");return t},"q");var $t=a(()=>{let t=null;return{get:a(()=>t,"get"),set:a(e=>{t=e},"set")}},"l");var Ie=class{static{a(this,"u")}values=new Map;subscribers=new Map;get(e){return this.values.has(e.key)?this.values.get(e.key):e.defaultValue}set(e,r){if(r===void 0){this.reset(e);return}this.values.set(e.key,r),this.notify(e.key,r)}reset(e){this.values.delete(e.key),this.notify(e.key,e.defaultValue)}subscribe(e,r){let s=this.subscribers.get(e.key);return s||(s=new Set,this.subscribers.set(e.key,s)),s.add(r),()=>{s.delete(r),s.size===0&&this.subscribers.delete(e.key)}}notify(e,r){let s=this.subscribers.get(e);if(s)for(let i of s)try{i(r)}catch{}}};var Ht=0,Ar="lunora-bridge",xr=1e3,Fr=3e3,Re=class{static{a(this,"h")}bc;tabId;heartbeatInterval;leaderTimeout;knownLeader=void 0;leader=!1;running=!1;lastHeartbeat=0;heartbeatTimer=void 0;leaderCheckTimer=void 0;onBecomeLeader;onStopBeingLeader;onSubscriptionData;onSubscriptionError;constructor(e={}){if(Ht+=1,this.tabId=`tab_${String(Ht)}_${crypto.randomUUID()}`,this.heartbeatInterval=e.heartbeatInterval??xr,this.leaderTimeout=e.leaderTimeout??Fr,this.onBecomeLeader=e.onBecomeLeader,this.onStopBeingLeader=e.onStopBeingLeader,this.onSubscriptionData=e.onSubscriptionData,this.onSubscriptionError=e.onSubscriptionError,typeof BroadcastChannel>"u"){this.bc=void 0;return}this.bc=new BroadcastChannel(e.channelName??Ar),this.bc.addEventListener("message",r=>{this.handleMessage(r.data)})}start(){if(!this.running){if(this.running=!0,this.bc===void 0){this.becomeLeader();return}this.broadcast({type:"claim-leadership",tabId:this.tabId,ts:Date.now()}),setTimeout(()=>{this.running&&this.knownLeader===void 0&&this.becomeLeader()},this.leaderTimeout),this.leaderCheckTimer=setInterval(()=>{this.checkLeaderHealth()},this.leaderTimeout),this.heartbeatTimer=setInterval(()=>{this.sendHeartbeat()},this.heartbeatInterval)}}stop(){this.running=!1,this.leader&&(this.broadcast({type:"yield-leadership",tabId:this.tabId}),this.leader=!1,this.knownLeader=void 0,this.onStopBeingLeader?.()),this.heartbeatTimer!==void 0&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=void 0),this.leaderCheckTimer!==void 0&&(clearInterval(this.leaderCheckTimer),this.leaderCheckTimer=void 0),this.bc?.close()}isLeader(){return this.leader}get leaderTabId(){return this.knownLeader}get id(){return this.tabId}get isRunning(){return this.running}broadcastSubscriptionData(e,r){this.leader&&this.broadcast({type:"subscription-data",tabId:this.tabId,key:e,data:r})}broadcastSubscriptionError(e,r){this.leader&&this.broadcast({type:"subscription-error",tabId:this.tabId,key:e,error:r})}broadcast(e){this.bc?.postMessage(e)}handleMessage(e){switch(e.type){case"claim-leadership":{this.handleClaimLeadership(e);break}case"heartbeat":{this.handleHeartbeat(e);break}case"subscription-data":{if(this.leader||e.tabId===this.tabId)break;this.onSubscriptionData?.(e.key,e.data);break}case"subscription-error":{if(this.leader||e.tabId===this.tabId)break;this.onSubscriptionError?.(e.key,e.error);break}case"yield-leadership":{this.knownLeader===e.tabId&&(this.knownLeader=void 0);break}}}handleClaimLeadership(e){if(e.tabId!==this.tabId){if(this.leader){this.broadcast({type:"heartbeat",tabId:this.tabId,ts:Date.now()});return}this.knownLeader===void 0&&e.tabId<this.tabId&&(this.knownLeader=e.tabId,this.lastHeartbeat=e.ts)}}handleHeartbeat(e){if(e.tabId!==this.tabId){if(this.leader){this.resolveLeaderVsLeaderTieBreak(e);return}this.lastHeartbeat=e.ts,this.knownLeader=e.tabId}}resolveLeaderVsLeaderTieBreak(e){e.tabId<this.tabId?(this.leader=!1,this.knownLeader=e.tabId,this.lastHeartbeat=e.ts,this.onStopBeingLeader?.()):this.broadcast({type:"heartbeat",tabId:this.tabId,ts:Date.now()})}becomeLeader(){this.leader||(this.leader=!0,this.knownLeader=this.tabId,this.lastHeartbeat=Date.now(),this.onBecomeLeader?.(),this.broadcast({type:"heartbeat",tabId:this.tabId,ts:Date.now()}))}sendHeartbeat(){this.leader&&this.broadcast({type:"heartbeat",tabId:this.tabId,ts:Date.now()})}checkLeaderHealth(){this.running&&(this.leader||this.knownLeader!==void 0&&Date.now()-this.lastHeartbeat>this.leaderTimeout&&(this.knownLeader=void 0,this.broadcast({type:"claim-leadership",tabId:this.tabId,ts:Date.now()}),setTimeout(()=>{this.running&&this.knownLeader===void 0&&this.becomeLeader()},this.leaderTimeout)))}};var Xe="_creationTime",Mr=a(t=>{if(typeof t!="object"||t===null)return;let e=t._id;return typeof e=="string"?e:void 0},"p"),_r=a(t=>{let e;for(let r of t){let s=r[Xe];if(typeof s=="number"){if(e!==void 0){if(s<e)return!0;if(s>e)return!1}e=s}}return!1},"a"),Nr=a((t,e)=>{let r=e[Xe];if(typeof r!="number")return t.length;let s=_r(t);for(let[i,n]of t.entries()){let o=n[Xe];if(typeof o=="number"&&(s?o<r:o>r))return i}return t.length},"d"),zt=a(t=>{if(typeof t!="object"||t===null)return!1;let e=t;return typeof e.key=="string"&&typeof e.table=="string"&&(e.op==="insert"||e.op==="update"||e.op==="delete")},"y"),Wt=a((t,e)=>{if(!Array.isArray(t))return;let r=[];for(let u of t){if(Mr(u)===void 0)return;r.push(u)}let{key:s,op:i,row:n}=e;if(i==="delete"){let u=r.filter(l=>l._id!==s);return u.length===r.length?[...r]:u}if(n===void 0)return;let o=r.findIndex(u=>u._id===s);if(o===-1){let u=[...r];return u.splice(Nr(r,n),0,n),u}let c=[...r];return c[o]=n,c},"g");var Qr=1024,Oe=a(t=>{let e=t.maxBuffer??Qr,r=[],s=[],i=!1,n,o=!1,c=a(()=>{let h=s.shift();if(!h)return!1;if(n)return h.reject(n),!0;if(r.length>0){let f=r.shift();return h.resolve({done:!1,value:f}),!0}return i?(h.resolve({done:!0,value:void 0}),!0):(s.unshift(h),!1)},"n"),u={complete(){if(!(i||n))for(i=!0;c(););},fail(h){if(!(i||n))for(n=h,r.length=0;c(););},push(h){if(!(i||n||o)){if(r.length>=e){u.fail(new d("STREAM_BACKPRESSURE",`stream buffer overflow (max=${e.toString()}); the consumer cannot keep up with the producer`));return}r.push(h),c()}}},l=a(()=>{if(!o){o=!0,i=!0,r.length=0;try{t.onCancel()}catch{}for(;c(););}},"c");return{handle:u,iterable:{cancel:l,[Symbol.asyncIterator](){return{next(){if(n)return Promise.reject(n);if(r.length>0){let h=r.shift();return Promise.resolve({done:!1,value:h})}return i?Promise.resolve({done:!0,value:void 0}):new Promise((h,f)=>{s.push({reject:f,resolve:h})})},return(){return l(),Promise.resolve({done:!0,value:void 0})}}}}}},"d");var Vt=/^ /u,Gt=a(t=>typeof t=="object"&&t!==null?JSON.stringify(t):String(t),"u"),Dr=a(t=>{let e="",r=[];for(let s of t.split(`
|
|
2
|
+
`))s.startsWith("event:")?e=s.slice(6).replace(Vt,""):s.startsWith("data:")&&r.push(s.slice(5).replace(Vt,""));return{data:r.join(`
|
|
3
|
+
`),event:e}},"p"),Ur=a((t,e,r)=>{let s=e.params??{},i=t.path.split("/").map(c=>{if(!c.startsWith(":"))return c;let u=c.slice(1),l=s[u];if(l===void 0)throw new d("HTTP_STREAM_MISSING_PARAM",`httpStream: missing path param ":${u}" for route ${t.path}`);return encodeURIComponent(Gt(l))}).join("/"),n=new URLSearchParams;for(let[c,u]of Object.entries(e.searchParams??{}))u!==void 0&&n.set(c,Gt(u));let o=n.toString();return`${r.endsWith("/")?r.slice(0,-1):r}${i}${o===""?"":`?${o}`}`},"S"),qr=a((t,e)=>{if(t.event==="complete")return e.complete(),!0;if(t.event==="error"){let r={};try{r=JSON.parse(t.data)}catch{}let s=typeof r.message=="string"?r.message:"stream error",i=typeof r.code=="string"?r.code:"HTTP_STREAM_ERROR";return e.fail(new d(i,s)),!0}if((t.event===""||t.event==="message")&&t.data!=="")try{e.push(JSON.parse(t.data))}catch{return e.fail(new d("HTTP_STREAM_BAD_CHUNK","httpStream: malformed SSE chunk (invalid JSON)")),!0}return!1},"T"),Br=a(async(t,e)=>{let r=t.getReader(),s=new TextDecoder,i="",n=a(()=>{let o=i.indexOf(`
|
|
4
|
+
|
|
5
|
+
`);for(;o!==-1;){let c=Dr(i.slice(0,o));if(i=i.slice(o+2),qr(c,e))return!0;o=i.indexOf(`
|
|
6
|
+
|
|
7
|
+
`)}return!1},"c");for(;;){let{done:o,value:c}=await r.read();if(o)break;if(i+=s.decode(c,{stream:!0}).replaceAll(`\r
|
|
8
|
+
`,`
|
|
9
|
+
`),n()){await r.cancel().catch(()=>{});return}}i+=s.decode().replaceAll(`\r
|
|
10
|
+
`,`
|
|
11
|
+
`),n()||e.fail(new d("HTTP_STREAM_INTERRUPTED","httpStream: stream ended without a complete frame"))},"g"),Jt=a((t,e,r={})=>{let s=r.fetch??(typeof fetch=="function"?fetch.bind(globalThis):void 0);if(!s)throw new d("INTERNAL","httpStream: no `fetch` implementation available");let i=Ur(t,e??{},r.baseUrl??""),n=new AbortController,o;r.signal&&(r.signal.aborted?n.abort():(o=a(()=>{n.abort()},"n"),r.signal.addEventListener("abort",o,{once:!0})));let c=a(()=>{o&&r.signal?.removeEventListener("abort",o)},"l"),{handle:u,iterable:l}=Oe({maxBuffer:r.maxBuffer,onCancel:a(()=>{n.abort()},"onCancel")});return(async()=>{try{let h=await s(i,{headers:{accept:"text/event-stream",...r.headers},method:t.method,signal:n.signal});if(!h.ok){await h.body?.cancel().catch(()=>{}),u.fail(new d("HTTP_STREAM_STATUS",`httpStream: request failed (status ${h.status.toString()})`,{status:h.status}));return}if(!h.body){u.fail(new d("HTTP_STREAM_NO_BODY","httpStream: response has no body"));return}await Br(h.body,u)}finally{c()}})().catch(h=>{if(n.signal.aborted){u.complete();return}if(h instanceof Error&&"code"in h){u.fail(h);return}u.fail(new d("HTTP_STREAM_TRANSPORT",h instanceof Error?h.message:String(h),{cause:h}))}),l},"w");var Kr=a((t,e)=>t<e?-1:t>e?1:0,"m"),Ze=a(t=>{if(t===void 0)return"null";if(typeof t=="bigint")throw new TypeError("stableStringify: cannot use a bigint in a stable JSON cache key \u2014 pass it as a string, or use stableWireKey");if(t===null||typeof t!="object")return JSON.stringify(t);if(Array.isArray(t))return`[${t.map(n=>Ze(n)).join(",")}]`;let e=Object.getPrototypeOf(t);if(e!==null&&e!==Object.prototype){let n=t.constructor?.name??"value";throw new TypeError(`stableStringify: cannot use a ${n} in a stable JSON cache key \u2014 only plain objects, arrays, and JSON primitives are supported (wire-typed values key via stableWireKey)`)}let r=t,s=Object.keys(r).toSorted(Kr),i=[];for(let n of s){let o=r[n];o!==void 0&&i.push(`${JSON.stringify(n)}:${Ze(o)}`)}return`{${i.join(",")}}`},"p"),Ye=a(t=>{let e="";for(let r=0;r<t.length;r+=32768)e+=String.fromCharCode(...t.subarray(r,r+32768));return btoa(e)},"b"),jr=a(t=>{let e=atob(t),r=new Uint8Array(e.length);for(let s=0;s<e.length;s+=1)r[s]=e.codePointAt(s)??0;return r},"A"),E="$lunora.wire$",Xt="__proto__",Yt={BigInt64Array,BigUint64Array,Float32Array,Float64Array,Int8Array,Int16Array,Int32Array,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array},Zt={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError},P=a((t,e=0)=>{if(e>64)throw new RangeError("wire-codec: value nesting exceeds the 64-level limit");if(t===void 0)return[E,"undefined"];if(t===null)return null;let r=typeof t;if(r==="bigint")return[E,"bigint",t.toString()];if(r==="number"){let o=t;return Number.isNaN(o)?[E,"nan"]:o===1/0?[E,"inf"]:o===-1/0?[E,"-inf"]:o}if(r!=="object")return t;if(t instanceof Date)return[E,"date",P(t.getTime(),e+1)];if(t instanceof Error){let o=t,c={};for(let l of Object.keys(o))o[l]!==void 0&&(c[l]=P(o[l],e+1));let u=[E,"error",o.name,o.message,c];return o.cause!==void 0&&u.push(P(o.cause,e+1)),u}if(t instanceof URL)return[E,"url",t.href];if(t instanceof Map)return[E,"map",[...t.entries()].map(([o,c])=>[P(o,e+1),P(c,e+1)])];if(t instanceof Set)return[E,"set",[...t].map(o=>P(o,e+1))];if(t instanceof ArrayBuffer)return[E,"bytes",Ye(new Uint8Array(t)),"ArrayBuffer"];if(ArrayBuffer.isView(t)){let o=t,c=o.constructor.name,u=new Uint8Array(o.buffer,o.byteOffset,o.byteLength);return c==="Uint8Array"?[E,"bytes",Ye(u)]:[E,"bytes",Ye(u),c]}if(Array.isArray(t)){let o=t.map(c=>P(c,e+1));return o.length>0&&o[0]===E?[E,"arr",o]:o}let s=Object.getPrototypeOf(t);if(s!==null&&s!==Object.prototype){let o=t.constructor?.name??"value";throw new TypeError(`wire-codec: cannot encode a ${o} over the Lunora wire \u2014 only plain objects, arrays, and the supported built-ins (Date, Error, URL, Map, Set, ArrayBuffer/typed arrays, bigint) round-trip`)}let i=t,n={};for(let o of Object.keys(i)){let c=i[o];c!==void 0&&(n[o]=P(c,e+1))}return n},"l"),w=a((t,e=0)=>{if(e>64)throw new RangeError("wire-codec: value nesting exceeds the 64-level limit");if(t===null||typeof t!="object")return t;if(Array.isArray(t)){if(t[0]===E)switch(t[1]){case"-inf":return-1/0;case"arr":return t[2].map(i=>w(i,e+1));case"bigint":{let i=t[2];if(typeof i!="string"||i.length>1024||!/^-?\d+$/.test(i))throw new RangeError("wire-codec: invalid or over-long bigint (max 1024 digits)");return BigInt(i)}case"date":return new Date(w(t[2],e+1));case"map":return new Map(t[2].map(([i,n])=>[w(i,e+1),w(n,e+1)]));case"set":return new Set(t[2].map(i=>w(i,e+1)));case"url":return new URL(t[2]);case"error":{let i=t[2],n=t[3],o=(Object.hasOwn(Zt,i)?Zt[i]:void 0)??Error,c=new o(n);c.name!==i&&Object.defineProperty(c,"name",{configurable:!0,value:i,writable:!0});let u=w(t[4],e+1);for(let l of Object.keys(u))l===Xt?Object.defineProperty(c,l,{configurable:!0,enumerable:!0,value:u[l],writable:!0}):c[l]=u[l];return t.length>5&&Object.defineProperty(c,"cause",{configurable:!0,value:w(t[5],e+1),writable:!0}),c}case"bytes":{let i=jr(t[2]),n=t[3]??"Uint8Array";if(n==="ArrayBuffer")return i.buffer.byteLength===i.byteLength?i.buffer:i.slice().buffer;let o=Object.hasOwn(Yt,n)?Yt[n]:void 0;return o?new o(i.slice().buffer):i}case"inf":return 1/0;case"nan":return Number.NaN;case"undefined":return;default:return t.map(i=>w(i,e+1))}return t.map(i=>w(i,e+1))}let r=t,s={};for(let i of Object.keys(r)){let n=w(r[i],e+1);i===Xt?Object.defineProperty(s,i,{configurable:!0,enumerable:!0,value:n,writable:!0}):s[i]=n}return s},"u"),W=a(t=>Ze(P(t)),"h");var Q=class t{static{a(this,"y")}static key(e,r,s){return`${e}::${W(r)}::${s??""}`}byKey=new Map;byId=new Map;get(e){return this.byKey.get(e)}getById(e){return this.byId.get(e)}add(e){this.byKey.set(t.key(e.fn.__lunoraRef,e.args,e.shardKey),e),this.byId.set(e.id,e)}remove(e){let r=t.key(e.fn.__lunoraRef,e.args,e.shardKey);this.byKey.get(r)===e&&this.byKey.delete(r),this.byId.delete(e.id)}all(){return[...this.byKey.values()]}};var he=a((t,e)=>{let r=t;for(let s of e)try{r=s.transform(r)}catch{}return r},"m"),ue=a((t,e)=>{if(e!==t.lastValue){t.lastValue=e;for(let r of t.callbacks)try{r(e)}catch{}}},"u"),et=a((t,e)=>{let r;try{r=e(t.lastValue)}catch{return}let s={id:Symbol("optimistic"),transform:e};t.optimisticLayers.push(s),ue(t,r);let i=a(()=>{let o=t.optimisticLayers.findIndex(c=>c.id===s.id);return o===-1?!1:(t.optimisticLayers.splice(o,1),!0)},"i"),n=a(()=>{ue(t,he(t.serverBase,t.optimisticLayers))},"a");return{confirm:a(o=>{if(o===void 0){i();return}s.commitCursor=o,t.serverCursor!==void 0&&t.serverCursor>=o&&i()&&n()},"confirm"),rollback:a(()=>{i()&&n()},"rollback")}},"p"),tt=a((t,e)=>{if(e===void 0||t.optimisticLayers.length===0)return!1;let r=t.optimisticLayers.length;return t.optimisticLayers=t.optimisticLayers.filter(s=>s.commitCursor===void 0||s.commitCursor>e),t.optimisticLayers.length!==r},"d"),er=a((t,e)=>{let r=[],s=[],i=a((n,o)=>t.get(Q.key(n,o,e)),"i");return{confirms:r,rollbacks:s,store:{getAllQueries:a(n=>{let o=[];for(let c of t.all())c.fn.__lunoraRef===n.__lunoraRef&&(c.shardKey??"")===(e??"")&&o.push({args:c.args,value:c.lastValue});return o},"getAllQueries"),getQuery:a((n,o)=>i(n.__lunoraRef,o??{})?.lastValue,"getQuery"),setQuery:a((n,o,c)=>{let u=i(n.__lunoraRef,o??{});if(!u)return;let l=et(u,()=>c);l&&(r.push(l.confirm),s.push(l.rollback))},"setQuery")}}},"L");var tr=0,$r=a(()=>{if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();tr+=1;let t=typeof crypto<"u"&&typeof crypto.getRandomValues=="function"?Array.from(crypto.getRandomValues(new Uint8Array(8)),e=>e.toString(16).padStart(2,"0")).join(""):Math.random().toString(16).slice(2,12);return`id_${Date.now().toString(36)}_${tr.toString(36)}_${t}`},"c"),rt=a((t,e)=>t!==void 0&&e!==t,"a"),Le=$r,te=a((t,e,r,s)=>{if(t){t({error:r,mutationId:s,operation:e});return}console.warn(`[lunora] offline-queue persistence ${e} failed`,r)},"r"),Pe=class{static{a(this,"f")}queueBeforeFirstConnect;maxItems;onPersistenceError;persistence;onEvict;onSizeChange;version;items=[];constructor(e={},r={}){this.maxItems=e.maxItems??1e3,this.queueBeforeFirstConnect=e.queueBeforeFirstConnect??!1,this.onPersistenceError=e.onPersistenceError,this.persistence=r.persistence,this.onEvict=r.onEvict,this.onSizeChange=r.onSizeChange,this.version=r.version}get size(){return this.items.length}enqueue(e){let r=e;for(r.id??=Le(),this.items.push(r),this.persistence?.append({args:r.args,functionPath:r.functionPath,id:r.id,identity:r.identity,shardKey:r.shardKey,...this.version===void 0?{}:{version:this.version}}).catch(s=>{te(this.onPersistenceError,"append",s,r.id)});this.items.length>this.maxItems;){let s=this.items.shift();if(s){s.id&&this.persistence?.remove(s.id).catch(n=>{te(this.onPersistenceError,"remove",n,s.id)});let i=new Error("offline queue overflow");i.code="OFFLINE_QUEUE_OVERFLOW",s.reject(i),this.onEvict?.(s,i)}}this.notifySize()}async hydrate(){if(!this.persistence)return[];let e;try{e=await this.persistence.load()}catch(i){throw te(this.onPersistenceError,"load",i),i}let r=new Set,s=[];for(let i of e)if(!(this.items.some(n=>n.id===i.id)||s.some(n=>n.id===i.id))){if(rt(this.version,i.version)){this.persistence.remove(i.id).catch(n=>{te(this.onPersistenceError,"remove",n,i.id)});continue}s.push({args:i.args,functionPath:i.functionPath,id:i.id,identity:i.identity,reject:a(()=>{},"reject"),resolve:a(()=>{},"resolve"),shardKey:i.shardKey}),r.add(i.shardKey)}return this.items.unshift(...s),this.notifySize(),[...r]}drain(e){if(!e){let i=[...this.items];return this.items.length=0,this.notifySize(),i}let r=[],s=[];for(let i of this.items)(e(i)?r:s).push(i);return this.items.length=0,this.items.push(...s),this.notifySize(),r}requeue(e){e.length!==0&&(this.items.unshift(...e),this.notifySize())}drainConflict(){let e=[],r=[];for(let s of this.items)if(s.precondition!==void 0&&!s.precondition()){let i=new Error("offline mutation skipped: precondition failed before replay");i.code="OFFLINE_PRECONDITION_FAILED",s.reject(i),e.push(s)}else r.push(s);return e.length>0&&(this.items.length=0,this.items.push(...r),this.notifySize()),e}clear(){for(let e of this.items){let r=new Error("CLIENT_CLOSED");r.code="CLIENT_CLOSED",e.reject(r)}this.items.length=0,this.notifySize()}notifySize(){this.onSizeChange?.(this.items.length)}};var L=a(t=>new Promise((e,r)=>{t.addEventListener("success",()=>{e(t.result)}),t.addEventListener("error",()=>{r(t.error??new Error("IndexedDB request failed"))})}),"i"),Ae=a((t,e,r,s)=>{let i;return()=>i||(i=new Promise((n,o)=>{let c=t.open(e,r);c.addEventListener("upgradeneeded",()=>{s(c.result)}),c.addEventListener("success",()=>{n(c.result)}),c.addEventListener("error",()=>{o(c.error??new Error("IndexedDB open failed"))})}),i)},"c"),xe=a((t,e)=>async(r,s)=>{let i=(await t()).transaction(e,r),n=await s(i.objectStore(e));return await new Promise((o,c)=>{i.addEventListener("complete",()=>{o()}),i.addEventListener("error",()=>{c(i.error??new Error("IndexedDB transaction failed"))}),i.addEventListener("abort",()=>{c(i.error??new Error("IndexedDB transaction aborted"))})}),n},"E");var Hr="lunora-outbox",zr="offline-mutations",rr="by_id",Wr=a((t={})=>{let e=t.indexedDB??(typeof indexedDB>"u"?void 0:indexedDB);if(!e)throw new d("INTERNAL","createIndexedDbPersistence: no IndexedDB available \u2014 pass `indexedDB` or use createInMemoryPersistence()");let r=t.databaseName??Hr,s=t.storeName??zr,i=Ae(e,r,1,o=>{o.objectStoreNames.contains(s)||o.createObjectStore(s,{autoIncrement:!0}).createIndex(rr,"id",{unique:!0})}),n=xe(i,s);return{append:a(async o=>{await n("readwrite",c=>L(c.add(o)))},"append"),clear:a(async()=>{await n("readwrite",o=>L(o.clear()))},"clear"),load:a(async()=>n("readonly",o=>L(o.getAll())),"load"),remove:a(async o=>{await n("readwrite",async c=>{let u=await L(c.index(rr).getKey(o));u!==void 0&&await L(c.delete(u))})},"remove")}},"x"),sr=a((t,e=!0)=>{if(t!==!1){if(t)return t;if(!(!e||typeof indexedDB>"u"))return Wr()}},"P");var Fe=a((t,e,r)=>`${t}::${e}::${r??""}`,"k"),Vr=500;var Gr="lunora-query-cache",Jr="query-cache",ir="by_ts",Xr=1,Yr=a((t={})=>{let e=t.indexedDB??(typeof indexedDB>"u"?void 0:indexedDB);if(!e)throw new d("INTERNAL","createIndexedDbQueryCache: no IndexedDB available \u2014 pass `indexedDB` or use createInMemoryQueryCache()");let r=t.databaseName??Gr,s=t.storeName??Jr,i=t.maxEntries??Vr,n=Ae(e,r,Xr,u=>{u.objectStoreNames.contains(s)||u.createObjectStore(s,{keyPath:"key"}).createIndex(ir,"ts",{unique:!1})}),o=xe(n,s),c=a(async u=>{let l=await L(u.count())-i;l<=0||await new Promise((h,f)=>{let p=u.index(ir).openCursor();p.addEventListener("success",()=>{let m=p.result;if(!m||l<=0){h();return}m.delete(),l-=1,m.continue()}),p.addEventListener("error",()=>{f(p.error??new Error("IndexedDB eviction failed"))})})},"y");return{clear:a(async()=>{await o("readwrite",u=>L(u.clear()))},"clear"),load:a(async()=>o("readonly",u=>L(u.getAll())),"load"),put:a(async(u,l)=>{await o("readwrite",async h=>{await L(h.put({...l,key:u})),await c(h)})},"put"),remove:a(async u=>{await o("readwrite",l=>L(l.delete(u)))},"remove")}},"I"),nr=a(t=>{if(t!==!1){if(t)return t;if(!(typeof indexedDB>"u"))return Yr()}},"N");var st=a((t={},e=Math.random)=>{let r=t.initialDelayMs??250,s=t.maxDelayMs??3e4,i=t.jitter??!0,n=0;return{next(){let o=Math.min(s,r*2**n);if(n+=1,!i)return o;let c=o/2;return Math.floor(c+e()*(o-c))},reset(){n=0}}},"s");var it=500,Zr=a((t,e)=>{if(t.size<e)return;let r=t.keys().next().value;r!==void 0&&t.delete(r)},"at"),J=class{static{a(this,"S")}listeners=new Set;add(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}emit(...e){let[r]=e;for(let s of this.listeners)try{s(r)}catch{}}clear(){this.listeners.clear()}},es="/_lunora/rpc",ar="/_lunora/rpc-batch",ts="/_lunora/ws",nt=a(t=>t===void 0||t===""?"":`&bucket=${encodeURIComponent(t)}`,"N"),at=a(t=>{for(let e=t.length-1;e>=0;e-=1)t[e]?.()},"O"),rs=a((t,e)=>{for(let r of e)r.op==="delete"?t.delete(r.key):r.value!==void 0&&t.set(r.key,r.value)},"dt"),ss="lunora-ping",is=3e4,ns=1e4,as=250,os=64,cs="/_lunora/admin/shard-traffic",us="/_lunora/admin/scheduled",hs="/_lunora/admin/scheduled/status",ls="/_lunora/admin/scheduled/ws",ds="/_lunora/admin/scheduled/cancel",fs="/_lunora/admin/scheduled/dead",ps="/_lunora/admin/scheduled/dead/retry",ms="/_lunora/admin/scheduled/dead/cancel",ys="/_lunora/admin/workflows/instances",vs="/_lunora/admin/workflows/instance",gs="/_lunora/admin/workflows/status",Me="/_lunora/admin/storage",bs="/_lunora/admin/storage/url",ws="/_lunora/admin/storage/buckets",Ss="/_lunora/admin/functions",Cs="/_lunora/admin/cron-jobs",ks="/_lunora/admin/cron-jobs/run",Es="/_lunora/admin/openapi",Ts="/_lunora/admin/openrpc",Is="/_lunora/admin/global/tables",Rs="/_lunora/admin/global/table",Os="/_lunora/admin/global/facet",Ps="/_lunora/admin/vector/indexes",Ls="/_lunora/admin/vector/query",As="/_lunora/admin/logs/archive",xs="/_lunora/admin/kv/namespaces",Fs="/_lunora/admin/kv/keys",ot="/_lunora/admin/kv/value",Ms="/_lunora/admin/auth/users",or="/_lunora/admin/auth/sessions",_s="/_lunora/admin/auth/users/create",Ns="/_lunora/admin/auth/users/role",Qs="/_lunora/admin/auth/users/ban",Ds="/_lunora/admin/auth/users/unban",Us="/_lunora/admin/auth/users/password",qs="/_lunora/admin/auth/users/remove",Bs="/_lunora/admin/auth/users/impersonate",Ks="/_lunora/admin/auth/sessions/revoke",js="/_lunora/admin/auth/sessions/revoke-all",$s="/_lunora/admin/auth/capabilities",Hs="/_lunora/admin/auth/users/update",zs="/_lunora/admin/auth/accounts",Ws="/_lunora/admin/auth/accounts/unlink",Vs="/_lunora/admin/auth/passkeys",Gs="/_lunora/admin/auth/passkeys/delete",Js="/_lunora/admin/auth/two-factor/disable",Xs="/_lunora/admin/auth/organizations",Ys="/_lunora/admin/auth/organizations/members",Zs="/_lunora/admin/auth/organizations/invitations",ei="/_lunora/admin/auth/organizations/members/remove",ti="/_lunora/admin/auth/organizations/invitations/cancel",ri="/_lunora/admin/auth/config",si="/_lunora/admin/auth/organizations/create",ii="/_lunora/admin/auth/organizations/update",ni="/_lunora/admin/auth/organizations/remove",ai="/_lunora/admin/auth/organizations/members/add",oi="/_lunora/admin/auth/organizations/members/invite",ci="/_lunora/admin/auth/organizations/members/role",ui="/_lunora/admin/auth/organizations/teams",hi="/_lunora/admin/auth/organizations/teams/create",li="/_lunora/admin/auth/organizations/teams/update",di="/_lunora/admin/auth/organizations/teams/remove",fi="/_lunora/admin/auth/organizations/teams/members",pi="/_lunora/admin/auth/organizations/teams/members/add",mi="/_lunora/admin/auth/organizations/teams/members/remove",yi="/_lunora/admin/auth/organizations/roles",vi="/_lunora/admin/auth/organizations/roles/create",gi="/_lunora/admin/auth/organizations/roles/update",bi="/_lunora/admin/auth/organizations/roles/remove",wi="/api/auth",Si="/get-session",cr=a(t=>t.startsWith("https://")?`wss://${t.slice(8)}`:t.startsWith("http://")?`ws://${t.slice(7)}`:t,"U"),V=a((t,e)=>`${t.endsWith("/")?t.slice(0,-1):t}${e}`,"b"),A=a((t,e)=>{let r=new URLSearchParams;for(let[i,n]of Object.entries(e))n!==void 0&&n!==""&&r.set(i,String(n));let s=r.toString();return s===""?t:`${t}?${s}`},"w"),C=a(t=>t??"","m"),Ci=a(t=>{let e=t.error,r=typeof e?.code=="string"?e.code:void 0,s=typeof e?.message=="string"?e.message:void 0,i=(typeof t.message=="string"?t.message:void 0)??s??"stream error";return r===void 0?new Error(i):new d(r,i)},"_e"),ur=a(t=>{let e=t.error,r=typeof e?.code=="string"?e.code:void 0,s=typeof e?.message=="string"?e.message:void 0;return{message:(typeof t.message=="string"?t.message:void 0)??s??"subscription error",...r===void 0?{}:{code:r}}},"Q"),hr=a((t,e)=>{for(let r of t)try{r(e)}catch{}},"B"),ki=new TextDecoder,Ei=a(t=>{if(typeof t=="string")return t;if(t instanceof ArrayBuffer)return ki.decode(t)},"Oe"),I=a((t,e)=>{if(!t.socket||t.wsState!=="open")return!1;try{return t.socket.send(JSON.stringify(e)),!0}catch{return!1}},"y"),le=a(t=>{let e=new Error(t.message??"request failed");return e.code=t.code,t.data!==void 0&&(e.data=w(t.data)),t.hint!==void 0&&(e.hint=t.hint),t.docsUrl!==void 0&&(e.docsUrl=t.docsUrl),e},"C"),G=a((t,e)=>{try{return P(t)}catch(r){let s=r instanceof Error?r.message:String(r);throw new TypeError(`LunoraClient: cannot encode ${e} \u2014 ${s}`,r instanceof Error?{cause:r}:void 0)}},"v"),Ti=a((t,e)=>{let r=Array.from({length:e});for(let s of t){if(typeof s.id!="number"||s.id<0||s.id>=e)continue;let i=s.body;r[s.id]=i&&"error"in i&&i.error?{error:le(i.error),ok:!1}:{ok:!0,value:w(i?.result)}}return r.map(s=>s??{error:new Error("batch call returned no result"),ok:!1})},"Pe"),Ii=new Set(["SHARD_ERROR","SHARD_UNAVAILABLE"]),Ri=Promise.resolve(),ct=class t{static{a(this,"z")}static MAX_POKE_BUFFERS=256;static createClientQuery(e,r){return{defaultValue:r,key:e}}url;wsUrl;clientQueryStore;wsToken;authBasePath;fetchImpl;WebSocketImpl;bookmark;reconnectOptions;connectTimeoutMs;heartbeatIntervalMs;offlineQueue;outbox;clientId;readyResolved=!1;readyResolve;readyPromise;clientWatermarks=new Map;outboxMutationCounter=0;onPersistenceError;persistence;persistenceVersion;outboxLeaderRelease;queryCache;hydratedQueryCache=new Map;pendingCacheWrites=new Map;cacheFlushTimer;subscriptions=new Q;tabCoordinator;connections=new Map;defaultConnectionContext;connectionContexts=new Map;connectionContextHolders=new Map;authToken=null;authSubject=void 0;queuedIdentities=new Map;closed=!1;authTokenListeners=new J;statusListeners=new J;tokenExpiredListeners=new J;mutationSettledListeners=new J;pendingChangeListeners=new J;whisperHandlers=new Map;lastStatus="idle";nextSubId=0;nextStreamId=0;streams=new Map;shapeSubscriptions=new Map;pokeBuffers=new Map;nextShapeId=0;constructor(e){this.url=e.url,this.wsUrl=e.wsUrl??V(cr(e.url),ts),this.wsToken=e.wsToken;let r=e.authBasePath??wi;this.authBasePath=r.endsWith("/")?r.slice(0,-1):r,this.fetchImpl=e.fetch??(typeof fetch=="function"?fetch.bind(globalThis):void 0),this.WebSocketImpl=e.WebSocket??(typeof WebSocket=="function"?WebSocket:void 0),this.bookmark=e.bookmarkStorage??$t(),this.reconnectOptions=e.reconnect,this.heartbeatIntervalMs=e.heartbeatIntervalMs??is,this.connectTimeoutMs=e.connectTimeoutMs??ns,this.defaultConnectionContext=e.connectionContext,this.persistence=sr(e.persistence,e.outbox===void 0),this.persistenceVersion=e.persistenceVersion,this.queryCache=nr(e.queryCache),this.onPersistenceError=e.offlineQueue?.onPersistenceError,this.clientQueryStore=new Ie,e.crossTabSync?(this.tabCoordinator=new Re({onBecomeLeader:a(()=>{for(let s of this.subscriptions.all())this.ensureSocket(s.shardKey),this.sendSubscribeIfOpen(s)},"onBecomeLeader"),onStopBeingLeader:a(()=>{for(let[s,i]of this.connections)i.socket?.close(),this.connections.delete(s)},"onStopBeingLeader"),onSubscriptionData:a((s,i)=>{let n=this.subscriptions.get(s);if(n){n.serverBase=i;let o=n.optimisticLayers.length===0?i:he(i,n.optimisticLayers);n.lastValue=o;for(let c of n.callbacks)try{c(o)}catch{}}},"onSubscriptionData"),onSubscriptionError:a((s,i)=>{let n=this.subscriptions.get(s);if(n)for(let o of n.errorCallbacks)try{o(i)}catch{}},"onSubscriptionError")}),this.tabCoordinator.start()):this.tabCoordinator=void 0,e.hydrateOnStart&&this.queryCache?this.readyPromise=new Promise(s=>{this.readyResolve=s}):(this.readyResolved=!0,this.readyPromise=Ri),this.offlineQueue=new Pe(e.offlineQueue,{onEvict:a((s,i)=>{this.emitItemSettled(s,"rejected",i)},"onEvict"),onSizeChange:a(s=>{this.pendingChangeListeners.emit(s)},"onSizeChange"),persistence:this.persistence,version:e.persistenceVersion}),this.outbox=e.outbox,this.clientId=e.clientId??`client-${Le()}`,this.persistence&&queueMicrotask(()=>{this.hydrateAsOutboxLeader()}),this.queryCache&&queueMicrotask(()=>{(async()=>{try{await this.hydrateQueryCache()}catch{}finally{this.readyResolved=!0,this.readyResolve?.()}})().catch(()=>{})})}setAuthToken(e,r){let s=this.authToken!==e,i=this.identityFingerprint();this.authToken=e,r!==void 0&&(this.authSubject=r);let n=this.identityFingerprint();n!==i&&(s?this.rejectQueuedForIdentityChange():this.restampQueuedIdentity(i,n)),s&&this.authTokenListeners.emit(e)}getAuthToken(){return this.authToken}currentIdentity(){return this.identityFingerprint()}clientIdentifier(){return this.clientId}confirmedMutationWatermark(e){return this.clientWatermarks.get(e??"")??0}async callMutator(e,r,s){let i=s?.clientSeq;if(i!==void 0&&(!Number.isInteger(i)||i<=0))throw new d("INTERNAL",`callMutator: clientSeq must be a positive integer, got ${String(i)}`);let n=s?.shardKey??"",o,c=await this.rpc(e,r,s?.shardKey,{captureBookmark:!0,clientId:this.clientId,clientSeq:i,onMutationAck:a(u=>{o=u},"onMutationAck")});return o!==void 0&&o>(this.clientWatermarks.get(n)??0)&&this.clientWatermarks.set(n,o),{applied:o===void 0||o===i,result:c}}onAuthTokenChange(e){return this.authTokenListeners.add(e)}async getCurrentUser(){if(this.closed||!this.fetchImpl)return null;let e={};this.authToken&&(e.authorization=`Bearer ${this.authToken}`);try{let r=await this.fetchImpl(V(this.url,`${this.authBasePath}${Si}`),{credentials:"include",headers:e,method:"GET"});return r.ok?(await r.json())?.user??null:null}catch{return null}}setWsToken(e){if(this.wsToken!==e){this.wsToken=e;for(let r of this.connections.values())if(r.socket)try{r.socket.close()}catch{}}}setConnectionContext(e,r={}){let s=C(r.shardKey);e===void 0?this.connectionContexts.delete(s):this.connectionContexts.set(s,e),this.refreshConnectionContext(s)}acquireConnectionContext(e,r={}){let s=C(r.shardKey),i={context:e},n=this.connectionContextHolders.get(s);n?n.push(i):this.connectionContextHolders.set(s,[i]),this.refreshConnectionContext(s);let o=!1;return()=>{if(o)return;o=!0;let c=this.connectionContextHolders.get(s);if(!c)return;let u=c.indexOf(i);u!==-1&&c.splice(u,1),c.length===0&&this.connectionContextHolders.delete(s),this.refreshConnectionContext(s)}}whisperSubscribe(e,r,s={}){let i=C(s.shardKey),n=this.whisperHandlers.get(i);n||(n=new Map,this.whisperHandlers.set(i,n));let o=n.get(e),c=o===void 0;if(o||(o=new Set,n.set(e,o)),o.add(r),this.ensureSocket(s.shardKey),c){let u=this.getConnection(s.shardKey);u&&I(u,{topic:e,type:"whisper_subscribe"})}return()=>{let u=this.whisperHandlers.get(i),l=u?.get(e);if(!l?.delete(r)||l.size>0)return;u?.delete(e),u?.size===0&&this.whisperHandlers.delete(i);let h=this.getConnection(s.shardKey);h&&I(h,{topic:e,type:"whisper_unsubscribe"})}}whisper(e,r,s={}){this.ensureSocket(s.shardKey);let i=this.getConnection(s.shardKey);i&&I(i,{data:G(r??null,`whisper data for topic '${e}'`),topic:e,type:"whisper"})}onTokenExpired(e){return this.tokenExpiredListeners.add(e)}connectionStatus(){return this.computeStatus()}onConnectionStatus(e){let r=this.statusListeners.add(e);return e(this.computeStatus()),r}pendingCount(){return this.offlineQueue.size}debug(){let e=[],r=new Set([...this.connections.keys(),...this.clientWatermarks.keys()]);for(let i of r){let n=this.connections.get(i);e.push({confirmedMutationWatermark:this.clientWatermarks.get(i)??0,hasSocket:n?.socket!==void 0,shardKey:i===""?void 0:i,wasEverConnected:n?.wasEverConnected??!1,wsState:n?.wsState??"idle"})}let s=this.subscriptions.all().map(i=>({acked:i.acked,functionPath:i.fn.__lunoraRef,id:i.id,kind:"query",lastMutationId:i.lastMutationId,pendingOptimisticLayers:i.optimisticLayers.length,serverCursor:i.serverCursor,shardKey:i.shardKey,subscriberCount:i.callbacks.size}));for(let i of this.shapeSubscriptions.values())s.push({acked:i.serverCursor!==void 0,functionPath:`shape:${i.name}`,id:i.id,kind:"shape",lastMutationId:i.lastMutationId,pendingOptimisticLayers:0,rowCount:i.rows.size,serverCursor:i.serverCursor,shardKey:i.shardKey,subscriberCount:i.callbacks.size});return{clientId:this.clientId,closed:this.closed,connectionStatus:this.computeStatus(),pendingWrites:this.offlineQueue.size,shards:e.toSorted((i,n)=>(i.shardKey??"").localeCompare(n.shardKey??"")),subscriptions:s.toSorted((i,n)=>i.functionPath.localeCompare(n.functionPath))}}onPendingChange(e){let r=this.pendingChangeListeners.add(e);return e(this.offlineQueue.size),r}onMutationSettled(e){return this.mutationSettledListeners.add(e)}getWebSocketImpl(){return this.WebSocketImpl}getClientQuery(e){return this.clientQueryStore.get(e)}setClientQuery(e,r){this.clientQueryStore.set(e,r)}subscribeClientQuery(e,r){return this.clientQueryStore.subscribe(e,r)}resetClientQuery(e){this.clientQueryStore.reset(e)}snapshotPrecondition(e,r,s){let i=this.peekActiveQueryValue(e.__lunoraRef,r,s),n=i===void 0?void 0:W(i);return()=>{let o=this.peekActiveQueryValue(e.__lunoraRef,r,s);return n===void 0&&o===void 0?!0:n===void 0||o===void 0?!1:W(o)===n}}whenReady(){return this.readyPromise}get isReady(){return this.readyResolved}peekHydratedQuery(e,r,s){if(!this.readyResolved)return;let i=W(r),n=Fe(e,i,s),o=this.hydratedQueryCache.get(n);if(o!==void 0)return o.identity===this.identityFingerprint()?o.value:void 0}peekActiveQueryValue(e,r,s){let i=Q.key(e,r,s);return this.subscriptions.get(i)?.lastValue}async query(e,r,s={}){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return await this.rpc(e.__lunoraRef,r,s.shardKey,{attachBookmark:!0})}async batch(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");if(!this.fetchImpl)throw new d("INTERNAL","LunoraClient: no `fetch` implementation available");if(e.length===0)return[];let r=await this.fetchImpl(V(this.url,ar),{body:JSON.stringify({calls:e.map((n,o)=>({args:G(n.args??{},`args for batch call '${n.fn.__lunoraRef}'`),functionPath:n.fn.__lunoraRef,id:o,shardKey:n.shardKey}))}),headers:this.rpcRequestHeaders({attachBookmark:!0}),method:"POST"}),s=r.headers.get("x-d1-bookmark");s&&this.bookmark.set(s);let i;try{i=await r.json()}catch{throw new d("INTERNAL",`LunoraClient: batch response was not JSON (status ${r.status.toString()})`)}if(!r.ok||i.error&&!i.results)throw i.error?le(i.error):new d("INTERNAL",`LunoraClient: batch request failed (status ${r.status.toString()})`);return Ti(i.results??[],e.length)}async mutation(e,r,s={}){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let i=r,n=s.mutationId??Le(),{confirms:o,rollbacks:c}=this.applyOptimisticUpdates(e.__lunoraRef,i,s.shardKey,s.optimistic);s.optimisticUpdate&&this.applyOptimisticUpdate(s.optimisticUpdate,r,s.shardKey,c,o);let u=this.getConnection(s.shardKey),l=u?.wsState??"idle",h=u?.socket!==void 0,f=u?.wasEverConnected??!1,{queueBeforeFirstConnect:p}=this.offlineQueue,m=f||p,v=this.WebSocketImpl!==void 0&&m;if(l!=="open"&&!h&&v||l==="connecting"&&m)return this.enqueueOfflineMutation(e,i,s.shardKey,n,c,o,s.precondition);try{let y,k=await this.rpc(e.__lunoraRef,i,s.shardKey,{captureBookmark:!0,mutationId:n,onCommitCursor:a(S=>{y=S},"onCommitCursor")});for(let S of o)S(y);return k}catch(y){throw at(c),y}}async action(e,r,s={}){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return await this.rpc(e.__lunoraRef,r,s.shardKey)}async importRows(e,r,s={}){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let i=Math.max(1,Math.trunc(s.chunkSize??500)),n=s.toArgs??(l=>({rows:l})),o=r.length,c=0,u=0;for(let l=0;l<o;l+=i){let h=r.slice(l,l+i),f=u;await this.mutation(e,n(h),{...s.importId===void 0?{}:{mutationId:`${s.importId}:${String(f)}`},shardKey:s.shardKey}),u+=1,c+=h.length,s.onProgress?.({done:c,total:o})}return{chunks:u,imported:c}}async shardTraffic(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=await this.adminFetch(cs,"POST",{table:e});return{failed:r.failed??0,ok:r.ok??0,shards:r.shards??[]}}async listScheduledJobs(){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return(await this.adminFetch(us,"GET")).records??[]}async schedulerStatus(){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let e=await this.adminFetch(hs,"GET");return{backlog:e.backlog??0,inFlight:e.inFlight??0,pools:e.pools??[]}}async cancelScheduledJob(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return{cancelled:(await this.adminFetch(ds,"POST",{id:e})).cancelled===!0}}async listDeadJobs(){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return(await this.adminFetch(fs,"GET")).records??[]}async retryDeadJob(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return{retried:(await this.adminFetch(ps,"POST",{id:e})).retried===!0}}async removeDeadJob(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return{removed:(await this.adminFetch(ms,"POST",{id:e})).removed===!0}}async listWorkflowInstances(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=new URLSearchParams({name:e.name});e.status!==void 0&&r.set("status",e.status),e.page!==void 0&&r.set("page",String(e.page)),e.perPage!==void 0&&r.set("perPage",String(e.perPage));let s=await this.adminFetch(`${ys}?${r.toString()}`,"GET");return{configured:s.configured,instances:s.instances??[],page:s.page??1,perPage:s.perPage??e.perPage??0,totalCount:s.totalCount}}async getWorkflowInstance(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=new URLSearchParams({id:e.id,name:e.name}),s=await this.adminFetch(`${vs}?${r.toString()}`,"GET");return{createdOn:s.createdOn,endedOn:s.endedOn,error:s.error,id:s.id??e.id,output:s.output,params:s.params,startedOn:s.startedOn,status:s.status??"unknown",steps:s.steps??[]}}async setWorkflowInstanceStatus(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return{status:(await this.adminFetch(gs,"POST",{action:e.action,id:e.id,name:e.name})).status??"unknown"}}subscribeScheduledJobs(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");if(this.WebSocketImpl===void 0)return()=>{};let r=V(cr(this.url),ls),s=st(this.reconnectOptions),i,n,o=!1,c=a(h=>{if(o||this.WebSocketImpl===void 0)return;let f=h===void 0?r:`${r}?token=${encodeURIComponent(h)}`;i=new this.WebSocketImpl(f),i.addEventListener("open",()=>{s.reset()}),i.addEventListener("message",p=>{try{let m=JSON.parse(typeof p.data=="string"?p.data:"");m.type==="jobs"&&Array.isArray(m.records)&&e(m.records)}catch{}}),i.addEventListener("close",()=>{i=void 0,o||(n=setTimeout(l,s.next()))}),i.addEventListener("error",()=>{})},"o"),u=a(async h=>{let f;try{f=await h()}catch{o||(n=setTimeout(l,s.next()));return}c(f)},"c"),l=a(()=>{if(o||this.WebSocketImpl===void 0)return;let{wsToken:h}=this;if(typeof h=="function"){u(h).catch(()=>{});return}c(h)},"a");return l(),()=>{o=!0,n!==void 0&&clearTimeout(n),i?.close()}}async listFunctions(){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return(await this.adminFetch(Ss,"GET")).functions??[]}async getCronJobs(){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return(await this.adminFetch(Cs,"GET")).jobs??[]}async runCronJob(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=await this.adminFetch(ks,"POST",{name:e});return{name:r.name??e,ran:r.ran===!0}}async fetchOpenApi(){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return await this.adminFetch(Es,"GET")}async fetchOpenRpc(){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return await this.adminFetch(Ts,"GET")}async listStorageObjects(e={}){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=new URLSearchParams;e.prefix!==void 0&&e.prefix!==""&&r.set("prefix",e.prefix),e.cursor!==void 0&&e.cursor!==""&&r.set("cursor",e.cursor),e.limit!==void 0&&r.set("limit",String(e.limit)),e.bucket!==void 0&&e.bucket!==""&&r.set("bucket",e.bucket);let s=r.toString(),i=s===""?Me:`${Me}?${s}`,n=await this.adminFetch(i,"GET");return{cursor:n.cursor,objects:n.objects??[]}}async deleteStorageObject(e,r){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let s=`${Me}?key=${encodeURIComponent(e)}${nt(r?.bucket)}`,i=await this.adminFetch(s,"DELETE");return{deleted:i.deleted??!0,key:i.key??e}}async listStorageBuckets(){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return(await this.adminFetch(ws,"GET")).buckets??[]}async uploadStorageObject(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=`${Me}?key=${encodeURIComponent(e.key)}${nt(e.bucket)}`,s=await this.adminFetch(r,"PUT",e.body,e.contentType);return{etag:s.etag,key:s.key??e.key}}async signedStorageUrl(e,r){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let s=r?.expiresInSeconds,i=s===void 0?"":`&expiresIn=${encodeURIComponent(s.toString())}`,n=`${bs}?key=${encodeURIComponent(e)}${i}${nt(r?.bucket)}`,o=await this.adminFetch(n,"GET");if(typeof o.url!="string")throw new TypeError("LunoraClient: storage URL endpoint returned no `url`");return o.url}async listGlobalTables(){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return await this.adminFetch(Is,"GET")}async readGlobalTablePage(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=new URLSearchParams({table:e.table});return e.limit!==void 0&&r.set("limit",String(e.limit)),e.offset!==void 0&&r.set("offset",String(e.offset)),e.filters!==void 0&&e.filters.length>0&&r.set("filters",JSON.stringify(e.filters)),await this.adminFetch(`${Rs}?${r.toString()}`,"GET")}async facetGlobalColumn(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=new URLSearchParams({column:e.column,table:e.table});return e.limit!==void 0&&r.set("limit",String(e.limit)),e.filters!==void 0&&e.filters.length>0&&r.set("filters",JSON.stringify(e.filters)),await this.adminFetch(`${Os}?${r.toString()}`,"GET")}async listVectorIndexes(){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return(await this.adminFetch(Ps,"GET")).indexes??[]}async queryVectorIndex(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return(await this.adminFetch(Ls,"POST",e)).matches??[]}async queryLogArchive(e={}){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=await this.adminFetch(As,"POST",e);return{nextCursor:r.nextCursor,rows:r.rows??[]}}async listKvNamespaces(){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");return(await this.adminFetch(xs,"GET")).namespaces??[]}async listKvKeys(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=A(Fs,{cursor:e.cursor,limit:e.limit,namespace:e.namespace,prefix:e.prefix});return await this.adminFetch(r,"GET")}async getKvValue(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=A(ot,{key:e.key,namespace:e.namespace});return await this.adminFetch(r,"GET")}async putKvValue(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");await this.adminFetch(ot,"PUT",e)}async deleteKvKey(e){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=A(ot,{key:e.key,namespace:e.namespace});await this.adminFetch(r,"DELETE")}async listAuthUsers(e={}){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=A(Ms,{filterField:e.filterField,filterValue:e.filterValue,limit:e.limit,offset:e.offset,search:e.search,searchField:e.searchField,sortBy:e.sortBy,sortDirection:e.sortDirection});return await this.adminFetch(r,"GET")}async createAuthUser(e){return await this.adminFetch(_s,"POST",e)}async setAuthUserRole(e){return await this.adminFetch(Ns,"POST",e)}async banAuthUser(e){return await this.adminFetch(Qs,"POST",e)}async unbanAuthUser(e){return await this.adminFetch(Ds,"POST",e)}async setAuthUserPassword(e){await this.adminFetch(Us,"POST",e)}async removeAuthUser(e){await this.adminFetch(qs,"POST",e)}async impersonateAuthUser(e){return await this.adminFetch(Bs,"POST",e)}async revokeAuthSession(e){await this.adminFetch(Ks,"POST",e)}async revokeAuthUserSessions(e){await this.adminFetch(js,"POST",e)}async getAuthCapabilities(){return await this.adminFetch($s,"GET")}async updateAuthUser(e){return await this.adminFetch(Hs,"POST",e)}async listAuthAccounts(e){return await this.adminFetch(A(zs,{userId:e.userId}),"GET")}async unlinkAuthAccount(e){await this.adminFetch(Ws,"POST",e)}async listAuthPasskeys(e){return await this.adminFetch(A(Vs,{userId:e.userId}),"GET")}async deleteAuthPasskey(e){await this.adminFetch(Gs,"POST",e)}async disableAuthTwoFactor(e){await this.adminFetch(Js,"POST",e)}async listAuthOrganizations(e={}){return await this.adminFetch(A(Xs,{limit:e.limit,offset:e.offset}),"GET")}async listAuthOrgMembers(e){let r=A(Ys,{limit:e.limit,offset:e.offset,organizationId:e.organizationId});return await this.adminFetch(r,"GET")}async listAuthOrgInvitations(e){let r=A(Zs,{limit:e.limit,offset:e.offset,organizationId:e.organizationId});return await this.adminFetch(r,"GET")}async removeAuthOrgMember(e){await this.adminFetch(ei,"POST",e)}async cancelAuthOrgInvitation(e){await this.adminFetch(ti,"POST",e)}async getAuthConfig(){return await this.adminFetch(ri,"GET")}async createAuthOrganization(e){return await this.adminFetch(si,"POST",e)}async updateAuthOrganization(e){return await this.adminFetch(ii,"POST",e)}async deleteAuthOrganization(e){await this.adminFetch(ni,"POST",e)}async addAuthOrgMember(e){return await this.adminFetch(ai,"POST",e)}async inviteAuthOrgMember(e){return await this.adminFetch(oi,"POST",e)}async setAuthOrgMemberRole(e){return await this.adminFetch(ci,"POST",e)}async listAuthOrgTeams(e){let r=A(ui,{limit:e.limit,offset:e.offset,organizationId:e.organizationId});return await this.adminFetch(r,"GET")}async createAuthOrgTeam(e){return await this.adminFetch(hi,"POST",e)}async updateAuthOrgTeam(e){return await this.adminFetch(li,"POST",e)}async removeAuthOrgTeam(e){await this.adminFetch(di,"POST",e)}async listAuthOrgTeamMembers(e){let r=A(fi,{limit:e.limit,offset:e.offset,teamId:e.teamId});return await this.adminFetch(r,"GET")}async addAuthOrgTeamMember(e){return await this.adminFetch(pi,"POST",e)}async removeAuthOrgTeamMember(e){await this.adminFetch(mi,"POST",e)}async listAuthOrgRoles(e){let r=A(yi,{limit:e.limit,offset:e.offset,organizationId:e.organizationId});return await this.adminFetch(r,"GET")}async createAuthOrgRole(e){return await this.adminFetch(vi,"POST",e)}async updateAuthOrgRole(e){return await this.adminFetch(gi,"POST",e)}async deleteAuthOrgRole(e){await this.adminFetch(bi,"POST",e)}async listAuthSessions(e={}){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let r=new URLSearchParams;e.userId!==void 0&&e.userId!==""&&r.set("userId",e.userId),e.limit!==void 0&&r.set("limit",String(e.limit)),e.offset!==void 0&&r.set("offset",String(e.offset));let s=r.toString();return await this.adminFetch(s===""?or:`${or}?${s}`,"GET")}subscribe(e,r,s,i={}){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");let n=r??{},o=Q.key(e.__lunoraRef,n,i.shardKey),c=this.subscriptions.get(o),u=s,l=i.onError;if(!c){this.nextSubId+=1;let f=`sub_${this.nextSubId.toString()}`,p=W(n),m=this.takeHydratedCache(e.__lunoraRef,p,i.shardKey);c={acked:!1,args:n,argsKey:p,callbacks:new Set,checkpointCallbacks:new Set,errorCallbacks:new Set,fn:e,id:f,lastValue:m?.value,optimisticLayers:[],serverBase:m?.value,serverCursor:m?.serverCursor,shardKey:i.shardKey,...m?.serverEpoch===void 0?{}:{serverEpoch:m.serverEpoch}},this.subscriptions.add(c)}if(c.callbacks.add(u),l&&c.errorCallbacks.add(l),i.onCheckpoint&&c.checkpointCallbacks.add(i.onCheckpoint),c.lastValue!==void 0)try{u(c.lastValue)}catch{}this.ensureSocket(i.shardKey),this.sendSubscribeIfOpen(c);let h=c;return()=>{if(h.callbacks.delete(u),l&&h.errorCallbacks.delete(l),i.onCheckpoint&&h.checkpointCallbacks.delete(i.onCheckpoint),h.callbacks.size===0){let f=this.getConnection(h.shardKey);!(f&&I(f,{id:h.id,type:"unsubscribe"}))&&f&&f.pendingUnsubscribes.push({id:h.id,type:"unsubscribe"}),this.subscriptions.remove(h)}}}subscribeShape(e,r,s={}){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");this.nextShapeId+=1;let i=`shape_${this.nextShapeId.toString()}`,n={args:e.args,callbacks:new Set([r]),errorCallbacks:s.onError?new Set([s.onError]):new Set,id:i,name:e.name,onCheckpoint:s.onCheckpoint,rows:new Map,shardKey:s.shardKey,wireArgs:e.args===void 0?void 0:G(e.args,`shape args for '${e.name}'`)};return this.shapeSubscriptions.set(i,n),this.ensureSocket(s.shardKey),this.sendShapeSubscribeIfOpen(n),()=>{this.shapeSubscriptions.delete(i);let o=this.getConnection(n.shardKey);!(o&&I(o,{id:i,type:"shape_unsubscribe"}))&&o&&o.pendingUnsubscribes.push({id:i,type:"shape_unsubscribe"})}}stream(e,r,s={}){if(this.closed)throw new d("INTERNAL","LunoraClient is closed");if(this.WebSocketImpl===void 0)throw new d("INTERNAL","LunoraClient: streams require a WebSocket implementation");this.nextStreamId+=1;let i=`stream_${this.nextStreamId.toString()}`,{shardKey:n}=s,o=r??{},{handle:c,iterable:u}=Oe({maxBuffer:s.maxBuffer,onCancel:a(()=>{let f=this.getConnection(n);f&&I(f,{id:i,type:"unsubscribe"}),this.streams.delete(i)},"onCancel")});this.streams.set(i,{handle:c,shardKey:n}),this.ensureSocket(n);let l=this.getConnection(n),h={id:i,query:{args:G(o,`stream args for '${e.__lunoraRef}'`),functionPath:e.__lunoraRef,shardKey:n},type:"stream"};if(!(l?.wsState==="open"&&I(l,h))&&l){for(l.pendingStreams=l.pendingStreams??[];l.pendingStreams.length>=os;){let f=l.pendingStreams.shift()?.id,p=f?this.streams.get(f):void 0;p&&(p.handle.fail(new d("STREAM_QUEUE_OVERFLOW","stream-start frame evicted while socket was unreachable")),this.streams.delete(f))}l.pendingStreams.push(h)}return u}httpStream(e,r,s={}){if(this.closed)throw new d("CLIENT_CLOSED","LunoraClient is closed");if(!this.fetchImpl)throw new d("INTERNAL","LunoraClient: no `fetch` implementation available");let i={...this.authToken?{authorization:`Bearer ${this.authToken}`}:{},...s.headers};return Jt(e,r,{baseUrl:this.url,fetch:this.fetchImpl,headers:i,maxBuffer:s.maxBuffer,signal:s.signal})}close(){this.closed=!0,this.outboxLeaderRelease?.(),this.outboxLeaderRelease=void 0;for(let e of this.streams.values())e.handle.fail(new d("CLIENT_CLOSED","LunoraClient closed"));this.streams.clear();for(let e of this.connections.values()){if(e.reconnectTimer!==void 0&&(clearTimeout(e.reconnectTimer),e.reconnectTimer=void 0),e.connectTimer!==void 0&&(clearTimeout(e.connectTimer),e.connectTimer=void 0),this.stopHeartbeat(e),e.socket){try{e.socket.close()}catch{}e.socket=void 0}e.wsState="closed"}this.offlineQueue.clear(),this.queuedIdentities.clear(),this.cacheFlushTimer!==void 0&&(clearTimeout(this.cacheFlushTimer),this.cacheFlushTimer=void 0),this.pendingCacheWrites.size>0&&this.flushQueryCacheWrites().catch(()=>{}),this.authTokenListeners.clear(),this.statusListeners.clear(),this.tokenExpiredListeners.clear(),this.mutationSettledListeners.clear(),this.pendingChangeListeners.clear(),this.whisperHandlers.clear(),this.shapeSubscriptions.clear(),this.pokeBuffers.clear(),this.tabCoordinator?.stop(),this.tabCoordinator=void 0}async enqueueOfflineMutation(e,r,s,i,n,o,c){let u=this.identityFingerprint();if(this.outbox){this.outboxMutationCounter+=1;let l=this.outboxMutationCounter;try{await this.outbox.enqueue({args:r,clientId:this.clientId,functionPath:e.__lunoraRef,idempotencyKey:`${this.clientId}:${String(l)}`,identity:u,mutationId:l,shardKey:s})}catch(h){throw at(n),h instanceof Error?h:new Error(String(h))}for(let h of o)h(void 0);return}return new Promise((l,h)=>{let f={args:r,functionPath:e.__lunoraRef,liveAwaiter:!0,id:i,identity:u,precondition:c,onCommit:a(p=>{for(let m of o)m(p)},"onCommit"),reject:a(p=>{this.queuedIdentities.delete(i),at(n),h(p instanceof Error?p:new Error(String(p)))},"reject"),resolve:l,shardKey:s};this.offlineQueue.enqueue(f),f.id!==void 0&&this.queuedIdentities.set(f.id,u)})}async hydratePersistedQueue(){try{let e=await this.offlineQueue.hydrate();for(let r of e)this.ensureSocket(r)}catch{}}hydrateAsOutboxLeader(){let e=a(()=>{this.hydratePersistedQueue().catch(()=>{})},"t"),r=globalThis.navigator?.locks;if(!r){e();return}r.request(`lunora:outbox-leader:${this.url}`,()=>(this.closed||e(),new Promise(s=>{if(this.closed){s();return}this.outboxLeaderRelease=s}))).catch(e)}async hydrateQueryCache(){if(this.queryCache)try{let e=await this.queryCache.load();for(let{key:r,...s}of e){if(rt(this.persistenceVersion,s.version)){this.queryCache.remove(r).catch(()=>{});continue}this.hydratedQueryCache.set(r,s)}}catch{}}takeHydratedCache(e,r,s){let i=Fe(e,r,s),n=this.hydratedQueryCache.get(i);if(n!==void 0)return this.hydratedQueryCache.delete(i),n.identity===this.identityFingerprint()?n:void 0}persistQueryValue(e){let r=e.serverBase;if(!this.queryCache||r===void 0)return;let s=Fe(e.fn.__lunoraRef,e.argsKey,e.shardKey);this.pendingCacheWrites.set(s,{identity:this.identityFingerprint(),serverCursor:e.serverCursor,ts:Date.now(),value:r,...e.serverEpoch===void 0?{}:{serverEpoch:e.serverEpoch},...this.persistenceVersion===void 0?{}:{version:this.persistenceVersion}}),this.cacheFlushTimer??=setTimeout(()=>{this.flushQueryCacheWrites().catch(()=>{})},as)}async flushQueryCacheWrites(){this.cacheFlushTimer=void 0;let{queryCache:e}=this;if(!e){this.pendingCacheWrites.clear();return}let r=[...this.pendingCacheWrites.entries()];this.pendingCacheWrites.clear(),await Promise.allSettled(r.map(([s,i])=>e.put(s,i)))}computeStatus(){let e=[...this.connections.values()];return e.length===0?"idle":e.some(r=>r.wsState==="open")?"connected":e.some(r=>r.wsState==="connecting")?"connecting":"offline"}emitConnectionStatus(){let e=this.computeStatus();e!==this.lastStatus&&(this.lastStatus=e,this.statusListeners.emit(e))}emitItemSettled(e,r,s){this.mutationSettledListeners.emit({args:e.args,code:s===void 0?void 0:s.code,error:s,functionPath:e.functionPath,hadAwaiter:e.liveAwaiter??!1,id:e.id??"",shardKey:e.shardKey,status:r})}applyOptimisticUpdates(e,r,s,i){let n=[],o=[];if(!i)return{confirms:n,rollbacks:o};let c=Q.key(e,r,s),u=this.subscriptions.get(c);if(u){let l=et(u,i);l&&(n.push(l.confirm),o.push(l.rollback))}return{confirms:n,rollbacks:o}}applyOptimisticUpdate(e,r,s,i,n){let{confirms:o,rollbacks:c,store:u}=er(this.subscriptions,s);try{e(u,r)}catch{for(let l=c.length-1;l>=0;l-=1)c[l]?.();return}i.push(...c),n.push(...o)}getConnection(e){return this.connections.get(C(e))}getOrCreateConnection(e){let r=C(e),s=this.connections.get(r);return s||(s={connectTimer:void 0,heartbeatTimer:void 0,pendingUnsubscribes:[],reconnect:st(this.reconnectOptions),reconnectTimer:void 0,shardKey:e,socket:void 0,wasEverConnected:!1,wsState:"idle"},this.connections.set(r,s)),s}wsUrlFor(e,r){let s=[];if(e!==void 0&&s.push(`shard=${encodeURIComponent(e)}`),r!==void 0&&s.push(`token=${encodeURIComponent(r)}`),s.length===0)return this.wsUrl;let i=this.wsUrl.includes("?")?"&":"?";return`${this.wsUrl}${i}${s.join("&")}`}rpcRequestHeaders(e){let r={"content-type":"application/json"};if(this.authToken&&(r.authorization=`Bearer ${this.authToken}`),e.mutationId&&(r["x-lunora-mutation-id"]=e.mutationId),e.clientId!==void 0&&(r["x-lunora-client-id"]=e.clientId),e.clientSeq!==void 0&&(r["x-lunora-client-seq"]=e.clientSeq.toString()),e.attachBookmark){let s=this.bookmark.get();s&&(r["x-d1-bookmark"]=s)}return r}async rpc(e,r,s,i={}){if(!this.fetchImpl)throw new d("INTERNAL","LunoraClient: no `fetch` implementation available");let n=this.rpcRequestHeaders(i),o=await this.fetchImpl(V(this.url,es),{body:JSON.stringify({args:G(r,`args for '${e}'`),functionPath:e,shardKey:s}),headers:n,method:"POST"});if(i.captureBookmark){let u=o.headers.get("x-d1-bookmark");u&&this.bookmark.set(u)}let c;try{c=await o.json()}catch{let u=o.statusText?` ${o.statusText}`:"";throw new d("INTERNAL",`LunoraClient: response was not JSON (status ${o.status.toString()}${u})`)}if("error"in c)throw le(c.error);if(!o.ok){let u=o.statusText?` ${o.statusText}`:"";throw new d("INTERNAL",`LunoraClient: request failed (status ${o.status.toString()}${u})`)}return i.onMutationAck?.(c.lastMutationId),i.onCommitCursor?.(c.commitCursor),w(c.result)}async adminFetch(e,r,s,i){if(!this.fetchImpl)throw new d("INTERNAL","LunoraClient: no `fetch` implementation available");let n={};this.authToken&&(n.authorization=`Bearer ${this.authToken}`);let o=s instanceof ArrayBuffer||s instanceof Blob,c;s===void 0?c=void 0:o?(c=s,i!==void 0&&(n["content-type"]=i)):(c=JSON.stringify(s),n["content-type"]="application/json");let u=await this.fetchImpl(V(this.url,e),{body:c,headers:n,method:r}),l;try{l=await u.json()}catch{let h=u.statusText?` ${u.statusText}`:"";throw new d("INTERNAL",`LunoraClient: response was not JSON (status ${u.status.toString()}${h})`)}if(typeof l=="object"&&l!==null&&"error"in l){let h=l.error,f=new Error(h.message??"admin request failed");throw f.code=h.code,f}if(!u.ok){let h=u.statusText?` ${u.statusText}`:"";throw new d("INTERNAL",`LunoraClient: admin request failed (status ${u.status.toString()}${h})`)}return l}effectiveConnectionContext(e){let r=this.connectionContextHolders.get(e);return r&&r.length>0?r[r.length-1]?.context:this.connectionContexts.get(e)??this.defaultConnectionContext}refreshConnectionContext(e){let r=this.connections.get(e);r?.wsState==="open"&&this.sendConnectEnvelope(r)}sendConnectEnvelope(e){let r=this.effectiveConnectionContext(C(e.shardKey));I(e,{clientId:this.clientId,id:"connect",type:"connect",...r===void 0?{}:{context:r}})}resendShapeSubscriptions(e){for(let r of this.shapeSubscriptions.values())C(r.shardKey)===C(e)&&this.sendShapeSubscribeIfOpen(r)}ensureSocket(e){if(this.closed||this.WebSocketImpl===void 0||this.tabCoordinator&&!this.tabCoordinator.isLeader())return;let r=this.getOrCreateConnection(e);if(!(r.wsState==="open"||r.wsState==="connecting")){if(r.wsState="connecting",this.emitConnectionStatus(),typeof this.wsToken=="function"){this.openSocketWithProvidedToken(r,e,this.wsToken).catch(()=>{});return}this.openSocket(r,e,this.wsToken)}}async openSocketWithProvidedToken(e,r,s){let i;try{i=await s()}catch{this.handleDisconnect(e);return}this.closed||this.WebSocketImpl===void 0||e.wsState!=="connecting"||e.socket!==void 0||this.openSocket(e,r,i)}openSocket(e,r,s){if(this.WebSocketImpl===void 0)return;let i=new this.WebSocketImpl(this.wsUrlFor(r,s));e.socket=i,this.connectTimeoutMs>0&&(e.connectTimer=setTimeout(()=>{if(e.connectTimer=void 0,!(e.socket!==i||e.wsState!=="connecting")){try{i.close()}catch{}this.handleDisconnect(e)}},this.connectTimeoutMs)),i.addEventListener("open",()=>{if(e.socket!==i)return;e.connectTimer!==void 0&&(clearTimeout(e.connectTimer),e.connectTimer=void 0),e.wsState="open",e.wasEverConnected=!0,e.reconnect.reset(),this.emitConnectionStatus(),this.sendConnectEnvelope(e),this.markShardPendingAck(r);for(let o of this.subscriptions.all())C(o.shardKey)===C(r)&&this.sendSubscribeIfOpen(o);if(this.resendShapeSubscriptions(r),e.pendingUnsubscribes.length>0){let o=e.pendingUnsubscribes;e.pendingUnsubscribes=[];for(let{id:c,type:u}of o)I(e,{id:c,type:u})}if(e.pendingStreams&&e.pendingStreams.length>0){let o=e.pendingStreams;e.pendingStreams=[];for(let c of o)I(e,c)}let n=this.whisperHandlers.get(C(r));if(n)for(let o of n.keys())I(e,{topic:o,type:"whisper_subscribe"});this.flushOfflineQueue(r).catch(()=>{}),this.startHeartbeat(e)}),i.addEventListener("message",n=>{this.handleServerMessage(n.data,r)}),i.addEventListener("close",n=>{e.socket===i&&(n?.code===4001&&this.notifyTokenExpired(),this.handleDisconnect(e))}),i.addEventListener("error",()=>{e.socket===i&&(e.wsState==="connecting"||e.wsState==="open")&&this.handleDisconnect(e)})}handleDisconnect(e){if(this.closed||e.wsState==="idle"||e.wsState==="closed")return;this.stopHeartbeat(e),e.connectTimer!==void 0&&(clearTimeout(e.connectTimer),e.connectTimer=void 0),e.socket=void 0,e.wsState="idle",this.emitConnectionStatus(),this.markShardPendingAck(e.shardKey);let r=new Set((e.pendingStreams??[]).map(i=>i.id));for(let[i,n]of this.streams)C(n.shardKey)===C(e.shardKey)&&!r.has(i)&&(n.handle.fail(new d("STREAM_DISCONNECTED","stream terminated: WebSocket disconnected")),this.streams.delete(i));if(this.WebSocketImpl===void 0)return;let s=e.reconnect.next();e.reconnectTimer=setTimeout(()=>{e.reconnectTimer=void 0,this.ensureSocket(e.shardKey)},s)}startHeartbeat(e){this.stopHeartbeat(e),!(this.heartbeatIntervalMs<=0)&&(e.heartbeatTimer=setInterval(()=>{if(!(e.wsState!=="open"||!e.socket))try{e.socket.send(ss)}catch{}},this.heartbeatIntervalMs))}stopHeartbeat(e){e.heartbeatTimer!==void 0&&(clearInterval(e.heartbeatTimer),e.heartbeatTimer=void 0)}markShardPendingAck(e){let r=C(e);for(let s of this.subscriptions.all())C(s.shardKey)===r&&(s.acked=!1)}sendSubscribeIfOpen(e){let r=this.getConnection(e.shardKey);if(r?.wsState!=="open"||e.acked)return;let s=e.fn.__lunoraTable??e.fn.__lunoraRef;I(r,{id:e.id,query:{args:P(e.args),functionPath:e.fn.__lunoraRef,table:s,...e.serverCursor===void 0?{}:{sinceSeq:e.serverCursor},...e.serverEpoch===void 0?{}:{sinceEpoch:e.serverEpoch}},type:"subscribe"})}sendShapeSubscribeIfOpen(e){let r=this.getConnection(e.shardKey);r?.wsState==="open"&&I(r,{id:e.id,shape:{name:e.name,...e.wireArgs===void 0?{}:{args:e.wireArgs}},type:"shape_subscribe",...e.serverCursor===void 0?{}:{sinceCheckpoint:e.serverCursor},...e.serverEpoch===void 0?{}:{sinceEpoch:e.serverEpoch}})}handleServerMessage(e,r){let s=Ei(e);if(s===void 0)return;let i;try{i=JSON.parse(s)}catch{return}switch(i.type){case"ack":{let n=this.subscriptions.getById(i.id);n&&(n.acked=!0);return}case"chunk":{let{data:n,id:o}=i;this.streams.get(o)?.handle.push(w(n));return}case"complete":{this.handleCompleteMessage(i.id);return}case"data":case"delta":{this.handleDataMessage(i);return}case"error":{this.handleErrorMessage(i);break}case"pokeEnd":{this.handlePokeEnd(i);break}case"pokePart":{this.handlePokePart(i);break}case"pokeStart":{this.handlePokeStart(i);break}case"resume":{this.handleResumeMessage(i);break}case"settled":{this.handleSettledMessage(i);break}case"whisper":{this.dispatchWhisper(i,r);break}}}handleErrorMessage(e){if(e.error?.code==="TOKEN_EXPIRED"){this.notifyTokenExpired();return}let{id:r}=e,s=r===void 0?void 0:this.streams.get(r);if(s&&r!==void 0){s.handle.fail(Ci(e)),this.streams.delete(r);return}let i=r===void 0?void 0:this.subscriptions.getById(r);if(i){hr(i.errorCallbacks,ur(e));return}let n=r===void 0?void 0:this.shapeSubscriptions.get(r);n&&hr(n.errorCallbacks,ur(e))}handlePokeStart(e){Zr(this.pokeBuffers,t.MAX_POKE_BUFFERS),this.pokeBuffers.set(e.pokeId,{baseCheckpoint:e.baseCheckpoint,epoch:e.epoch,lastMutationId:new Map,parts:new Map})}handlePokePart(e){let r=this.pokeBuffers.get(e.pokeId);if(!r)return;let s=r.parts.get(e.shapeId)??[];for(let i of e.rowsPatch)s.push(i.value===void 0?i:{...i,value:w(i.value)});r.parts.set(e.shapeId,s),e.lastMutationId!==void 0&&r.lastMutationId.set(e.shapeId,e.lastMutationId)}handlePokeEnd(e){let r=this.pokeBuffers.get(e.pokeId);if(r){this.pokeBuffers.delete(e.pokeId);for(let[s,i]of r.parts){let n=this.shapeSubscriptions.get(s);if(!n)continue;let o=r.epoch!==void 0&&n.serverEpoch!==void 0&&r.epoch!==n.serverEpoch,c=r.baseCheckpoint!==void 0&&n.serverCursor!==void 0&&n.serverCursor!==r.baseCheckpoint;if(o||c){n.rows.clear(),n.serverCursor=void 0,n.serverEpoch=void 0,this.emitShapeRows(n),this.sendShapeSubscribeIfOpen(n);continue}rs(n.rows,i),e.checkpoint!==void 0&&(n.serverCursor=e.checkpoint),e.epoch!==void 0&&(n.serverEpoch=e.epoch);let u=r.lastMutationId.get(s);u!==void 0&&(n.lastMutationId=u),this.emitShapeRows(n),n.onCheckpoint?.({checkpoint:n.serverCursor,mutationId:n.lastMutationId})}}}emitShapeRows(e){let r=[...e.rows.values()];for(let s of e.callbacks)try{s(r)}catch{}}handleDataMessage(e){let{id:r}=e,s=r?this.subscriptions.getById(r):void 0;if(!s)return;let i=this.resolveDataPayload(e,s);if(s.serverBase=i,e.cursor!==void 0&&(s.serverCursor=e.cursor),e.epoch!==void 0&&(s.serverEpoch=e.epoch),this.persistQueryValue(s),tt(s,s.serverCursor),ue(s,s.optimisticLayers.length===0?i:he(i,s.optimisticLayers)),this.tabCoordinator?.isLeader()){let n=Q.key(s.fn.__lunoraRef,s.args,s.shardKey);this.tabCoordinator.broadcastSubscriptionData(n,i)}}handleResumeMessage(e){let r=this.subscriptions.getById(e.id);r&&this.ackAndAdvanceCursor(r,e.cursor,e.epoch)}handleSettledMessage(e){let r=this.subscriptions.getById(e.id);if(r){this.ackAndAdvanceCursor(r,e.cursor,e.epoch),e.lastMutationId!==void 0&&(r.lastMutationId=e.lastMutationId);for(let s of r.checkpointCallbacks)s({checkpoint:r.serverCursor,mutationId:r.lastMutationId})}}ackAndAdvanceCursor(e,r,s){e.acked=!0,(r!==void 0&&r!==e.serverCursor||s!==void 0&&s!==e.serverEpoch)&&(r!==void 0&&(e.serverCursor=r),s!==void 0&&(e.serverEpoch=s),this.persistQueryValue(e),tt(e,e.serverCursor)&&ue(e,he(e.serverBase,e.optimisticLayers)))}resolveDataPayload(e,r){if("data"in e&&e.data!==void 0)return w(e.data);let s=w(e.delta);if(zt(s)&&r.serverBase!==void 0){let i=Wt(r.serverBase,s);if(i!==void 0)return i}return s}dispatchWhisper(e,r){let s=this.whisperHandlers.get(C(r))?.get(e.topic);if(!s)return;let i=w(e.data);for(let n of s)try{n(i,e.from)}catch{}}notifyTokenExpired(){this.tokenExpiredListeners.emit()}handleCompleteMessage(e){let r=this.streams.get(e);if(r){r.handle.complete(),this.streams.delete(e);return}let s=this.subscriptions.getById(e);s&&this.subscriptions.remove(s)}unpersist(e){e&&this.persistence?.remove(e).catch(r=>{te(this.onPersistenceError,"remove",r,e)})}identityFingerprint(){if(this.authSubject!==void 0)return this.authSubject===null?null:`subj:${this.authSubject}`;let e=this.authToken;return e===null?null:this.hashToken(e)}hashToken(e){let r=2166136261,s=5381;for(let i=0;i<e.length;i+=1){let n=e.charCodeAt(i);r^=n,r=Math.imul(r,16777619),s=Math.imul(s,33)+n}return`${e.length.toString(36)}:${(r>>>0).toString(36)}:${(s>>>0).toString(36)}`}isSameCredentialUnderTokenHash(e){if(e===null||e.startsWith("subj:"))return!1;let r=this.authToken;return r===null?!1:this.hashToken(r)===e}rejectQueuedForIdentityChange(){let e=this.offlineQueue.drain();for(let r of e){this.queuedIdentities.delete(r.id??""),this.unpersist(r.id);let s=new Error("offline mutation discarded: auth identity changed before replay");s.code="OFFLINE_IDENTITY_CHANGED",r.reject(s),this.emitItemSettled(r,"rejected",s)}this.clearQueryCacheForIdentityChange()}restampQueuedIdentity(e,r){for(let[s,i]of this.queuedIdentities)i===e&&this.queuedIdentities.set(s,r)}clearQueryCacheForIdentityChange(){this.cacheFlushTimer!==void 0&&(clearTimeout(this.cacheFlushTimer),this.cacheFlushTimer=void 0),this.pendingCacheWrites.clear(),this.hydratedQueryCache.clear(),this.queryCache?.clear().catch(()=>{})}async flushOfflineQueue(e){let r=this.offlineQueue.drainConflict();for(let l of r){this.unpersist(l.id),this.queuedIdentities.delete(l.id??"");let h=new Error("offline mutation skipped: precondition failed before replay");h.code="OFFLINE_PRECONDITION_FAILED",this.emitItemSettled(l,"rejected",h)}let s=C(e),i=this.offlineQueue.drain(l=>C(l.shardKey)===s);if(i.length===0)return;let n=this.identityFingerprint(),o=[];for(let l of i)this.passesReplayIdentityGate(l,n)&&o.push(l);if(o.length===0)return;let c=this.encodableOrSettleTerminal(o);if(c.length===0)return;if(c.length===1){await this.replaySequential(c);return}let u=[];for(let l=0;l<c.length;l+=it){let h=c.slice(l,l+it),f=await this.replayBatched(h);if(u.push(...f.requeue),f.stop){u.push(...c.slice(l+it));break}}u.length>0&&this.offlineQueue.requeue(u)}encodableOrSettleTerminal(e){let r=[];for(let s of e)try{G(s.args,`args for '${s.functionPath}'`),r.push(s)}catch(i){this.settleReplayTerminal(s,i instanceof Error?i:new Error(String(i)))}return r}passesReplayIdentityGate(e,r){let s=e.id===void 0?void 0:this.queuedIdentities.get(e.id),i=s===void 0?e.identity:s;if(i!==void 0&&i!==r&&!this.isSameCredentialUnderTokenHash(i)){this.queuedIdentities.delete(e.id??""),this.unpersist(e.id);let n=new Error("offline mutation skipped: auth identity changed before replay");return n.code="OFFLINE_IDENTITY_CHANGED",e.reject(n),this.emitItemSettled(e,"rejected",n),!1}return this.queuedIdentities.delete(e.id??""),!0}settleReplaySuccess(e,r,s){this.unpersist(e.id),e.onCommit?.(s),e.resolve(r),this.emitItemSettled(e,"committed")}settleReplayTerminal(e,r){this.unpersist(e.id),e.reject(r),this.emitItemSettled(e,"rejected",r)}async replaySequential(e){for(let r=0;r<e.length;r+=1){let s=e[r];if(s)try{let i,n=await this.rpc(s.functionPath,s.args,s.shardKey,{captureBookmark:!0,mutationId:s.id,onCommitCursor:a(o=>{i=o},"onCommitCursor")});this.settleReplaySuccess(s,n,i)}catch(i){if(i.code!==void 0){this.settleReplayTerminal(s,i);continue}this.offlineQueue.requeue(e.slice(r));return}}}async replayBatched(e){if(!this.fetchImpl)return{requeue:e,stop:!0};let r;try{r=await this.fetchImpl(V(this.url,ar),{body:JSON.stringify({calls:e.map((n,o)=>({args:G(n.args,`args for '${n.functionPath}'`),functionPath:n.functionPath,id:o,mutationId:n.id,shardKey:n.shardKey}))}),headers:this.rpcRequestHeaders({attachBookmark:!0}),method:"POST"})}catch{return{requeue:e,stop:!0}}let s=r.headers.get("x-d1-bookmark");s&&this.bookmark.set(s);let i;try{i=await r.json()}catch{return{requeue:e,stop:!0}}if(!i.results){if(i.error){let n=le(i.error);for(let o of e)this.settleReplayTerminal(o,n);return{requeue:[],stop:!1}}return{requeue:e,stop:!0}}return{requeue:this.settleReplayBatchSlots(e,i.results),stop:!1}}settleReplayBatchSlots(e,r){let s=new Map;for(let n of r)typeof n.id=="number"&&n.body!==void 0&&s.set(n.id,n.body);let i=[];for(let[n,o]of e.entries()){let c=s.get(n);c===void 0?i.push(o):"error"in c?Ii.has(c.error.code)?i.push(o):this.settleReplayTerminal(o,le(c.error)):this.settleReplaySuccess(o,w(c.result),c.commitCursor)}return i}};var lr=O(ht(),1),dr=O($(),1);var Oi=a(()=>{let t=(0,lr.c)(4),e=Je(),r,s,i;return t[0]!==e?(r=a(n=>e.onConnectionStatus(()=>{n()}),"n"),s=a(()=>e.connectionStatus(),"e"),i=a(()=>e.connectionStatus(),"r"),t[0]=e,t[1]=r,t[2]=s,t[3]=i):(r=t[1],s=t[2],i=t[3]),(0,dr.useSyncExternalStore)(r,s,i)},"f");export{ct as a,vr as b,ze as c,Or as d,Lr as e,Je as f,Oi as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as de,c as ce}from"./chunk-KUVMORDQ.js";import{a as ie}from"./chunk-QWGT25SE.js";import{a as le}from"./chunk-X2FQ6B5V.js";import{a as ne}from"./chunk-LFKCLLPT.js";import{a as oe}from"./chunk-UNUU7CJJ.js";import"./chunk-XXQUMVWH.js";import{b as te}from"./chunk-OWADN6BI.js";import{a as se}from"./chunk-LFXFP4IF.js";import{b as ae}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as Z}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import"./chunk-2OUPA2WJ.js";import{b as Y}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as re}from"./chunk-GXZAXNZI.js";import"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{a as X}from"./chunk-XQCVZAGU.js";import{d as z,q as ee}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as M,e as Q,f as he,g as fe,h as pe,j as V}from"./chunk-3XIESWL4.js";var H=Q(fe(),1),F=Q(he(),1);var a=Q(pe(),1);var me=M(o=>Math.min(100,Math.max(0,o)),"V"),ge=M((o,e)=>{if(!Number.isFinite(e)||e<=0)return{leftPercent:0,widthPercent:100};let t=me(o.offsetMs/e*100),s=o.durationMs/e*100,r=Math.max(.5,Math.min(me(s),100-t));return{leftPercent:t,widthPercent:r}},"he"),xe=M((o,e)=>{let t=e.trim().toLowerCase();return t===""?[...o]:o.filter(s=>s.rootName.toLowerCase().includes(t)||s.functionPath.toLowerCase().includes(t)||s.traceId.toLowerCase().includes(t))},"fe"),G=M(o=>Number.isFinite(o)?o>0&&o<1?`${o.toFixed(2)}ms`:`${String(Math.round(o))}ms`:"\u2014","U"),be=14,we=M(o=>Array.isArray(o?.traces)?o.traces:[],"ge"),Ne=M(o=>{let e=(0,H.c)(50),{span:t,traceDurationMs:s}=o,r=z(),n;e[0]!==t||e[1]!==s?(n=ge(t,s),e[0]=t,e[1]=s,e[2]=n):n=e[2];let{leftPercent:P,widthPercent:x}=n,L;e[3]!==t.attributes?(L=ie(t.attributes),e[3]=t.attributes,e[4]=L):L=e[4];let k=L,C=t.depth*be,y;e[5]!==C?(y={paddingLeft:C},e[5]=C,e[6]=y):y=e[6];let b=y,c=`${String(P)}%`,w=`${String(x)}%`,p;e[7]!==c||e[8]!==w?(p={left:c,width:w},e[7]=c,e[8]=w,e[9]=p):p=e[9];let l=p,f=t.depth,i;e[10]!==t.ok||e[11]!==r?(i=t.ok?null:(0,a.jsx)("span",{"aria-label":r("Errored span"),className:"mr-1 text-destructive","data-testid":"tr-span-error",role:"img",children:"\u25CF"}),e[10]=t.ok,e[11]=r,e[12]=i):i=e[12];let v;e[13]!==b||e[14]!==t.name||e[15]!==i?(v=(0,a.jsxs)("span",{className:"w-56 shrink-0 truncate",role:"gridcell",style:b,title:t.name,children:[i,t.name]}),e[13]=b,e[14]=t.name,e[15]=i,e[16]=v):v=e[16];let d;e[17]!==t.durationMs||e[18]!==t.offsetMs||e[19]!==r?(d=r("starts {offset} in, runs {duration}",{duration:G(t.durationMs),offset:G(t.offsetMs)}),e[17]=t.durationMs,e[18]=t.offsetMs,e[19]=r,e[20]=d):d=e[20];let N=t.ok?"bg-primary/70":"bg-destructive",m;e[21]!==N?(m=V("absolute inset-y-0 rounded-sm",N),e[21]=N,e[22]=m):m=e[22];let u;e[23]!==l||e[24]!==P||e[25]!==m||e[26]!==x?(u=(0,a.jsx)("span",{className:m,"data-left":P,"data-testid":"tr-span-bar","data-width":x,style:l}),e[23]=l,e[24]=P,e[25]=m,e[26]=x,e[27]=u):u=e[27];let h;e[28]!==d||e[29]!==u?(h=(0,a.jsx)("span",{"aria-label":d,className:"relative h-3 flex-1 overflow-hidden rounded-sm bg-muted",role:"gridcell",children:u}),e[28]=d,e[29]=u,e[30]=h):h=e[30];let g;e[31]!==t.durationMs?(g=G(t.durationMs),e[31]=t.durationMs,e[32]=g):g=e[32];let I;e[33]!==g?(I=(0,a.jsx)("span",{className:"w-16 shrink-0 text-right tabular-nums text-muted-foreground",role:"gridcell",children:g}),e[33]=g,e[34]=I):I=e[34];let S;e[35]!==t.error?(S=t.error===void 0?null:(0,a.jsx)("span",{className:"text-destructive","data-testid":"tr-span-error-message",title:t.error.message,children:`${t.error.type}: ${t.error.message}`}),e[35]=t.error,e[36]=S):S=e[36];let T;e[37]!==S?(T=(0,a.jsx)("span",{className:"w-64 shrink-0 truncate text-muted-foreground",role:"gridcell",children:S}),e[37]=S,e[38]=T):T=e[38];let E;e[39]!==k?(E=k===""?null:(0,a.jsx)("span",{"data-testid":"tr-span-attributes",title:k,children:k}),e[39]=k,e[40]=E):E=e[40];let $;e[41]!==E?($=(0,a.jsx)("span",{className:"w-64 shrink-0 truncate text-muted-foreground",role:"gridcell",children:E}),e[41]=E,e[42]=$):$=e[42];let _;return e[43]!==t.depth||e[44]!==v||e[45]!==h||e[46]!==I||e[47]!==T||e[48]!==$?(_=(0,a.jsxs)("div",{className:"flex items-center gap-2 border-b border-border px-3 py-1.5 font-mono text-xs last:border-b-0 hover:bg-muted/50","data-depth":f,"data-testid":"tr-span-row",role:"row",children:[v,h,I,T,$]}),e[43]=t.depth,e[44]=v,e[45]=h,e[46]=I,e[47]=T,e[48]=$,e[49]=_):_=e[49],_},"xe"),Me=M(o=>{let e=(0,H.c)(50),{expanded:t,onToggle:s,trace:r}=o,n=z(),P;e[0]!==s||e[1]!==r.traceId?(P=M(()=>{s(r.traceId)},"S"),e[0]=s,e[1]=r.traceId,e[2]=P):P=e[2];let x=P,L=`tr-row-${r.traceId}`,k=`tr-waterfall-${r.traceId}`,C=`tr-toggle-${r.traceId}`,y=t?"\u25BE":"\u25B8",b;e[3]!==y?(b=(0,a.jsx)("span",{"aria-hidden":"true",className:"w-3 shrink-0 text-xs text-muted-foreground",children:y}),e[3]=y,e[4]=b):b=e[4];let c;e[5]!==r.rootName?(c=(0,a.jsx)("span",{className:"w-56 shrink-0 truncate text-sm font-medium",title:r.rootName,children:r.rootName}),e[5]=r.rootName,e[6]=c):c=e[6];let w;e[7]!==r.functionPath?(w=(0,a.jsx)("span",{className:"w-48 shrink-0 truncate font-mono text-xs text-muted-foreground",title:r.functionPath,children:r.functionPath}),e[7]=r.functionPath,e[8]=w):w=e[8];let p;e[9]!==r.durationMs?(p=G(r.durationMs),e[9]=r.durationMs,e[10]=p):p=e[10];let l;e[11]!==p?(l=(0,a.jsx)("span",{className:"w-20 shrink-0 text-right font-mono text-xs tabular-nums text-muted-foreground",children:p}),e[11]=p,e[12]=l):l=e[12];let f;e[13]!==n||e[14]!==r.spans.length?(f=n("{count} spans",{count:r.spans.length}),e[13]=n,e[14]=r.spans.length,e[15]=f):f=e[15];let i;e[16]!==f?(i=(0,a.jsx)("span",{className:"w-20 shrink-0 text-right font-mono text-xs tabular-nums text-muted-foreground",children:f}),e[16]=f,e[17]=i):i=e[17];let v=r.ok?"secondary":"destructive",d;e[18]!==n||e[19]!==r.ok?(d=r.ok?n("ok"):n("error"),e[18]=n,e[19]=r.ok,e[20]=d):d=e[20];let N;e[21]!==v||e[22]!==d?(N=(0,a.jsx)("span",{className:"shrink-0",children:(0,a.jsx)(Y,{variant:v,children:d})}),e[21]=v,e[22]=d,e[23]=N):N=e[23];let m;e[24]!==r.startTs?(m=ee(r.startTs),e[24]=r.startTs,e[25]=m):m=e[25];let u;e[26]!==m?(u=(0,a.jsx)("span",{className:"flex-1 truncate text-right font-mono text-xs tabular-nums text-muted-foreground",children:m}),e[26]=m,e[27]=u):u=e[27];let h;e[28]!==t||e[29]!==x||e[30]!==l||e[31]!==i||e[32]!==N||e[33]!==u||e[34]!==k||e[35]!==C||e[36]!==b||e[37]!==c||e[38]!==w?(h=(0,a.jsxs)("button",{"aria-controls":k,"aria-expanded":t,className:"flex w-full items-center gap-3 px-3 py-2 text-left hover:bg-muted/50","data-testid":C,onClick:x,type:"button",children:[b,c,w,l,i,N,u]}),e[28]=t,e[29]=x,e[30]=l,e[31]=i,e[32]=N,e[33]=u,e[34]=k,e[35]=C,e[36]=b,e[37]=c,e[38]=w,e[39]=h):h=e[39];let g;e[40]!==t||e[41]!==n||e[42]!==r.durationMs||e[43]!==r.spans||e[44]!==r.traceId?(g=t&&(0,a.jsx)("div",{"aria-label":n("Trace waterfall"),className:"bg-muted/20","data-testid":`tr-waterfall-${r.traceId}`,id:`tr-waterfall-${r.traceId}`,role:"grid",children:r.spans.map(S=>(0,a.jsx)(Ne,{span:S,traceDurationMs:r.durationMs},S.spanId))}),e[40]=t,e[41]=n,e[42]=r.durationMs,e[43]=r.spans,e[44]=r.traceId,e[45]=g):g=e[45];let I;return e[46]!==h||e[47]!==g||e[48]!==L?(I=(0,a.jsxs)("div",{className:"border-b border-border last:border-b-0","data-testid":L,children:[h,g]}),e[46]=h,e[47]=g,e[48]=L,e[49]=I):I=e[49],I},"be"),Be=M(o=>{let e=(0,H.c)(44),{initialShardKey:t}=o,s=z(),[r]=(0,F.useState)(de),[n,P]=(0,F.useState)(r?.shardKey!==void 0&&r.shardKey!==""?r.shardKey:t??""),[x,L]=(0,F.useState)(r?.traceId??""),[k,C]=(0,F.useState)(ve),y;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=[],e[0]=y):y=e[0],(0,F.useEffect)(ke,y);let b;e[1]!==n?(b=n.trim(),e[1]=n,e[2]=b):b=e[2];let c=ne(b,400),w;e[3]===Symbol.for("react.memo_cache_sentinel")?(w={},e[3]=w):w=e[3];let p;e[4]!==c?(p={live:!0,shardKey:c},e[4]=c,e[5]=p):p=e[5];let{data:l,error:f,errorSource:i,isLoading:v,liveError:d}=te(re.getTraces,w,p),N,m;e[6]!==l||e[7]!==c?(N=M(()=>{l!==void 0&&ae(c)},"N"),m=[l,c],e[6]=l,e[7]=c,e[8]=N,e[9]=m):(N=e[8],m=e[9]),(0,F.useEffect)(N,m);let u;if(e[10]!==l||e[11]!==f||e[12]!==i||e[13]!==k||e[14]!==v||e[15]!==d||e[16]!==x||e[17]!==n||e[18]!==s){let h=we(l),g=l?.total??h.length,I=g>h.length,S=xe(h,x),T;e[20]===Symbol.for("react.memo_cache_sentinel")?(T=M(K=>{L(K.target.value)},"T"),e[20]=T):T=e[20];let E=T,$;e[21]===Symbol.for("react.memo_cache_sentinel")?($=M(K=>{C(ue=>{let q=new Set(ue);return q.has(K)?q.delete(K):q.add(K),q})},"$"),e[21]=$):$=e[21];let _=$,J=f===null&&S.length===0&&!v,j;e[22]!==n?(j=(0,a.jsx)(se,{onChange:P,testId:"tr-shard-input",value:n}),e[22]=n,e[23]=j):j=e[23];let A;e[24]!==s?(A=s("Search traces"),e[24]=s,e[25]=A):A=e[25];let D;e[26]!==s?(D=s("search trace or function"),e[26]=s,e[27]=D):D=e[27];let B;e[28]!==x||e[29]!==A||e[30]!==D?(B=(0,a.jsx)(Z,{"aria-label":A,className:"h-8 w-56","data-testid":"tr-search",onChange:E,placeholder:D,value:x}),e[28]=x,e[29]=A,e[30]=D,e[31]=B):B=e[31];let O;e[32]!==d?(O=(0,a.jsx)(le,{message:d,prefix:"tr"}),e[32]=d,e[33]=O):O=e[33];let R;e[34]!==j||e[35]!==B||e[36]!==O?(R=(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[j,B,O]}),e[34]=j,e[35]=B,e[36]=O,e[37]=R):R=e[37];let U;e[38]!==f||e[39]!==i?(U=f!==null&&(0,a.jsx)(oe,{error:i,testId:"tr-error"}),e[38]=f,e[39]=i,e[40]=U):U=e[40];let W;e[41]!==J||e[42]!==s?(W=J&&(0,a.jsx)(X,{description:s("Traces recorded with ctx.trace show up here as your app handles traffic. The span buffer resets when the shard hibernates."),icon:(0,a.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M4 6h10M7 12h13M10 18h7"})}),testId:"tr-empty",title:s("No traces")}),e[41]=J,e[42]=s,e[43]=W):W=e[43],u=(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-traces-panel",children:[R,U,W,f===null&&I&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"tr-truncated",children:s("Showing the {shown} most recent of {total} traces in the buffer.",{shown:h.length,total:g})}),f===null&&S.length>0&&(0,a.jsx)("div",{"aria-label":s("Recent traces"),className:"overflow-hidden rounded-xl border border-border shadow-xs","data-testid":"tr-list",children:S.map(K=>(0,a.jsx)(Me,{expanded:k.has(K.traceId),onToggle:_,trace:K},K.traceId))})]}),e[10]=l,e[11]=f,e[12]=i,e[13]=k,e[14]=v,e[15]=d,e[16]=x,e[17]=n,e[18]=s,e[19]=u}else u=e[19];return u},"Be");function ve(){return new Set}M(ve,"we");function ke(){ce()}M(ke,"Ne");export{Be as TracesPanel};
|
|
1
|
+
import{b as de,c as ce}from"./chunk-KUVMORDQ.js";import{a as ie}from"./chunk-QWGT25SE.js";import{a as le}from"./chunk-X2FQ6B5V.js";import{a as ne}from"./chunk-LFKCLLPT.js";import{a as oe}from"./chunk-UNUU7CJJ.js";import"./chunk-XXQUMVWH.js";import{b as te}from"./chunk-XSD4Y6SQ.js";import{a as se}from"./chunk-LFXFP4IF.js";import{b as ae}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as Z}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import"./chunk-2OUPA2WJ.js";import{b as Y}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as re}from"./chunk-GXZAXNZI.js";import"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{a as X}from"./chunk-XQCVZAGU.js";import{d as z,q as ee}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as M,e as Q,f as he,g as fe,h as pe,j as V}from"./chunk-3XIESWL4.js";var H=Q(fe(),1),F=Q(he(),1);var a=Q(pe(),1);var me=M(o=>Math.min(100,Math.max(0,o)),"V"),ge=M((o,e)=>{if(!Number.isFinite(e)||e<=0)return{leftPercent:0,widthPercent:100};let t=me(o.offsetMs/e*100),s=o.durationMs/e*100,r=Math.max(.5,Math.min(me(s),100-t));return{leftPercent:t,widthPercent:r}},"he"),xe=M((o,e)=>{let t=e.trim().toLowerCase();return t===""?[...o]:o.filter(s=>s.rootName.toLowerCase().includes(t)||s.functionPath.toLowerCase().includes(t)||s.traceId.toLowerCase().includes(t))},"fe"),G=M(o=>Number.isFinite(o)?o>0&&o<1?`${o.toFixed(2)}ms`:`${String(Math.round(o))}ms`:"\u2014","U"),be=14,we=M(o=>Array.isArray(o?.traces)?o.traces:[],"ge"),Ne=M(o=>{let e=(0,H.c)(50),{span:t,traceDurationMs:s}=o,r=z(),n;e[0]!==t||e[1]!==s?(n=ge(t,s),e[0]=t,e[1]=s,e[2]=n):n=e[2];let{leftPercent:P,widthPercent:x}=n,L;e[3]!==t.attributes?(L=ie(t.attributes),e[3]=t.attributes,e[4]=L):L=e[4];let k=L,C=t.depth*be,y;e[5]!==C?(y={paddingLeft:C},e[5]=C,e[6]=y):y=e[6];let b=y,c=`${String(P)}%`,w=`${String(x)}%`,p;e[7]!==c||e[8]!==w?(p={left:c,width:w},e[7]=c,e[8]=w,e[9]=p):p=e[9];let l=p,f=t.depth,i;e[10]!==t.ok||e[11]!==r?(i=t.ok?null:(0,a.jsx)("span",{"aria-label":r("Errored span"),className:"mr-1 text-destructive","data-testid":"tr-span-error",role:"img",children:"\u25CF"}),e[10]=t.ok,e[11]=r,e[12]=i):i=e[12];let v;e[13]!==b||e[14]!==t.name||e[15]!==i?(v=(0,a.jsxs)("span",{className:"w-56 shrink-0 truncate",role:"gridcell",style:b,title:t.name,children:[i,t.name]}),e[13]=b,e[14]=t.name,e[15]=i,e[16]=v):v=e[16];let d;e[17]!==t.durationMs||e[18]!==t.offsetMs||e[19]!==r?(d=r("starts {offset} in, runs {duration}",{duration:G(t.durationMs),offset:G(t.offsetMs)}),e[17]=t.durationMs,e[18]=t.offsetMs,e[19]=r,e[20]=d):d=e[20];let N=t.ok?"bg-primary/70":"bg-destructive",m;e[21]!==N?(m=V("absolute inset-y-0 rounded-sm",N),e[21]=N,e[22]=m):m=e[22];let u;e[23]!==l||e[24]!==P||e[25]!==m||e[26]!==x?(u=(0,a.jsx)("span",{className:m,"data-left":P,"data-testid":"tr-span-bar","data-width":x,style:l}),e[23]=l,e[24]=P,e[25]=m,e[26]=x,e[27]=u):u=e[27];let h;e[28]!==d||e[29]!==u?(h=(0,a.jsx)("span",{"aria-label":d,className:"relative h-3 flex-1 overflow-hidden rounded-sm bg-muted",role:"gridcell",children:u}),e[28]=d,e[29]=u,e[30]=h):h=e[30];let g;e[31]!==t.durationMs?(g=G(t.durationMs),e[31]=t.durationMs,e[32]=g):g=e[32];let I;e[33]!==g?(I=(0,a.jsx)("span",{className:"w-16 shrink-0 text-right tabular-nums text-muted-foreground",role:"gridcell",children:g}),e[33]=g,e[34]=I):I=e[34];let S;e[35]!==t.error?(S=t.error===void 0?null:(0,a.jsx)("span",{className:"text-destructive","data-testid":"tr-span-error-message",title:t.error.message,children:`${t.error.type}: ${t.error.message}`}),e[35]=t.error,e[36]=S):S=e[36];let T;e[37]!==S?(T=(0,a.jsx)("span",{className:"w-64 shrink-0 truncate text-muted-foreground",role:"gridcell",children:S}),e[37]=S,e[38]=T):T=e[38];let E;e[39]!==k?(E=k===""?null:(0,a.jsx)("span",{"data-testid":"tr-span-attributes",title:k,children:k}),e[39]=k,e[40]=E):E=e[40];let $;e[41]!==E?($=(0,a.jsx)("span",{className:"w-64 shrink-0 truncate text-muted-foreground",role:"gridcell",children:E}),e[41]=E,e[42]=$):$=e[42];let _;return e[43]!==t.depth||e[44]!==v||e[45]!==h||e[46]!==I||e[47]!==T||e[48]!==$?(_=(0,a.jsxs)("div",{className:"flex items-center gap-2 border-b border-border px-3 py-1.5 font-mono text-xs last:border-b-0 hover:bg-muted/50","data-depth":f,"data-testid":"tr-span-row",role:"row",children:[v,h,I,T,$]}),e[43]=t.depth,e[44]=v,e[45]=h,e[46]=I,e[47]=T,e[48]=$,e[49]=_):_=e[49],_},"xe"),Me=M(o=>{let e=(0,H.c)(50),{expanded:t,onToggle:s,trace:r}=o,n=z(),P;e[0]!==s||e[1]!==r.traceId?(P=M(()=>{s(r.traceId)},"S"),e[0]=s,e[1]=r.traceId,e[2]=P):P=e[2];let x=P,L=`tr-row-${r.traceId}`,k=`tr-waterfall-${r.traceId}`,C=`tr-toggle-${r.traceId}`,y=t?"\u25BE":"\u25B8",b;e[3]!==y?(b=(0,a.jsx)("span",{"aria-hidden":"true",className:"w-3 shrink-0 text-xs text-muted-foreground",children:y}),e[3]=y,e[4]=b):b=e[4];let c;e[5]!==r.rootName?(c=(0,a.jsx)("span",{className:"w-56 shrink-0 truncate text-sm font-medium",title:r.rootName,children:r.rootName}),e[5]=r.rootName,e[6]=c):c=e[6];let w;e[7]!==r.functionPath?(w=(0,a.jsx)("span",{className:"w-48 shrink-0 truncate font-mono text-xs text-muted-foreground",title:r.functionPath,children:r.functionPath}),e[7]=r.functionPath,e[8]=w):w=e[8];let p;e[9]!==r.durationMs?(p=G(r.durationMs),e[9]=r.durationMs,e[10]=p):p=e[10];let l;e[11]!==p?(l=(0,a.jsx)("span",{className:"w-20 shrink-0 text-right font-mono text-xs tabular-nums text-muted-foreground",children:p}),e[11]=p,e[12]=l):l=e[12];let f;e[13]!==n||e[14]!==r.spans.length?(f=n("{count} spans",{count:r.spans.length}),e[13]=n,e[14]=r.spans.length,e[15]=f):f=e[15];let i;e[16]!==f?(i=(0,a.jsx)("span",{className:"w-20 shrink-0 text-right font-mono text-xs tabular-nums text-muted-foreground",children:f}),e[16]=f,e[17]=i):i=e[17];let v=r.ok?"secondary":"destructive",d;e[18]!==n||e[19]!==r.ok?(d=r.ok?n("ok"):n("error"),e[18]=n,e[19]=r.ok,e[20]=d):d=e[20];let N;e[21]!==v||e[22]!==d?(N=(0,a.jsx)("span",{className:"shrink-0",children:(0,a.jsx)(Y,{variant:v,children:d})}),e[21]=v,e[22]=d,e[23]=N):N=e[23];let m;e[24]!==r.startTs?(m=ee(r.startTs),e[24]=r.startTs,e[25]=m):m=e[25];let u;e[26]!==m?(u=(0,a.jsx)("span",{className:"flex-1 truncate text-right font-mono text-xs tabular-nums text-muted-foreground",children:m}),e[26]=m,e[27]=u):u=e[27];let h;e[28]!==t||e[29]!==x||e[30]!==l||e[31]!==i||e[32]!==N||e[33]!==u||e[34]!==k||e[35]!==C||e[36]!==b||e[37]!==c||e[38]!==w?(h=(0,a.jsxs)("button",{"aria-controls":k,"aria-expanded":t,className:"flex w-full items-center gap-3 px-3 py-2 text-left hover:bg-muted/50","data-testid":C,onClick:x,type:"button",children:[b,c,w,l,i,N,u]}),e[28]=t,e[29]=x,e[30]=l,e[31]=i,e[32]=N,e[33]=u,e[34]=k,e[35]=C,e[36]=b,e[37]=c,e[38]=w,e[39]=h):h=e[39];let g;e[40]!==t||e[41]!==n||e[42]!==r.durationMs||e[43]!==r.spans||e[44]!==r.traceId?(g=t&&(0,a.jsx)("div",{"aria-label":n("Trace waterfall"),className:"bg-muted/20","data-testid":`tr-waterfall-${r.traceId}`,id:`tr-waterfall-${r.traceId}`,role:"grid",children:r.spans.map(S=>(0,a.jsx)(Ne,{span:S,traceDurationMs:r.durationMs},S.spanId))}),e[40]=t,e[41]=n,e[42]=r.durationMs,e[43]=r.spans,e[44]=r.traceId,e[45]=g):g=e[45];let I;return e[46]!==h||e[47]!==g||e[48]!==L?(I=(0,a.jsxs)("div",{className:"border-b border-border last:border-b-0","data-testid":L,children:[h,g]}),e[46]=h,e[47]=g,e[48]=L,e[49]=I):I=e[49],I},"be"),Be=M(o=>{let e=(0,H.c)(44),{initialShardKey:t}=o,s=z(),[r]=(0,F.useState)(de),[n,P]=(0,F.useState)(r?.shardKey!==void 0&&r.shardKey!==""?r.shardKey:t??""),[x,L]=(0,F.useState)(r?.traceId??""),[k,C]=(0,F.useState)(ve),y;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=[],e[0]=y):y=e[0],(0,F.useEffect)(ke,y);let b;e[1]!==n?(b=n.trim(),e[1]=n,e[2]=b):b=e[2];let c=ne(b,400),w;e[3]===Symbol.for("react.memo_cache_sentinel")?(w={},e[3]=w):w=e[3];let p;e[4]!==c?(p={live:!0,shardKey:c},e[4]=c,e[5]=p):p=e[5];let{data:l,error:f,errorSource:i,isLoading:v,liveError:d}=te(re.getTraces,w,p),N,m;e[6]!==l||e[7]!==c?(N=M(()=>{l!==void 0&&ae(c)},"N"),m=[l,c],e[6]=l,e[7]=c,e[8]=N,e[9]=m):(N=e[8],m=e[9]),(0,F.useEffect)(N,m);let u;if(e[10]!==l||e[11]!==f||e[12]!==i||e[13]!==k||e[14]!==v||e[15]!==d||e[16]!==x||e[17]!==n||e[18]!==s){let h=we(l),g=l?.total??h.length,I=g>h.length,S=xe(h,x),T;e[20]===Symbol.for("react.memo_cache_sentinel")?(T=M(K=>{L(K.target.value)},"T"),e[20]=T):T=e[20];let E=T,$;e[21]===Symbol.for("react.memo_cache_sentinel")?($=M(K=>{C(ue=>{let q=new Set(ue);return q.has(K)?q.delete(K):q.add(K),q})},"$"),e[21]=$):$=e[21];let _=$,J=f===null&&S.length===0&&!v,j;e[22]!==n?(j=(0,a.jsx)(se,{onChange:P,testId:"tr-shard-input",value:n}),e[22]=n,e[23]=j):j=e[23];let A;e[24]!==s?(A=s("Search traces"),e[24]=s,e[25]=A):A=e[25];let D;e[26]!==s?(D=s("search trace or function"),e[26]=s,e[27]=D):D=e[27];let B;e[28]!==x||e[29]!==A||e[30]!==D?(B=(0,a.jsx)(Z,{"aria-label":A,className:"h-8 w-56","data-testid":"tr-search",onChange:E,placeholder:D,value:x}),e[28]=x,e[29]=A,e[30]=D,e[31]=B):B=e[31];let O;e[32]!==d?(O=(0,a.jsx)(le,{message:d,prefix:"tr"}),e[32]=d,e[33]=O):O=e[33];let R;e[34]!==j||e[35]!==B||e[36]!==O?(R=(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[j,B,O]}),e[34]=j,e[35]=B,e[36]=O,e[37]=R):R=e[37];let U;e[38]!==f||e[39]!==i?(U=f!==null&&(0,a.jsx)(oe,{error:i,testId:"tr-error"}),e[38]=f,e[39]=i,e[40]=U):U=e[40];let W;e[41]!==J||e[42]!==s?(W=J&&(0,a.jsx)(X,{description:s("Traces recorded with ctx.trace show up here as your app handles traffic. The span buffer resets when the shard hibernates."),icon:(0,a.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M4 6h10M7 12h13M10 18h7"})}),testId:"tr-empty",title:s("No traces")}),e[41]=J,e[42]=s,e[43]=W):W=e[43],u=(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-traces-panel",children:[R,U,W,f===null&&I&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"tr-truncated",children:s("Showing the {shown} most recent of {total} traces in the buffer.",{shown:h.length,total:g})}),f===null&&S.length>0&&(0,a.jsx)("div",{"aria-label":s("Recent traces"),className:"overflow-hidden rounded-xl border border-border shadow-xs","data-testid":"tr-list",children:S.map(K=>(0,a.jsx)(Me,{expanded:k.has(K.traceId),onToggle:_,trace:K},K.traceId))})]}),e[10]=l,e[11]=f,e[12]=i,e[13]=k,e[14]=v,e[15]=d,e[16]=x,e[17]=n,e[18]=s,e[19]=u}else u=e[19];return u},"Be");function ve(){return new Set}M(ve,"we");function ke(){ce()}M(ke,"Ne");export{Be as TracesPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as g}from"./chunk-
|
|
1
|
+
import{a as g}from"./chunk-XSD4Y6SQ.js";import{f}from"./chunk-35II7U25.js";import{h as d,m as p}from"./chunk-4CGALXS3.js";import{a as t,e as u,f as b,g as h}from"./chunk-3XIESWL4.js";var y=u(h(),1);var m=u(b(),1);var L={capabilities:{accounts:!0,admin:!0,organization:!1,passkey:!1,twoFactor:!1},emailAndPassword:!1,organization:{enabled:!1,roles:!1,teams:!1},plugins:[],rateLimit:{enabled:!1},session:{},socialProviders:[],userFields:[]},A=t(()=>{let a=(0,y.c)(6),r=f(),s;a[0]===Symbol.for("react.memo_cache_sentinel")?(s=["lunora-auth-config"],a[0]=s):s=a[0];let o;a[1]!==r?(o=t(()=>r.getAuthConfig(),"a"),a[1]=r,a[2]=o):o=a[2];let{data:n,isLoading:i}=g(s,o),l=n??L,c=!i,e;return a[3]!==l||a[4]!==c?(e={config:l,ready:c},a[3]=l,a[4]=c,a[5]=e):e=a[5],e},"L"),F=t(()=>{let[a,r]=(0,m.useState)(!1),[s,o]=(0,m.useState)(null);return{busy:a,error:s,run:t(n=>{p((async()=>{r(!0),o(null);try{await n()}catch(i){o(d(i))}finally{r(!1)}})())},"run")}},"_");export{A as a,F as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as Q}from"./chunk-X2FQ6B5V.js";import{a as J}from"./chunk-7LQWFOEU.js";import{a as W}from"./chunk-LFKCLLPT.js";import{a as _}from"./chunk-UNUU7CJJ.js";import"./chunk-XXQUMVWH.js";import{b as O}from"./chunk-
|
|
1
|
+
import{a as Q}from"./chunk-X2FQ6B5V.js";import{a as J}from"./chunk-7LQWFOEU.js";import{a as W}from"./chunk-LFKCLLPT.js";import{a as _}from"./chunk-UNUU7CJJ.js";import"./chunk-XXQUMVWH.js";import{b as O}from"./chunk-XSD4Y6SQ.js";import{a as $,b as G,c as H,d as x,e as t,f as n}from"./chunk-MIQTKZAR.js";import{a as j,e as K}from"./chunk-UZERI5YC.js";import{a as y}from"./chunk-5Y3QLNWX.js";import{a as U}from"./chunk-LFXFP4IF.js";import{b as P}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as S}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as D}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as E}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as v}from"./chunk-GXZAXNZI.js";import{f as L}from"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{a as z}from"./chunk-XQCVZAGU.js";import{d as M,f as A,g as B,h as F,m as T,q}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as s,e as I,f as lr,h as cr}from"./chunk-3XIESWL4.js";var i=I(lr(),1);var r=I(cr(),1);var mr=A(v.runMigration),Sr=s(({initialShardKey:V})=>{let X=L(),e=M(),[c,Y]=(0,i.useState)(V??""),[b,Z]=(0,i.useState)(""),[w,rr]=(0,i.useState)("up"),[h,er]=(0,i.useState)(!0),[m,N]=(0,i.useState)(!1),[d,p]=(0,i.useState)(null),[k,g]=(0,i.useState)(null),u=W(c.trim(),400),C=c.trim()===u,o=O(v.migrationStatus,{},{live:!0,shardKey:u}),l=o.data?.migrations??null,ar=o.error,{errorSource:ir,liveError:tr}=o;(0,i.useEffect)(()=>{o.data!==void 0&&P(u)},[o.data,u]);let nr=s(async()=>{let a=b.trim();if(a===""){g(e("Enter a migration id")),p(null);return}N(!0),g(null);try{let f=await X.query(mr,{direction:w,dryRun:h,id:a},B(c));p(f),o.refetch()}catch(f){p(null),g(F(f))}finally{N(!1)}},"K"),R=s(()=>{T(nr())},"N"),sr=s(a=>{Z(a.target.value)},"T"),or=s(a=>{rr(a.target.value==="down"?"down":"up")},"B"),dr=s(a=>{er(a.target.checked)},"F");return(0,r.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-migrations",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)(U,{onChange:Y,testId:"mg-shard-input",value:c}),(0,r.jsx)(Q,{message:tr,prefix:"mg"})]}),ar!==null&&(0,r.jsx)(_,{error:ir,testId:"mg-status-error"}),l!==null&&l.length===0&&(0,r.jsx)(z,{description:e("Data migrations you run against this shard will be tracked here."),icon:(0,r.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,r.jsx)("path",{d:"M4 12a8 8 0 0 1 13.7-5.6L20 8M20 4v4h-4M20 12a8 8 0 0 1-13.7 5.6L4 16m0 4v-4h4"})}),testId:"mg-empty",title:e("No migrations have run on this shard.")}),l!==null&&l.length>0&&(0,r.jsx)(j,{className:"overflow-hidden py-0",children:(0,r.jsx)(K,{className:"px-0",children:(0,r.jsxs)($,{"data-testid":"mg-table",children:[(0,r.jsx)(G,{children:(0,r.jsxs)(x,{children:[(0,r.jsx)(t,{children:e("id")}),(0,r.jsx)(t,{children:e("direction")}),(0,r.jsx)(t,{children:e("status")}),(0,r.jsx)(t,{children:e("processed")}),(0,r.jsx)(t,{children:e("changed")}),(0,r.jsx)(t,{children:e("updated")}),(0,r.jsx)(t,{children:e("error")})]})}),(0,r.jsx)(H,{children:l.map(a=>(0,r.jsxs)(x,{"data-testid":`mg-row-${a.id}`,children:[(0,r.jsx)(n,{children:a.id}),(0,r.jsx)(n,{children:a.direction}),(0,r.jsx)(n,{children:(0,r.jsx)(E,{variant:"secondary",children:a.status})}),(0,r.jsx)(n,{children:a.processed}),(0,r.jsx)(n,{children:a.changed}),(0,r.jsx)(n,{children:q(a.updatedAt)}),(0,r.jsx)(n,{children:a.error??""})]},a.id))})]})})}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 rounded-xl border border-border bg-card p-3 shadow-xs",children:[(0,r.jsx)(y,{children:e("Run migration")}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)(S,{"aria-label":e("Migration id"),className:"w-auto","data-testid":"mg-id-input",onChange:sr,placeholder:e("migration id"),value:b}),(0,r.jsxs)("select",{"aria-label":e("Direction"),className:"flex h-9 rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring","data-testid":"mg-direction",onChange:or,value:w,children:[(0,r.jsx)("option",{value:"up",children:e("up")}),(0,r.jsx)("option",{value:"down",children:e("down")})]}),(0,r.jsxs)(y,{className:"flex items-center gap-1.5",htmlFor:"mg-dry-run",children:[(0,r.jsx)("input",{checked:h,className:"size-4 accent-primary","data-testid":"mg-dry-run",id:"mg-dry-run",onChange:dr,type:"checkbox"}),e("Dry run")]}),h?(0,r.jsx)(D,{"data-testid":"mg-run",disabled:m||!C,onClick:R,size:"sm",type:"button",children:e(m?"Running\u2026":"Run")}):(0,r.jsx)(J,{confirmLabel:e(m?"Running\u2026":"Run migration?"),disabled:m||!C,onConfirm:R,testId:"mg-run",children:e("Run")})]})]}),k!==null&&(0,r.jsx)("pre",{className:"text-sm text-destructive whitespace-pre-wrap","data-testid":"mg-run-error",role:"alert",children:k}),d!==null&&(0,r.jsxs)("p",{className:"text-sm text-muted-foreground","data-testid":"mg-run-result",children:[d.dryRun?e("Dry run: "):"",e("{status} \u2014 processed",{status:d.status}),d.processed,e(", changed"),d.changed]})]})},"Er");export{Sr as MigrationsPanel};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as je}from"./chunk-V53KNYRN.js";import{a as be}from"./chunk-5Y3QLNWX.js";import{a as Z}from"./chunk-HPFLBYRI.js";import{d as we,f as $e,g as Oe,k as ie}from"./chunk-QBWRC5YX.js";import{a as Ce}from"./chunk-LFXFP4IF.js";import"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as Se}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as F}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as ke}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as _e}from"./chunk-GXZAXNZI.js";import{f as G}from"./chunk-
|
|
1
|
+
import{a as je}from"./chunk-V53KNYRN.js";import{a as be}from"./chunk-5Y3QLNWX.js";import{a as Z}from"./chunk-HPFLBYRI.js";import{d as we,f as $e,g as Oe,k as ie}from"./chunk-QBWRC5YX.js";import{a as Ce}from"./chunk-LFXFP4IF.js";import"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as Se}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as F}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as ke}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as _e}from"./chunk-GXZAXNZI.js";import{f as G}from"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{a as U}from"./chunk-XQCVZAGU.js";import{d as M,e as Ie,f as le,g as de,h as ce,m as Pe,o as oe}from"./chunk-4CGALXS3.js";import{b as Ne}from"./chunk-LE56LPNH.js";import{a as u,e as D,f as ge,g as ae,h as ne,j as xe}from"./chunk-3XIESWL4.js";var Qe=D(ae(),1),ye=D(ge(),1);var ee=D(ae(),1);var Y=D(ge(),1);var K=D(ne(),1);var Xe=le(_e.listTables),Ze=["react","client","cli"],Ye=!1,et={action:"action",mutation:"mutation",query:"query"},Ae=u(t=>{let e=t.indexOf(":");return e===-1?{file:"",fn:t}:{file:t.slice(0,e),fn:t.slice(e+1)}},"X"),Re=u(({file:t,fn:e,kind:a})=>`await client.${et[a]}(api.${t}.${e}, { /* args */ });`,"J"),tt=u(t=>{let e=`api.${t.file}.${t.fn}`;switch(t.kind){case"action":return Re(t);case"mutation":return`const ${t.fn} = useMutation(${e});`;default:return`const data = useQuery(${e}, { /* args */ });`}},"ce"),rt=u(({file:t,fn:e})=>`lunora run ${t}:${e} --args '{ }'`,"de"),at=u(t=>["// Read rows",`const rows = await ctx.db.query("${t}").collect();`,"","// Insert a row",`const id = await ctx.db.insert("${t}", { /* fields */ });`,"","// Generated types",`type Row = Doc<"${t}">;`,`type RowId = Id<"${t}">;`].join(`
|
|
2
2
|
`),"pe"),nt=u((t,e)=>{switch(t){case"cli":return rt(e);case"client":return Re(e);default:return tt(e)}},"fe"),Je=u(t=>{let e=(0,ee.c)(19),{code:a,label:r,testId:n}=t,s=M(),o;e[0]!==a?(o=u(()=>{oe(a)},"o"),e[0]=a,e[1]=o):o=e[1];let i=o,c;e[2]!==r?(c=(0,K.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:r}),e[2]=r,e[3]=c):c=e[3];let p=`${n}-copy`,l;e[4]!==s?(l=s("Copy"),e[4]=s,e[5]=l):l=e[5];let d;e[6]!==i||e[7]!==p||e[8]!==l?(d=(0,K.jsx)(F,{"data-testid":p,onClick:i,size:"xs",type:"button",variant:"ghost",children:l}),e[6]=i,e[7]=p,e[8]=l,e[9]=d):d=e[9];let f;e[10]!==c||e[11]!==d?(f=(0,K.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[c,d]}),e[10]=c,e[11]=d,e[12]=f):f=e[12];let v;e[13]!==a||e[14]!==n?(v=(0,K.jsx)("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs","data-testid":n,children:a}),e[13]=a,e[14]=n,e[15]=v):v=e[15];let N;return e[16]!==f||e[17]!==v?(N=(0,K.jsxs)("div",{className:"flex flex-col gap-1.5",children:[f,v]}),e[16]=f,e[17]=v,e[18]=N):N=e[18],N},"W"),ot=u(t=>{let e=(0,ee.c)(50),{file:a,fn:r,kind:n}=t,s=M(),[o,i]=(0,Y.useState)("react"),c,p,l;if(e[0]!==a||e[1]!==r||e[2]!==n||e[3]!==s||e[4]!==o){let I={file:a,fn:r,kind:n},O;e[8]!==s?(O=s("CLI"),e[8]=s,e[9]=O):O=e[9];let j;e[10]!==s?(j=s("Client"),e[10]=s,e[11]=j):j=e[11];let T;e[12]!==s?(T=s("React"),e[12]=s,e[13]=T):T=e[13];let J;e[14]!==O||e[15]!==j||e[16]!==T?(J={cli:O,client:j,react:T},e[14]=O,e[15]=j,e[16]=T,e[17]=J):J=e[17],l=J;let A;e[18]===Symbol.for("react.memo_cache_sentinel")?(A=u(E=>{i(E.currentTarget.dataset.tab)},"q"),e[18]=A):A=e[18],c=A,p=nt(o,I),e[0]=a,e[1]=r,e[2]=n,e[3]=s,e[4]=o,e[5]=c,e[6]=p,e[7]=l}else c=e[5],p=e[6],l=e[7];let d=p,f=n==="action"&&o==="react"&&!Ye,v=`api.${a}.${r}`,N;e[19]!==v?(N=(0,K.jsx)("h2",{className:"font-mono text-sm font-semibold text-foreground","data-testid":"api-fn-title",children:v}),e[19]=v,e[20]=N):N=e[20];let k;e[21]!==n||e[22]!==s?(k=s("Call this {kind} from your app.",{kind:n}),e[21]=n,e[22]=s,e[23]=k):k=e[23];let h;e[24]!==k?(h=(0,K.jsx)("p",{className:"text-xs text-muted-foreground",children:k}),e[24]=k,e[25]=h):h=e[25];let g;e[26]!==N||e[27]!==h?(g=(0,K.jsxs)("div",{children:[N,h]}),e[26]=N,e[27]=h,e[28]=g):g=e[28];let b;e[29]!==s?(b=s("Snippet flavour"),e[29]=s,e[30]=b):b=e[30];let x;e[31]!==c||e[32]!==o||e[33]!==l?(x=Ze.map(I=>(0,K.jsx)(F,{"aria-selected":o===I,"data-tab":I,"data-testid":`api-tab-${I}`,onClick:c,role:"tab",size:"xs",type:"button",variant:o===I?"default":"outline",children:l[I]},I)),e[31]=c,e[32]=o,e[33]=l,e[34]=x):x=e[34];let y;e[35]!==b||e[36]!==x?(y=(0,K.jsx)("div",{"aria-label":b,className:"flex gap-1.5","data-testid":"api-tabs",role:"tablist",children:x}),e[35]=b,e[36]=x,e[37]=y):y=e[37];let w=l[o],_=`api-snippet-${o}`,S;e[38]!==d||e[39]!==w||e[40]!==_?(S=(0,K.jsx)(Je,{code:d,label:w,testId:_}),e[38]=d,e[39]=w,e[40]=_,e[41]=S):S=e[41];let $;e[42]!==f||e[43]!==s?($=f&&(0,K.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"api-action-note",children:s("Actions have no React hook \u2014 call them through the client.")}),e[42]=f,e[43]=s,e[44]=$):$=e[44];let P;return e[45]!==S||e[46]!==$||e[47]!==g||e[48]!==y?(P=(0,K.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"api-fn-doc",children:[g,y,S,$]}),e[45]=S,e[46]=$,e[47]=g,e[48]=y,e[49]=P):P=e[49],P},"ue"),st=u(t=>{let e=(0,ee.c)(19),{name:a}=t,r=M(),n;e[0]!==a?(n=at(a),e[0]=a,e[1]=n):n=e[1];let s=n,o;e[2]!==a?(o=(0,K.jsx)("h2",{className:"font-mono text-sm font-semibold text-foreground","data-testid":"api-table-title",children:a}),e[2]=a,e[3]=o):o=e[3];let i;e[4]!==r?(i=r("Read and write this table through the typed data model."),e[4]=r,e[5]=i):i=e[5];let c;e[6]!==i?(c=(0,K.jsx)("p",{className:"text-xs text-muted-foreground",children:i}),e[6]=i,e[7]=c):c=e[7];let p;e[8]!==o||e[9]!==c?(p=(0,K.jsxs)("div",{children:[o,c]}),e[8]=o,e[9]=c,e[10]=p):p=e[10];let l;e[11]!==r?(l=r("Data model"),e[11]=r,e[12]=l):l=e[12];let d;e[13]!==s||e[14]!==l?(d=(0,K.jsx)(Je,{code:s,label:l,testId:"api-snippet-table"}),e[13]=s,e[14]=l,e[15]=d):d=e[15];let f;return e[16]!==p||e[17]!==d?(f=(0,K.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"api-table-doc",children:[p,d]}),e[16]=p,e[17]=d,e[18]=f):f=e[18],f},"me"),Te=u(t=>{let e=(0,ee.c)(8),{active:a,label:r,onSelect:n,testId:s,value:o}=t,i;e[0]!==n||e[1]!==o?(i=u(()=>{n(o)},"f"),e[0]=n,e[1]=o,e[2]=i):i=e[2];let c=i,p=a?"page":void 0,l;return e[3]!==r||e[4]!==c||e[5]!==p||e[6]!==s?(l=(0,K.jsx)("button",{"aria-current":p,className:"w-full truncate rounded-md px-2 py-1 text-start font-mono text-xs text-muted-foreground outline-none transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:bg-sidebar-accent aria-[current=page]:bg-sidebar-accent aria-[current=page]:font-medium aria-[current=page]:text-foreground","data-testid":s,onClick:c,type:"button",children:r}),e[3]=r,e[4]=c,e[5]=p,e[6]=s,e[7]=l):l=e[7],l},"Y"),Ee=u(t=>{let e=(0,ee.c)(67),{functions:a,initialShardKey:r}=t,n=M(),s=G(),[o,i]=(0,Y.useState)(null),[c,p]=(0,Y.useState)(null),l,d;e[0]!==s||e[1]!==r?(l=u(()=>{let R=!1;return s.query(Xe,{},de(r??"")).then(q=>(R||i(q),q)).catch(()=>{R||i([])}),()=>{R=!0}},"i"),d=[s,r],e[0]=s,e[1]=r,e[2]=l,e[3]=d):(l=e[2],d=e[3]),(0,Y.useEffect)(l,d);let f;e[4]!==a?(f=a??[],e[4]=a,e[5]=f):f=e[5];let v=f,N;if(e[6]!==v){let R=new Map;for(let q of v){let{file:H,fn:X}=Ae(q.path),se=R.get(H)??[];se.push({fn:X,kind:q.kind,path:q.path}),R.set(H,se)}N=[...R.entries()].map(lt).toSorted(dt),e[6]=v,e[7]=N}else N=e[7];let k=N,h,g,b,x,y,w,_,S,$,P;if(e[8]!==v||e[9]!==k||e[10]!==c||e[11]!==n||e[12]!==o){let R=(o??[]).map(ct).toSorted(pt),q;e[23]===Symbol.for("react.memo_cache_sentinel")?(q=u(z=>{p({kind:"fn",path:z})},"E"),e[23]=q):q=e[23];let H=q,X;e[24]===Symbol.for("react.memo_cache_sentinel")?(X=u(z=>{p({kind:"table",name:z})},"L"),e[24]=X):X=e[24];let se=X;if(g=c?.kind==="fn"?v.find(z=>z.path===c.path):void 0,h=v.length>0||R.length>0,b=g===void 0?void 0:Ae(g.path),x="grid min-h-0 gap-6 md:grid-cols-[16rem_minmax(0,1fr)]",y="lunora-api-docs",e[25]!==n?(w=n("API resources"),e[25]=n,e[26]=w):w=e[26],_="flex flex-col gap-4 overflow-y-auto",S="api-rail",e[27]!==k||e[28]!==c||e[29]!==n){let z;e[31]!==c||e[32]!==n?(z=u(he=>(0,K.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,K.jsx)("span",{className:"px-2 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:he.file||n("(root)")}),he.items.map(re=>(0,K.jsx)(Te,{active:c?.kind==="fn"&&c.path===re.path,label:re.fn,onSelect:H,testId:`api-rail-fn-${re.path}`,value:re.path},re.path))]},he.file),"b"),e[31]=c,e[32]=n,e[33]=z):z=e[33],$=k.map(z),e[27]=k,e[28]=c,e[29]=n,e[30]=$}else $=e[30];P=R.length>0&&(0,K.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,K.jsx)("span",{className:"px-2 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:n("Tables")}),R.map(z=>(0,K.jsx)(Te,{active:c?.kind==="table"&&c.name===z,label:z,onSelect:se,testId:`api-rail-table-${z}`,value:z},z))]}),e[8]=v,e[9]=k,e[10]=c,e[11]=n,e[12]=o,e[13]=h,e[14]=g,e[15]=b,e[16]=x,e[17]=y,e[18]=w,e[19]=_,e[20]=S,e[21]=$,e[22]=P}else h=e[13],g=e[14],b=e[15],x=e[16],y=e[17],w=e[18],_=e[19],S=e[20],$=e[21],P=e[22];let I;e[34]!==h||e[35]!==n?(I=!h&&(0,K.jsx)("p",{className:"px-2 text-xs text-muted-foreground","data-testid":"api-rail-empty",children:n("No functions or tables to document yet.")}),e[34]=h,e[35]=n,e[36]=I):I=e[36];let O;e[37]!==I||e[38]!==w||e[39]!==_||e[40]!==S||e[41]!==$||e[42]!==P?(O=(0,K.jsxs)("nav",{"aria-label":w,className:_,"data-testid":S,children:[$,P,I]}),e[37]=I,e[38]=w,e[39]=_,e[40]=S,e[41]=$,e[42]=P,e[43]=O):O=e[43];let j;e[44]!==c||e[45]!==n?(j=c===null&&(0,K.jsx)(U,{description:n("Select a function or table to see how to call it from your app."),testId:"api-empty",title:n("API usage snippets")}),e[44]=c,e[45]=n,e[46]=j):j=e[46];let T;e[47]!==c?.kind||e[48]!==g||e[49]!==b?(T=c?.kind==="fn"&&g!==void 0&&b!==void 0&&(0,K.jsx)(ot,{file:b.file,fn:b.fn,kind:g.kind},g.path),e[47]=c?.kind,e[48]=g,e[49]=b,e[50]=T):T=e[50];let J;e[51]!==c?.kind||e[52]!==g||e[53]!==n?(J=c?.kind==="fn"&&g===void 0&&(0,K.jsx)(U,{testId:"api-empty",title:n("API usage snippets")}),e[51]=c?.kind,e[52]=g,e[53]=n,e[54]=J):J=e[54];let A;e[55]!==c?(A=c?.kind==="table"&&(0,K.jsx)(st,{name:c.name}),e[55]=c,e[56]=A):A=e[56];let E;e[57]!==j||e[58]!==T||e[59]!==J||e[60]!==A?(E=(0,K.jsxs)("div",{className:"min-w-0",children:[j,T,J,A]}),e[57]=j,e[58]=T,e[59]=J,e[60]=A,e[61]=E):E=e[61];let C;return e[62]!==x||e[63]!==y||e[64]!==O||e[65]!==E?(C=(0,K.jsxs)("div",{className:x,"data-testid":y,children:[O,E]}),e[62]=x,e[63]=y,e[64]=O,e[65]=E,e[66]=C):C=e[66],C},"Re");function it(t,e){return t.fn.localeCompare(e.fn)}u(it,"he");function lt(t){let[e,a]=t;return{file:e,items:a.toSorted(it)}}u(lt,"xe");function dt(t,e){return t.file.localeCompare(e.file)}u(dt,"be");function ct(t){return t.name}u(ct,"ge");function pt(t,e){return t.localeCompare(e)}u(pt,"ve");var He=D(ae(),1);var W=D(ae(),1),L=D(ge(),1);var m=D(ne(),1);var ue=u(function(t,e,a){let r=(0,W.c)(10),n;r[0]===Symbol.for("react.memo_cache_sentinel")?(n={kind:"loading"},r[0]=n):n=r[0];let[s,o]=(0,L.useState)(n),i,c;r[1]!==a||r[2]!==e||r[3]!==t?(i=u(()=>{if(t!==void 0)return;let l=!1;return e().then(d=>(l||o(a(d)),d)).catch(d=>{l||o({kind:"error",message:ce(d)})}),()=>{l=!0}},"c"),c=[a,e,t],r[1]=a,r[2]=e,r[3]=t,r[4]=i,r[5]=c):(i=r[4],c=r[5]),(0,L.useEffect)(i,c);let p;return r[6]!==a||r[7]!==s||r[8]!==t?(p=t===void 0?s:a(t),r[6]=a,r[7]=s,r[8]=t,r[9]=p):p=r[9],p},"bt"),mt=u(t=>typeof t=="number"?"number":typeof t=="boolean"?"boolean":"string","$e"),Me=u(t=>{if(t.enum!==void 0&&t.enum.length>0)return t.enum;if(t.anyOf!==void 0&&t.anyOf.length>0&&t.anyOf.every(e=>e.const!==void 0))return t.anyOf.map(e=>e.const)},"ee"),me=u(t=>t===void 0?"any":t.const!==void 0?JSON.stringify(t.const):t.enum!==void 0&&t.enum.length>0?t.enum.map(e=>JSON.stringify(e)).join(" | "):t.anyOf!==void 0&&t.anyOf.length>0?t.anyOf.map(e=>me(e)).join(" | "):t.type==="array"?`array<${me(t.items)}>`:t.type??"any","F"),ut=u(t=>{let e=Me(t);return e!==void 0?t.type??mt(e[0]):me(t)},"we"),ft=u(t=>{let e=Me(t);return e===void 0?void 0:e.map(a=>JSON.stringify(a)).join(" | ")},"Se"),ht=u(t=>{let e=[];t.minimum!==void 0?e.push(`${String(t.minimum)} \u2264`):t.exclusiveMinimum!==void 0&&e.push(`${String(t.exclusiveMinimum)} <`);let a=e.length>0;e.push("value"),t.maximum!==void 0?e.push(`\u2264 ${String(t.maximum)}`):t.exclusiveMaximum!==void 0&&e.push(`< ${String(t.exclusiveMaximum)}`);let r=e.length>(a?2:1);return a||r?e.join(" "):void 0},"Oe"),gt=u(t=>{if(t.type==="object"&&t.properties!==void 0)return t;if(t.type==="array"&&t.items?.type==="object"&&t.items.properties!==void 0)return t.items},"je"),te=u(t=>{if(t===void 0)return null;if(t.const!==void 0)return t.const;if(t.enum!==void 0&&t.enum.length>0)return t.enum[0];if(t.anyOf!==void 0&&t.anyOf.length>0)return te(t.anyOf[0]);switch(t.type){case"array":return[];case"boolean":return!1;case"number":return 0;case"object":{let e={};for(let[a,r]of Object.entries(t.properties??{}))e[a]=te(r);return e}case"string":return"";default:return null}},"B"),pe=u(t=>{let e=(0,W.c)(7),{label:a,value:r}=t,n;e[0]!==a?(n=(0,m.jsx)("span",{className:"text-muted-foreground",children:a}),e[0]=a,e[1]=n):n=e[1];let s;e[2]!==r?(s=(0,m.jsx)("span",{className:"text-foreground",children:r}),e[2]=r,e[3]=s):s=e[3];let o;return e[4]!==n||e[5]!==s?(o=(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 rounded border border-border px-1.5 py-0.5 font-mono text-[10px]",children:[n,s]}),e[4]=n,e[5]=s,e[6]=o):o=e[6],o},"z"),xt=u(t=>{let e=(0,W.c)(40),{name:a,required:r,schema:n}=t,s=M(),o;e[0]!==n?(o=ht(n),e[0]=n,e[1]=o):o=e[1];let i=o,c;e[2]!==n?(c=ft(n),e[2]=n,e[3]=c):c=e[3];let p=c,l=n["x-lunora-table"],d=n.format!==void 0||i!==void 0||p!==void 0||l!==void 0,f;e[4]!==n?(f=gt(n),e[4]=n,e[5]=f):f=e[5];let v=f,N=r?"*":"?",k;e[6]!==N?(k=(0,m.jsx)("span",{className:"text-muted-foreground",children:N}),e[6]=N,e[7]=k):k=e[7];let h;e[8]!==a||e[9]!==k?(h=(0,m.jsxs)("span",{className:"font-mono text-foreground",children:[a,k]}),e[8]=a,e[9]=k,e[10]=h):h=e[10];let g;e[11]!==n?(g=ut(n),e[11]=n,e[12]=g):g=e[12];let b;e[13]!==g?(b=(0,m.jsx)("span",{className:"font-mono text-muted-foreground",children:g}),e[13]=g,e[14]=b):b=e[14];let x;e[15]!==h||e[16]!==b?(x=(0,m.jsxs)("div",{className:"flex items-baseline gap-2",children:[h,b]}),e[15]=h,e[16]=b,e[17]=x):x=e[17];let y;e[18]!==n.description?(y=n.description!==void 0&&(0,m.jsx)("p",{className:"max-w-prose text-muted-foreground",children:n.description}),e[18]=n.description,e[19]=y):y=e[19];let w;e[20]!==d||e[21]!==i||e[22]!==l||e[23]!==n.format||e[24]!==s||e[25]!==p?(w=d&&(0,m.jsxs)("div",{className:"flex flex-wrap gap-1",children:[n.format!==void 0&&(0,m.jsx)(pe,{label:s("Format"),value:n.format}),i!==void 0&&(0,m.jsx)(pe,{label:s("Range"),value:i}),p!==void 0&&(0,m.jsx)(pe,{label:s("Value in"),value:p}),l!==void 0&&(0,m.jsx)(pe,{label:s("relation"),value:l})]}),e[20]=d,e[21]=i,e[22]=l,e[23]=n.format,e[24]=s,e[25]=p,e[26]=w):w=e[26];let _;e[27]!==y||e[28]!==w||e[29]!==x?(_=(0,m.jsxs)("div",{className:"flex flex-col gap-1 py-2",children:[x,y,w]}),e[27]=y,e[28]=w,e[29]=x,e[30]=_):_=e[30];let S=_;if(v===void 0){let O;return e[31]!==S?(O=(0,m.jsx)("div",{className:"border-b border-border/50 last:border-b-0",children:S}),e[31]=S,e[32]=O):O=e[32],O}let $;e[33]!==S?($=(0,m.jsx)("summary",{className:"cursor-pointer marker:text-muted-foreground",children:S}),e[33]=S,e[34]=$):$=e[34];let P;e[35]!==v?(P=(0,m.jsx)("div",{className:"mb-2 ml-2 border-l border-border pl-3",children:(0,m.jsx)(Le,{schema:v})}),e[35]=v,e[36]=P):P=e[36];let I;return e[37]!==$||e[38]!==P?(I=(0,m.jsxs)("details",{className:"border-b border-border/50 last:border-b-0",children:[$,P]}),e[37]=$,e[38]=P,e[39]=I):I=e[39],I},"Pe"),Le=u(t=>{let e=(0,W.c)(7),{schema:a}=t,r;e[0]!==a.required?(r=new Set(a.required),e[0]=a.required,e[1]=r):r=e[1];let n=r,s;e[2]!==a.properties?(s=Object.entries(a.properties??{}),e[2]=a.properties,e[3]=s):s=e[3];let o=s,i;return e[4]!==n||e[5]!==o?(i=(0,m.jsx)("div",{className:"flex flex-col",children:o.map(c=>{let[p,l]=c;return(0,m.jsx)(xt,{name:p,required:n.has(p),schema:l},p)})}),e[4]=n,e[5]=o,e[6]=i):i=e[6],i},"te"),Ke=u(t=>{let e=(0,W.c)(10),{schema:a,testId:r}=t;if(a?.type!=="object"||Object.keys(a.properties??{}).length===0){let o;e[0]!==a?(o=me(a),e[0]=a,e[1]=o):o=e[1];let i;return e[2]!==o||e[3]!==r?(i=(0,m.jsx)("p",{className:"font-mono text-xs text-muted-foreground","data-testid":r,children:o}),e[2]=o,e[3]=r,e[4]=i):i=e[4],i}let n;e[5]!==a?(n=(0,m.jsx)(Le,{schema:a}),e[5]=a,e[6]=n):n=e[6];let s;return e[7]!==n||e[8]!==r?(s=(0,m.jsx)("div",{className:"text-xs","data-testid":r,children:n}),e[7]=n,e[8]=r,e[9]=s):s=e[9],s},"Q"),bt=["curl","javascript","lunora"],vt={lunora:"Lunora",curl:"cURL",javascript:"JavaScript"},yt=u(t=>`api.${t.replaceAll(/[/:]/g,".")}`,"Te"),Nt=u(t=>{let e=te(t.argsSchema)??{};return t.functionPath===void 0?e:{args:e,functionPath:t.functionPath}},"Ie"),kt=u((t,e,a)=>{let r=`${a}${e.httpPath}`,n=JSON.stringify(Nt(e),void 0,2),s=JSON.stringify(te(e.argsSchema)??{},void 0,2);switch(t){case"curl":{let o=e.method!=="GET"&&e.method!=="HEAD",i=[`curl -X ${e.method} ${JSON.stringify(r)}`];return o&&i.push(' -H "Content-Type: application/json"',` -d '${n}'`),i.join(` \\
|
|
3
3
|
`)}case"lunora":return e.functionPath===void 0?`await fetch(${JSON.stringify(e.httpPath)}, { method: ${JSON.stringify(e.method)} });`:`import { useLunora } from "@lunora/react";
|
|
4
4
|
import { api } from "./_generated/api";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as st}from"./chunk-X2FQ6B5V.js";import{a as Y}from"./chunk-LFKCLLPT.js";import{a as Z}from"./chunk-UNUU7CJJ.js";import"./chunk-XXQUMVWH.js";import{b as Q}from"./chunk-
|
|
1
|
+
import{a as st}from"./chunk-X2FQ6B5V.js";import{a as Y}from"./chunk-LFKCLLPT.js";import{a as Z}from"./chunk-UNUU7CJJ.js";import"./chunk-XXQUMVWH.js";import{b as Q}from"./chunk-XSD4Y6SQ.js";import{a as tt,b as et,c as rt,d as z,e as n,f as o}from"./chunk-MIQTKZAR.js";import{a as W,e as G}from"./chunk-UZERI5YC.js";import{a as X}from"./chunk-LFXFP4IF.js";import"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as U}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as R}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as V}from"./chunk-GXZAXNZI.js";import"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{a as H}from"./chunk-XQCVZAGU.js";import{d as O,q as J}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a,e as q,f as mt,g as ht,h as ut,j as P}from"./chunk-3XIESWL4.js";var at=q(ht(),1),B=q(mt(),1);var e=q(ut(),1);var ft={action:"outline",mutation:"default",query:"secondary"},lt=a(r=>r<1e3?`${r<10?r.toFixed(1):Math.round(r).toString()}ms`:`${(r/1e3).toFixed(2)}s`,"O"),pt=a(r=>r.calls===0?"\u2014":r.errors===0?"0":`${r.errors.toString()} (${(r.errors/r.calls*100).toFixed(1)}%)`,"mt"),xt=a(r=>{let t=r.conflicts??0;return r.calls===0?"\u2014":t===0?"0":`${t.toString()} (${(t/r.calls*100).toFixed(1)}%)`},"ut"),gt={calls:a((r,t)=>t.calls-r.calls,"calls"),recent:a((r,t)=>t.lastCalledAt-r.lastCalledAt,"recent"),slowest:a((r,t)=>t.maxDurationMs-r.maxDurationMs,"slowest")},At=a(r=>{let t=(0,at.c)(47),{functions:A,initialShardKey:nt}=r,l=O(),[i,ot]=(0,B.useState)(nt??""),[c,it]=(0,B.useState)("recent"),M;t[0]!==i?(M=i.trim(),t[0]=i,t[1]=M):M=t[1];let j=Y(M,400),w;t[2]===Symbol.for("react.memo_cache_sentinel")?(w={},t[2]=w):w=t[2];let $;t[3]!==j?($={live:!0,shardKey:j},t[3]=j,t[4]=$):$=t[4];let{data:ct,error:d,errorSource:v,liveError:k}=Q(V.getFunctionStats,w,$),S=ct?.functions??null,C;t[5]!==A?(C=new Map((A??[]).map(Nt)),t[5]=A,t[6]=C):C=t[6];let K=C,F;t[7]===Symbol.for("react.memo_cache_sentinel")?(F=a(b=>{it(b.currentTarget.dataset.sort)},"C"),t[7]=F):F=t[7];let dt=F,D;if(t[8]!==d||t[9]!==v||t[10]!==K||t[11]!==k||t[12]!==i||t[13]!==c||t[14]!==S||t[15]!==l){let b=S===null?[]:S.toSorted(gt[c]),m;t[17]!==l?(m=l("Recent"),t[17]=l,t[18]=m):m=t[18];let h;t[19]!==m?(h={key:"recent",label:m},t[19]=m,t[20]=h):h=t[20];let u;t[21]!==l?(u=l("Most called"),t[21]=l,t[22]=u):u=t[22];let f;t[23]!==u?(f={key:"calls",label:u},t[23]=u,t[24]=f):f=t[24];let p;t[25]!==l?(p=l("Slowest"),t[25]=l,t[26]=p):p=t[26];let x;t[27]!==p?(x={key:"slowest",label:p},t[27]=p,t[28]=x):x=t[28];let I;t[29]!==f||t[30]!==x||t[31]!==h?(I=[h,f,x],t[29]=f,t[30]=x,t[31]=h,t[32]=I):I=t[32];let L=I,g;t[33]!==i?(g=(0,e.jsx)(X,{onChange:ot,testId:"fs-shard-input",value:i}),t[33]=i,t[34]=g):g=t[34];let N;t[35]!==k?(N=(0,e.jsx)(st,{message:k,prefix:"fs"}),t[35]=k,t[36]=N):N=t[36];let y;t[37]!==L||t[38]!==c?(y=(0,e.jsx)("div",{className:"ml-auto flex items-center gap-1",role:"group",children:L.map(s=>(0,e.jsx)(U,{"data-sort":s.key,"data-testid":`fs-sort-${s.key}`,onClick:dt,size:"sm",type:"button",variant:c===s.key?"secondary":"ghost",children:s.label},s.key))}),t[37]=L,t[38]=c,t[39]=y):y=t[39];let E;t[40]!==g||t[41]!==N||t[42]!==y?(E=(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[g,N,y]}),t[40]=g,t[41]=N,t[42]=y,t[43]=E):E=t[43];let _;t[44]!==d||t[45]!==v?(_=d!==null&&(0,e.jsx)(Z,{error:v,testId:"fs-error"}),t[44]=d,t[45]=v,t[46]=_):_=t[46],D=(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-function-stats",children:[E,_,S!==null&&b.length===0&&d===null&&(0,e.jsx)(H,{description:l("Per-function call counts, error rates, and latency land here after your first request."),icon:(0,e.jsxs)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:[(0,e.jsx)("path",{d:"M3 3v18h18"}),(0,e.jsx)("path",{d:"M7 14l4-4 3 3 5-6"})]}),testId:"fs-empty",title:l("No functions have run on this shard yet.")}),b.length>0&&(0,e.jsx)(W,{className:"overflow-hidden py-0",children:(0,e.jsx)(G,{className:"px-0",children:(0,e.jsxs)(tt,{"data-testid":"fs-table",children:[(0,e.jsx)(et,{children:(0,e.jsxs)(z,{children:[(0,e.jsx)(n,{children:l("function")}),(0,e.jsx)(n,{children:l("kind")}),(0,e.jsx)(n,{className:"text-right",children:l("calls")}),(0,e.jsx)(n,{className:"text-right",children:l("errors")}),(0,e.jsx)(n,{className:"text-right",children:l("conflicts")}),(0,e.jsx)(n,{className:"text-right",children:l("avg")}),(0,e.jsx)(n,{className:"text-right",children:l("max")}),(0,e.jsx)(n,{children:l("last run")}),(0,e.jsx)(n,{children:l("last error")})]})}),(0,e.jsx)(rt,{children:b.map(s=>{let T=K.get(s.path);return(0,e.jsxs)(z,{"data-testid":`fs-row-${s.path}`,children:[(0,e.jsx)(o,{className:"font-medium",children:s.path}),(0,e.jsx)(o,{children:T===void 0?(0,e.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}):(0,e.jsx)(R,{variant:ft[T],children:T})}),(0,e.jsx)(o,{className:"text-right tabular-nums",children:s.calls}),(0,e.jsx)(o,{className:P("text-right tabular-nums",s.errors>0&&"text-destructive"),children:pt(s)}),(0,e.jsx)(o,{className:P("text-right tabular-nums",(s.conflicts??0)>0&&"text-warning"),children:xt(s)}),(0,e.jsx)(o,{className:"text-right tabular-nums",children:s.calls===0?"\u2014":lt(s.totalDurationMs/s.calls)}),(0,e.jsx)(o,{className:"text-right tabular-nums",children:s.calls===0?"\u2014":lt(s.maxDurationMs)}),(0,e.jsx)(o,{className:"text-muted-foreground",children:J(s.lastCalledAt,"\u2014")}),(0,e.jsx)(o,{className:"max-w-[24ch] truncate text-destructive",title:s.lastErrorMessage??void 0,children:s.lastErrorMessage??(0,e.jsx)("span",{className:"text-muted-foreground",children:"\u2014"})})]},s.path)})})]})})})]}),t[8]=d,t[9]=v,t[10]=K,t[11]=k,t[12]=i,t[13]=c,t[14]=S,t[15]=l,t[16]=D}else D=t[16];return D},"Dt");function Nt(r){return[r.path,r.kind]}a(Nt,"ft");export{At as FunctionStatsPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as He}from"./chunk-LEDWUPXM.js";import"./chunk-2PJNAWB3.js";import{a as Ge}from"./chunk-54MMVNPT.js";import"./chunk-BGBLQ563.js";import{a as Pe}from"./chunk-UNUU7CJJ.js";import{a as Ke}from"./chunk-XXQUMVWH.js";import{b as _e}from"./chunk-OWADN6BI.js";import{a as De,b as ke,c as Be,d as G,e as w,f as C}from"./chunk-MIQTKZAR.js";import{a as Me,e as Te}from"./chunk-UZERI5YC.js";import{a as Ue}from"./chunk-V53KNYRN.js";import{R as We}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as U}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as le}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as z}from"./chunk-GXZAXNZI.js";import{f as Fe}from"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{a as ue}from"./chunk-XQCVZAGU.js";import{d as $,f as ie,g as ce,h as me,m as he,q as je}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as h,e as Ee,f as st,g as nt,h as rt}from"./chunk-3XIESWL4.js";var F=Ee(nt(),1);var A=Ee(st(),1);var t=Ee(rt(),1);var dt=h((n,e)=>{let a=new Set(n.map(s=>s.deadLetterQueue).filter(s=>typeof s=="string"&&s!=="")),u=n.filter(s=>(s.deadLetterQueue===void 0||s.deadLetterQueue==="")&&!a.has(s.name)),o=e.filter(s=>s.deadLettered).length;return{deadLetteredCount:o,queuesWithoutDlq:u,showReliabilityWarning:u.length>0||o>0}},"st"),ot=200,lt=ie(z.sendQueueMessage),ut=ie(z.replayQueueMessage),it=ie(z.clearQueueMessages),Ve=96,ct=h(n=>{if(n===void 0)return"\u2014";try{return JSON.stringify(n)}catch{return"[unserializable]"}},"lt"),mt=h(n=>n.length>Ve?`${n.slice(0,Ve)}\u2026`:n,"ut"),ht=h(n=>n==="error"?"destructive":n==="retry"?"outline":"secondary","ct"),pt=h((n,e)=>e(n==="messages"?"Messages":n==="send"?"Send":"Declared"),"it"),gt=h(n=>{let e=(0,F.c)(11),{loaded:a,queues:u}=n,o=$(),s;e[0]!==o?(s=o("Queues are declared in code with defineQueue. Enqueue from a mutation or action with ctx.queues.<name>.send(...); push consumers process batches in the worker."),e[0]=o,e[1]=s):s=e[1];let d;e[2]!==s?(d=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:s}),e[2]=s,e[3]=d):d=e[3];let r;e[4]!==a||e[5]!==u||e[6]!==o?(r=a&&u.length===0?(0,t.jsx)(ue,{description:o("No defineQueue is declared in lunora/queues.ts in this deployment. Add one to offload async work to a Cloudflare Queue."),testId:"queues-empty",title:o("No queues defined")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Te,{className:"px-0",children:(0,t.jsxs)(De,{"data-testid":"queues-table",children:[(0,t.jsx)(ke,{children:(0,t.jsxs)(G,{children:[(0,t.jsx)(w,{children:o("Export")}),(0,t.jsx)(w,{children:o("Queue")}),(0,t.jsx)(w,{children:o("Mode")}),(0,t.jsx)(w,{children:o("Binding")}),(0,t.jsx)(w,{children:o("Dead-letter")})]})}),(0,t.jsx)(Be,{children:u.map(Nt)})]})})}),e[4]=a,e[5]=u,e[6]=o,e[7]=r):r=e[7];let p;return e[8]!==d||e[9]!==r?(p=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"queues-declared",children:[d,r]}),e[8]=d,e[9]=r,e[10]=p):p=e[10],p},"mt"),ft=h(n=>{let e=(0,F.c)(67),{message:a,onReplay:u,replayingId:o}=n,s=$(),d,r,p,c,N,g,y,l,m,f;if(e[0]!==a.attempts||e[1]!==a.body||e[2]!==a.deadLettered||e[3]!==a.exportName||e[4]!==a.id||e[5]!==a.messageId||e[6]!==a.outcome||e[7]!==a.queue||e[8]!==s){let W=ct(a.body);r=G,g=`queues-message-${a.id}`;let j=a.exportName??a.queue;e[19]!==j?(y=(0,t.jsx)(C,{className:"font-mono text-xs",children:j}),e[19]=j,e[20]=y):y=e[20],e[21]!==a.messageId?(l=(0,t.jsx)(C,{className:"max-w-[16ch] truncate font-mono text-xs text-muted-foreground",title:a.messageId,children:a.messageId}),e[21]=a.messageId,e[22]=l):l=e[22],e[23]!==a.attempts?(m=(0,t.jsx)(C,{className:"font-mono text-xs tabular-nums",children:a.attempts}),e[23]=a.attempts,e[24]=m):m=e[24];let M=`queues-outcome-${a.id}`,T;e[25]!==a.outcome?(T=ht(a.outcome),e[25]=a.outcome,e[26]=T):T=e[26];let Q;e[27]!==a.outcome||e[28]!==M||e[29]!==T?(Q=(0,t.jsx)(le,{"data-testid":M,variant:T,children:a.outcome}),e[27]=a.outcome,e[28]=M,e[29]=T,e[30]=Q):Q=e[30];let _;e[31]!==a.deadLettered||e[32]!==a.id||e[33]!==s?(_=a.deadLettered&&(0,t.jsx)(le,{"data-testid":`queues-dlq-${a.id}`,variant:"destructive",children:s("DLQ")}),e[31]=a.deadLettered,e[32]=a.id,e[33]=s,e[34]=_):_=e[34],e[35]!==Q||e[36]!==_?(f=(0,t.jsx)(C,{children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[Q,_]})}),e[35]=Q,e[36]=_,e[37]=f):f=e[37],d=C,p="max-w-[32ch] truncate font-mono text-xs text-muted-foreground",c=W,N=mt(W),e[0]=a.attempts,e[1]=a.body,e[2]=a.deadLettered,e[3]=a.exportName,e[4]=a.id,e[5]=a.messageId,e[6]=a.outcome,e[7]=a.queue,e[8]=s,e[9]=d,e[10]=r,e[11]=p,e[12]=c,e[13]=N,e[14]=g,e[15]=y,e[16]=l,e[17]=m,e[18]=f}else d=e[9],r=e[10],p=e[11],c=e[12],N=e[13],g=e[14],y=e[15],l=e[16],m=e[17],f=e[18];let x;e[38]!==d||e[39]!==p||e[40]!==c||e[41]!==N?(x=(0,t.jsx)(d,{className:p,title:c,children:N}),e[38]=d,e[39]=p,e[40]=c,e[41]=N,e[42]=x):x=e[42];let q;e[43]!==a.capturedAt?(q=je(a.capturedAt,"\u2014"),e[43]=a.capturedAt,e[44]=q):q=e[44];let b;e[45]!==q?(b=(0,t.jsx)(C,{className:"text-xs text-muted-foreground tabular-nums",children:q}),e[45]=q,e[46]=b):b=e[46];let S=`queues-replay-${a.id}`,E=o!==null,I;e[47]!==a.id||e[48]!==o||e[49]!==s?(I=o===a.id?s("Replaying\u2026"):s("Replay"),e[47]=a.id,e[48]=o,e[49]=s,e[50]=I):I=e[50];let L;e[51]!==a.id||e[52]!==u||e[53]!==S||e[54]!==E||e[55]!==I?(L=(0,t.jsx)(C,{children:(0,t.jsx)(U,{"data-id":a.id,"data-testid":S,disabled:E,onClick:u,size:"xs",type:"button",variant:"outline",children:I})}),e[51]=a.id,e[52]=u,e[53]=S,e[54]=E,e[55]=I,e[56]=L):L=e[56];let D;return e[57]!==r||e[58]!==b||e[59]!==L||e[60]!==g||e[61]!==y||e[62]!==l||e[63]!==m||e[64]!==f||e[65]!==x?(D=(0,t.jsxs)(r,{"data-testid":g,children:[y,l,m,f,x,b,L]}),e[57]=r,e[58]=b,e[59]=L,e[60]=g,e[61]=y,e[62]=l,e[63]=m,e[64]=f,e[65]=x,e[66]=D):D=e[66],D},"ht"),xt=h(n=>{let e=(0,F.c)(26),{hasError:a,messages:u,onClear:o,onReplay:s,replayingId:d}=n,r=$(),p;e[0]!==r?(p=r("Cloudflare Queues have no peek API, so this is what push consumers actually processed \u2014 not pending depth."),e[0]=r,e[1]=p):p=e[1];let c;e[2]!==p?(c=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:p}),e[2]=p,e[3]=c):c=e[3];let N=u.length===0,g;e[4]!==r?(g=r("Clear log"),e[4]=r,e[5]=g):g=e[5];let y;e[6]!==o||e[7]!==N||e[8]!==g?(y=(0,t.jsx)(U,{className:"ml-auto","data-testid":"queues-clear",disabled:N,onClick:o,size:"sm",type:"button",variant:"outline",children:g}),e[6]=o,e[7]=N,e[8]=g,e[9]=y):y=e[9];let l;e[10]!==u.length||e[11]!==r?(l=u.length>0&&(0,t.jsx)(le,{"data-testid":"queues-count",variant:"secondary",children:r("{count} messages",{count:u.length})}),e[10]=u.length,e[11]=r,e[12]=l):l=e[12];let m;e[13]!==c||e[14]!==y||e[15]!==l?(m=(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c,y,l]}),e[13]=c,e[14]=y,e[15]=l,e[16]=m):m=e[16];let f;e[17]!==a||e[18]!==u||e[19]!==s||e[20]!==d||e[21]!==r?(f=!a&&u.length===0?(0,t.jsx)(ue,{description:r("Consumed messages appear here once a push consumer processes a batch in dev. Send one from the Send tab to see it captured."),testId:"queues-messages-empty",title:r("No consumed messages yet.")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Te,{className:"px-0",children:(0,t.jsx)(He,{className:"max-h-[32rem]","data-testid":"queues-messages-scroll",children:(0,t.jsxs)(De,{"data-testid":"queues-messages-table",children:[(0,t.jsx)(ke,{children:(0,t.jsxs)(G,{children:[(0,t.jsx)(w,{children:r("Export")}),(0,t.jsx)(w,{children:r("Message")}),(0,t.jsx)(w,{children:r("Attempts")}),(0,t.jsx)(w,{children:r("Outcome")}),(0,t.jsx)(w,{children:r("Body")}),(0,t.jsx)(w,{children:r("Captured")}),(0,t.jsx)(w,{})]})}),(0,t.jsx)(Be,{children:u.map(q=>(0,t.jsx)(ft,{message:q,onReplay:s,replayingId:d},q.id))})]})})})}),e[17]=a,e[18]=u,e[19]=s,e[20]=d,e[21]=r,e[22]=f):f=e[22];let x;return e[23]!==m||e[24]!==f?(x=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"queues-messages",children:[m,f]}),e[23]=m,e[24]=f,e[25]=x):x=e[25],x},"pt"),yt=h(n=>{let e=(0,F.c)(20),{batchMode:a,bodyText:u,delayText:o,onBatchModeChange:s,onBodyChange:d,onDelayChange:r,onSelectExport:p,onSend:c,queues:N,selectedExportName:g,sending:y}=n,l=$(),m;e[0]!==l?(m=l("Enqueue a JSON message to a declared producer to exercise its consumer. Nothing is captured until the consumer processes it."),e[0]=l,e[1]=m):m=e[1];let f;e[2]!==m?(f=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:m}),e[2]=m,e[3]=f):f=e[3];let x;e[4]!==a||e[5]!==u||e[6]!==o||e[7]!==s||e[8]!==d||e[9]!==r||e[10]!==p||e[11]!==c||e[12]!==N||e[13]!==g||e[14]!==y||e[15]!==l?(x=N.length===0?(0,t.jsx)(ue,{description:l("Declare a queue with defineQueue in lunora/queues.ts to enqueue a test message."),testId:"queues-send-empty",title:l("No queues to send to")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("select",{"aria-label":l("Queue"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"queues-send-select",onChange:p,value:g,children:N.map(bt)}),(0,t.jsx)(We,{"aria-label":l("Delay (seconds)"),className:"max-w-36","data-testid":"queues-send-delay",min:0,onChange:r,placeholder:l("Delay (s)"),type:"number",value:o}),(0,t.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",htmlFor:"queues-send-batch",children:[(0,t.jsx)("input",{checked:a,"data-testid":"queues-send-batch",id:"queues-send-batch",onChange:s,type:"checkbox"}),l("Send as batch (JSON array)")]}),(0,t.jsx)(U,{className:"ml-auto","data-testid":"queues-send-button",disabled:y||g==="",onClick:c,type:"button",children:l(y?"Sending\u2026":"Send message")})]}),(0,t.jsx)(Ue,{"aria-label":l("Message body (JSON)"),className:"font-mono","data-testid":"queues-send-body",onChange:d,placeholder:a?'[ { "hello": "world" } ]':'{ "hello": "world" }',value:u})]}),e[4]=a,e[5]=u,e[6]=o,e[7]=s,e[8]=d,e[9]=r,e[10]=p,e[11]=c,e[12]=N,e[13]=g,e[14]=y,e[15]=l,e[16]=x):x=e[16];let q;return e[17]!==f||e[18]!==x?(q=(0,t.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"queues-send",children:[f,x]}),e[17]=f,e[18]=x,e[19]=q):q=e[19],q},"gt"),Jt=h(n=>{let e=(0,F.c)(59),{limit:a}=n,u=a??ot,o=Fe(),s=$(),[d,r]=(0,A.useState)("declared"),[p,c]=(0,A.useState)(null),N;e[0]===Symbol.for("react.memo_cache_sentinel")?(N={},e[0]=N):N=e[0];let{data:g,error:y,errorSource:l}=_e(z.listQueues,N),m;e[1]!==u?(m={limit:u},e[1]=u,e[2]=m):m=e[2];let{data:f,error:x,errorSource:q,refetch:b}=_e(z.getQueueMessages,m),S=Array.isArray(g?.queues)?[...g.queues].toSorted(qt):[],E=f?.entries??[],{deadLetteredCount:I,queuesWithoutDlq:L,showReliabilityWarning:D}=dt(S,E),[W,j]=(0,A.useState)(""),[M,T]=(0,A.useState)(""),[Q,_]=(0,A.useState)(""),[K,Xe]=(0,A.useState)(!1),[pe,Oe]=(0,A.useState)(!1),[ge,Re]=(0,A.useState)(null),H=S.some(i=>i.exportName===W)?W:S[0]?.exportName??"",Je=d==="messages"?x:y,Ye=d==="messages"?q:l,fe=Je??p,xe=Je===null?p:Ye,V;e[3]!==b?(V=h(()=>{b()},"K"),e[3]=b,e[4]=V):V=e[4],Ge(V,d==="messages");let ye=h(async()=>{c(null);let i=H;if(i==="")return;let v=null,$e=M.trim();if($e!=="")try{v=JSON.parse($e)}catch{c(s("Body must be valid JSON."));return}let Ae,ze=Q.trim();if(ze!==""){let P=Number(ze);if(!Number.isFinite(P)||P<0){c(s("Delay must be a non-negative number of seconds."));return}Ae=P}if(K&&!Array.isArray(v)){c(s("Batch mode needs a JSON array body \u2014 each element is enqueued as one message."));return}Oe(!0);let at=K?{batch:v,delaySeconds:Ae,exportName:i}:{body:v,delaySeconds:Ae,exportName:i};try{await o.query(lt,at,ce("")),b()}catch(P){c(me(P))}Oe(!1)},"me"),X;e[5]!==o||e[6]!==b?(X=h(async i=>{c(null),Re(i);try{await o.query(ut,{id:i},ce("")),b()}catch(v){c(me(v))}Re(null)},"H"),e[5]=o,e[6]=b,e[7]=X):X=e[7];let Ne=X,Y;e[8]!==o||e[9]!==b?(Y=h(async()=>{c(null);try{await o.query(it,{},ce("")),b()}catch(i){c(me(i))}},"V"),e[8]=o,e[9]=b,e[10]=Y):Y=e[10];let be=Y,Z;e[11]===Symbol.for("react.memo_cache_sentinel")?(Z=h(i=>{let v=i.currentTarget.dataset.tab;(v==="declared"||v==="messages"||v==="send")&&r(v)},"X"),e[11]=Z):Z=e[11];let Ze=Z,ee;e[12]===Symbol.for("react.memo_cache_sentinel")?(ee=h(i=>{j(i.currentTarget.value)},"Y"),e[12]=ee):ee=e[12];let qe=ee,te;e[13]===Symbol.for("react.memo_cache_sentinel")?(te=h(i=>{T(i.currentTarget.value)},"Z"),e[13]=te):te=e[13];let ve=te,ae;e[14]===Symbol.for("react.memo_cache_sentinel")?(ae=h(i=>{_(i.currentTarget.value)},"ee"),e[14]=ae):ae=e[14];let Se=ae,se;e[15]===Symbol.for("react.memo_cache_sentinel")?(se=h(i=>{Xe(i.currentTarget.checked)},"te"),e[15]=se):se=e[15];let we=se,ne;e[16]!==ye?(ne=h(()=>{he(ye())},"ae"),e[16]=ye,e[17]=ne):ne=e[17];let Ce=ne,re;e[18]!==Ne?(re=h(i=>{let{id:v}=i.currentTarget.dataset;v!==void 0&&he(Ne(v))},"se"),e[18]=Ne,e[19]=re):re=e[19];let Qe=re,de;e[20]!==be?(de=h(()=>{he(be())},"re"),e[20]=be,e[21]=de):de=e[21];let Ie=de,et="flex flex-col gap-6",tt="lunora-queues-panel",k;e[22]!==s||e[23]!==d?(k=(0,t.jsx)("div",{className:"flex items-center gap-1","data-testid":"queues-tabs",role:"tablist",children:["declared","messages","send"].map(i=>(0,t.jsx)(U,{"aria-selected":d===i,"data-tab":i,"data-testid":`queues-tab-${i}`,onClick:Ze,role:"tab",size:"sm",type:"button",variant:d===i?"secondary":"ghost",children:pt(i,s)},i))}),e[22]=s,e[23]=d,e[24]=k):k=e[24];let B;e[25]!==fe||e[26]!==xe?(B=fe!==null&&(0,t.jsx)(Pe,{error:xe,testId:"queues-error"}),e[25]=fe,e[26]=xe,e[27]=B):B=e[27];let Le=D&&(0,t.jsx)(Ke,{icon:(0,t.jsx)("span",{"aria-hidden":"true",className:"text-base leading-none",children:"\u26A0"}),testId:"queues-dlq-warning",variant:"warning",children:(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[L.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"font-medium",children:s("No dead-letter queue on {queues}.",{queues:L.map(vt).join(", ")})}),(0,t.jsx)("p",{className:"text-muted-foreground",children:s("Exhausted messages are dropped after retries. Add a deadLetterQueue to capture them.")})]}),I>0&&(0,t.jsx)("p",{className:L.length>0?"text-muted-foreground":"font-medium",children:I===1?s("1 message was recently dead-lettered."):s("{count} messages were recently dead-lettered.",{count:I})})]})}),O;e[28]!==S||e[29]!==g||e[30]!==d?(O=d==="declared"&&(0,t.jsx)(gt,{loaded:g!==void 0,queues:S}),e[28]=S,e[29]=g,e[30]=d,e[31]=O):O=e[31];let R;e[32]!==E||e[33]!==x||e[34]!==Ie||e[35]!==Qe||e[36]!==ge||e[37]!==d?(R=d==="messages"&&(0,t.jsx)(xt,{hasError:x!==null,messages:E,onClear:Ie,onReplay:Qe,replayingId:ge}),e[32]=E,e[33]=x,e[34]=Ie,e[35]=Qe,e[36]=ge,e[37]=d,e[38]=R):R=e[38];let J;e[39]!==K||e[40]!==M||e[41]!==Q||e[42]!==we||e[43]!==ve||e[44]!==Se||e[45]!==qe||e[46]!==Ce||e[47]!==S||e[48]!==H||e[49]!==pe||e[50]!==d?(J=d==="send"&&(0,t.jsx)(yt,{batchMode:K,bodyText:M,delayText:Q,onBatchModeChange:we,onBodyChange:ve,onDelayChange:Se,onSelectExport:qe,onSend:Ce,queues:S,selectedExportName:H,sending:pe}),e[39]=K,e[40]=M,e[41]=Q,e[42]=we,e[43]=ve,e[44]=Se,e[45]=qe,e[46]=Ce,e[47]=S,e[48]=H,e[49]=pe,e[50]=d,e[51]=J):J=e[51];let oe;return e[52]!==k||e[53]!==B||e[54]!==Le||e[55]!==O||e[56]!==R||e[57]!==J?(oe=(0,t.jsxs)("div",{className:et,"data-testid":tt,children:[k,B,Le,O,R,J]}),e[52]=k,e[53]=B,e[54]=Le,e[55]=O,e[56]=R,e[57]=J,e[58]=oe):oe=e[58],oe},"Bt");function Nt(n){return(0,t.jsxs)(G,{"data-testid":`queues-row-${n.exportName}`,children:[(0,t.jsx)(C,{className:"font-mono text-xs",children:n.exportName}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.name}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.mode}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.binding}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.deadLetterQueue??"\u2014"})]},n.exportName)}h(Nt,"ft");function bt(n){return(0,t.jsx)("option",{value:n.exportName,children:n.exportName},n.exportName)}h(bt,"xt");function qt(n,e){return n.exportName.localeCompare(e.exportName)}h(qt,"yt");function vt(n){return n.name}h(vt,"Nt");export{Jt as default};
|
|
1
|
+
import{a as He}from"./chunk-LEDWUPXM.js";import"./chunk-2PJNAWB3.js";import{a as Ge}from"./chunk-54MMVNPT.js";import"./chunk-BGBLQ563.js";import{a as Pe}from"./chunk-UNUU7CJJ.js";import{a as Ke}from"./chunk-XXQUMVWH.js";import{b as _e}from"./chunk-XSD4Y6SQ.js";import{a as De,b as ke,c as Be,d as G,e as w,f as C}from"./chunk-MIQTKZAR.js";import{a as Me,e as Te}from"./chunk-UZERI5YC.js";import{a as Ue}from"./chunk-V53KNYRN.js";import{R as We}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as U}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as le}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as z}from"./chunk-GXZAXNZI.js";import{f as Fe}from"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{a as ue}from"./chunk-XQCVZAGU.js";import{d as $,f as ie,g as ce,h as me,m as he,q as je}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as h,e as Ee,f as st,g as nt,h as rt}from"./chunk-3XIESWL4.js";var F=Ee(nt(),1);var A=Ee(st(),1);var t=Ee(rt(),1);var dt=h((n,e)=>{let a=new Set(n.map(s=>s.deadLetterQueue).filter(s=>typeof s=="string"&&s!=="")),u=n.filter(s=>(s.deadLetterQueue===void 0||s.deadLetterQueue==="")&&!a.has(s.name)),o=e.filter(s=>s.deadLettered).length;return{deadLetteredCount:o,queuesWithoutDlq:u,showReliabilityWarning:u.length>0||o>0}},"st"),ot=200,lt=ie(z.sendQueueMessage),ut=ie(z.replayQueueMessage),it=ie(z.clearQueueMessages),Ve=96,ct=h(n=>{if(n===void 0)return"\u2014";try{return JSON.stringify(n)}catch{return"[unserializable]"}},"lt"),mt=h(n=>n.length>Ve?`${n.slice(0,Ve)}\u2026`:n,"ut"),ht=h(n=>n==="error"?"destructive":n==="retry"?"outline":"secondary","ct"),pt=h((n,e)=>e(n==="messages"?"Messages":n==="send"?"Send":"Declared"),"it"),gt=h(n=>{let e=(0,F.c)(11),{loaded:a,queues:u}=n,o=$(),s;e[0]!==o?(s=o("Queues are declared in code with defineQueue. Enqueue from a mutation or action with ctx.queues.<name>.send(...); push consumers process batches in the worker."),e[0]=o,e[1]=s):s=e[1];let d;e[2]!==s?(d=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:s}),e[2]=s,e[3]=d):d=e[3];let r;e[4]!==a||e[5]!==u||e[6]!==o?(r=a&&u.length===0?(0,t.jsx)(ue,{description:o("No defineQueue is declared in lunora/queues.ts in this deployment. Add one to offload async work to a Cloudflare Queue."),testId:"queues-empty",title:o("No queues defined")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Te,{className:"px-0",children:(0,t.jsxs)(De,{"data-testid":"queues-table",children:[(0,t.jsx)(ke,{children:(0,t.jsxs)(G,{children:[(0,t.jsx)(w,{children:o("Export")}),(0,t.jsx)(w,{children:o("Queue")}),(0,t.jsx)(w,{children:o("Mode")}),(0,t.jsx)(w,{children:o("Binding")}),(0,t.jsx)(w,{children:o("Dead-letter")})]})}),(0,t.jsx)(Be,{children:u.map(Nt)})]})})}),e[4]=a,e[5]=u,e[6]=o,e[7]=r):r=e[7];let p;return e[8]!==d||e[9]!==r?(p=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"queues-declared",children:[d,r]}),e[8]=d,e[9]=r,e[10]=p):p=e[10],p},"mt"),ft=h(n=>{let e=(0,F.c)(67),{message:a,onReplay:u,replayingId:o}=n,s=$(),d,r,p,c,N,g,y,l,m,f;if(e[0]!==a.attempts||e[1]!==a.body||e[2]!==a.deadLettered||e[3]!==a.exportName||e[4]!==a.id||e[5]!==a.messageId||e[6]!==a.outcome||e[7]!==a.queue||e[8]!==s){let W=ct(a.body);r=G,g=`queues-message-${a.id}`;let j=a.exportName??a.queue;e[19]!==j?(y=(0,t.jsx)(C,{className:"font-mono text-xs",children:j}),e[19]=j,e[20]=y):y=e[20],e[21]!==a.messageId?(l=(0,t.jsx)(C,{className:"max-w-[16ch] truncate font-mono text-xs text-muted-foreground",title:a.messageId,children:a.messageId}),e[21]=a.messageId,e[22]=l):l=e[22],e[23]!==a.attempts?(m=(0,t.jsx)(C,{className:"font-mono text-xs tabular-nums",children:a.attempts}),e[23]=a.attempts,e[24]=m):m=e[24];let M=`queues-outcome-${a.id}`,T;e[25]!==a.outcome?(T=ht(a.outcome),e[25]=a.outcome,e[26]=T):T=e[26];let Q;e[27]!==a.outcome||e[28]!==M||e[29]!==T?(Q=(0,t.jsx)(le,{"data-testid":M,variant:T,children:a.outcome}),e[27]=a.outcome,e[28]=M,e[29]=T,e[30]=Q):Q=e[30];let _;e[31]!==a.deadLettered||e[32]!==a.id||e[33]!==s?(_=a.deadLettered&&(0,t.jsx)(le,{"data-testid":`queues-dlq-${a.id}`,variant:"destructive",children:s("DLQ")}),e[31]=a.deadLettered,e[32]=a.id,e[33]=s,e[34]=_):_=e[34],e[35]!==Q||e[36]!==_?(f=(0,t.jsx)(C,{children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[Q,_]})}),e[35]=Q,e[36]=_,e[37]=f):f=e[37],d=C,p="max-w-[32ch] truncate font-mono text-xs text-muted-foreground",c=W,N=mt(W),e[0]=a.attempts,e[1]=a.body,e[2]=a.deadLettered,e[3]=a.exportName,e[4]=a.id,e[5]=a.messageId,e[6]=a.outcome,e[7]=a.queue,e[8]=s,e[9]=d,e[10]=r,e[11]=p,e[12]=c,e[13]=N,e[14]=g,e[15]=y,e[16]=l,e[17]=m,e[18]=f}else d=e[9],r=e[10],p=e[11],c=e[12],N=e[13],g=e[14],y=e[15],l=e[16],m=e[17],f=e[18];let x;e[38]!==d||e[39]!==p||e[40]!==c||e[41]!==N?(x=(0,t.jsx)(d,{className:p,title:c,children:N}),e[38]=d,e[39]=p,e[40]=c,e[41]=N,e[42]=x):x=e[42];let q;e[43]!==a.capturedAt?(q=je(a.capturedAt,"\u2014"),e[43]=a.capturedAt,e[44]=q):q=e[44];let b;e[45]!==q?(b=(0,t.jsx)(C,{className:"text-xs text-muted-foreground tabular-nums",children:q}),e[45]=q,e[46]=b):b=e[46];let S=`queues-replay-${a.id}`,E=o!==null,I;e[47]!==a.id||e[48]!==o||e[49]!==s?(I=o===a.id?s("Replaying\u2026"):s("Replay"),e[47]=a.id,e[48]=o,e[49]=s,e[50]=I):I=e[50];let L;e[51]!==a.id||e[52]!==u||e[53]!==S||e[54]!==E||e[55]!==I?(L=(0,t.jsx)(C,{children:(0,t.jsx)(U,{"data-id":a.id,"data-testid":S,disabled:E,onClick:u,size:"xs",type:"button",variant:"outline",children:I})}),e[51]=a.id,e[52]=u,e[53]=S,e[54]=E,e[55]=I,e[56]=L):L=e[56];let D;return e[57]!==r||e[58]!==b||e[59]!==L||e[60]!==g||e[61]!==y||e[62]!==l||e[63]!==m||e[64]!==f||e[65]!==x?(D=(0,t.jsxs)(r,{"data-testid":g,children:[y,l,m,f,x,b,L]}),e[57]=r,e[58]=b,e[59]=L,e[60]=g,e[61]=y,e[62]=l,e[63]=m,e[64]=f,e[65]=x,e[66]=D):D=e[66],D},"ht"),xt=h(n=>{let e=(0,F.c)(26),{hasError:a,messages:u,onClear:o,onReplay:s,replayingId:d}=n,r=$(),p;e[0]!==r?(p=r("Cloudflare Queues have no peek API, so this is what push consumers actually processed \u2014 not pending depth."),e[0]=r,e[1]=p):p=e[1];let c;e[2]!==p?(c=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:p}),e[2]=p,e[3]=c):c=e[3];let N=u.length===0,g;e[4]!==r?(g=r("Clear log"),e[4]=r,e[5]=g):g=e[5];let y;e[6]!==o||e[7]!==N||e[8]!==g?(y=(0,t.jsx)(U,{className:"ml-auto","data-testid":"queues-clear",disabled:N,onClick:o,size:"sm",type:"button",variant:"outline",children:g}),e[6]=o,e[7]=N,e[8]=g,e[9]=y):y=e[9];let l;e[10]!==u.length||e[11]!==r?(l=u.length>0&&(0,t.jsx)(le,{"data-testid":"queues-count",variant:"secondary",children:r("{count} messages",{count:u.length})}),e[10]=u.length,e[11]=r,e[12]=l):l=e[12];let m;e[13]!==c||e[14]!==y||e[15]!==l?(m=(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c,y,l]}),e[13]=c,e[14]=y,e[15]=l,e[16]=m):m=e[16];let f;e[17]!==a||e[18]!==u||e[19]!==s||e[20]!==d||e[21]!==r?(f=!a&&u.length===0?(0,t.jsx)(ue,{description:r("Consumed messages appear here once a push consumer processes a batch in dev. Send one from the Send tab to see it captured."),testId:"queues-messages-empty",title:r("No consumed messages yet.")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Te,{className:"px-0",children:(0,t.jsx)(He,{className:"max-h-[32rem]","data-testid":"queues-messages-scroll",children:(0,t.jsxs)(De,{"data-testid":"queues-messages-table",children:[(0,t.jsx)(ke,{children:(0,t.jsxs)(G,{children:[(0,t.jsx)(w,{children:r("Export")}),(0,t.jsx)(w,{children:r("Message")}),(0,t.jsx)(w,{children:r("Attempts")}),(0,t.jsx)(w,{children:r("Outcome")}),(0,t.jsx)(w,{children:r("Body")}),(0,t.jsx)(w,{children:r("Captured")}),(0,t.jsx)(w,{})]})}),(0,t.jsx)(Be,{children:u.map(q=>(0,t.jsx)(ft,{message:q,onReplay:s,replayingId:d},q.id))})]})})})}),e[17]=a,e[18]=u,e[19]=s,e[20]=d,e[21]=r,e[22]=f):f=e[22];let x;return e[23]!==m||e[24]!==f?(x=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"queues-messages",children:[m,f]}),e[23]=m,e[24]=f,e[25]=x):x=e[25],x},"pt"),yt=h(n=>{let e=(0,F.c)(20),{batchMode:a,bodyText:u,delayText:o,onBatchModeChange:s,onBodyChange:d,onDelayChange:r,onSelectExport:p,onSend:c,queues:N,selectedExportName:g,sending:y}=n,l=$(),m;e[0]!==l?(m=l("Enqueue a JSON message to a declared producer to exercise its consumer. Nothing is captured until the consumer processes it."),e[0]=l,e[1]=m):m=e[1];let f;e[2]!==m?(f=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:m}),e[2]=m,e[3]=f):f=e[3];let x;e[4]!==a||e[5]!==u||e[6]!==o||e[7]!==s||e[8]!==d||e[9]!==r||e[10]!==p||e[11]!==c||e[12]!==N||e[13]!==g||e[14]!==y||e[15]!==l?(x=N.length===0?(0,t.jsx)(ue,{description:l("Declare a queue with defineQueue in lunora/queues.ts to enqueue a test message."),testId:"queues-send-empty",title:l("No queues to send to")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("select",{"aria-label":l("Queue"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"queues-send-select",onChange:p,value:g,children:N.map(bt)}),(0,t.jsx)(We,{"aria-label":l("Delay (seconds)"),className:"max-w-36","data-testid":"queues-send-delay",min:0,onChange:r,placeholder:l("Delay (s)"),type:"number",value:o}),(0,t.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",htmlFor:"queues-send-batch",children:[(0,t.jsx)("input",{checked:a,"data-testid":"queues-send-batch",id:"queues-send-batch",onChange:s,type:"checkbox"}),l("Send as batch (JSON array)")]}),(0,t.jsx)(U,{className:"ml-auto","data-testid":"queues-send-button",disabled:y||g==="",onClick:c,type:"button",children:l(y?"Sending\u2026":"Send message")})]}),(0,t.jsx)(Ue,{"aria-label":l("Message body (JSON)"),className:"font-mono","data-testid":"queues-send-body",onChange:d,placeholder:a?'[ { "hello": "world" } ]':'{ "hello": "world" }',value:u})]}),e[4]=a,e[5]=u,e[6]=o,e[7]=s,e[8]=d,e[9]=r,e[10]=p,e[11]=c,e[12]=N,e[13]=g,e[14]=y,e[15]=l,e[16]=x):x=e[16];let q;return e[17]!==f||e[18]!==x?(q=(0,t.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"queues-send",children:[f,x]}),e[17]=f,e[18]=x,e[19]=q):q=e[19],q},"gt"),Jt=h(n=>{let e=(0,F.c)(59),{limit:a}=n,u=a??ot,o=Fe(),s=$(),[d,r]=(0,A.useState)("declared"),[p,c]=(0,A.useState)(null),N;e[0]===Symbol.for("react.memo_cache_sentinel")?(N={},e[0]=N):N=e[0];let{data:g,error:y,errorSource:l}=_e(z.listQueues,N),m;e[1]!==u?(m={limit:u},e[1]=u,e[2]=m):m=e[2];let{data:f,error:x,errorSource:q,refetch:b}=_e(z.getQueueMessages,m),S=Array.isArray(g?.queues)?[...g.queues].toSorted(qt):[],E=f?.entries??[],{deadLetteredCount:I,queuesWithoutDlq:L,showReliabilityWarning:D}=dt(S,E),[W,j]=(0,A.useState)(""),[M,T]=(0,A.useState)(""),[Q,_]=(0,A.useState)(""),[K,Xe]=(0,A.useState)(!1),[pe,Oe]=(0,A.useState)(!1),[ge,Re]=(0,A.useState)(null),H=S.some(i=>i.exportName===W)?W:S[0]?.exportName??"",Je=d==="messages"?x:y,Ye=d==="messages"?q:l,fe=Je??p,xe=Je===null?p:Ye,V;e[3]!==b?(V=h(()=>{b()},"K"),e[3]=b,e[4]=V):V=e[4],Ge(V,d==="messages");let ye=h(async()=>{c(null);let i=H;if(i==="")return;let v=null,$e=M.trim();if($e!=="")try{v=JSON.parse($e)}catch{c(s("Body must be valid JSON."));return}let Ae,ze=Q.trim();if(ze!==""){let P=Number(ze);if(!Number.isFinite(P)||P<0){c(s("Delay must be a non-negative number of seconds."));return}Ae=P}if(K&&!Array.isArray(v)){c(s("Batch mode needs a JSON array body \u2014 each element is enqueued as one message."));return}Oe(!0);let at=K?{batch:v,delaySeconds:Ae,exportName:i}:{body:v,delaySeconds:Ae,exportName:i};try{await o.query(lt,at,ce("")),b()}catch(P){c(me(P))}Oe(!1)},"me"),X;e[5]!==o||e[6]!==b?(X=h(async i=>{c(null),Re(i);try{await o.query(ut,{id:i},ce("")),b()}catch(v){c(me(v))}Re(null)},"H"),e[5]=o,e[6]=b,e[7]=X):X=e[7];let Ne=X,Y;e[8]!==o||e[9]!==b?(Y=h(async()=>{c(null);try{await o.query(it,{},ce("")),b()}catch(i){c(me(i))}},"V"),e[8]=o,e[9]=b,e[10]=Y):Y=e[10];let be=Y,Z;e[11]===Symbol.for("react.memo_cache_sentinel")?(Z=h(i=>{let v=i.currentTarget.dataset.tab;(v==="declared"||v==="messages"||v==="send")&&r(v)},"X"),e[11]=Z):Z=e[11];let Ze=Z,ee;e[12]===Symbol.for("react.memo_cache_sentinel")?(ee=h(i=>{j(i.currentTarget.value)},"Y"),e[12]=ee):ee=e[12];let qe=ee,te;e[13]===Symbol.for("react.memo_cache_sentinel")?(te=h(i=>{T(i.currentTarget.value)},"Z"),e[13]=te):te=e[13];let ve=te,ae;e[14]===Symbol.for("react.memo_cache_sentinel")?(ae=h(i=>{_(i.currentTarget.value)},"ee"),e[14]=ae):ae=e[14];let Se=ae,se;e[15]===Symbol.for("react.memo_cache_sentinel")?(se=h(i=>{Xe(i.currentTarget.checked)},"te"),e[15]=se):se=e[15];let we=se,ne;e[16]!==ye?(ne=h(()=>{he(ye())},"ae"),e[16]=ye,e[17]=ne):ne=e[17];let Ce=ne,re;e[18]!==Ne?(re=h(i=>{let{id:v}=i.currentTarget.dataset;v!==void 0&&he(Ne(v))},"se"),e[18]=Ne,e[19]=re):re=e[19];let Qe=re,de;e[20]!==be?(de=h(()=>{he(be())},"re"),e[20]=be,e[21]=de):de=e[21];let Ie=de,et="flex flex-col gap-6",tt="lunora-queues-panel",k;e[22]!==s||e[23]!==d?(k=(0,t.jsx)("div",{className:"flex items-center gap-1","data-testid":"queues-tabs",role:"tablist",children:["declared","messages","send"].map(i=>(0,t.jsx)(U,{"aria-selected":d===i,"data-tab":i,"data-testid":`queues-tab-${i}`,onClick:Ze,role:"tab",size:"sm",type:"button",variant:d===i?"secondary":"ghost",children:pt(i,s)},i))}),e[22]=s,e[23]=d,e[24]=k):k=e[24];let B;e[25]!==fe||e[26]!==xe?(B=fe!==null&&(0,t.jsx)(Pe,{error:xe,testId:"queues-error"}),e[25]=fe,e[26]=xe,e[27]=B):B=e[27];let Le=D&&(0,t.jsx)(Ke,{icon:(0,t.jsx)("span",{"aria-hidden":"true",className:"text-base leading-none",children:"\u26A0"}),testId:"queues-dlq-warning",variant:"warning",children:(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[L.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"font-medium",children:s("No dead-letter queue on {queues}.",{queues:L.map(vt).join(", ")})}),(0,t.jsx)("p",{className:"text-muted-foreground",children:s("Exhausted messages are dropped after retries. Add a deadLetterQueue to capture them.")})]}),I>0&&(0,t.jsx)("p",{className:L.length>0?"text-muted-foreground":"font-medium",children:I===1?s("1 message was recently dead-lettered."):s("{count} messages were recently dead-lettered.",{count:I})})]})}),O;e[28]!==S||e[29]!==g||e[30]!==d?(O=d==="declared"&&(0,t.jsx)(gt,{loaded:g!==void 0,queues:S}),e[28]=S,e[29]=g,e[30]=d,e[31]=O):O=e[31];let R;e[32]!==E||e[33]!==x||e[34]!==Ie||e[35]!==Qe||e[36]!==ge||e[37]!==d?(R=d==="messages"&&(0,t.jsx)(xt,{hasError:x!==null,messages:E,onClear:Ie,onReplay:Qe,replayingId:ge}),e[32]=E,e[33]=x,e[34]=Ie,e[35]=Qe,e[36]=ge,e[37]=d,e[38]=R):R=e[38];let J;e[39]!==K||e[40]!==M||e[41]!==Q||e[42]!==we||e[43]!==ve||e[44]!==Se||e[45]!==qe||e[46]!==Ce||e[47]!==S||e[48]!==H||e[49]!==pe||e[50]!==d?(J=d==="send"&&(0,t.jsx)(yt,{batchMode:K,bodyText:M,delayText:Q,onBatchModeChange:we,onBodyChange:ve,onDelayChange:Se,onSelectExport:qe,onSend:Ce,queues:S,selectedExportName:H,sending:pe}),e[39]=K,e[40]=M,e[41]=Q,e[42]=we,e[43]=ve,e[44]=Se,e[45]=qe,e[46]=Ce,e[47]=S,e[48]=H,e[49]=pe,e[50]=d,e[51]=J):J=e[51];let oe;return e[52]!==k||e[53]!==B||e[54]!==Le||e[55]!==O||e[56]!==R||e[57]!==J?(oe=(0,t.jsxs)("div",{className:et,"data-testid":tt,children:[k,B,Le,O,R,J]}),e[52]=k,e[53]=B,e[54]=Le,e[55]=O,e[56]=R,e[57]=J,e[58]=oe):oe=e[58],oe},"Bt");function Nt(n){return(0,t.jsxs)(G,{"data-testid":`queues-row-${n.exportName}`,children:[(0,t.jsx)(C,{className:"font-mono text-xs",children:n.exportName}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.name}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.mode}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.binding}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.deadLetterQueue??"\u2014"})]},n.exportName)}h(Nt,"ft");function bt(n){return(0,t.jsx)("option",{value:n.exportName,children:n.exportName},n.exportName)}h(bt,"xt");function qt(n,e){return n.exportName.localeCompare(e.exportName)}h(qt,"yt");function vt(n){return n.name}h(vt,"Nt");export{Jt as default};
|