@dudousxd/nestjs-telescope-ui 1.9.1 → 1.11.0

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 (61) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/dist/client/telescope-client.d.ts +22 -1
  3. package/dist/client/telescope-client.d.ts.map +1 -1
  4. package/dist/client/telescope-client.js +10 -0
  5. package/dist/client/telescope-client.js.map +1 -1
  6. package/dist/client/types.d.ts +131 -1
  7. package/dist/client/types.d.ts.map +1 -1
  8. package/dist/react/components/charts/breakdown-card.d.ts +12 -0
  9. package/dist/react/components/charts/breakdown-card.d.ts.map +1 -0
  10. package/dist/react/components/charts/breakdown-card.js +26 -0
  11. package/dist/react/components/charts/breakdown-card.js.map +1 -0
  12. package/dist/react/components/charts/distribution-chart-card.d.ts +13 -0
  13. package/dist/react/components/charts/distribution-chart-card.d.ts.map +1 -0
  14. package/dist/react/components/charts/distribution-chart-card.js +27 -0
  15. package/dist/react/components/charts/distribution-chart-card.js.map +1 -0
  16. package/dist/react/components/charts/gauge-card.d.ts +11 -0
  17. package/dist/react/components/charts/gauge-card.d.ts.map +1 -0
  18. package/dist/react/components/charts/gauge-card.js +19 -0
  19. package/dist/react/components/charts/gauge-card.js.map +1 -0
  20. package/dist/react/components/extensions/panel-renderer.d.ts +1 -1
  21. package/dist/react/components/extensions/panel-renderer.d.ts.map +1 -1
  22. package/dist/react/components/extensions/panel-renderer.js +20 -1
  23. package/dist/react/components/extensions/panel-renderer.js.map +1 -1
  24. package/dist/react/components/extensions/stat-card.d.ts +11 -1
  25. package/dist/react/components/extensions/stat-card.d.ts.map +1 -1
  26. package/dist/react/components/extensions/stat-card.js +41 -2
  27. package/dist/react/components/extensions/stat-card.js.map +1 -1
  28. package/dist/react/components/flamegraph-view.d.ts +18 -0
  29. package/dist/react/components/flamegraph-view.d.ts.map +1 -0
  30. package/dist/react/components/flamegraph-view.js +48 -0
  31. package/dist/react/components/flamegraph-view.js.map +1 -0
  32. package/dist/react/components/flamegraph.d.ts +34 -0
  33. package/dist/react/components/flamegraph.d.ts.map +1 -0
  34. package/dist/react/components/flamegraph.js +54 -0
  35. package/dist/react/components/flamegraph.js.map +1 -0
  36. package/dist/react/components/waterfall-view.d.ts +13 -0
  37. package/dist/react/components/waterfall-view.d.ts.map +1 -0
  38. package/dist/react/components/waterfall-view.js +58 -0
  39. package/dist/react/components/waterfall-view.js.map +1 -0
  40. package/dist/react/index.d.ts +4 -0
  41. package/dist/react/index.d.ts.map +1 -1
  42. package/dist/react/index.js +4 -0
  43. package/dist/react/index.js.map +1 -1
  44. package/dist/react/use-telescope-queries.d.ts +61 -0
  45. package/dist/react/use-telescope-queries.d.ts.map +1 -1
  46. package/dist/react/use-telescope-queries.js +61 -0
  47. package/dist/react/use-telescope-queries.js.map +1 -1
  48. package/dist/react/use-telescope-stream.d.ts +10 -0
  49. package/dist/react/use-telescope-stream.d.ts.map +1 -0
  50. package/dist/react/use-telescope-stream.js +40 -0
  51. package/dist/react/use-telescope-stream.js.map +1 -0
  52. package/dist/server/telescope-ui.module.d.ts +13 -1
  53. package/dist/server/telescope-ui.module.d.ts.map +1 -1
  54. package/dist/server/telescope-ui.module.js +24 -1
  55. package/dist/server/telescope-ui.module.js.map +1 -1
  56. package/dist/spa/assets/index-Bg5GqHRu.css +1 -0
  57. package/dist/spa/assets/index-DOI9mJvZ.js +142 -0
  58. package/dist/spa/index.html +2 -2
  59. package/package.json +7 -3
  60. package/dist/spa/assets/index-ImRuE3zR.css +0 -1
  61. package/dist/spa/assets/index-rl0yZt5_.js +0 -137
@@ -1,6 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { AreaChartCard } from '../charts/area-chart-card.js';
3
3
  import { BarChartCard } from '../charts/bar-chart-card.js';
4
+ import { BreakdownCard } from '../charts/breakdown-card.js';
5
+ import { DistributionChartCard } from '../charts/distribution-chart-card.js';
6
+ import { GaugeCard } from '../charts/gauge-card.js';
4
7
  import { StackedAreaChartCard } from '../charts/stacked-area-chart-card.js';
5
8
  import { StatCard } from './stat-card.js';
6
9
  function formatStat(value, format) {
@@ -8,6 +11,8 @@ function formatStat(value, format) {
8
11
  return `${Math.round(value * 100)}%`;
9
12
  if (format === 'duration')
10
13
  return value >= 1000 ? `${(value / 1000).toFixed(1)}s` : `${Math.round(value)}ms`;
14
+ if (format === 'rate')
15
+ return `${new Intl.NumberFormat().format(Math.round(value))}/hr`;
11
16
  return new Intl.NumberFormat().format(value);
12
17
  }
13
18
  function fillTemplate(href, row) {
@@ -23,7 +28,19 @@ export function PanelView({ panel, data }) {
23
28
  switch (panel.kind) {
24
29
  case 'stat': {
25
30
  const d = (data ?? {});
26
- return (_jsx(StatCard, { label: panel.title, value: formatStat(d.value ?? 0, panel.format), ...(panel.accent ? { accent: panel.accent } : {}) }));
31
+ return (_jsx(StatCard, { label: panel.title, value: formatStat(d.value ?? 0, panel.format), ...(d.value !== undefined ? { currentValue: d.value } : {}), ...(d.delta !== undefined ? { delta: d.delta } : {}), ...(d.deltaLabel ? { deltaLabel: d.deltaLabel } : {}), ...(panel.spark && d.spark ? { spark: d.spark } : {}), ...(panel.thresholds ? { thresholds: panel.thresholds } : {}), ...(panel.accent ? { accent: panel.accent } : {}) }));
32
+ }
33
+ case 'distribution': {
34
+ const d = (data ?? {});
35
+ return (_jsx(DistributionChartCard, { title: panel.title, buckets: d.buckets ?? [], ...(d.p50 !== undefined ? { p50: d.p50 } : {}), ...(d.p95 !== undefined ? { p95: d.p95 } : {}), ...(d.p99 !== undefined ? { p99: d.p99 } : {}) }));
36
+ }
37
+ case 'gauge': {
38
+ const d = (data ?? {});
39
+ return (_jsx(GaugeCard, { title: panel.title, value: d.value ?? 0, ...(panel.min !== undefined ? { min: panel.min } : {}), ...(panel.max !== undefined ? { max: panel.max } : {}) }));
40
+ }
41
+ case 'breakdown': {
42
+ const d = (data ?? {});
43
+ return (_jsx(BreakdownCard, { title: panel.title, segments: d.segments ?? [], ...(panel.style ? { style: panel.style } : {}) }));
27
44
  }
28
45
  case 'timeseries': {
29
46
  const rows = data?.rows ?? [];
@@ -45,6 +62,8 @@ export function PanelView({ panel, data }) {
45
62
  return (_jsx("td", { className: "px-4 py-2 text-zinc-200", children: c.link ? (_jsx("a", { className: "text-sky-400 hover:underline", href: fillTemplate(c.link.href, row), ...(c.link.external ? { target: '_blank', rel: 'noreferrer' } : {}), children: text })) : (text) }, c.key));
46
63
  }) }, panel.columns.map((c) => String(row[c.key] ?? '')).join('|')))) })] })] }));
47
64
  }
65
+ default:
66
+ return null;
48
67
  }
49
68
  }
50
69
  //# sourceMappingURL=panel-renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"panel-renderer.js","sourceRoot":"","sources":["../../../../src/react/components/extensions/panel-renderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"panel-renderer.js","sourceRoot":"","sources":["../../../../src/react/components/extensions/panel-renderer.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,17 @@
1
1
  import type { JSX } from 'react';
2
- export declare function StatCard({ label, value, accent, hint, }: {
2
+ export interface PanelThresholds {
3
+ warn: number;
4
+ bad: number;
5
+ direction: 'up-bad' | 'down-bad';
6
+ }
7
+ export declare function StatCard({ label, value, delta, deltaLabel, spark, thresholds, currentValue, accent, hint, }: {
3
8
  label: string;
4
9
  value: string | number;
10
+ delta?: number;
11
+ deltaLabel?: string;
12
+ spark?: number[];
13
+ thresholds?: PanelThresholds;
14
+ currentValue?: number;
5
15
  accent?: string;
6
16
  hint?: string;
7
17
  }): JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"stat-card.d.ts","sourceRoot":"","sources":["../../../../src/react/components/extensions/stat-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EACL,MAAwB,EACxB,IAAI,GACL,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,GAAG,CAAC,OAAO,CAQd"}
1
+ {"version":3,"file":"stat-card.d.ts","sourceRoot":"","sources":["../../../../src/react/components/extensions/stat-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;CAClC;AAoCD,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EACL,KAAK,EACL,UAAU,EACV,KAAK,EACL,UAAU,EACV,YAAY,EACZ,MAAwB,EACxB,IAAI,GACL,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,GAAG,CAAC,OAAO,CA8Bd"}
@@ -1,5 +1,44 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- export function StatCard({ label, value, accent = 'text-zinc-100', hint, }) {
3
- return (_jsxs("div", { className: "rounded-lg border border-zinc-800 bg-zinc-900/40 px-4 py-3", children: [_jsx("p", { className: "text-[10px] uppercase tracking-wide text-zinc-500", children: label }), _jsx("p", { className: `mt-1 text-2xl font-semibold tabular-nums ${accent}`, children: value }), hint && _jsx("p", { className: "mt-0.5 text-[10px] text-zinc-600", children: hint })] }));
2
+ function health(value, t) {
3
+ if (value === undefined || !t)
4
+ return null;
5
+ const worseUp = t.direction === 'up-bad';
6
+ if (worseUp ? value >= t.bad : value <= t.bad)
7
+ return 'bad';
8
+ if (worseUp ? value >= t.warn : value <= t.warn)
9
+ return 'warn';
10
+ return 'ok';
11
+ }
12
+ const ACCENT = {
13
+ ok: '#34d399',
14
+ warn: '#fbbf24',
15
+ bad: '#f87171',
16
+ };
17
+ function Sparkline({ points }) {
18
+ if (points.length < 2)
19
+ return null;
20
+ const max = Math.max(...points);
21
+ const min = Math.min(...points);
22
+ const span = max - min || 1;
23
+ const d = points
24
+ .map((p, i) => {
25
+ const x = (i / (points.length - 1)) * 100;
26
+ const y = 20 - ((p - min) / span) * 18 - 1;
27
+ return `${i === 0 ? 'M' : 'L'}${x.toFixed(1)},${y.toFixed(1)}`;
28
+ })
29
+ .join(' ');
30
+ return (_jsxs("svg", { className: "mt-2", width: "100%", height: "22", viewBox: "0 0 100 22", preserveAspectRatio: "none", children: [_jsx("title", { children: "Trend sparkline" }), _jsx("path", { d: d, fill: "none", stroke: "#52525b", strokeWidth: "1.5" })] }));
31
+ }
32
+ export function StatCard({ label, value, delta, deltaLabel, spark, thresholds, currentValue, accent = 'text-zinc-100', hint, }) {
33
+ const h = health(currentValue, thresholds);
34
+ // A positive delta is "good" unless higher is bad.
35
+ const deltaGood = delta === undefined || !thresholds
36
+ ? null
37
+ : thresholds.direction === 'up-bad'
38
+ ? delta < 0
39
+ : delta > 0;
40
+ const deltaColor = deltaGood === null ? '#a1a1aa' : deltaGood ? '#34d399' : '#f87171';
41
+ const arrow = delta === undefined ? '' : delta > 0 ? '▲' : delta < 0 ? '▼' : '◆';
42
+ return (_jsxs("div", { "data-health": h ?? undefined, className: "rounded-lg border border-zinc-800 bg-zinc-900/40 px-4 py-3 overflow-hidden", children: [h && _jsx("div", { style: { height: 3, background: ACCENT[h], margin: '-12px -16px 9px' } }), _jsx("p", { className: "text-[10px] uppercase tracking-wide text-zinc-500", children: label }), _jsxs("p", { className: `mt-1 text-2xl font-semibold tabular-nums ${accent} flex items-baseline gap-2`, children: [value, delta !== undefined && (_jsxs("span", { className: "text-xs font-semibold", style: { color: deltaColor }, children: [arrow, " ", deltaLabel ?? Math.abs(delta)] }))] }), spark && _jsx(Sparkline, { points: spark }), hint && _jsx("p", { className: "mt-0.5 text-[10px] text-zinc-600", children: hint })] }));
4
43
  }
5
44
  //# sourceMappingURL=stat-card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stat-card.js","sourceRoot":"","sources":["../../../../src/react/components/extensions/stat-card.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EACL,MAAM,GAAG,eAAe,EACxB,IAAI,GAML;IACC,OAAO,CACL,eAAK,SAAS,EAAC,4DAA4D,aACzE,YAAG,SAAS,EAAC,mDAAmD,YAAE,KAAK,GAAK,EAC5E,YAAG,SAAS,EAAE,4CAA4C,MAAM,EAAE,YAAG,KAAK,GAAK,EAC9E,IAAI,IAAI,YAAG,SAAS,EAAC,kCAAkC,YAAE,IAAI,GAAK,IAC/D,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"stat-card.js","sourceRoot":"","sources":["../../../../src/react/components/extensions/stat-card.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type JSX } from 'react';
2
+ import type { FlameNode } from '../../client/index.js';
3
+ /**
4
+ * A dependency-light flamegraph (icicle layout, root at top). Renders one
5
+ * absolutely-positioned `<div>` per visible frame — no canvas, no charting
6
+ * library — sized as a percentage of the container width so it's responsive and
7
+ * SSR-safe. Clicking a frame "zooms" to make it the new 100%-width root; click
8
+ * the root or the reset control to zoom back out.
9
+ *
10
+ * Why div-based: the frame trees are pre-aggregated and pruned server-side (and
11
+ * again here via `minWidthFraction`), so the visible cell count is small enough
12
+ * that the DOM is the simplest robust renderer. This keeps the UI bundle free of
13
+ * a heavy flamegraph dependency, as the task requires.
14
+ */
15
+ export declare function Flamegraph({ tree }: {
16
+ tree: FlameNode;
17
+ }): JSX.Element;
18
+ //# sourceMappingURL=flamegraph-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flamegraph-view.d.ts","sourceRoot":"","sources":["../../../src/react/components/flamegraph-view.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,EAAqB,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKvD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CA2ErE"}
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // packages/ui/src/react/components/flamegraph-view.tsx
3
+ import { useMemo, useState } from 'react';
4
+ import { flameColor, flameDepth, flattenFlame, formatProfileMs } from './flamegraph.js';
5
+ const ROW_HEIGHT = 18;
6
+ /**
7
+ * A dependency-light flamegraph (icicle layout, root at top). Renders one
8
+ * absolutely-positioned `<div>` per visible frame — no canvas, no charting
9
+ * library — sized as a percentage of the container width so it's responsive and
10
+ * SSR-safe. Clicking a frame "zooms" to make it the new 100%-width root; click
11
+ * the root or the reset control to zoom back out.
12
+ *
13
+ * Why div-based: the frame trees are pre-aggregated and pruned server-side (and
14
+ * again here via `minWidthFraction`), so the visible cell count is small enough
15
+ * that the DOM is the simplest robust renderer. This keeps the UI bundle free of
16
+ * a heavy flamegraph dependency, as the task requires.
17
+ */
18
+ export function Flamegraph({ tree }) {
19
+ // Zoom focus: the path key of the frame currently treated as the root.
20
+ const [focusKey, setFocusKey] = useState('0');
21
+ const cells = useMemo(() => flattenFlame(tree), [tree]);
22
+ const depth = flameDepth(cells);
23
+ // Resolve the focused subtree's x/width so we can rescale all cells to it.
24
+ const focus = cells.find((c) => c.key === focusKey) ?? cells[0];
25
+ const focusX = focus?.x ?? 0;
26
+ const focusWidth = focus?.width ?? 1;
27
+ const focusDepth = focus?.depth ?? 0;
28
+ if (tree.totalMs <= 0 || cells.length === 0) {
29
+ return (_jsx("div", { className: "flex h-24 items-center justify-center rounded-lg border border-zinc-800 bg-zinc-900/40 text-xs text-zinc-500", children: "No samples \u2014 the capture was empty." }));
30
+ }
31
+ // Only render cells inside the focused subtree (its descendants), rescaled.
32
+ const visible = cells.filter((c) => c.key === focusKey || c.key.startsWith(`${focusKey}.`));
33
+ const rows = depth - focusDepth;
34
+ return (_jsxs("div", { children: [focusKey !== '0' && (_jsx("button", { type: "button", onClick: () => setFocusKey('0'), className: "mb-2 rounded border border-zinc-700 px-2 py-0.5 text-[10px] text-zinc-300 hover:bg-zinc-800", children: "\u2190 Reset zoom" })), _jsx("div", { "data-testid": "flamegraph", className: "relative w-full overflow-hidden rounded-lg border border-zinc-800 bg-zinc-950", style: { height: rows * ROW_HEIGHT + 2 }, children: visible.map((cell) => {
35
+ const left = ((cell.x - focusX) / focusWidth) * 100;
36
+ const width = (cell.width / focusWidth) * 100;
37
+ const top = (cell.depth - focusDepth) * ROW_HEIGHT;
38
+ const pct = ((cell.node.totalMs / tree.totalMs) * 100).toFixed(1);
39
+ return (_jsx("button", { type: "button", onClick: () => setFocusKey(cell.key), title: `${cell.node.name}${cell.node.file ? ` — ${cell.node.file}` : ''}\ntotal ${formatProfileMs(cell.node.totalMs)} (${pct}%) · self ${formatProfileMs(cell.node.selfMs)}`, className: "absolute flex items-center overflow-hidden border border-zinc-950/60 px-1 text-left text-[10px] leading-none text-black/80 hover:brightness-110", style: {
40
+ left: `${left}%`,
41
+ width: `${width}%`,
42
+ top,
43
+ height: ROW_HEIGHT - 1,
44
+ background: cell.node.name === '(root)' ? '#3f3f46' : flameColor(cell.node.name),
45
+ }, children: _jsx("span", { className: "truncate", style: cell.node.name === '(root)' ? { color: '#e4e4e7' } : {}, children: cell.node.name }) }, cell.key));
46
+ }) })] }));
47
+ }
48
+ //# sourceMappingURL=flamegraph-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flamegraph-view.js","sourceRoot":"","sources":["../../../src/react/components/flamegraph-view.tsx"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,OAAO,EAAY,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExF,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAuB;IACtD,uEAAuE;IACvE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAEhC,2EAA2E;IAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,UAAU,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC;IAErC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,CACL,cAAK,SAAS,EAAC,8GAA8G,yDAEvH,CACP,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC5F,MAAM,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;IAEhC,OAAO,CACL,0BACG,QAAQ,KAAK,GAAG,IAAI,CACnB,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAC/B,SAAS,EAAC,6FAA6F,kCAGhG,CACV,EACD,6BACc,YAAY,EACxB,SAAS,EAAC,+EAA+E,EACzF,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,UAAU,GAAG,CAAC,EAAE,YAEvC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACpB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC;oBACpD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC;oBAC9C,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;oBACnD,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAClE,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EAEb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EACpC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,eAAe,CAC/F,IAAI,CAAC,IAAI,CAAC,OAAO,CAClB,KAAK,GAAG,aAAa,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EACzD,SAAS,EAAC,iJAAiJ,EAC3J,KAAK,EAAE;4BACL,IAAI,EAAE,GAAG,IAAI,GAAG;4BAChB,KAAK,EAAE,GAAG,KAAK,GAAG;4BAClB,GAAG;4BACH,MAAM,EAAE,UAAU,GAAG,CAAC;4BACtB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;yBACjF,YAED,eACE,SAAS,EAAC,UAAU,EACpB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,YAE7D,IAAI,CAAC,IAAI,CAAC,IAAI,GACV,IAnBF,IAAI,CAAC,GAAG,CAoBN,CACV,CAAC;gBACJ,CAAC,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { FlameNode } from '../../client/index.js';
2
+ /**
3
+ * A flame cell positioned for rendering: a horizontal bar at depth `depth`,
4
+ * starting at `x` (fraction 0–1 of the root width) and spanning `width`
5
+ * (fraction). Produced by {@link flattenFlame}, which is a PURE function so the
6
+ * layout is unit-testable without a DOM.
7
+ */
8
+ export interface FlameCell {
9
+ /** Stable key path (indices from the root), e.g. "0.1.0". */
10
+ key: string;
11
+ node: FlameNode;
12
+ depth: number;
13
+ /** Left edge as a fraction (0–1) of the root's total width. */
14
+ x: number;
15
+ /** Width as a fraction (0–1) of the root's total width. */
16
+ width: number;
17
+ }
18
+ /**
19
+ * Flattens a flame tree into positioned cells using the icicle layout (root at
20
+ * top, children below, each child's width proportional to its `totalMs` share of
21
+ * the parent). Children are laid out left-to-right widest-first so the hot path
22
+ * reads down the left edge — the convention Chrome DevTools / speedscope use.
23
+ *
24
+ * `minWidthFraction` prunes cells narrower than the given fraction of the root,
25
+ * so a 50k-node profile doesn't emit tens of thousands of sub-pixel divs.
26
+ */
27
+ export declare function flattenFlame(root: FlameNode, minWidthFraction?: number): FlameCell[];
28
+ /** Max depth (number of rows) in a flattened cell list. */
29
+ export declare function flameDepth(cells: FlameCell[]): number;
30
+ /** A stable color for a frame, hashed from its name so siblings differ but a
31
+ * frame keeps its hue across renders. Warm palette (flamegraph convention). */
32
+ export declare function flameColor(name: string): string;
33
+ export declare function formatProfileMs(ms: number): string;
34
+ //# sourceMappingURL=flamegraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flamegraph.d.ts","sourceRoot":"","sources":["../../../src/react/components/flamegraph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,CAAC,EAAE,MAAM,CAAC;IACV,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,SAAQ,GAAG,SAAS,EAAE,CAoBnF;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAErD;AAED;gFACgF;AAChF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ/C;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAIlD"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Flattens a flame tree into positioned cells using the icicle layout (root at
3
+ * top, children below, each child's width proportional to its `totalMs` share of
4
+ * the parent). Children are laid out left-to-right widest-first so the hot path
5
+ * reads down the left edge — the convention Chrome DevTools / speedscope use.
6
+ *
7
+ * `minWidthFraction` prunes cells narrower than the given fraction of the root,
8
+ * so a 50k-node profile doesn't emit tens of thousands of sub-pixel divs.
9
+ */
10
+ export function flattenFlame(root, minWidthFraction = 0.002) {
11
+ const totalMs = root.totalMs > 0 ? root.totalMs : 1;
12
+ const cells = [];
13
+ const walk = (node, depth, x, width, key) => {
14
+ if (width < minWidthFraction)
15
+ return;
16
+ cells.push({ key, node, depth, x, width });
17
+ const children = [...node.children].sort((a, b) => b.totalMs - a.totalMs);
18
+ let childX = x;
19
+ for (let i = 0; i < children.length; i++) {
20
+ const child = children[i];
21
+ if (child === undefined)
22
+ continue;
23
+ const childWidth = (child.totalMs / totalMs) * 1;
24
+ walk(child, depth + 1, childX, childWidth, `${key}.${i}`);
25
+ childX += childWidth;
26
+ }
27
+ };
28
+ walk(root, 0, 0, 1, '0');
29
+ return cells;
30
+ }
31
+ /** Max depth (number of rows) in a flattened cell list. */
32
+ export function flameDepth(cells) {
33
+ return cells.reduce((max, c) => Math.max(max, c.depth), 0) + 1;
34
+ }
35
+ /** A stable color for a frame, hashed from its name so siblings differ but a
36
+ * frame keeps its hue across renders. Warm palette (flamegraph convention). */
37
+ export function flameColor(name) {
38
+ let hash = 0;
39
+ for (let i = 0; i < name.length; i++)
40
+ hash = (hash * 31 + name.charCodeAt(i)) | 0;
41
+ // Hue in the warm band (0–45deg: red→orange→yellow), varied saturation.
42
+ const hue = Math.abs(hash) % 46;
43
+ const sat = 55 + (Math.abs(hash >> 8) % 25);
44
+ const light = 45 + (Math.abs(hash >> 16) % 12);
45
+ return `hsl(${hue}, ${sat}%, ${light}%)`;
46
+ }
47
+ export function formatProfileMs(ms) {
48
+ if (ms < 1)
49
+ return '<1ms';
50
+ if (ms < 1000)
51
+ return `${Math.round(ms)}ms`;
52
+ return `${(ms / 1000).toFixed(2)}s`;
53
+ }
54
+ //# sourceMappingURL=flamegraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flamegraph.js","sourceRoot":"","sources":["../../../src/react/components/flamegraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Waterfall } from '../../client/index.js';
2
+ export interface WaterfallViewProps {
3
+ waterfall: Waterfall;
4
+ onSelect?: ((id: string) => void) | undefined;
5
+ }
6
+ /**
7
+ * Renders a nested span waterfall as a flat, indented timeline — each row a bar
8
+ * positioned by its start offset and sized by its duration, indented by nesting
9
+ * depth (Sentry/Tempo style). The bars are derived entirely from the headless
10
+ * `/traces/:id/waterfall` payload.
11
+ */
12
+ export declare function WaterfallView({ waterfall, onSelect }: WaterfallViewProps): JSX.Element;
13
+ //# sourceMappingURL=waterfall-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waterfall-view.d.ts","sourceRoot":"","sources":["../../../src/react/components/waterfall-view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AA+EtE,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAqBtF"}
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /** Per-entry-type bar colour, mirroring the dashboard's entry-type palette. */
3
+ const TYPE_COLOR = {
4
+ request: 'bg-sky-500',
5
+ query: 'bg-amber-500',
6
+ http_client: 'bg-violet-500',
7
+ job: 'bg-emerald-500',
8
+ cache: 'bg-teal-500',
9
+ exception: 'bg-rose-500',
10
+ event: 'bg-indigo-500',
11
+ log: 'bg-zinc-500',
12
+ mail: 'bg-pink-500',
13
+ redis: 'bg-red-500',
14
+ };
15
+ function colorFor(type) {
16
+ return TYPE_COLOR[type] ?? 'bg-zinc-600';
17
+ }
18
+ function formatMs(ms) {
19
+ if (ms < 1)
20
+ return '<1ms';
21
+ if (ms < 1000)
22
+ return `${Math.round(ms)}ms`;
23
+ return `${(ms / 1000).toFixed(2)}s`;
24
+ }
25
+ /** A flattened list of spans in depth-first order, preserving nesting via depth. */
26
+ function flatten(spans) {
27
+ const out = [];
28
+ const walk = (list) => {
29
+ for (const span of list) {
30
+ out.push(span);
31
+ if (span.children.length > 0)
32
+ walk(span.children);
33
+ }
34
+ };
35
+ walk(spans);
36
+ return out;
37
+ }
38
+ function WaterfallRow({ span, totalDurationMs, onSelect }) {
39
+ // Guard against a zero-width trace (all instant spans) so bars stay visible.
40
+ const span100 = totalDurationMs > 0 ? totalDurationMs : 1;
41
+ const leftPct = Math.min(100, (span.offsetMs / span100) * 100);
42
+ const widthPct = Math.max(0.5, Math.min(100 - leftPct, (span.durationMs / span100) * 100));
43
+ return (_jsxs("button", { type: "button", onClick: () => onSelect?.(span.id), "data-testid": "waterfall-row", className: "flex w-full items-center gap-2 rounded px-1 py-0.5 text-left text-[11px] hover:bg-zinc-800/60", children: [_jsxs("span", { className: "min-w-0 flex-shrink-0 truncate font-mono text-zinc-300", style: { width: '40%', paddingLeft: `${span.depth * 12}px` }, title: span.label, children: [_jsx("span", { className: "mr-1 text-zinc-500", children: span.type }), span.label] }), _jsx("span", { className: "relative h-3 flex-1 rounded bg-zinc-900/60", children: _jsx("span", { className: `absolute top-0 h-3 rounded ${colorFor(span.type)}`, style: { left: `${leftPct}%`, width: `${widthPct}%` }, title: `${formatMs(span.offsetMs)} +${formatMs(span.durationMs)}` }) }), _jsx("span", { className: "w-16 flex-shrink-0 text-right tabular-nums text-zinc-400", children: formatMs(span.durationMs) })] }));
44
+ }
45
+ /**
46
+ * Renders a nested span waterfall as a flat, indented timeline — each row a bar
47
+ * positioned by its start offset and sized by its duration, indented by nesting
48
+ * depth (Sentry/Tempo style). The bars are derived entirely from the headless
49
+ * `/traces/:id/waterfall` payload.
50
+ */
51
+ export function WaterfallView({ waterfall, onSelect }) {
52
+ const rows = flatten(waterfall.spans);
53
+ if (rows.length === 0) {
54
+ return _jsx("p", { className: "text-zinc-600", children: "No spans in this trace" });
55
+ }
56
+ return (_jsxs("div", { className: "space-y-0.5", children: [_jsxs("div", { className: "mb-1 flex items-center justify-between text-[10px] uppercase tracking-wide text-zinc-500", children: [_jsx("span", { children: "Span" }), _jsxs("span", { children: ["Total ", formatMs(waterfall.totalDurationMs)] })] }), rows.map((span) => (_jsx(WaterfallRow, { span: span, totalDurationMs: waterfall.totalDurationMs, onSelect: onSelect }, span.id)))] }));
57
+ }
58
+ //# sourceMappingURL=waterfall-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waterfall-view.js","sourceRoot":"","sources":["../../../src/react/components/waterfall-view.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  export * from './telescope-context.js';
2
2
  export * from './use-telescope-queries.js';
3
+ export * from './use-telescope-stream.js';
3
4
  export * from './components/entry-types.js';
4
5
  export * from './components/entries-table.js';
5
6
  export * from './components/user-tag.js';
6
7
  export * from './components/batch-timeline.js';
8
+ export * from './components/waterfall-view.js';
9
+ export * from './components/flamegraph.js';
10
+ export * from './components/flamegraph-view.js';
7
11
  export * from './components/entry-detail.js';
8
12
  export * from './components/export-json.js';
9
13
  export * from './components/export-json-toolbar.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC"}
@@ -1,9 +1,13 @@
1
1
  export * from './telescope-context.js';
2
2
  export * from './use-telescope-queries.js';
3
+ export * from './use-telescope-stream.js';
3
4
  export * from './components/entry-types.js';
4
5
  export * from './components/entries-table.js';
5
6
  export * from './components/user-tag.js';
6
7
  export * from './components/batch-timeline.js';
8
+ export * from './components/waterfall-view.js';
9
+ export * from './components/flamegraph.js';
10
+ export * from './components/flamegraph-view.js';
7
11
  export * from './components/entry-detail.js';
8
12
  export * from './components/export-json.js';
9
13
  export * from './components/export-json-toolbar.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC"}
@@ -49,6 +49,14 @@ export declare function serverStatsQuery(client: TelescopeClient, paused?: boole
49
49
  [dataTagErrorSymbol]: Error;
50
50
  };
51
51
  };
52
+ export declare function serverStatsHistoryQuery(client: TelescopeClient, paused?: boolean): import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<import("../client/types.js").ServerStatsHistory, Error, import("../client/types.js").ServerStatsHistory, string[]>, "queryFn"> & {
53
+ queryFn?: import("@tanstack/react-query").QueryFunction<import("../client/types.js").ServerStatsHistory, string[], never>;
54
+ } & {
55
+ queryKey: string[] & {
56
+ [dataTagSymbol]: import("../client/types.js").ServerStatsHistory;
57
+ [dataTagErrorSymbol]: Error;
58
+ };
59
+ };
52
60
  export declare function healthQuery(client: TelescopeClient, paused?: boolean): import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<import("../client/types.js").TelescopeHealth, Error, import("../client/types.js").TelescopeHealth, string[]>, "queryFn"> & {
53
61
  queryFn?: import("@tanstack/react-query").QueryFunction<import("../client/types.js").TelescopeHealth, string[], never>;
54
62
  } & {
@@ -126,6 +134,14 @@ export declare function tracesQuery(client: TelescopeClient, window: string, lim
126
134
  [dataTagErrorSymbol]: Error;
127
135
  };
128
136
  };
137
+ export declare function waterfallQuery(client: TelescopeClient, traceId: string): import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<import("../client/types.js").Waterfall, Error, import("../client/types.js").Waterfall, string[]>, "queryFn"> & {
138
+ queryFn?: import("@tanstack/react-query").QueryFunction<import("../client/types.js").Waterfall, string[], never>;
139
+ } & {
140
+ queryKey: string[] & {
141
+ [dataTagSymbol]: import("../client/types.js").Waterfall;
142
+ [dataTagErrorSymbol]: Error;
143
+ };
144
+ };
129
145
  export declare function liveQueuesKey(): readonly ["telescope", "live-queues"];
130
146
  export declare function queueCountsKey(driver: string, queue: string): readonly ["telescope", "queue-counts", string, string];
131
147
  export declare function queueJobsKey(driver: string, queue: string, state: QueueState, page?: {
@@ -271,6 +287,7 @@ export declare function useEntries(query?: EntriesQuery): import("@tanstack/reac
271
287
  export declare function useEntry(id: string): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../client/types.js").EntryWithBatch>, Error>;
272
288
  export declare function useMeta(): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../client/types.js").TelescopeMeta>, Error>;
273
289
  export declare function useServerStats(): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../client/types.js").ServerStats>, Error>;
290
+ export declare function useServerStatsHistory(): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../client/types.js").ServerStatsHistory>, Error>;
274
291
  export declare function useExtensionData(ext: string, provider: string, query?: Record<string, unknown>): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
275
292
  export declare function useHealth(): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../client/types.js").TelescopeHealth>, Error>;
276
293
  export declare function useTags(prefix?: string): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../client/types.js").TagCount[]>, Error>;
@@ -284,5 +301,49 @@ export declare function useTimeseries(query: {
284
301
  tag?: string;
285
302
  }): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../client/types.js").TimeseriesReport>, Error>;
286
303
  export declare function useTraces(window: string, limit?: number): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../client/types.js").TracesResult>, Error>;
304
+ export declare function useWaterfall(traceId: string): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../client/types.js").Waterfall>, Error>;
305
+ export declare function profilerStatusQuery(client: TelescopeClient, paused?: boolean): import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<import("../client/types.js").ProfilerStatus, Error, import("../client/types.js").ProfilerStatus, string[]>, "queryFn"> & {
306
+ queryFn?: import("@tanstack/react-query").QueryFunction<import("../client/types.js").ProfilerStatus, string[], never>;
307
+ } & {
308
+ queryKey: string[] & {
309
+ [dataTagSymbol]: import("../client/types.js").ProfilerStatus;
310
+ [dataTagErrorSymbol]: Error;
311
+ };
312
+ };
313
+ export declare function profilesQuery(client: TelescopeClient, limit?: number, paused?: boolean): import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<import("../client/types.js").Page<import("../client/types.js").Entry>, Error, import("../client/types.js").Page<import("../client/types.js").Entry>, (string | number | undefined)[]>, "queryFn"> & {
314
+ queryFn?: import("@tanstack/react-query").QueryFunction<import("../client/types.js").Page<import("../client/types.js").Entry>, (string | number | undefined)[], never>;
315
+ } & {
316
+ queryKey: (string | number | undefined)[] & {
317
+ [dataTagSymbol]: import("../client/types.js").Page<import("../client/types.js").Entry>;
318
+ [dataTagErrorSymbol]: Error;
319
+ };
320
+ };
321
+ export declare function profileQuery(client: TelescopeClient, id: string): import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<import("../client/types.js").Entry & {
322
+ content: import("../client/types.js").CpuProfileContent;
323
+ }, Error, import("../client/types.js").Entry & {
324
+ content: import("../client/types.js").CpuProfileContent;
325
+ }, string[]>, "queryFn"> & {
326
+ queryFn?: import("@tanstack/react-query").QueryFunction<import("../client/types.js").Entry & {
327
+ content: import("../client/types.js").CpuProfileContent;
328
+ }, string[], never>;
329
+ } & {
330
+ queryKey: string[] & {
331
+ [dataTagSymbol]: import("../client/types.js").Entry & {
332
+ content: import("../client/types.js").CpuProfileContent;
333
+ };
334
+ [dataTagErrorSymbol]: Error;
335
+ };
336
+ };
337
+ export declare function useProfilerStatus(): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../client/types.js").ProfilerStatus>, Error>;
338
+ export declare function useProfiles(limit?: number): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../client/types.js").Page<import("../client/types.js").Entry>>, Error>;
339
+ export declare function useProfile(id: string): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../client/types.js").Entry & {
340
+ content: import("../client/types.js").CpuProfileContent;
341
+ }>, Error>;
342
+ export declare function useArmProfile(): import("@tanstack/react-query").UseMutationResult<{
343
+ pendingManual: number;
344
+ }, Error, {
345
+ count: number;
346
+ label?: string;
347
+ }, unknown>;
287
348
  export {};
288
349
  //# sourceMappingURL=use-telescope-queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-telescope-queries.d.ts","sourceRoot":"","sources":["../../src/react/use-telescope-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-telescope-queries.d.ts","sourceRoot":"","sources":["../../src/react/use-telescope-queries.ts"],"names":[],"mappings":"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"}