@lunora/studio 1.0.0-alpha.78 → 1.0.0-alpha.79
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 +2 -1
- package/dist/index.js +1 -1
- package/dist/mount.js +1 -1
- package/dist/packem_chunks/ApiTab.js +1 -1
- package/dist/packem_chunks/AuditPanel.js +1 -1
- package/dist/packem_chunks/ExportImportPanel.js +1 -1
- package/dist/packem_chunks/FileBrowser.js +1 -1
- package/dist/packem_chunks/FunctionRunner.js +1 -1
- package/dist/packem_chunks/FunctionStatsPanel.js +1 -1
- package/dist/packem_chunks/HealthPanel.js +1 -1
- package/dist/packem_chunks/InsightsPanel.js +1 -1
- package/dist/packem_chunks/LogsPanel.js +1 -1
- package/dist/packem_chunks/MailPanel.js +1 -1
- package/dist/packem_chunks/MetricsPanel.js +1 -1
- package/dist/packem_chunks/MigrationsPanel.js +1 -1
- package/dist/packem_chunks/NotificationsPanel.js +1 -1
- package/dist/packem_chunks/PitrPanel.js +1 -1
- package/dist/packem_chunks/SchemaViewer.js +1 -1
- package/dist/packem_chunks/SecurityAdvisorPanel.js +1 -1
- package/dist/packem_chunks/SettingsPanel.js +1 -1
- package/dist/packem_chunks/SqlEditorPanel.js +1 -1
- package/dist/packem_chunks/TableEditor.js +1 -1
- package/dist/packem_chunks/agents-panel.js +1 -1
- package/dist/packem_chunks/auth-audit-panel.js +1 -1
- package/dist/packem_chunks/containers-panel.js +1 -1
- package/dist/packem_chunks/dashboards-panel.js +1 -1
- package/dist/packem_chunks/fanout-panel.js +1 -1
- package/dist/packem_chunks/flags-panel.js +1 -1
- package/dist/packem_chunks/issues-panel.js +1 -1
- package/dist/packem_chunks/kv-browser.js +1 -1
- package/dist/packem_chunks/organizations-panel.js +1 -1
- package/dist/packem_chunks/payments-panel.js +1 -1
- package/dist/packem_chunks/permissions-panel.js +1 -1
- package/dist/packem_chunks/queues-panel.js +1 -1
- package/dist/packem_chunks/rls-panel.js +1 -1
- package/dist/packem_chunks/storage-rules-panel.js +1 -1
- package/dist/packem_chunks/subscriptions-panel.js +1 -1
- package/dist/packem_chunks/traces-panel.js +1 -1
- package/dist/packem_chunks/users-panel.js +1 -1
- package/dist/packem_chunks/workflows-panel.js +1 -1
- package/dist/packem_shared/ADMIN_FUNCTIONS-CpgIo9pj.js +1 -0
- package/dist/packem_shared/{ApiDocsPanel-eJYZlylw.js → ApiDocsPanel-CjdsxN1t.js} +1 -1
- package/dist/packem_shared/{DataBrowser-B8J5lHjP.js → DataBrowser-Bfstz_au.js} +1 -1
- package/dist/packem_shared/{HomePanel-DL1HupAN.js → HomePanel-B8EFM4u3.js} +1 -1
- package/dist/packem_shared/{Studio-BWBclm_C.js → Studio-BDtS9C5g.js} +1 -1
- package/dist/packem_shared/{StudioApp-BFm73yVr.js → StudioApp-DjLzIO9E.js} +1 -1
- package/dist/packem_shared/{home-panel-B-8BCffw.js → home-panel-Cm88Nvqh.js} +1 -1
- package/dist/packem_shared/{studio-BHA7hnI3.js → studio-BmWFd-Rz.js} +1 -1
- package/dist/packem_shared/use-async-submit-DLNCqLFq.js +1 -0
- package/dist/packem_shared/use-auth-config-9S_K_W-G.js +1 -0
- package/dist/standalone/{chunk-EVN46TVV.js → chunk-2SHUN7KF.js} +1 -1
- package/dist/standalone/{chunk-C43X4M5U.js → chunk-3EXLKL6V.js} +1 -1
- package/dist/standalone/{chunk-KDOC2DP5.js → chunk-3KAERFMC.js} +1 -1
- package/dist/standalone/{chunk-GSPTEMYN.js → chunk-4XDMVUS5.js} +1 -1
- package/dist/standalone/{chunk-YD5NF6UT.js → chunk-5YWJNF5X.js} +1 -1
- package/dist/standalone/chunk-66YJ3IOZ.js +1 -0
- package/dist/standalone/{chunk-2F7G7IWQ.js → chunk-6CULAILE.js} +1 -1
- package/dist/standalone/{chunk-D7XXWV4E.js → chunk-6KHEBRBB.js} +1 -1
- package/dist/standalone/{chunk-4WLYA3XE.js → chunk-6WCIFGDW.js} +1 -1
- package/dist/standalone/{chunk-OHKRN65U.js → chunk-7RG3AKPY.js} +1 -1
- package/dist/standalone/{chunk-65OTWFS3.js → chunk-A2FPLOMJ.js} +1 -1
- package/dist/standalone/chunk-AADILRJW.js +14 -0
- package/dist/standalone/chunk-AADXUXZO.js +1 -0
- package/dist/standalone/{chunk-L7N7F3DA.js → chunk-ARI4JTIH.js} +1 -1
- package/dist/standalone/chunk-AVZGVZZ7.js +1 -0
- package/dist/standalone/{chunk-5U2THBI7.js → chunk-BDO4J5AP.js} +1 -1
- package/dist/standalone/{chunk-XSD4Y6SQ.js → chunk-BMQJ4CAO.js} +1 -1
- package/dist/standalone/{chunk-5L2MD6F6.js → chunk-CMUP7HPS.js} +1 -1
- package/dist/standalone/{chunk-QGKAJTQQ.js → chunk-CP7AUUOU.js} +1 -1
- package/dist/standalone/{chunk-UIS34ZPB.js → chunk-DX3RMFQU.js} +1 -1
- package/dist/standalone/{chunk-5OWIOACV.js → chunk-E2CJUP53.js} +1 -1
- package/dist/standalone/{chunk-FGTK44LR.js → chunk-EIT7ERYE.js} +1 -1
- package/dist/standalone/{chunk-35II7U25.js → chunk-EN2QAEO4.js} +1 -1
- package/dist/standalone/{chunk-QVEHPYA5.js → chunk-FLYO3XY5.js} +1 -1
- package/dist/standalone/{chunk-DVOBKIUX.js → chunk-FWCKM2CU.js} +1 -1
- package/dist/standalone/{chunk-VPAXCQ2Y.js → chunk-GITJXQOS.js} +1 -1
- package/dist/standalone/{chunk-SA3MDZC3.js → chunk-GP6IRITM.js} +1 -1
- package/dist/standalone/{chunk-VGHSEUEX.js → chunk-GXU3ATKS.js} +1 -1
- package/dist/standalone/{chunk-FPLGBHY4.js → chunk-H5Y5NQPL.js} +1 -1
- package/dist/standalone/{chunk-34UVAASH.js → chunk-HALNNKTC.js} +1 -1
- package/dist/standalone/{chunk-UNUU7CJJ.js → chunk-HK4OVYG3.js} +1 -1
- package/dist/standalone/{chunk-ZNNAGR6N.js → chunk-HQEMYD2K.js} +1 -1
- package/dist/standalone/{chunk-F6GOKFMU.js → chunk-HYT2ZUNP.js} +2 -2
- package/dist/standalone/{chunk-7RXOPYR5.js → chunk-I4WGRDL2.js} +1 -1
- package/dist/standalone/{chunk-P24JBHEZ.js → chunk-ISZSYNTI.js} +1 -1
- package/dist/standalone/chunk-JWG3VRGB.js +1 -0
- package/dist/standalone/{chunk-RAA2RGG6.js → chunk-KDYNM3GV.js} +1 -1
- package/dist/standalone/{chunk-T2JIUFOD.js → chunk-KP6JQSH2.js} +1 -1
- package/dist/standalone/{chunk-IDNNI63H.js → chunk-LSEZN2ZL.js} +1 -1
- package/dist/standalone/{chunk-LJDP7NRB.js → chunk-LU3GW7HI.js} +1 -1
- package/dist/standalone/chunk-MVGE3JJN.js +1 -0
- package/dist/standalone/chunk-MXSHWB3M.js +1 -0
- package/dist/standalone/{chunk-BEH5N5ZA.js → chunk-NG6LYBPJ.js} +1 -1
- package/dist/standalone/{chunk-HP2UCWND.js → chunk-NL2DZKFI.js} +1 -1
- package/dist/standalone/{chunk-EXFBIISG.js → chunk-OGVCXKRL.js} +1 -1
- package/dist/standalone/{chunk-EKRN4ZQM.js → chunk-OPC233PZ.js} +1 -1
- package/dist/standalone/{chunk-TLHJRWNK.js → chunk-P4CWOYFL.js} +1 -1
- package/dist/standalone/{chunk-QLJJ5YYZ.js → chunk-PRJ4RJDU.js} +1 -1
- package/dist/standalone/{chunk-XEDU5FO4.js → chunk-PUY3YDXI.js} +1 -1
- package/dist/standalone/{chunk-FGTABSAK.js → chunk-QZMR6MUG.js} +1 -1
- package/dist/standalone/{chunk-F5QWLENA.js → chunk-W6TE2I2D.js} +1 -1
- package/dist/standalone/{chunk-PF7V3G2Z.js → chunk-WCWYSOCN.js} +1 -1
- package/dist/standalone/{chunk-BNUJ7QMG.js → chunk-WEO3YVP6.js} +1 -1
- package/dist/standalone/{chunk-6DWCIIHE.js → chunk-XIZNYKOD.js} +1 -1
- package/dist/standalone/{chunk-3FUFEZ65.js → chunk-XS6Q6GGV.js} +1 -1
- package/dist/standalone/{chunk-XQBTNJUQ.js → chunk-Y3CQDULJ.js} +1 -1
- package/dist/standalone/{chunk-7J5N6DGQ.js → chunk-YCRMVBPW.js} +1 -1
- package/dist/standalone/{chunk-H7NIIBHH.js → chunk-Z2JPEI2V.js} +1 -1
- package/dist/standalone/studio.js +1 -1
- package/dist/styles.css +1 -1
- package/package.json +6 -6
- package/dist/packem_shared/ADMIN_FUNCTIONS-BYNSbBVE.js +0 -1
- package/dist/packem_shared/use-async-submit-H68GHPz8.js +0 -1
- package/dist/standalone/chunk-3QRTYSSX.js +0 -1
- package/dist/standalone/chunk-B43FTQJ7.js +0 -1
- package/dist/standalone/chunk-GXZAXNZI.js +0 -1
- package/dist/standalone/chunk-LE56LPNH.js +0 -13
- package/dist/standalone/chunk-PWWHP76O.js +0 -1
- package/dist/standalone/chunk-YI3WYUXK.js +0 -1
|
@@ -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-
|
|
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-AADXUXZO.js";import{f as G}from"./chunk-EN2QAEO4.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{c as Ne}from"./chunk-AADILRJW.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 C}from"./chunk-54MMVNPT.js";import{a as _}from"./chunk-
|
|
1
|
+
import{a as C}from"./chunk-54MMVNPT.js";import{a as _}from"./chunk-BMQJ4CAO.js";import{a as $,b as z,c as B,d as g,e as n,f as i}from"./chunk-MIQTKZAR.js";import{a as S,e as I}from"./chunk-UZERI5YC.js";import{c as w}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{f as b}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as j}from"./chunk-XQCVZAGU.js";import{d as k,m as R,q as T}from"./chunk-4CGALXS3.js";import"./chunk-AADILRJW.js";import{a as h,e as y,g as P,h as Q}from"./chunk-3XIESWL4.js";var L=y(P(),1);var s=y(Q(),1);var E=200,U=h(()=>{let e=(0,L.c)(21),l=b(),t=k(),u;e[0]===Symbol.for("react.memo_cache_sentinel")?(u=["lunora-auth-sessions",E],e[0]=u):u=e[0];let p;e[1]!==l?(p=h(()=>l.listAuthSessions({limit:E}),"u"),e[1]=l,e[2]=p):p=e[2];let o=_(u,p),{error:f}=o,a=o.data?.rows??null,x;e[3]!==o?(x=h(()=>{o.refetch()},"f"),e[3]=o,e[4]=x):x=e[4],C(x,!0);let N;e[5]!==l||e[6]!==o?(N=h(r=>{R((async()=>{await l.revokeAuthSession({sessionId:r}),o.refetch()})())},"x"),e[5]=l,e[6]=o,e[7]=N):N=e[7];let A=N,d;e[8]!==f?(d=f!==null&&(0,s.jsx)("p",{className:"text-sm text-destructive","data-testid":"auth-sessions-error",role:"alert",children:f}),e[8]=f,e[9]=d):d=e[9];let c;e[10]!==a||e[11]!==t?(c=a!==null&&a.length===0&&(0,s.jsx)(j,{testId:"auth-sessions-empty",title:t("No active sessions.")}),e[10]=a,e[11]=t,e[12]=c):c=e[12];let m;e[13]!==A||e[14]!==a||e[15]!==t?(m=a!==null&&a.length>0&&(0,s.jsx)(S,{className:"overflow-hidden py-0",children:(0,s.jsx)(I,{className:"px-0",children:(0,s.jsxs)($,{"data-testid":"auth-sessions-table",children:[(0,s.jsx)(z,{children:(0,s.jsxs)(g,{children:[(0,s.jsx)(n,{children:t("user")}),(0,s.jsx)(n,{children:t("expires")}),(0,s.jsx)(n,{children:t("ip")}),(0,s.jsx)(n,{children:t("user agent")}),(0,s.jsx)(n,{children:t("impersonated by")}),(0,s.jsx)(n,{"aria-label":t("Actions")})]})}),(0,s.jsx)(B,{children:a.map(r=>(0,s.jsxs)(g,{"data-testid":`auth-session-${r.id}`,children:[(0,s.jsx)(i,{className:"font-mono text-xs",children:r.userId}),(0,s.jsx)(i,{className:"text-muted-foreground tabular-nums",children:T(r.expiresAt)}),(0,s.jsx)(i,{children:r.ipAddress??""}),(0,s.jsx)(i,{className:"max-w-40 truncate",children:r.userAgent??""}),(0,s.jsx)(i,{className:"font-mono text-xs",children:r.impersonatedBy??""}),(0,s.jsx)(i,{children:(0,s.jsx)(w,{"data-testid":`auth-session-revoke-${r.id}`,onClick:h(()=>{A(r.id)},"onClick"),size:"xs",type:"button",variant:"ghost",children:t("Revoke")})})]},r.id))})]})})}),e[13]=A,e[14]=a,e[15]=t,e[16]=m):m=e[16];let v;return e[17]!==d||e[18]!==c||e[19]!==m?(v=(0,s.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"auth-sessions",children:[d,c,m]}),e[17]=d,e[18]=c,e[19]=m,e[20]=v):v=e[20],v},"Q");export{U as AuthSessionsPanel};
|
|
@@ -1,4 +1,4 @@
|
|
|
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(`
|
|
1
|
+
import{c as d}from"./chunk-AADILRJW.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
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
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
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as se}from"./chunk-X2FQ6B5V.js";import{a as te}from"./chunk-UNUU7CJJ.js";import"./chunk-XXQUMVWH.js";import{b as O}from"./chunk-XSD4Y6SQ.js";import{a as ae,b as re,c as le,d as Y,e as M,f as q}from"./chunk-MIQTKZAR.js";import{a as U,b as G,c as H,d as Q,e as W}from"./chunk-UZERI5YC.js";import{a as ie}from"./chunk-V53KNYRN.js";import{a as w}from"./chunk-5Y3QLNWX.js";import{a as ee}from"./chunk-LFXFP4IF.js";import"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as _}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as k}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as F}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as R}from"./chunk-GXZAXNZI.js";import{f as J}from"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{a as K}from"./chunk-XQCVZAGU.js";import{d as z,f as V,g as X,h as Z,m as j}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as n,e as D,f as he,g as xe,h as ye}from"./chunk-3XIESWL4.js";var c=D(he(),1);var de=D(xe(),1);var e=D(ye(),1);var oe=["read","insert","update","delete"],ge=n((a,t)=>({delete:a("Delete"),insert:a("Insert"),read:a("Read"),update:a("Update")})[t],"xe"),be=n(a=>{let t=new Set;for(let s of a?.advisories??[])if(s.name==="rls_uncovered_table"){let{table:i}=s.metadata;typeof i=="string"&&i!==""&&t.add(i)}return t},"ye"),ve=n((a,t,s)=>{let i=new Map,r=n(l=>{let d=i.get(l);if(d!==void 0)return d;let o={cells:{delete:{},insert:{},read:{},update:{}},maskedColumns:[],table:l,uncovered:s.has(l)};return i.set(l,o),o},"r");for(let l of a)r(l.table).cells[l.on]={procedure:l.procedure};for(let l of t){let d=r(l.table);d.maskedColumns.includes(l.column)||d.maskedColumns.push(l.column)}for(let l of s)r(l);return[...i.values()].toSorted((l,d)=>l.table.localeCompare(d.table))},"ge"),Ne=n(a=>{let t=(0,de.c)(17),s;t[0]!==a?(s=a===void 0?{}:a,t[0]=a,t[1]=s):s=t[1];let{onProbe:i}=s,r=z(),l,d;t[2]===Symbol.for("react.memo_cache_sentinel")?(l={},d={live:!0},t[2]=l,t[3]=d):(l=t[2],d=t[3]);let o=O(R.rlsPolicies,l,d),y;t[4]===Symbol.for("react.memo_cache_sentinel")?(y={},t[4]=y):y=t[4];let u=O(R.maskPolicies,y),h;t[5]===Symbol.for("react.memo_cache_sentinel")?(h={},t[5]=h):h=t[5];let v=O(R.getAdvisories,h),N;if(t[6]!==v.data||t[7]!==u.data||t[8]!==i||t[9]!==o||t[10]!==r){let b=null;o.data!==void 0&&(b=Array.isArray(o.data.policies)?o.data.policies:[]);let E=Array.isArray(u.data?.columns)?u.data.columns:[],T=v.data??null,{error:x,errorSource:f,liveError:S}=o,I=b===null?[]:ve(b,E,be(T)),A;t[12]!==S?(A=(0,e.jsx)("div",{className:"flex items-center justify-end",children:(0,e.jsx)(se,{message:S,prefix:"pm"})}),t[12]=S,t[13]=A):A=t[13];let g;t[14]!==x||t[15]!==f?(g=x!==null&&(0,e.jsx)(te,{error:f,testId:"pm-error"}),t[14]=x,t[15]=f,t[16]=g):g=t[16],N=(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-permissions-matrix",children:[A,g,b!==null&&I.length===0?(0,e.jsx)(K,{description:r("Add a `definePolicy` and wire it through `.use(rls(...))` to populate this matrix."),testId:"pm-empty",title:r("No policy")}):(0,e.jsxs)(ae,{"data-testid":"pm-table",children:[(0,e.jsx)(re,{children:(0,e.jsxs)(Y,{children:[(0,e.jsx)(M,{children:r("Table")}),oe.map(p=>(0,e.jsx)(M,{children:ge(r,p)},p)),(0,e.jsx)(M,{children:r("Masked columns")})]})}),(0,e.jsx)(le,{children:I.map(p=>(0,e.jsxs)(Y,{"data-testid":`pm-row-${p.table}`,children:[(0,e.jsx)(q,{className:"font-mono text-xs",children:(0,e.jsxs)("span",{className:"flex items-center gap-1.5",children:[p.table,p.uncovered&&(0,e.jsx)(F,{"data-testid":`pm-uncovered-${p.table}`,title:r("Uncovered \u2014 reachable without a policy"),variant:"destructive",children:r("Uncovered \u2014 reachable without a policy")})]})}),oe.map(C=>{let $=p.cells[C];return(0,e.jsx)(q,{"data-testid":`pm-cell-${p.table}-${C}`,children:$.procedure===void 0?(0,e.jsx)("span",{className:"text-xs text-muted-foreground",children:r("No policy")}):(0,e.jsxs)("span",{className:"flex flex-col gap-1",children:[(0,e.jsx)(F,{variant:"secondary",children:r("Covered by {procedure}",{procedure:$.procedure})}),i!==void 0&&(0,e.jsx)(k,{className:"h-auto justify-start p-0 text-[11px]","data-testid":`pm-probe-${p.table}-${C}`,onClick:n(()=>{i(p.table,C,$.procedure??"")},"onClick"),size:"xs",type:"button",variant:"ghost",children:r("Probe this")})]})},C)}),(0,e.jsx)(q,{children:p.maskedColumns.length===0?(0,e.jsx)("span",{"aria-hidden":"true",className:"text-muted-foreground",children:"\u2014"}):(0,e.jsx)("span",{className:"flex flex-wrap gap-1",children:p.maskedColumns.map(ke)})})]},p.table))})]})]}),t[6]=v.data,t[7]=u.data,t[8]=i,t[9]=o,t[10]=r,t[11]=N}else N=t[11];return N},"be");function ke(a){return(0,e.jsx)(F,{variant:"outline",children:a},a)}n(ke,"ve");var we=V(R.runAs),Ce=n(()=>{let a=J();return async({args:t,functionPath:s,shardKey:i="",userId:r})=>{let l=we;try{return{kind:"allowed",value:await a.query(l,{args:t,functionPath:s,userId:r},X(i))}}catch(d){return{kind:"denied",message:d instanceof Error?d.message:String(d)}}}},"we"),Pe=n(a=>a===void 0?"undefined":JSON.stringify(a,null,2),"ke"),Se=n(({functions:a,prefill:t,runAsIdentity:s=!1}={})=>{let i=J(),r=z(),l=Ce(),[d,o]=(0,c.useState)(null),[y,u]=(0,c.useState)(null),h=a??d??[],[v,N]=(0,c.useState)(""),[b,E]=(0,c.useState)("{}"),[T,x]=(0,c.useState)(""),[f,S]=(0,c.useState)(""),[I,A]=(0,c.useState)(!1),[g,p]=(0,c.useState)(null),[C,$]=(0,c.useState)(null),B=(0,c.useRef)(-1);(0,c.useEffect)(()=>{if(a!==void 0)return;let m=!1;return i.listFunctions().then(P=>(m||o(P),P)).catch(P=>{m||u(Z(P))}),()=>{m=!0}},[i,a]),(0,c.useEffect)(()=>{if(t===void 0||B.current===t.nonce)return;B.current=t.nonce;let m=t.functionPath;queueMicrotask(()=>{N(m),p(null)})},[t]);let L=v===""?h[0]?.path??"":v,ce=n(async()=>{if(L==="")return;let m;try{m=b.trim()===""?{}:JSON.parse(b)}catch(P){$(r("Invalid JSON args: {message}",{message:P.message})),p(null);return}$(null),A(!0);try{let P=await l({args:m,functionPath:L,shardKey:T.trim(),userId:f.trim()});p(P)}finally{A(!1)}},"Q"),me=n(()=>{j(ce())},"V"),pe=n(m=>{N(m.target.value)},"X"),fe=n(m=>{E(m.target.value)},"Z"),ue=n(m=>{S(m.target.value)},"ee");return(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-permissions-playground",children:[y!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"pp-discover-error",role:"alert",children:y}),!s&&(0,e.jsx)(K,{description:r("Dev only: runs the selected function as this user over the admin gate so you can test auth and RLS."),testId:"pp-gate",title:r("Set `runAsIdentity` to forge an identity and probe access.")}),(0,e.jsxs)("div",{className:"flex flex-col gap-3 rounded-md border border-border p-3",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,e.jsx)(w,{htmlFor:"pp-function",children:r("Function")}),(0,e.jsx)("select",{"aria-label":r("Function"),className:"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","data-testid":"pp-function",id:"pp-function",onChange:pe,value:L,children:h.map(m=>(0,e.jsxs)("option",{value:m.path,children:[m.path," (",m.kind,")"]},m.path))})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,e.jsx)(w,{htmlFor:"pp-args",children:r("Arguments")}),(0,e.jsx)(ie,{"aria-label":r("Arguments"),className:"font-mono text-xs","data-testid":"pp-args",id:"pp-args",onChange:fe,value:b})]}),(0,e.jsx)(ee,{onChange:x,testId:"pp-shard",value:T}),(0,e.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,e.jsx)(w,{htmlFor:"pp-user",children:r("Run as (userId)")}),(0,e.jsx)(_,{"aria-label":r("Identity (userId) to run as"),className:"font-mono text-xs","data-testid":"pp-user",id:"pp-user",onChange:ue,placeholder:r("Leave empty to run as admin"),value:f})]}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(k,{"data-testid":"pp-run",disabled:!s||I||L==="",onClick:me,type:"button",children:r(I?"Probing\u2026":"Run probe")}),f.trim()!==""&&(0,e.jsx)(F,{"data-testid":"pp-as-badge",variant:"secondary",children:r("as {userId}",{userId:f.trim()})})]})]}),C!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"pp-args-error",role:"alert",children:C}),g!==null&&g.kind==="allowed"&&(0,e.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"pp-outcome-allowed",children:[(0,e.jsx)(F,{variant:"secondary",children:r("Allowed")}),(0,e.jsx)("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs","data-testid":"pp-result",children:Pe(g.value)})]}),g!==null&&g.kind==="denied"&&(0,e.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"pp-outcome-denied",children:[(0,e.jsx)(F,{variant:"destructive",children:r("Denied")}),(0,e.jsx)("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs text-destructive","data-testid":"pp-denied",role:"alert",children:g.message})]})]})},"Pe"),Ie="/__lunora/policy-scaffold",Ae={"already-wired":"That procedure already has an rls(...) policy wired in.","file-exists":"A policy file with that name already exists \u2014 pick another name or edit it by hand.","invalid-identifier":"Name, table, and policy-set must be plain identifiers (letters, digits, _ or $).","unknown-procedure":"No exported procedure was found at that file path.","unsupported-procedure-shape":"That procedure uses the bare query({\u2026}) form \u2014 convert it to the builder form (c.use(\u2026).query(\u2026)) before wiring RLS."},Fe=n(async a=>{let t=await fetch(Ie,{body:JSON.stringify(a),headers:{"Content-Type":"application/json"},method:"POST"}),s=await t.json();if(s.needsManualEdit===!0)return{kind:"needs-manual-edit",message:s.message??"This change must be made by hand."};if(t.ok)return{diagnostics:s.diagnostics??[],kind:"ok",label:s.fileName??s.exportName??""};let i=s.error;return{kind:"error",message:i===void 0?`policy scaffold failed (${String(t.status)})`:Ae[i]??i}},"Ie"),ne={exportName:"",filePath:"",policyName:"",policies:"",tableName:""},_e=n(()=>{let a=z(),[t,s]=(0,c.useState)(null),[i,r]=(0,c.useState)(!1),[l,d]=(0,c.useState)(null),[o,y]=(0,c.useState)(ne),u=n(x=>{let f=x.target.name,{value:S}=x.target;y(I=>({...I,[f]:S}))},"f"),h=n(()=>{s(null),y(ne)},"h"),v=n(async x=>{r(!0),d(null);try{let f=await Fe(x);d(f),f.kind==="ok"&&h()}catch(f){d({kind:"error",message:f instanceof Error?f.message:String(f)})}finally{r(!1)}},"v"),N=n(()=>{j(v({kind:"scaffoldPolicy",name:o.policyName.trim(),table:o.tableName.trim()}))},"N"),b=n(()=>{j(v({exportName:o.exportName.trim(),filePath:o.filePath.trim(),kind:"wireRls",policies:o.policies.trim()}))},"b"),E=n(()=>{d(null),s("scaffold")},"_"),T=n(()=>{d(null),s("wire")},"A");return(0,e.jsxs)(U,{"data-testid":"policy-scaffolder",size:"sm",children:[(0,e.jsxs)(G,{children:[(0,e.jsx)(H,{children:a("Scaffold access rules")}),(0,e.jsx)(Q,{children:a("Writes a new deny-by-default policy file under lunora/, or wires one into a procedure, then reruns codegen. Local dev only.")})]}),(0,e.jsxs)(W,{children:[(0,e.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,e.jsx)(k,{"data-testid":"policy-scaffolder-new",onClick:E,size:"xs",type:"button",variant:t==="scaffold"?"default":"outline",children:a("New policy file")}),(0,e.jsx)(k,{"data-testid":"policy-scaffolder-wire",onClick:T,size:"xs",type:"button",variant:t==="wire"?"default":"outline",children:a("Wire into a procedure")})]}),t==="scaffold"&&(0,e.jsxs)("div",{className:"mt-3 flex flex-wrap items-end gap-2","data-testid":"policy-scaffolder-new-form",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-1 text-xs",children:[(0,e.jsx)(w,{htmlFor:"policy-scaffolder-name",children:a("Policy name")}),(0,e.jsx)(_,{"data-testid":"policy-scaffolder-name",id:"policy-scaffolder-name",name:"policyName",onChange:u,value:o.policyName})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-1 text-xs",children:[(0,e.jsx)(w,{htmlFor:"policy-scaffolder-table",children:a("Table name")}),(0,e.jsx)(_,{"data-testid":"policy-scaffolder-table",id:"policy-scaffolder-table",name:"tableName",onChange:u,value:o.tableName})]}),(0,e.jsx)(k,{"data-testid":"policy-scaffolder-create",disabled:i||o.policyName.trim()===""||o.tableName.trim()==="",onClick:N,size:"xs",type:"button",children:a(i?"Creating\u2026":"Create policy file")}),(0,e.jsx)(k,{onClick:h,size:"xs",type:"button",variant:"ghost",children:a("Cancel")})]}),t==="wire"&&(0,e.jsxs)("div",{className:"mt-3 flex flex-wrap items-end gap-2","data-testid":"policy-scaffolder-wire-form",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-1 text-xs",children:[(0,e.jsx)(w,{htmlFor:"policy-scaffolder-file",children:a("Procedure file path")}),(0,e.jsx)(_,{"data-testid":"policy-scaffolder-file",id:"policy-scaffolder-file",name:"filePath",onChange:u,value:o.filePath})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-1 text-xs",children:[(0,e.jsx)(w,{htmlFor:"policy-scaffolder-export",children:a("Exported procedure")}),(0,e.jsx)(_,{"data-testid":"policy-scaffolder-export",id:"policy-scaffolder-export",name:"exportName",onChange:u,value:o.exportName})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-1 text-xs",children:[(0,e.jsx)(w,{htmlFor:"policy-scaffolder-policies",children:a("Policy set identifier")}),(0,e.jsx)(_,{"data-testid":"policy-scaffolder-policies",id:"policy-scaffolder-policies",name:"policies",onChange:u,value:o.policies})]}),(0,e.jsx)(k,{"data-testid":"policy-scaffolder-apply",disabled:i||o.filePath.trim()===""||o.exportName.trim()===""||o.policies.trim()==="",onClick:b,size:"xs",type:"button",children:a(i?"Wiring\u2026":"Wire RLS")}),(0,e.jsx)(k,{onClick:h,size:"xs",type:"button",variant:"ghost",children:a("Cancel")})]}),l?.kind==="error"&&(0,e.jsx)("p",{className:"mt-3 text-sm text-destructive","data-testid":"policy-scaffolder-error",role:"alert",children:l.message}),l?.kind==="needs-manual-edit"&&(0,e.jsx)("p",{className:"mt-3 text-sm text-amber-600 dark:text-amber-500","data-testid":"policy-scaffolder-manual",role:"alert",children:a("This change must be made by hand \u2014 the scaffolder only adds new, deny-by-default rules.")}),l?.kind==="ok"&&(0,e.jsxs)("div",{className:"mt-3 flex flex-col gap-1","data-testid":"policy-scaffolder-ok",children:[(0,e.jsx)("p",{className:"text-sm text-emerald-600 dark:text-emerald-500",children:a("Scaffolded {label} and reran codegen. Fill in the `when` predicates before relying on it.",{label:l.label})}),l.diagnostics.length>0&&(0,e.jsx)("ul",{className:"flex flex-col gap-0.5","data-testid":"policy-scaffolder-diagnostics",children:l.diagnostics.map(x=>(0,e.jsx)("li",{className:"font-mono text-[11px] text-destructive",children:x},x))})]})]})]})},"$e"),Be=n(({functions:a,runAsIdentity:t=!1,schemaEditable:s=!1}={})=>{let i=z(),[r,l]=(0,c.useState)(void 0),d=n((o,y,u)=>{u!==""&&l(h=>({functionPath:u,nonce:(h?.nonce??0)+1}))},"d");return(0,e.jsxs)("div",{className:"flex flex-col gap-8","data-testid":"lunora-permissions",children:[(0,e.jsxs)("section",{className:"flex flex-col gap-3",children:[(0,e.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:i("Permissions")})}),(0,e.jsx)(Ne,{onProbe:d})]}),(0,e.jsx)("section",{className:"flex flex-col gap-3",children:(0,e.jsxs)(U,{className:"gap-0 py-0",children:[(0,e.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:i("Probe")})}),(0,e.jsxs)(W,{className:"px-4 py-4",children:[(0,e.jsx)("p",{className:"mb-3 text-sm text-muted-foreground",children:i("Pick a function and an identity, then run it to see the access outcome.")}),(0,e.jsx)(Se,{functions:a,prefill:r,runAsIdentity:t})]})]})}),s&&(0,e.jsx)("section",{className:"flex flex-col gap-2",children:(0,e.jsx)(_e,{})})]})},"Ye");export{Be as PermissionsPanel};
|
|
1
|
+
import{a as se}from"./chunk-X2FQ6B5V.js";import{a as te}from"./chunk-HK4OVYG3.js";import"./chunk-XXQUMVWH.js";import{b as O}from"./chunk-BMQJ4CAO.js";import{a as ae,b as re,c as le,d as Y,e as M,f as q}from"./chunk-MIQTKZAR.js";import{a as U,b as G,c as H,d as Q,e as W}from"./chunk-UZERI5YC.js";import{a as ie}from"./chunk-V53KNYRN.js";import{a as w}from"./chunk-5Y3QLNWX.js";import{a as ee}from"./chunk-LFXFP4IF.js";import"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as _}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as k}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as F}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as R}from"./chunk-AADXUXZO.js";import{f as J}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as K}from"./chunk-XQCVZAGU.js";import{d as z,f as V,g as X,h as Z,m as j}from"./chunk-4CGALXS3.js";import"./chunk-AADILRJW.js";import{a as n,e as D,f as he,g as xe,h as ye}from"./chunk-3XIESWL4.js";var c=D(he(),1);var de=D(xe(),1);var e=D(ye(),1);var oe=["read","insert","update","delete"],ge=n((a,t)=>({delete:a("Delete"),insert:a("Insert"),read:a("Read"),update:a("Update")})[t],"xe"),be=n(a=>{let t=new Set;for(let s of a?.advisories??[])if(s.name==="rls_uncovered_table"){let{table:i}=s.metadata;typeof i=="string"&&i!==""&&t.add(i)}return t},"ye"),ve=n((a,t,s)=>{let i=new Map,r=n(l=>{let d=i.get(l);if(d!==void 0)return d;let o={cells:{delete:{},insert:{},read:{},update:{}},maskedColumns:[],table:l,uncovered:s.has(l)};return i.set(l,o),o},"r");for(let l of a)r(l.table).cells[l.on]={procedure:l.procedure};for(let l of t){let d=r(l.table);d.maskedColumns.includes(l.column)||d.maskedColumns.push(l.column)}for(let l of s)r(l);return[...i.values()].toSorted((l,d)=>l.table.localeCompare(d.table))},"ge"),Ne=n(a=>{let t=(0,de.c)(17),s;t[0]!==a?(s=a===void 0?{}:a,t[0]=a,t[1]=s):s=t[1];let{onProbe:i}=s,r=z(),l,d;t[2]===Symbol.for("react.memo_cache_sentinel")?(l={},d={live:!0},t[2]=l,t[3]=d):(l=t[2],d=t[3]);let o=O(R.rlsPolicies,l,d),y;t[4]===Symbol.for("react.memo_cache_sentinel")?(y={},t[4]=y):y=t[4];let u=O(R.maskPolicies,y),h;t[5]===Symbol.for("react.memo_cache_sentinel")?(h={},t[5]=h):h=t[5];let v=O(R.getAdvisories,h),N;if(t[6]!==v.data||t[7]!==u.data||t[8]!==i||t[9]!==o||t[10]!==r){let b=null;o.data!==void 0&&(b=Array.isArray(o.data.policies)?o.data.policies:[]);let E=Array.isArray(u.data?.columns)?u.data.columns:[],T=v.data??null,{error:x,errorSource:f,liveError:S}=o,I=b===null?[]:ve(b,E,be(T)),A;t[12]!==S?(A=(0,e.jsx)("div",{className:"flex items-center justify-end",children:(0,e.jsx)(se,{message:S,prefix:"pm"})}),t[12]=S,t[13]=A):A=t[13];let g;t[14]!==x||t[15]!==f?(g=x!==null&&(0,e.jsx)(te,{error:f,testId:"pm-error"}),t[14]=x,t[15]=f,t[16]=g):g=t[16],N=(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-permissions-matrix",children:[A,g,b!==null&&I.length===0?(0,e.jsx)(K,{description:r("Add a `definePolicy` and wire it through `.use(rls(...))` to populate this matrix."),testId:"pm-empty",title:r("No policy")}):(0,e.jsxs)(ae,{"data-testid":"pm-table",children:[(0,e.jsx)(re,{children:(0,e.jsxs)(Y,{children:[(0,e.jsx)(M,{children:r("Table")}),oe.map(p=>(0,e.jsx)(M,{children:ge(r,p)},p)),(0,e.jsx)(M,{children:r("Masked columns")})]})}),(0,e.jsx)(le,{children:I.map(p=>(0,e.jsxs)(Y,{"data-testid":`pm-row-${p.table}`,children:[(0,e.jsx)(q,{className:"font-mono text-xs",children:(0,e.jsxs)("span",{className:"flex items-center gap-1.5",children:[p.table,p.uncovered&&(0,e.jsx)(F,{"data-testid":`pm-uncovered-${p.table}`,title:r("Uncovered \u2014 reachable without a policy"),variant:"destructive",children:r("Uncovered \u2014 reachable without a policy")})]})}),oe.map(C=>{let $=p.cells[C];return(0,e.jsx)(q,{"data-testid":`pm-cell-${p.table}-${C}`,children:$.procedure===void 0?(0,e.jsx)("span",{className:"text-xs text-muted-foreground",children:r("No policy")}):(0,e.jsxs)("span",{className:"flex flex-col gap-1",children:[(0,e.jsx)(F,{variant:"secondary",children:r("Covered by {procedure}",{procedure:$.procedure})}),i!==void 0&&(0,e.jsx)(k,{className:"h-auto justify-start p-0 text-[11px]","data-testid":`pm-probe-${p.table}-${C}`,onClick:n(()=>{i(p.table,C,$.procedure??"")},"onClick"),size:"xs",type:"button",variant:"ghost",children:r("Probe this")})]})},C)}),(0,e.jsx)(q,{children:p.maskedColumns.length===0?(0,e.jsx)("span",{"aria-hidden":"true",className:"text-muted-foreground",children:"\u2014"}):(0,e.jsx)("span",{className:"flex flex-wrap gap-1",children:p.maskedColumns.map(ke)})})]},p.table))})]})]}),t[6]=v.data,t[7]=u.data,t[8]=i,t[9]=o,t[10]=r,t[11]=N}else N=t[11];return N},"be");function ke(a){return(0,e.jsx)(F,{variant:"outline",children:a},a)}n(ke,"ve");var we=V(R.runAs),Ce=n(()=>{let a=J();return async({args:t,functionPath:s,shardKey:i="",userId:r})=>{let l=we;try{return{kind:"allowed",value:await a.query(l,{args:t,functionPath:s,userId:r},X(i))}}catch(d){return{kind:"denied",message:d instanceof Error?d.message:String(d)}}}},"we"),Pe=n(a=>a===void 0?"undefined":JSON.stringify(a,null,2),"ke"),Se=n(({functions:a,prefill:t,runAsIdentity:s=!1}={})=>{let i=J(),r=z(),l=Ce(),[d,o]=(0,c.useState)(null),[y,u]=(0,c.useState)(null),h=a??d??[],[v,N]=(0,c.useState)(""),[b,E]=(0,c.useState)("{}"),[T,x]=(0,c.useState)(""),[f,S]=(0,c.useState)(""),[I,A]=(0,c.useState)(!1),[g,p]=(0,c.useState)(null),[C,$]=(0,c.useState)(null),B=(0,c.useRef)(-1);(0,c.useEffect)(()=>{if(a!==void 0)return;let m=!1;return i.listFunctions().then(P=>(m||o(P),P)).catch(P=>{m||u(Z(P))}),()=>{m=!0}},[i,a]),(0,c.useEffect)(()=>{if(t===void 0||B.current===t.nonce)return;B.current=t.nonce;let m=t.functionPath;queueMicrotask(()=>{N(m),p(null)})},[t]);let L=v===""?h[0]?.path??"":v,ce=n(async()=>{if(L==="")return;let m;try{m=b.trim()===""?{}:JSON.parse(b)}catch(P){$(r("Invalid JSON args: {message}",{message:P.message})),p(null);return}$(null),A(!0);try{let P=await l({args:m,functionPath:L,shardKey:T.trim(),userId:f.trim()});p(P)}finally{A(!1)}},"Q"),me=n(()=>{j(ce())},"V"),pe=n(m=>{N(m.target.value)},"X"),fe=n(m=>{E(m.target.value)},"Z"),ue=n(m=>{S(m.target.value)},"ee");return(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-permissions-playground",children:[y!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"pp-discover-error",role:"alert",children:y}),!s&&(0,e.jsx)(K,{description:r("Dev only: runs the selected function as this user over the admin gate so you can test auth and RLS."),testId:"pp-gate",title:r("Set `runAsIdentity` to forge an identity and probe access.")}),(0,e.jsxs)("div",{className:"flex flex-col gap-3 rounded-md border border-border p-3",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,e.jsx)(w,{htmlFor:"pp-function",children:r("Function")}),(0,e.jsx)("select",{"aria-label":r("Function"),className:"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","data-testid":"pp-function",id:"pp-function",onChange:pe,value:L,children:h.map(m=>(0,e.jsxs)("option",{value:m.path,children:[m.path," (",m.kind,")"]},m.path))})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,e.jsx)(w,{htmlFor:"pp-args",children:r("Arguments")}),(0,e.jsx)(ie,{"aria-label":r("Arguments"),className:"font-mono text-xs","data-testid":"pp-args",id:"pp-args",onChange:fe,value:b})]}),(0,e.jsx)(ee,{onChange:x,testId:"pp-shard",value:T}),(0,e.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,e.jsx)(w,{htmlFor:"pp-user",children:r("Run as (userId)")}),(0,e.jsx)(_,{"aria-label":r("Identity (userId) to run as"),className:"font-mono text-xs","data-testid":"pp-user",id:"pp-user",onChange:ue,placeholder:r("Leave empty to run as admin"),value:f})]}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(k,{"data-testid":"pp-run",disabled:!s||I||L==="",onClick:me,type:"button",children:r(I?"Probing\u2026":"Run probe")}),f.trim()!==""&&(0,e.jsx)(F,{"data-testid":"pp-as-badge",variant:"secondary",children:r("as {userId}",{userId:f.trim()})})]})]}),C!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"pp-args-error",role:"alert",children:C}),g!==null&&g.kind==="allowed"&&(0,e.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"pp-outcome-allowed",children:[(0,e.jsx)(F,{variant:"secondary",children:r("Allowed")}),(0,e.jsx)("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs","data-testid":"pp-result",children:Pe(g.value)})]}),g!==null&&g.kind==="denied"&&(0,e.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"pp-outcome-denied",children:[(0,e.jsx)(F,{variant:"destructive",children:r("Denied")}),(0,e.jsx)("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs text-destructive","data-testid":"pp-denied",role:"alert",children:g.message})]})]})},"Pe"),Ie="/__lunora/policy-scaffold",Ae={"already-wired":"That procedure already has an rls(...) policy wired in.","file-exists":"A policy file with that name already exists \u2014 pick another name or edit it by hand.","invalid-identifier":"Name, table, and policy-set must be plain identifiers (letters, digits, _ or $).","unknown-procedure":"No exported procedure was found at that file path.","unsupported-procedure-shape":"That procedure uses the bare query({\u2026}) form \u2014 convert it to the builder form (c.use(\u2026).query(\u2026)) before wiring RLS."},Fe=n(async a=>{let t=await fetch(Ie,{body:JSON.stringify(a),headers:{"Content-Type":"application/json"},method:"POST"}),s=await t.json();if(s.needsManualEdit===!0)return{kind:"needs-manual-edit",message:s.message??"This change must be made by hand."};if(t.ok)return{diagnostics:s.diagnostics??[],kind:"ok",label:s.fileName??s.exportName??""};let i=s.error;return{kind:"error",message:i===void 0?`policy scaffold failed (${String(t.status)})`:Ae[i]??i}},"Ie"),ne={exportName:"",filePath:"",policyName:"",policies:"",tableName:""},_e=n(()=>{let a=z(),[t,s]=(0,c.useState)(null),[i,r]=(0,c.useState)(!1),[l,d]=(0,c.useState)(null),[o,y]=(0,c.useState)(ne),u=n(x=>{let f=x.target.name,{value:S}=x.target;y(I=>({...I,[f]:S}))},"f"),h=n(()=>{s(null),y(ne)},"h"),v=n(async x=>{r(!0),d(null);try{let f=await Fe(x);d(f),f.kind==="ok"&&h()}catch(f){d({kind:"error",message:f instanceof Error?f.message:String(f)})}finally{r(!1)}},"v"),N=n(()=>{j(v({kind:"scaffoldPolicy",name:o.policyName.trim(),table:o.tableName.trim()}))},"N"),b=n(()=>{j(v({exportName:o.exportName.trim(),filePath:o.filePath.trim(),kind:"wireRls",policies:o.policies.trim()}))},"b"),E=n(()=>{d(null),s("scaffold")},"_"),T=n(()=>{d(null),s("wire")},"A");return(0,e.jsxs)(U,{"data-testid":"policy-scaffolder",size:"sm",children:[(0,e.jsxs)(G,{children:[(0,e.jsx)(H,{children:a("Scaffold access rules")}),(0,e.jsx)(Q,{children:a("Writes a new deny-by-default policy file under lunora/, or wires one into a procedure, then reruns codegen. Local dev only.")})]}),(0,e.jsxs)(W,{children:[(0,e.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,e.jsx)(k,{"data-testid":"policy-scaffolder-new",onClick:E,size:"xs",type:"button",variant:t==="scaffold"?"default":"outline",children:a("New policy file")}),(0,e.jsx)(k,{"data-testid":"policy-scaffolder-wire",onClick:T,size:"xs",type:"button",variant:t==="wire"?"default":"outline",children:a("Wire into a procedure")})]}),t==="scaffold"&&(0,e.jsxs)("div",{className:"mt-3 flex flex-wrap items-end gap-2","data-testid":"policy-scaffolder-new-form",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-1 text-xs",children:[(0,e.jsx)(w,{htmlFor:"policy-scaffolder-name",children:a("Policy name")}),(0,e.jsx)(_,{"data-testid":"policy-scaffolder-name",id:"policy-scaffolder-name",name:"policyName",onChange:u,value:o.policyName})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-1 text-xs",children:[(0,e.jsx)(w,{htmlFor:"policy-scaffolder-table",children:a("Table name")}),(0,e.jsx)(_,{"data-testid":"policy-scaffolder-table",id:"policy-scaffolder-table",name:"tableName",onChange:u,value:o.tableName})]}),(0,e.jsx)(k,{"data-testid":"policy-scaffolder-create",disabled:i||o.policyName.trim()===""||o.tableName.trim()==="",onClick:N,size:"xs",type:"button",children:a(i?"Creating\u2026":"Create policy file")}),(0,e.jsx)(k,{onClick:h,size:"xs",type:"button",variant:"ghost",children:a("Cancel")})]}),t==="wire"&&(0,e.jsxs)("div",{className:"mt-3 flex flex-wrap items-end gap-2","data-testid":"policy-scaffolder-wire-form",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-1 text-xs",children:[(0,e.jsx)(w,{htmlFor:"policy-scaffolder-file",children:a("Procedure file path")}),(0,e.jsx)(_,{"data-testid":"policy-scaffolder-file",id:"policy-scaffolder-file",name:"filePath",onChange:u,value:o.filePath})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-1 text-xs",children:[(0,e.jsx)(w,{htmlFor:"policy-scaffolder-export",children:a("Exported procedure")}),(0,e.jsx)(_,{"data-testid":"policy-scaffolder-export",id:"policy-scaffolder-export",name:"exportName",onChange:u,value:o.exportName})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-1 text-xs",children:[(0,e.jsx)(w,{htmlFor:"policy-scaffolder-policies",children:a("Policy set identifier")}),(0,e.jsx)(_,{"data-testid":"policy-scaffolder-policies",id:"policy-scaffolder-policies",name:"policies",onChange:u,value:o.policies})]}),(0,e.jsx)(k,{"data-testid":"policy-scaffolder-apply",disabled:i||o.filePath.trim()===""||o.exportName.trim()===""||o.policies.trim()==="",onClick:b,size:"xs",type:"button",children:a(i?"Wiring\u2026":"Wire RLS")}),(0,e.jsx)(k,{onClick:h,size:"xs",type:"button",variant:"ghost",children:a("Cancel")})]}),l?.kind==="error"&&(0,e.jsx)("p",{className:"mt-3 text-sm text-destructive","data-testid":"policy-scaffolder-error",role:"alert",children:l.message}),l?.kind==="needs-manual-edit"&&(0,e.jsx)("p",{className:"mt-3 text-sm text-amber-600 dark:text-amber-500","data-testid":"policy-scaffolder-manual",role:"alert",children:a("This change must be made by hand \u2014 the scaffolder only adds new, deny-by-default rules.")}),l?.kind==="ok"&&(0,e.jsxs)("div",{className:"mt-3 flex flex-col gap-1","data-testid":"policy-scaffolder-ok",children:[(0,e.jsx)("p",{className:"text-sm text-emerald-600 dark:text-emerald-500",children:a("Scaffolded {label} and reran codegen. Fill in the `when` predicates before relying on it.",{label:l.label})}),l.diagnostics.length>0&&(0,e.jsx)("ul",{className:"flex flex-col gap-0.5","data-testid":"policy-scaffolder-diagnostics",children:l.diagnostics.map(x=>(0,e.jsx)("li",{className:"font-mono text-[11px] text-destructive",children:x},x))})]})]})]})},"$e"),Be=n(({functions:a,runAsIdentity:t=!1,schemaEditable:s=!1}={})=>{let i=z(),[r,l]=(0,c.useState)(void 0),d=n((o,y,u)=>{u!==""&&l(h=>({functionPath:u,nonce:(h?.nonce??0)+1}))},"d");return(0,e.jsxs)("div",{className:"flex flex-col gap-8","data-testid":"lunora-permissions",children:[(0,e.jsxs)("section",{className:"flex flex-col gap-3",children:[(0,e.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:i("Permissions")})}),(0,e.jsx)(Ne,{onProbe:d})]}),(0,e.jsx)("section",{className:"flex flex-col gap-3",children:(0,e.jsxs)(U,{className:"gap-0 py-0",children:[(0,e.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:i("Probe")})}),(0,e.jsxs)(W,{className:"px-4 py-4",children:[(0,e.jsx)("p",{className:"mb-3 text-sm text-muted-foreground",children:i("Pick a function and an identity, then run it to see the access outcome.")}),(0,e.jsx)(Se,{functions:a,prefill:r,runAsIdentity:t})]})]})}),s&&(0,e.jsx)("section",{className:"flex flex-col gap-2",children:(0,e.jsx)(_e,{})})]})},"Ye");export{Be as PermissionsPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as U}from"./chunk-54MMVNPT.js";import{a as Q}from"./chunk-7LQWFOEU.js";import{a as E}from"./chunk-XSD4Y6SQ.js";import{a as K,b as V,c as z,d as F,e as v,f as b}from"./chunk-MIQTKZAR.js";import{a as D,e as P}from"./chunk-UZERI5YC.js";import{c as te}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as ee}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{f as T}from"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{a as _}from"./chunk-XQCVZAGU.js";import{d as B,h as O,m as W,q as Z}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as m,e as R,f as oe,g as ae,h as le}from"./chunk-3XIESWL4.js";var Y=R(ae(),1),G=R(oe(),1);var t=R(le(),1);var ne=R(ae(),1);var X=R(oe(),1);var c=R(le(),1);var ie=m(a=>Number.isFinite(a)?Z(a,"\u2014"):"\u2014","Y"),se=m(a=>a.toSorted((e,h)=>e.scheduledFor-h.scheduledFor),"T"),de=m(a=>{let e=(0,ne.c)(33),h;e[0]!==a?(h=a===void 0?{}:a,e[0]=a,e[1]=h):h=e[1];let{cancelJob:i,loadJobs:p}=h,l=T(),o=B(),r=p===void 0,y;e[2]===Symbol.for("react.memo_cache_sentinel")?(y=["lunora-scheduled-jobs"],e[2]=y):y=e[2];let f;e[3]!==l||e[4]!==p?(f=m(async()=>{let d=await(p??(()=>l.listScheduledJobs()))();return se(d)},"j"),e[3]=l,e[4]=p,e[5]=f):f=e[5];let n=E(y,f),[s,u]=(0,X.useState)(void 0),[J,j]=(0,X.useState)(void 0),x,C;e[6]!==l||e[7]!==r?(x=m(()=>{if(r)return l.subscribeScheduledJobs(d=>{j(void 0),u(se(d))})},"N"),C=[r,l],e[6]=l,e[7]=r,e[8]=x,e[9]=C):(x=e[8],C=e[9]),(0,X.useEffect)(x,C);let g;e[10]!==n?(g=m(()=>{n.refetch()},"$"),e[10]=n,e[11]=g):g=e[11],U(g,!r);let S;e:{if(i!==void 0){S=i;break e}let d;e[12]!==l||e[13]!==p?(d=p===void 0?H=>l.cancelScheduledJob(H):void 0,e[12]=l,e[13]=p,e[14]=d):d=e[14],S=d}let k=S,w=s??n.data,$=J??n.error,q;e[15]!==k||e[16]!==n||e[17]!==r?(q=m(async d=>{if(k!==void 0){j(void 0);try{await k(d),r||n.refetch()}catch(H){j(O(H))}}},"S"),e[15]=k,e[16]=n,e[17]=r,e[18]=q):q=e[18];let I=q,L;e[19]!==$?(L=$!==null&&(0,c.jsx)("p",{className:"text-sm text-destructive","data-testid":"sj-error",role:"alert",children:$}),e[19]=$,e[20]=L):L=e[20];let N;e[21]!==w?.length||e[22]!==o?(N=w?.length===0&&(0,c.jsx)(_,{description:o("Jobs queued with runAfter / runAt will appear here."),icon:(0,c.jsxs)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:[(0,c.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,c.jsx)("path",{d:"M12 7.5V12l4 2"})]}),testId:"sj-empty",title:o("No scheduled jobs.")}),e[21]=w?.length,e[22]=o,e[23]=N):N=e[23];let M;e[24]!==I||e[25]!==k||e[26]!==w||e[27]!==o?(M=w!==void 0&&w.length>0&&(0,c.jsx)(D,{className:"overflow-hidden py-0",children:(0,c.jsx)(P,{className:"px-0",children:(0,c.jsxs)(K,{"data-testid":"sj-table",children:[(0,c.jsx)(V,{children:(0,c.jsxs)(F,{children:[(0,c.jsx)(v,{children:o("function")}),(0,c.jsx)(v,{children:o("scheduled for")}),(0,c.jsx)(v,{children:o("pool")}),(0,c.jsx)(v,{children:o("attempts")}),(0,c.jsx)(v,{children:o("shard")}),(0,c.jsx)(v,{children:o("id")}),k!==void 0&&(0,c.jsx)(v,{"aria-label":o("Actions")})]})}),(0,c.jsx)(z,{children:w.map(d=>(0,c.jsxs)(F,{"data-testid":`sj-row-${d.id}`,children:[(0,c.jsx)(b,{className:"font-mono text-xs",children:d.functionPath}),(0,c.jsx)(b,{className:"text-muted-foreground tabular-nums",children:ie(d.scheduledFor)}),(0,c.jsx)(b,{className:"font-mono text-xs",children:d.pool??""}),(0,c.jsx)(b,{className:"tabular-nums",children:d.attempts??0}),(0,c.jsx)(b,{children:d.shardKey??""}),(0,c.jsx)(b,{className:"font-mono text-xs",children:d.id}),k!==void 0&&(0,c.jsx)(b,{className:"text-right",children:(0,c.jsx)(Q,{confirmLabel:o("Cancel job?"),onConfirm:m(()=>{W(I(d.id))},"onConfirm"),testId:`sj-cancel-${d.id}`,children:o("Cancel")})})]},d.id))})]})})}),e[24]=I,e[25]=k,e[26]=w,e[27]=o,e[28]=M):M=e[28];let A;return e[29]!==N||e[30]!==M||e[31]!==L?(A=(0,c.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-scheduled-jobs",children:[L,N,M]}),e[29]=N,e[30]=M,e[31]=L,e[32]=A):A=e[32],A},"he");var ce={kind:"idle"},he=m(({loadCronJobs:a,runCronJob:e}={})=>{let h=T(),i=B(),[p,l]=(0,G.useState)({}),o=E(["lunora-cron-jobs",a?"custom":"default"],()=>(a??(()=>h.getCronJobs()))()),{data:r,error:y}=o,f=(0,G.useMemo)(()=>e!==void 0?e:a===void 0?s=>h.runCronJob(s):void 0,[h,a,e]),n=m(async s=>{if(f!==void 0){l(u=>({...u,[s]:{kind:"running"}}));try{await f(s),l(u=>({...u,[s]:{kind:"ok"}})),o.refetch()}catch(u){l(J=>({...J,[s]:{kind:"error",message:O(u)}}))}}},"d");return(0,t.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-cron-triggers",children:[y!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"cron-error",role:"alert",children:y}),r?.length===0&&(0,t.jsx)(_,{description:i("Triggers declared with the cronJobs() builder appear here."),icon:(0,t.jsxs)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,t.jsx)("path",{d:"M12 7.5V12l4 2"})]}),testId:"cron-empty",title:i("No cron triggers.")}),r!==void 0&&r.length>0&&(0,t.jsx)(D,{className:"overflow-hidden py-0",children:(0,t.jsx)(P,{className:"px-0",children:(0,t.jsxs)(K,{"data-testid":"cron-table",children:[(0,t.jsx)(V,{children:(0,t.jsxs)(F,{children:[(0,t.jsx)(v,{children:i("name")}),(0,t.jsx)(v,{children:i("schedule")}),(0,t.jsx)(v,{children:i("target")}),(0,t.jsx)(v,{children:i("shard")}),f!==void 0&&(0,t.jsx)(v,{"aria-label":i("Actions")})]})}),(0,t.jsx)(z,{children:r.map(s=>{let u=p[s.name]??ce;return(0,t.jsxs)(F,{"data-testid":`cron-row-${s.name}`,children:[(0,t.jsx)(b,{children:s.name}),(0,t.jsx)(b,{className:"font-mono text-xs tabular-nums",children:s.cron}),(0,t.jsx)(b,{children:(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[s.workflow===void 0?(0,t.jsx)(ee,{variant:"outline",children:i("function")}):(0,t.jsx)(ee,{variant:"secondary",children:i("workflow")}),(0,t.jsx)("span",{className:"font-mono text-xs",children:s.workflow??s.functionPath})]})}),(0,t.jsx)(b,{children:s.shardKey??""}),f!==void 0&&(0,t.jsx)(b,{className:"text-right",children:(0,t.jsxs)("span",{className:"flex items-center justify-end gap-2",children:[u.kind==="ok"&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":`cron-ran-${s.name}`,children:i("ran")}),u.kind==="error"&&(0,t.jsx)("span",{className:"text-xs text-destructive","data-testid":`cron-run-error-${s.name}`,role:"alert",children:u.message}),(0,t.jsx)(Q,{confirmLabel:i("Run now?"),disabled:u.kind==="running",onConfirm:m(()=>{W(n(s.name))},"onConfirm"),testId:`cron-run-${s.name}`,children:u.kind==="running"?i("Running\u2026"):i("Run now")})]})})]},`${s.cron}:${s.name}`)})})]})})})]})},"le"),me=m(a=>Number.isFinite(a)?Z(a,"\u2014"):"\u2014","re"),ue=m(a=>{let e=(0,Y.c)(34),h;e[0]!==a?(h=a===void 0?{}:a,e[0]=a,e[1]=h):h=e[1];let{loadJobs:i,removeJob:p,retryJob:l}=h,o=T(),r=B(),y;e[2]===Symbol.for("react.memo_cache_sentinel")?(y=["lunora-dead-jobs"],e[2]=y):y=e[2];let f;e[3]!==o||e[4]!==i?(f=m(async()=>(await(i??(()=>o.listDeadJobs()))()).toSorted(fe),"h"),e[3]=o,e[4]=i,e[5]=f):f=e[5];let n=E(y,f),s=n.data,[u,J]=(0,G.useState)(void 0),j=n.error??u,x=i===void 0,C;e[6]!==o||e[7]!==x||e[8]!==l?(C=l??(x?d=>o.retryDeadJob(d):void 0),e[6]=o,e[7]=x,e[8]=l,e[9]=C):C=e[9];let g=C,S;e[10]!==o||e[11]!==x||e[12]!==p?(S=p??(x?d=>o.removeDeadJob(d):void 0),e[10]=o,e[11]=x,e[12]=p,e[13]=S):S=e[13];let k=S,w;e[14]!==n?(w=m(()=>{n.refetch()},"J"),e[14]=n,e[15]=w):w=e[15],U(w,!0);let $;e[16]!==n?($=m(async d=>{J(void 0);try{await d,n.refetch()}catch(H){J(O(H))}},"j"),e[16]=n,e[17]=$):$=e[17];let q=$,I=g!==void 0||k!==void 0,L;e[18]!==j?(L=j!==void 0&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"dlq-error",role:"alert",children:j}),e[18]=j,e[19]=L):L=e[19];let N;e[20]!==s?.length||e[21]!==r?(N=s?.length===0&&(0,t.jsx)(_,{description:r("Jobs that exhaust their retry budget are parked here instead of being dropped."),icon:(0,t.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,t.jsx)("path",{d:"M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14"})}),testId:"dlq-empty",title:r("No dead-letter jobs.")}),e[20]=s?.length,e[21]=r,e[22]=N):N=e[22];let M;e[23]!==q||e[24]!==I||e[25]!==s||e[26]!==k||e[27]!==g||e[28]!==r?(M=s!==void 0&&s.length>0&&(0,t.jsx)(D,{className:"overflow-hidden py-0",children:(0,t.jsx)(P,{className:"px-0",children:(0,t.jsxs)(K,{"data-testid":"dlq-table",children:[(0,t.jsx)(V,{children:(0,t.jsxs)(F,{children:[(0,t.jsx)(v,{children:r("function")}),(0,t.jsx)(v,{children:r("attempts")}),(0,t.jsx)(v,{children:r("last tried")}),(0,t.jsx)(v,{children:r("pool")}),(0,t.jsx)(v,{children:r("shard")}),(0,t.jsx)(v,{children:r("id")}),I&&(0,t.jsx)(v,{"aria-label":r("Actions")})]})}),(0,t.jsx)(z,{children:s.map(d=>(0,t.jsxs)(F,{"data-testid":`dlq-row-${d.id}`,children:[(0,t.jsx)(b,{className:"font-mono text-xs",children:d.functionPath}),(0,t.jsx)(b,{className:"tabular-nums",children:d.attempts??0}),(0,t.jsx)(b,{className:"text-muted-foreground tabular-nums",children:me(d.scheduledFor)}),(0,t.jsx)(b,{className:"font-mono text-xs",children:d.pool??""}),(0,t.jsx)(b,{children:d.shardKey??""}),(0,t.jsx)(b,{className:"font-mono text-xs",children:d.id}),I&&(0,t.jsx)(b,{className:"text-right",children:(0,t.jsxs)("div",{className:"flex justify-end gap-1.5",children:[g!==void 0&&(0,t.jsx)(te,{"data-testid":`dlq-retry-${d.id}`,onClick:m(()=>{W(q(g(d.id)))},"onClick"),size:"sm",type:"button",variant:"outline",children:r("Retry")}),k!==void 0&&(0,t.jsx)(Q,{confirmLabel:r("Drop job?"),onConfirm:m(()=>{W(q(k(d.id)))},"onConfirm"),testId:`dlq-remove-${d.id}`,children:r("Drop")})]})})]},d.id))})]})})}),e[23]=q,e[24]=I,e[25]=s,e[26]=k,e[27]=g,e[28]=r,e[29]=M):M=e[29];let A;return e[30]!==M||e[31]!==L||e[32]!==N?(A=(0,t.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-dead-letter",children:[L,N,M]}),e[30]=M,e[31]=L,e[32]=N,e[33]=A):A=e[33],A},"ne");function fe(a,e){return(e.attempts??0)-(a.attempts??0)}m(fe,"ae");var re=m(a=>{let e=(0,Y.c)(8),{label:h,testId:i,value:p}=a,l;e[0]!==h?(l=(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:h}),e[0]=h,e[1]=l):l=e[1];let o;e[2]!==i||e[3]!==p?(o=(0,t.jsx)("span",{className:"text-2xl font-semibold tabular-nums","data-testid":i,children:p}),e[2]=i,e[3]=p,e[4]=o):o=e[4];let r;return e[5]!==l||e[6]!==o?(r=(0,t.jsx)(D,{className:"flex-1 py-0",children:(0,t.jsxs)(P,{className:"flex flex-col gap-1 p-4",children:[l,o]})}),e[5]=l,e[6]=o,e[7]=r):r=e[7],r},"F"),pe=m(a=>{let e=(0,Y.c)(25),h;e[0]!==a?(h=a===void 0?{}:a,e[0]=a,e[1]=h):h=e[1];let{loadStatus:i}=h,p=T(),l=B(),o=i===void 0,r;e[2]!==o?(r=["lunora-scheduler-status",o],e[2]=o,e[3]=r):r=e[3];let y;e[4]!==p||e[5]!==i?(y=m(async()=>{let S=await(i??(()=>p.schedulerStatus()))();return{...S,pools:S.pools.toSorted(ve)}},"k"),e[4]=p,e[5]=i,e[6]=y):y=e[6];let f=E(r,y),{data:n,error:s}=f,u;e[7]!==f?(u=m(()=>{f.refetch()},"s"),e[7]=f,e[8]=u):u=e[8],U(u,!0);let J;e[9]!==s?(J=s!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"pools-error",role:"alert",children:s}),e[9]=s,e[10]=J):J=e[10];let j;e[11]!==n||e[12]!==l?(j=n!==void 0&&(0,t.jsxs)("div",{className:"flex gap-3","data-testid":"pools-totals",children:[(0,t.jsx)(re,{label:l("backlog"),testId:"pools-backlog",value:n.backlog}),(0,t.jsx)(re,{label:l("in flight"),testId:"pools-inflight",value:n.inFlight}),(0,t.jsx)(re,{label:l("pools"),testId:"pools-count",value:n.pools.length})]}),e[11]=n,e[12]=l,e[13]=j):j=e[13];let x;e[14]!==n?.pools.length||e[15]!==l?(x=n?.pools.length===0&&(0,t.jsx)(_,{description:l("Pools created with createWorkpool appear here once they have activity."),icon:(0,t.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,t.jsx)("path",{d:"M4 7h16M4 12h16M4 17h16"})}),testId:"pools-empty",title:l("No workpools.")}),e[14]=n?.pools.length,e[15]=l,e[16]=x):x=e[16];let C;e[17]!==n||e[18]!==l?(C=n!==void 0&&n.pools.length>0&&(0,t.jsx)(D,{className:"overflow-hidden py-0",children:(0,t.jsx)(P,{className:"px-0",children:(0,t.jsxs)(K,{"data-testid":"pools-table",children:[(0,t.jsx)(V,{children:(0,t.jsxs)(F,{children:[(0,t.jsx)(v,{children:l("pool")}),(0,t.jsx)(v,{children:l("queued")}),(0,t.jsx)(v,{children:l("in flight")}),(0,t.jsx)(v,{children:l("max concurrency")})]})}),(0,t.jsx)(z,{children:n.pools.map(be)})]})})}),e[17]=n,e[18]=l,e[19]=C):C=e[19];let g;return e[20]!==J||e[21]!==j||e[22]!==x||e[23]!==C?(g=(0,t.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-scheduler-pools",children:[J,j,x,C]}),e[20]=J,e[21]=j,e[22]=x,e[23]=C,e[24]=g):g=e[24],g},"de");function ve(a,e){return e.queued-a.queued}m(ve,"ie");function be(a){return(0,t.jsxs)(F,{"data-testid":`pools-row-${a.name}`,children:[(0,t.jsx)(b,{className:"font-mono text-xs",children:a.name}),(0,t.jsx)(b,{className:"tabular-nums",children:a.queued}),(0,t.jsxs)(b,{className:"tabular-nums",children:[a.inFlight," / ",a.maxConcurrency]}),(0,t.jsx)(b,{className:"tabular-nums",children:a.maxConcurrency})]},a.name)}m(be,"se");var xe=["jobs","dead","pools","cron"],Ee=m(a=>{let e=(0,Y.c)(41),h;e[0]!==a?(h=a===void 0?{}:a,e[0]=a,e[1]=h):h=e[1];let{loadCronJobs:i,scheduledCancel:p,scheduledLoad:l}=h,o=B(),[r,y]=(0,G.useState)("jobs"),f;e[2]!==o?(f=o("Cron triggers"),e[2]=o,e[3]=f):f=e[3];let n;e[4]!==o?(n=o("Dead letter"),e[4]=o,e[5]=n):n=e[5];let s;e[6]!==o?(s=o("Scheduled jobs"),e[6]=o,e[7]=s):s=e[7];let u;e[8]!==o?(u=o("Pools"),e[8]=o,e[9]=u):u=e[9];let J;e[10]!==f||e[11]!==n||e[12]!==s||e[13]!==u?(J={cron:f,dead:n,jobs:s,pools:u},e[10]=f,e[11]=n,e[12]=s,e[13]=u,e[14]=J):J=e[14];let j=J,x;e[15]===Symbol.for("react.memo_cache_sentinel")?(x=m(N=>{y(N.currentTarget.dataset.view)},"u"),e[15]=x):x=e[15];let C=x,g;e[16]!==o?(g=o("Schedule view"),e[16]=o,e[17]=g):g=e[17];let S;e[18]!==r||e[19]!==j?(S=xe.map(N=>(0,t.jsx)(te,{"aria-selected":r===N,"data-testid":`schedule-view-${N}`,"data-view":N,onClick:C,role:"tab",size:"sm",type:"button",variant:r===N?"default":"outline",children:j[N]},N)),e[18]=r,e[19]=j,e[20]=S):S=e[20];let k;e[21]!==g||e[22]!==S?(k=(0,t.jsx)("div",{"aria-label":g,className:"flex gap-1.5","data-testid":"schedule-view-toggle",role:"tablist",children:S}),e[21]=g,e[22]=S,e[23]=k):k=e[23];let w;e[24]!==p||e[25]!==l||e[26]!==r?(w=r==="jobs"&&(0,t.jsx)(de,{cancelJob:p,loadJobs:l}),e[24]=p,e[25]=l,e[26]=r,e[27]=w):w=e[27];let $;e[28]!==r?($=r==="dead"&&(0,t.jsx)(ue,{}),e[28]=r,e[29]=$):$=e[29];let q;e[30]!==r?(q=r==="pools"&&(0,t.jsx)(pe,{}),e[30]=r,e[31]=q):q=e[31];let I;e[32]!==i||e[33]!==r?(I=r==="cron"&&(0,t.jsx)(he,{loadCronJobs:i}),e[32]=i,e[33]=r,e[34]=I):I=e[34];let L;return e[35]!==k||e[36]!==w||e[37]!==$||e[38]!==q||e[39]!==I?(L=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-schedule",children:[k,w,$,q,I]}),e[35]=k,e[36]=w,e[37]=$,e[38]=q,e[39]=I,e[40]=L):L=e[40],L},"Je");export{Ee as SchedulePanel};
|
|
1
|
+
import{a as U}from"./chunk-54MMVNPT.js";import{a as Q}from"./chunk-7LQWFOEU.js";import{a as E}from"./chunk-BMQJ4CAO.js";import{a as K,b as V,c as z,d as F,e as v,f as b}from"./chunk-MIQTKZAR.js";import{a as D,e as P}from"./chunk-UZERI5YC.js";import{c as te}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as ee}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{f as T}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as _}from"./chunk-XQCVZAGU.js";import{d as B,h as O,m as W,q as Z}from"./chunk-4CGALXS3.js";import"./chunk-AADILRJW.js";import{a as m,e as R,f as oe,g as ae,h as le}from"./chunk-3XIESWL4.js";var Y=R(ae(),1),G=R(oe(),1);var t=R(le(),1);var ne=R(ae(),1);var X=R(oe(),1);var c=R(le(),1);var ie=m(a=>Number.isFinite(a)?Z(a,"\u2014"):"\u2014","Y"),se=m(a=>a.toSorted((e,h)=>e.scheduledFor-h.scheduledFor),"T"),de=m(a=>{let e=(0,ne.c)(33),h;e[0]!==a?(h=a===void 0?{}:a,e[0]=a,e[1]=h):h=e[1];let{cancelJob:i,loadJobs:p}=h,l=T(),o=B(),r=p===void 0,y;e[2]===Symbol.for("react.memo_cache_sentinel")?(y=["lunora-scheduled-jobs"],e[2]=y):y=e[2];let f;e[3]!==l||e[4]!==p?(f=m(async()=>{let d=await(p??(()=>l.listScheduledJobs()))();return se(d)},"j"),e[3]=l,e[4]=p,e[5]=f):f=e[5];let n=E(y,f),[s,u]=(0,X.useState)(void 0),[J,j]=(0,X.useState)(void 0),x,C;e[6]!==l||e[7]!==r?(x=m(()=>{if(r)return l.subscribeScheduledJobs(d=>{j(void 0),u(se(d))})},"N"),C=[r,l],e[6]=l,e[7]=r,e[8]=x,e[9]=C):(x=e[8],C=e[9]),(0,X.useEffect)(x,C);let g;e[10]!==n?(g=m(()=>{n.refetch()},"$"),e[10]=n,e[11]=g):g=e[11],U(g,!r);let S;e:{if(i!==void 0){S=i;break e}let d;e[12]!==l||e[13]!==p?(d=p===void 0?H=>l.cancelScheduledJob(H):void 0,e[12]=l,e[13]=p,e[14]=d):d=e[14],S=d}let k=S,w=s??n.data,$=J??n.error,q;e[15]!==k||e[16]!==n||e[17]!==r?(q=m(async d=>{if(k!==void 0){j(void 0);try{await k(d),r||n.refetch()}catch(H){j(O(H))}}},"S"),e[15]=k,e[16]=n,e[17]=r,e[18]=q):q=e[18];let I=q,L;e[19]!==$?(L=$!==null&&(0,c.jsx)("p",{className:"text-sm text-destructive","data-testid":"sj-error",role:"alert",children:$}),e[19]=$,e[20]=L):L=e[20];let N;e[21]!==w?.length||e[22]!==o?(N=w?.length===0&&(0,c.jsx)(_,{description:o("Jobs queued with runAfter / runAt will appear here."),icon:(0,c.jsxs)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:[(0,c.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,c.jsx)("path",{d:"M12 7.5V12l4 2"})]}),testId:"sj-empty",title:o("No scheduled jobs.")}),e[21]=w?.length,e[22]=o,e[23]=N):N=e[23];let M;e[24]!==I||e[25]!==k||e[26]!==w||e[27]!==o?(M=w!==void 0&&w.length>0&&(0,c.jsx)(D,{className:"overflow-hidden py-0",children:(0,c.jsx)(P,{className:"px-0",children:(0,c.jsxs)(K,{"data-testid":"sj-table",children:[(0,c.jsx)(V,{children:(0,c.jsxs)(F,{children:[(0,c.jsx)(v,{children:o("function")}),(0,c.jsx)(v,{children:o("scheduled for")}),(0,c.jsx)(v,{children:o("pool")}),(0,c.jsx)(v,{children:o("attempts")}),(0,c.jsx)(v,{children:o("shard")}),(0,c.jsx)(v,{children:o("id")}),k!==void 0&&(0,c.jsx)(v,{"aria-label":o("Actions")})]})}),(0,c.jsx)(z,{children:w.map(d=>(0,c.jsxs)(F,{"data-testid":`sj-row-${d.id}`,children:[(0,c.jsx)(b,{className:"font-mono text-xs",children:d.functionPath}),(0,c.jsx)(b,{className:"text-muted-foreground tabular-nums",children:ie(d.scheduledFor)}),(0,c.jsx)(b,{className:"font-mono text-xs",children:d.pool??""}),(0,c.jsx)(b,{className:"tabular-nums",children:d.attempts??0}),(0,c.jsx)(b,{children:d.shardKey??""}),(0,c.jsx)(b,{className:"font-mono text-xs",children:d.id}),k!==void 0&&(0,c.jsx)(b,{className:"text-right",children:(0,c.jsx)(Q,{confirmLabel:o("Cancel job?"),onConfirm:m(()=>{W(I(d.id))},"onConfirm"),testId:`sj-cancel-${d.id}`,children:o("Cancel")})})]},d.id))})]})})}),e[24]=I,e[25]=k,e[26]=w,e[27]=o,e[28]=M):M=e[28];let A;return e[29]!==N||e[30]!==M||e[31]!==L?(A=(0,c.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-scheduled-jobs",children:[L,N,M]}),e[29]=N,e[30]=M,e[31]=L,e[32]=A):A=e[32],A},"he");var ce={kind:"idle"},he=m(({loadCronJobs:a,runCronJob:e}={})=>{let h=T(),i=B(),[p,l]=(0,G.useState)({}),o=E(["lunora-cron-jobs",a?"custom":"default"],()=>(a??(()=>h.getCronJobs()))()),{data:r,error:y}=o,f=(0,G.useMemo)(()=>e!==void 0?e:a===void 0?s=>h.runCronJob(s):void 0,[h,a,e]),n=m(async s=>{if(f!==void 0){l(u=>({...u,[s]:{kind:"running"}}));try{await f(s),l(u=>({...u,[s]:{kind:"ok"}})),o.refetch()}catch(u){l(J=>({...J,[s]:{kind:"error",message:O(u)}}))}}},"d");return(0,t.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-cron-triggers",children:[y!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"cron-error",role:"alert",children:y}),r?.length===0&&(0,t.jsx)(_,{description:i("Triggers declared with the cronJobs() builder appear here."),icon:(0,t.jsxs)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,t.jsx)("path",{d:"M12 7.5V12l4 2"})]}),testId:"cron-empty",title:i("No cron triggers.")}),r!==void 0&&r.length>0&&(0,t.jsx)(D,{className:"overflow-hidden py-0",children:(0,t.jsx)(P,{className:"px-0",children:(0,t.jsxs)(K,{"data-testid":"cron-table",children:[(0,t.jsx)(V,{children:(0,t.jsxs)(F,{children:[(0,t.jsx)(v,{children:i("name")}),(0,t.jsx)(v,{children:i("schedule")}),(0,t.jsx)(v,{children:i("target")}),(0,t.jsx)(v,{children:i("shard")}),f!==void 0&&(0,t.jsx)(v,{"aria-label":i("Actions")})]})}),(0,t.jsx)(z,{children:r.map(s=>{let u=p[s.name]??ce;return(0,t.jsxs)(F,{"data-testid":`cron-row-${s.name}`,children:[(0,t.jsx)(b,{children:s.name}),(0,t.jsx)(b,{className:"font-mono text-xs tabular-nums",children:s.cron}),(0,t.jsx)(b,{children:(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[s.workflow===void 0?(0,t.jsx)(ee,{variant:"outline",children:i("function")}):(0,t.jsx)(ee,{variant:"secondary",children:i("workflow")}),(0,t.jsx)("span",{className:"font-mono text-xs",children:s.workflow??s.functionPath})]})}),(0,t.jsx)(b,{children:s.shardKey??""}),f!==void 0&&(0,t.jsx)(b,{className:"text-right",children:(0,t.jsxs)("span",{className:"flex items-center justify-end gap-2",children:[u.kind==="ok"&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":`cron-ran-${s.name}`,children:i("ran")}),u.kind==="error"&&(0,t.jsx)("span",{className:"text-xs text-destructive","data-testid":`cron-run-error-${s.name}`,role:"alert",children:u.message}),(0,t.jsx)(Q,{confirmLabel:i("Run now?"),disabled:u.kind==="running",onConfirm:m(()=>{W(n(s.name))},"onConfirm"),testId:`cron-run-${s.name}`,children:u.kind==="running"?i("Running\u2026"):i("Run now")})]})})]},`${s.cron}:${s.name}`)})})]})})})]})},"le"),me=m(a=>Number.isFinite(a)?Z(a,"\u2014"):"\u2014","re"),ue=m(a=>{let e=(0,Y.c)(34),h;e[0]!==a?(h=a===void 0?{}:a,e[0]=a,e[1]=h):h=e[1];let{loadJobs:i,removeJob:p,retryJob:l}=h,o=T(),r=B(),y;e[2]===Symbol.for("react.memo_cache_sentinel")?(y=["lunora-dead-jobs"],e[2]=y):y=e[2];let f;e[3]!==o||e[4]!==i?(f=m(async()=>(await(i??(()=>o.listDeadJobs()))()).toSorted(fe),"h"),e[3]=o,e[4]=i,e[5]=f):f=e[5];let n=E(y,f),s=n.data,[u,J]=(0,G.useState)(void 0),j=n.error??u,x=i===void 0,C;e[6]!==o||e[7]!==x||e[8]!==l?(C=l??(x?d=>o.retryDeadJob(d):void 0),e[6]=o,e[7]=x,e[8]=l,e[9]=C):C=e[9];let g=C,S;e[10]!==o||e[11]!==x||e[12]!==p?(S=p??(x?d=>o.removeDeadJob(d):void 0),e[10]=o,e[11]=x,e[12]=p,e[13]=S):S=e[13];let k=S,w;e[14]!==n?(w=m(()=>{n.refetch()},"J"),e[14]=n,e[15]=w):w=e[15],U(w,!0);let $;e[16]!==n?($=m(async d=>{J(void 0);try{await d,n.refetch()}catch(H){J(O(H))}},"j"),e[16]=n,e[17]=$):$=e[17];let q=$,I=g!==void 0||k!==void 0,L;e[18]!==j?(L=j!==void 0&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"dlq-error",role:"alert",children:j}),e[18]=j,e[19]=L):L=e[19];let N;e[20]!==s?.length||e[21]!==r?(N=s?.length===0&&(0,t.jsx)(_,{description:r("Jobs that exhaust their retry budget are parked here instead of being dropped."),icon:(0,t.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,t.jsx)("path",{d:"M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14"})}),testId:"dlq-empty",title:r("No dead-letter jobs.")}),e[20]=s?.length,e[21]=r,e[22]=N):N=e[22];let M;e[23]!==q||e[24]!==I||e[25]!==s||e[26]!==k||e[27]!==g||e[28]!==r?(M=s!==void 0&&s.length>0&&(0,t.jsx)(D,{className:"overflow-hidden py-0",children:(0,t.jsx)(P,{className:"px-0",children:(0,t.jsxs)(K,{"data-testid":"dlq-table",children:[(0,t.jsx)(V,{children:(0,t.jsxs)(F,{children:[(0,t.jsx)(v,{children:r("function")}),(0,t.jsx)(v,{children:r("attempts")}),(0,t.jsx)(v,{children:r("last tried")}),(0,t.jsx)(v,{children:r("pool")}),(0,t.jsx)(v,{children:r("shard")}),(0,t.jsx)(v,{children:r("id")}),I&&(0,t.jsx)(v,{"aria-label":r("Actions")})]})}),(0,t.jsx)(z,{children:s.map(d=>(0,t.jsxs)(F,{"data-testid":`dlq-row-${d.id}`,children:[(0,t.jsx)(b,{className:"font-mono text-xs",children:d.functionPath}),(0,t.jsx)(b,{className:"tabular-nums",children:d.attempts??0}),(0,t.jsx)(b,{className:"text-muted-foreground tabular-nums",children:me(d.scheduledFor)}),(0,t.jsx)(b,{className:"font-mono text-xs",children:d.pool??""}),(0,t.jsx)(b,{children:d.shardKey??""}),(0,t.jsx)(b,{className:"font-mono text-xs",children:d.id}),I&&(0,t.jsx)(b,{className:"text-right",children:(0,t.jsxs)("div",{className:"flex justify-end gap-1.5",children:[g!==void 0&&(0,t.jsx)(te,{"data-testid":`dlq-retry-${d.id}`,onClick:m(()=>{W(q(g(d.id)))},"onClick"),size:"sm",type:"button",variant:"outline",children:r("Retry")}),k!==void 0&&(0,t.jsx)(Q,{confirmLabel:r("Drop job?"),onConfirm:m(()=>{W(q(k(d.id)))},"onConfirm"),testId:`dlq-remove-${d.id}`,children:r("Drop")})]})})]},d.id))})]})})}),e[23]=q,e[24]=I,e[25]=s,e[26]=k,e[27]=g,e[28]=r,e[29]=M):M=e[29];let A;return e[30]!==M||e[31]!==L||e[32]!==N?(A=(0,t.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-dead-letter",children:[L,N,M]}),e[30]=M,e[31]=L,e[32]=N,e[33]=A):A=e[33],A},"ne");function fe(a,e){return(e.attempts??0)-(a.attempts??0)}m(fe,"ae");var re=m(a=>{let e=(0,Y.c)(8),{label:h,testId:i,value:p}=a,l;e[0]!==h?(l=(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:h}),e[0]=h,e[1]=l):l=e[1];let o;e[2]!==i||e[3]!==p?(o=(0,t.jsx)("span",{className:"text-2xl font-semibold tabular-nums","data-testid":i,children:p}),e[2]=i,e[3]=p,e[4]=o):o=e[4];let r;return e[5]!==l||e[6]!==o?(r=(0,t.jsx)(D,{className:"flex-1 py-0",children:(0,t.jsxs)(P,{className:"flex flex-col gap-1 p-4",children:[l,o]})}),e[5]=l,e[6]=o,e[7]=r):r=e[7],r},"F"),pe=m(a=>{let e=(0,Y.c)(25),h;e[0]!==a?(h=a===void 0?{}:a,e[0]=a,e[1]=h):h=e[1];let{loadStatus:i}=h,p=T(),l=B(),o=i===void 0,r;e[2]!==o?(r=["lunora-scheduler-status",o],e[2]=o,e[3]=r):r=e[3];let y;e[4]!==p||e[5]!==i?(y=m(async()=>{let S=await(i??(()=>p.schedulerStatus()))();return{...S,pools:S.pools.toSorted(ve)}},"k"),e[4]=p,e[5]=i,e[6]=y):y=e[6];let f=E(r,y),{data:n,error:s}=f,u;e[7]!==f?(u=m(()=>{f.refetch()},"s"),e[7]=f,e[8]=u):u=e[8],U(u,!0);let J;e[9]!==s?(J=s!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"pools-error",role:"alert",children:s}),e[9]=s,e[10]=J):J=e[10];let j;e[11]!==n||e[12]!==l?(j=n!==void 0&&(0,t.jsxs)("div",{className:"flex gap-3","data-testid":"pools-totals",children:[(0,t.jsx)(re,{label:l("backlog"),testId:"pools-backlog",value:n.backlog}),(0,t.jsx)(re,{label:l("in flight"),testId:"pools-inflight",value:n.inFlight}),(0,t.jsx)(re,{label:l("pools"),testId:"pools-count",value:n.pools.length})]}),e[11]=n,e[12]=l,e[13]=j):j=e[13];let x;e[14]!==n?.pools.length||e[15]!==l?(x=n?.pools.length===0&&(0,t.jsx)(_,{description:l("Pools created with createWorkpool appear here once they have activity."),icon:(0,t.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,t.jsx)("path",{d:"M4 7h16M4 12h16M4 17h16"})}),testId:"pools-empty",title:l("No workpools.")}),e[14]=n?.pools.length,e[15]=l,e[16]=x):x=e[16];let C;e[17]!==n||e[18]!==l?(C=n!==void 0&&n.pools.length>0&&(0,t.jsx)(D,{className:"overflow-hidden py-0",children:(0,t.jsx)(P,{className:"px-0",children:(0,t.jsxs)(K,{"data-testid":"pools-table",children:[(0,t.jsx)(V,{children:(0,t.jsxs)(F,{children:[(0,t.jsx)(v,{children:l("pool")}),(0,t.jsx)(v,{children:l("queued")}),(0,t.jsx)(v,{children:l("in flight")}),(0,t.jsx)(v,{children:l("max concurrency")})]})}),(0,t.jsx)(z,{children:n.pools.map(be)})]})})}),e[17]=n,e[18]=l,e[19]=C):C=e[19];let g;return e[20]!==J||e[21]!==j||e[22]!==x||e[23]!==C?(g=(0,t.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-scheduler-pools",children:[J,j,x,C]}),e[20]=J,e[21]=j,e[22]=x,e[23]=C,e[24]=g):g=e[24],g},"de");function ve(a,e){return e.queued-a.queued}m(ve,"ie");function be(a){return(0,t.jsxs)(F,{"data-testid":`pools-row-${a.name}`,children:[(0,t.jsx)(b,{className:"font-mono text-xs",children:a.name}),(0,t.jsx)(b,{className:"tabular-nums",children:a.queued}),(0,t.jsxs)(b,{className:"tabular-nums",children:[a.inFlight," / ",a.maxConcurrency]}),(0,t.jsx)(b,{className:"tabular-nums",children:a.maxConcurrency})]},a.name)}m(be,"se");var xe=["jobs","dead","pools","cron"],Ee=m(a=>{let e=(0,Y.c)(41),h;e[0]!==a?(h=a===void 0?{}:a,e[0]=a,e[1]=h):h=e[1];let{loadCronJobs:i,scheduledCancel:p,scheduledLoad:l}=h,o=B(),[r,y]=(0,G.useState)("jobs"),f;e[2]!==o?(f=o("Cron triggers"),e[2]=o,e[3]=f):f=e[3];let n;e[4]!==o?(n=o("Dead letter"),e[4]=o,e[5]=n):n=e[5];let s;e[6]!==o?(s=o("Scheduled jobs"),e[6]=o,e[7]=s):s=e[7];let u;e[8]!==o?(u=o("Pools"),e[8]=o,e[9]=u):u=e[9];let J;e[10]!==f||e[11]!==n||e[12]!==s||e[13]!==u?(J={cron:f,dead:n,jobs:s,pools:u},e[10]=f,e[11]=n,e[12]=s,e[13]=u,e[14]=J):J=e[14];let j=J,x;e[15]===Symbol.for("react.memo_cache_sentinel")?(x=m(N=>{y(N.currentTarget.dataset.view)},"u"),e[15]=x):x=e[15];let C=x,g;e[16]!==o?(g=o("Schedule view"),e[16]=o,e[17]=g):g=e[17];let S;e[18]!==r||e[19]!==j?(S=xe.map(N=>(0,t.jsx)(te,{"aria-selected":r===N,"data-testid":`schedule-view-${N}`,"data-view":N,onClick:C,role:"tab",size:"sm",type:"button",variant:r===N?"default":"outline",children:j[N]},N)),e[18]=r,e[19]=j,e[20]=S):S=e[20];let k;e[21]!==g||e[22]!==S?(k=(0,t.jsx)("div",{"aria-label":g,className:"flex gap-1.5","data-testid":"schedule-view-toggle",role:"tablist",children:S}),e[21]=g,e[22]=S,e[23]=k):k=e[23];let w;e[24]!==p||e[25]!==l||e[26]!==r?(w=r==="jobs"&&(0,t.jsx)(de,{cancelJob:p,loadJobs:l}),e[24]=p,e[25]=l,e[26]=r,e[27]=w):w=e[27];let $;e[28]!==r?($=r==="dead"&&(0,t.jsx)(ue,{}),e[28]=r,e[29]=$):$=e[29];let q;e[30]!==r?(q=r==="pools"&&(0,t.jsx)(pe,{}),e[30]=r,e[31]=q):q=e[31];let I;e[32]!==i||e[33]!==r?(I=r==="cron"&&(0,t.jsx)(he,{loadCronJobs:i}),e[32]=i,e[33]=r,e[34]=I):I=e[34];let L;return e[35]!==k||e[36]!==w||e[37]!==$||e[38]!==q||e[39]!==I?(L=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-schedule",children:[k,w,$,q,I]}),e[35]=k,e[36]=w,e[37]=$,e[38]=q,e[39]=I,e[40]=L):L=e[40],L},"Je");export{Ee as SchedulePanel};
|