UNPKG

@kaifronsdal/transcript-viewer

Version:

A web-based viewer for AI conversation transcripts with rollback support

2 lines (1 loc) 3.6 kB
import"../chunks/CWj6FrbW.js";import"../chunks/COV05J5X.js";import{o as st}from"../chunks/C-E9t2Sf.js";import{o as et,e as rt,f as P,k as t,s as e,t as D,i as f,j as it,u as b,q as J,m as i,r as a,x as O,w as ot,v as dt}from"../chunks/DDSnUQRm.js";import{s as c}from"../chunks/Cw2wGIIF.js";import{i as g}from"../chunks/Cufvb6Zw.js";import{i as vt}from"../chunks/CbNCDuoM.js";var lt=P('<div class="stats shadow"><div class="stat"><div class="stat-title">Total</div><div class="stat-value text-lg"> </div></div> <div class="stat"><div class="stat-title">TTFB</div><div class="stat-value text-lg"> </div></div> <div class="stat"><div class="stat-title">Download</div><div class="stat-value text-lg"> </div></div> <div class="stat"><div class="stat-title">Decode</div><div class="stat-value text-lg"> </div></div> <div class="stat"><div class="stat-title">Parse</div><div class="stat-value text-lg"> </div></div> <div class="stat"><div class="stat-title">Bytes</div><div class="stat-value text-lg"> </div></div> <div class="stat"><div class="stat-title">Transcripts</div><div class="stat-value text-lg"> </div></div></div>'),nt=P('<div class="alert alert-error"><span> </span></div>'),ct=P('<div class="max-w-3xl mx-auto p-6 space-y-6"><h1 class="text-2xl font-bold">Bulk Load Perf Test</h1> <p class="text-sm opacity-70">Measures TTFB, download, decode, and parse for a single bulk metadata request.</p> <div class="flex items-center gap-3"><button class="btn btn-primary btn-sm"><!> <!></button> <code class="text-xs opacity-70"></code></div> <!></div>');function wt(z,G){rt(G,!1);let u=J(!1),r=J(null);const y="/api/transcripts/list";async function j(){b(u,!0),b(r,null);try{const s=performance.now(),o=await fetch(`${y}&_=${Date.now()}`,{cache:"no-store"}),k=performance.now()-s;if(!o.ok)throw new Error(`HTTP ${o.status}`);const F=performance.now(),w=await o.arrayBuffer(),l=performance.now()-F,v=performance.now(),n=new TextDecoder().decode(w),p=performance.now()-v,N=performance.now();let d=null;try{d=JSON.parse(n)}catch{}const M=performance.now()-N,$=performance.now()-s,x=w.byteLength;let m="N/A";d&&Array.isArray(d.transcripts)?m=d.transcripts.length:Array.isArray(d)&&(m=d.length),b(r,{ok:!0,endpoint:y,bytes:x,count:m,ttfbMs:Number(k.toFixed(1)),downloadMs:Number(l.toFixed(1)),decodeMs:Number(p.toFixed(1)),parseMs:Number(M.toFixed(1)),totalMs:Number($.toFixed(1))})}catch(s){b(r,{ok:!1,error:(s==null?void 0:s.message)||String(s),endpoint:y,bytes:0,count:"N/A",ttfbMs:0,downloadMs:0,decodeMs:0,parseMs:0,totalMs:0})}finally{b(u,!1)}}st(()=>{j()}),vt();var h=ct(),T=e(t(h),4),_=t(T);_.__click=j;var q=t(_);{var I=s=>{var o=O("Running…");f(s,o)};g(q,s=>{i(u)&&s(I)})}var K=e(q,2);{var Q=s=>{var o=O("Run Test");f(s,o)};g(K,s=>{i(u)||s(Q)})}a(_);var U=e(_,2);U.textContent="/api/transcripts/list",a(T);var V=e(T,2);{var W=s=>{var o=ot(),k=dt(o);{var F=l=>{var v=lt(),n=t(v),p=e(t(n)),N=t(p);a(p),a(n);var d=e(n,2),M=e(t(d)),$=t(M);a(M),a(d);var x=e(d,2),m=e(t(x)),X=t(m);a(m),a(x);var A=e(x,2),L=e(t(A)),Y=t(L);a(L),a(A);var B=e(A,2),R=e(t(B)),Z=t(R);a(R),a(B);var S=e(B,2),C=e(t(S)),tt=t(C,!0);a(C),a(S);var E=e(S,2),H=e(t(E)),at=t(H,!0);a(H),a(E),a(v),D(()=>{c(N,`${i(r).totalMs??""} ms`),c($,`${i(r).ttfbMs??""} ms`),c(X,`${i(r).downloadMs??""} ms`),c(Y,`${i(r).decodeMs??""} ms`),c(Z,`${i(r).parseMs??""} ms`),c(tt,i(r).bytes),c(at,i(r).count)}),f(l,v)},w=l=>{var v=nt(),n=t(v),p=t(n);a(n),a(v),D(()=>c(p,`Failed: ${i(r).error??""}`)),f(l,v)};g(k,l=>{i(r).ok?l(F):l(w,!1)})}f(s,o)};g(V,s=>{i(r)&&s(W)})}a(h),D(()=>_.disabled=i(u)),f(z,h),it()}et(["click"]);export{wt as component};