UNPKG

miniflare

Version:

Fun, full-featured, fully-local simulator for Cloudflare Workers

15 lines 29.1 kB
import{c as e,s as t,z as n}from"./useRouterState-DkU0JPAO.js";import{A as r,Bt as i,Ct as a,D as o,E as s,F as c,H as l,I as u,K as d,Lt as f,O as p,St as m,U as h,Vt as g,Z as _,_ as ee,_t as v,f as y,ft as b,k as te,m as ne,ot as re,p as ie,r as x,u as ae,v as oe}from"./button-cdxnqcgzwko8ooha-DW4HgSd6.js";import{t as se}from"./Copy.es-Bz99FhyZ.js";import{n as ce}from"./label-latndvb1ngem7we8-M6HmFWt4.js";import{t as le}from"./Plus.es-BJdTPWhL.js";import{n as S,t as C}from"./dialog-oqh8l3l3zutpibxx-6QAIfPjB.js";import{t as ue}from"./X.es-Cti8Pwro.js";import{n as de}from"./input-group-lxdd09p60cf27pe1-FmDFsFZv.js";import{t as w}from"./select-kva5ru5f673kah1m-DMJc8LO6.js";import{At as T,Nt as fe,ft as pe,pt as me}from"./index-CkemaNd1.js";var E=n(t(),1),he=new Map([[`bold`,E.createElement(E.Fragment,null,E.createElement(`path`,{d:`M204,136a12,12,0,0,1-12,12H64a12,12,0,0,1,0-24H192A12,12,0,0,1,204,136Zm28-60H24a12,12,0,0,0,0,24H232a12,12,0,0,0,0-24Zm-80,96H104a12,12,0,0,0,0,24h48a12,12,0,0,0,0-24Z`}))],[`duotone`,E.createElement(E.Fragment,null,E.createElement(`path`,{d:`M232,56V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56Z`,opacity:`0.2`}),E.createElement(`path`,{d:`M200,136a8,8,0,0,1-8,8H64a8,8,0,0,1,0-16H192A8,8,0,0,1,200,136Zm32-56H24a8,8,0,0,0,0,16H232a8,8,0,0,0,0-16Zm-80,96H104a8,8,0,0,0,0,16h48a8,8,0,0,0,0-16Z`}))],[`fill`,E.createElement(E.Fragment,null,E.createElement(`path`,{d:`M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM144,176H112a8,8,0,0,1,0-16h32a8,8,0,0,1,0,16Zm32-40H80a8,8,0,0,1,0-16h96a8,8,0,0,1,0,16Zm32-40H48a8,8,0,0,1,0-16H208a8,8,0,0,1,0,16Z`}))],[`light`,E.createElement(E.Fragment,null,E.createElement(`path`,{d:`M198,136a6,6,0,0,1-6,6H64a6,6,0,0,1,0-12H192A6,6,0,0,1,198,136Zm34-54H24a6,6,0,0,0,0,12H232a6,6,0,0,0,0-12Zm-80,96H104a6,6,0,0,0,0,12h48a6,6,0,0,0,0-12Z`}))],[`regular`,E.createElement(E.Fragment,null,E.createElement(`path`,{d:`M200,136a8,8,0,0,1-8,8H64a8,8,0,0,1,0-16H192A8,8,0,0,1,200,136Zm32-56H24a8,8,0,0,0,0,16H232a8,8,0,0,0,0-16Zm-80,96H104a8,8,0,0,0,0,16h48a8,8,0,0,0,0-16Z`}))],[`thin`,E.createElement(E.Fragment,null,E.createElement(`path`,{d:`M196,136a4,4,0,0,1-4,4H64a4,4,0,0,1,0-8H192A4,4,0,0,1,196,136Zm36-52H24a4,4,0,0,0,0,8H232a4,4,0,0,0,0-8Zm-80,96H104a4,4,0,0,0,0,8h48a4,4,0,0,0,0-8Z`}))]]),D=E.forwardRef((e,t)=>E.createElement(i,{ref:t,...e,weights:he}));D.displayName=`FunnelSimpleIcon`;var O=e(),k=ie(),A={size:{sm:{classes:`text-xs`,buttonSize:`sm`,description:`Small clipboard text for compact UIs`},base:{classes:`text-sm`,buttonSize:`base`,description:`Default clipboard text size`},lg:{classes:`text-sm`,buttonSize:`lg`,description:`Large clipboard text for prominent display`}}},j={size:`lg`},M={slide:{initial:`pointer-events-none absolute inset-0 flex items-center justify-center opacity-0 translate-y-full`,animate:`translate-y-0 opacity-100`,end:`pointer-events-none absolute inset-0 flex items-center justify-center opacity-0 -translate-y-full`}};function ge({size:e=j.size}={}){return g(`flex items-center overflow-hidden bg-kumo-base px-0 font-mono`,A.size[e].classes)}function _e(){let{toasts:e}=r();return(0,O.jsx)(m,{className:`pointer-events-none fixed inset-0 isolate`,children:e.map(e=>(0,O.jsx)(_,{toast:e,className:`absolute`,children:(0,O.jsx)(a,{toast:e,className:g(`flex origin-[var(--transform-origin)] flex-col rounded-md bg-kumo-base px-3 py-1.5 text-xs text-kumo-default font-sans`,`shadow-lg shadow-kumo-tip-shadow outline outline-kumo-fill`),children:(0,O.jsx)(d,{})})},e.id))})}function ve({children:e}){return(0,O.jsx)(l,{children:(0,O.jsxs)(v,{toastManager:k,children:[(0,O.jsx)(_e,{}),e]})})}var N=(0,E.forwardRef)(({text:e,textToCopy:t,className:n,size:r=j.size,onCopy:i,tooltip:a,labels:{copyAction:o=`Copy to clipboard`}={}},l)=>{let[u,d]=(0,E.useState)(!1),f=(0,E.useRef)(null),m=A.size[r],{text:h=`Copy`,copiedText:_=`Copied`,side:v=`top`}=a??{},y=(0,E.useCallback)(async()=>{try{if(typeof navigator<`u`&&navigator.clipboard&&typeof navigator.clipboard.writeText==`function`)await navigator.clipboard.writeText(t??e);else if(typeof document<`u`){let n=document.createElement(`textarea`);n.value=t??e,n.setAttribute(`readonly`,``),n.style.position=`absolute`,n.style.left=`-9999px`,document.body.appendChild(n);let r=document.getSelection(),i=r?.rangeCount?r.getRangeAt(0):null;n.select();try{document.execCommand(`copy`)}finally{document.body.removeChild(n),i&&(r?.removeAllRanges(),r?.addRange(i))}}d(!0),a?k.add({description:_,positionerProps:{anchor:f.current,side:v,sideOffset:8},timeout:1500,onClose(){d(!1)}}):setTimeout(()=>d(!1),1500),i?.()}catch(e){console.warn(`Clipboard copy failed`,e)}},[e,i,a,_,v]),b=(0,O.jsxs)(x,{ref:f,size:m.buttonSize,variant:`ghost`,className:`rounded-none border-l! border-kumo-line! px-3 relative overflow-hidden transition-all duration-200`,onClick:y,"aria-label":o,children:[(0,O.jsx)(`span`,{className:g(`flex items-center gap-1 transition-all duration-200`,u?M.slide.animate:M.slide.initial),children:(0,O.jsx)(fe,{})}),(0,O.jsx)(`span`,{className:g(`flex items-center justify-center transition-all duration-200`,u?M.slide.end:M.slide.animate),children:(0,O.jsx)(se,{})})]});return(0,O.jsxs)(`div`,{ref:l,className:g(de({size:m.buttonSize}),ge({size:r}),n),children:[(0,O.jsx)(`span`,{className:`grow truncate ps-4 pe-2`,children:e}),a?(0,O.jsx)(ve,{children:(0,O.jsxs)(ee,{disabled:u,onOpenChange:(e,t)=>{t.reason===`trigger-press`&&t.cancel()},children:[(0,O.jsx)(s,{render:b}),(0,O.jsx)(p,{children:(0,O.jsx)(c,{side:v,sideOffset:8,children:(0,O.jsx)(ae,{className:g(`flex origin-[var(--transform-origin)] flex-col rounded-md bg-kumo-base px-3 py-1.5 text-xs text-kumo-default`,`shadow-lg shadow-kumo-tip-shadow outline outline-kumo-fill`),children:h})})})]})}):b,(0,O.jsx)(`span`,{className:`sr-only`,"aria-live":`polite`,children:u?_:``})]})});N.displayName=`ClipboardText`;var ye={side:`bottom`};function P({children:e,...t}){return(0,O.jsx)(b,{...t,children:e})}P.displayName=`Popover`;function F({children:e,className:t,asChild:n,...r}){return(0,O.jsx)(oe,{className:t,render:n?e:void 0,...r,children:n?void 0:e})}F.displayName=`Popover.Trigger`;function I({children:e,side:t=ye.side,align:n=`center`,sideOffset:r=8,alignOffset:i=0,positionMethod:a=`absolute`,className:s,container:c}){let l=f();return(0,O.jsx)(o,{container:c??l??void 0,children:(0,O.jsx)(te,{align:n,alignOffset:i,side:t,sideOffset:r,positionMethod:a,children:(0,O.jsxs)(y,{className:g(`flex origin-(--transform-origin) flex-col rounded-lg bg-kumo-base px-4 py-3 text-sm text-kumo-default`,`shadow-lg shadow-kumo-tip-shadow outline outline-kumo-fill`,`transition-[transform,scale,opacity] duration-150`,`data-starting-style:scale-90 data-starting-style:opacity-0`,`data-ending-style:scale-90 data-ending-style:opacity-0`,`data-instant:duration-0`,`kumo-popover-popup`,s),children:[(0,O.jsx)(u,{className:g(`flex`,`data-[side=bottom]:-top-2`,`data-[side=left]:right-[-13px] data-[side=left]:rotate-90`,`data-[side=right]:left-[-13px] data-[side=right]:-rotate-90`,`data-[side=top]:-bottom-2 data-[side=top]:rotate-180`),children:(0,O.jsx)(be,{})}),e]})})})}I.displayName=`Popover.Content`;function L({className:e,...t}){return(0,O.jsx)(re,{className:g(`m-0 text-base leading-6 font-medium`,e),...t})}L.displayName=`Popover.Title`;function R({className:e,...t}){return(0,O.jsx)(h,{className:g(`m-0 text-base leading-6 text-kumo-subtle`,e),...t})}R.displayName=`Popover.Description`;function z({children:e,className:t,asChild:n,...r}){return(0,O.jsx)(ne,{className:t,render:n?e:void 0,...r,children:n?void 0:e})}z.displayName=`Popover.Close`;function be(e){return(0,O.jsxs)(`svg`,{width:`20`,height:`10`,viewBox:`0 0 20 10`,fill:`none`,...e,children:[(0,O.jsx)(`path`,{d:`M9.66437 2.60207L4.80758 6.97318C4.07308 7.63423 3.11989 8 2.13172 8H0V10H20V8H18.5349C17.5468 8 16.5936 7.63423 15.8591 6.97318L11.0023 2.60207C10.622 2.2598 10.0447 2.25979 9.66437 2.60207Z`,className:`fill-kumo-base`}),(0,O.jsx)(`path`,{d:`M8.99542 1.85876C9.75604 1.17425 10.9106 1.17422 11.6713 1.85878L16.5281 6.22989C17.0789 6.72568 17.7938 7.00001 18.5349 7.00001L15.89 7L11.0023 2.60207C10.622 2.2598 10.0447 2.2598 9.66436 2.60207L4.77734 7L2.13171 7.00001C2.87284 7.00001 3.58774 6.72568 4.13861 6.22989L8.99542 1.85876Z`,className:`fill-kumo-tip-shadow`}),(0,O.jsx)(`path`,{d:`M10.3333 3.34539L5.47654 7.71648C4.55842 8.54279 3.36693 9 2.13172 9H0V8H2.13172C3.11989 8 4.07308 7.63423 4.80758 6.97318L9.66437 2.60207C10.0447 2.25979 10.622 2.2598 11.0023 2.60207L15.8591 6.97318C16.5936 7.63423 17.5468 8 18.5349 8H20V9H18.5349C17.2998 9 16.1083 8.54278 15.1901 7.71648L10.3333 3.34539Z`,className:`fill-kumo-tip-stroke`})]})}var B=Object.assign(P,{Trigger:F,Content:I,Title:L,Description:R,Close:z});function xe({onConfirm:e,loading:t=!1,disabled:n=!1}){let[r,i]=(0,E.useState)(!1);return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(x,{size:`sm`,variant:`ghost`,icon:S,title:`Clear all captured traces and events`,loading:t,disabled:n||t,onClick:()=>i(!0),children:`Clear`}),(0,O.jsx)(C.Root,{open:r,onOpenChange:i,children:(0,O.jsxs)(C,{size:`sm`,children:[(0,O.jsxs)(`div`,{className:`px-6 pt-6 pb-4`,children:[(0,O.jsx)(C.Title,{className:`text-lg font-semibold text-kumo-default`,children:`Clear all telemetry?`}),(0,O.jsx)(`p`,{className:`mt-1 text-sm text-kumo-subtle`,children:`This permanently deletes all captured traces and events. This can't be undone.`})]}),(0,O.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-kumo-fill px-6 py-4`,children:[(0,O.jsx)(x,{variant:`secondary`,onClick:()=>i(!1),children:`Cancel`}),(0,O.jsx)(x,{variant:`destructive`,onClick:()=>{i(!1),e()},children:`Clear everything`})]})]})})]})}var V=[{op:`~`,label:`contains`,types:[`string`],needsValue:!0},{op:`!~`,label:`does not contain`,types:[`string`],needsValue:!0},{op:`=`,label:`equals`,types:[`string`,`number`],needsValue:!0},{op:`!=`,label:`does not equal`,types:[`string`,`number`],needsValue:!0},{op:`^`,label:`starts with`,types:[`string`],needsValue:!0},{op:`>`,label:`greater than`,types:[`number`],needsValue:!0},{op:`>=`,label:`greater or equal`,types:[`number`],needsValue:!0},{op:`<`,label:`less than`,types:[`number`],needsValue:!0},{op:`<=`,label:`less or equal`,types:[`number`],needsValue:!0},{op:`exists`,label:`exists`,types:[`string`],needsValue:!1},{op:`!exists`,label:`does not exist`,types:[`string`],needsValue:!1}];function Se(e){return V.filter(t=>t.types.includes(e))}function Ce(e){return e===`number`?`>`:`~`}function we(e){return V.find(t=>t.op===e)?.label??e}function H(e){return V.find(t=>t.op===e)?.needsValue??!0}var Te=[`>=`,`<=`,`>`,`<`,`=`];function U(e){let t=[],n=/"[^"]*"|\S+/g,r;for(;(r=n.exec(e))!==null;)t.push(r[0]);return t}function W(e){return e.length>=2&&e.startsWith(`"`)&&e.endsWith(`"`)?e.slice(1,-1):e}function Ee(e){for(let t of Te)if(e.startsWith(t))return{op:t,value:e.slice(t.length)};return{op:`=`,value:e}}function G(e){let t=e.indexOf(`:`);if(t<=0)return null;let n=W(e.slice(t+1));return n?{key:e.slice(0,t).toLowerCase(),value:n}:null}function De(e){let t={text:``,clauses:[]},n=[];for(let r of U(e.trim())){let e=G(r);if(!e){n.push(W(r));continue}switch(e.key){case`status`:{let n=e.value.toLowerCase();n===`error`||n===`err`||n===`fail`?t.status=`error`:(n===`success`||n===`ok`||n===`200`)&&(t.status=`success`);break}case`kind`:case`type`:t.kind=e.value.toLowerCase();break;case`trace`:case`traceid`:case`trace_id`:t.traceId=e.value;break;case`span`:case`spanid`:case`span_id`:t.spanId=e.value;break;case`dur`:case`duration`:{let{op:n,value:r}=Ee(e.value);t.clauses.push({field:`duration`,op:n,value:r});break}default:t.clauses.push({field:e.key,op:`~`,value:e.value})}}return t.text=n.join(` `),t}function Oe(e){let t={text:``},n=[];for(let r of U(e.trim())){let e=G(r);if(!e){n.push(W(r));continue}e.key===`level`||e.key===`lvl`?t.level=e.value.toLowerCase():e.key===`op`||e.key===`operation`||e.key===`route`?t.operation=e.value:e.key===`trace`||e.key===`traceid`||e.key===`trace_id`?t.traceId=e.value:e.key===`span`||e.key===`spanid`||e.key===`span_id`?t.spanId=e.value:n.push(r)}return t.text=n.join(` `),t}function K(e){return Ce(e)}function ke({type:e}){return(0,O.jsx)(`span`,{className:`rounded-sm bg-kumo-fill px-1 font-mono text-[10px] leading-4 text-kumo-subtle uppercase`,children:e===`number`?`num`:`str`})}function Ae({fields:e,clauses:t,onApply:n,itemNoun:r=`results`}){let[i,a]=(0,E.useState)(!1),[o,s]=(0,E.useState)([]),c=(0,E.useCallback)(t=>e.find(e=>e.key===t),[e]),l=(0,E.useCallback)(e=>c(e)?.label??e,[c]),u=(0,E.useCallback)(e=>c(e)?.type??`string`,[c]),d=(0,E.useCallback)(()=>{let t=e[0];return{field:t?.key??``,op:K(t?.type??`string`),value:``}},[e]),f=(0,E.useCallback)(()=>{s(t.length?t.map(e=>({...e})):[d()]),a(!0)},[t,d]),p=(e,t)=>s(n=>n.map((n,r)=>r===e?{...n,...t}:n)),m=e=>s(t=>t.filter((t,n)=>n!==e));return(0,O.jsxs)(O.Fragment,{children:[t.map((e,r)=>(0,O.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-kumo-fill px-2 py-0.5 text-xs font-medium text-kumo-default`,children:[(0,O.jsx)(`span`,{className:`font-mono`,children:l(e.field)}),(0,O.jsx)(`span`,{className:`text-kumo-subtle`,children:we(e.op)}),H(e.op)&&(0,O.jsx)(`span`,{className:`font-mono`,children:e.value}),(0,O.jsx)(`button`,{type:`button`,"aria-label":`Remove ${l(e.field)} filter`,className:`ml-0.5 flex items-center text-kumo-subtle hover:text-kumo-default`,onClick:()=>n(t.filter((e,t)=>t!==r)),children:(0,O.jsx)(ue,{size:11})})]},`${e.field}-${e.op}-${r}`)),(0,O.jsx)(x,{size:`sm`,variant:`ghost`,icon:D,onClick:f,children:t.length?`Filters (${t.length})`:`Add filter`}),(0,O.jsx)(C.Root,{open:i,onOpenChange:a,children:(0,O.jsxs)(C,{size:`lg`,children:[(0,O.jsxs)(`div`,{className:`border-b border-kumo-fill px-6 pt-6 pb-4`,children:[(0,O.jsx)(C.Title,{className:`text-lg font-semibold text-kumo-default`,children:`Add filter`}),(0,O.jsxs)(`p`,{className:`mt-1 text-sm text-kumo-subtle`,children:[`Create one or more filters. Only `,r,` matching all of them are shown.`]})]}),(0,O.jsxs)(`div`,{className:`flex flex-col gap-2 px-6 py-6`,children:[o.map((t,n)=>{let r=u(t.field),i=H(t.op);return(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(w,{"aria-label":`Field`,value:t.field,onValueChange:e=>{let t=String(e);p(n,{field:t,op:K(u(t))})},children:e.map(e=>(0,O.jsx)(w.Option,{value:e.key,children:e.label},e.key))}),(0,O.jsx)(ke,{type:r}),(0,O.jsx)(w,{"aria-label":`Operator`,value:t.op,onValueChange:e=>p(n,{op:String(e)}),children:Se(r).map(e=>(0,O.jsx)(w.Option,{value:e.op,children:e.label},e.op))}),i?(0,O.jsx)(`input`,{className:`focus-visible:ring-kumo-ring w-full flex-1 rounded-lg border border-kumo-fill bg-kumo-base px-3 py-2 text-sm text-kumo-default placeholder:text-kumo-subtle focus:border-kumo-brand focus:outline-none focus-visible:ring-2`,"aria-label":`Value`,type:r===`number`?`number`:`text`,value:t.value,placeholder:`Value…`,onChange:e=>p(n,{value:e.currentTarget.value})}):(0,O.jsx)(`div`,{className:`flex-1`}),(0,O.jsx)(x,{shape:`square`,variant:`ghost`,icon:S,"aria-label":`Remove filter`,disabled:o.length===1,onClick:()=>m(n)})]},n)}),(0,O.jsx)(`div`,{children:(0,O.jsx)(x,{size:`sm`,variant:`ghost`,icon:le,onClick:()=>s(e=>[...e,d()]),children:`Add filter`})})]}),(0,O.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-kumo-fill px-6 py-4`,children:[(0,O.jsx)(x,{variant:`secondary`,onClick:()=>a(!1),children:`Cancel`}),(0,O.jsx)(x,{variant:`primary`,onClick:()=>{n(o.map(e=>({...e,value:e.value.trim()})).filter(e=>e.field&&(!H(e.op)||e.value))),a(!1)},children:`Run query`})]})]})})]})}function je(){return(0,O.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,O.jsxs)(`header`,{className:`flex min-h-14 items-center gap-2.5 border-b border-kumo-fill px-4`,children:[(0,O.jsx)(T,{size:18,className:`text-kumo-subtle`}),(0,O.jsx)(`span`,{className:`text-sm font-semibold text-kumo-default`,children:`Observability`})]}),(0,O.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center px-6 text-center`,children:[(0,O.jsx)(T,{size:32,className:`mb-3 text-kumo-subtle`}),(0,O.jsx)(`h3`,{className:`text-base font-semibold text-kumo-default`,children:`Observability capture is off`}),(0,O.jsxs)(`p`,{className:`mt-2 max-w-md text-sm text-kumo-subtle`,children:[`Local observability is opt-in for now. To record traces, spans, and logs from your Worker, restart your dev server with the`,` `,(0,O.jsx)(`code`,{className:`font-mono text-[0.9em]`,children:`X_LOCAL_OBSERVABILITY`}),` `,`environment variable set:`]}),(0,O.jsx)(N,{size:`base`,className:`mt-3 max-w-md`,text:`X_LOCAL_OBSERVABILITY=true wrangler dev`,tooltip:{text:`Copy command`,copiedText:`Copied!`}}),(0,O.jsxs)(`p`,{className:`mt-3 max-w-md text-sm text-kumo-subtle`,children:[`(or`,` `,(0,O.jsx)(`code`,{className:`font-mono text-[0.9em]`,children:`X_LOCAL_OBSERVABILITY=true`}),` `,`before `,(0,O.jsx)(`code`,{className:`font-mono text-[0.9em]`,children:`vite dev`}),`)`]})]})]})}function Me({variant:e}){return(0,O.jsxs)(B,{children:[(0,O.jsx)(B.Trigger,{render:(0,O.jsx)(x,{size:`sm`,shape:`square`,variant:`ghost`,icon:ce,"aria-label":`Query syntax help`})}),(0,O.jsxs)(B.Content,{side:`bottom`,align:`end`,className:`max-w-sm`,children:[(0,O.jsx)(`div`,{className:`text-sm font-semibold text-kumo-default`,children:`Query syntax`}),(0,O.jsxs)(`p`,{className:`mt-1 text-sm text-kumo-subtle`,children:[`Combine `,(0,O.jsx)(`code`,{children:`key:value`}),` terms (matched with AND). This is a subset of the Workers Observability dashboard syntax.`]}),(0,O.jsx)(`ul`,{className:`mt-2 space-y-1 text-sm text-kumo-default`,children:e===`traces`?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`li`,{children:[(0,O.jsx)(`code`,{children:`status:error`}),` or `,(0,O.jsx)(`code`,{children:`status:success`})]}),(0,O.jsxs)(`li`,{children:[(0,O.jsx)(`code`,{children:`kind:`}),` http | fetch | d1 | kv | r2 | do`]}),(0,O.jsxs)(`li`,{children:[(0,O.jsx)(`code`,{children:`dur:>100`}),` — duration in ms (`,(0,O.jsx)(`code`,{children:`> >= < <=`}),`)`]}),(0,O.jsxs)(`li`,{children:[(0,O.jsx)(`code`,{children:`db.query.text:orders`}),` — any attribute key`]}),(0,O.jsxs)(`li`,{children:[(0,O.jsx)(`code`,{children:`trace:`}),` / `,(0,O.jsx)(`code`,{children:`span:`}),` — look up by id`]}),(0,O.jsx)(`li`,{children:`Bare words become free-text search.`})]}):(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`li`,{children:[(0,O.jsx)(`code`,{children:`level:`}),` error | warn | info | debug`]}),(0,O.jsxs)(`li`,{children:[(0,O.jsx)(`code`,{children:`op:/checkout`}),` — filter by operation/route`]}),(0,O.jsxs)(`li`,{children:[(0,O.jsx)(`code`,{children:`trace:`}),` / `,(0,O.jsx)(`code`,{children:`span:`}),` — look up by id`]}),(0,O.jsx)(`li`,{children:`Bare words search the message and service.`})]})})]})]})}var Ne=`SELECT trace_id, span_id, parent_id, service, name, kind, start_ms, duration_ms, outcome, error, json(attributes) AS attributes FROM spans WHERE trace_id = ? ORDER BY start_ms`,Pe=`SELECT trace_id, span_id, seq, ts_ms, level, message, operation FROM logs WHERE trace_id = ? ORDER BY ts_ms, seq`;async function q(e,t){let n=(await me({body:{sql:e,params:t},throwOnError:!0})).data?.result,r=n?.columns??[];return(n?.rows??[]).map(e=>{let t={};return r.forEach((n,r)=>{t[n]=e[r]}),t})}function Fe(e){return q(Ne,[e])}function Ie(e){return q(Pe,[e])}var Le=10130;function Re(e){if(e&&typeof e==`object`&&`errors`in e){let{errors:t}=e;return Array.isArray(t)&&t.some(e=>e?.code===Le)}return!1}async function ze(){await pe({throwOnError:!0})}function J(e){return e.duration_ms===null||e.duration_ms===void 0}var Be=[`__VITE_RUNNER_OBJECT__`,`__router-worker__`,`__asset-worker__`,`__vite_proxy_worker__`,`__vite_plugin_cloudflare`];function Y(e){let t=`${e.service??``} ${e.name??``} ${e.attributes??``}`;return Be.some(e=>t.includes(e))}function Ve(e){return e==null||Number.isNaN(e)?`—`:e<1e3?`${Math.round(e*100)/100}ms`:`${(e/1e3).toFixed(2)}s`}function X(e){if(!e)return{};try{let t=JSON.parse(e);return t&&typeof t==`object`?t:{}}catch{return{}}}function Z(e){if(e.error||e.outcome&&e.outcome!==`ok`)return!0;let t=X(e.attributes)[`http.response.status_code`],n=typeof t==`number`?t:Number(t);return Number.isFinite(n)&&n>=400}function He(e){return typeof e==`string`?e:Array.isArray(e)?e.map(e=>typeof e==`string`?e:JSON.stringify(e)).join(` `):JSON.stringify(e)}function Ue(e){if(e===void 0)return``;try{return He(JSON.parse(e))}catch{return e}}var Q=`(error IS NOT NULL OR (outcome IS NOT NULL AND outcome != 'ok') OR CAST(json_extract(json(attributes), '$."http.response.status_code"') AS INTEGER) >= 400)`,We=`(json_extract(json(s.attributes), '$."url.full"') IS NULL OR json_extract(json(s.attributes), '$."url.full"') NOT LIKE '%/.well-known/appspecific/com.chrome.devtools.json')`,Ge=`SELECT s.trace_id, s.span_id AS root_span_id, s.name, s.kind, s.service, s.outcome, s.error, s.created_at, s.start_ms, json(s.attributes) AS attributes, (SELECT ROUND(MAX(x.start_ms + COALESCE(x.duration_ms, 0)) - MIN(x.start_ms), 2) FROM spans x WHERE x.trace_id = s.trace_id) AS duration_ms, (SELECT COUNT(*) FROM spans c WHERE c.trace_id = s.trace_id) AS span_count, (SELECT COUNT(*) FROM spans e WHERE e.trace_id = s.trace_id AND ${Q}) AS error_count, (SELECT COUNT(DISTINCT v.service) FROM spans v WHERE v.trace_id = s.trace_id AND v.service IS NOT NULL) AS service_count FROM spans s`,Ke=new Set([`=`,`!=`,`>`,`>=`,`<`,`<=`]);function qe(e){if(!Ke.has(e.op))return null;let t=Number(e.value);return Number.isNaN(t)?null:{sql:`(SELECT MAX(d.start_ms + COALESCE(d.duration_ms, 0)) - MIN(d.start_ms) FROM spans d WHERE d.trace_id = s.trace_id) ${e.op} ?`,params:[t]}}function Je(e){let t=e.op===`!~`||e.op===`!=`||e.op===`!exists`?`NOT IN`:`IN`;if(e.op===`exists`||e.op===`!exists`)return{sql:`s.trace_id ${t} (SELECT sp.trace_id FROM spans sp, json_each(json(sp.attributes)) j WHERE j.key = ?)`,params:[e.field]};let n=e.value.trim();if(!n)return null;let r,i;switch(e.op){case`~`:case`!~`:r=`j.value LIKE ?`,i=`%${n}%`;break;case`^`:r=`j.value LIKE ?`,i=`${n}%`;break;case`=`:case`!=`:r=`j.value = ?`,i=n;break;default:return null}return{sql:`s.trace_id ${t} (SELECT sp.trace_id FROM spans sp, json_each(json(sp.attributes)) j WHERE j.key = ? AND ${r})`,params:[e.field,i]}}function Ye(e,t){if(t.op===`exists`)return{sql:`${e} IS NOT NULL`,params:[]};if(t.op===`!exists`)return{sql:`${e} IS NULL`,params:[]};let n=t.value.trim();if(!n)return null;switch(t.op){case`~`:return{sql:`${e} LIKE ?`,params:[`%${n}%`]};case`!~`:return{sql:`${e} NOT LIKE ?`,params:[`%${n}%`]};case`^`:return{sql:`${e} LIKE ?`,params:[`${n}%`]};case`=`:return{sql:`${e} = ?`,params:[n]};case`!=`:return{sql:`${e} != ?`,params:[n]};default:return null}}var Xe={service:`sp.service`,operation:`l.operation`,message:`l.message`,level:`l.level`};function Ze(e={}){let t=Number(e.limit??100),n=[`s.parent_id IS NULL`,We],r=[];if(e.status===`success`?n.push(`s.trace_id NOT IN (SELECT trace_id FROM spans WHERE ${Q})`):e.status===`error`&&n.push(`s.trace_id IN (SELECT trace_id FROM spans WHERE ${Q})`),e.kind&&e.kind!==`all`&&(n.push(`s.trace_id IN (SELECT trace_id FROM spans WHERE kind = ?)`),r.push(e.kind)),e.traceId&&(n.push(`s.trace_id LIKE ?`),r.push(`${e.traceId}%`)),e.spanId&&(n.push(`s.trace_id IN (SELECT trace_id FROM spans WHERE span_id LIKE ?)`),r.push(`${e.spanId}%`)),e.tagKey&&e.tagKey!==`all`){let t=e.tagValue?.trim();t?(n.push(`s.trace_id IN (SELECT sp.trace_id FROM spans sp, json_each(json(sp.attributes)) j WHERE j.key = ? AND j.value LIKE ?)`),r.push(e.tagKey,`%${t}%`)):(n.push(`s.trace_id IN (SELECT sp.trace_id FROM spans sp, json_each(json(sp.attributes)) j WHERE j.key = ?)`),r.push(e.tagKey))}for(let t of e.clauses??[])if(t.field===`duration`){let e=qe(t);e&&(n.push(e.sql),r.push(...e.params))}else{let e=Je(t);e&&(n.push(e.sql),r.push(...e.params))}let i=e.search?.trim();if(i){let e=`%${i}%`,t=`${i}%`;n.push(`(s.name LIKE ? OR s.trace_id LIKE ? OR s.trace_id IN (SELECT trace_id FROM spans WHERE name LIKE ? OR span_id LIKE ? OR json(attributes) LIKE ?))`),r.push(e,t,e,t,e)}return r.push(t),q(`${Ge} WHERE ${n.join(` AND `)} ORDER BY s.start_ms DESC LIMIT ?`,r)}async function Qe(){return(await q(`SELECT DISTINCT j.key AS k FROM spans s, json_each(json(s.attributes)) j WHERE s.attributes IS NOT NULL ORDER BY k LIMIT 200`,[])).map(e=>String(e.k)).filter(Boolean)}async function $e(e){return(await q(`SELECT s.span_id FROM spans s JOIN spans p ON p.trace_id = s.trace_id AND p.span_id = s.parent_id WHERE s.trace_id = ? AND s.service IS NOT NULL AND s.service IS NOT p.service AND (s.attributes IS NULL OR json(s.attributes) NOT LIKE '%__VITE_RUNNER_OBJECT__%')`,[e])).map(e=>String(e.span_id)).filter(Boolean)}function et(e,t){let n=new Map(e.map(e=>[e.span_id,e])),r=n.get(t);if(!r)return;let i=new Set;for(;r.parent_id&&!i.has(r.span_id);){i.add(r.span_id);let e=n.get(r.parent_id);if(!e)break;r=e}return r.span_id}function tt(e={}){let t=Number(e.limit??200),n=[],r=[];e.level&&e.level!==`all`&&(n.push(`l.level = ?`),r.push(e.level));let i=e.operation?.trim();i&&(n.push(`l.operation LIKE ?`),r.push(`%${i}%`)),e.traceId&&(n.push(`l.trace_id LIKE ?`),r.push(`${e.traceId}%`)),e.spanId&&(n.push(`l.span_id LIKE ?`),r.push(`${e.spanId}%`));let a=e.search?.trim();if(a){let e=`%${a}%`,t=`${a}%`;n.push(`(l.message LIKE ? OR l.operation LIKE ? OR sp.service LIKE ? OR l.trace_id LIKE ? OR l.span_id LIKE ?)`),r.push(e,e,e,t,t)}for(let t of e.clauses??[]){let e=Xe[t.field];if(!e)continue;let i=Ye(e,t);i&&(n.push(i.sql),r.push(...i.params))}return r.push(t),q(`SELECT l.trace_id, l.span_id, l.seq, l.ts_ms, l.level, l.message, l.operation, l.created_at, sp.service AS service FROM logs l LEFT JOIN spans sp ON sp.trace_id = l.trace_id AND sp.span_id = l.span_id ${n.length?`WHERE ${n.join(` AND `)}`:``} ORDER BY l.created_at DESC, l.seq DESC LIMIT ?`,r)}function nt(e){if(e.kind)return e.kind;let t=(e.name??``).toLowerCase();return t.includes(`kv`)?`kv`:t.includes(`d1`)?`d1`:t.includes(`fetch`)?`fetch`:t.includes(`r2`)?`r2`:`span`}function rt(e){let t=e.name??``,n=X(e.attributes)[`url.full`];return typeof n==`string`&&n&&!t.includes(n)?t?`${t} ${n}`:n:t}var it=`executeCallback`;function $(e){return e.name===`jsrpc`&&X(e.attributes)[`jsrpc.method`]===it}function at(e){let t=new Map(e.map(e=>[e.span_id,e]));return e.some(n=>{if(!$(n))return!1;let r=(n.parent_id?t.get(n.parent_id):void 0)?.name===`durable_object_subrequest`,i=e.some(e=>e.parent_id===n.span_id&&e.name===`fetch`);return r&&i})}function ot(e){let t=new Set;for(let n of e)Y(n)&&t.add(n.span_id);let n=t.size>0||at(e),r=new Set,i=new Set;for(let a of e)Z(a)||(t.has(a.span_id)?r.add(a.span_id):n&&$(a)&&(r.add(a.span_id),i.add(a.span_id)));if(i.size>0){let t=new Set;for(let n of e)i.has(n.span_id)&&n.parent_id&&t.add(n.parent_id);for(let n of e)Z(n)||(t.has(n.span_id)&&n.name===`durable_object_subrequest`&&r.add(n.span_id),n.name===`fetch`&&n.parent_id&&i.has(n.parent_id)&&r.add(n.span_id))}if(r.size===0)return e;let a=new Map(e.map(e=>[e.span_id,e])),o=e=>{let t=e.parent_id??null;for(;t&&r.has(t);)t=a.get(t)?.parent_id??null;return t};return e.filter(e=>!r.has(e.span_id)).map(e=>({...e,parent_id:o(e)}))}var st=[`__miniflare_do_name`];function ct(e){let t=`${e.name??``} ${e.attributes??``}`;return st.some(e=>t.includes(e))}function lt(e){let t=new Set;for(let n of e)ct(n)&&t.add(n.span_id);if(t.size===0)return e;let n=new Map(e.map(e=>[e.span_id,e])),r=e=>{let r=e.parent_id??null;for(;r&&t.has(r);)r=n.get(r)?.parent_id??null;return r};return e.filter(e=>!t.has(e.span_id)).map(e=>({...e,parent_id:r(e)}))}function ut(e,t){return lt(t?ot(e):e)}function dt(e){if(e.length===0)return 0;let t=1/0,n=-1/0;for(let r of e){let e=r.start_ms??0;t=Math.min(t,e),n=Math.max(n,e+(r.duration_ms??0))}return Math.max(0,n-t)}function ft(e,t,n=!1){let r=lt(n?ot(e):e);if(r.length===0)return[];let i=Math.min(...r.map(e=>e.start_ms??0)),a=-1/0;for(let e of r){let t=e.start_ms??i,n=J(e)?t:t+(e.duration_ms??0);a=Math.max(a,n)}Number.isFinite(a)||(a=i);let o=r.map(e=>{let t=e.start_ms??i,n=J(e),r=n?Math.max(a-t,0):e.duration_ms??0,o=t-i;return{trace_id:e.trace_id,span_id:e.span_id,parent_id:e.parent_id,service:e.service,name:e.name,kind:e.kind,start_ms:o,duration_ms:r,end_ms:o+r,outcome:e.outcome,error:e.error,attributes:e.attributes,running:n}}),s=new Map(o.map(e=>[e.span_id,e])),c=s.has(t)?t:o[0]?.span_id??t,l=new Map;for(let e of o){if(e.span_id===c)continue;let t=e.parent_id??c;(!t||!s.has(t))&&(t=c);let n=l.get(t)??[];n.push(e),l.set(t,n)}for(let e of l.values())e.sort((e,t)=>e.start_ms-t.start_ms);let u=[],d=(e,t,n)=>{let r=s.get(e);if(!r)return;let i=l.get(e)??[];u.push({...r,depth:t,hasChildren:i.length>0,layoutId:n}),i.forEach((e,r)=>{d(e.span_id,t+1,`${n}.${r}`)})};return d(c,0,`0`),u}export{Ae as C,xe as E,je as S,De as T,Z as _,et as a,ut as b,$e as c,J as d,Y as f,X as g,rt as h,Fe as i,Qe as l,Ze as m,ze as n,Ve as o,tt as p,Ie as r,Ue as s,ft as t,Re as u,nt as v,Oe as w,Me as x,dt as y};