@lunora/studio 1.0.0-alpha.85 → 1.0.0-alpha.87

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/index.d.ts +18 -3
  2. package/dist/index.js +1 -1
  3. package/dist/mount.js +1 -1
  4. package/dist/packem_chunks/AdvisorHealthPanel.js +1 -1
  5. package/dist/packem_chunks/ApiTab.js +1 -1
  6. package/dist/packem_chunks/AuditPanel.js +1 -1
  7. package/dist/packem_chunks/ExportImportPanel.js +1 -1
  8. package/dist/packem_chunks/FileBrowser.js +1 -1
  9. package/dist/packem_chunks/FunctionRunner.js +1 -1
  10. package/dist/packem_chunks/FunctionStatsPanel.js +1 -1
  11. package/dist/packem_chunks/HealthPanel.js +1 -1
  12. package/dist/packem_chunks/InsightsPanel.js +1 -1
  13. package/dist/packem_chunks/LogsPanel.js +1 -1
  14. package/dist/packem_chunks/MailPanel.js +1 -1
  15. package/dist/packem_chunks/MetricsPanel.js +1 -1
  16. package/dist/packem_chunks/NotificationsPanel.js +1 -1
  17. package/dist/packem_chunks/PitrPanel.js +1 -1
  18. package/dist/packem_chunks/SchemaViewer.js +1 -1
  19. package/dist/packem_chunks/SecurityAdvisorPanel.js +1 -1
  20. package/dist/packem_chunks/SettingsPanel.js +1 -1
  21. package/dist/packem_chunks/SqlEditorPanel.js +6 -6
  22. package/dist/packem_chunks/TableEditor.js +1 -1
  23. package/dist/packem_chunks/agents-panel.js +1 -1
  24. package/dist/packem_chunks/auth-audit-panel.js +1 -1
  25. package/dist/packem_chunks/containers-panel.js +1 -1
  26. package/dist/packem_chunks/dashboards-panel.js +1 -1
  27. package/dist/packem_chunks/fanout-panel.js +1 -1
  28. package/dist/packem_chunks/flags-panel.js +1 -1
  29. package/dist/packem_chunks/issues-panel.js +1 -1
  30. package/dist/packem_chunks/kv-browser.js +1 -1
  31. package/dist/packem_chunks/migrations-route.js +1 -1
  32. package/dist/packem_chunks/payments-panel.js +1 -1
  33. package/dist/packem_chunks/permissions-panel.js +1 -1
  34. package/dist/packem_chunks/queues-panel.js +1 -1
  35. package/dist/packem_chunks/rls-panel.js +1 -1
  36. package/dist/packem_chunks/storage-rules-panel.js +1 -1
  37. package/dist/packem_chunks/subscriptions-panel.js +1 -1
  38. package/dist/packem_chunks/traces-panel.js +1 -1
  39. package/dist/packem_chunks/users-panel.js +1 -1
  40. package/dist/packem_chunks/workflows-panel.js +1 -1
  41. package/dist/packem_shared/ADMIN_FUNCTIONS-4aE59aDq.js +1 -0
  42. package/dist/packem_shared/{ApiDocsPanel-fYS9NiLg.js → ApiDocsPanel-DLMeLZ5-.js} +1 -1
  43. package/dist/packem_shared/DataBrowser-CZZ_WkJ-.js +1 -0
  44. package/dist/packem_shared/{GlobalDataBrowser-CSttudUx.js → GlobalDataBrowser-DpkjHfDg.js} +1 -1
  45. package/dist/packem_shared/{HomePanel-BYsfMhKh.js → HomePanel-3baDsDBU.js} +1 -1
  46. package/dist/packem_shared/MigrationsPanel-dygzHUvg.js +1 -0
  47. package/dist/packem_shared/{Studio-Ba9x0dG_.js → Studio-forQt-PC.js} +1 -1
  48. package/dist/packem_shared/{StudioApp-B_PRdg4h.js → StudioApp-B1AWsBzi.js} +1 -1
  49. package/dist/packem_shared/{home-panel-B60-5YfI.js → home-panel-CeeqqV0z.js} +1 -1
  50. package/dist/packem_shared/{studio-CPuoAmjh.js → studio-BtC7WPbz.js} +1 -1
  51. package/dist/packem_shared/table-list-sidebar-D9Bd4qgi.js +1 -0
  52. package/dist/packem_shared/use-shard-key-B2JtNa5m.js +1 -0
  53. package/dist/packem_shared/{use-sql-assistant-BLG9unQN.js → use-sql-assistant-C6dl2_Ty.js} +1 -1
  54. package/dist/packem_shared/useDebounced-CU-uftxO.js +1 -0
  55. package/dist/standalone/chunk-2VWWXVWK.js +1 -0
  56. package/dist/standalone/chunk-3CWGJYBB.js +1 -0
  57. package/dist/standalone/{chunk-52OYJHM7.js → chunk-4JIOFDMR.js} +1 -1
  58. package/dist/standalone/{chunk-MN64D74P.js → chunk-4LCY5XUR.js} +1 -1
  59. package/dist/standalone/{chunk-JE3WK77V.js → chunk-5KRD6F67.js} +1 -1
  60. package/dist/standalone/{chunk-RC3H4OP3.js → chunk-5X4OZ7OD.js} +1 -1
  61. package/dist/standalone/{chunk-TO45V3L6.js → chunk-6MGI5IN6.js} +1 -1
  62. package/dist/standalone/{chunk-HJR42BJY.js → chunk-7DNDRUMZ.js} +1 -1
  63. package/dist/standalone/chunk-7FO57AZY.js +1 -0
  64. package/dist/standalone/{chunk-YNBIW2GN.js → chunk-B5S6GSUC.js} +1 -1
  65. package/dist/standalone/{chunk-QZ6TCNWR.js → chunk-B5UFGO4E.js} +1 -1
  66. package/dist/standalone/{chunk-RFBU5RZI.js → chunk-BDNDSBYM.js} +1 -1
  67. package/dist/standalone/{chunk-QS4IFAFJ.js → chunk-CLNB7I3O.js} +1 -1
  68. package/dist/standalone/{chunk-QSFKPGK4.js → chunk-D3JTCLSF.js} +1 -1
  69. package/dist/standalone/chunk-DABW4OOI.js +1 -0
  70. package/dist/standalone/{chunk-SPT3KPV7.js → chunk-EAIUBZA5.js} +1 -1
  71. package/dist/standalone/{chunk-FUBR2PAD.js → chunk-EJ2CHD4G.js} +1 -1
  72. package/dist/standalone/chunk-EVTCXQ5D.js +1 -0
  73. package/dist/standalone/{chunk-OLM62NLS.js → chunk-EWDLYYJM.js} +1 -1
  74. package/dist/standalone/{chunk-ZOX6X2DL.js → chunk-F7NVC7YK.js} +1 -1
  75. package/dist/standalone/chunk-FURI47Z2.js +1 -0
  76. package/dist/standalone/chunk-FW75RYZU.js +1 -0
  77. package/dist/standalone/chunk-GE5WTIWX.js +1 -0
  78. package/dist/standalone/{chunk-BAAU4OTI.js → chunk-GZS3ORGS.js} +1 -1
  79. package/dist/standalone/chunk-HYCMT2V5.js +1 -0
  80. package/dist/standalone/{chunk-5YADKLAQ.js → chunk-IAKPXGTQ.js} +1 -1
  81. package/dist/standalone/chunk-IVCIG5J7.js +4 -0
  82. package/dist/standalone/chunk-KJIBL5D4.js +1 -0
  83. package/dist/standalone/chunk-L4RW5BFD.js +1 -0
  84. package/dist/standalone/{chunk-PWTURL56.js → chunk-LYRAWNV7.js} +1 -1
  85. package/dist/standalone/chunk-MIFLRBVS.js +11 -0
  86. package/dist/standalone/{chunk-OOL3FV6A.js → chunk-MV4A2PAK.js} +1 -1
  87. package/dist/standalone/{chunk-347H2BQO.js → chunk-NBUBAW3V.js} +1 -1
  88. package/dist/standalone/{chunk-232MBXB2.js → chunk-NCWUTRZB.js} +1 -1
  89. package/dist/standalone/{chunk-D67BVBQW.js → chunk-NMLCYY4H.js} +1 -1
  90. package/dist/standalone/{chunk-MDHUWMFD.js → chunk-OOWHAURL.js} +1 -1
  91. package/dist/standalone/{chunk-UOQ24BAY.js → chunk-ORVR33FM.js} +1 -1
  92. package/dist/standalone/{chunk-7AG3T4DK.js → chunk-OUCGTB3Y.js} +2 -2
  93. package/dist/standalone/chunk-PDMZITZZ.js +1 -0
  94. package/dist/standalone/{chunk-VORDESEQ.js → chunk-PNAVAJAF.js} +1 -1
  95. package/dist/standalone/{chunk-LVJ5IHEU.js → chunk-QJTGO4JG.js} +1 -1
  96. package/dist/standalone/{chunk-EDOMDMVI.js → chunk-QP7IQOKF.js} +1 -1
  97. package/dist/standalone/chunk-QXDMHM2V.js +1 -0
  98. package/dist/standalone/{chunk-VKEJTZY7.js → chunk-S2CXYDNT.js} +1 -1
  99. package/dist/standalone/{chunk-AQKXMWNF.js → chunk-S3DWUXGY.js} +1 -1
  100. package/dist/standalone/{chunk-YSMJN36P.js → chunk-SJZQPIZB.js} +1 -1
  101. package/dist/standalone/{chunk-ETZYJL7Z.js → chunk-SMEW3ZTU.js} +1 -1
  102. package/dist/standalone/chunk-SNK7TOOO.js +6 -0
  103. package/dist/standalone/{chunk-QI25LTPH.js → chunk-T2Q7I3V2.js} +1 -1
  104. package/dist/standalone/{chunk-ESKVOZLC.js → chunk-T3CGXSXO.js} +1 -1
  105. package/dist/standalone/{chunk-YGKR536O.js → chunk-TS6346VY.js} +1 -1
  106. package/dist/standalone/{chunk-ENBTOX7N.js → chunk-TVGKSIIW.js} +1 -1
  107. package/dist/standalone/{chunk-U5IIRHZ6.js → chunk-UNVK2VZP.js} +1 -1
  108. package/dist/standalone/{chunk-U44CWN7H.js → chunk-UR3X4K4T.js} +1 -1
  109. package/dist/standalone/chunk-VDW32UET.js +1 -0
  110. package/dist/standalone/chunk-VQK34A2H.js +1 -0
  111. package/dist/standalone/{chunk-MBVSXVTV.js → chunk-WPUINKEO.js} +1 -1
  112. package/dist/standalone/chunk-XNGYYOLS.js +14 -0
  113. package/dist/standalone/{chunk-2SC3EG5Y.js → chunk-XR7RBXKA.js} +1 -1
  114. package/dist/standalone/{chunk-KNHWIHC7.js → chunk-XZN645UJ.js} +1 -1
  115. package/dist/standalone/chunk-YFJXQUPW.js +1 -0
  116. package/dist/standalone/chunk-YKAO3JNJ.js +1 -0
  117. package/dist/standalone/{chunk-AHVDZWB3.js → chunk-YRYEZHOJ.js} +1 -1
  118. package/dist/standalone/{chunk-TIR6CWHO.js → chunk-ZCFDQW4U.js} +1 -1
  119. package/dist/standalone/studio.js +1 -1
  120. package/package.json +6 -6
  121. package/dist/packem_shared/ADMIN_FUNCTIONS-CZESgd10.js +0 -1
  122. package/dist/packem_shared/DataBrowser-C4J4gVUu.js +0 -1
  123. package/dist/packem_shared/MigrationsPanel-2JbQ2HwG.js +0 -1
  124. package/dist/packem_shared/table-list-sidebar-BRv3hTLX.js +0 -1
  125. package/dist/packem_shared/useDebounced-Ihdiid_k.js +0 -1
  126. package/dist/standalone/chunk-22LOWEEC.js +0 -1
  127. package/dist/standalone/chunk-2EJADIPC.js +0 -1
  128. package/dist/standalone/chunk-4I2TBTZS.js +0 -1
  129. package/dist/standalone/chunk-6IEBRNDW.js +0 -1
  130. package/dist/standalone/chunk-D3FRQZ4X.js +0 -1
  131. package/dist/standalone/chunk-ERMTJYQF.js +0 -1
  132. package/dist/standalone/chunk-JAT5ZBQK.js +0 -1
  133. package/dist/standalone/chunk-JOFD43OI.js +0 -1
  134. package/dist/standalone/chunk-LFKCLLPT.js +0 -1
  135. package/dist/standalone/chunk-MLULN4R2.js +0 -1
  136. package/dist/standalone/chunk-MUGKOGZG.js +0 -1
  137. package/dist/standalone/chunk-NPKNFZUW.js +0 -6
  138. package/dist/standalone/chunk-OV63HVE4.js +0 -4
  139. package/dist/standalone/chunk-QFJRZR4U.js +0 -1
  140. package/dist/standalone/chunk-QNRAMF4X.js +0 -1
  141. package/dist/standalone/chunk-QNUWWC3N.js +0 -14
  142. package/dist/standalone/chunk-S67SBGB3.js +0 -1
  143. package/dist/standalone/chunk-SHD2IWQI.js +0 -1
  144. package/dist/standalone/chunk-SKFZXESP.js +0 -1
  145. package/dist/standalone/chunk-UBR4KB6K.js +0 -11
@@ -1,4 +1,4 @@
1
- import{a as Yi,b as Ve,c as Ri,d as Je,e as Zi,f as xi,k as ji}from"./chunk-FUBR2PAD.js";import"./chunk-7AG3T4DK.js";import"./chunk-3C3CG7ZK.js";import"./chunk-I6A5C46N.js";import"./chunk-2QSHLBCO.js";import"./chunk-BGBLQ563.js";import"./chunk-IVFHIQOT.js";import"./chunk-QBWRC5YX.js";import"./chunk-HPFLBYRI.js";import"./chunk-ILNELDFC.js";import"./chunk-SFDOII3B.js";import"./chunk-SMIESS7P.js";import{a as Le}from"./chunk-7T7UOTYK.js";import{a as Ci}from"./chunk-LFKCLLPT.js";import{R as Xi}from"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import{a as zd}from"./chunk-7QIFDWQV.js";import{c as Gi}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{b as Ke}from"./chunk-VORDESEQ.js";import"./chunk-QLQADHFE.js";import"./chunk-ERMTJYQF.js";import"./chunk-YGKR536O.js";import{a as Hi,e as qi}from"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import"./chunk-XQCVZAGU.js";import"./chunk-UZERI5YC.js";import{a as Qi,d as je,n as pi}from"./chunk-OG4N2XHD.js";import{c as _i}from"./chunk-QNUWWC3N.js";import{a as c,c as vn,e as fu,f as Ni,g as Ad,h as Bi,j as xe}from"./chunk-3XIESWL4.js";var ri=vn(w=>{"use strict";function $e(l,t){var a=l.length;l.push(t);l:for(;0<a;){var u=a-1>>>1,n=l[u];if(0<dn(n,t))l[u]=t,l[a]=n,a=u;else break l}}c($e,"push");function wl(l){return l.length===0?null:l[0]}c(wl,"peek");function hn(l){if(l.length===0)return null;var t=l[0],a=l.pop();if(a!==t){l[0]=a;l:for(var u=0,n=l.length,e=n>>>1;u<e;){var f=2*(u+1)-1,i=l[f],m=f+1,y=l[m];if(0>dn(i,a))m<n&&0>dn(y,i)?(l[u]=y,l[m]=a,u=m):(l[u]=i,l[f]=a,u=f);else if(m<n&&0>dn(y,a))l[u]=y,l[m]=a,u=m;else break l}}return t}c(hn,"pop");function dn(l,t){var a=l.sortIndex-t.sortIndex;return a!==0?a:l.id-t.id}c(dn,"compare");w.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Vi=performance,w.unstable_now=function(){return Vi.now()}):(We=Date,Li=We.now(),w.unstable_now=function(){return We.now()-Li});var Vi,We,Li,tt=[],Et=[],Td=1,Ql=null,Sl=3,ke=!1,iu=!1,mu=!1,re=!1,Wi=typeof setTimeout=="function"?setTimeout:null,wi=typeof clearTimeout=="function"?clearTimeout:null,Ki=typeof setImmediate<"u"?setImmediate:null;function yn(l){for(var t=wl(Et);t!==null;){if(t.callback===null)hn(Et);else if(t.startTime<=l)hn(Et),t.sortIndex=t.expirationTime,$e(tt,t);else break;t=wl(Et)}}c(yn,"advanceTimers");function Ie(l){if(mu=!1,yn(l),!iu)if(wl(tt)!==null)iu=!0,oa||(oa=!0,ga());else{var t=wl(Et);t!==null&&Pe(Ie,t.startTime-l)}}c(Ie,"handleTimeout");var oa=!1,vu=-1,Fi=5,$i=-1;function ki(){return re?!0:!(w.unstable_now()-$i<Fi)}c(ki,"shouldYieldToHost");function we(){if(re=!1,oa){var l=w.unstable_now();$i=l;var t=!0;try{l:{iu=!1,mu&&(mu=!1,wi(vu),vu=-1),ke=!0;var a=Sl;try{t:{for(yn(l),Ql=wl(tt);Ql!==null&&!(Ql.expirationTime>l&&ki());){var u=Ql.callback;if(typeof u=="function"){Ql.callback=null,Sl=Ql.priorityLevel;var n=u(Ql.expirationTime<=l);if(l=w.unstable_now(),typeof n=="function"){Ql.callback=n,yn(l),t=!0;break t}Ql===wl(tt)&&hn(tt),yn(l)}else hn(tt);Ql=wl(tt)}if(Ql!==null)t=!0;else{var e=wl(Et);e!==null&&Pe(Ie,e.startTime-l),t=!1}}break l}finally{Ql=null,Sl=a,ke=!1}t=void 0}}finally{t?ga():oa=!1}}}c(we,"performWorkUntilDeadline");var ga;typeof Ki=="function"?ga=c(function(){Ki(we)},"schedulePerformWorkUntilDeadline"):typeof MessageChannel<"u"?(Fe=new MessageChannel,Ji=Fe.port2,Fe.port1.onmessage=we,ga=c(function(){Ji.postMessage(null)},"schedulePerformWorkUntilDeadline")):ga=c(function(){Wi(we,0)},"schedulePerformWorkUntilDeadline");var Fe,Ji;function Pe(l,t){vu=Wi(function(){l(w.unstable_now())},t)}c(Pe,"requestHostTimeout");w.unstable_IdlePriority=5;w.unstable_ImmediatePriority=1;w.unstable_LowPriority=4;w.unstable_NormalPriority=3;w.unstable_Profiling=null;w.unstable_UserBlockingPriority=2;w.unstable_cancelCallback=function(l){l.callback=null};w.unstable_forceFrameRate=function(l){0>l||125<l?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Fi=0<l?Math.floor(1e3/l):5};w.unstable_getCurrentPriorityLevel=function(){return Sl};w.unstable_next=function(l){switch(Sl){case 1:case 2:case 3:var t=3;break;default:t=Sl}var a=Sl;Sl=t;try{return l()}finally{Sl=a}};w.unstable_requestPaint=function(){re=!0};w.unstable_runWithPriority=function(l,t){switch(l){case 1:case 2:case 3:case 4:case 5:break;default:l=3}var a=Sl;Sl=l;try{return t()}finally{Sl=a}};w.unstable_scheduleCallback=function(l,t,a){var u=w.unstable_now();switch(typeof a=="object"&&a!==null?(a=a.delay,a=typeof a=="number"&&0<a?u+a:u):a=u,l){case 1:var n=-1;break;case 2:n=250;break;case 5:n=1073741823;break;case 4:n=1e4;break;default:n=5e3}return n=a+n,l={id:Td++,callback:t,priorityLevel:l,startTime:a,expirationTime:n,sortIndex:-1},a>u?(l.sortIndex=a,$e(Et,l),wl(tt)===null&&l===wl(Et)&&(mu?(wi(vu),vu=-1):mu=!0,Pe(Ie,a-u))):(l.sortIndex=n,$e(tt,l),iu||ke||(iu=!0,oa||(oa=!0,ga()))),l};w.unstable_shouldYield=ki;w.unstable_wrapCallback=function(l){var t=Sl;return function(){var a=Sl;Sl=t;try{return l.apply(this,arguments)}finally{Sl=a}}}});var Pi=vn((n2,Ii)=>{"use strict";Ii.exports=ri()});var dd=vn(Re=>{"use strict";var el=Pi(),U1=Ni(),Ed=zd();function z(l){var t="https://react.dev/errors/"+l;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var a=2;a<arguments.length;a++)t+="&args[]="+encodeURIComponent(arguments[a])}return"Minified React error #"+l+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}c(z,"formatProdErrorMessage");function D1(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11)}c(D1,"isValidContainer");function ku(l){var t=l,a=l;if(l.alternate)for(;t.return;)t=t.return;else{l=t;do t=l,(t.flags&4098)!==0&&(a=t.return),l=t.return;while(l)}return t.tag===3?a:null}c(ku,"getNearestMountedFiber");function _1(l){if(l.tag===13){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}c(_1,"getSuspenseInstanceFromFiber");function N1(l){if(l.tag===31){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}c(N1,"getActivityInstanceFromFiber");function l0(l){if(ku(l)!==l)throw Error(z(188))}c(l0,"assertIsMounted");function Md(l){var t=l.alternate;if(!t){if(t=ku(l),t===null)throw Error(z(188));return t!==l?null:l}for(var a=l,u=t;;){var n=a.return;if(n===null)break;var e=n.alternate;if(e===null){if(u=n.return,u!==null){a=u;continue}break}if(n.child===e.child){for(e=n.child;e;){if(e===a)return l0(n),l;if(e===u)return l0(n),t;e=e.sibling}throw Error(z(188))}if(a.return!==u.return)a=n,u=e;else{for(var f=!1,i=n.child;i;){if(i===a){f=!0,a=n,u=e;break}if(i===u){f=!0,u=n,a=e;break}i=i.sibling}if(!f){for(i=e.child;i;){if(i===a){f=!0,a=e,u=n;break}if(i===u){f=!0,u=e,a=n;break}i=i.sibling}if(!f)throw Error(z(189))}}if(a.alternate!==u)throw Error(z(190))}if(a.tag!==3)throw Error(z(188));return a.stateNode.current===a?l:t}c(Md,"findCurrentFiberUsingSlowPath");function H1(l){var t=l.tag;if(t===5||t===26||t===27||t===6)return l;for(l=l.child;l!==null;){if(t=H1(l),t!==null)return t;l=l.sibling}return null}c(H1,"findCurrentHostFiberImpl");var W=Object.assign,Od=Symbol.for("react.element"),Sn=Symbol.for("react.transitional.element"),su=Symbol.for("react.portal"),Ea=Symbol.for("react.fragment"),B1=Symbol.for("react.strict_mode"),Qc=Symbol.for("react.profiler"),q1=Symbol.for("react.consumer"),mt=Symbol.for("react.context"),Hf=Symbol.for("react.forward_ref"),Xc=Symbol.for("react.suspense"),Gc=Symbol.for("react.suspense_list"),Bf=Symbol.for("react.memo"),Mt=Symbol.for("react.lazy"),pc=Symbol.for("react.activity"),Ud=Symbol.for("react.memo_cache_sentinel"),t0=Symbol.iterator;function du(l){return l===null||typeof l!="object"?null:(l=t0&&l[t0]||l["@@iterator"],typeof l=="function"?l:null)}c(du,"getIteratorFn");var Dd=Symbol.for("react.client.reference");function Cc(l){if(l==null)return null;if(typeof l=="function")return l.$$typeof===Dd?null:l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case Ea:return"Fragment";case Qc:return"Profiler";case B1:return"StrictMode";case Xc:return"Suspense";case Gc:return"SuspenseList";case pc:return"Activity"}if(typeof l=="object")switch(l.$$typeof){case su:return"Portal";case mt:return l.displayName||"Context";case q1:return(l._context.displayName||"Context")+".Consumer";case Hf:var t=l.render;return l=l.displayName,l||(l=t.displayName||t.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case Bf:return t=l.displayName||null,t!==null?t:Cc(l.type)||"Memo";case Mt:t=l._payload,l=l._init;try{return Cc(l(t))}catch{}}return null}c(Cc,"getComponentNameFromType");var zu=Array.isArray,_=U1.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,p=Ed.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,la={pending:!1,data:null,method:null,action:null},Rc=[],Ma=-1;function Il(l){return{current:l}}c(Il,"createCursor");function il(l){0>Ma||(l.current=Rc[Ma],Rc[Ma]=null,Ma--)}c(il,"pop");function L(l,t){Ma++,Rc[Ma]=l.current,l.current=t}c(L,"push");var rl=Il(null),pu=Il(null),Xt=Il(null),wn=Il(null);function Fn(l,t){switch(L(Xt,t),L(pu,l),L(rl,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?i1(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=i1(t),l=rv(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}il(rl),L(rl,l)}c(Fn,"pushHostContainer");function ja(){il(rl),il(pu),il(Xt)}c(ja,"popHostContainer");function Zc(l){l.memoizedState!==null&&L(wn,l);var t=rl.current,a=rv(t,l.type);t!==a&&(L(pu,l),L(rl,a))}c(Zc,"pushHostContext");function $n(l){pu.current===l&&(il(rl),il(pu)),wn.current===l&&(il(wn),wu._currentValue=la)}c($n,"popHostContext");var lc,a0;function kt(l){if(lc===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);lc=t&&t[1]||"",a0=-1<a.stack.indexOf(`
1
+ import{a as Yi,b as Ve,c as Ri,d as Je,e as Zi,f as xi,k as ji}from"./chunk-EJ2CHD4G.js";import"./chunk-OUCGTB3Y.js";import"./chunk-3C3CG7ZK.js";import"./chunk-I6A5C46N.js";import"./chunk-2QSHLBCO.js";import"./chunk-BGBLQ563.js";import{a as Ci}from"./chunk-FURI47Z2.js";import"./chunk-IVFHIQOT.js";import"./chunk-QBWRC5YX.js";import"./chunk-HPFLBYRI.js";import"./chunk-ILNELDFC.js";import"./chunk-SFDOII3B.js";import"./chunk-SMIESS7P.js";import{a as Le}from"./chunk-7T7UOTYK.js";import{R as Xi}from"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import{a as zd}from"./chunk-7QIFDWQV.js";import{c as Gi}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{b as Ke}from"./chunk-PNAVAJAF.js";import"./chunk-QLQADHFE.js";import"./chunk-VDW32UET.js";import"./chunk-TS6346VY.js";import{a as Hi,e as qi}from"./chunk-MIFLRBVS.js";import"./chunk-XBDKZZ67.js";import"./chunk-XQCVZAGU.js";import"./chunk-UZERI5YC.js";import{a as Qi,d as je,n as pi}from"./chunk-OG4N2XHD.js";import{c as _i}from"./chunk-XNGYYOLS.js";import{a as c,c as vn,e as fu,f as Ni,g as Ad,h as Bi,j as xe}from"./chunk-3XIESWL4.js";var ri=vn(w=>{"use strict";function $e(l,t){var a=l.length;l.push(t);l:for(;0<a;){var u=a-1>>>1,n=l[u];if(0<dn(n,t))l[u]=t,l[a]=n,a=u;else break l}}c($e,"push");function wl(l){return l.length===0?null:l[0]}c(wl,"peek");function hn(l){if(l.length===0)return null;var t=l[0],a=l.pop();if(a!==t){l[0]=a;l:for(var u=0,n=l.length,e=n>>>1;u<e;){var f=2*(u+1)-1,i=l[f],m=f+1,y=l[m];if(0>dn(i,a))m<n&&0>dn(y,i)?(l[u]=y,l[m]=a,u=m):(l[u]=i,l[f]=a,u=f);else if(m<n&&0>dn(y,a))l[u]=y,l[m]=a,u=m;else break l}}return t}c(hn,"pop");function dn(l,t){var a=l.sortIndex-t.sortIndex;return a!==0?a:l.id-t.id}c(dn,"compare");w.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Vi=performance,w.unstable_now=function(){return Vi.now()}):(We=Date,Li=We.now(),w.unstable_now=function(){return We.now()-Li});var Vi,We,Li,tt=[],Et=[],Td=1,Ql=null,Sl=3,ke=!1,iu=!1,mu=!1,re=!1,Wi=typeof setTimeout=="function"?setTimeout:null,wi=typeof clearTimeout=="function"?clearTimeout:null,Ki=typeof setImmediate<"u"?setImmediate:null;function yn(l){for(var t=wl(Et);t!==null;){if(t.callback===null)hn(Et);else if(t.startTime<=l)hn(Et),t.sortIndex=t.expirationTime,$e(tt,t);else break;t=wl(Et)}}c(yn,"advanceTimers");function Ie(l){if(mu=!1,yn(l),!iu)if(wl(tt)!==null)iu=!0,oa||(oa=!0,ga());else{var t=wl(Et);t!==null&&Pe(Ie,t.startTime-l)}}c(Ie,"handleTimeout");var oa=!1,vu=-1,Fi=5,$i=-1;function ki(){return re?!0:!(w.unstable_now()-$i<Fi)}c(ki,"shouldYieldToHost");function we(){if(re=!1,oa){var l=w.unstable_now();$i=l;var t=!0;try{l:{iu=!1,mu&&(mu=!1,wi(vu),vu=-1),ke=!0;var a=Sl;try{t:{for(yn(l),Ql=wl(tt);Ql!==null&&!(Ql.expirationTime>l&&ki());){var u=Ql.callback;if(typeof u=="function"){Ql.callback=null,Sl=Ql.priorityLevel;var n=u(Ql.expirationTime<=l);if(l=w.unstable_now(),typeof n=="function"){Ql.callback=n,yn(l),t=!0;break t}Ql===wl(tt)&&hn(tt),yn(l)}else hn(tt);Ql=wl(tt)}if(Ql!==null)t=!0;else{var e=wl(Et);e!==null&&Pe(Ie,e.startTime-l),t=!1}}break l}finally{Ql=null,Sl=a,ke=!1}t=void 0}}finally{t?ga():oa=!1}}}c(we,"performWorkUntilDeadline");var ga;typeof Ki=="function"?ga=c(function(){Ki(we)},"schedulePerformWorkUntilDeadline"):typeof MessageChannel<"u"?(Fe=new MessageChannel,Ji=Fe.port2,Fe.port1.onmessage=we,ga=c(function(){Ji.postMessage(null)},"schedulePerformWorkUntilDeadline")):ga=c(function(){Wi(we,0)},"schedulePerformWorkUntilDeadline");var Fe,Ji;function Pe(l,t){vu=Wi(function(){l(w.unstable_now())},t)}c(Pe,"requestHostTimeout");w.unstable_IdlePriority=5;w.unstable_ImmediatePriority=1;w.unstable_LowPriority=4;w.unstable_NormalPriority=3;w.unstable_Profiling=null;w.unstable_UserBlockingPriority=2;w.unstable_cancelCallback=function(l){l.callback=null};w.unstable_forceFrameRate=function(l){0>l||125<l?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Fi=0<l?Math.floor(1e3/l):5};w.unstable_getCurrentPriorityLevel=function(){return Sl};w.unstable_next=function(l){switch(Sl){case 1:case 2:case 3:var t=3;break;default:t=Sl}var a=Sl;Sl=t;try{return l()}finally{Sl=a}};w.unstable_requestPaint=function(){re=!0};w.unstable_runWithPriority=function(l,t){switch(l){case 1:case 2:case 3:case 4:case 5:break;default:l=3}var a=Sl;Sl=l;try{return t()}finally{Sl=a}};w.unstable_scheduleCallback=function(l,t,a){var u=w.unstable_now();switch(typeof a=="object"&&a!==null?(a=a.delay,a=typeof a=="number"&&0<a?u+a:u):a=u,l){case 1:var n=-1;break;case 2:n=250;break;case 5:n=1073741823;break;case 4:n=1e4;break;default:n=5e3}return n=a+n,l={id:Td++,callback:t,priorityLevel:l,startTime:a,expirationTime:n,sortIndex:-1},a>u?(l.sortIndex=a,$e(Et,l),wl(tt)===null&&l===wl(Et)&&(mu?(wi(vu),vu=-1):mu=!0,Pe(Ie,a-u))):(l.sortIndex=n,$e(tt,l),iu||ke||(iu=!0,oa||(oa=!0,ga()))),l};w.unstable_shouldYield=ki;w.unstable_wrapCallback=function(l){var t=Sl;return function(){var a=Sl;Sl=t;try{return l.apply(this,arguments)}finally{Sl=a}}}});var Pi=vn((n2,Ii)=>{"use strict";Ii.exports=ri()});var dd=vn(Re=>{"use strict";var el=Pi(),U1=Ni(),Ed=zd();function z(l){var t="https://react.dev/errors/"+l;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var a=2;a<arguments.length;a++)t+="&args[]="+encodeURIComponent(arguments[a])}return"Minified React error #"+l+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}c(z,"formatProdErrorMessage");function D1(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11)}c(D1,"isValidContainer");function ku(l){var t=l,a=l;if(l.alternate)for(;t.return;)t=t.return;else{l=t;do t=l,(t.flags&4098)!==0&&(a=t.return),l=t.return;while(l)}return t.tag===3?a:null}c(ku,"getNearestMountedFiber");function _1(l){if(l.tag===13){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}c(_1,"getSuspenseInstanceFromFiber");function N1(l){if(l.tag===31){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}c(N1,"getActivityInstanceFromFiber");function l0(l){if(ku(l)!==l)throw Error(z(188))}c(l0,"assertIsMounted");function Md(l){var t=l.alternate;if(!t){if(t=ku(l),t===null)throw Error(z(188));return t!==l?null:l}for(var a=l,u=t;;){var n=a.return;if(n===null)break;var e=n.alternate;if(e===null){if(u=n.return,u!==null){a=u;continue}break}if(n.child===e.child){for(e=n.child;e;){if(e===a)return l0(n),l;if(e===u)return l0(n),t;e=e.sibling}throw Error(z(188))}if(a.return!==u.return)a=n,u=e;else{for(var f=!1,i=n.child;i;){if(i===a){f=!0,a=n,u=e;break}if(i===u){f=!0,u=n,a=e;break}i=i.sibling}if(!f){for(i=e.child;i;){if(i===a){f=!0,a=e,u=n;break}if(i===u){f=!0,u=e,a=n;break}i=i.sibling}if(!f)throw Error(z(189))}}if(a.alternate!==u)throw Error(z(190))}if(a.tag!==3)throw Error(z(188));return a.stateNode.current===a?l:t}c(Md,"findCurrentFiberUsingSlowPath");function H1(l){var t=l.tag;if(t===5||t===26||t===27||t===6)return l;for(l=l.child;l!==null;){if(t=H1(l),t!==null)return t;l=l.sibling}return null}c(H1,"findCurrentHostFiberImpl");var W=Object.assign,Od=Symbol.for("react.element"),Sn=Symbol.for("react.transitional.element"),su=Symbol.for("react.portal"),Ea=Symbol.for("react.fragment"),B1=Symbol.for("react.strict_mode"),Qc=Symbol.for("react.profiler"),q1=Symbol.for("react.consumer"),mt=Symbol.for("react.context"),Hf=Symbol.for("react.forward_ref"),Xc=Symbol.for("react.suspense"),Gc=Symbol.for("react.suspense_list"),Bf=Symbol.for("react.memo"),Mt=Symbol.for("react.lazy"),pc=Symbol.for("react.activity"),Ud=Symbol.for("react.memo_cache_sentinel"),t0=Symbol.iterator;function du(l){return l===null||typeof l!="object"?null:(l=t0&&l[t0]||l["@@iterator"],typeof l=="function"?l:null)}c(du,"getIteratorFn");var Dd=Symbol.for("react.client.reference");function Cc(l){if(l==null)return null;if(typeof l=="function")return l.$$typeof===Dd?null:l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case Ea:return"Fragment";case Qc:return"Profiler";case B1:return"StrictMode";case Xc:return"Suspense";case Gc:return"SuspenseList";case pc:return"Activity"}if(typeof l=="object")switch(l.$$typeof){case su:return"Portal";case mt:return l.displayName||"Context";case q1:return(l._context.displayName||"Context")+".Consumer";case Hf:var t=l.render;return l=l.displayName,l||(l=t.displayName||t.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case Bf:return t=l.displayName||null,t!==null?t:Cc(l.type)||"Memo";case Mt:t=l._payload,l=l._init;try{return Cc(l(t))}catch{}}return null}c(Cc,"getComponentNameFromType");var zu=Array.isArray,_=U1.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,p=Ed.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,la={pending:!1,data:null,method:null,action:null},Rc=[],Ma=-1;function Il(l){return{current:l}}c(Il,"createCursor");function il(l){0>Ma||(l.current=Rc[Ma],Rc[Ma]=null,Ma--)}c(il,"pop");function L(l,t){Ma++,Rc[Ma]=l.current,l.current=t}c(L,"push");var rl=Il(null),pu=Il(null),Xt=Il(null),wn=Il(null);function Fn(l,t){switch(L(Xt,t),L(pu,l),L(rl,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?i1(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=i1(t),l=rv(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}il(rl),L(rl,l)}c(Fn,"pushHostContainer");function ja(){il(rl),il(pu),il(Xt)}c(ja,"popHostContainer");function Zc(l){l.memoizedState!==null&&L(wn,l);var t=rl.current,a=rv(t,l.type);t!==a&&(L(pu,l),L(rl,a))}c(Zc,"pushHostContext");function $n(l){pu.current===l&&(il(rl),il(pu)),wn.current===l&&(il(wn),wu._currentValue=la)}c($n,"popHostContext");var lc,a0;function kt(l){if(lc===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);lc=t&&t[1]||"",a0=-1<a.stack.indexOf(`
2
2
  at`)?" (<anonymous>)":-1<a.stack.indexOf("@")?"@unknown:0:0":""}return`
3
3
  `+lc+l+a0}c(kt,"describeBuiltInComponentFrame");var tc=!1;function ac(l,t){if(!l||tc)return"";tc=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var u={DetermineComponentFrameRoot:c(function(){try{if(t){var b=c(function(){throw Error()},"Fake");if(Object.defineProperty(b.prototype,"props",{set:c(function(){throw Error()},"set")}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(b,[])}catch(g){var S=g}Reflect.construct(l,[],b)}else{try{b.call()}catch(g){S=g}l.call(b.prototype)}}else{try{throw Error()}catch(g){S=g}(b=l())&&typeof b.catch=="function"&&b.catch(function(){})}}catch(g){if(g&&S&&typeof g.stack=="string")return[g.stack,S.stack]}return[null,null]},"DetermineComponentFrameRoot")};u.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var n=Object.getOwnPropertyDescriptor(u.DetermineComponentFrameRoot,"name");n&&n.configurable&&Object.defineProperty(u.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var e=u.DetermineComponentFrameRoot(),f=e[0],i=e[1];if(f&&i){var m=f.split(`
4
4
  `),y=i.split(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunora/studio",
3
- "version": "1.0.0-alpha.85",
3
+ "version": "1.0.0-alpha.87",
4
4
  "description": "The Lunora Studio: a local admin UI for your schema, data, logs, and advisors",
5
5
  "keywords": [
6
6
  "admin-ui",
@@ -58,11 +58,11 @@
58
58
  "@hugeicons/react": "^1.1.9",
59
59
  "@lingui/core": "^6.6.0",
60
60
  "@lingui/message-utils": "^6.6.0",
61
- "@lunora/advisor": "1.0.0-alpha.60",
62
- "@lunora/bindings": "1.0.0-alpha.15",
63
- "@lunora/client": "1.0.0-alpha.35",
64
- "@lunora/errors": "1.0.0-alpha.10",
65
- "@lunora/react": "1.0.0-alpha.39",
61
+ "@lunora/advisor": "1.0.0-alpha.62",
62
+ "@lunora/bindings": "1.0.0-alpha.18",
63
+ "@lunora/client": "1.0.0-alpha.36",
64
+ "@lunora/errors": "1.0.0-alpha.12",
65
+ "@lunora/react": "1.0.0-alpha.40",
66
66
  "@tanstack/react-query": "^5.101.4",
67
67
  "@tanstack/react-router": "^1.170.18",
68
68
  "@tanstack/react-table": "^8.21.3",
@@ -1 +0,0 @@
1
- const _="__lunora_admin__:",e={aiAvailable:"__lunora_admin__:aiAvailable",aiChartConfig:"__lunora_admin__:aiChartConfig",aiGenerateSql:"__lunora_admin__:aiGenerateSql",aiTableFilter:"__lunora_admin__:aiTableFilter",assignIssue:"__lunora_admin__:assignIssue",backRelationCounts:"__lunora_admin__:backRelationCounts",clearCapturedMail:"__lunora_admin__:clearCapturedMail",clearQueueMessages:"__lunora_admin__:clearQueueMessages",clearTable:"__lunora_admin__:clearTable",createWorkflowInstance:"__lunora_admin__:createWorkflowInstance",deleteRows:"__lunora_admin__:deleteRows",describeTable:"__lunora_admin__:describeTable",describeTables:"__lunora_admin__:describeTables",explainIssue:"__lunora_admin__:explainIssue",exportShard:"__lunora_admin__:exportShard",facetColumn:"__lunora_admin__:facetColumn",getAdvisories:"__lunora_admin__:getAdvisories",getAdvisorProcedures:"__lunora_admin__:getAdvisorProcedures",getAuditLog:"__lunora_admin__:getAuditLog",getAuthAuditLog:"__lunora_admin__:getAuthAuditLog",getAuthMetrics:"__lunora_admin__:getAuthMetrics",getCapturedMail:"__lunora_admin__:getCapturedMail",getFanoutMetrics:"__lunora_admin__:getFanoutMetrics",getFunctionStats:"__lunora_admin__:getFunctionStats",getIssues:"__lunora_admin__:getIssues",lintSql:"__lunora_admin__:lintSql",listFlags:"__lunora_admin__:listFlags",listPushSubscriptions:"__lunora_admin__:listPushSubscriptions",listQueues:"__lunora_admin__:listQueues",listSubscriptions:"__lunora_admin__:listSubscriptions",listTableIndexes:"__lunora_admin__:listTableIndexes",listWorkflows:"__lunora_admin__:listWorkflows",getLogs:"__lunora_admin__:getLogs",getMetricHistory:"__lunora_admin__:getMetricHistory",getMetricSeries:"__lunora_admin__:getMetricSeries",getMetrics:"__lunora_admin__:getMetrics",getPitrBookmark:"__lunora_admin__:getPitrBookmark",getQueryInsights:"__lunora_admin__:getQueryInsights",getQueueMessages:"__lunora_admin__:getQueueMessages",getRequestLog:"__lunora_admin__:getRequestLog",getSecurityAudit:"__lunora_admin__:getSecurityAudit",getSettings:"__lunora_admin__:getSettings",getTraces:"__lunora_admin__:getTraces",getWorkflowInstanceStatus:"__lunora_admin__:getWorkflowInstanceStatus",ignoreIssue:"__lunora_admin__:ignoreIssue",importShard:"__lunora_admin__:importShard",listTables:"__lunora_admin__:listTables",maskPolicies:"__lunora_admin__:maskPolicies",migrationStatus:"__lunora_admin__:migrationStatus",pitrRestore:"__lunora_admin__:pitrRestore",readTablePage:"__lunora_admin__:readTablePage",replayQueueMessage:"__lunora_admin__:replayQueueMessage",resolveIssue:"__lunora_admin__:resolveIssue",rlsPolicies:"__lunora_admin__:rlsPolicies",schemaHistory:"__lunora_admin__:schemaHistory",schemaVersion:"__lunora_admin__:schemaVersion",runAs:"__lunora_admin__:runAs",runMigration:"__lunora_admin__:runMigration",runSql:"__lunora_admin__:runSql",sendQueueMessage:"__lunora_admin__:sendQueueMessage",sendTestMail:"__lunora_admin__:sendTestMail",setIssueSeverity:"__lunora_admin__:setIssueSeverity",storageOrphans:"__lunora_admin__:storageOrphans",storageReferences:"__lunora_admin__:storageReferences",storageRules:"__lunora_admin__:storageRules",studioFeatures:"__lunora_admin__:studioFeatures",writeRow:"__lunora_admin__:writeRow"};export{e as ADMIN_FUNCTIONS,_ as ADMIN_FUNCTION_PREFIX};
@@ -1 +0,0 @@
1
- import{c as j}from"react/compiler-runtime";import{useLunora as Ke}from"@lunora/react";import{useState as D,useMemo as et,useRef as De,useCallback as tt,useEffect as $e}from"react";import{ShardInput as Zt}from"./ShardInput-BVn2iCU0.js";import{N as je}from"./use-admin-query-QJ-ibl5u.js";import{ADMIN_FUNCTIONS as Y}from"./ADMIN_FUNCTIONS-CZESgd10.js";import{b as wt}from"./browser-storage-xjTyMKY0.js";import{h as Pe,f as oe,d as de,g as he,i as Xt}from"./internal-BSIsQVC6.js";import{k as Yt}from"./use-sql-assistant-BLG9unQN.js";import{ConfirmButton as nt}from"./ConfirmButton-CTL3f3kr.js";import{E as en}from"./empty-state-Cg7t_8qu.js";import{useT as ce}from"./DEFAULT_LOCALE-BZ4NojpD.js";import{useReactTable as tn,getSortedRowModel as nn,getCoreRowModel as on,flexRender as ln}from"@tanstack/react-table";import{useVirtualizer as rn}from"@tanstack/react-virtual";import{f as at}from"./checkbox-StT4Gob6.js";import{c as qe}from"./utils-bhneXptQ.js";import{l as an}from"./virtual-rect-1o1veP7R.js";import{g as Ze,k as sn,v as dn}from"./data-grid-DcxyIXwG.js";import{jsx as u,jsxs as R,Fragment as Je}from"react/jsx-runtime";import{DataFilters as cn,toFilterClauses as Me}from"./DataFilters-B26ZeqBZ.js";import{r as un,i as mn}from"./grid-features-jnrD0SpX.js";import{_ as gn,i as ke,u as bn,a as fn,$ as pn}from"./table-list-sidebar-BRv3hTLX.js";import{M as yt}from"./modal-shell-CUwwWC2o.js";import ct from"./useDebounced-Ihdiid_k.js";import{r as hn,l as xn}from"./shard-history-DMEW5VBE.js";const ut=(l,e)=>{const n=[];for(const[o,t]of Object.entries(e))for(const r of t)r.ref===l&&n.push({column:r.name,table:o});return n.sort((o,t)=>o.table.localeCompare(t.table)||o.column.localeCompare(t.column)),n},st=l=>`${l.table}.${l.column}`,vn=/([a-z\d])([A-Z])/gu,wn=/[\s_-]+/u,yn=new Set(["access_token","api_key","apikey","card_number","client_secret","credit_card","cvv","passwd","password","private_key","pwd","refresh_token","secret","ssn","token"]),Sn=l=>{const e=l.replaceAll(vn,"$1 $2").split(wn).map(o=>o.toLowerCase()).filter(o=>o.length>0),n=new Set(e);for(let o=0;o<e.length-1;o+=1){const t=e[o],r=e[o+1];t===void 0||r===void 0||(n.add(`${t}${r}`),n.add(`${t}_${r}`))}return[...n]},mt="•••",Nn=l=>{let e=2166136261;for(let n=0;n<l.length;n+=1)e^=l.codePointAt(n)??0,e=Math.imul(e,16777619);return(e>>>0).toString(16).padStart(8,"0")},St=(l,e)=>{try{return e==="redact"?null:e==="hash"?l==null?l:Nn(typeof l=="string"?l:JSON.stringify(l)):mt}catch{return mt}},Cn=(l,e)=>{const n=new Map;for(const o of l)o.table===e&&n.set(o.column,o.strategy);return n},kn=l=>{for(const e of Sn(l))if(yn.has(e))return!0;return!1},$n=(l,e)=>{const n=e.filter(t=>!l.has(t)&&kn(t));if(n.length===0)return l;const o=new Map(l);for(const t of n)o.set(t,"redact");return o},Tn=(l,e,n)=>{if(!n.enabled)return l;const o=n.columns.get(e);return o===void 0?l:St(l,o)},gt=(l,e)=>!e.enabled||e.columns.size===0?l:l.map(n=>{const o={...n};for(const[t,r]of e.columns)t in o&&(o[t]=St(o[t],r));return o}),_n=(l,e,n,o,t=300)=>{if(o<=0)return{ids:new Set(l.map(c=>c.id)),leadPx:0,tailPx:0};const r=n-t,i=n+o+t,a=new Set;let d=0,s=0,g=0;for(const c of l){const m=c.getSize(),f=e.has(c.id),b=d+m>r&&d<i;f||b?a.add(c.id):d<r?s+=m:g+=m,d+=m}return{ids:a,leadPx:s,tailPx:g}},En=(l,e)=>{const n=new Map;let o=0;for(const t of l)e.has(t.id)&&(n.set(t.id,o),o+=t.getSize());return n},Rn=()=>{const l=j(11);let e;l[0]===Symbol.for("react.memo_cache_sentinel")?(e={},l[0]=e):e=l[0];const[n,o]=D(e);let t;l[1]===Symbol.for("react.memo_cache_sentinel")?(t=(f,b,p)=>{o(w=>({...w,[f]:{...w[f],[b]:p}}))},l[1]=t):t=l[1];const r=t;let i;l[2]===Symbol.for("react.memo_cache_sentinel")?(i=()=>{o({})},l[2]=i):i=l[2];const a=i;let d;l[3]!==n?(d=(f,b)=>{const p=n[f];return p!==void 0&&b in p?{value:p[b]}:void 0},l[3]=n,l[4]=d):d=l[4];const s=d;let g;l[5]!==n?(g=Object.values(n).reduce(Dn,0),l[5]=n,l[6]=g):g=l[6];const c=g;let m;return l[7]!==c||l[8]!==n||l[9]!==s?(m={clear:a,count:c,stage:r,staged:n,stagedValue:s},l[7]=c,l[8]=n,l[9]=s,l[10]=m):m=l[10],m},Mn=(l,e)=>{if(typeof e=="number"){const n=Number(l);return l.trim()===""||Number.isNaN(n)?l:n}if(typeof e=="boolean"){if(l==="true")return!0;if(l==="false")return!1}return l},Pn=l=>{const e=j(29),{changes:n,committing:o,onCommit:t,onDiscard:r}=l,i=ce();let a;e[0]!==n.length||e[1]!==i?(a=i("{count} pending changes",{count:n.length}),e[0]=n.length,e[1]=i,e[2]=a):a=e[2];let d;e[3]!==a?(d=u("span",{className:"font-mono text-[11px] tracking-wide uppercase text-warning","data-testid":"db-staged-count",children:a}),e[3]=a,e[4]=d):d=e[4];let s;e[5]!==o||e[6]!==i?(s=i(o?"Committing…":"Commit"),e[5]=o,e[6]=i,e[7]=s):s=e[7];let g;e[8]!==o||e[9]!==t||e[10]!==s?(g=u("button",{className:"ms-auto rounded-md bg-primary px-2.5 py-1 text-xs font-medium text-primary-foreground outline-none transition-colors hover:bg-primary/90 focus-visible:bg-primary/90 disabled:pointer-events-none disabled:opacity-50","data-testid":"db-staged-commit",disabled:o,onClick:t,type:"button",children:s}),e[8]=o,e[9]=t,e[10]=s,e[11]=g):g=e[11];let c;e[12]!==i?(c=i("Discard"),e[12]=i,e[13]=c):c=e[13];let m;e[14]!==o||e[15]!==r||e[16]!==c?(m=u("button",{className:"rounded-md border border-border px-2.5 py-1 text-xs font-medium text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-50","data-testid":"db-staged-discard",disabled:o,onClick:r,type:"button",children:c}),e[14]=o,e[15]=r,e[16]=c,e[17]=m):m=e[17];let f;e[18]!==d||e[19]!==g||e[20]!==m?(f=R("div",{className:"flex flex-wrap items-center gap-2",children:[d,g,m]}),e[18]=d,e[19]=g,e[20]=m,e[21]=f):f=e[21];let b;e[22]!==n?(b=n.map(In),e[22]=n,e[23]=b):b=e[23];let p;e[24]!==b?(p=u("ul",{className:"flex flex-col gap-1","data-testid":"db-staged-list",children:b}),e[24]=b,e[25]=p):p=e[25];let w;return e[26]!==f||e[27]!==p?(w=R("div",{className:"flex flex-col gap-2 border border-warning/40 bg-warning/5 p-3","data-testid":"db-staged",children:[f,p]}),e[26]=f,e[27]=p,e[28]=w):w=e[28],w};function Dn(l,e){return l+Object.keys(e).length}function In(l){return R("li",{className:"flex flex-wrap items-center gap-2 font-mono text-xs",children:[R("span",{className:"text-muted-foreground",children:[l.rowId,".",l.column]}),u("span",{className:"text-destructive line-through",children:Pe(l.oldValue)}),u("span",{"aria-hidden":"true",className:"text-muted-foreground",children:"→"}),u("span",{className:"text-foreground",children:Pe(l.newValue)})]},`${l.rowId}:${l.column}`)}const bt=400,On=36,Fn={flex:"1 1 0%",minHeight:0,overflow:"auto",position:"relative"},zn={width:"100%"},jn={alignItems:"center",display:"flex",left:0,position:"absolute",top:0,width:"100%"},An={display:"flex",width:"100%"},ft={flex:"0 0 8.5rem",padding:"0.375rem 0.75rem"},Ln="2.5rem",Nt={alignItems:"center",display:"flex",flex:"0 0 2.5rem",justifyContent:"center",left:0,padding:"0.375rem 0",position:"sticky",zIndex:2},it=l=>({flex:"0 0 auto",overflow:"hidden",padding:"0.375rem 0.75rem",position:"relative",textOverflow:"ellipsis",whiteSpace:"nowrap",width:`${l.toString()}px`}),Ct=(l,e)=>({...it(l),left:`calc(${Ln} + ${e.toString()}px)`,position:"sticky",zIndex:2}),pt="rounded-md px-2 py-0.5 text-xs font-medium text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-50",Bn=(l,e,n)=>e.enabled&&e.columns.has(n)?void 0:l,ot="__back__:",Vn=l=>`${ot}${l.table}.${l.column}`,qn=l=>{const e=j(3),{counts:n,rowId:o}=l;if(n===void 0){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=u("span",{className:"text-muted-foreground/50",children:"—"}),e[0]=i):i=e[0],i}const t=n[o]??0;let r;return e[1]!==t?(r=u("span",{className:"tabular-nums",children:t}),e[1]=t,e[2]=r):r=e[2],r},ve=l=>{for(const e of["id","__id__","_id"]){const n=l[e];if(typeof n=="string"||typeof n=="number")return String(n)}return null},kt=(l,e)=>ve(l)??`row-${e.toString()}`,Jn=8,Kn=l=>{const e=j(16),{anchor:n,state:o}=l,t=ce();let r;e[0]!==n.left||e[1]!==n.top?(r={left:n.left,position:"fixed",top:n.top,zIndex:50},e[0]=n.left,e[1]=n.top,e[2]=r):r=e[2];const i=r;let a;if(o==="loading"){let s;e[3]!==t?(s=t("Loading…"),e[3]=t,e[4]=s):s=e[4];let g;e[5]!==s?(g=u("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:s}),e[5]=s,e[6]=g):g=e[6],a=g}else if(o.row===null){let s;e[7]!==t?(s=t("No matching row."),e[7]=t,e[8]=s):s=e[8];let g;e[9]!==s?(g=u("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:s}),e[9]=s,e[10]=g):g=e[10],a=g}else{let s;if(e[11]!==o.row){const g=Object.entries(o.row).slice(0,Jn);s=u("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 px-3 py-2",children:g.map(oo)}),e[11]=o.row,e[12]=s}else s=e[12];a=s}let d;return e[13]!==a||e[14]!==i?(d=u("div",{className:"pointer-events-none w-72 overflow-hidden rounded-md border border-border bg-popover text-popover-foreground","data-testid":"db-ref-preview",role:"tooltip",style:i,children:a}),e[13]=a,e[14]=i,e[15]=d):d=e[15],d},Gn=l=>{const e=j(22),{column:n,id:o,onNavigate:t,onPreview:r,target:i}=l,[a,d]=D(null),[s,g]=D("idle");let c;e[0]!==o||e[1]!==t||e[2]!==i?(c=()=>{t(i,o)},e[0]=o,e[1]=t,e[2]=i,e[3]=c):c=e[3];const m=c;let f;e[4]!==o||e[5]!==r||e[6]!==s||e[7]!==i?(f=P=>{const x=P.currentTarget.getBoundingClientRect();d({left:x.left,top:x.bottom+4}),s==="idle"&&(g("loading"),oe((async()=>{try{g({row:await r(i,o)})}catch{g({row:null})}})()))},e[4]=o,e[5]=r,e[6]=s,e[7]=i,e[8]=f):f=e[8];const b=f;let p;e[9]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{d(null)},e[9]=p):p=e[9];const w=p,v=`db-ref-${n}`,h=`Open ${i} ${o}`;let y;e[10]!==o||e[11]!==m||e[12]!==b||e[13]!==v||e[14]!==h?(y=R("button",{"data-testid":v,onBlur:w,onClick:m,onFocus:b,onMouseEnter:b,onMouseLeave:w,title:h,type:"button",children:[o," ↗"]}),e[10]=o,e[11]=m,e[12]=b,e[13]=v,e[14]=h,e[15]=y):y=e[15];let C;e[16]!==a||e[17]!==s?(C=a!==null&&s!=="idle"&&u(Kn,{anchor:a,state:s}),e[16]=a,e[17]=s,e[18]=C):C=e[18];let N;return e[19]!==y||e[20]!==C?(N=R(Je,{children:[y,C]}),e[19]=y,e[20]=C,e[21]=N):N=e[21],N},Hn=l=>l==="asc"?" ▲":l==="desc"?" ▼":"",Qn="absolute end-1 top-1/2 hidden -translate-y-1/2 items-center justify-center rounded text-muted-foreground outline-none group-hover/cell:flex hover:text-foreground focus-visible:flex",ht=l=>{const e=j(8),{column:n,onExpand:o,value:t}=l;let r;e[0]!==n||e[1]!==o||e[2]!==t?(r=()=>{o(n,t)},e[0]=n,e[1]=o,e[2]=t,e[3]=r):r=e[3];const i=r,a=`db-expand-${n}`;let d;e[4]===Symbol.for("react.memo_cache_sentinel")?(d=u("svg",{"aria-hidden":"true",className:"size-3",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.8,viewBox:"0 0 24 24",children:u("path",{d:"M9 21H5a2 2 0 0 1-2-2v-4m18 0v4a2 2 0 0 1-2 2h-4M3 9V5a2 2 0 0 1 2-2h4m6 0h4a2 2 0 0 1 2 2v4"})}),e[4]=d):d=e[4];let s;return e[5]!==i||e[6]!==a?(s=u("button",{"aria-label":"Expand cell",className:Qn,"data-testid":a,onClick:i,type:"button",children:d}),e[5]=i,e[6]=a,e[7]=s):s=e[7],s},Wn=l=>{const e=j(15),{column:n,initial:o,onCancel:t,onCommit:r,recordId:i}=l,a=De(null);let d,s;e[0]===Symbol.for("react.memo_cache_sentinel")?(d=()=>{a.current?.select()},s=[],e[0]=d,e[1]=s):(d=e[0],s=e[1]),$e(d,s);let g;e[2]!==t||e[3]!==r?(g=v=>{v.key==="Enter"?(v.preventDefault(),r(v.currentTarget.value)):v.key==="Escape"&&(v.preventDefault(),t())},e[2]=t,e[3]=r,e[4]=g):g=e[4];const c=g;let m;e[5]!==r?(m=v=>{r(v.currentTarget.value)},e[5]=r,e[6]=m):m=e[6];const f=m,b=`db-cell-input-${i}-${n}`;let p;e[7]!==o?(p=Pe(o),e[7]=o,e[8]=p):p=e[8];let w;return e[9]!==n||e[10]!==f||e[11]!==c||e[12]!==b||e[13]!==p?(w=u("input",{"aria-label":n,className:"w-full rounded border border-ring bg-background px-1 py-0.5 font-mono text-xs outline-none","data-testid":b,defaultValue:p,onBlur:f,onKeyDown:c,ref:a}),e[9]=n,e[10]=f,e[11]=c,e[12]=b,e[13]=p,e[14]=w):w=e[14],w},Un=l=>{const e=j(68),{cell:n,edit:o,highlight:t,mask:r,refs:i}=l,a=n.column.id;let d,s,g,c;if(e[0]!==n||e[1]!==a||e[2]!==o||e[3]!==r||e[4]!==i.columns||e[5]!==i.onNavigate||e[6]!==i.onPreview){c=Symbol.for("react.early_return_sentinel");e:{s=n.getValue(),d=ve(n.row.original);const $=i.columns?.[a];if(r.enabled&&r.columns.has(a)){const T=`db-masked-${a}`,M=u(Ze,{value:Tn(s,a,r)});let _;e[11]!==T||e[12]!==M?(_=u("span",{className:"text-muted-foreground italic","data-testid":T,title:"Masked (preview)",children:M}),e[11]=T,e[12]=M,e[13]=_):_=e[13],c=_;break e}if($!==void 0&&(typeof s=="string"||typeof s=="number")&&String(s)!==""){const T=String(s),M=`${$}:${String(s)}`;let _;e[14]!==a||e[15]!==i.onNavigate||e[16]!==i.onPreview||e[17]!==T||e[18]!==M||e[19]!==$?(_=u(Gn,{column:a,id:T,onNavigate:i.onNavigate,onPreview:i.onPreview,target:$},M),e[14]=a,e[15]=i.onNavigate,e[16]=i.onPreview,e[17]=T,e[18]=M,e[19]=$,e[20]=_):_=e[20],c=_;break e}if(d===null){let T;e[21]!==s?(T=u(Ze,{value:s}),e[21]=s,e[22]=T):T=e[22];let M;e[23]!==a||e[24]!==o.onExpandCell||e[25]!==s?(M=u(ht,{column:a,onExpand:o.onExpandCell,value:s}),e[23]=a,e[24]=o.onExpandCell,e[25]=s,e[26]=M):M=e[26];let _;e[27]!==T||e[28]!==M?(_=R(Je,{children:[T,M]}),e[27]=T,e[28]=M,e[29]=_):_=e[29],c=_;break e}g=o.stagedValue(d,a)}e[0]=n,e[1]=a,e[2]=o,e[3]=r,e[4]=i.columns,e[5]=i.onNavigate,e[6]=i.onPreview,e[7]=d,e[8]=s,e[9]=g,e[10]=c}else d=e[7],s=e[8],g=e[9],c=e[10];if(c!==Symbol.for("react.early_return_sentinel"))return c;const m=g,f=m===void 0?s:m.value;let b;e[30]!==a||e[31]!==o?(b=o.editable&&o.editableColumn(a),e[30]=a,e[31]=o,e[32]=b):b=e[32];const p=b;if(o.editingCell!==null&&o.editingCell.rowId===d&&o.editingCell.column===a){let $;e[33]!==a||e[34]!==o||e[35]!==d||e[36]!==s?($=M=>{o.stage(d,a,Mn(M,s)),o.cancelEdit()},e[33]=a,e[34]=o,e[35]=d,e[36]=s,e[37]=$):$=e[37];let T;return e[38]!==a||e[39]!==f||e[40]!==o.cancelEdit||e[41]!==d||e[42]!==$?(T=u(Wn,{column:a,initial:f,onCancel:o.cancelEdit,onCommit:$,recordId:d}),e[38]=a,e[39]=f,e[40]=o.cancelEdit,e[41]=d,e[42]=$,e[43]=T):T=e[43],T}let w;m!==void 0?w="rounded bg-warning/15 px-1":p&&(w="cursor-text");let v;e[44]!==p||e[45]!==a||e[46]!==o||e[47]!==d?(v=p?()=>{o.startEdit(d,a)}:void 0,e[44]=p,e[45]=a,e[46]=o,e[47]=d,e[48]=v):v=e[48];const h=v,y=w,C=`db-cell-${d}-${a}`;let N;e[49]!==a||e[50]!==t||e[51]!==r?(N=Bn(t,r,a),e[49]=a,e[50]=t,e[51]=r,e[52]=N):N=e[52];let P;e[53]!==f||e[54]!==N?(P=u(Ze,{highlight:N,value:f}),e[53]=f,e[54]=N,e[55]=P):P=e[55];let x;e[56]!==w||e[57]!==h||e[58]!==C||e[59]!==P?(x=u("span",{className:y,"data-testid":C,onDoubleClick:h,children:P}),e[56]=w,e[57]=h,e[58]=C,e[59]=P,e[60]=x):x=e[60];let S;e[61]!==a||e[62]!==f||e[63]!==o.onExpandCell?(S=u(ht,{column:a,onExpand:o.onExpandCell,value:f}),e[61]=a,e[62]=f,e[63]=o.onExpandCell,e[64]=S):S=e[64];let k;return e[65]!==S||e[66]!==x?(k=R(Je,{children:[x,S]}),e[65]=S,e[66]=x,e[67]=k):k=e[67],k},Zn=l=>{l.preventDefault()},Xn=({draggedRef:l,header:e,masked:n=!1,onTogglePin:o,pinnedOffset:t,table:r})=>{const i=()=>{l.current=e.column.id},a=()=>{const d=l.current,s=e.column.id;if(l.current=null,d===null||d===s)return;const g=r.getState().columnOrder,c=(g.length>0?g:r.getAllLeafColumns().map(f=>f.id)).filter(f=>f!==d),m=c.indexOf(s);c.splice(m===-1?c.length:m,0,d),r.setColumnOrder(c)};return R("th",{className:qe("group/head text-start text-xs font-medium text-muted-foreground",t!==void 0&&"border-e border-border bg-muted"),draggable:!0,onDragOver:Zn,onDragStart:i,onDrop:a,style:t===void 0?it(e.getSize()):Ct(e.getSize(),t),children:[R("button",{className:"inline-flex max-w-full cursor-grab items-center gap-1 truncate outline-none hover:text-foreground","data-testid":`db-sort-${e.column.id}`,onClick:e.column.getToggleSortingHandler(),type:"button",children:[ln(e.column.columnDef.header,e.getContext()),Hn(e.column.getIsSorted())]}),n&&u("span",{className:"ms-1 inline-flex items-center rounded-sm bg-warning/15 px-1 text-[0.625rem] font-medium uppercase text-warning","data-testid":`db-mask-chip-${e.column.id}`,title:"This column is masked by a mask() policy",children:"masked"}),u("button",{"aria-label":t===void 0?`Pin ${e.column.id}`:`Unpin ${e.column.id}`,"aria-pressed":t!==void 0,className:qe("ms-1 rounded-sm px-1 text-[0.625rem] outline-none transition-opacity hover:bg-accent focus-visible:bg-accent",t===void 0?"opacity-0 group-hover/head:opacity-100 focus-visible:opacity-100":"opacity-100 text-foreground"),"data-testid":`db-pin-${e.column.id}`,onClick:()=>{o(e.column.id)},type:"button",children:"📌"}),u("span",{"aria-hidden":"true",className:"absolute inset-y-0 end-0 w-1 cursor-col-resize touch-none select-none hover:bg-ring/60 data-[resizing=true]:bg-ring","data-resizing":e.column.getIsResizing(),"data-testid":`db-resize-${e.column.id}`,onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler()})]})},Yn=l=>{const e=j(13),{table:n}=l,o=ce();let t;e[0]!==n?(t=g=>{n.toggleAllRowsSelected(g)},e[0]=n,e[1]=t):t=e[1];const r=t;let i;e[2]!==o?(i=o("Select all rows"),e[2]=o,e[3]=i):i=e[3];let a;e[4]!==n?(a=n.getIsAllRowsSelected(),e[4]=n,e[5]=a):a=e[5];let d;e[6]!==n?(d=n.getIsSomeRowsSelected()&&!n.getIsAllRowsSelected(),e[6]=n,e[7]=d):d=e[7];let s;return e[8]!==r||e[9]!==i||e[10]!==a||e[11]!==d?(s=u("th",{className:"bg-muted",style:Nt,children:u(at,{"aria-label":i,checked:a,"data-testid":"db-select-all",indeterminate:d,onCheckedChange:r})}),e[8]=r,e[9]=i,e[10]=a,e[11]=d,e[12]=s):s=e[12],s},eo=l=>{const e=j(17),{row:n}=l,o=ce();let t;e[0]!==n.original?(t=ve(n.original),e[0]=n.original,e[1]=t):t=e[1];const r=t;let i;e[2]!==n?(i=b=>{n.toggleSelected(b)},e[2]=n,e[3]=i):i=e[3];const a=i;let d;e[4]!==o?(d=o("Select row"),e[4]=o,e[5]=d):d=e[5];let s;e[6]!==n?(s=n.getIsSelected(),e[6]=n,e[7]=s):s=e[7];let g;e[8]!==n.index||e[9]!==n.original?(g=kt(n.original,n.index),e[8]=n.index,e[9]=n.original,e[10]=g):g=e[10];const c=`db-select-${g}`,m=r===null;let f;return e[11]!==a||e[12]!==d||e[13]!==s||e[14]!==c||e[15]!==m?(f=u("td",{className:"bg-background",style:Nt,children:u(at,{"aria-label":d,checked:s,"data-testid":c,disabled:m,onCheckedChange:a})}),e[11]=a,e[12]=d,e[13]=s,e[14]=c,e[15]=m,e[16]=f):f=e[16],f},to=l=>{const e=j(70),{edit:n,editable:o,mask:t,onDelete:r,onEdit:i,onInspect:a,highlight:d,backRelationCounts:s,onTogglePin:g,pinnedColumns:c,refs:m,tableModel:f}=l,{attachScroll:b,scrollLeft:p,scrollToIndex:w,table:v,tableRows:h,tbodyStyle:y,viewportWidth:C,virtualRows:N}=f,P=De(null),[x,S]=D(null);let k;e[0]!==v?(k=v.getVisibleLeafColumns(),e[0]=v,e[1]=k):k=e[1];const $=k.length;let T;e[2]!==x||e[3]!==$||e[4]!==n||e[5]!==v||e[6]!==h?(T=be=>{if(!["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Enter"].includes(be.key))return;be.preventDefault();const Q=x??{col:0,row:0};if(be.key==="Enter"){const ie=h[Q.row],X=v.getVisibleLeafColumns()[Q.col];if(ie!==void 0&&X!==void 0){const K=ve(ie.original);K!==null&&n.editableColumn(X.id)&&n.startEdit(K,X.id)}S(Q);return}let{col:te,row:se}=Q;e:switch(be.key){case"ArrowDown":{se=Math.min(se+1,h.length-1);break e}case"ArrowRight":{te=Math.min(te+1,$-1);break e}case"ArrowUp":{se=Math.max(se-1,0);break e}default:te=Math.max(te-1,0)}S({col:te,row:se})},e[2]=x,e[3]=$,e[4]=n,e[5]=v,e[6]=h,e[7]=T):T=e[7];const M=T;let _,L;e[8]!==x||e[9]!==w?(_=()=>{x!==null&&w(x.row)},L=[x,w],e[8]=x,e[9]=w,e[10]=_,e[11]=L):(_=e[10],L=e[11]),$e(_,L);let B,F,I,V,O,z,G,H,ue,le,Z,me,re,ge;if(e[12]!==x||e[13]!==b||e[14]!==s||e[15]!==n||e[16]!==o||e[17]!==d||e[18]!==t||e[19]!==r||e[20]!==i||e[21]!==M||e[22]!==a||e[23]!==g||e[24]!==c||e[25]!==m||e[26]!==p||e[27]!==v||e[28]!==h||e[29]!==y||e[30]!==C||e[31]!==N){const be=v.getVisibleLeafColumns().map(lo),Q=_n(be,c,p,C),te=En(v.getVisibleLeafColumns().map(ro),c),se=K=>{const ye=h[K.index],{original:Se}=ye,Ne=ve(Se),xe=kt(Se,K.index),Ce={...jn,height:`${K.size.toString()}px`,transform:`translateY(${K.start.toString()}px)`};return R("tr",{className:"border-b border-border text-xs transition-colors hover:bg-muted/50","data-testid":"db-row",style:Ce,children:[u(eo,{row:ye}),Q.leadPx>0&&u("td",{"aria-hidden":"true",style:{flex:`0 0 ${Q.leadPx.toString()}px`}}),ye.getVisibleCells().map((ne,Ie)=>{if(!Q.ids.has(ne.column.id))return null;const Te=te.get(ne.column.id),Oe=x!==null&&x.row===K.index&&x.col===Ie?" ring-1 ring-ring ring-inset":"";return u("td",{className:qe("group/cell truncate font-mono text-muted-foreground",Te!==void 0&&"border-e border-border bg-background",Oe),style:Te===void 0?it(ne.column.getSize()):Ct(ne.column.getSize(),Te),children:ne.column.id.startsWith(ot)?u(qn,{counts:s[ne.column.id.slice(ot.length)],rowId:xe}):u(Un,{cell:ne,edit:n,highlight:d,mask:t,refs:m})},ne.id)}),Q.tailPx>0&&u("td",{"aria-hidden":"true",style:{flex:`0 0 ${Q.tailPx.toString()}px`}}),R("td",{className:"flex items-center gap-1",style:ft,children:[u("button",{className:pt,"data-testid":`db-inspect-${xe}`,onClick:()=>{a(Se)},type:"button",children:"Details"}),o&&R(Je,{children:[u("button",{className:pt,"data-testid":`db-edit-${xe}`,disabled:Ne===null,onClick:()=>{i(Ne,Se)},type:"button",children:"Edit"}),u(nt,{confirmLabel:"Delete?",disabled:Ne===null,onConfirm:()=>{r(Ne)},testId:`db-delete-${xe}`,children:"Delete"})]})]})]},ye.id)};B=sn,ue="fill",I="db-scroll",V=M,O=b,z="grid",G=Fn,H=0,me="w-full text-xs",re="db-rows",ge=zn;let ie;e[46]!==v?(ie=u(Yn,{table:v}),e[46]=v,e[47]=ie):ie=e[47];let X;e[48]===Symbol.for("react.memo_cache_sentinel")?(X=u("th",{"aria-label":"Row actions",style:ft}),e[48]=X):X=e[48],F=u("thead",{className:"bg-muted/50",children:R("tr",{className:"border-b border-border",style:An,children:[ie,Q.leadPx>0&&u("th",{"aria-hidden":"true",style:{flex:`0 0 ${Q.leadPx.toString()}px`}}),v.getFlatHeaders().map(K=>Q.ids.has(K.column.id)?u(Xn,{draggedRef:P,header:K,masked:t.columns.has(K.column.id),onTogglePin:g,pinnedOffset:te.get(K.column.id),table:v},K.id):null),Q.tailPx>0&&u("th",{"aria-hidden":"true",style:{flex:`0 0 ${Q.tailPx.toString()}px`}}),X]})}),le=y,Z=N.map(K=>se(K)),e[12]=x,e[13]=b,e[14]=s,e[15]=n,e[16]=o,e[17]=d,e[18]=t,e[19]=r,e[20]=i,e[21]=M,e[22]=a,e[23]=g,e[24]=c,e[25]=m,e[26]=p,e[27]=v,e[28]=h,e[29]=y,e[30]=C,e[31]=N,e[32]=B,e[33]=F,e[34]=I,e[35]=V,e[36]=O,e[37]=z,e[38]=G,e[39]=H,e[40]=ue,e[41]=le,e[42]=Z,e[43]=me,e[44]=re,e[45]=ge}else B=e[32],F=e[33],I=e[34],V=e[35],O=e[36],z=e[37],G=e[38],H=e[39],ue=e[40],le=e[41],Z=e[42],me=e[43],re=e[44],ge=e[45];let ae;e[49]!==le||e[50]!==Z?(ae=u("tbody",{style:le,children:Z}),e[49]=le,e[50]=Z,e[51]=ae):ae=e[51];let W;e[52]!==F||e[53]!==ae||e[54]!==me||e[55]!==re||e[56]!==ge?(W=R("table",{className:me,"data-testid":re,style:ge,children:[F,ae]}),e[52]=F,e[53]=ae,e[54]=me,e[55]=re,e[56]=ge,e[57]=W):W=e[57];let q;e[58]!==I||e[59]!==V||e[60]!==O||e[61]!==z||e[62]!==G||e[63]!==H||e[64]!==W?(q=u("div",{"data-testid":I,onKeyDown:V,ref:O,role:z,style:G,tabIndex:H,children:W}),e[58]=I,e[59]=V,e[60]=O,e[61]=z,e[62]=G,e[63]=H,e[64]=W,e[65]=q):q=e[65];let we;return e[66]!==B||e[67]!==ue||e[68]!==q?(we=u(B,{layout:ue,children:q}),e[66]=B,e[67]=ue,e[68]=q,e[69]=we):we=e[69],we},no=(l,e,n,o=[])=>{const t=l?.columns,r=l?.rows,i=l?.refs,a=et(()=>{if(t===void 0)return[];const x=t.map(S=>({accessorFn:k=>k[S],header:i?.[S]===void 0?S:`${S} →`,id:S}));for(const S of o)x.push({accessorFn:()=>{},enableSorting:!1,header:`← ${S.table}`,id:Vn(S)});return x},[o,t,i]),d=et(()=>r??[],[r]),[s,g]=D({}),[c,m]=D({}),f=tn({columnResizeMode:"onChange",columns:a,data:d,defaultColumn:{minSize:80,size:200},enableColumnResizing:!0,enableRowSelection:x=>ve(x.original)!==null,getCoreRowModel:on(),getRowId:(x,S)=>ve(x)??`row-${S.toString()}`,getSortedRowModel:nn(),manualSorting:!0,onColumnVisibilityChange:m,onRowSelectionChange:g,onSortingChange:n,state:{columnVisibility:c,rowSelection:s,sorting:e}}),b=f.getRowModel().rows,p=De(null),w=rn({count:b.length,estimateSize:()=>On,getScrollElement:()=>p.current,initialRect:{height:bt,width:0},observeElementRect:(x,S)=>an(x,S,bt),overscan:8}),v=tt(x=>{w.scrollToIndex(x)},[w]),[h,y]=D({left:0,width:0}),C=tt(x=>{if(p.current=x,x===null)return;const S=()=>{y($=>$.left===x.scrollLeft&&$.width===x.clientWidth?$:{left:x.scrollLeft,width:x.clientWidth})};x.addEventListener("scroll",S,{passive:!0});const k=new ResizeObserver(S);return k.observe(x),()=>{x.removeEventListener("scroll",S),k.disconnect(),p.current=null}},[]),N=w.getVirtualItems(),P={display:"block",height:`${w.getTotalSize().toString()}px`,position:"relative"};return{attachScroll:C,scrollLeft:h.left,scrollToIndex:v,table:f,tableRows:b,tbodyStyle:P,viewportWidth:h.width,virtualRows:N}};function oo(l){const[e,n]=l;return R("div",{className:"contents",children:[u("dt",{className:"truncate font-mono text-[11px] text-muted-foreground",children:e}),u("dd",{className:"truncate font-mono text-[11px] text-foreground",title:Pe(n),children:Pe(n)})]},e)}function lo(l){return{getSize:()=>l.getSize(),id:l.id}}function ro(l){return{getSize:()=>l.getSize(),id:l.id}}const lt="inline-flex items-center gap-1 rounded-md border border-border px-2.5 py-1 text-xs font-medium text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-50",ao=l=>{const e=j(22),{onCommit:n}=l,o=ce(),[t,r]=D(""),i=De(null);let a,d;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=()=>{i.current?.focus()},d=[],e[0]=a,e[1]=d):(a=e[0],d=e[1]),$e(a,d);let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=y=>{r(y.target.value)},e[2]=s):s=e[2];const g=s;let c;e[3]!==t||e[4]!==n?(c=()=>{const y=t.trim();y!==""&&n(y)},e[3]=t,e[4]=n,e[5]=c):c=e[5];const m=c;let f;e[6]!==o?(f=o("Query name"),e[6]=o,e[7]=f):f=e[7];let b;e[8]!==o?(b=o("Query name"),e[8]=o,e[9]=b):b=e[9];let p;e[10]!==t||e[11]!==f||e[12]!==b?(p=u("input",{"aria-label":f,className:"h-7 rounded-md border border-border bg-background px-2 text-xs outline-none focus-visible:border-ring","data-testid":"db-save-query-name",onChange:g,placeholder:b,ref:i,value:t}),e[10]=t,e[11]=f,e[12]=b,e[13]=p):p=e[13];let w;e[14]!==o?(w=o("Save"),e[14]=o,e[15]=w):w=e[15];let v;e[16]!==m||e[17]!==w?(v=u("button",{className:lt,"data-testid":"db-save-query-confirm",onClick:m,type:"button",children:w}),e[16]=m,e[17]=w,e[18]=v):v=e[18];let h;return e[19]!==p||e[20]!==v?(h=R("span",{className:"inline-flex items-center gap-1",children:[p,v]}),e[19]=p,e[20]=v,e[21]=h):h=e[21],h},so=l=>{const e=j(27),{onApply:n,onCopyLink:o,onDelete:t,onSave:r,saved:i}=l,a=ce(),[d,s]=D(!1);let g;e[0]===Symbol.for("react.memo_cache_sentinel")?(g=()=>{s(!0)},e[0]=g):g=e[0];const c=g;let m;e[1]!==r?(m=x=>{r(x),s(!1)},e[1]=r,e[2]=m):m=e[2];const f=m;let b;e[3]!==n||e[4]!==i?(b=x=>{const S=i[Number(x.currentTarget.dataset.index)];S!==void 0&&n(S)},e[3]=n,e[4]=i,e[5]=b):b=e[5];const p=b;let w;e[6]!==t||e[7]!==i?(w=x=>{const S=i[Number(x.currentTarget.dataset.index)];S!==void 0&&t(S.name)},e[6]=t,e[7]=i,e[8]=w):w=e[8];const v=w;let h;e[9]!==a?(h=a("Copy link"),e[9]=a,e[10]=h):h=e[10];let y;e[11]!==o||e[12]!==h?(y=u("button",{className:lt,"data-testid":"db-copy-link",onClick:o,type:"button",children:h}),e[11]=o,e[12]=h,e[13]=y):y=e[13];let C;e[14]!==f||e[15]!==d||e[16]!==a?(C=d?u(ao,{onCommit:f}):u("button",{className:lt,"data-testid":"db-save-query",onClick:c,type:"button",children:a("Save query")}),e[14]=f,e[15]=d,e[16]=a,e[17]=C):C=e[17];let N;e[18]!==p||e[19]!==v||e[20]!==i||e[21]!==a?(N=i.length>0&&R("div",{className:"flex flex-wrap items-center gap-1","data-testid":"db-saved-queries",children:[u("span",{className:"font-mono text-[11px] tracking-wide uppercase text-muted-foreground",children:a("Saved")}),i.map((x,S)=>R("span",{className:"inline-flex items-center overflow-hidden rounded-md border border-border",children:[u("button",{className:"px-2 py-0.5 text-xs text-foreground transition-colors hover:bg-accent","data-index":S,"data-testid":`db-saved-query-${x.name}`,onClick:p,type:"button",children:x.name}),u("button",{"aria-label":a("Delete saved query {name}",{name:x.name}),className:"border-l border-border px-1 py-0.5 text-xs text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive","data-index":S,"data-testid":`db-saved-query-delete-${x.name}`,onClick:v,type:"button",children:"✕"})]},x.name))]}),e[18]=p,e[19]=v,e[20]=i,e[21]=a,e[22]=N):N=e[22];let P;return e[23]!==y||e[24]!==C||e[25]!==N?(P=R("div",{className:"flex flex-wrap items-center gap-1.5","data-testid":"db-query-bar",children:[y,C,N]}),e[23]=y,e[24]=C,e[25]=N,e[26]=P):P=e[26],P},Ve="inline-flex items-center gap-1 rounded-md border border-border px-2.5 py-1 text-xs font-medium text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent aria-pressed:bg-accent aria-pressed:text-accent-foreground disabled:pointer-events-none disabled:opacity-50",Ge="w-full rounded-md border border-border bg-background px-2 py-1 font-mono text-xs outline-none focus-visible:border-ring",io=/(?:_creationtime|(?:^|[a-z])(?:time|at))$/iu,co=(l,e)=>typeof e=="boolean"?"boolean":typeof e=="number"?io.test(l)?"date":"number":e!==null&&typeof e=="object"?"json":"text",uo=l=>{try{const e=JSON.parse(l);return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}catch{return null}},mo=l=>{const e=new Date(l),n=o=>String(o).padStart(2,"0");return`${e.getFullYear().toString()}-${n(e.getMonth()+1)}-${n(e.getDate())}T${n(e.getHours())}:${n(e.getMinutes())}`},go=l=>{const e=j(8),{column:n,onChange:o,value:t}=l;let r;e[0]!==n||e[1]!==o?(r=g=>{o(n,g)},e[0]=n,e[1]=o,e[2]=r):r=e[2];const i=r,a=t===!0,d=`db-field-${n}`;let s;return e[3]!==n||e[4]!==i||e[5]!==a||e[6]!==d?(s=u(at,{"aria-label":n,checked:a,"data-testid":d,onCheckedChange:i}),e[3]=n,e[4]=i,e[5]=a,e[6]=d,e[7]=s):s=e[7],s},bo=l=>{const e=j(8),{column:n,onChange:o,value:t}=l;let r;e[0]!==n||e[1]!==o?(r=g=>{const c=Number(g.target.value);g.target.value!==""&&!Number.isNaN(c)&&o(n,c)},e[0]=n,e[1]=o,e[2]=r):r=e[2];const i=r,a=`db-field-${n}`,d=typeof t=="number"?t:"";let s;return e[3]!==n||e[4]!==i||e[5]!==a||e[6]!==d?(s=u("input",{"aria-label":n,className:Ge,"data-testid":a,onChange:i,type:"number",value:d}),e[3]=n,e[4]=i,e[5]=a,e[6]=d,e[7]=s):s=e[7],s},fo=l=>{const e=j(10),{column:n,onChange:o,value:t}=l;let r;e[0]!==n||e[1]!==o?(r=g=>{const c=new Date(g.target.value).getTime();Number.isNaN(c)||o(n,c)},e[0]=n,e[1]=o,e[2]=r):r=e[2];const i=r,a=`db-field-${n}`;let d;e[3]!==t?(d=typeof t=="number"?mo(t):"",e[3]=t,e[4]=d):d=e[4];let s;return e[5]!==n||e[6]!==i||e[7]!==a||e[8]!==d?(s=u("input",{"aria-label":n,className:Ge,"data-testid":a,onChange:i,type:"datetime-local",value:d}),e[5]=n,e[6]=i,e[7]=a,e[8]=d,e[9]=s):s=e[9],s},po=l=>{const e=j(8),{column:n,onChange:o,value:t}=l;let r;e[0]!==n||e[1]!==o?(r=g=>{o(n,g.target.value)},e[0]=n,e[1]=o,e[2]=r):r=e[2];const i=r,a=`db-field-${n}`,d=typeof t=="string"?t:"";let s;return e[3]!==n||e[4]!==i||e[5]!==a||e[6]!==d?(s=u("input",{"aria-label":n,className:Ge,"data-testid":a,onChange:i,type:"text",value:d}),e[3]=n,e[4]=i,e[5]=a,e[6]=d,e[7]=s):s=e[7],s},ho=l=>{const e=j(20),{column:n,onChange:o,value:t}=l,r=ce();let i;e[0]!==t?(i=()=>JSON.stringify(t,null,2),e[0]=t,e[1]=i):i=e[1];const[a,d]=D(i),[s,g]=D(!1);let c;e[2]!==n||e[3]!==o?(c=y=>{const C=y.target.value;d(C);try{o(n,JSON.parse(C)),g(!1)}catch{g(!0)}},e[2]=n,e[3]=o,e[4]=c):c=e[4];const m=c,f=s&&"border-destructive";let b;e[5]!==f?(b=qe(Ge,"min-h-16",f),e[5]=f,e[6]=b):b=e[6];const p=`db-field-${n}`;let w;e[7]!==n||e[8]!==m||e[9]!==b||e[10]!==p||e[11]!==a?(w=u("textarea",{"aria-label":n,className:b,"data-testid":p,onChange:m,value:a}),e[7]=n,e[8]=m,e[9]=b,e[10]=p,e[11]=a,e[12]=w):w=e[12];let v;e[13]!==n||e[14]!==s||e[15]!==r?(v=s&&u("span",{className:"text-xs text-destructive","data-testid":`db-field-error-${n}`,children:r("Invalid JSON")}),e[13]=n,e[14]=s,e[15]=r,e[16]=v):v=e[16];let h;return e[17]!==w||e[18]!==v?(h=R("div",{className:"flex flex-col gap-1",children:[w,v]}),e[17]=w,e[18]=v,e[19]=h):h=e[19],h},xo=l=>{const e=j(43),{column:n,onChange:o,target:t,value:r}=l;let i;e[0]!==n||e[1]!==r?(i=co(n,r),e[0]=n,e[1]=r,e[2]=i):i=e[2];const a=i,d=`db-field-${n}`;let s;e[3]!==n?(s=u("span",{className:"font-mono",children:n}),e[3]=n,e[4]=s):s=e[4];let g;e[5]!==t?(g=t!==void 0&&R("span",{className:"rounded bg-muted px-1 font-mono text-[10px] tracking-wide uppercase",children:["→ ",t]}),e[5]=t,e[6]=g):g=e[6];let c;e[7]!==s||e[8]!==g?(c=R("span",{className:"flex items-center gap-1.5 font-medium text-muted-foreground",children:[s,g]}),e[7]=s,e[8]=g,e[9]=c):c=e[9];let m;e[10]!==n||e[11]!==a||e[12]!==o||e[13]!==r?(m=a==="boolean"&&u(go,{column:n,onChange:o,value:r}),e[10]=n,e[11]=a,e[12]=o,e[13]=r,e[14]=m):m=e[14];let f;e[15]!==n||e[16]!==a||e[17]!==o||e[18]!==r?(f=a==="number"&&u(bo,{column:n,onChange:o,value:r}),e[15]=n,e[16]=a,e[17]=o,e[18]=r,e[19]=f):f=e[19];let b;e[20]!==n||e[21]!==a||e[22]!==o||e[23]!==r?(b=a==="date"&&u(fo,{column:n,onChange:o,value:r}),e[20]=n,e[21]=a,e[22]=o,e[23]=r,e[24]=b):b=e[24];let p;e[25]!==n||e[26]!==a||e[27]!==o||e[28]!==r?(p=a==="json"&&u(ho,{column:n,onChange:o,value:r}),e[25]=n,e[26]=a,e[27]=o,e[28]=r,e[29]=p):p=e[29];let w;e[30]!==n||e[31]!==a||e[32]!==o||e[33]!==r?(w=a==="text"&&u(po,{column:n,onChange:o,value:r}),e[30]=n,e[31]=a,e[32]=o,e[33]=r,e[34]=w):w=e[34];let v;return e[35]!==w||e[36]!==d||e[37]!==c||e[38]!==m||e[39]!==f||e[40]!==b||e[41]!==p?(v=R("label",{className:"flex flex-col gap-1 text-xs",htmlFor:d,children:[c,m,f,b,p,w]}),e[35]=w,e[36]=d,e[37]=c,e[38]=m,e[39]=f,e[40]=b,e[41]=p,e[42]=v):v=e[42],v},vo=l=>{const e=j(48),{documentText:n,onCancel:o,onDocumentTextChange:t,onSave:r,refs:i}=l,a=ce();let d;e[0]!==n?(d=uo(n),e[0]=n,e[1]=d):d=e[1];const s=d,[g,c]=D(!1),m=!g&&s!==null;let f;e[2]!==s||e[3]!==t?(f=(O,z)=>{t(JSON.stringify({...s,[O]:z},null,2))},e[2]=s,e[3]=t,e[4]=f):f=e[4];const b=f;let p;e[5]!==t?(p=O=>{t(O.target.value)},e[5]=t,e[6]=p):p=e[6];const w=p;let v;e[7]===Symbol.for("react.memo_cache_sentinel")?(v=()=>{c(!1)},e[7]=v):v=e[7];const h=v;let y;e[8]===Symbol.for("react.memo_cache_sentinel")?(y=()=>{c(!0)},e[8]=y):y=e[8];const C=y,N=s===null;let P;e[9]!==a?(P=a("Form"),e[9]=a,e[10]=P):P=e[10];let x;e[11]!==m||e[12]!==N||e[13]!==P?(x=u("button",{"aria-pressed":m,className:Ve,"data-testid":"db-editor-form",disabled:N,onClick:h,type:"button",children:P}),e[11]=m,e[12]=N,e[13]=P,e[14]=x):x=e[14];const S=!m;let k;e[15]!==a?(k=a("JSON"),e[15]=a,e[16]=k):k=e[16];let $;e[17]!==k||e[18]!==S?($=u("button",{"aria-pressed":S,className:Ve,"data-testid":"db-editor-json",onClick:C,type:"button",children:k}),e[17]=k,e[18]=S,e[19]=$):$=e[19];let T;e[20]!==$||e[21]!==x?(T=R("div",{className:"flex items-center gap-1.5",children:[x,$]}),e[20]=$,e[21]=x,e[22]=T):T=e[22];let M;e[23]!==n||e[24]!==s||e[25]!==b||e[26]!==w||e[27]!==i||e[28]!==m||e[29]!==a?(M=m?u("div",{className:"flex flex-col gap-3","data-testid":"db-editor-fields",children:Object.entries(s).map(O=>{const[z,G]=O;return u(xo,{column:z,onChange:b,target:i?.[z],value:G},z)})}):u("textarea",{"aria-label":a("Row document JSON"),className:"min-h-28 w-full rounded-md border border-border bg-background px-2 py-1.5 font-mono text-xs outline-none focus-visible:border-ring","data-testid":"db-editor-doc",onChange:w,value:n}),e[23]=n,e[24]=s,e[25]=b,e[26]=w,e[27]=i,e[28]=m,e[29]=a,e[30]=M):M=e[30];let _;e[31]!==a?(_=a("Save"),e[31]=a,e[32]=_):_=e[32];let L;e[33]!==r||e[34]!==_?(L=u("button",{className:Ve,"data-testid":"db-editor-save",onClick:r,type:"button",children:_}),e[33]=r,e[34]=_,e[35]=L):L=e[35];let B;e[36]!==a?(B=a("Cancel"),e[36]=a,e[37]=B):B=e[37];let F;e[38]!==o||e[39]!==B?(F=u("button",{className:Ve,"data-testid":"db-editor-cancel",onClick:o,type:"button",children:B}),e[38]=o,e[39]=B,e[40]=F):F=e[40];let I;e[41]!==L||e[42]!==F?(I=R("div",{className:"flex items-center gap-1.5",children:[L,F]}),e[41]=L,e[42]=F,e[43]=I):I=e[43];let V;return e[44]!==T||e[45]!==M||e[46]!==I?(V=R("div",{className:"flex flex-col gap-2 border border-border bg-card p-3","data-testid":"db-editor",children:[T,M,I]}),e[44]=T,e[45]=M,e[46]=I,e[47]=V):V=e[47],V},ze="inline-flex items-center gap-1 rounded-md border border-border px-2.5 py-1 text-xs font-medium text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-50 aria-pressed:bg-accent aria-pressed:text-accent-foreground",wo=l=>{const e=j(61),{columns:n,editable:o,filter:t,filters:r,hasMaskedColumns:i,liveError:a,maskOn:d,onAddRow:s,onBulkDelete:g,onAskAiFilter:c,onClearTable:m,onFilterChange:f,onFiltersChange:b,onGenerateRows:p,onShowJson:w,onShowTable:v,onToggleMask:h,total:y,viewMode:C}=l,N=ce(),P=C==="table";let x;e[0]!==v||e[1]!==P?(x=u("button",{"aria-pressed":P,className:ze,"data-testid":"db-view-table",onClick:v,type:"button",children:"Table"}),e[0]=v,e[1]=P,e[2]=x):x=e[2];const S=C==="json";let k;e[3]!==w||e[4]!==S?(k=u("button",{"aria-pressed":S,className:ze,"data-testid":"db-view-json",onClick:w,type:"button",children:"JSON"}),e[3]=w,e[4]=S,e[5]=k):k=e[5];let $;e[6]!==a||e[7]!==N?($=a===void 0?N("Live — changes stream in automatically"):N("Live unavailable: {liveError}",{liveError:a}),e[6]=a,e[7]=N,e[8]=$):$=e[8];const T=`size-1.5 rounded-full ${a===void 0?"bg-success":"bg-muted-foreground/50"}`;let M;e[9]!==T?(M=u("span",{"aria-hidden":"true",className:T}),e[9]=T,e[10]=M):M=e[10];let _;e[11]!==a||e[12]!==N?(_=N(a===void 0?"Live":"Live unavailable"),e[11]=a,e[12]=N,e[13]=_):_=e[13];let L;e[14]!==$||e[15]!==M||e[16]!==_?(L=R("span",{className:"inline-flex items-center gap-1.5 px-1 text-xs font-medium text-muted-foreground","data-testid":"db-live-indicator",role:"status",title:$,children:[M,_]}),e[14]=$,e[15]=M,e[16]=_,e[17]=L):L=e[17];let B;e[18]!==i||e[19]!==d||e[20]!==h||e[21]!==N?(B=i&&u("button",{"aria-pressed":d,className:ze,"data-testid":"db-mask-toggle",onClick:h,type:"button",children:N("Mask sensitive columns")}),e[18]=i,e[19]=d,e[20]=h,e[21]=N,e[22]=B):B=e[22];let F;e[23]!==o||e[24]!==s?(F=o&&u("button",{className:ze,"data-testid":"db-add-row",onClick:s,type:"button",children:"Add row"}),e[23]=o,e[24]=s,e[25]=F):F=e[25];let I;e[26]!==o||e[27]!==p||e[28]!==N?(I=o&&u("button",{className:ze,"data-testid":"db-generate-rows",onClick:p,type:"button",children:N("Generate rows")}),e[26]=o,e[27]=p,e[28]=N,e[29]=I):I=e[29];let V;e[30]!==o||e[31]!==t||e[32]!==r||e[33]!==g||e[34]!==y?(V=o&&y>0&&(t!==""||r.length>0)&&u(nt,{confirmLabel:`Delete ${y.toString()} matching?`,onConfirm:g,testId:"db-bulk-delete",children:`Delete ${y.toString()} matching`}),e[30]=o,e[31]=t,e[32]=r,e[33]=g,e[34]=y,e[35]=V):V=e[35];let O;e[36]!==o||e[37]!==t||e[38]!==r||e[39]!==m||e[40]!==y?(O=o&&y>0&&t===""&&r.length===0&&u(nt,{confirmLabel:`Clear all ${y.toString()} rows?`,onConfirm:m,testId:"db-clear-table",children:`Clear table (${y.toString()})`}),e[36]=o,e[37]=t,e[38]=r,e[39]=m,e[40]=y,e[41]=O):O=e[41];let z;e[42]!==B||e[43]!==F||e[44]!==I||e[45]!==V||e[46]!==O||e[47]!==x||e[48]!==k||e[49]!==L?(z=R("div",{className:"flex flex-wrap items-center gap-1.5",children:[x,k,L,B,F,I,V,O]}),e[42]=B,e[43]=F,e[44]=I,e[45]=V,e[46]=O,e[47]=x,e[48]=k,e[49]=L,e[50]=z):z=e[50];let G;e[51]!==n||e[52]!==t||e[53]!==r||e[54]!==c||e[55]!==f||e[56]!==b?(G=u(cn,{columns:n,filters:r,onAskAi:c,onFiltersChange:b,onSearchChange:f,search:t}),e[51]=n,e[52]=t,e[53]=r,e[54]=c,e[55]=f,e[56]=b,e[57]=G):G=e[57];let H;return e[58]!==z||e[59]!==G?(H=R("div",{className:"flex flex-col gap-2","data-testid":"db-view-toggle",children:[z,G]}),e[58]=z,e[59]=G,e[60]=H):H=e[60],H},yo=l=>{const e=j(101),{assistant:n,backRelations:o,browser:t,edit:r,editable:i,onAskAiFilter:a,onInspect:d,onOpenGenerateRows:s,onSaveQuery:g,page:c,preferences:m,queryBar:f,references:b}=l,p=m.maskColumns.size>0,w=n.unavailable?void 0:a;let v;e[0]!==t.addRow||e[1]!==t.bulkDelete||e[2]!==t.clearTable||e[3]!==t.columns||e[4]!==t.filter||e[5]!==t.filters||e[6]!==t.liveError||e[7]!==t.onFilterChange||e[8]!==t.onFiltersChange||e[9]!==t.showJson||e[10]!==t.showTable||e[11]!==t.total||e[12]!==t.viewMode||e[13]!==i||e[14]!==s||e[15]!==m.maskOn||e[16]!==m.onToggleMask||e[17]!==p||e[18]!==w?(v=u(wo,{columns:t.columns,editable:i,filter:t.filter,filters:t.filters,hasMaskedColumns:p,liveError:t.liveError,maskOn:m.maskOn,onAddRow:t.addRow,onAskAiFilter:w,onBulkDelete:t.bulkDelete,onClearTable:t.clearTable,onFilterChange:t.onFilterChange,onFiltersChange:t.onFiltersChange,onGenerateRows:s,onShowJson:t.showJson,onShowTable:t.showTable,onToggleMask:m.onToggleMask,total:t.total,viewMode:t.viewMode}),e[0]=t.addRow,e[1]=t.bulkDelete,e[2]=t.clearTable,e[3]=t.columns,e[4]=t.filter,e[5]=t.filters,e[6]=t.liveError,e[7]=t.onFilterChange,e[8]=t.onFiltersChange,e[9]=t.showJson,e[10]=t.showTable,e[11]=t.total,e[12]=t.viewMode,e[13]=i,e[14]=s,e[15]=m.maskOn,e[16]=m.onToggleMask,e[17]=p,e[18]=w,e[19]=v):v=e[19];let h;e[20]!==g||e[21]!==f?(h=f!==void 0&&u(so,{onApply:f.onApplyQuery,onCopyLink:f.onCopyLink,onDelete:f.onDeleteQuery,onSave:g,saved:f.saved}),e[20]=g,e[21]=f,e[22]=h):h=e[22];let y;e[23]!==o||e[24]!==t.onBulkDeleteSelected||e[25]!==t.selectedTable||e[26]!==t.table||e[27]!==t.viewMode||e[28]!==i||e[29]!==c||e[30]!==m.onToggleTranspose||e[31]!==m.transposed?(y=t.viewMode==="table"&&c.rows.length>0&&u(un,{backRelations:o.available,columns:c.columns,editable:i,enabledBackRelations:o.enabled,name:t.selectedTable??"export",onBulkDelete:t.onBulkDeleteSelected,onToggleBackRelation:o.onToggle,onToggleTranspose:m.onToggleTranspose,rows:c.rows,table:t.table.table,transposed:m.transposed}),e[23]=o,e[24]=t.onBulkDeleteSelected,e[25]=t.selectedTable,e[26]=t.table,e[27]=t.viewMode,e[28]=i,e[29]=c,e[30]=m.onToggleTranspose,e[31]=m.transposed,e[32]=y):y=e[32];let C;e[33]!==t.cancelEdit||e[34]!==t.editing||e[35]!==t.saveEdit||e[36]!==t.setEditorDocumentText||e[37]!==i||e[38]!==c?(C=i&&t.editing!==null&&u(vo,{documentText:t.editing.docText,onCancel:t.cancelEdit,onDocumentTextChange:t.setEditorDocumentText,onSave:t.saveEdit,refs:c.refs}),e[33]=t.cancelEdit,e[34]=t.editing,e[35]=t.saveEdit,e[36]=t.setEditorDocumentText,e[37]=i,e[38]=c,e[39]=C):C=e[39];let N;e[40]!==t.committing||e[41]!==t.discardStaged||e[42]!==t.onCommitStaged||e[43]!==t.stagedChanges||e[44]!==i?(N=i&&t.stagedChanges.length>0&&u(Pn,{changes:t.stagedChanges,committing:t.committing,onCommit:t.onCommitStaged,onDiscard:t.discardStaged}),e[40]=t.committing,e[41]=t.discardStaged,e[42]=t.onCommitStaged,e[43]=t.stagedChanges,e[44]=i,e[45]=N):N=e[45];let P;e[46]!==t.writeError?(P=t.writeError!==null&&u("p",{className:"text-sm text-destructive","data-testid":"db-write-error",role:"alert",children:t.writeError}),e[46]=t.writeError,e[47]=P):P=e[47];let x;e[48]!==v||e[49]!==h||e[50]!==y||e[51]!==C||e[52]!==N||e[53]!==P?(x=R("div",{className:"flex shrink-0 flex-col gap-2 border-b border-border px-4 py-3",children:[v,h,y,C,N,P]}),e[48]=v,e[49]=h,e[50]=y,e[51]=C,e[52]=N,e[53]=P,e[54]=x):x=e[54];let S;e[55]!==t.viewMode||e[56]!==c?(S=t.viewMode==="table"&&c.rows.length===0&&u("div",{className:"flex flex-1 items-center justify-center p-6",children:u(en,{description:"Rows you insert into this table will show up here.",icon:u("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:u("path",{d:"M4 5h16v14H4V5Zm0 5h16M10 10v9M4 14.5h16"})}),testId:"db-empty-rows",title:"This table is empty."})}),e[55]=t.viewMode,e[56]=c,e[57]=S):S=e[57];let k;e[58]!==t.viewMode||e[59]!==c||e[60]!==m.maskView||e[61]!==m.transposed?(k=t.viewMode==="table"&&c.rows.length>0&&m.transposed&&u(dn,{columns:c.columns,rows:gt(c.rows,m.maskView)}),e[58]=t.viewMode,e[59]=c,e[60]=m.maskView,e[61]=m.transposed,e[62]=k):k=e[62];let $;e[63]!==o||e[64]!==t.filter||e[65]!==t.onRowDelete||e[66]!==t.onRowEdit||e[67]!==t.table||e[68]!==t.viewMode||e[69]!==r||e[70]!==i||e[71]!==d||e[72]!==c||e[73]!==m.maskView||e[74]!==m.onTogglePin||e[75]!==m.pinnedColumns||e[76]!==m.transposed||e[77]!==b?($=t.viewMode==="table"&&c.rows.length>0&&!m.transposed&&u(to,{backRelationCounts:o.counts,edit:r,editable:i,highlight:t.filter,mask:m.maskView,onDelete:t.onRowDelete,onEdit:t.onRowEdit,onInspect:d,onTogglePin:m.onTogglePin,pinnedColumns:m.pinnedColumns,refs:b,tableModel:t.table}),e[63]=o,e[64]=t.filter,e[65]=t.onRowDelete,e[66]=t.onRowEdit,e[67]=t.table,e[68]=t.viewMode,e[69]=r,e[70]=i,e[71]=d,e[72]=c,e[73]=m.maskView,e[74]=m.onTogglePin,e[75]=m.pinnedColumns,e[76]=m.transposed,e[77]=b,e[78]=$):$=e[78];let T;e[79]!==t.viewMode||e[80]!==c||e[81]!==m.maskView?(T=t.viewMode==="json"&&u("pre",{className:"min-h-0 flex-1 overflow-auto border-t border-border bg-muted/30 p-3 text-xs","data-testid":"db-json",children:JSON.stringify(gt(c.rows,m.maskView),null,2)}),e[79]=t.viewMode,e[80]=c,e[81]=m.maskView,e[82]=T):T=e[82];let M;e[83]!==t.changePageSize||e[84]!==t.goNext||e[85]!==t.goPrevious||e[86]!==t.hasNext||e[87]!==t.hasPrevious||e[88]!==t.jumpToPage||e[89]!==t.pageSize||e[90]!==t.rangeEnd||e[91]!==t.rangeStart||e[92]!==t.total?(M=u("div",{className:"flex shrink-0 items-center border-t border-border px-4 py-2",children:u(gn,{hasNext:t.hasNext,hasPrevious:t.hasPrevious,onJumpToPage:t.jumpToPage,onNext:t.goNext,onPageSizeChange:t.changePageSize,onPrevious:t.goPrevious,pageSize:t.pageSize,prefix:"db",rangeEnd:t.rangeEnd,rangeStart:t.rangeStart,total:t.total})}),e[83]=t.changePageSize,e[84]=t.goNext,e[85]=t.goPrevious,e[86]=t.hasNext,e[87]=t.hasPrevious,e[88]=t.jumpToPage,e[89]=t.pageSize,e[90]=t.rangeEnd,e[91]=t.rangeStart,e[92]=t.total,e[93]=M):M=e[93];let _;return e[94]!==S||e[95]!==k||e[96]!==$||e[97]!==T||e[98]!==M||e[99]!==x?(_=R("div",{className:"flex min-h-0 flex-1 flex-col","data-testid":"db-page",children:[x,S,k,$,T,M]}),e[94]=S,e[95]=k,e[96]=$,e[97]=T,e[98]=M,e[99]=x,e[100]=_):_=e[100],_},So="/__lunora/seed",Xe=200,No=50,Co=(l,e)=>{const n=[];for(const o of l)o.pk!==!0&&o.ref!==void 0&&o.type==="id"&&(e[o.ref]??[]).length===0&&n.push(o.name);return n},ko=async l=>{const e=await fetch(So,{body:JSON.stringify(l),headers:{"Content-Type":"application/json"},method:"POST"}),n=await e.json();return e.ok&&n.rows!==void 0?{kind:"ok",rows:n.rows}:{kind:"error",message:n.error??`seed request failed (${String(e.status)})`}},$o="rounded-md border border-border px-3 py-1.5 text-xs font-medium text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-50",To="rounded-md bg-primary px-3 py-1.5 text-xs font-medium text-primary-foreground outline-none transition-colors hover:bg-primary/90 focus-visible:bg-primary/90 disabled:pointer-events-none disabled:opacity-50",_o=({columns:l,fkPools:e,onClose:n,onInsertRows:o,table:t})=>{const r=ce(),[i,a]=D(10),[d,s]=D(!1),[g,c]=D(void 0),[m,f]=D(void 0),b=h=>{const y=Number(h.target.value);!Number.isNaN(y)&&y>=1&&a(Math.min(y,Xe))},p=async()=>{c(void 0),f(void 0),s(!0);try{const h=await ko({count:i,existingIds:e,seed:Date.now(),table:t});if(h.kind==="error"){c(h.message);return}const{rows:y}=h;if(y.length===0){c(r("No rows generated — all columns were skipped."));return}const C=await o(y);if(C!==void 0){c(C);return}f(y.length);const N=Co(l,e);N.length>0&&c(r("Inserted {count} rows. Skipped FK columns: {cols}",{cols:N.join(", "),count:y.length.toString()}))}finally{s(!1)}},w=()=>{oe(p())},v=l.filter(h=>h.pk!==!0);return R(yt,{label:r("Generate dummy rows"),onClose:n,panelTestId:"gen-rows-panel",testId:"gen-rows-overlay",variant:"dialog",children:[R("div",{className:"flex items-start justify-between",children:[R("div",{className:"flex flex-col gap-0.5",children:[u("h3",{className:"text-base text-foreground","data-testid":"gen-rows-title",children:r("Generate dummy rows")}),u("p",{className:"text-xs text-muted-foreground","data-testid":"gen-rows-desc",children:r("Seed {table} with Faker-generated rows. Existing rows are not affected.",{table:t})})]}),u("button",{className:"text-xs text-muted-foreground hover:text-foreground","data-testid":"gen-rows-close",onClick:n,type:"button",children:r("Close")})]}),R("div",{className:"flex items-center gap-2",children:[u("label",{className:"text-xs font-medium text-foreground",htmlFor:"gen-rows-count",children:r("Row count")}),u("input",{className:"w-20 rounded-md border border-border bg-background px-2 py-1 text-xs outline-none focus-visible:border-ring","data-testid":"gen-rows-count",id:"gen-rows-count",max:Xe,min:1,onChange:b,type:"number",value:i}),u("span",{className:"text-xs text-muted-foreground",children:r("(max {max})",{max:Xe.toString()})})]}),v.length>0&&R("div",{className:"flex flex-col gap-1",children:[u("p",{className:"font-mono text-[11px] tracking-wide uppercase text-muted-foreground",children:r("Columns to seed")}),u("ul",{className:"flex flex-col gap-0.5","data-testid":"gen-rows-columns",children:v.map(h=>{const y=h.ref!==void 0&&h.type==="id",C=y&&(e[h.ref??""]??[]).length===0,N=C?"rounded bg-destructive/10 px-1 text-destructive":"rounded bg-muted px-1 text-muted-foreground",P=C?`gen-rows-fk-empty-${h.name}`:`gen-rows-fk-ok-${h.name}`,x=C?r("FK: no rows in {ref} — will skip",{ref:h.ref??""}):r("→ {ref}",{ref:h.ref??""});return R("li",{className:"flex items-center gap-1.5 font-mono text-xs",children:[u("span",{className:"text-foreground",children:h.name}),R("span",{className:"text-muted-foreground",children:["(",h.type,")"]}),h.optional&&u("span",{className:"rounded bg-muted px-1 font-mono text-[10px] tracking-wide uppercase",children:"optional"}),y&&u("span",{className:N,"data-testid":P,children:x})]},h.name)})})]}),g!==void 0&&u("p",{className:"text-xs text-destructive","data-testid":"gen-rows-error",role:"alert",children:g}),m!==void 0&&g===void 0&&u("p",{className:"text-xs text-success","data-testid":"gen-rows-success",children:r("Inserted {count} rows successfully.",{count:m.toString()})}),R("div",{className:"flex justify-end gap-2",children:[u("button",{className:$o,"data-testid":"gen-rows-cancel",onClick:n,type:"button",children:r("Cancel")}),u("button",{className:To,"data-testid":"gen-rows-generate",disabled:d,onClick:w,type:"button",children:r(d?"Inserting…":"Generate & insert")})]})]})},Eo=he(Y.backRelationCounts),Ro=(l,e,n,o)=>{const t=j(16),r=Ke();let i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i={},t[0]=i):i=t[0];const[a,d]=D(i);let s;if(t[1]!==l||t[2]!==e){let v;t[4]!==l?(v=h=>l.has(st(h)),t[4]=l,t[5]=v):v=t[5],s=e.filter(v),t[1]=l,t[2]=e,t[3]=s}else s=t[3];const g=s;let c;t[6]!==n||t[7]!==g?(c=JSON.stringify([g,n]),t[6]=n,t[7]=g,t[8]=c):c=t[8];const m=c;let f;t[9]!==r||t[10]!==o||t[11]!==m?(f=async v=>{const[h,y]=JSON.parse(m);if(h.length===0||y.length===0){v.cancelled||d({});return}try{const C=await r.query(Eo,{ids:y,relations:h},de(o));v.cancelled||d(Object.fromEntries(C.relations.map(Mo)))}catch{}},t[9]=r,t[10]=o,t[11]=m,t[12]=f):f=t[12];const b=f;let p,w;return t[13]!==b?(p=()=>{const v={cancelled:!1};return oe(b(v)),()=>{v.cancelled=!0}},w=[b],t[13]=b,t[14]=p,t[15]=w):(p=t[14],w=t[15]),$e(p,w),a};function Mo(l){return[st(l),l.counts]}const rt=l=>{const e=l[0];return e===void 0?void 0:{column:e.id,direction:e.desc?"desc":"asc"}},$t=l=>l==null?"":typeof l=="object"?JSON.stringify(l):String(l),xt=l=>l.map(e=>({column:e.column,operator:e.operator,value:e.value===void 0?"":$t(e.value)})),vt=l=>l===void 0?[]:[{desc:l.direction==="desc",id:l.column}],Po=200,Do=20,Io=he(Y.readTablePage),Oo=he(Y.facetColumn),Ye=he(Y.writeRow),Fo=he(Y.deleteRows),zo=he(Y.clearTable),jo={},dt=new Set(["__doc__","__id__","_creationTime","_id","id"]),Ao=l=>{const e=l.__doc__;if(typeof e=="string")try{const o=JSON.parse(e);if(o!==null&&typeof o=="object"&&!Array.isArray(o))return o}catch{}const n={};for(const[o,t]of Object.entries(l))dt.has(o)||(n[o]=t);return n},Lo=({filters:l,offset:e,pageSize:n,search:o,sorting:t,table:r})=>({filters:Me(l),limit:n,offset:e,orderBy:rt(t),search:o,skipCount:!0,table:r}),Bo=({filters:l,search:e,table:n})=>({filters:Me(l),limit:1,search:e,table:n}),Vo=(l,e)=>{const n=new Map;for(const t of l?.rows??[]){const r=ve(t);r!==null&&n.set(r,t)}const o=[];for(const[t,r]of Object.entries(e))for(const[i,a]of Object.entries(r))o.push({column:i,newValue:a,oldValue:n.get(t)?.[i],rowId:t});return o},qo=l=>!dt.has(l),Jo=({initialFilters:l,initialOrderBy:e,initialSearch:n,initialShardKey:o,onSelectTable:t,onViewChange:r,pageSize:i,resolveBackRelations:a,tableParam:d})=>{const s=Ke(),[g,c]=D(i),[m,f]=D(o??""),b=d===void 0||d===""?null:d,[p,w]=D(0),[v,h]=D("table"),[y,C]=D(()=>vt(e)),[N,P]=D(n??""),x=ct(N.trim(),300),S=ct(m.trim(),400),[k,$]=D(()=>xt(l??[])),T=ke(k),{clearFacets:M,facets:_,refetchFacets:L,toggleFacet:B}=bn(),[F,I]=D(null),[V,O]=D(null),z=Rn(),[G,H]=D(null),[ue,le]=D(!1),Z=je(Y.listTables,jo,{live:!0,shardKey:S}),me=Z.data??null,re=Z.error,ge=Lo({filters:k,offset:p,pageSize:g,search:x,sorting:y,table:b??""}),ae=Bo({filters:k,search:x,table:b??""}),W=je(Y.readTablePage,ge,{enabled:b!==null,keepPreviousData:!1,live:!0,shardKey:S}),q=W.data??null,we=W.error,{liveError:be}=W,Q=je(Y.readTablePage,ae,{enabled:b!==null,live:!0,shardKey:S});$e(()=>{Z.data!==void 0&&hn(S)},[Z.data,S]);const te=E=>{t?.(E)},se=(E,A)=>{t?.(E,{search:A})},ie=async(E,A)=>{try{return(await s.query(Io,{filters:[],limit:Do,offset:0,search:A,table:E},de(S))).rows.find(ee=>ve(ee)===A)??null}catch{return null}},X=(E,A,ee,Re)=>_e=>s.query(Oo,{column:_e,filters:Me(ee),search:Re,table:A},de(E)),K=E=>{B(E,b===null?null:X(S,b,T.current,x))},ye=(E,A)=>{const ee=$t(A);$(Re=>[...Re.filter(_e=>_e.column!==E),{column:E,operator:"eq",value:ee}]),w(0)},Se=ke(X),Ne=ke(L),xe=ke(r);$e(()=>{b!==null&&Ne.current(Se.current(S,b,k,x))},[S,b,k,x]);const Ce=De(d);$e(()=>{b===null||xe.current===void 0||Ce.current!==d||xe.current({filters:Me(k),orderBy:rt(y),search:x,shard:S})},[b,d,k,y,x,S]);const ne=ke(l),Ie=ke(e),Te=ke(n),Oe=ke(o);$e(()=>{Ce.current!==d&&(Ce.current=d,queueMicrotask(()=>{const E=xt(ne.current??[]);C(vt(Ie.current)),P(Te.current??""),$(E),T.current=E,f(Oe.current??""),M(),z.clear(),H(null),w(0)}))},[d]);const Fe=E=>{b!==null&&w(Math.max(0,E))},He=(E,A)=>{H({column:A,rowId:E})},Qe=()=>{H(null)},Ae=async()=>{if(b!==null){O(null),le(!0);try{for(const[E,A]of Object.entries(z.staged))await s.query(Ye,{doc:A,id:E,op:"patch",table:b},de(S));z.clear(),H(null),W.refetch()}catch(E){O(E.message)}le(!1)}},We=()=>{z.clear(),H(null)},Ue=Vo(q,z.staged),Le=async(E,A,ee)=>{if(b===null)return;O(null);let Re;if(E!=="delete")try{Re=ee===void 0||ee.trim()===""?{}:JSON.parse(ee)}catch(_e){O(`Invalid JSON: ${_e.message}`);return}try{await s.query(Ye,{doc:Re,id:A??void 0,op:E,table:b},de(S)),I(null),W.refetch()}catch(_e){O(_e.message)}},Be=async(E,A)=>{if(b!==null){O(null);try{for(let ee=0;ee<Po&&(await s.query(E,A,de(S))).hasMore;ee+=1);w(0),W.refetch()}catch(ee){O(ee.message)}}},J=E=>{C(E),w(0)},U=et(()=>b===null?[]:a?.(b)??[],[a,b]),fe=no(q,y,J,U),pe={filters:Me(k),orderBy:rt(y),search:x,shard:m,table:b??void 0},Ee=Q.data?.total??(q===null?0:p+q.rows.length),Tt=p>0,_t=q!==null&&p+q.rows.length<Ee,Et=q===null||q.rows.length===0?0:p+1,Rt=q===null?0:p+q.rows.length,Mt=()=>{Z.refetch()},Pt=()=>{h("table")},Dt=()=>{h("json")},It=()=>{oe(Be(Fo,{filters:Me(T.current),search:x,table:b}))},Ot=()=>{oe(Be(zo,{table:b}))},Ft=E=>{P(E.target.value),w(0)},zt=E=>{$(E),w(0)},jt=()=>{O(null);const E={};for(const A of q?.columns??[])dt.has(A)||(E[A]="");I({docText:JSON.stringify(E,null,2),id:""})},At=E=>{I(A=>A===null?A:{docText:E,id:A.id})},Lt=()=>{F!==null&&oe(Le(F.id===""?"insert":"patch",F.id===""?null:F.id,F.docText))},Bt=()=>{I(null),O(null)},Vt=()=>{Fe(p-g)},qt=()=>{Fe(p+g)},Jt=E=>{Fe(Math.max(0,(E-1)*g))},Kt=E=>{c(E),w(0)},Gt=(E,A)=>{O(null),I({docText:JSON.stringify(Ao(A),null,2),id:E})},Ht=E=>{oe(Le("delete",E))},Qt=async E=>{if(!(b===null||E.length===0)){O(null);try{for(const A of E)await s.query(Ye,{id:A,op:"delete",table:b},de(S));W.refetch()}catch(A){O(A.message)}}},Wt=E=>{oe(Qt(E))},Ut=()=>{oe(Ae())};return{addRow:jt,bulkDelete:It,cancelCellEdit:Qe,cancelEdit:Bt,changePageSize:Kt,clearTable:Ot,columns:q?.columns??[],committing:ue,currentView:pe,discardStaged:We,editableColumn:qo,editing:F,editingCell:G,facetFilter:ye,facets:_,filter:N,filters:k,goNext:qt,goPrevious:Vt,hasNext:_t,hasPrevious:Tt,jumpToPage:Jt,liveError:be,loadTables:Mt,navigateToRef:se,onBulkDeleteSelected:Wt,onCommitStaged:Ut,onFilterChange:Ft,onFiltersChange:zt,onRowDelete:Ht,onRowEdit:Gt,page:q,previewRef:ie,pageError:we,pageSize:g,rangeEnd:Rt,rangeStart:Et,queryShardKey:S,saveEdit:Lt,selectedTable:b,selectTable:te,setEditorDocumentText:At,setShardKey:f,shardKey:m,showJson:Dt,showTable:Pt,stage:z.stage,stagedChanges:Ue,stagedValue:z.stagedValue,startCellEdit:He,table:fe,tables:me,tablesError:re,toggleFacet:K,total:Ee,viewMode:v,writeError:V}},Ko=[],Go=()=>{const l=j(1);let e;l[0]===Symbol.for("react.memo_cache_sentinel")?(e={},l[0]=e):e=l[0];const{data:n}=je(Y.maskPolicies,e);return Array.isArray(n?.columns)?n.columns:Ko},Ho="lunora-studio-pinned-columns",Qo=l=>{const e=j(24),{columns:n,initialPins:o,selectedTable:t}=l;let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r={},e[0]=r):r=e[0];const[i,a]=wt(Ho,r),d=t??"",s=i[d];let g;e[1]!==o||e[2]!==s?(g=s===void 0?new Set((o??"").split(",").filter(Wo)):new Set(s),e[1]=o,e[2]=s,e[3]=g):g=e[3];const c=g;let m;e[4]!==d||e[5]!==c||e[6]!==a?(m=M=>{a(_=>{const L=_[d]??[...c],B=L.includes(M)?L.filter(F=>F!==M):[...L,M];return{..._,[d]:B}})},e[4]=d,e[5]=c,e[6]=a,e[7]=m):m=e[7];const f=m,[b,p]=D(!1);let w;e[8]===Symbol.for("react.memo_cache_sentinel")?(w=()=>{p(Uo)},e[8]=w):w=e[8];const v=w,h=Go(),[y,C]=D(!0);let N;e[9]===Symbol.for("react.memo_cache_sentinel")?(N=()=>{C(Zo)},e[9]=N):N=e[9];const P=N;let x;if(e[10]!==n||e[11]!==h||e[12]!==t){const M=Cn(h,t??"");x=$n(M,n),e[10]=n,e[11]=h,e[12]=t,e[13]=x}else x=e[13];const S=x;let k;e[14]!==S||e[15]!==y?(k={columns:S,enabled:y},e[14]=S,e[15]=y,e[16]=k):k=e[16];const $=k;let T;return e[17]!==S||e[18]!==y||e[19]!==$||e[20]!==f||e[21]!==c||e[22]!==b?(T={maskColumns:S,maskOn:y,maskView:$,onToggleMask:P,onTogglePin:f,onToggleTranspose:v,pinnedColumns:c,transposed:b},e[17]=S,e[18]=y,e[19]=$,e[20]=f,e[21]=c,e[22]=b,e[23]=T):T=e[23],T};function Wo(l){return l!==""}function Uo(l){return!l}function Zo(l){return!l}const Xo=he(Y.describeTable),Yo=he(Y.readTablePage),el=he(Y.writeRow),tl=l=>{const e=l._id??l.id??l.__id__??"";return typeof e=="string"?e:typeof e=="number"?String(e):""},nl=l=>{const e=Ke(),[n,o]=D(!1),[t,r]=D(void 0),[i,a]=D(void 0),[d,s]=D(void 0),[g,c]=D({}),[m,f]=D(!1),[b,p]=D(void 0),w=async(v,h)=>{o(!0),r(v),a(h),s(void 0),c({}),p(void 0),f(!0);try{const y=await e.query(Xo,{table:v},de(h)),{columns:C}=y;s(C);const N={},P=C.filter(x=>x.ref!==void 0&&x.type==="id"&&x.pk!==!0);for(const x of P){if(x.ref===void 0)continue;const{ref:S}=x;if(N[S]===void 0)try{const k=await e.query(Yo,{filters:[],limit:No,offset:0,search:"",table:S},de(h));N[S]=k.rows.flatMap($=>tl($)||[])}catch{N[S]=[]}}c(N)}catch(y){p(y.message)}f(!1)};return{closeDialog:()=>{o(!1),r(void 0),a(void 0),s(void 0),c({}),p(void 0)},columnMeta:d,error:b,fkPools:g,insertBatch:async(v,h)=>{if(t===void 0||i===void 0)return"No table selected.";try{for(const y of v)await e.query(el,{doc:y,op:"insert",table:t},de(i));h(),l();return}catch(y){return y.message}},loading:m,open:n,openDialog:(v,h)=>{oe(w(v,h))},shardKey:i,table:t}},ol=()=>{const l=j(6),[e,n]=D(null);let o;l[0]===Symbol.for("react.memo_cache_sentinel")?(o=()=>{n(null)},l[0]=o):o=l[0];const t=o,[r,i]=D(null);let a;l[1]===Symbol.for("react.memo_cache_sentinel")?(a=(m,f)=>{i({column:m,value:f})},l[1]=a):a=l[1];const d=a;let s;l[2]===Symbol.for("react.memo_cache_sentinel")?(s=()=>{i(null)},l[2]=s):s=l[2];const g=s;let c;return l[3]!==r||l[4]!==e?(c={closeExpandedCell:g,closeInspect:t,expandedCell:r,inspecting:e,onExpandCell:d,onInspect:n},l[3]=r,l[4]=e,l[5]=c):c=l[5],c},ll=/(?:_creationtime|(?:^|[a-z])(?:time|at))$/iu,rl=(l,e)=>typeof e=="number"&&ll.test(l),al=l=>{const e=j(26),{column:n,onNavigate:o,target:t,value:r}=l;let i;e[0]!==o||e[1]!==t||e[2]!==r?(i=()=>{t!==void 0&&o(t,String(r))},e[0]=o,e[1]=t,e[2]=r,e[3]=i):i=e[3];const a=i;if(r==null){let g;return e[4]===Symbol.for("react.memo_cache_sentinel")?(g=u("span",{className:"italic text-muted-foreground",children:"null"}),e[4]=g):g=e[4],g}if(t!==void 0&&(typeof r=="string"||typeof r=="number")&&String(r)!==""){const g=`rd-ref-${n}`,c=`Open ${t} ${String(r)}`,m=String(r);let f;return e[5]!==a||e[6]!==g||e[7]!==c||e[8]!==m?(f=R("button",{"data-testid":g,onClick:a,title:c,type:"button",children:[m," ↗"]}),e[5]=a,e[6]=g,e[7]=c,e[8]=m,e[9]=f):f=e[9],f}if(rl(n,r)){const g=`rd-ts-${n}`;let c;e[10]!==r?(c=r.toString(),e[10]=r,e[11]=c):c=e[11];let m;e[12]!==r?(m=Xt(r),e[12]=r,e[13]=m):m=e[13];let f;return e[14]!==g||e[15]!==c||e[16]!==m?(f=u("span",{"data-testid":g,title:c,children:m}),e[14]=g,e[15]=c,e[16]=m,e[17]=f):f=e[17],f}if(typeof r=="object"){let g;e[18]!==r?(g=JSON.stringify(r,null,2),e[18]=r,e[19]=g):g=e[19];let c;return e[20]!==g?(c=u("pre",{className:"m-0 overflow-auto rounded-md bg-muted/50 p-2 text-xs",children:g}),e[20]=g,e[21]=c):c=e[21],c}let d;e[22]!==r?(d=Pe(r),e[22]=r,e[23]=d):d=e[23];let s;return e[24]!==d?(s=u("span",{children:d}),e[24]=d,e[25]=s):s=e[25],s},sl=l=>{const e=j(21),{columns:n,onClose:o,onNavigate:t,refs:r,row:i}=l;let a;e[0]!==o||e[1]!==t?(a=(b,p)=>{t(b,p),o()},e[0]=o,e[1]=t,e[2]=a):a=e[2];const d=a;let s;e[3]===Symbol.for("react.memo_cache_sentinel")?(s=u("h3",{className:"m-0 text-base text-foreground",children:"Row detail"}),e[3]=s):s=e[3];let g;e[4]!==o?(g=R("div",{className:"mb-3 flex items-center justify-between",children:[s,u("button",{"data-testid":"rd-close",onClick:o,type:"button",children:"Close"})]}),e[4]=o,e[5]=g):g=e[5];let c;if(e[6]!==n||e[7]!==d||e[8]!==r||e[9]!==i){let b;e[11]!==d||e[12]!==r||e[13]!==i?(b=p=>R("div",{className:"border-t border-border py-2 first:border-t-0","data-testid":`rd-field-${p}`,children:[u("dt",{className:"mb-0.5 text-xs font-semibold text-muted-foreground",children:p}),u("dd",{className:"m-0",children:u(al,{column:p,onNavigate:d,target:r?.[p],value:i[p]})})]},p),e[11]=d,e[12]=r,e[13]=i,e[14]=b):b=e[14],c=n.map(b),e[6]=n,e[7]=d,e[8]=r,e[9]=i,e[10]=c}else c=e[10];let m;e[15]!==c?(m=u("dl",{"data-testid":"rd-fields",children:c}),e[15]=c,e[16]=m):m=e[16];let f;return e[17]!==o||e[18]!==g||e[19]!==m?(f=R(yt,{label:"Row detail",onClose:o,panelTestId:"rd-panel",testId:"rd-overlay",variant:"drawer",children:[g,m]}),e[17]=o,e[18]=g,e[19]=m,e[20]=f):f=e[20],f},il=50,dl=l=>{const e=j(8),{active:n,onPick:o,shard:t}=l;let r;e[0]!==o||e[1]!==t?(r=()=>{o(t)},e[0]=o,e[1]=t,e[2]=r):r=e[2];const i=r,a=`w-full rounded px-2 py-0.5 text-left text-xs transition-colors hover:bg-accent ${n?"bg-accent font-medium":""}`,d=`shard-explorer-item-${t}`;let s;return e[3]!==i||e[4]!==t||e[5]!==a||e[6]!==d?(s=u("button",{className:a,"data-testid":d,onClick:i,type:"button",children:t}),e[3]=i,e[4]=t,e[5]=a,e[6]=d,e[7]=s):s=e[7],s},cl=({onFetchTables:l,onSelect:e})=>{const n=ce(),[o]=D(()=>xn()),[t,r]=D(!1),[i,a]=D(void 0),[d,s]=D(void 0),[g,c]=D(!1),[m,f]=D(void 0),b=De(0),p=()=>{r(h=>!h)},w=async h=>{e(h),a(h),s(void 0),f(void 0),c(!0),b.current+=1;const y=b.current;try{const C=await l(h);b.current===y&&s(C?.slice(0,il))}catch(C){b.current===y&&f(C.message)}b.current===y&&c(!1)},v=h=>{oe(w(h))};return o.length===0?null:R("div",{"data-testid":"shard-explorer",children:[R("button",{"aria-controls":"shard-explorer-panel","aria-expanded":t,className:"inline-flex items-center gap-1 rounded-md border border-border px-2 py-1 text-xs font-medium text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent","data-testid":"shard-explorer-toggle",onClick:p,type:"button",children:[n("Shards seen"),u("span",{"aria-hidden":"true",className:`ml-0.5 transition-transform ${t?"rotate-180":""}`,children:"▾"})]}),t&&R("div",{className:"mt-1 flex flex-col gap-1 rounded-md border border-border bg-popover p-2","data-testid":"shard-explorer-panel",id:"shard-explorer-panel",children:[u("p",{className:"text-xs text-muted-foreground","data-testid":"shard-explorer-hint",children:n("Recently visited shards — click to switch")}),u("ul",{className:"flex flex-col gap-0.5","data-testid":"shard-explorer-list",children:o.map(h=>u("li",{children:u(dl,{active:i===h,onPick:v,shard:h})},h))}),i!==void 0&&R("div",{className:"mt-1 border-t border-border pt-1","data-testid":"shard-explorer-summary",children:[u("p",{className:"mb-1 text-xs font-medium text-foreground","data-testid":"shard-explorer-summary-title",children:n("{shard} tables",{shard:i})}),g&&u("p",{className:"text-xs text-muted-foreground","data-testid":"shard-explorer-loading",children:n("Loading…")}),m!==void 0&&u("p",{className:"text-xs text-destructive","data-testid":"shard-explorer-error",role:"alert",children:m}),!g&&m===void 0&&d?.length===0&&u("p",{className:"text-xs text-muted-foreground","data-testid":"shard-explorer-empty",children:n("No tables in this shard.")}),!g&&m===void 0&&d!==void 0&&d.length>0&&u("ul",{className:"flex flex-col gap-0.5","data-testid":"shard-explorer-tables",children:d.map(h=>R("li",{className:"flex items-center justify-between text-xs",children:[u("span",{"data-testid":`shard-explorer-table-${h.name}`,children:h.name}),u("span",{className:"text-muted-foreground","data-testid":`shard-explorer-rowcount-${h.name}`,children:h.rowCount})]},h.name))})]})]})]})},ul="lunora-studio-back-relations",ml={},gl=50,bl=[],fl=he(Y.listTables),pl=l=>{const e=j(10),{onFetchShardTables:n,onShardChange:o,schemaSwitch:t,shardKey:r}=l;let i;e[0]!==o||e[1]!==r?(i=u(Zt,{onChange:o,testId:"db-shard-input",value:r}),e[0]=o,e[1]=r,e[2]=i):i=e[2];let a;e[3]!==n||e[4]!==o?(a=u(cl,{onFetchTables:n,onSelect:o}),e[3]=n,e[4]=o,e[5]=a):a=e[5];let d;return e[6]!==t||e[7]!==i||e[8]!==a?(d=R("div",{className:"flex shrink-0 flex-col items-stretch gap-2 border-b border-border p-3",children:[t,i,a]}),e[6]=t,e[7]=i,e[8]=a,e[9]=d):d=e[9],d},Vl=({editable:l=!1,globalTableNames:e,initialFilters:n,initialOrderBy:o,initialPins:t,initialSearch:r,initialShardKey:i,onNavigateToGlobal:a,onSelectTable:d,onViewChange:s,pageSize:g=gl,queryBar:c,schemaSwitch:m,tableParam:f})=>{const b=je(Y.describeTables,{},{shardKey:i??""}).data?.columnsByTable??ml,[p,w]=wt(ul,{}),v=tt(J=>{const U=new Set(p[J]);return ut(J,b).filter(fe=>U.has(st(fe)))},[p,b]),h=Jo({initialFilters:n,initialOrderBy:o,initialSearch:r,initialShardKey:i,onSelectTable:d,onViewChange:s,pageSize:g,resolveBackRelations:v,tableParam:f}),{cancelCellEdit:y,columns:C,currentView:N,editableColumn:P,editingCell:x,facetFilter:S,facets:k,loadTables:$,navigateToRef:T,onFiltersChange:M,page:_,pageError:L,previewRef:B,queryShardKey:F,selectedTable:I,selectTable:V,setShardKey:O,shardKey:z,stage:G,stagedValue:H,startCellEdit:ue,tables:le,tablesError:Z,toggleFacet:me}=h,re=Yt(z),ge=J=>{oe((async()=>{const U=await re.suggestFilter(J,I??"");U!==void 0&&M(U.map(fe=>{const pe=fe.value,Ee=typeof pe=="string"||typeof pe=="number"||typeof pe=="boolean"?String(pe):"";return{column:fe.column,operator:fe.operator,value:Ee}}))})())},ae=I===null?[]:ut(I,b),W=new Set(p[I??""]),q=[];for(const J of _?.rows??[]){const U=J._id??J.id;typeof U=="string"&&U!==""&&q.push(U)}const we=Ro(W,ae,q,F),be=J=>{w(U=>{const fe=I??"",pe=U[fe]??[];return{...U,[fe]:pe.includes(J)?pe.filter(Ee=>Ee!==J):[...pe,J]}})},Q=Qo({columns:C,initialPins:t,selectedTable:I}),te=ol(),{closeExpandedCell:se,closeInspect:ie,expandedCell:X,inspecting:K,onExpandCell:ye}=te,Se=Ke(),Ne=async J=>await Se.query(fl,{},de(J)),xe=()=>{I!==null&&V(I)},{closeDialog:Ce,columnMeta:ne,fkPools:Ie,insertBatch:Te,open:Oe,openDialog:Fe}=nl(xe),He=()=>{I!==null&&Fe(I,z)},Qe=J=>Te(J,Ce),Ae=(J,U)=>{if(a!==void 0&&e?.has(J)===!0){a(J,U);return}T(J,U)},We=c?.onSaveQuery,Ue=J=>{We?.(J,N)},Le={cancelEdit:y,editable:l,editableColumn:P,editingCell:x,onExpandCell:ye,stage:G,stagedValue:H,startEdit:ue},Be={columns:_?.refs,onNavigate:Ae,onPreview:B};return R("div",{className:"flex h-full min-w-0","data-testid":"lunora-data-browser",children:[u(fn,{header:u(pl,{onFetchShardTables:Ne,onShardChange:O,schemaSwitch:m,shardKey:z}),onReload:$,onSelect:V,prefix:"db",selected:I,tables:le??bl}),R("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:[Z!==null&&u("p",{className:"shrink-0 border-b border-border px-4 py-2 text-sm text-destructive","data-testid":"db-tables-error",role:"alert",children:Z}),_===null&&L===null&&u("div",{className:"flex flex-1 items-center justify-center p-6",children:u("p",{className:"text-sm text-muted-foreground",children:"Select a table to browse its rows."})}),L!==null&&u("p",{className:"shrink-0 border-b border-border px-4 py-2 text-sm text-destructive","data-testid":"db-page-error",role:"alert",children:L}),_!==null&&u(yo,{assistant:re,backRelations:{available:ae,counts:we,enabled:W,onToggle:be},browser:h,edit:Le,editable:l,onAskAiFilter:ge,onInspect:te.onInspect,onOpenGenerateRows:He,onSaveQuery:Ue,page:_,preferences:Q,queryBar:c,references:Be})]}),_!==null&&u(pn,{columns:C,facets:k,onFacetFilter:S,onToggleFacet:me}),K!==null&&_!==null&&u(sl,{columns:_.columns,onClose:ie,onNavigate:Ae,refs:_.refs,row:K}),X!==null&&u(mn,{column:X.column,onClose:se,value:X.value}),Oe&&I!==null&&ne!==void 0&&u(_o,{columns:ne,fkPools:Ie,onClose:Ce,onInsertRows:Qe,table:I})]})};export{Vl as DataBrowser};
@@ -1 +0,0 @@
1
- import{c as $e}from"react/compiler-runtime";import{useLunora as ke}from"@lunora/react";import{useState as u,useEffect as Re}from"react";import{ConfirmButton as Ce}from"./ConfirmButton-CTL3f3kr.js";import{E as _e}from"./error-alert-t6cpEi0z.js";import{L as Ee}from"./live-status-CmuRLFKf.js";import{ShardInput as Le}from"./ShardInput-BVn2iCU0.js";import{g as Me}from"./badge-BbuuAio7.js";import{u as Ie}from"./button-BkCrNcAs.js";import{c as De,u as Ae}from"./card-CIDGUN6K.js";import{E as je}from"./empty-state-Cg7t_8qu.js";import{u as Fe}from"./input-JHu63lTv.js";import{p as ue}from"./label-6uP1obNF.js";import{n as Te,d as Be,m as he,p as h,f as Ke,u as p}from"./table-DdJBrClo.js";import{N as Oe}from"./use-admin-query-QJ-ibl5u.js";import qe from"./useDebounced-Ihdiid_k.js";import{useT as ze}from"./DEFAULT_LOCALE-BZ4NojpD.js";import{ADMIN_FUNCTIONS as pe}from"./ADMIN_FUNCTIONS-CZESgd10.js";import{i as Je,f as Pe,d as Ue,b as Ve,g as We}from"./internal-BSIsQVC6.js";import{r as Ge}from"./shard-history-DMEW5VBE.js";import{jsx as t,jsxs as o}from"react/jsx-runtime";const He=We(pe.runMigration),vr=a=>{const e=$e(99),{initialShardKey:ge}=a,ie=ke(),r=ze(),[i,fe]=u(ge??""),[g,be]=u(""),[f,ve]=u("up"),[l,xe]=u(!0),[b,ce]=u(!1),[c,ae]=u(null),[J,ne]=u(null);let P;e[0]!==i?(P=i.trim(),e[0]=i,e[1]=P):P=e[1];const s=qe(P,400);let U;e[2]!==i?(U=i.trim(),e[2]=i,e[3]=U):U=e[3];const V=U===s;let W;e[4]===Symbol.for("react.memo_cache_sentinel")?(W={},e[4]=W):W=e[4];let G;e[5]!==s?(G={live:!0,shardKey:s},e[5]=s,e[6]=G):G=e[6];const n=Oe(pe.migrationStatus,W,G),d=n.data?.migrations??null,oe=n.error,{errorSource:le,liveError:de}=n;let H,Q;e[7]!==s||e[8]!==n.data?(H=()=>{n.data!==void 0&&Ge(s)},Q=[n.data,s],e[7]=s,e[8]=n.data,e[9]=H,e[10]=Q):(H=e[9],Q=e[10]),Re(H,Q);let X;if(e[11]!==ie||e[12]!==f||e[13]!==l||e[14]!==g||e[15]!==i||e[16]!==n||e[17]!==r){const m=async()=>{const me=g.trim();if(me===""){ne(r("Enter a migration id")),ae(null);return}ce(!0),ne(null);try{const se=await ie.query(He,{direction:f,dryRun:l,id:me},Ue(i));ae(se),n.refetch()}catch(se){const Se=se;ae(null),ne(Ve(Se))}ce(!1)};X=()=>{Pe(m())},e[11]=ie,e[12]=f,e[13]=l,e[14]=g,e[15]=i,e[16]=n,e[17]=r,e[18]=X}else X=e[18];const Y=X;let Z;e[19]===Symbol.for("react.memo_cache_sentinel")?(Z=m=>{be(m.target.value)},e[19]=Z):Z=e[19];const ye=Z;let ee;e[20]===Symbol.for("react.memo_cache_sentinel")?(ee=m=>{ve(m.target.value==="down"?"down":"up")},e[20]=ee):ee=e[20];const Ne=ee;let re;e[21]===Symbol.for("react.memo_cache_sentinel")?(re=m=>{xe(m.target.checked)},e[21]=re):re=e[21];const we=re;let v;e[22]!==i?(v=t(Le,{onChange:fe,testId:"mg-shard-input",value:i}),e[22]=i,e[23]=v):v=e[23];let x;e[24]!==de?(x=t(Ee,{message:de,prefix:"mg"}),e[24]=de,e[25]=x):x=e[25];let y;e[26]!==v||e[27]!==x?(y=o("div",{className:"flex flex-wrap items-center gap-2",children:[v,x]}),e[26]=v,e[27]=x,e[28]=y):y=e[28];let N;e[29]!==oe||e[30]!==le?(N=oe!==null&&t(_e,{error:le,testId:"mg-status-error"}),e[29]=oe,e[30]=le,e[31]=N):N=e[31];let w;e[32]!==d||e[33]!==r?(w=d!==null&&d.length===0&&t(je,{description:r("Data migrations you run against this shard will be tracked here."),icon:t("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:t("path",{d:"M4 12a8 8 0 0 1 13.7-5.6L20 8M20 4v4h-4M20 12a8 8 0 0 1-13.7 5.6L4 16m0 4v-4h4"})}),testId:"mg-empty",title:r("No migrations have run on this shard.")}),e[32]=d,e[33]=r,e[34]=w):w=e[34];let S;e[35]!==d||e[36]!==r?(S=d!==null&&d.length>0&&t(De,{className:"overflow-hidden py-0",children:t(Ae,{className:"px-0",children:o(Te,{"data-testid":"mg-table",children:[t(Be,{children:o(he,{children:[t(h,{children:r("id")}),t(h,{children:r("direction")}),t(h,{children:r("status")}),t(h,{children:r("processed")}),t(h,{children:r("changed")}),t(h,{children:r("updated")}),t(h,{children:r("error")})]})}),t(Ke,{children:d.map(Qe)})]})})}),e[35]=d,e[36]=r,e[37]=S):S=e[37];let $;e[38]!==r?($=r("Run migration"),e[38]=r,e[39]=$):$=e[39];let k;e[40]!==$?(k=t(ue,{children:$}),e[40]=$,e[41]=k):k=e[41];let R;e[42]!==r?(R=r("Migration id"),e[42]=r,e[43]=R):R=e[43];let C;e[44]!==r?(C=r("migration id"),e[44]=r,e[45]=C):C=e[45];let _;e[46]!==g||e[47]!==R||e[48]!==C?(_=t(Fe,{"aria-label":R,className:"w-auto","data-testid":"mg-id-input",onChange:ye,placeholder:C,value:g}),e[46]=g,e[47]=R,e[48]=C,e[49]=_):_=e[49];let E;e[50]!==r?(E=r("Direction"),e[50]=r,e[51]=E):E=e[51];let L;e[52]!==r?(L=r("up"),e[52]=r,e[53]=L):L=e[53];let M;e[54]!==L?(M=t("option",{value:"up",children:L}),e[54]=L,e[55]=M):M=e[55];let I;e[56]!==r?(I=r("down"),e[56]=r,e[57]=I):I=e[57];let D;e[58]!==I?(D=t("option",{value:"down",children:I}),e[58]=I,e[59]=D):D=e[59];let A;e[60]!==f||e[61]!==E||e[62]!==M||e[63]!==D?(A=o("select",{"aria-label":E,className:"flex h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs transition-colors outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 dark:bg-input/30","data-testid":"mg-direction",onChange:Ne,value:f,children:[M,D]}),e[60]=f,e[61]=E,e[62]=M,e[63]=D,e[64]=A):A=e[64];let j;e[65]!==l?(j=t("input",{checked:l,className:"size-4 accent-primary","data-testid":"mg-dry-run",id:"mg-dry-run",onChange:we,type:"checkbox"}),e[65]=l,e[66]=j):j=e[66];let F;e[67]!==r?(F=r("Dry run"),e[67]=r,e[68]=F):F=e[68];let T;e[69]!==j||e[70]!==F?(T=o(ue,{className:"flex items-center gap-1.5",htmlFor:"mg-dry-run",children:[j,F]}),e[69]=j,e[70]=F,e[71]=T):T=e[71];let B;e[72]!==l||e[73]!==Y||e[74]!==b||e[75]!==V||e[76]!==r?(B=l?t(Ie,{"data-testid":"mg-run",disabled:b||!V,onClick:Y,type:"button",children:r(b?"Running…":"Run")}):t(Ce,{confirmLabel:r(b?"Running…":"Run migration?"),disabled:b||!V,onConfirm:Y,testId:"mg-run",children:r("Run")}),e[72]=l,e[73]=Y,e[74]=b,e[75]=V,e[76]=r,e[77]=B):B=e[77];let K;e[78]!==_||e[79]!==A||e[80]!==T||e[81]!==B?(K=o("div",{className:"flex flex-wrap items-center gap-2",children:[_,A,T,B]}),e[78]=_,e[79]=A,e[80]=T,e[81]=B,e[82]=K):K=e[82];let O;e[83]!==k||e[84]!==K?(O=o("div",{className:"flex flex-col gap-2 rounded-xl border border-border bg-card p-3 shadow-xs",children:[k,K]}),e[83]=k,e[84]=K,e[85]=O):O=e[85];let q;e[86]!==J?(q=J!==null&&t("pre",{className:"text-sm text-destructive whitespace-pre-wrap","data-testid":"mg-run-error",role:"alert",children:J}),e[86]=J,e[87]=q):q=e[87];let z;e[88]!==c||e[89]!==r?(z=c!==null&&o("p",{className:"text-sm text-muted-foreground","data-testid":"mg-run-result",children:[c.dryRun?r("Dry run: "):"",r("{status} — processed",{status:c.status}),c.processed,r(", changed"),c.changed]}),e[88]=c,e[89]=r,e[90]=z):z=e[90];let te;return e[91]!==y||e[92]!==N||e[93]!==w||e[94]!==S||e[95]!==O||e[96]!==q||e[97]!==z?(te=o("div",{className:"flex flex-col gap-3 pt-4","data-testid":"lunora-migrations",children:[y,N,w,S,O,q,z]}),e[91]=y,e[92]=N,e[93]=w,e[94]=S,e[95]=O,e[96]=q,e[97]=z,e[98]=te):te=e[98],te};function Qe(a){return o(he,{"data-testid":`mg-row-${a.id}`,children:[t(p,{children:a.id}),t(p,{children:a.direction}),t(p,{children:t(Me,{variant:"secondary",children:a.status})}),t(p,{children:a.processed}),t(p,{children:a.changed}),t(p,{children:Je(a.updatedAt)}),t(p,{children:a.error??""})]},a.id)}export{vr as MigrationsPanel};
@@ -1 +0,0 @@
1
- import{c as w}from"react/compiler-runtime";import{useT as k}from"./DEFAULT_LOCALE-BZ4NojpD.js";import{jsxs as N,jsx as x}from"react/jsx-runtime";import{useRef as C,useEffect as T,useState as L,useMemo as E}from"react";import{f as F,b as P}from"./internal-BSIsQVC6.js";import{useVirtualizer as R}from"@tanstack/react-virtual";import{c as O}from"./utils-bhneXptQ.js";import{l as I}from"./virtual-rect-1o1veP7R.js";const J=[25,50,100,250],V=b=>{const e=w(18),{onChange:t,options:l,prefix:r,value:n}=b,a=k();let i;e[0]!==t?(i=h=>{t(Number.parseInt(h.target.value,10))},e[0]=t,e[1]=i):i=e[1];const o=i,c=`${r}-page-size`;let m;e[2]!==a?(m=a("Rows per page"),e[2]=a,e[3]=m):m=e[3];let g;e[4]!==m?(g=x("span",{children:m}),e[4]=m,e[5]=g):g=e[5];const p=`${r}-page-size`,d=`${r}-page-size`;let f;e[6]!==l?(f=l.map(B),e[6]=l,e[7]=f):f=e[7];let s;e[8]!==o||e[9]!==p||e[10]!==d||e[11]!==f||e[12]!==n?(s=x("select",{className:"h-6 rounded-md border border-border bg-background px-1 tabular-nums outline-none focus-visible:border-ring","data-testid":p,id:d,onChange:o,value:n,children:f}),e[8]=o,e[9]=p,e[10]=d,e[11]=f,e[12]=n,e[13]=s):s=e[13];let u;return e[14]!==c||e[15]!==g||e[16]!==s?(u=N("label",{className:"flex items-center gap-1.5",htmlFor:c,children:[g,s]}),e[14]=c,e[15]=g,e[16]=s,e[17]=u):u=e[17],u},_=b=>{const e=w(25),{onJump:t,page:l,pages:r,prefix:n}=b,a=k();let i;e[0]!==t||e[1]!==r?(i=y=>{const j=Number.parseInt(y,10);Number.isNaN(j)||t(Math.min(Math.max(1,j),Math.max(1,r)))},e[0]=t,e[1]=r,e[2]=i):i=e[2];const o=i;let c;e[3]!==o?(c=y=>{y.key==="Enter"&&o(y.currentTarget.value)},e[3]=o,e[4]=c):c=e[4];const m=c;let g;e[5]!==o?(g=y=>{o(y.currentTarget.value)},e[5]=o,e[6]=g):g=e[6];const p=g;let d;e[7]!==a?(d=a("Page"),e[7]=a,e[8]=d):d=e[8];let f;e[9]!==a?(f=a("Page"),e[9]=a,e[10]=f):f=e[10];const s=`${n}-page-jump`,u=Math.max(1,r);let h;e[11]!==p||e[12]!==m||e[13]!==l||e[14]!==f||e[15]!==s||e[16]!==u?(h=x("input",{"aria-label":f,className:"h-6 w-12 rounded-md border border-border bg-background px-1 text-center tabular-nums outline-none focus-visible:border-ring","data-testid":s,defaultValue:l,max:u,min:1,onBlur:p,onKeyDown:m,type:"number"},l),e[11]=p,e[12]=m,e[13]=l,e[14]=f,e[15]=s,e[16]=u,e[17]=h):h=e[17];let v;e[18]!==r||e[19]!==a?(v=a("of {pages}",{pages:r}),e[18]=r,e[19]=a,e[20]=v):v=e[20];let $;return e[21]!==d||e[22]!==h||e[23]!==v?($=N("span",{className:"flex items-center gap-1.5 tabular-nums",children:[d,h,v]}),e[21]=d,e[22]=h,e[23]=v,e[24]=$):$=e[24],$},Z=({hasNext:b,hasPrevious:e,onJumpToPage:t,onNext:l,onPageSizeChange:r,onPrevious:n,pageSize:a,pageSizeOptions:i=J,prefix:o,rangeEnd:c,rangeStart:m,total:g})=>{const p=k(),d="rounded-md border border-border px-2.5 py-1 text-xs font-medium text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-50",f=a!==void 0&&a>0?Math.max(1,Math.ceil(g/a)):1,s=a!==void 0&&a>0?Math.floor(Math.max(0,m-1)/a)+1:1;return N("div",{className:"flex w-full items-center justify-between gap-3 text-xs text-muted-foreground",children:[N("div",{className:"flex items-center gap-3",children:[a!==void 0&&r!==void 0&&x(V,{onChange:r,options:i,prefix:o,value:a}),x("span",{className:"tabular-nums","data-testid":`${o}-page-info`,children:p("{rangeStart}-{rangeEnd} of {total}",{rangeEnd:c,rangeStart:m,total:g})})]}),N("div",{className:"flex items-center gap-3",children:[x("button",{className:d,"data-testid":`${o}-prev`,disabled:!e,onClick:n,type:"button",children:p("Previous")}),a!==void 0&&t!==void 0&&x(_,{onJump:t,page:s,pages:f,prefix:o}),x("button",{className:d,"data-testid":`${o}-next`,disabled:!b,onClick:l,type:"button",children:p("Next")})]})]})};function B(b){return x("option",{value:b,children:b},b)}const S=b=>b==null?"∅":b===""?"(empty)":typeof b=="object"?JSON.stringify(b):String(b),A=b=>{const e=w(32),{column:t,onFacetFilter:l,state:r}=b,n=k();let a;e[0]!==t||e[1]!==l||e[2]!==r.result?.values?(a=u=>{const h=Number(u.currentTarget.dataset.index),v=r.result?.values[h];v!==void 0&&l(t,v.value)},e[0]=t,e[1]=l,e[2]=r.result?.values,e[3]=a):a=e[3];const i=a,o=`db-facet-${t}`;let c;e[4]!==t?(c=x("span",{className:"font-medium text-foreground",children:t}),e[4]=t,e[5]=c):c=e[5];let m;e[6]!==r.loading||e[7]!==r.result||e[8]!==n?(m=r.loading&&r.result===null&&x("span",{className:"text-muted-foreground",children:n("Loading…")}),e[6]=r.loading,e[7]=r.result,e[8]=n,e[9]=m):m=e[9];let g;e[10]!==r.error?(g=r.error!==null&&x("span",{className:"text-destructive",role:"alert",children:r.error}),e[10]=r.error,e[11]=g):g=e[11];let p;e[12]!==r.result?.values?(p=r.result?.values??[],e[12]=r.result?.values,e[13]=p):p=e[13];let d;if(e[14]!==t||e[15]!==i||e[16]!==p){let u;e[18]!==t||e[19]!==i?(u=(h,v)=>N("button",{className:"flex items-center justify-between gap-2 rounded px-1 py-0.5 text-left text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground","data-index":v,"data-testid":`db-facet-value-${t}`,onClick:i,type:"button",children:[x("span",{className:"truncate",children:S(h.value)}),x("span",{className:"shrink-0 tabular-nums text-foreground/70",children:h.count})]},S(h.value)),e[18]=t,e[19]=i,e[20]=u):u=e[20],d=p.map(u),e[14]=t,e[15]=i,e[16]=p,e[17]=d}else d=e[17];let f;e[21]!==t||e[22]!==r.result||e[23]!==n?(f=r.result?.truncated===!0&&x("span",{className:"text-muted-foreground","data-testid":`db-facet-truncated-${t}`,children:n("Showing the {n} most common values.",{n:r.result.values.length})}),e[21]=t,e[22]=r.result,e[23]=n,e[24]=f):f=e[24];let s;return e[25]!==o||e[26]!==c||e[27]!==m||e[28]!==g||e[29]!==d||e[30]!==f?(s=N("section",{className:"flex flex-col gap-1","data-testid":o,children:[c,m,g,d,f]}),e[25]=o,e[26]=c,e[27]=m,e[28]=g,e[29]=d,e[30]=f,e[31]=s):s=e[31],s},ee=b=>{const e=w(26),{columns:t,facets:l,onFacetFilter:r,onToggleFacet:n}=b,a=k();let i;e[0]!==n?(i=h=>{const{column:v}=h.currentTarget.dataset;v!==void 0&&n(v)},e[0]=n,e[1]=i):i=e[1];const o=i;if(t.length===0)return null;let c;e[2]!==a?(c=a("Facets"),e[2]=a,e[3]=c):c=e[3];let m;e[4]!==c?(m=x("span",{className:"font-mono text-[11px] tracking-wide uppercase text-muted-foreground",children:c}),e[4]=c,e[5]=m):m=e[5];let g;if(e[6]!==t||e[7]!==l||e[8]!==o){let h;e[10]!==l||e[11]!==o?(h=v=>x("button",{"aria-pressed":v in l,className:"rounded border border-border px-1.5 py-0.5 text-muted-foreground transition-colors hover:bg-accent aria-pressed:bg-accent aria-pressed:text-accent-foreground","data-column":v,"data-testid":`db-facet-toggle-${v}`,onClick:o,type:"button",children:v},v),e[10]=l,e[11]=o,e[12]=h):h=e[12],g=t.map(h),e[6]=t,e[7]=l,e[8]=o,e[9]=g}else g=e[9];let p;e[13]!==g?(p=x("div",{className:"flex flex-wrap gap-1",children:g}),e[13]=g,e[14]=p):p=e[14];let d;e[15]!==m||e[16]!==p?(d=N("div",{className:"flex flex-col gap-1.5",children:[m,p]}),e[15]=m,e[16]=p,e[17]=d):d=e[17];let f;e[18]!==l?(f=Object.entries(l),e[18]=l,e[19]=f):f=e[19];let s;e[20]!==r||e[21]!==f?(s=f.map(h=>{const[v,$]=h;return x(A,{column:v,onFacetFilter:r,state:$},v)}),e[20]=r,e[21]=f,e[22]=s):s=e[22];let u;return e[23]!==d||e[24]!==s?(u=N("aside",{className:"flex w-56 shrink-0 flex-col gap-3 overflow-auto border-l border-border p-3 text-xs","data-testid":"db-facets",children:[d,s]}),e[23]=d,e[24]=s,e[25]=u):u=e[25],u};function D(b){const e=w(2),t=C(b);let l;return e[0]!==b?(l=()=>{t.current=b},e[0]=b,e[1]=l):l=e[1],T(l),t}const te=()=>{const[b,e]=L({}),t=D(b),l=C({}),r=async(n,a)=>{const i=(l.current[n]??0)+1;l.current[n]=i,e(o=>n in o?{...o,[n]:{error:null,loading:!0,result:o[n]?.result??null}}:o);try{const o=await a(n);if(l.current[n]!==i)return;e(c=>n in c?{...c,[n]:{error:null,loading:!1,result:o}}:c)}catch(o){if(l.current[n]!==i)return;e(c=>n in c?{...c,[n]:{error:P(o),loading:!1,result:null}}:c)}};return{clearFacets:()=>{e({}),t.current={}},facets:b,facetsRef:t,refetchFacets:n=>{for(const a of Object.keys(t.current))F(r(a,n))},toggleFacet:(n,a)=>{if(n in t.current){e(i=>Object.fromEntries(Object.entries(i).filter(([o])=>o!==n)));return}e(i=>({...i,[n]:{error:null,loading:!0,result:null}})),a!==null&&F(r(n,a))}}},M=34,z=600,K=b=>{const e=w(21),{item:t,onSelect:l,prefix:r,selected:n,start:a}=b;let i;e[0]!==t.name||e[1]!==l?(i=()=>{l(t.name)},e[0]=t.name,e[1]=l,e[2]=i):i=e[2];const o=i,c=`translateY(${String(a)}px)`;let m;e[3]!==c?(m={insetInline:0,position:"absolute",top:0,transform:c},e[3]=c,e[4]=m):m=e[4];const g=m,p=n?"bg-accent font-medium text-accent-foreground":"text-foreground";let d;e[5]!==p?(d=O("flex w-full items-center justify-between gap-2 rounded-md px-2 py-1.5 text-start text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent",p),e[5]=p,e[6]=d):d=e[6];const f=`${r}-table-${t.name}`;let s;e[7]!==t.name?(s=x("span",{className:"truncate",children:t.name}),e[7]=t.name,e[8]=s):s=e[8];let u;e[9]!==t.rowCount?(u=x("span",{className:"shrink-0 rounded bg-muted px-1.5 text-xs tabular-nums text-muted-foreground",children:t.rowCount}),e[9]=t.rowCount,e[10]=u):u=e[10];let h;e[11]!==o||e[12]!==n||e[13]!==d||e[14]!==f||e[15]!==s||e[16]!==u?(h=N("button",{"aria-pressed":n,className:d,"data-testid":f,onClick:o,type:"button",children:[s,u]}),e[11]=o,e[12]=n,e[13]=d,e[14]=f,e[15]=s,e[16]=u,e[17]=h):h=e[17];let v;return e[18]!==g||e[19]!==h?(v=x("li",{style:g,children:h}),e[18]=g,e[19]=h,e[20]=v):v=e[20],v},re=({header:b,onReload:e,onSelect:t,prefix:l,reloadLabel:r,selected:n,tables:a})=>{const i=k(),[o,c]=L(""),m=C(null),g=s=>{c(s.target.value)},p=E(()=>{const s=o.trim().toLowerCase();return s===""?a:a.filter(u=>u.name.toLowerCase().includes(s))},[o,a]),d=R({count:p.length,estimateSize:()=>M,getScrollElement:()=>m.current,initialRect:{height:z,width:240},observeElementRect:(s,u)=>I(s,u,z),overscan:12}).getVirtualItems(),f={height:p.length*M};return N("aside",{className:"flex h-full w-60 shrink-0 flex-col border-e border-border bg-sidebar","data-testid":`${l}-table-list`,children:[b,N("div",{className:"flex h-9 shrink-0 items-center justify-between gap-2 border-b border-border px-3",children:[x("span",{className:"font-mono text-[11px] tracking-wide uppercase text-muted-foreground",children:i("Tables")}),e!==void 0&&x("button",{"aria-label":r??i("Refresh"),className:"flex size-6 items-center justify-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:bg-accent","data-testid":`${l}-load-tables`,onClick:e,title:r??i("Refresh"),type:"button",children:x("svg",{"aria-hidden":"true",className:"size-3.5",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:x("path",{d:"M4 12a8 8 0 0 1 13.7-5.6L20 8M20 4v4h-4M20 12a8 8 0 0 1-13.7 5.6L4 16m0 4v-4h4"})})})]}),x("div",{className:"shrink-0 border-b border-border p-2",children:x("input",{className:"h-7 w-full rounded-md border border-border bg-background px-2 text-xs outline-none placeholder:text-muted-foreground focus-visible:border-ring","data-testid":`${l}-table-search`,onChange:g,placeholder:i("search table…"),type:"search",value:o})}),N("ul",{className:"relative flex-1 overflow-y-auto p-1.5","data-testid":`${l}-table-list-rows`,ref:m,children:[x("li",{"aria-hidden":"true",style:f}),d.map(s=>{const u=p[s.index];return u===void 0?null:x(K,{item:u,onSelect:t,prefix:l,selected:n===u.name,start:s.start},u.name)})]})]})};export{ee as $,Z as _,re as a,D as i,te as u};
@@ -1 +0,0 @@
1
- import{c as m}from"react/compiler-runtime";import{useState as s,useEffect as a}from"react";const p=function(o,c){const e=m(4),t=c===void 0?300:c,[n,f]=s(o);let r,u;return e[0]!==t||e[1]!==o?(r=()=>{const i=setTimeout(()=>{f(o)},t);return()=>{clearTimeout(i)}},u=[o,t],e[0]=t,e[1]=o,e[2]=r,e[3]=u):(r=e[2],u=e[3]),a(r,u),n};export{p as default};
@@ -1 +0,0 @@
1
- import{b as de,c as ce}from"./chunk-KUVMORDQ.js";import{a as ie}from"./chunk-QWGT25SE.js";import{a as le}from"./chunk-CTNB2KIA.js";import{a as se}from"./chunk-X665E2HU.js";import{b as ae}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{a as ne}from"./chunk-LFKCLLPT.js";import{R as Z}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import"./chunk-2OUPA2WJ.js";import{b as Y}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as oe}from"./chunk-AHVDZWB3.js";import"./chunk-XXQUMVWH.js";import"./chunk-VORDESEQ.js";import"./chunk-QLQADHFE.js";import{a as re}from"./chunk-ERMTJYQF.js";import{c as te}from"./chunk-YGKR536O.js";import"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import{a as X}from"./chunk-XQCVZAGU.js";import{d as z,q as ee}from"./chunk-OG4N2XHD.js";import"./chunk-QNUWWC3N.js";import{a as M,e as Q,f as he,g as fe,h as pe,j as V}from"./chunk-3XIESWL4.js";var H=Q(fe(),1),K=Q(he(),1);var a=Q(pe(),1);var me=M(o=>Math.min(100,Math.max(0,o)),"V"),ge=M((o,e)=>{if(!Number.isFinite(e)||e<=0)return{leftPercent:0,widthPercent:100};let t=me(o.offsetMs/e*100),s=o.durationMs/e*100,r=Math.max(.5,Math.min(me(s),100-t));return{leftPercent:t,widthPercent:r}},"he"),xe=M((o,e)=>{let t=e.trim().toLowerCase();return t===""?[...o]:o.filter(s=>s.rootName.toLowerCase().includes(t)||s.functionPath.toLowerCase().includes(t)||s.traceId.toLowerCase().includes(t))},"fe"),G=M(o=>Number.isFinite(o)?o>0&&o<1?`${o.toFixed(2)}ms`:`${String(Math.round(o))}ms`:"\u2014","U"),be=14,we=M(o=>Array.isArray(o?.traces)?o.traces:[],"ge"),Ne=M(o=>{let e=(0,H.c)(50),{span:t,traceDurationMs:s}=o,r=z(),n;e[0]!==t||e[1]!==s?(n=ge(t,s),e[0]=t,e[1]=s,e[2]=n):n=e[2];let{leftPercent:P,widthPercent:x}=n,L;e[3]!==t.attributes?(L=ie(t.attributes),e[3]=t.attributes,e[4]=L):L=e[4];let k=L,C=t.depth*be,y;e[5]!==C?(y={paddingLeft:C},e[5]=C,e[6]=y):y=e[6];let b=y,c=`${String(P)}%`,w=`${String(x)}%`,p;e[7]!==c||e[8]!==w?(p={left:c,width:w},e[7]=c,e[8]=w,e[9]=p):p=e[9];let l=p,f=t.depth,i;e[10]!==t.ok||e[11]!==r?(i=t.ok?null:(0,a.jsx)("span",{"aria-label":r("Errored span"),className:"mr-1 text-destructive","data-testid":"tr-span-error",role:"img",children:"\u25CF"}),e[10]=t.ok,e[11]=r,e[12]=i):i=e[12];let v;e[13]!==b||e[14]!==t.name||e[15]!==i?(v=(0,a.jsxs)("span",{className:"w-56 shrink-0 truncate",role:"gridcell",style:b,title:t.name,children:[i,t.name]}),e[13]=b,e[14]=t.name,e[15]=i,e[16]=v):v=e[16];let d;e[17]!==t.durationMs||e[18]!==t.offsetMs||e[19]!==r?(d=r("starts {offset} in, runs {duration}",{duration:G(t.durationMs),offset:G(t.offsetMs)}),e[17]=t.durationMs,e[18]=t.offsetMs,e[19]=r,e[20]=d):d=e[20];let N=t.ok?"bg-primary/70":"bg-destructive",m;e[21]!==N?(m=V("absolute inset-y-0 rounded-sm",N),e[21]=N,e[22]=m):m=e[22];let u;e[23]!==l||e[24]!==P||e[25]!==m||e[26]!==x?(u=(0,a.jsx)("span",{className:m,"data-left":P,"data-testid":"tr-span-bar","data-width":x,style:l}),e[23]=l,e[24]=P,e[25]=m,e[26]=x,e[27]=u):u=e[27];let h;e[28]!==d||e[29]!==u?(h=(0,a.jsx)("span",{"aria-label":d,className:"relative h-3 flex-1 overflow-hidden rounded-sm bg-muted",role:"gridcell",children:u}),e[28]=d,e[29]=u,e[30]=h):h=e[30];let g;e[31]!==t.durationMs?(g=G(t.durationMs),e[31]=t.durationMs,e[32]=g):g=e[32];let I;e[33]!==g?(I=(0,a.jsx)("span",{className:"w-16 shrink-0 text-right tabular-nums text-muted-foreground",role:"gridcell",children:g}),e[33]=g,e[34]=I):I=e[34];let S;e[35]!==t.error?(S=t.error===void 0?null:(0,a.jsx)("span",{className:"text-destructive","data-testid":"tr-span-error-message",title:t.error.message,children:`${t.error.type}: ${t.error.message}`}),e[35]=t.error,e[36]=S):S=e[36];let T;e[37]!==S?(T=(0,a.jsx)("span",{className:"w-64 shrink-0 truncate text-muted-foreground",role:"gridcell",children:S}),e[37]=S,e[38]=T):T=e[38];let F;e[39]!==k?(F=k===""?null:(0,a.jsx)("span",{"data-testid":"tr-span-attributes",title:k,children:k}),e[39]=k,e[40]=F):F=e[40];let $;e[41]!==F?($=(0,a.jsx)("span",{className:"w-64 shrink-0 truncate text-muted-foreground",role:"gridcell",children:F}),e[41]=F,e[42]=$):$=e[42];let _;return e[43]!==t.depth||e[44]!==v||e[45]!==h||e[46]!==I||e[47]!==T||e[48]!==$?(_=(0,a.jsxs)("div",{className:"flex items-center gap-2 border-b border-border px-3 py-1.5 font-mono text-xs last:border-b-0 hover:bg-muted/50","data-depth":f,"data-testid":"tr-span-row",role:"row",children:[v,h,I,T,$]}),e[43]=t.depth,e[44]=v,e[45]=h,e[46]=I,e[47]=T,e[48]=$,e[49]=_):_=e[49],_},"xe"),Me=M(o=>{let e=(0,H.c)(50),{expanded:t,onToggle:s,trace:r}=o,n=z(),P;e[0]!==s||e[1]!==r.traceId?(P=M(()=>{s(r.traceId)},"S"),e[0]=s,e[1]=r.traceId,e[2]=P):P=e[2];let x=P,L=`tr-row-${r.traceId}`,k=`tr-waterfall-${r.traceId}`,C=`tr-toggle-${r.traceId}`,y=t?"\u25BE":"\u25B8",b;e[3]!==y?(b=(0,a.jsx)("span",{"aria-hidden":"true",className:"w-3 shrink-0 text-xs text-muted-foreground",children:y}),e[3]=y,e[4]=b):b=e[4];let c;e[5]!==r.rootName?(c=(0,a.jsx)("span",{className:"w-56 shrink-0 truncate text-sm font-medium",title:r.rootName,children:r.rootName}),e[5]=r.rootName,e[6]=c):c=e[6];let w;e[7]!==r.functionPath?(w=(0,a.jsx)("span",{className:"w-48 shrink-0 truncate font-mono text-xs text-muted-foreground",title:r.functionPath,children:r.functionPath}),e[7]=r.functionPath,e[8]=w):w=e[8];let p;e[9]!==r.durationMs?(p=G(r.durationMs),e[9]=r.durationMs,e[10]=p):p=e[10];let l;e[11]!==p?(l=(0,a.jsx)("span",{className:"w-20 shrink-0 text-right font-mono text-xs tabular-nums text-muted-foreground",children:p}),e[11]=p,e[12]=l):l=e[12];let f;e[13]!==n||e[14]!==r.spans.length?(f=n("{count} spans",{count:r.spans.length}),e[13]=n,e[14]=r.spans.length,e[15]=f):f=e[15];let i;e[16]!==f?(i=(0,a.jsx)("span",{className:"w-20 shrink-0 text-right font-mono text-xs tabular-nums text-muted-foreground",children:f}),e[16]=f,e[17]=i):i=e[17];let v=r.ok?"secondary":"destructive",d;e[18]!==n||e[19]!==r.ok?(d=r.ok?n("ok"):n("error"),e[18]=n,e[19]=r.ok,e[20]=d):d=e[20];let N;e[21]!==v||e[22]!==d?(N=(0,a.jsx)("span",{className:"shrink-0",children:(0,a.jsx)(Y,{variant:v,children:d})}),e[21]=v,e[22]=d,e[23]=N):N=e[23];let m;e[24]!==r.startTs?(m=ee(r.startTs),e[24]=r.startTs,e[25]=m):m=e[25];let u;e[26]!==m?(u=(0,a.jsx)("span",{className:"flex-1 truncate text-right font-mono text-xs tabular-nums text-muted-foreground",children:m}),e[26]=m,e[27]=u):u=e[27];let h;e[28]!==t||e[29]!==x||e[30]!==l||e[31]!==i||e[32]!==N||e[33]!==u||e[34]!==k||e[35]!==C||e[36]!==b||e[37]!==c||e[38]!==w?(h=(0,a.jsxs)("button",{"aria-controls":k,"aria-expanded":t,className:"flex w-full items-center gap-3 px-3 py-2 text-left hover:bg-muted/50","data-testid":C,onClick:x,type:"button",children:[b,c,w,l,i,N,u]}),e[28]=t,e[29]=x,e[30]=l,e[31]=i,e[32]=N,e[33]=u,e[34]=k,e[35]=C,e[36]=b,e[37]=c,e[38]=w,e[39]=h):h=e[39];let g;e[40]!==t||e[41]!==n||e[42]!==r.durationMs||e[43]!==r.spans||e[44]!==r.traceId?(g=t&&(0,a.jsx)("div",{"aria-label":n("Trace waterfall"),className:"bg-muted/20","data-testid":`tr-waterfall-${r.traceId}`,id:`tr-waterfall-${r.traceId}`,role:"grid",children:r.spans.map(S=>(0,a.jsx)(Ne,{span:S,traceDurationMs:r.durationMs},S.spanId))}),e[40]=t,e[41]=n,e[42]=r.durationMs,e[43]=r.spans,e[44]=r.traceId,e[45]=g):g=e[45];let I;return e[46]!==h||e[47]!==g||e[48]!==L?(I=(0,a.jsxs)("div",{className:"border-b border-border last:border-b-0","data-testid":L,children:[h,g]}),e[46]=h,e[47]=g,e[48]=L,e[49]=I):I=e[49],I},"be"),Be=M(o=>{let e=(0,H.c)(44),{initialShardKey:t}=o,s=z(),[r]=(0,K.useState)(de),[n,P]=(0,K.useState)(r?.shardKey!==void 0&&r.shardKey!==""?r.shardKey:t??""),[x,L]=(0,K.useState)(r?.traceId??""),[k,C]=(0,K.useState)(ve),y;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=[],e[0]=y):y=e[0],(0,K.useEffect)(ke,y);let b;e[1]!==n?(b=n.trim(),e[1]=n,e[2]=b):b=e[2];let c=ne(b,400),w;e[3]===Symbol.for("react.memo_cache_sentinel")?(w={},e[3]=w):w=e[3];let p;e[4]!==c?(p={live:!0,shardKey:c},e[4]=c,e[5]=p):p=e[5];let{data:l,error:f,errorSource:i,isLoading:v,liveError:d}=te(re.getTraces,w,p),N,m;e[6]!==l||e[7]!==c?(N=M(()=>{l!==void 0&&ae(c)},"N"),m=[l,c],e[6]=l,e[7]=c,e[8]=N,e[9]=m):(N=e[8],m=e[9]),(0,K.useEffect)(N,m);let u;if(e[10]!==l||e[11]!==f||e[12]!==i||e[13]!==k||e[14]!==v||e[15]!==d||e[16]!==x||e[17]!==n||e[18]!==s){let h=we(l),g=l?.total??h.length,I=g>h.length,S=xe(h,x),T;e[20]===Symbol.for("react.memo_cache_sentinel")?(T=M(E=>{L(E.target.value)},"$"),e[20]=T):T=e[20];let F=T,$;e[21]===Symbol.for("react.memo_cache_sentinel")?($=M(E=>{C(ue=>{let q=new Set(ue);return q.has(E)?q.delete(E):q.add(E),q})},"T"),e[21]=$):$=e[21];let _=$,J=f===null&&S.length===0&&!v,j;e[22]!==n?(j=(0,a.jsx)(se,{onChange:P,testId:"tr-shard-input",value:n}),e[22]=n,e[23]=j):j=e[23];let A;e[24]!==s?(A=s("Search traces"),e[24]=s,e[25]=A):A=e[25];let D;e[26]!==s?(D=s("search trace or function"),e[26]=s,e[27]=D):D=e[27];let B;e[28]!==x||e[29]!==A||e[30]!==D?(B=(0,a.jsx)(Z,{"aria-label":A,className:"h-8 w-56","data-testid":"tr-search",onChange:F,placeholder:D,value:x}),e[28]=x,e[29]=A,e[30]=D,e[31]=B):B=e[31];let O;e[32]!==d?(O=(0,a.jsx)(le,{message:d,prefix:"tr"}),e[32]=d,e[33]=O):O=e[33];let R;e[34]!==j||e[35]!==B||e[36]!==O?(R=(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[j,B,O]}),e[34]=j,e[35]=B,e[36]=O,e[37]=R):R=e[37];let U;e[38]!==f||e[39]!==i?(U=f!==null&&(0,a.jsx)(oe,{error:i,testId:"tr-error"}),e[38]=f,e[39]=i,e[40]=U):U=e[40];let W;e[41]!==J||e[42]!==s?(W=J&&(0,a.jsx)(X,{description:s("Traces recorded with ctx.trace show up here as your app handles traffic. The span buffer resets when the shard hibernates."),icon:(0,a.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M4 6h10M7 12h13M10 18h7"})}),testId:"tr-empty",title:s("No traces")}),e[41]=J,e[42]=s,e[43]=W):W=e[43],u=(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-traces-panel",children:[R,U,W,f===null&&I&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"tr-truncated",children:s("Showing the {shown} most recent of {total} traces in the buffer.",{shown:h.length,total:g})}),f===null&&S.length>0&&(0,a.jsx)("div",{"aria-label":s("Recent traces"),className:"overflow-hidden rounded-xl border border-border shadow-xs","data-testid":"tr-list",children:S.map(E=>(0,a.jsx)(Me,{expanded:k.has(E.traceId),onToggle:_,trace:E},E.traceId))})]}),e[10]=l,e[11]=f,e[12]=i,e[13]=k,e[14]=v,e[15]=d,e[16]=x,e[17]=n,e[18]=s,e[19]=u}else u=e[19];return u},"Be");function ve(){return new Set}M(ve,"we");function ke(){ce()}M(ke,"Ne");export{Be as TracesPanel};
@@ -1 +0,0 @@
1
- import{a as et}from"./chunk-5YADKLAQ.js";import"./chunk-GMR677FL.js";import"./chunk-7H7LZRLP.js";import"./chunk-SD4BERSA.js";import"./chunk-IC4L6G56.js";import{a as Re}from"./chunk-5Y3QLNWX.js";import{a as Ze}from"./chunk-CTNB2KIA.js";import"./chunk-I6A5C46N.js";import"./chunk-2QSHLBCO.js";import"./chunk-BGBLQ563.js";import"./chunk-IVFHIQOT.js";import"./chunk-QBWRC5YX.js";import"./chunk-4UOFSGUS.js";import{a as Ye}from"./chunk-QXXIJAD5.js";import{a as ze}from"./chunk-X665E2HU.js";import{b as We}from"./chunk-GRL5MG3Z.js";import{d as Ke,e as _e}from"./chunk-SMIESS7P.js";import"./chunk-7T7UOTYK.js";import{a as He}from"./chunk-LFKCLLPT.js";import{R as Ae}from"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{c as Le}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as Ee}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as $e}from"./chunk-AHVDZWB3.js";import"./chunk-XXQUMVWH.js";import"./chunk-VORDESEQ.js";import"./chunk-QLQADHFE.js";import{a as T}from"./chunk-ERMTJYQF.js";import{c as de}from"./chunk-YGKR536O.js";import{f as Fe}from"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import{a as ke}from"./chunk-XQCVZAGU.js";import{a as Ge,b as Qe,c as Xe,d as Ie,e as M,f as I}from"./chunk-MIQTKZAR.js";import{a as Je,e as Pe}from"./chunk-UZERI5YC.js";import{d as oe,f as Be,g as Ue,h as Ve,m as Ne,q as we}from"./chunk-OG4N2XHD.js";import"./chunk-QNUWWC3N.js";import{a as m,e as ie,f as Ce,g as Te,h as De,j as se}from"./chunk-3XIESWL4.js";var me=ie(Te(),1),ce=ie(Ce(),1);var tt=ie(Te(),1);var $=ie(Ce(),1);var l=ie(De(),1);var mt=Be(T.runMigration),at=m(a=>{let e=(0,tt.c)(99),{initialShardKey:r}=a,n=Fe(),t=oe(),[i,s]=(0,$.useState)(r??""),[d,u]=(0,$.useState)(""),[f,g]=(0,$.useState)("up"),[h,x]=(0,$.useState)(!0),[p,v]=(0,$.useState)(!1),[b,y]=(0,$.useState)(null),[c,j]=(0,$.useState)(null),k;e[0]!==i?(k=i.trim(),e[0]=i,e[1]=k):k=e[1];let N=He(k,400),R;e[2]!==i?(R=i.trim(),e[2]=i,e[3]=R):R=e[3];let O=R===N,q;e[4]===Symbol.for("react.memo_cache_sentinel")?(q={},e[4]=q):q=e[4];let ue;e[5]!==N?(ue={live:!0,shardKey:N},e[5]=N,e[6]=ue):ue=e[6];let w=de(T.migrationStatus,q,ue),S=w.data?.migrations??null,je=w.error,{errorSource:Se,liveError:Oe}=w,he,pe;e[7]!==N||e[8]!==w.data?(he=m(()=>{w.data!==void 0&&We(N)},"H"),pe=[w.data,N],e[7]=N,e[8]=w.data,e[9]=he,e[10]=pe):(he=e[9],pe=e[10]),(0,$.useEffect)(he,pe);let fe;if(e[11]!==n||e[12]!==f||e[13]!==h||e[14]!==d||e[15]!==i||e[16]!==w||e[17]!==t){let C=m(async()=>{let qe=d.trim();if(qe===""){j(t("Enter a migration id")),y(null);return}v(!0),j(null);try{let Me=await n.query(mt,{direction:f,dryRun:h,id:qe},Ue(i));y(Me),w.refetch()}catch(Me){let ct=Me;y(null),j(Ve(ct))}v(!1)},"m");fe=m(()=>{Ne(C())},"X"),e[11]=n,e[12]=f,e[13]=h,e[14]=d,e[15]=i,e[16]=w,e[17]=t,e[18]=fe}else fe=e[18];let ge=fe,be;e[19]===Symbol.for("react.memo_cache_sentinel")?(be=m(C=>{u(C.target.value)},"Z"),e[19]=be):be=e[19];let ot=be,ve;e[20]===Symbol.for("react.memo_cache_sentinel")?(ve=m(C=>{g(C.target.value==="down"?"down":"up")},"ee"),e[20]=ve):ve=e[20];let dt=ve,xe;e[21]===Symbol.for("react.memo_cache_sentinel")?(xe=m(C=>{x(C.target.checked)},"re"),e[21]=xe):xe=e[21];let lt=xe,D;e[22]!==i?(D=(0,l.jsx)(ze,{onChange:s,testId:"mg-shard-input",value:i}),e[22]=i,e[23]=D):D=e[23];let F;e[24]!==Oe?(F=(0,l.jsx)(Ze,{message:Oe,prefix:"mg"}),e[24]=Oe,e[25]=F):F=e[25];let K;e[26]!==D||e[27]!==F?(K=(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[D,F]}),e[26]=D,e[27]=F,e[28]=K):K=e[28];let _;e[29]!==je||e[30]!==Se?(_=je!==null&&(0,l.jsx)($e,{error:Se,testId:"mg-status-error"}),e[29]=je,e[30]=Se,e[31]=_):_=e[31];let E;e[32]!==S||e[33]!==t?(E=S!==null&&S.length===0&&(0,l.jsx)(ke,{description:t("Data migrations you run against this shard will be tracked here."),icon:(0,l.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,l.jsx)("path",{d:"M4 12a8 8 0 0 1 13.7-5.6L20 8M20 4v4h-4M20 12a8 8 0 0 1-13.7 5.6L4 16m0 4v-4h4"})}),testId:"mg-empty",title:t("No migrations have run on this shard.")}),e[32]=S,e[33]=t,e[34]=E):E=e[34];let A;e[35]!==S||e[36]!==t?(A=S!==null&&S.length>0&&(0,l.jsx)(Je,{className:"overflow-hidden py-0",children:(0,l.jsx)(Pe,{className:"px-0",children:(0,l.jsxs)(Ge,{"data-testid":"mg-table",children:[(0,l.jsx)(Qe,{children:(0,l.jsxs)(Ie,{children:[(0,l.jsx)(M,{children:t("id")}),(0,l.jsx)(M,{children:t("direction")}),(0,l.jsx)(M,{children:t("status")}),(0,l.jsx)(M,{children:t("processed")}),(0,l.jsx)(M,{children:t("changed")}),(0,l.jsx)(M,{children:t("updated")}),(0,l.jsx)(M,{children:t("error")})]})}),(0,l.jsx)(Xe,{children:S.map(ut)})]})})}),e[35]=S,e[36]=t,e[37]=A):A=e[37];let L;e[38]!==t?(L=t("Run migration"),e[38]=t,e[39]=L):L=e[39];let J;e[40]!==L?(J=(0,l.jsx)(Re,{children:L}),e[40]=L,e[41]=J):J=e[41];let P;e[42]!==t?(P=t("Migration id"),e[42]=t,e[43]=P):P=e[43];let B;e[44]!==t?(B=t("migration id"),e[44]=t,e[45]=B):B=e[45];let U;e[46]!==d||e[47]!==P||e[48]!==B?(U=(0,l.jsx)(Ae,{"aria-label":P,className:"w-auto","data-testid":"mg-id-input",onChange:ot,placeholder:B,value:d}),e[46]=d,e[47]=P,e[48]=B,e[49]=U):U=e[49];let V;e[50]!==t?(V=t("Direction"),e[50]=t,e[51]=V):V=e[51];let W;e[52]!==t?(W=t("up"),e[52]=t,e[53]=W):W=e[53];let z;e[54]!==W?(z=(0,l.jsx)("option",{value:"up",children:W}),e[54]=W,e[55]=z):z=e[55];let H;e[56]!==t?(H=t("down"),e[56]=t,e[57]=H):H=e[57];let G;e[58]!==H?(G=(0,l.jsx)("option",{value:"down",children:H}),e[58]=H,e[59]=G):G=e[59];let Q;e[60]!==f||e[61]!==V||e[62]!==z||e[63]!==G?(Q=(0,l.jsxs)("select",{"aria-label":V,className:"flex h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs transition-colors outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 dark:bg-input/30","data-testid":"mg-direction",onChange:dt,value:f,children:[z,G]}),e[60]=f,e[61]=V,e[62]=z,e[63]=G,e[64]=Q):Q=e[64];let X;e[65]!==h?(X=(0,l.jsx)("input",{checked:h,className:"size-4 accent-primary","data-testid":"mg-dry-run",id:"mg-dry-run",onChange:lt,type:"checkbox"}),e[65]=h,e[66]=X):X=e[66];let Y;e[67]!==t?(Y=t("Dry run"),e[67]=t,e[68]=Y):Y=e[68];let Z;e[69]!==X||e[70]!==Y?(Z=(0,l.jsxs)(Re,{className:"flex items-center gap-1.5",htmlFor:"mg-dry-run",children:[X,Y]}),e[69]=X,e[70]=Y,e[71]=Z):Z=e[71];let ee;e[72]!==h||e[73]!==ge||e[74]!==p||e[75]!==O||e[76]!==t?(ee=h?(0,l.jsx)(Le,{"data-testid":"mg-run",disabled:p||!O,onClick:ge,type:"button",children:t(p?"Running\u2026":"Run")}):(0,l.jsx)(Ye,{confirmLabel:t(p?"Running\u2026":"Run migration?"),disabled:p||!O,onConfirm:ge,testId:"mg-run",children:t("Run")}),e[72]=h,e[73]=ge,e[74]=p,e[75]=O,e[76]=t,e[77]=ee):ee=e[77];let te;e[78]!==U||e[79]!==Q||e[80]!==Z||e[81]!==ee?(te=(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[U,Q,Z,ee]}),e[78]=U,e[79]=Q,e[80]=Z,e[81]=ee,e[82]=te):te=e[82];let ae;e[83]!==J||e[84]!==te?(ae=(0,l.jsxs)("div",{className:"flex flex-col gap-2 rounded-xl border border-border bg-card p-3 shadow-xs",children:[J,te]}),e[83]=J,e[84]=te,e[85]=ae):ae=e[85];let re;e[86]!==c?(re=c!==null&&(0,l.jsx)("pre",{className:"text-sm text-destructive whitespace-pre-wrap","data-testid":"mg-run-error",role:"alert",children:c}),e[86]=c,e[87]=re):re=e[87];let ne;e[88]!==b||e[89]!==t?(ne=b!==null&&(0,l.jsxs)("p",{className:"text-sm text-muted-foreground","data-testid":"mg-run-result",children:[b.dryRun?t("Dry run: "):"",t("{status} \u2014 processed",{status:b.status}),b.processed,t(", changed"),b.changed]}),e[88]=b,e[89]=t,e[90]=ne):ne=e[90];let ye;return e[91]!==K||e[92]!==_||e[93]!==E||e[94]!==A||e[95]!==ae||e[96]!==re||e[97]!==ne?(ye=(0,l.jsxs)("div",{className:"flex flex-col gap-3 pt-4","data-testid":"lunora-migrations",children:[K,_,E,A,ae,re,ne]}),e[91]=K,e[92]=_,e[93]=E,e[94]=A,e[95]=ae,e[96]=re,e[97]=ne,e[98]=ye):ye=e[98],ye},"vr");function ut(a){return(0,l.jsxs)(Ie,{"data-testid":`mg-row-${a.id}`,children:[(0,l.jsx)(I,{children:a.id}),(0,l.jsx)(I,{children:a.direction}),(0,l.jsx)(I,{children:(0,l.jsx)(Ee,{variant:"secondary",children:a.status})}),(0,l.jsx)(I,{children:a.processed}),(0,l.jsx)(I,{children:a.changed}),(0,l.jsx)(I,{children:we(a.updatedAt)}),(0,l.jsx)(I,{children:a.error??""})]},a.id)}m(ut,"Qe");var o=ie(De(),1);var le=m(a=>typeof a=="object"&&a!==null,"k"),ht=m(a=>le(a)&&le(a.fields)&&le(a.indexes)&&le(a.relations)&&typeof a.shardMode=="string","z"),pt=m(a=>{if(a===void 0||a.trim()==="")return{status:"absent"};let e;try{e=JSON.parse(a)}catch(r){return{error:`baseline is not valid JSON: ${r instanceof Error?r.message:String(r)}`,status:"invalid"}}if(!le(e)||e.version!==1||!le(e.tables))return{error:`baseline is malformed or written by an incompatible version (expected version ${String(1)})`,status:"invalid"};for(let[r,n]of Object.entries(e.tables))if(!ht(n))return{error:`baseline table "${r}" has an invalid structure`,status:"invalid"};return{snapshot:{jurisdiction:typeof e.jurisdiction=="string"?e.jurisdiction:void 0,migrationIds:Array.isArray(e.migrationIds)?e.migrationIds:[],tables:e.tables,version:1},status:"ok"}},"B"),ft=m((a,e)=>a.unique===e.unique&&a.fields.length===e.fields.length&&a.fields.every((r,n)=>r===e.fields[n]),"L"),gt=m((a,e,r,n)=>{let t=[];return r.kind!==n.kind&&t.push({severity:"breaking",summary:`field ${a}.${e} changed type: ${r.kind} \u2192 ${n.kind} \u2014 add a data migration to convert existing values`,table:a,scope:"table",type:"changedFieldKind"}),r.optional&&!n.optional?t.push({severity:"breaking",summary:`field ${a}.${e} became required \u2014 rows missing it would be invalid; add a data migration to backfill it`,table:a,scope:"table",type:"fieldOptionalToRequired"}):!r.optional&&n.optional&&t.push({scope:"table",severity:"safe",summary:`field ${a}.${e} became optional`,table:a,type:"fieldRequiredToOptional"}),t},"Q"),bt=m((a,e,r)=>r.optional?{scope:"table",severity:"safe",summary:`added optional field ${a}.${e}`,table:a,type:"addedOptionalField"}:{severity:"breaking",summary:`added required field ${a}.${e} \u2014 existing rows have no value; add a data migration to backfill it`,table:a,scope:"table",type:"addedRequiredField"},"G"),vt=m((a,e,r,n)=>{for(let[t,i]of Object.entries(r.fields)){let s=e.fields[t];s===void 0?n.push(bt(a,t,i)):n.push(...gt(a,t,s,i))}for(let t of Object.keys(e.fields))r.fields[t]===void 0&&n.push({severity:"breaking",summary:`removed field ${a}.${t} \u2014 add a data migration if stored data must be cleaned up`,table:a,scope:"table",type:"removedField"})},"X"),xt=m((a,e,r,n)=>{for(let[t,i]of Object.entries(r.indexes)){let s=e.indexes[t];if(s===void 0){n.push({scope:"table",severity:"safe",summary:`added index ${t} on ${a}`,table:a,type:"addedIndex"});continue}ft(s,i)||n.push({severity:"breaking",summary:`index ${t} on ${a} changed shape \u2014 a query may have relied on the old index`,table:a,scope:"table",type:"changedIndex"})}for(let t of Object.keys(e.indexes))r.indexes[t]===void 0&&n.push({severity:"breaking",summary:`removed index ${t} on ${a} \u2014 a query that used \`.withIndex("${t}")\` would break`,table:a,scope:"table",type:"removedIndex"})},"Y"),yt=m((a,e,r,n)=>{for(let t of Object.keys(r.relations))e.relations[t]===void 0&&n.push({scope:"schema",severity:"safe",summary:`added relation ${a}.${t}`,table:a,type:"addedRelation"});for(let t of Object.keys(e.relations))r.relations[t]===void 0&&n.push({scope:"schema",severity:"breaking",summary:`removed relation ${a}.${t}`,table:a,type:"removedRelation"})},"Z"),kt=m((a,e,r,n)=>{e.shardMode!==r.shardMode&&n.push({severity:"breaking",summary:`table ${a} changed shard mode: ${e.shardMode} \u2192 ${r.shardMode} \u2014 its physical storage moves; add a data migration / re-shard plan`,table:a,scope:"table",type:"changedShardMode"}),vt(a,e,r,n),xt(a,e,r,n),yt(a,e,r,n)},"ee"),Nt=m((a,e)=>{let r=[],n=a?.tables??{};for(let[t,i]of Object.entries(e.tables)){let s=n[t];if(s===void 0){r.push({scope:"table",severity:"safe",summary:`added table ${t}`,table:t,type:"addedTable"});continue}kt(t,s,i,r)}for(let t of Object.keys(n))e.tables[t]===void 0&&r.push({scope:"table",severity:"breaking",summary:`removed table ${t} \u2014 add a data migration if its data must be archived/cleaned up`,table:t,type:"removedTable"});if(a!==void 0&&a.jurisdiction!==e.jurisdiction){let t=a.jurisdiction??"(none)",i=e.jurisdiction??"(none)";r.push({scope:"schema",severity:"breaking",summary:`Durable Object jurisdiction changed from ${t} to ${i} \u2014 this re-homes every DO and strands all existing shard, scheduler, and session-DO data in the old region (no in-place migration; export then import to move it). Revert the change, or override the gate to proceed intentionally.`,type:"changedJurisdiction"})}return{changes:r}},"te"),rt=m(a=>Object.entries(a.fields).map(([e,r])=>({name:e,optional:r.optional,ref:Object.values(a.relations).find(n=>n.field===e&&n.kind==="one")?.table,type:r.kind})),"T"),nt=m((a,e)=>{let r={},n=a?.fields??{},t=e?.fields??{};for(let[i,s]of Object.entries(t)){let d=n[i];d===void 0?r[i]=a===void 0?"unchanged":"added":r[i]=d.kind===s.kind&&d.optional===s.optional?"unchanged":"changed"}for(let i of Object.keys(n))t[i]===void 0&&(r[i]="removed");return r},"F"),wt=m((a,e)=>{let{changes:r}=Nt(a,e),n=new Set(r.filter(s=>s.scope==="table"&&s.table!==void 0).map(s=>s.table)),t=[],i=m((s,d)=>s?"added":n.has(d)?"changed":"context","o");for(let[s,d]of Object.entries(e.tables)){let u=a?.tables[s],f=i(u===void 0,s);t.push({columns:rt(d),fieldStatus:nt(u,d),name:s,shardMode:d.shardMode,status:f})}for(let[s,d]of Object.entries(a?.tables??{}))e.tables[s]===void 0&&t.push({columns:rt(d),fieldStatus:nt(d,void 0),name:s,shardMode:d.shardMode,status:"removed"});return t.sort((s,d)=>s.name.localeCompare(d.name)),{breakingCount:r.filter(s=>s.severity==="breaking").length,changes:r,tables:t}},"ae"),it=m(a=>{let e=pt(a);return e.status==="ok"?e.snapshot:void 0},"A"),$t={added:"ring-2 ring-emerald-500/60",changed:"ring-2 ring-amber-500/70",context:"opacity-55",removed:"opacity-70 ring-2 ring-destructive/60"},jt=m(a=>a==="global"?"global":"shard","se"),St=m(a=>{let e=(0,me.c)(24),{appliedAt:r,hash:n,onSelect:t,selected:i,seq:s}=a,d=i?"border-s-primary bg-accent/60 text-foreground":"border-s-transparent text-muted-foreground hover:bg-accent/30 hover:text-foreground",u;e[0]!==d?(u=se("flex w-full flex-col items-start gap-1 border-s-2 px-4 py-3 text-start outline-none transition-colors",d),e[0]=d,e[1]=u):u=e[1];let f=`sh-version-${n}`,g;e[2]!==n||e[3]!==t?(g=m(()=>{t(n)},"m"),e[2]=n,e[3]=t,e[4]=g):g=e[4];let h;e[5]!==s?(h=(0,o.jsxs)("span",{className:"font-mono text-[13px] tabular-nums",children:["v",s]}),e[5]=s,e[6]=h):h=e[6];let x;e[7]!==n?(x=n.slice(0,7),e[7]=n,e[8]=x):x=e[8];let p;e[9]!==x?(p=(0,o.jsx)("span",{className:"ms-auto font-mono text-[10px] tracking-wider text-muted-foreground/70 uppercase",children:x}),e[9]=x,e[10]=p):p=e[10];let v;e[11]!==h||e[12]!==p?(v=(0,o.jsxs)("span",{className:"flex w-full items-baseline gap-2",children:[h,p]}),e[11]=h,e[12]=p,e[13]=v):v=e[13];let b;e[14]!==r?(b=we(r),e[14]=r,e[15]=b):b=e[15];let y;e[16]!==b?(y=(0,o.jsx)("span",{className:"font-mono text-[10px] tracking-wide text-muted-foreground/70",children:b}),e[16]=b,e[17]=y):y=e[17];let c;return e[18]!==y||e[19]!==u||e[20]!==f||e[21]!==g||e[22]!==v?(c=(0,o.jsx)("li",{children:(0,o.jsxs)("button",{className:u,"data-testid":f,onClick:g,type:"button",children:[v,y]})}),e[18]=y,e[19]=u,e[20]=f,e[21]=g,e[22]=v,e[23]=c):c=e[23],c},"ie"),Ot=m(a=>{let e=(0,me.c)(26),{breaking:r,count:n,first:t}=a,i=oe();if(t){let p;e[0]!==n?(p=(0,o.jsx)("span",{className:"text-3xl leading-none font-light tracking-tight tabular-nums",children:n}),e[0]=n,e[1]=p):p=e[1];let v;e[2]!==i?(v=i("tables"),e[2]=i,e[3]=v):v=e[3];let b;e[4]!==v?(b=(0,o.jsx)("span",{className:"font-mono text-[11px] tracking-widest text-muted-foreground uppercase",children:v}),e[4]=v,e[5]=b):b=e[5];let y;return e[6]!==p||e[7]!==b?(y=(0,o.jsxs)("div",{className:"flex items-baseline gap-3","data-testid":"sh-summary",children:[p,b]}),e[6]=p,e[7]=b,e[8]=y):y=e[8],y}let s=r>0&&"text-destructive",d;e[9]!==s?(d=se("text-3xl leading-none font-light tracking-tight tabular-nums",s),e[9]=s,e[10]=d):d=e[10];let u;e[11]!==n||e[12]!==d?(u=(0,o.jsx)("span",{className:d,children:n}),e[11]=n,e[12]=d,e[13]=u):u=e[13];let f;e[14]!==n||e[15]!==i?(f=i(n===1?"change":"changes"),e[14]=n,e[15]=i,e[16]=f):f=e[16];let g;e[17]!==f?(g=(0,o.jsx)("span",{className:"font-mono text-[11px] tracking-widest text-muted-foreground uppercase",children:f}),e[17]=f,e[18]=g):g=e[18];let h;e[19]!==r||e[20]!==i?(h=r>0&&(0,o.jsxs)("span",{className:"font-mono text-[11px] tracking-widest text-destructive uppercase",children:["\xB7 ",i("{count} breaking",{count:r})]}),e[19]=r,e[20]=i,e[21]=h):h=e[21];let x;return e[22]!==u||e[23]!==g||e[24]!==h?(x=(0,o.jsxs)("div",{className:"flex items-baseline gap-3","data-testid":"sh-summary",children:[u,g,h]}),e[22]=u,e[23]=g,e[24]=h,e[25]=x):x=e[25],x},"re"),st={addedIndex:{action:"added",kind:"index"},addedOptionalField:{action:"added",kind:"field?"},addedRelation:{action:"added",kind:"relation"},addedRequiredField:{action:"added",kind:"field"},addedTable:{action:"added",kind:"table"},changedFieldKind:{action:"changed",kind:"field kind"},changedIndex:{action:"changed",kind:"index"},changedJurisdiction:{action:"changed",kind:"jurisdiction"},changedShardMode:{action:"changed",kind:"shard mode"},fieldOptionalToRequired:{action:"changed",kind:"field \u2192 required"},fieldRequiredToOptional:{action:"changed",kind:"field \u2192 optional"},removedField:{action:"removed",kind:"field"},removedIndex:{action:"removed",kind:"index"},removedRelation:{action:"removed",kind:"relation"},removedTable:{action:"removed",kind:"table"}},Mt=m((a,e)=>{let r=`${st[a.type].action} ${e} `;return a.summary.startsWith(r)?a.summary.slice(r.length):a.summary},"oe"),It=m(a=>{let e=new Map;for(let n of a){let t=n.table??"",i=e.get(t);i===void 0?e.set(t,[n]):i.push(n)}let r=[...e].map(([n,t])=>({changes:t,table:n}));return[...r.filter(n=>n.table!==""),...r.filter(n=>n.table==="")]},"de"),Rt=m(a=>{let e=(0,me.c)(2),{children:r}=a,n;return e[0]!==r?(n=(0,o.jsx)("div",{className:"px-4 pt-4 pb-2 font-mono text-[10px] tracking-widest text-muted-foreground/70 uppercase",children:r}),e[0]=r,e[1]=n):n=e[1],n},"le"),qt=m(({pane:a,shardKey:e=""})=>{let r=oe(),n=_e(),t=Ke({strict:!1}).version,i=m(c=>{Ne(n({search:{version:c},to:"/migrations"}))},"o"),s=de(T.schemaHistory,{},{shardKey:e}),d=s.data?.versions??[],u=t!==void 0&&d.some(c=>c.hash===t)?t:d[0]?.hash,f=d.findIndex(c=>c.hash===u),g=f===-1?void 0:d[f+1]?.hash,h=de(T.schemaVersion,{hash:u??""},{enabled:u!==void 0,shardKey:e}),x=de(T.schemaVersion,{hash:g??""},{enabled:g!==void 0,shardKey:e}),p=(0,ce.useMemo)(()=>{let c=it(h.data?.version?.snapshotJson);if(c!==void 0)return wt(it(x.data?.version?.snapshotJson),c)},[h.data,x.data]),v=(0,ce.useMemo)(()=>(p?.tables??[]).map(c=>({columns:c.columns,name:c.name,tier:jt(c.shardMode)})),[p]),b=(0,ce.useMemo)(()=>{let c={};for(let j of p?.tables??[])c[j.name]=$t[j.status];return c},[p]);if(s.error!==null)return(0,o.jsx)($e,{error:s.errorSource,testId:"sh-error"});if(d.length===0)return(0,o.jsx)(ke,{description:r("Each distinct schema shape this shard runs is recorded here, so you can see what changed and when."),testId:"sh-empty",title:r("No schema versions recorded yet.")});let y=p?.changes??[];return(0,o.jsxs)("div",{className:"flex min-h-0 flex-1 gap-4","data-testid":"lunora-schema-history",children:[(0,o.jsxs)("nav",{className:"flex w-56 shrink-0 flex-col overflow-hidden border-e border-border","data-testid":"sh-timeline-rail",children:[(0,o.jsx)(Rt,{children:r("Schema versions")}),(0,o.jsx)("ul",{className:"min-h-0 flex-1 overflow-y-auto","data-testid":"sh-timeline",children:d.map(c=>(0,o.jsx)(St,{appliedAt:c.appliedAt,hash:c.hash,onSelect:i,selected:c.hash===u,seq:c.seq},c.hash))})]}),(0,o.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col gap-4 pe-1 pt-4",children:[(0,o.jsx)(Ot,{breaking:p?.breakingCount??0,count:g===void 0?v.length:y.length,first:g===void 0}),a==="diagram"?(0,o.jsx)("div",{className:"flex min-h-0 flex-1 flex-col",children:(0,o.jsx)(et,{fill:!0,nodeClasses:b,tables:v,testIdPrefix:"sh"})}):(0,o.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto","data-testid":"sh-changes",children:It(y).map(c=>{let j=(p?.tables??[]).find(k=>k.name===c.table);return(0,o.jsxs)("section",{className:"mb-6",children:[(0,o.jsxs)("div",{className:"flex items-baseline gap-3 border-b border-border/60 pb-1.5",children:[(0,o.jsx)("span",{className:"font-mono text-[13px] text-foreground",children:c.table===""?r("schema"):c.table}),j!==void 0&&(0,o.jsx)("span",{className:"font-mono text-[10px] tracking-widest text-muted-foreground/70 tabular-nums uppercase",children:r("{count} columns",{count:j.columns.length})}),c.changes.length>1&&(0,o.jsx)("span",{className:"ms-auto font-mono text-[10px] tracking-widest text-muted-foreground/70 tabular-nums",children:c.changes.length})]}),(0,o.jsx)("ul",{children:c.changes.map(k=>{let{action:N,kind:R}=st[k.type],O=k.severity==="breaking",q=Mt(k,R);return(0,o.jsxs)("li",{className:"flex items-baseline gap-4 border-s-2 py-1.5 ps-3 transition-colors hover:bg-accent/30",children:[(0,o.jsx)("span",{"aria-hidden":"true",className:se("-ms-3 h-3 w-0.5 shrink-0 self-center",O?"bg-destructive":"bg-transparent")}),(0,o.jsxs)("span",{className:"w-44 shrink-0 font-mono text-[10px] tracking-widest text-muted-foreground/70 uppercase",children:[r(N)," ",R]}),q!==c.table&&(0,o.jsx)("span",{className:se("min-w-0 font-mono text-[13px]",O?"text-destructive":"text-foreground"),children:q}),O&&(0,o.jsx)("span",{className:"ms-auto shrink-0 font-mono text-[10px] tracking-widest text-destructive uppercase",children:r("breaking")})]},`${k.type}-${k.summary}`)})})]},c.table)})})]})]})},"ce"),Ct=m(a=>se("-mb-px border-b-2 px-3 py-2.5 font-mono text-[11px] tracking-wider uppercase transition-colors outline-none","hover:bg-accent/40 focus-visible:bg-accent/40",a?"border-primary text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),"me"),la=m(a=>{let e=(0,me.c)(11),{initialShardKey:r}=a,n=oe(),[t,i]=(0,ce.useState)("diagram"),s;e[0]!==t?(s=m((h,x,p,v)=>(0,o.jsxs)("button",{"aria-selected":t===h,className:Ct(t===h),"data-testid":p,onClick:m(()=>{i(h)},"onClick"),role:"tab",type:"button",children:[x,v!==void 0&&(0,o.jsx)("span",{className:"ms-2 tabular-nums text-muted-foreground/70",children:v})]}),"i"),e[0]=t,e[1]=s):s=e[1];let d=s,u;e[2]!==n||e[3]!==d?(u=(0,o.jsxs)("div",{className:"flex shrink-0 items-center gap-1 border-b border-border px-3","data-testid":"mg-panes",role:"tablist",children:[d("diagram",n("Diagram"),"mg-pane-diagram"),d("changes",n("Changes"),"mg-pane-changes"),d("data",n("Data migrations"),"mg-pane-data")]}),e[2]=n,e[3]=d,e[4]=u):u=e[4];let f;e[5]!==r||e[6]!==t?(f=(0,o.jsx)("div",{className:"flex min-h-0 flex-1 flex-col",children:t==="data"?(0,o.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-4",children:(0,o.jsx)(at,{initialShardKey:r})}):(0,o.jsx)(qt,{pane:t,shardKey:r})}),e[5]=r,e[6]=t,e[7]=f):f=e[7];let g;return e[8]!==u||e[9]!==f?(g=(0,o.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col pt-4","data-testid":"lunora-migrations-route",children:[u,f]}),e[8]=u,e[9]=f,e[10]=g):g=e[10],g},"je");export{la as MigrationsRoutePanel};
@@ -1 +0,0 @@
1
- import{a as st}from"./chunk-CTNB2KIA.js";import{a as X}from"./chunk-X665E2HU.js";import"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{a as Y}from"./chunk-LFKCLLPT.js";import"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as U}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as R}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as Z}from"./chunk-AHVDZWB3.js";import"./chunk-XXQUMVWH.js";import"./chunk-VORDESEQ.js";import"./chunk-QLQADHFE.js";import{a as V}from"./chunk-ERMTJYQF.js";import{c as Q}from"./chunk-YGKR536O.js";import"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import{a as H}from"./chunk-XQCVZAGU.js";import{a as tt,b as et,c as rt,d as z,e as n,f as o}from"./chunk-MIQTKZAR.js";import{a as W,e as G}from"./chunk-UZERI5YC.js";import{d as O,q as J}from"./chunk-OG4N2XHD.js";import"./chunk-QNUWWC3N.js";import{a,e as K,f as mt,g as ht,h as ut,j as P}from"./chunk-3XIESWL4.js";var at=K(ht(),1),B=K(mt(),1);var e=K(ut(),1);var ft={action:"outline",mutation:"default",query:"secondary"},lt=a(r=>r<1e3?`${r<10?r.toFixed(1):Math.round(r).toString()}ms`:`${(r/1e3).toFixed(2)}s`,"O"),pt=a(r=>r.calls===0?"\u2014":r.errors===0?"0":`${r.errors.toString()} (${(r.errors/r.calls*100).toFixed(1)}%)`,"mt"),xt=a(r=>{let t=r.conflicts??0;return r.calls===0?"\u2014":t===0?"0":`${t.toString()} (${(t/r.calls*100).toFixed(1)}%)`},"ut"),gt={calls:a((r,t)=>t.calls-r.calls,"calls"),recent:a((r,t)=>t.lastCalledAt-r.lastCalledAt,"recent"),slowest:a((r,t)=>t.maxDurationMs-r.maxDurationMs,"slowest")},At=a(r=>{let t=(0,at.c)(47),{functions:A,initialShardKey:nt}=r,l=O(),[i,ot]=(0,B.useState)(nt??""),[c,it]=(0,B.useState)("recent"),M;t[0]!==i?(M=i.trim(),t[0]=i,t[1]=M):M=t[1];let j=Y(M,400),w;t[2]===Symbol.for("react.memo_cache_sentinel")?(w={},t[2]=w):w=t[2];let $;t[3]!==j?($={live:!0,shardKey:j},t[3]=j,t[4]=$):$=t[4];let{data:ct,error:d,errorSource:v,liveError:k}=Q(V.getFunctionStats,w,$),S=ct?.functions??null,C;t[5]!==A?(C=new Map((A??[]).map(Nt)),t[5]=A,t[6]=C):C=t[6];let L=C,F;t[7]===Symbol.for("react.memo_cache_sentinel")?(F=a(b=>{it(b.currentTarget.dataset.sort)},"C"),t[7]=F):F=t[7];let dt=F,D;if(t[8]!==d||t[9]!==v||t[10]!==L||t[11]!==k||t[12]!==i||t[13]!==c||t[14]!==S||t[15]!==l){let b=S===null?[]:S.toSorted(gt[c]),m;t[17]!==l?(m=l("Recent"),t[17]=l,t[18]=m):m=t[18];let h;t[19]!==m?(h={key:"recent",label:m},t[19]=m,t[20]=h):h=t[20];let u;t[21]!==l?(u=l("Most called"),t[21]=l,t[22]=u):u=t[22];let f;t[23]!==u?(f={key:"calls",label:u},t[23]=u,t[24]=f):f=t[24];let p;t[25]!==l?(p=l("Slowest"),t[25]=l,t[26]=p):p=t[26];let x;t[27]!==p?(x={key:"slowest",label:p},t[27]=p,t[28]=x):x=t[28];let I;t[29]!==f||t[30]!==x||t[31]!==h?(I=[h,f,x],t[29]=f,t[30]=x,t[31]=h,t[32]=I):I=t[32];let T=I,g;t[33]!==i?(g=(0,e.jsx)(X,{onChange:ot,testId:"fs-shard-input",value:i}),t[33]=i,t[34]=g):g=t[34];let N;t[35]!==k?(N=(0,e.jsx)(st,{message:k,prefix:"fs"}),t[35]=k,t[36]=N):N=t[36];let y;t[37]!==T||t[38]!==c?(y=(0,e.jsx)("div",{className:"ml-auto flex items-center gap-1",role:"group",children:T.map(s=>(0,e.jsx)(U,{"data-sort":s.key,"data-testid":`fs-sort-${s.key}`,onClick:dt,size:"sm",type:"button",variant:c===s.key?"secondary":"ghost",children:s.label},s.key))}),t[37]=T,t[38]=c,t[39]=y):y=t[39];let E;t[40]!==g||t[41]!==N||t[42]!==y?(E=(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[g,N,y]}),t[40]=g,t[41]=N,t[42]=y,t[43]=E):E=t[43];let _;t[44]!==d||t[45]!==v?(_=d!==null&&(0,e.jsx)(Z,{error:v,testId:"fs-error"}),t[44]=d,t[45]=v,t[46]=_):_=t[46],D=(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-function-stats",children:[E,_,S!==null&&b.length===0&&d===null&&(0,e.jsx)(H,{description:l("Per-function call counts, error rates, and latency land here after your first request."),icon:(0,e.jsxs)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:[(0,e.jsx)("path",{d:"M3 3v18h18"}),(0,e.jsx)("path",{d:"M7 14l4-4 3 3 5-6"})]}),testId:"fs-empty",title:l("No functions have run on this shard yet.")}),b.length>0&&(0,e.jsx)(W,{className:"overflow-hidden py-0",children:(0,e.jsx)(G,{className:"px-0",children:(0,e.jsxs)(tt,{"data-testid":"fs-table",children:[(0,e.jsx)(et,{children:(0,e.jsxs)(z,{children:[(0,e.jsx)(n,{children:l("function")}),(0,e.jsx)(n,{children:l("kind")}),(0,e.jsx)(n,{className:"text-right",children:l("calls")}),(0,e.jsx)(n,{className:"text-right",children:l("errors")}),(0,e.jsx)(n,{className:"text-right",children:l("conflicts")}),(0,e.jsx)(n,{className:"text-right",children:l("avg")}),(0,e.jsx)(n,{className:"text-right",children:l("max")}),(0,e.jsx)(n,{children:l("last run")}),(0,e.jsx)(n,{children:l("last error")})]})}),(0,e.jsx)(rt,{children:b.map(s=>{let q=L.get(s.path);return(0,e.jsxs)(z,{"data-testid":`fs-row-${s.path}`,children:[(0,e.jsx)(o,{className:"font-medium",children:s.path}),(0,e.jsx)(o,{children:q===void 0?(0,e.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}):(0,e.jsx)(R,{variant:ft[q],children:q})}),(0,e.jsx)(o,{className:"text-right tabular-nums",children:s.calls}),(0,e.jsx)(o,{className:P("text-right tabular-nums",s.errors>0&&"text-destructive"),children:pt(s)}),(0,e.jsx)(o,{className:P("text-right tabular-nums",(s.conflicts??0)>0&&"text-warning"),children:xt(s)}),(0,e.jsx)(o,{className:"text-right tabular-nums",children:s.calls===0?"\u2014":lt(s.totalDurationMs/s.calls)}),(0,e.jsx)(o,{className:"text-right tabular-nums",children:s.calls===0?"\u2014":lt(s.maxDurationMs)}),(0,e.jsx)(o,{className:"text-muted-foreground",children:J(s.lastCalledAt,"\u2014")}),(0,e.jsx)(o,{className:"max-w-[24ch] truncate text-destructive",title:s.lastErrorMessage??void 0,children:s.lastErrorMessage??(0,e.jsx)("span",{className:"text-muted-foreground",children:"\u2014"})})]},s.path)})})]})})})]}),t[8]=d,t[9]=v,t[10]=L,t[11]=k,t[12]=i,t[13]=c,t[14]=S,t[15]=l,t[16]=D}else D=t[16];return D},"Dt");function Nt(r){return[r.path,r.kind]}a(Nt,"ft");export{At as FunctionStatsPanel};
@@ -1 +0,0 @@
1
- import{a as Ke}from"./chunk-LEDWUPXM.js";import"./chunk-2PJNAWB3.js";import{a as Ge}from"./chunk-V53KNYRN.js";import{a as He}from"./chunk-54MMVNPT.js";import"./chunk-BGBLQ563.js";import{R as We}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as G}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as le}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as Ue}from"./chunk-AHVDZWB3.js";import{a as Pe}from"./chunk-XXQUMVWH.js";import"./chunk-VORDESEQ.js";import"./chunk-QLQADHFE.js";import{a as z}from"./chunk-ERMTJYQF.js";import{c as _e}from"./chunk-YGKR536O.js";import{f as Fe}from"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import{a as ue}from"./chunk-XQCVZAGU.js";import{a as De,b as ke,c as Be,d as H,e as w,f as C}from"./chunk-MIQTKZAR.js";import{a as Me,e as Te}from"./chunk-UZERI5YC.js";import{d as $,f as ie,g as ce,h as me,m as he,q as je}from"./chunk-OG4N2XHD.js";import"./chunk-QNUWWC3N.js";import{a as h,e as Ee,f as st,g as nt,h as rt}from"./chunk-3XIESWL4.js";var F=Ee(nt(),1);var A=Ee(st(),1);var t=Ee(rt(),1);var dt=h((n,e)=>{let a=new Set(n.map(s=>s.deadLetterQueue).filter(s=>typeof s=="string"&&s!=="")),u=n.filter(s=>(s.deadLetterQueue===void 0||s.deadLetterQueue==="")&&!a.has(s.name)),o=e.filter(s=>s.deadLettered).length;return{deadLetteredCount:o,queuesWithoutDlq:u,showReliabilityWarning:u.length>0||o>0}},"st"),ot=200,lt=ie(z.sendQueueMessage),ut=ie(z.replayQueueMessage),it=ie(z.clearQueueMessages),Ve=96,ct=h(n=>{if(n===void 0)return"\u2014";try{return JSON.stringify(n)}catch{return"[unserializable]"}},"lt"),mt=h(n=>n.length>Ve?`${n.slice(0,Ve)}\u2026`:n,"ut"),ht=h(n=>n==="error"?"destructive":n==="retry"?"outline":"secondary","ct"),pt=h((n,e)=>e(n==="messages"?"Messages":n==="send"?"Send":"Declared"),"it"),gt=h(n=>{let e=(0,F.c)(11),{loaded:a,queues:u}=n,o=$(),s;e[0]!==o?(s=o("Queues are declared in code with defineQueue. Enqueue from a mutation or action with ctx.queues.<name>.send(...); push consumers process batches in the worker."),e[0]=o,e[1]=s):s=e[1];let d;e[2]!==s?(d=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:s}),e[2]=s,e[3]=d):d=e[3];let r;e[4]!==a||e[5]!==u||e[6]!==o?(r=a&&u.length===0?(0,t.jsx)(ue,{description:o("No defineQueue is declared in lunora/queues.ts in this deployment. Add one to offload async work to a Cloudflare Queue."),testId:"queues-empty",title:o("No queues defined")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Te,{className:"px-0",children:(0,t.jsxs)(De,{"data-testid":"queues-table",children:[(0,t.jsx)(ke,{children:(0,t.jsxs)(H,{children:[(0,t.jsx)(w,{children:o("Export")}),(0,t.jsx)(w,{children:o("Queue")}),(0,t.jsx)(w,{children:o("Mode")}),(0,t.jsx)(w,{children:o("Binding")}),(0,t.jsx)(w,{children:o("Dead-letter")})]})}),(0,t.jsx)(Be,{children:u.map(Nt)})]})})}),e[4]=a,e[5]=u,e[6]=o,e[7]=r):r=e[7];let p;return e[8]!==d||e[9]!==r?(p=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"queues-declared",children:[d,r]}),e[8]=d,e[9]=r,e[10]=p):p=e[10],p},"mt"),ft=h(n=>{let e=(0,F.c)(67),{message:a,onReplay:u,replayingId:o}=n,s=$(),d,r,p,c,N,g,y,l,m,f;if(e[0]!==a.attempts||e[1]!==a.body||e[2]!==a.deadLettered||e[3]!==a.exportName||e[4]!==a.id||e[5]!==a.messageId||e[6]!==a.outcome||e[7]!==a.queue||e[8]!==s){let W=ct(a.body);r=H,g=`queues-message-${a.id}`;let j=a.exportName??a.queue;e[19]!==j?(y=(0,t.jsx)(C,{className:"font-mono text-xs",children:j}),e[19]=j,e[20]=y):y=e[20],e[21]!==a.messageId?(l=(0,t.jsx)(C,{className:"max-w-[16ch] truncate font-mono text-xs text-muted-foreground",title:a.messageId,children:a.messageId}),e[21]=a.messageId,e[22]=l):l=e[22],e[23]!==a.attempts?(m=(0,t.jsx)(C,{className:"font-mono text-xs tabular-nums",children:a.attempts}),e[23]=a.attempts,e[24]=m):m=e[24];let M=`queues-outcome-${a.id}`,T;e[25]!==a.outcome?(T=ht(a.outcome),e[25]=a.outcome,e[26]=T):T=e[26];let Q;e[27]!==a.outcome||e[28]!==M||e[29]!==T?(Q=(0,t.jsx)(le,{"data-testid":M,variant:T,children:a.outcome}),e[27]=a.outcome,e[28]=M,e[29]=T,e[30]=Q):Q=e[30];let _;e[31]!==a.deadLettered||e[32]!==a.id||e[33]!==s?(_=a.deadLettered&&(0,t.jsx)(le,{"data-testid":`queues-dlq-${a.id}`,variant:"destructive",children:s("DLQ")}),e[31]=a.deadLettered,e[32]=a.id,e[33]=s,e[34]=_):_=e[34],e[35]!==Q||e[36]!==_?(f=(0,t.jsx)(C,{children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[Q,_]})}),e[35]=Q,e[36]=_,e[37]=f):f=e[37],d=C,p="max-w-[32ch] truncate font-mono text-xs text-muted-foreground",c=W,N=mt(W),e[0]=a.attempts,e[1]=a.body,e[2]=a.deadLettered,e[3]=a.exportName,e[4]=a.id,e[5]=a.messageId,e[6]=a.outcome,e[7]=a.queue,e[8]=s,e[9]=d,e[10]=r,e[11]=p,e[12]=c,e[13]=N,e[14]=g,e[15]=y,e[16]=l,e[17]=m,e[18]=f}else d=e[9],r=e[10],p=e[11],c=e[12],N=e[13],g=e[14],y=e[15],l=e[16],m=e[17],f=e[18];let x;e[38]!==d||e[39]!==p||e[40]!==c||e[41]!==N?(x=(0,t.jsx)(d,{className:p,title:c,children:N}),e[38]=d,e[39]=p,e[40]=c,e[41]=N,e[42]=x):x=e[42];let q;e[43]!==a.capturedAt?(q=je(a.capturedAt,"\u2014"),e[43]=a.capturedAt,e[44]=q):q=e[44];let b;e[45]!==q?(b=(0,t.jsx)(C,{className:"text-xs text-muted-foreground tabular-nums",children:q}),e[45]=q,e[46]=b):b=e[46];let S=`queues-replay-${a.id}`,E=o!==null,I;e[47]!==a.id||e[48]!==o||e[49]!==s?(I=o===a.id?s("Replaying\u2026"):s("Replay"),e[47]=a.id,e[48]=o,e[49]=s,e[50]=I):I=e[50];let L;e[51]!==a.id||e[52]!==u||e[53]!==S||e[54]!==E||e[55]!==I?(L=(0,t.jsx)(C,{children:(0,t.jsx)(G,{"data-id":a.id,"data-testid":S,disabled:E,onClick:u,size:"xs",type:"button",variant:"outline",children:I})}),e[51]=a.id,e[52]=u,e[53]=S,e[54]=E,e[55]=I,e[56]=L):L=e[56];let D;return e[57]!==r||e[58]!==b||e[59]!==L||e[60]!==g||e[61]!==y||e[62]!==l||e[63]!==m||e[64]!==f||e[65]!==x?(D=(0,t.jsxs)(r,{"data-testid":g,children:[y,l,m,f,x,b,L]}),e[57]=r,e[58]=b,e[59]=L,e[60]=g,e[61]=y,e[62]=l,e[63]=m,e[64]=f,e[65]=x,e[66]=D):D=e[66],D},"ht"),xt=h(n=>{let e=(0,F.c)(26),{hasError:a,messages:u,onClear:o,onReplay:s,replayingId:d}=n,r=$(),p;e[0]!==r?(p=r("Cloudflare Queues have no peek API, so this is what push consumers actually processed \u2014 not pending depth."),e[0]=r,e[1]=p):p=e[1];let c;e[2]!==p?(c=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:p}),e[2]=p,e[3]=c):c=e[3];let N=u.length===0,g;e[4]!==r?(g=r("Clear log"),e[4]=r,e[5]=g):g=e[5];let y;e[6]!==o||e[7]!==N||e[8]!==g?(y=(0,t.jsx)(G,{className:"ml-auto","data-testid":"queues-clear",disabled:N,onClick:o,size:"sm",type:"button",variant:"outline",children:g}),e[6]=o,e[7]=N,e[8]=g,e[9]=y):y=e[9];let l;e[10]!==u.length||e[11]!==r?(l=u.length>0&&(0,t.jsx)(le,{"data-testid":"queues-count",variant:"secondary",children:r("{count} messages",{count:u.length})}),e[10]=u.length,e[11]=r,e[12]=l):l=e[12];let m;e[13]!==c||e[14]!==y||e[15]!==l?(m=(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c,y,l]}),e[13]=c,e[14]=y,e[15]=l,e[16]=m):m=e[16];let f;e[17]!==a||e[18]!==u||e[19]!==s||e[20]!==d||e[21]!==r?(f=!a&&u.length===0?(0,t.jsx)(ue,{description:r("Consumed messages appear here once a push consumer processes a batch in dev. Send one from the Send tab to see it captured."),testId:"queues-messages-empty",title:r("No consumed messages yet.")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Te,{className:"px-0",children:(0,t.jsx)(Ke,{className:"max-h-[32rem]","data-testid":"queues-messages-scroll",children:(0,t.jsxs)(De,{"data-testid":"queues-messages-table",children:[(0,t.jsx)(ke,{children:(0,t.jsxs)(H,{children:[(0,t.jsx)(w,{children:r("Export")}),(0,t.jsx)(w,{children:r("Message")}),(0,t.jsx)(w,{children:r("Attempts")}),(0,t.jsx)(w,{children:r("Outcome")}),(0,t.jsx)(w,{children:r("Body")}),(0,t.jsx)(w,{children:r("Captured")}),(0,t.jsx)(w,{})]})}),(0,t.jsx)(Be,{children:u.map(q=>(0,t.jsx)(ft,{message:q,onReplay:s,replayingId:d},q.id))})]})})})}),e[17]=a,e[18]=u,e[19]=s,e[20]=d,e[21]=r,e[22]=f):f=e[22];let x;return e[23]!==m||e[24]!==f?(x=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"queues-messages",children:[m,f]}),e[23]=m,e[24]=f,e[25]=x):x=e[25],x},"pt"),yt=h(n=>{let e=(0,F.c)(20),{batchMode:a,bodyText:u,delayText:o,onBatchModeChange:s,onBodyChange:d,onDelayChange:r,onSelectExport:p,onSend:c,queues:N,selectedExportName:g,sending:y}=n,l=$(),m;e[0]!==l?(m=l("Enqueue a JSON message to a declared producer to exercise its consumer. Nothing is captured until the consumer processes it."),e[0]=l,e[1]=m):m=e[1];let f;e[2]!==m?(f=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:m}),e[2]=m,e[3]=f):f=e[3];let x;e[4]!==a||e[5]!==u||e[6]!==o||e[7]!==s||e[8]!==d||e[9]!==r||e[10]!==p||e[11]!==c||e[12]!==N||e[13]!==g||e[14]!==y||e[15]!==l?(x=N.length===0?(0,t.jsx)(ue,{description:l("Declare a queue with defineQueue in lunora/queues.ts to enqueue a test message."),testId:"queues-send-empty",title:l("No queues to send to")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("select",{"aria-label":l("Queue"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"queues-send-select",onChange:p,value:g,children:N.map(bt)}),(0,t.jsx)(We,{"aria-label":l("Delay (seconds)"),className:"max-w-36","data-testid":"queues-send-delay",min:0,onChange:r,placeholder:l("Delay (s)"),type:"number",value:o}),(0,t.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",htmlFor:"queues-send-batch",children:[(0,t.jsx)("input",{checked:a,"data-testid":"queues-send-batch",id:"queues-send-batch",onChange:s,type:"checkbox"}),l("Send as batch (JSON array)")]}),(0,t.jsx)(G,{className:"ml-auto","data-testid":"queues-send-button",disabled:y||g==="",onClick:c,type:"button",children:l(y?"Sending\u2026":"Send message")})]}),(0,t.jsx)(Ge,{"aria-label":l("Message body (JSON)"),className:"font-mono","data-testid":"queues-send-body",onChange:d,placeholder:a?'[ { "hello": "world" } ]':'{ "hello": "world" }',value:u})]}),e[4]=a,e[5]=u,e[6]=o,e[7]=s,e[8]=d,e[9]=r,e[10]=p,e[11]=c,e[12]=N,e[13]=g,e[14]=y,e[15]=l,e[16]=x):x=e[16];let q;return e[17]!==f||e[18]!==x?(q=(0,t.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"queues-send",children:[f,x]}),e[17]=f,e[18]=x,e[19]=q):q=e[19],q},"gt"),Jt=h(n=>{let e=(0,F.c)(59),{limit:a}=n,u=a??ot,o=Fe(),s=$(),[d,r]=(0,A.useState)("declared"),[p,c]=(0,A.useState)(null),N;e[0]===Symbol.for("react.memo_cache_sentinel")?(N={},e[0]=N):N=e[0];let{data:g,error:y,errorSource:l}=_e(z.listQueues,N),m;e[1]!==u?(m={limit:u},e[1]=u,e[2]=m):m=e[2];let{data:f,error:x,errorSource:q,refetch:b}=_e(z.getQueueMessages,m),S=Array.isArray(g?.queues)?[...g.queues].toSorted(qt):[],E=f?.entries??[],{deadLetteredCount:I,queuesWithoutDlq:L,showReliabilityWarning:D}=dt(S,E),[W,j]=(0,A.useState)(""),[M,T]=(0,A.useState)(""),[Q,_]=(0,A.useState)(""),[P,Xe]=(0,A.useState)(!1),[pe,Oe]=(0,A.useState)(!1),[ge,Re]=(0,A.useState)(null),K=S.some(i=>i.exportName===W)?W:S[0]?.exportName??"",Je=d==="messages"?x:y,Ye=d==="messages"?q:l,fe=Je??p,xe=Je===null?p:Ye,V;e[3]!==b?(V=h(()=>{b()},"H"),e[3]=b,e[4]=V):V=e[4],He(V,d==="messages");let ye=h(async()=>{c(null);let i=K;if(i==="")return;let v=null,$e=M.trim();if($e!=="")try{v=JSON.parse($e)}catch{c(s("Body must be valid JSON."));return}let Ae,ze=Q.trim();if(ze!==""){let U=Number(ze);if(!Number.isFinite(U)||U<0){c(s("Delay must be a non-negative number of seconds."));return}Ae=U}if(P&&!Array.isArray(v)){c(s("Batch mode needs a JSON array body \u2014 each element is enqueued as one message."));return}Oe(!0);let at=P?{batch:v,delaySeconds:Ae,exportName:i}:{body:v,delaySeconds:Ae,exportName:i};try{await o.query(lt,at,ce("")),b()}catch(U){c(me(U))}Oe(!1)},"me"),X;e[5]!==o||e[6]!==b?(X=h(async i=>{c(null),Re(i);try{await o.query(ut,{id:i},ce("")),b()}catch(v){c(me(v))}Re(null)},"K"),e[5]=o,e[6]=b,e[7]=X):X=e[7];let Ne=X,Y;e[8]!==o||e[9]!==b?(Y=h(async()=>{c(null);try{await o.query(it,{},ce("")),b()}catch(i){c(me(i))}},"V"),e[8]=o,e[9]=b,e[10]=Y):Y=e[10];let be=Y,Z;e[11]===Symbol.for("react.memo_cache_sentinel")?(Z=h(i=>{let v=i.currentTarget.dataset.tab;(v==="declared"||v==="messages"||v==="send")&&r(v)},"X"),e[11]=Z):Z=e[11];let Ze=Z,ee;e[12]===Symbol.for("react.memo_cache_sentinel")?(ee=h(i=>{j(i.currentTarget.value)},"Y"),e[12]=ee):ee=e[12];let qe=ee,te;e[13]===Symbol.for("react.memo_cache_sentinel")?(te=h(i=>{T(i.currentTarget.value)},"Z"),e[13]=te):te=e[13];let ve=te,ae;e[14]===Symbol.for("react.memo_cache_sentinel")?(ae=h(i=>{_(i.currentTarget.value)},"ee"),e[14]=ae):ae=e[14];let Se=ae,se;e[15]===Symbol.for("react.memo_cache_sentinel")?(se=h(i=>{Xe(i.currentTarget.checked)},"te"),e[15]=se):se=e[15];let we=se,ne;e[16]!==ye?(ne=h(()=>{he(ye())},"ae"),e[16]=ye,e[17]=ne):ne=e[17];let Ce=ne,re;e[18]!==Ne?(re=h(i=>{let{id:v}=i.currentTarget.dataset;v!==void 0&&he(Ne(v))},"se"),e[18]=Ne,e[19]=re):re=e[19];let Qe=re,de;e[20]!==be?(de=h(()=>{he(be())},"re"),e[20]=be,e[21]=de):de=e[21];let Ie=de,et="flex flex-col gap-6",tt="lunora-queues-panel",k;e[22]!==s||e[23]!==d?(k=(0,t.jsx)("div",{className:"flex items-center gap-1","data-testid":"queues-tabs",role:"tablist",children:["declared","messages","send"].map(i=>(0,t.jsx)(G,{"aria-selected":d===i,"data-tab":i,"data-testid":`queues-tab-${i}`,onClick:Ze,role:"tab",size:"sm",type:"button",variant:d===i?"secondary":"ghost",children:pt(i,s)},i))}),e[22]=s,e[23]=d,e[24]=k):k=e[24];let B;e[25]!==fe||e[26]!==xe?(B=fe!==null&&(0,t.jsx)(Ue,{error:xe,testId:"queues-error"}),e[25]=fe,e[26]=xe,e[27]=B):B=e[27];let Le=D&&(0,t.jsx)(Pe,{icon:(0,t.jsx)("span",{"aria-hidden":"true",className:"text-base leading-none",children:"\u26A0"}),testId:"queues-dlq-warning",variant:"warning",children:(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[L.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"font-medium",children:s("No dead-letter queue on {queues}.",{queues:L.map(vt).join(", ")})}),(0,t.jsx)("p",{className:"text-muted-foreground",children:s("Exhausted messages are dropped after retries. Add a deadLetterQueue to capture them.")})]}),I>0&&(0,t.jsx)("p",{className:L.length>0?"text-muted-foreground":"font-medium",children:I===1?s("1 message was recently dead-lettered."):s("{count} messages were recently dead-lettered.",{count:I})})]})}),O;e[28]!==S||e[29]!==g||e[30]!==d?(O=d==="declared"&&(0,t.jsx)(gt,{loaded:g!==void 0,queues:S}),e[28]=S,e[29]=g,e[30]=d,e[31]=O):O=e[31];let R;e[32]!==E||e[33]!==x||e[34]!==Ie||e[35]!==Qe||e[36]!==ge||e[37]!==d?(R=d==="messages"&&(0,t.jsx)(xt,{hasError:x!==null,messages:E,onClear:Ie,onReplay:Qe,replayingId:ge}),e[32]=E,e[33]=x,e[34]=Ie,e[35]=Qe,e[36]=ge,e[37]=d,e[38]=R):R=e[38];let J;e[39]!==P||e[40]!==M||e[41]!==Q||e[42]!==we||e[43]!==ve||e[44]!==Se||e[45]!==qe||e[46]!==Ce||e[47]!==S||e[48]!==K||e[49]!==pe||e[50]!==d?(J=d==="send"&&(0,t.jsx)(yt,{batchMode:P,bodyText:M,delayText:Q,onBatchModeChange:we,onBodyChange:ve,onDelayChange:Se,onSelectExport:qe,onSend:Ce,queues:S,selectedExportName:K,sending:pe}),e[39]=P,e[40]=M,e[41]=Q,e[42]=we,e[43]=ve,e[44]=Se,e[45]=qe,e[46]=Ce,e[47]=S,e[48]=K,e[49]=pe,e[50]=d,e[51]=J):J=e[51];let oe;return e[52]!==k||e[53]!==B||e[54]!==Le||e[55]!==O||e[56]!==R||e[57]!==J?(oe=(0,t.jsxs)("div",{className:et,"data-testid":tt,children:[k,B,Le,O,R,J]}),e[52]=k,e[53]=B,e[54]=Le,e[55]=O,e[56]=R,e[57]=J,e[58]=oe):oe=e[58],oe},"Bt");function Nt(n){return(0,t.jsxs)(H,{"data-testid":`queues-row-${n.exportName}`,children:[(0,t.jsx)(C,{className:"font-mono text-xs",children:n.exportName}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.name}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.mode}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.binding}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.deadLetterQueue??"\u2014"})]},n.exportName)}h(Nt,"ft");function bt(n){return(0,t.jsx)("option",{value:n.exportName,children:n.exportName},n.exportName)}h(bt,"xt");function qt(n,e){return n.exportName.localeCompare(e.exportName)}h(qt,"yt");function vt(n){return n.name}h(vt,"Nt");export{Jt as default};
@@ -1 +0,0 @@
1
- import{a as J}from"./chunk-54MMVNPT.js";import{a as K}from"./chunk-X665E2HU.js";import"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{a as L}from"./chunk-LFKCLLPT.js";import"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import"./chunk-2OUPA2WJ.js";import{b as S}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as O}from"./chunk-AHVDZWB3.js";import"./chunk-XXQUMVWH.js";import"./chunk-VORDESEQ.js";import"./chunk-QLQADHFE.js";import{a as F}from"./chunk-ERMTJYQF.js";import{c as D}from"./chunk-YGKR536O.js";import"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import{a as _}from"./chunk-XQCVZAGU.js";import{a as P,b as W,c as B,d as A,e as m,f as u}from"./chunk-MIQTKZAR.js";import{a as E,e as T}from"./chunk-UZERI5YC.js";import{d as j}from"./chunk-OG4N2XHD.js";import"./chunk-QNUWWC3N.js";import{a as N,e as C,f as X,g as q,h as z}from"./chunk-3XIESWL4.js";var U=C(q(),1),Z=C(X(),1);var e=C(z(),1);var R=80,G=N(a=>{if(a===void 0)return"";let t=JSON.stringify(a);return t.length>R?`${t.slice(0,R)}\u2026`:t},"X"),H=N(a=>{let t=[];for(let i of a){let n=i.id.toString();if(i.subscriptions.length===0){t.push({admin:i.admin,connectionId:i.id,key:`c${n}`,subscription:null});continue}i.subscriptions.forEach((s,y)=>{t.push({admin:i.admin,connectionId:i.id,key:`c${n}-s${y.toString()}`,subscription:s})})}return t},"Z"),M=(0,e.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),lt=N(a=>{let t=(0,U.c)(22),{initialShardKey:i}=a,n=j(),[s,y]=(0,Z.useState)(i??""),h;t[0]!==s?(h=s.trim(),t[0]=s,t[1]=h):h=t[1];let k=L(h,400),p;t[2]===Symbol.for("react.memo_cache_sentinel")?(p={},t[2]=p):p=t[2];let f;t[3]!==k?(f={keepPreviousData:!0,shardKey:k},t[3]=k,t[4]=f):f=t[4];let{data:r,error:o,errorSource:d,refetch:Q}=D(F.listSubscriptions,p,f);J(Q,!0);let b;if(t[5]!==o||t[6]!==d||t[7]!==r||t[8]!==s||t[9]!==n){let I=r===void 0?[]:H(r.connections),c;t[11]!==s?(c=(0,e.jsx)(K,{onChange:y,testId:"subs-shard-input",value:s}),t[11]=s,t[12]=c):c=t[12];let l;t[13]!==r||t[14]!==n?(l=r!==void 0&&(0,e.jsxs)("div",{className:"ml-auto flex items-center gap-2 text-sm text-muted-foreground","data-testid":"subs-count",children:[(0,e.jsx)(S,{variant:"secondary",children:n("{count} connections",{count:r.totalConnections})}),(0,e.jsx)(S,{variant:"secondary",children:n("{count} subscriptions",{count:r.totalSubscriptions})})]}),t[13]=r,t[14]=n,t[15]=l):l=t[15];let g;t[16]!==c||t[17]!==l?(g=(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c,l]}),t[16]=c,t[17]=l,t[18]=g):g=t[18];let v;t[19]!==o||t[20]!==d?(v=o!==null&&(0,e.jsx)(O,{error:d,testId:"subs-error"}),t[19]=o,t[20]=d,t[21]=v):v=t[21],b=(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"subs-panel",children:[g,v,o===null&&r!==void 0&&I.length===0&&(0,e.jsx)(_,{description:n("Active WebSocket subscriptions on this shard."),icon:(0,e.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,e.jsx)("path",{d:"M5 12a7 7 0 0 1 14 0M8 12a4 4 0 0 1 8 0M12 12v8m0-8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"})}),testId:"subs-empty",title:n("No active subscriptions.")}),o===null&&I.length>0&&(0,e.jsx)(E,{className:"overflow-hidden py-0",children:(0,e.jsx)(T,{className:"px-0",children:(0,e.jsxs)(P,{"data-testid":"subs-table",children:[(0,e.jsx)(W,{children:(0,e.jsxs)(A,{children:[(0,e.jsx)(m,{children:n("Connection")}),(0,e.jsx)(m,{children:n("Function path")}),(0,e.jsx)(m,{children:n("Table")}),(0,e.jsx)(m,{children:n("Arguments")})]})}),(0,e.jsx)(B,{children:I.map(x=>{let{subscription:w}=x,$=G(w?.args);return(0,e.jsxs)(A,{"data-testid":"subs-row",children:[(0,e.jsx)(u,{className:"font-medium tabular-nums",children:(0,e.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:["#",x.connectionId,x.admin&&(0,e.jsx)(S,{variant:"outline",children:n("admin")})]})}),(0,e.jsx)(u,{className:"font-mono text-xs",children:w?.functionPath??M}),(0,e.jsx)(u,{children:w?.table??M}),(0,e.jsx)(u,{className:"max-w-[32ch] truncate font-mono text-xs text-muted-foreground",title:$||void 0,children:$||M})]},x.key)})})]})})})]}),t[5]=o,t[6]=d,t[7]=r,t[8]=s,t[9]=n,t[10]=b}else b=t[10];return b},"at");export{lt as default};
@@ -1 +0,0 @@
1
- var _={aiAvailable:"__lunora_admin__:aiAvailable",aiChartConfig:"__lunora_admin__:aiChartConfig",aiGenerateSql:"__lunora_admin__:aiGenerateSql",aiTableFilter:"__lunora_admin__:aiTableFilter",assignIssue:"__lunora_admin__:assignIssue",backRelationCounts:"__lunora_admin__:backRelationCounts",clearCapturedMail:"__lunora_admin__:clearCapturedMail",clearQueueMessages:"__lunora_admin__:clearQueueMessages",clearTable:"__lunora_admin__:clearTable",createWorkflowInstance:"__lunora_admin__:createWorkflowInstance",deleteRows:"__lunora_admin__:deleteRows",describeTable:"__lunora_admin__:describeTable",describeTables:"__lunora_admin__:describeTables",explainIssue:"__lunora_admin__:explainIssue",exportShard:"__lunora_admin__:exportShard",facetColumn:"__lunora_admin__:facetColumn",getAdvisories:"__lunora_admin__:getAdvisories",getAdvisorProcedures:"__lunora_admin__:getAdvisorProcedures",getAuditLog:"__lunora_admin__:getAuditLog",getAuthAuditLog:"__lunora_admin__:getAuthAuditLog",getAuthMetrics:"__lunora_admin__:getAuthMetrics",getCapturedMail:"__lunora_admin__:getCapturedMail",getFanoutMetrics:"__lunora_admin__:getFanoutMetrics",getFunctionStats:"__lunora_admin__:getFunctionStats",getIssues:"__lunora_admin__:getIssues",lintSql:"__lunora_admin__:lintSql",listFlags:"__lunora_admin__:listFlags",listPushSubscriptions:"__lunora_admin__:listPushSubscriptions",listQueues:"__lunora_admin__:listQueues",listSubscriptions:"__lunora_admin__:listSubscriptions",listTableIndexes:"__lunora_admin__:listTableIndexes",listWorkflows:"__lunora_admin__:listWorkflows",getLogs:"__lunora_admin__:getLogs",getMetricHistory:"__lunora_admin__:getMetricHistory",getMetricSeries:"__lunora_admin__:getMetricSeries",getMetrics:"__lunora_admin__:getMetrics",getPitrBookmark:"__lunora_admin__:getPitrBookmark",getQueryInsights:"__lunora_admin__:getQueryInsights",getQueueMessages:"__lunora_admin__:getQueueMessages",getRequestLog:"__lunora_admin__:getRequestLog",getSecurityAudit:"__lunora_admin__:getSecurityAudit",getSettings:"__lunora_admin__:getSettings",getTraces:"__lunora_admin__:getTraces",getWorkflowInstanceStatus:"__lunora_admin__:getWorkflowInstanceStatus",ignoreIssue:"__lunora_admin__:ignoreIssue",importShard:"__lunora_admin__:importShard",listTables:"__lunora_admin__:listTables",maskPolicies:"__lunora_admin__:maskPolicies",migrationStatus:"__lunora_admin__:migrationStatus",pitrRestore:"__lunora_admin__:pitrRestore",readTablePage:"__lunora_admin__:readTablePage",replayQueueMessage:"__lunora_admin__:replayQueueMessage",resolveIssue:"__lunora_admin__:resolveIssue",rlsPolicies:"__lunora_admin__:rlsPolicies",schemaHistory:"__lunora_admin__:schemaHistory",schemaVersion:"__lunora_admin__:schemaVersion",runAs:"__lunora_admin__:runAs",runMigration:"__lunora_admin__:runMigration",runSql:"__lunora_admin__:runSql",sendQueueMessage:"__lunora_admin__:sendQueueMessage",sendTestMail:"__lunora_admin__:sendTestMail",setIssueSeverity:"__lunora_admin__:setIssueSeverity",storageOrphans:"__lunora_admin__:storageOrphans",storageReferences:"__lunora_admin__:storageReferences",storageRules:"__lunora_admin__:storageRules",studioFeatures:"__lunora_admin__:studioFeatures",writeRow:"__lunora_admin__:writeRow"};export{_ as a};
@@ -1 +0,0 @@
1
- import{b as me,e as _}from"./chunk-MN64D74P.js";import{a as ue}from"./chunk-CTNB2KIA.js";import"./chunk-AQKXMWNF.js";import"./chunk-4UOFSGUS.js";import"./chunk-ILNELDFC.js";import{a as de}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{b as P}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import"./chunk-QLQADHFE.js";import{a as M}from"./chunk-ERMTJYQF.js";import{c as ce}from"./chunk-YGKR536O.js";import{f as ne,g as oe}from"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import{a as A}from"./chunk-UZERI5YC.js";import{d as D,f as j,g as W,h as X,m as K,q as ie}from"./chunk-OG4N2XHD.js";import"./chunk-QNUWWC3N.js";import{a as h,e as I,f as qe,g as ae,h as le,j as q}from"./chunk-3XIESWL4.js";var Z=I(ae(),1);var f=I(qe(),1);var fe=I(ae(),1);var $=I(le(),1);var Me={connected:"bg-success",connecting:"bg-warning",idle:"bg-muted-foreground",offline:"bg-destructive"},pe=h(()=>{let t=(0,fe.c)(16),e=D(),a=oe(),s;e:switch(a){case"connected":{let n;t[0]!==e?(n=e("Connected"),t[0]=e,t[1]=n):n=t[1],s=n;break e}case"connecting":{let n;t[2]!==e?(n=e("Connecting\u2026"),t[2]=e,t[3]=n):n=t[3],s=n;break e}case"idle":{let n;t[4]!==e?(n=e("Idle"),t[4]=e,t[5]=n):n=t[5],s=n;break e}case"offline":{let n;t[6]!==e?(n=e("Offline"),t[6]=e,t[7]=n):n=t[7],s=n;break e}default:s=a}let l=Me[a],c;t[8]!==l?(c=q("size-2 rounded-full",l),t[8]=l,t[9]=c):c=t[9];let o;t[10]!==c?(o=(0,$.jsx)("span",{"aria-hidden":"true",className:c}),t[10]=c,t[11]=o):o=t[11];let i;return t[12]!==a||t[13]!==o||t[14]!==s?(i=(0,$.jsxs)("span",{"aria-live":"polite",className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground","data-status":a,"data-testid":"dash-connection",role:"status",children:[o,s]}),t[12]=a,t[13]=o,t[14]=s,t[15]=i):i=t[15],i},"j");var r=I(le(),1);var Ae={crit:"destructive",ok:"secondary",warn:"default"},U=h((t,e)=>e===0?"\u2014":`${(t/e*100).toFixed(1)}%`,"_"),Y=h((t,e,a)=>Number.isNaN(t)?"ok":t>=a?"crit":t>=e?"warn":"ok","V"),xe=.01,ve=.05,je=h(t=>{let e=(0,Z.c)(36),{errorCount:a,logsError:s,topErrors:l,worstFunctions:c}=t,o=D(),i;e[0]!==o?(i=o("Functions by error rate"),e[0]=o,e[1]=i):i=e[1];let n;e[2]!==i?(n=(0,r.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:i})}),e[2]=i,e[3]=n):n=e[3];let p;e[4]!==o||e[5]!==c?(p=c.length===0?(0,r.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"hl-functions-empty",children:o("No function activity yet.")}):(0,r.jsx)("ul",{className:"divide-y divide-border",children:c.map(w=>(0,r.jsxs)("li",{className:"flex flex-wrap items-center justify-between gap-2 px-4 py-2 text-xs","data-testid":"hl-fn-row",children:[(0,r.jsx)("span",{className:"truncate font-mono text-foreground",children:w.path}),(0,r.jsxs)("span",{className:"flex shrink-0 items-center gap-2",children:[(0,r.jsx)("span",{className:"tabular-nums text-muted-foreground",children:o("{count} calls",{count:w.calls.toString()})}),(0,r.jsx)(P,{variant:Ae[Y(w.errors/w.calls,xe,ve)],children:U(w.errors,w.calls)})]})]},w.path))}),e[4]=o,e[5]=c,e[6]=p):p=e[6];let g;e[7]!==n||e[8]!==p?(g=(0,r.jsxs)(A,{className:"gap-0 py-0","data-testid":"hl-functions",children:[n,p]}),e[7]=n,e[8]=p,e[9]=g):g=e[9];let N;e[10]!==o?(N=o("Recent errors"),e[10]=o,e[11]=N):N=e[11];let d;e[12]!==N?(d=(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:N}),e[12]=N,e[13]=d):d=e[13];let u=a>0?"destructive":"outline",x;e[14]!==a||e[15]!==u?(x=(0,r.jsx)(P,{"data-testid":"hl-error-count",variant:u,children:a}),e[14]=a,e[15]=u,e[16]=x):x=e[16];let v;e[17]!==d||e[18]!==x?(v=(0,r.jsxs)("header",{className:"flex items-center justify-between gap-2 border-b border-border px-4 py-3",children:[d,x]}),e[17]=d,e[18]=x,e[19]=v):v=e[19];let k;e[20]!==s?(k=s!==null&&(0,r.jsx)("p",{className:"px-4 py-8 text-center text-sm text-destructive","data-testid":"hl-logs-error",role:"alert",children:s}),e[20]=s,e[21]=k):k=e[21];let S;e[22]!==s||e[23]!==o||e[24]!==l.length?(S=s===null&&l.length===0&&(0,r.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"hl-errors-empty",children:o("No recent errors.")}),e[22]=s,e[23]=o,e[24]=l.length,e[25]=S):S=e[25];let E;e[26]!==l?(E=l.length>0&&(0,r.jsx)("ul",{className:"divide-y divide-border",children:l.map(Ce)}),e[26]=l,e[27]=E):E=e[27];let b;e[28]!==k||e[29]!==S||e[30]!==E||e[31]!==v?(b=(0,r.jsxs)(A,{className:"gap-0 py-0",children:[v,k,S,E]}),e[28]=k,e[29]=S,e[30]=E,e[31]=v,e[32]=b):b=e[32];let y;return e[33]!==b||e[34]!==g?(y=(0,r.jsxs)("div",{className:"grid gap-3 lg:grid-cols-2",children:[g,b]}),e[33]=b,e[34]=g,e[35]=y):y=e[35],y},"Se");function Ce(t,e){return(0,r.jsxs)("li",{className:"flex flex-col gap-0.5 px-4 py-2 text-xs","data-testid":"hl-error-row",children:[(0,r.jsxs)("span",{className:"flex items-center gap-2",children:[(0,r.jsx)("time",{className:"shrink-0 text-muted-foreground",children:ie(t.timestamp)}),t.functionPath!==void 0&&(0,r.jsx)("span",{className:"truncate font-mono text-foreground",children:t.functionPath})]}),(0,r.jsx)("span",{className:"text-destructive",children:t.message})]},`${t.timestamp.toString()}-${e.toString()}`)}h(Ce,"Ee");var he={completed:0,failed:2,in_progress:1},Ie=h(t=>{let e=0,a=0,s=0,l=0,c=[];for(let{metrics:o}of t){if(o===null){l+=1;continue}s+=1,e+=o.requests,a+=o.errors,c.push(...o.history??[])}return{errors:a,failed:l,history:c,reachable:s,requests:e}},"Me"),De=h(t=>{let e=new Map;for(let a of t)for(let s of a){let l=e.get(s.path);if(l===void 0){e.set(s.path,{...s});continue}l.calls+=s.calls,l.errors+=s.errors,l.totalDurationMs+=s.totalDurationMs,l.scans=(l.scans??0)+(s.scans??0),l.maxDurationMs=Math.max(l.maxDurationMs,s.maxDurationMs),l.lastCalledAt=Math.max(l.lastCalledAt,s.lastCalledAt),(s.lastErrorAt??0)>(l.lastErrorAt??0)&&(l.lastErrorAt=s.lastErrorAt,l.lastErrorMessage=s.lastErrorMessage)}return[...e.values()]},"qe"),Pe=h(t=>{let e=new Map;for(let a of t)for(let s of a){let l=e.get(s.id);if(l===void 0){e.set(s.id,s);continue}let c=he[s.status]-he[l.status];(c>0||c===0&&(s.updatedAt??0)>(l.updatedAt??0))&&e.set(s.id,s)}return[...e.values()]},"$e"),Fe=j(M.getAuthMetrics),Le=j(M.getFunctionStats),Te=j(M.getLogs),Re=j(M.getMetrics),ze=j(M.migrationStatus),Oe=5,ge=2e3,Ke=5,_e=.1,$e=.3,He=1,Ue=50,Ge=h((t,e,a)=>t>=a?"crit":t>=e?"warn":"ok","_e"),Qe=h(t=>{let e=new Map;for(let s of t??[]){let l=e.get(s.bucketMs)??{calls:0,errors:0};l.calls+=s.calls,l.errors+=s.errors,e.set(s.bucketMs,l)}let a=[...e.entries()].toSorted((s,l)=>s[0]-l[0]);return{errors:a.map(([,s])=>s.errors),requests:a.map(([,s])=>s.calls)}},"ze"),Je=h(t=>{let e=0,a=0;for(let l of t)l.status==="failed"?e+=1:l.status==="in_progress"&&(a+=1);let s="ok";return e>0?s="crit":a>0&&(s="warn"),{failed:e,level:s,running:a}},"Ke"),Ve=h((t,e)=>t.failed>0?e("{count} failed",{count:t.failed.toString()}):t.running>0?e("{count} running",{count:t.running.toString()}):e("OK"),"He"),Ne={crit:"bg-destructive",ok:"bg-success",warn:"bg-warning"},be={crit:"text-destructive",ok:"text-foreground",warn:"text-warning"},We={crit:"bg-destructive/10 text-destructive",ok:"bg-success/10 text-success",warn:"bg-warning/10 text-warning"},Xe=h(t=>t.includes("crit")?"crit":t.includes("warn")?"warn":"ok","Be"),H=h(t=>{let e=(0,Z.c)(19),{chart:a,label:s,level:l,testId:c,value:o}=t,i=Ne[l],n;e[0]!==i?(n=q("size-1.5 shrink-0 rounded-full",i),e[0]=i,e[1]=n):n=e[1];let p;e[2]!==n?(p=(0,r.jsx)("span",{"aria-hidden":"true",className:n}),e[2]=n,e[3]=p):p=e[3];let g;e[4]!==s||e[5]!==p?(g=(0,r.jsxs)("span",{className:"flex items-center gap-1.5 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:[p,s]}),e[4]=s,e[5]=p,e[6]=g):g=e[6];let N=be[l],d;e[7]!==N?(d=q("truncate text-2xl font-semibold tabular-nums",N),e[7]=N,e[8]=d):d=e[8];let u;e[9]!==d||e[10]!==c||e[11]!==o?(u=(0,r.jsx)("span",{className:d,"data-testid":c,children:o}),e[9]=d,e[10]=c,e[11]=o,e[12]=u):u=e[12];let x;e[13]!==a||e[14]!==u?(x=(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[u,a]}),e[13]=a,e[14]=u,e[15]=x):x=e[15];let v;return e[16]!==g||e[17]!==x?(v=(0,r.jsx)(A,{className:"gap-0 py-0",children:(0,r.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[g,x]})}),e[16]=g,e[17]=x,e[18]=v):v=e[18],v},"T"),Ye=h(async(t,e,a)=>{let s=await Promise.all(a.map(d=>{let u=W(d);return Promise.allSettled([t.query(Re,{},u),t.query(Le,{},u),t.query(ze,{},u)])})),l=W(e),c=typeof t.schedulerStatus=="function"?t.schedulerStatus():Promise.reject(new Error("scheduler status unavailable")),[o,i,n]=await Promise.allSettled([t.query(Te,{},l),t.query(Fe,{},l),c]),p=s.map(([d,u,x])=>({functions:u.status==="fulfilled"?u.value.functions:[],metrics:d.status==="fulfilled"?d.value:null,migrations:x.status==="fulfilled"?x.value.migrations:[]})),g=Ie(p),N=s[0]?.[0];return{auth:i.status==="fulfilled"?i.value:null,entries:o.status==="fulfilled"?o.value.entries:[],functions:De(p.map(d=>d.functions)),logsError:o.status==="rejected"?X(o.reason):null,metricsError:g.reachable===0&&N?.status==="rejected"?X(N.reason):null,migrations:Pe(p.map(d=>d.migrations)),scheduler:n.status==="fulfilled"?n.value:null,totals:g}},"Ge"),Ze=h(t=>{let e=t?.history??[];return{attempts:e.map(a=>a.attempts),failures:e.map(a=>a.failures)}},"Qe"),xt=h(({initialShardKey:t})=>{let e=ne(),a=D(),[s,l]=(0,f.useState)([]),[c,o]=(0,f.useState)(null),[i,n]=(0,f.useState)(null),[p,g]=(0,f.useState)(null),[N,d]=(0,f.useState)([]),[u,x]=(0,f.useState)(null),[v,k]=(0,f.useState)(null),[S,E]=(0,f.useState)([]),[b]=(0,f.useState)(de),y=(0,f.useRef)(!1),w=(0,f.useRef)(!0);(0,f.useEffect)(()=>(w.current=!0,()=>{w.current=!1}),[]);let F=t??"",L=(0,f.useCallback)(async()=>{if(y.current)return;y.current=!0;let m=await Ye(e,F,me(F,b));if(!w.current){y.current=!1;return}n(m.totals),g(m.metricsError),d(m.functions),E(m.migrations),l(m.entries),o(m.logsError),x(m.auth),k(m.scheduler),y.current=!1},[e,b,F]);(0,f.useEffect)(()=>{K(L())},[L]);let G=(0,f.useRef)(0),C=(0,f.useRef)(null),we=h(()=>{let m=Date.now()-G.current;if(m>=ge){G.current=Date.now(),K(L());return}C.current===null&&(C.current=setTimeout(()=>{C.current=null,G.current=Date.now(),K(L())},ge-m))},"de");(0,f.useEffect)(()=>()=>{C.current!==null&&clearTimeout(C.current)},[]);let{data:B,liveError:ye}=ce(M.getMetrics,{},{live:!0,shardKey:F});(0,f.useEffect)(()=>{B!==void 0&&we()},[B]);let ee=s.filter(m=>m.level==="error"),ke=ee.slice(0,Oe),T=Qe(i?.history),te=Ze(u),Se=N.filter(m=>m.calls>0).toSorted((m,V)=>V.errors/V.calls-m.errors/m.calls||V.calls-m.calls).slice(0,Ke),Q=Je(S),Ee=i===null||i.requests===0?0:i.errors/i.requests,J=Y(Ee,xe,ve),re=u===null?"ok":Y(u.failureRate,_e,$e),se=v===null?"ok":Ge(v.backlog,He,Ue),R=Xe([J,re,se,Q.level]),z,O;return R==="crit"?(z=a("Critical"),O=a("One or more service levels are breached.")):R==="warn"?(z=a("Degraded"),O=a("Some service levels need attention.")):(z=a("All systems healthy"),O=a("All service levels are within target.")),(0,r.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-health",children:[(0,r.jsxs)(A,{className:"gap-0 py-0",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4 p-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("span",{"aria-hidden":"true",className:q("flex size-10 shrink-0 items-center justify-center rounded-full",We[R]),children:(0,r.jsx)("span",{className:q("size-3 rounded-full",Ne[R])})}),(0,r.jsxs)("div",{className:"grid leading-tight",children:[(0,r.jsx)("span",{className:"text-sm font-semibold text-foreground","data-testid":"hl-status",children:z}),(0,r.jsx)("span",{className:"text-[13px] text-muted-foreground",children:O})]})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-4",children:[(0,r.jsxs)("div",{className:"text-end",children:[(0,r.jsx)("div",{className:"font-mono text-[10px] tracking-wide text-muted-foreground uppercase",children:a("Requests")}),(0,r.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[T.requests.length>=2&&(0,r.jsx)(_,{ariaLabel:a("Requests over time"),className:"h-6 w-20 text-foreground",series:T.requests,testId:"hl-spark-requests"}),(0,r.jsx)("span",{className:"text-lg font-semibold tabular-nums text-foreground","data-testid":"hl-requests",children:(i?.requests??0).toString()})]})]}),(0,r.jsx)("span",{"aria-hidden":"true",className:"h-9 w-px bg-border"}),(0,r.jsxs)("div",{className:"text-end",children:[(0,r.jsx)("div",{className:"font-mono text-[10px] tracking-wide text-muted-foreground uppercase",children:a("Error rate")}),(0,r.jsx)("div",{className:q("text-lg font-semibold tabular-nums",be[J]),"data-testid":"hl-error-rate",children:i===null?"\u2014":U(i.errors,i.requests)})]}),(0,r.jsx)("span",{"aria-hidden":"true",className:"h-9 w-px bg-border"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(pe,{}),(0,r.jsx)(ue,{message:ye,prefix:"hl"})]})]})]}),p!==null&&(0,r.jsx)("div",{className:"border-t border-border bg-destructive/5 px-4 py-2 text-sm text-destructive","data-testid":"hl-metrics-error",role:"alert",children:p})]}),(0,r.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4","data-testid":"hl-slo",children:[(0,r.jsx)(H,{chart:T.errors.length>=2?(0,r.jsx)(_,{ariaLabel:a("Errors over time"),className:"h-7 w-20 text-destructive",series:T.errors,testId:"hl-spark-errors"}):void 0,label:a("Error rate"),level:J,testId:"hl-slo-errorrate",value:i===null?"\u2014":U(i.errors,i.requests)}),(0,r.jsx)(H,{chart:te.failures.length>=2?(0,r.jsx)(_,{ariaLabel:a("Auth failures over time"),className:"h-7 w-20 text-destructive",series:te.failures,testId:"hl-spark-auth"}):void 0,label:a("Auth failures"),level:re,testId:"hl-slo-auth",value:u===null?"\u2014":U(u.failures,u.attempts)}),(0,r.jsx)(H,{label:a("Scheduler backlog"),level:se,testId:"hl-slo-backlog",value:v===null?"\u2014":v.backlog.toString()}),(0,r.jsx)(H,{label:a("Migrations"),level:Q.level,testId:"hl-slo-migrations",value:Ve(Q,a)})]}),(0,r.jsx)(je,{errorCount:ee.length,logsError:c,topErrors:ke,worstFunctions:Se}),(0,r.jsxs)(A,{className:"gap-0 py-0",children:[(0,r.jsxs)("header",{className:"flex items-center justify-between gap-2 border-b border-border px-4 py-3",children:[(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a("Shards seen")}),(0,r.jsx)(P,{"data-testid":"hl-shard-count",variant:"outline",children:b.length})]}),b.length>0&&(0,r.jsx)("ul",{className:"flex flex-wrap gap-1.5 p-4",children:b.map(m=>(0,r.jsx)("li",{"data-testid":"hl-shard",children:(0,r.jsx)(P,{variant:"secondary",children:m})},m))})]})]})},"dt");export{xt as HealthPanel};