@workflow/web-shared 5.0.0-beta.4 → 5.0.0-beta.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -13
- package/dist/components/error-boundary.js +1 -1
- package/dist/components/event-list-view.d.ts +46 -1
- package/dist/components/event-list-view.d.ts.map +1 -1
- package/dist/components/event-list-view.js +235 -97
- package/dist/components/hook-actions.js +1 -1
- package/dist/components/index.d.ts +8 -5
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +6 -4
- package/dist/components/sidebar/attribute-panel.d.ts +4 -1
- package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
- package/dist/components/sidebar/attribute-panel.js +173 -119
- package/dist/components/sidebar/attributes-block.d.ts +40 -0
- package/dist/components/sidebar/attributes-block.d.ts.map +1 -0
- package/dist/components/sidebar/attributes-block.js +140 -0
- package/dist/components/sidebar/conversation-view.js +1 -1
- package/dist/components/sidebar/copyable-data-block.d.ts +2 -0
- package/dist/components/sidebar/copyable-data-block.d.ts.map +1 -1
- package/dist/components/sidebar/copyable-data-block.js +17 -16
- package/dist/components/sidebar/entity-detail-panel.d.ts +11 -11
- package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
- package/dist/components/sidebar/entity-detail-panel.js +37 -71
- package/dist/components/sidebar/events-list.d.ts +6 -2
- package/dist/components/sidebar/events-list.d.ts.map +1 -1
- package/dist/components/sidebar/events-list.js +77 -63
- package/dist/components/sidebar/resolve-hook-modal.js +1 -1
- package/dist/components/sidebar/sidebar-data-context.d.ts +10 -7
- package/dist/components/sidebar/sidebar-data-context.d.ts.map +1 -1
- package/dist/components/sidebar/sidebar-data-context.js +1 -1
- package/dist/components/sidebar/span-detail-merge.d.ts +31 -0
- package/dist/components/sidebar/span-detail-merge.d.ts.map +1 -0
- package/dist/components/sidebar/span-detail-merge.js +92 -0
- package/dist/components/sidebar/use-selected-span-detail.d.ts +16 -0
- package/dist/components/sidebar/use-selected-span-detail.d.ts.map +1 -0
- package/dist/components/sidebar/use-selected-span-detail.js +93 -0
- package/dist/components/stream-viewer-skeleton.d.ts +2 -0
- package/dist/components/stream-viewer-skeleton.d.ts.map +1 -0
- package/dist/components/stream-viewer-skeleton.js +12 -0
- package/dist/components/stream-viewer.d.ts +1 -1
- package/dist/components/stream-viewer.d.ts.map +1 -1
- package/dist/components/stream-viewer.js +9 -26
- package/dist/components/trace-viewer/components/copy-button.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/copy-button.js +27 -0
- package/dist/components/trace-viewer/components/detail-panel-width.d.ts +34 -0
- package/dist/components/trace-viewer/components/detail-panel-width.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/detail-panel-width.js +67 -0
- package/dist/components/trace-viewer/components/detail-panel.d.ts +14 -0
- package/dist/components/trace-viewer/components/detail-panel.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/detail-panel.js +122 -0
- package/dist/components/trace-viewer/components/draggable-border.d.ts +31 -0
- package/dist/components/trace-viewer/components/draggable-border.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/draggable-border.js +140 -0
- package/dist/components/trace-viewer/components/event-list.d.ts +10 -0
- package/dist/components/trace-viewer/components/event-list.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/event-list.js +47 -0
- package/dist/components/trace-viewer/components/middle-truncate/copy-selection.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/middle-truncate/copy-selection.js +54 -0
- package/dist/components/trace-viewer/components/middle-truncate/middle-truncate.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/middle-truncate/middle-truncate.js +81 -0
- package/dist/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/truncate.d.ts +1 -1
- package/dist/components/trace-viewer/components/middle-truncate/truncate.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/middle-truncate/truncate.js +101 -0
- package/dist/components/trace-viewer/components/middle-truncate/use-middle-truncate.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/middle-truncate/use-middle-truncate.js +114 -0
- package/dist/components/trace-viewer/components/minimap.d.ts +14 -0
- package/dist/components/trace-viewer/components/minimap.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/minimap.js +337 -0
- package/dist/components/trace-viewer/components/pane-constants.d.ts +14 -0
- package/dist/components/trace-viewer/components/pane-constants.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/pane-constants.js +16 -0
- package/dist/components/trace-viewer/components/span-markers.d.ts +46 -0
- package/dist/components/trace-viewer/components/span-markers.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/span-markers.js +85 -0
- package/dist/components/trace-viewer/components/split-pane.d.ts +10 -0
- package/dist/components/trace-viewer/components/split-pane.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/split-pane.js +41 -0
- package/dist/components/trace-viewer/components/timeline.d.ts +42 -0
- package/dist/components/trace-viewer/components/timeline.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/timeline.js +321 -0
- package/dist/components/trace-viewer/components/timeline.module.css +46 -0
- package/dist/components/trace-viewer/components/trace-shortcut-helper.d.ts +5 -0
- package/dist/components/trace-viewer/components/trace-shortcut-helper.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/trace-shortcut-helper.js +55 -0
- package/dist/components/trace-viewer/components/trace-shortcut-helper.module.css +20 -0
- package/dist/components/trace-viewer/components/trace-viewer-skeleton.d.ts +2 -0
- package/dist/components/trace-viewer/components/trace-viewer-skeleton.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/trace-viewer-skeleton.js +26 -0
- package/dist/components/trace-viewer/components/use-element-width.d.ts +8 -0
- package/dist/components/trace-viewer/components/use-element-width.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/use-element-width.js +25 -0
- package/dist/components/trace-viewer/components/use-row-window.d.ts +34 -0
- package/dist/components/trace-viewer/components/use-row-window.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/use-row-window.js +107 -0
- package/dist/components/trace-viewer/context.d.ts +14 -182
- package/dist/components/trace-viewer/context.d.ts.map +1 -1
- package/dist/components/trace-viewer/context.js +44 -351
- package/dist/components/trace-viewer/icons.d.ts.map +1 -0
- package/dist/components/trace-viewer/icons.js +15 -0
- package/dist/components/trace-viewer/search.d.ts +19 -0
- package/dist/components/trace-viewer/search.d.ts.map +1 -0
- package/dist/components/trace-viewer/search.js +134 -0
- package/dist/components/trace-viewer/trace-viewer.d.ts +7 -28
- package/dist/components/trace-viewer/trace-viewer.d.ts.map +1 -1
- package/dist/components/trace-viewer/trace-viewer.js +306 -356
- package/dist/components/trace-viewer/types.d.ts +2 -211
- package/dist/components/trace-viewer/types.d.ts.map +1 -1
- package/dist/components/trace-viewer/types.js +1 -1
- package/dist/components/trace-viewer/util/timing.d.ts +2 -2
- package/dist/components/trace-viewer/util/timing.d.ts.map +1 -1
- package/dist/components/trace-viewer/util/timing.js +3 -3
- package/dist/components/trace-viewer/utils.d.ts +111 -0
- package/dist/components/trace-viewer/utils.d.ts.map +1 -0
- package/dist/components/trace-viewer/utils.js +430 -0
- package/dist/components/{trace-viewer-new.d.ts → trace-viewer.d.ts} +7 -3
- package/dist/components/trace-viewer.d.ts.map +1 -0
- package/dist/components/trace-viewer.js +21 -0
- package/dist/components/ui/alert.js +3 -3
- package/dist/components/ui/button.d.ts +10 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +46 -0
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/card.js +4 -4
- package/dist/components/ui/collapsible.d.ts +46 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible.js +66 -0
- package/dist/components/ui/context-card.d.ts +47 -0
- package/dist/components/ui/context-card.d.ts.map +1 -0
- package/dist/components/ui/context-card.js +471 -0
- package/dist/components/ui/data-inspector.d.ts +7 -6
- package/dist/components/ui/data-inspector.d.ts.map +1 -1
- package/dist/components/ui/data-inspector.js +232 -99
- package/dist/components/ui/data-inspector.styles.d.ts +29 -0
- package/dist/components/ui/data-inspector.styles.d.ts.map +1 -0
- package/dist/components/ui/data-inspector.styles.js +95 -0
- package/dist/components/ui/decrypt-button.js +1 -1
- package/dist/components/ui/error-card.js +3 -3
- package/dist/components/ui/error-stack-block.d.ts +17 -10
- package/dist/components/ui/error-stack-block.d.ts.map +1 -1
- package/dist/components/ui/error-stack-block.js +49 -30
- package/dist/components/ui/icon-button.d.ts +19 -0
- package/dist/components/ui/icon-button.d.ts.map +1 -0
- package/dist/components/ui/icon-button.js +29 -0
- package/dist/components/ui/kbd.d.ts +10 -0
- package/dist/components/ui/kbd.d.ts.map +1 -0
- package/dist/components/ui/kbd.js +25 -0
- package/dist/components/ui/load-more-button.js +1 -1
- package/dist/components/ui/menu-dropdown.js +1 -1
- package/dist/components/ui/skeleton.js +2 -2
- package/dist/components/ui/spinner.js +1 -1
- package/dist/components/ui/timestamp-tooltip.d.ts +34 -1
- package/dist/components/ui/timestamp-tooltip.d.ts.map +1 -1
- package/dist/components/ui/timestamp-tooltip.js +80 -132
- package/dist/components/ui/tooltip.d.ts +10 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +12 -0
- package/dist/components/workflow-traces/event-colors.d.ts +2 -1
- package/dist/components/workflow-traces/event-colors.d.ts.map +1 -1
- package/dist/components/workflow-traces/event-colors.js +15 -7
- package/dist/components/workflow-traces/trace-span-construction.d.ts +6 -3
- package/dist/components/workflow-traces/trace-span-construction.d.ts.map +1 -1
- package/dist/components/workflow-traces/trace-span-construction.js +71 -30
- package/dist/components/workflow-traces/trace-time-utils.js +1 -1
- package/dist/hooks/use-dark-mode.js +1 -1
- package/dist/hooks/use-intersection-observer.d.ts +17 -0
- package/dist/hooks/use-intersection-observer.d.ts.map +1 -0
- package/dist/hooks/use-intersection-observer.js +29 -0
- package/dist/hooks/use-load-more-on-scroll.d.ts +21 -0
- package/dist/hooks/use-load-more-on-scroll.d.ts.map +1 -0
- package/dist/hooks/use-load-more-on-scroll.js +28 -0
- package/dist/hooks/use-reduced-motion.d.ts +10 -0
- package/dist/hooks/use-reduced-motion.d.ts.map +1 -0
- package/dist/hooks/use-reduced-motion.js +29 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/lib/cn.d.ts +10 -0
- package/dist/lib/cn.d.ts.map +1 -0
- package/dist/lib/cn.js +83 -0
- package/dist/lib/event-analysis.d.ts +1 -1
- package/dist/lib/event-analysis.d.ts.map +1 -1
- package/dist/lib/event-analysis.js +3 -2
- package/dist/lib/event-materialization.d.ts +1 -1
- package/dist/lib/event-materialization.d.ts.map +1 -1
- package/dist/lib/event-materialization.js +29 -21
- package/dist/lib/exact-event-search-id.d.ts +25 -0
- package/dist/lib/exact-event-search-id.d.ts.map +1 -0
- package/dist/lib/exact-event-search-id.js +39 -0
- package/dist/lib/hydration.d.ts +17 -2
- package/dist/lib/hydration.d.ts.map +1 -1
- package/dist/lib/hydration.js +194 -23
- package/dist/lib/stream-display.js +1 -1
- package/dist/lib/toast.js +1 -1
- package/dist/lib/trace-builder.d.ts +17 -5
- package/dist/lib/trace-builder.d.ts.map +1 -1
- package/dist/lib/trace-builder.js +32 -14
- package/dist/lib/trace-types.d.ts +54 -0
- package/dist/lib/trace-types.d.ts.map +1 -0
- package/dist/lib/trace-types.js +2 -0
- package/dist/lib/utils.d.ts +14 -2
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +46 -6
- package/dist/lib/zstd-browser-decoder.d.ts +7 -0
- package/dist/lib/zstd-browser-decoder.d.ts.map +1 -0
- package/dist/lib/zstd-browser-decoder.js +41 -0
- package/dist/styles.css +210 -139
- package/package.json +11 -8
- package/src/components/event-list-view.tsx +385 -123
- package/src/components/index.ts +14 -8
- package/src/components/sidebar/attribute-panel.tsx +331 -282
- package/src/components/sidebar/attributes-block.tsx +326 -0
- package/src/components/sidebar/copyable-data-block.tsx +50 -28
- package/src/components/sidebar/entity-detail-panel.tsx +92 -126
- package/src/components/sidebar/events-list.tsx +197 -179
- package/src/components/sidebar/sidebar-data-context.tsx +11 -11
- package/src/components/sidebar/span-detail-merge.ts +134 -0
- package/src/components/sidebar/use-selected-span-detail.ts +146 -0
- package/src/components/stream-viewer-skeleton.tsx +34 -0
- package/src/components/stream-viewer.tsx +34 -106
- package/src/components/{new-trace-viewer → trace-viewer}/components/copy-button.tsx +2 -2
- package/src/components/trace-viewer/components/detail-panel-width.test.ts +123 -0
- package/src/components/trace-viewer/components/detail-panel-width.ts +76 -0
- package/src/components/trace-viewer/components/detail-panel.tsx +273 -0
- package/src/components/trace-viewer/components/draggable-border.tsx +216 -0
- package/src/components/trace-viewer/components/event-list.tsx +144 -0
- package/src/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/middle-truncate.tsx +8 -8
- package/src/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/truncate.ts +1 -1
- package/src/components/trace-viewer/components/minimap.tsx +556 -0
- package/src/components/trace-viewer/components/pane-constants.ts +19 -0
- package/src/components/trace-viewer/components/span-markers.tsx +173 -0
- package/src/components/trace-viewer/components/split-pane.tsx +141 -0
- package/src/components/trace-viewer/components/timeline.module.css +46 -0
- package/src/components/trace-viewer/components/timeline.tsx +850 -0
- package/src/components/trace-viewer/components/trace-shortcut-helper.module.css +20 -0
- package/src/components/trace-viewer/components/trace-shortcut-helper.tsx +116 -0
- package/src/components/trace-viewer/components/trace-viewer-skeleton.tsx +114 -0
- package/src/components/trace-viewer/components/use-element-width.ts +29 -0
- package/src/components/trace-viewer/components/use-row-window.ts +140 -0
- package/src/components/trace-viewer/context.tsx +63 -656
- package/src/components/{new-trace-viewer → trace-viewer}/icons.tsx +2 -2
- package/src/components/trace-viewer/search.ts +178 -0
- package/src/components/trace-viewer/trace-viewer.tsx +563 -531
- package/src/components/trace-viewer/types.ts +2 -234
- package/src/components/trace-viewer/util/timing.ts +2 -2
- package/src/components/trace-viewer/utils.test.ts +458 -0
- package/src/components/{new-trace-viewer → trace-viewer}/utils.ts +271 -50
- package/src/components/{trace-viewer-new.tsx → trace-viewer.tsx} +24 -18
- package/src/components/ui/alert.tsx +2 -2
- package/src/components/ui/button.tsx +68 -0
- package/src/components/ui/card.tsx +3 -10
- package/src/components/ui/collapsible.tsx +219 -0
- package/src/components/ui/context-card.tsx +784 -0
- package/src/components/ui/data-inspector.styles.ts +96 -0
- package/src/components/ui/data-inspector.tsx +501 -204
- package/src/components/ui/error-card.tsx +4 -4
- package/src/components/ui/error-stack-block.tsx +84 -55
- package/src/components/ui/icon-button.tsx +53 -0
- package/src/components/ui/kbd.tsx +43 -0
- package/src/components/ui/skeleton.tsx +1 -1
- package/src/components/ui/timestamp-tooltip.tsx +132 -194
- package/src/components/ui/tooltip.tsx +47 -0
- package/src/components/workflow-traces/event-colors.ts +15 -11
- package/src/components/workflow-traces/trace-span-construction.test.ts +85 -0
- package/src/components/workflow-traces/trace-span-construction.ts +97 -32
- package/src/hooks/use-intersection-observer.ts +57 -0
- package/src/hooks/use-load-more-on-scroll.ts +49 -0
- package/src/hooks/use-reduced-motion.ts +34 -0
- package/src/index.ts +10 -4
- package/src/lib/cn.ts +93 -0
- package/src/lib/event-analysis.ts +6 -4
- package/src/lib/event-materialization.ts +35 -21
- package/src/lib/exact-event-search-id.ts +67 -0
- package/src/lib/hydration.ts +210 -30
- package/src/lib/trace-builder.ts +43 -19
- package/src/lib/trace-types.ts +56 -0
- package/src/lib/utils.test.ts +33 -0
- package/src/lib/utils.ts +53 -6
- package/src/lib/zstd-browser-decoder.ts +42 -0
- package/src/styles.css +210 -139
- package/dist/components/error-boundary.js.map +0 -1
- package/dist/components/event-list-view.js.map +0 -1
- package/dist/components/hook-actions.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/new-trace-viewer/components/copy-button.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/components/copy-button.js +0 -27
- package/dist/components/new-trace-viewer/components/copy-button.js.map +0 -1
- package/dist/components/new-trace-viewer/components/event-list.d.ts +0 -8
- package/dist/components/new-trace-viewer/components/event-list.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/components/event-list.js +0 -38
- package/dist/components/new-trace-viewer/components/event-list.js.map +0 -1
- package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.js +0 -54
- package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.js.map +0 -1
- package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.js +0 -81
- package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.js.map +0 -1
- package/dist/components/new-trace-viewer/components/middle-truncate/truncate.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/components/middle-truncate/truncate.js +0 -101
- package/dist/components/new-trace-viewer/components/middle-truncate/truncate.js.map +0 -1
- package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.js +0 -114
- package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.js.map +0 -1
- package/dist/components/new-trace-viewer/components/split-pane.d.ts +0 -14
- package/dist/components/new-trace-viewer/components/split-pane.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/components/split-pane.js +0 -99
- package/dist/components/new-trace-viewer/components/split-pane.js.map +0 -1
- package/dist/components/new-trace-viewer/components/timeline.d.ts +0 -31
- package/dist/components/new-trace-viewer/components/timeline.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/components/timeline.js +0 -138
- package/dist/components/new-trace-viewer/components/timeline.js.map +0 -1
- package/dist/components/new-trace-viewer/context.d.ts +0 -15
- package/dist/components/new-trace-viewer/context.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/context.js +0 -47
- package/dist/components/new-trace-viewer/context.js.map +0 -1
- package/dist/components/new-trace-viewer/detail-panel.d.ts +0 -10
- package/dist/components/new-trace-viewer/detail-panel.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/detail-panel.js +0 -12
- package/dist/components/new-trace-viewer/detail-panel.js.map +0 -1
- package/dist/components/new-trace-viewer/icons.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/icons.js +0 -15
- package/dist/components/new-trace-viewer/icons.js.map +0 -1
- package/dist/components/new-trace-viewer/trace-viewer.d.ts +0 -8
- package/dist/components/new-trace-viewer/trace-viewer.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/trace-viewer.js +0 -349
- package/dist/components/new-trace-viewer/trace-viewer.js.map +0 -1
- package/dist/components/new-trace-viewer/types.d.ts +0 -1
- package/dist/components/new-trace-viewer/types.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/types.js +0 -2
- package/dist/components/new-trace-viewer/types.js.map +0 -1
- package/dist/components/new-trace-viewer/util/constants.d.ts +0 -1
- package/dist/components/new-trace-viewer/util/constants.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/util/constants.js +0 -2
- package/dist/components/new-trace-viewer/util/constants.js.map +0 -1
- package/dist/components/new-trace-viewer/utils.d.ts +0 -42
- package/dist/components/new-trace-viewer/utils.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/utils.js +0 -305
- package/dist/components/new-trace-viewer/utils.js.map +0 -1
- package/dist/components/run-trace-view.d.ts +0 -25
- package/dist/components/run-trace-view.d.ts.map +0 -1
- package/dist/components/run-trace-view.js +0 -11
- package/dist/components/run-trace-view.js.map +0 -1
- package/dist/components/sidebar/attribute-panel.js.map +0 -1
- package/dist/components/sidebar/conversation-view.js.map +0 -1
- package/dist/components/sidebar/copyable-data-block.js.map +0 -1
- package/dist/components/sidebar/detail-card.d.ts +0 -14
- package/dist/components/sidebar/detail-card.d.ts.map +0 -1
- package/dist/components/sidebar/detail-card.js +0 -20
- package/dist/components/sidebar/detail-card.js.map +0 -1
- package/dist/components/sidebar/entity-detail-panel.js.map +0 -1
- package/dist/components/sidebar/events-list.js.map +0 -1
- package/dist/components/sidebar/resolve-hook-modal.js.map +0 -1
- package/dist/components/sidebar/sidebar-data-context.js.map +0 -1
- package/dist/components/stream-viewer.js.map +0 -1
- package/dist/components/trace-viewer/components/map.d.ts +0 -8
- package/dist/components/trace-viewer/components/map.d.ts.map +0 -1
- package/dist/components/trace-viewer/components/map.js +0 -162
- package/dist/components/trace-viewer/components/map.js.map +0 -1
- package/dist/components/trace-viewer/components/markers.d.ts +0 -23
- package/dist/components/trace-viewer/components/markers.d.ts.map +0 -1
- package/dist/components/trace-viewer/components/markers.js +0 -416
- package/dist/components/trace-viewer/components/markers.js.map +0 -1
- package/dist/components/trace-viewer/components/node.d.ts +0 -35
- package/dist/components/trace-viewer/components/node.d.ts.map +0 -1
- package/dist/components/trace-viewer/components/node.js +0 -285
- package/dist/components/trace-viewer/components/node.js.map +0 -1
- package/dist/components/trace-viewer/components/search-input.d.ts +0 -9
- package/dist/components/trace-viewer/components/search-input.d.ts.map +0 -1
- package/dist/components/trace-viewer/components/search-input.js +0 -9
- package/dist/components/trace-viewer/components/search-input.js.map +0 -1
- package/dist/components/trace-viewer/components/search.d.ts +0 -3
- package/dist/components/trace-viewer/components/search.d.ts.map +0 -1
- package/dist/components/trace-viewer/components/search.js +0 -25
- package/dist/components/trace-viewer/components/search.js.map +0 -1
- package/dist/components/trace-viewer/components/span-content.d.ts +0 -19
- package/dist/components/trace-viewer/components/span-content.d.ts.map +0 -1
- package/dist/components/trace-viewer/components/span-content.js +0 -137
- package/dist/components/trace-viewer/components/span-content.js.map +0 -1
- package/dist/components/trace-viewer/components/span-detail-panel.d.ts +0 -10
- package/dist/components/trace-viewer/components/span-detail-panel.d.ts.map +0 -1
- package/dist/components/trace-viewer/components/span-detail-panel.js +0 -285
- package/dist/components/trace-viewer/components/span-detail-panel.js.map +0 -1
- package/dist/components/trace-viewer/components/span-segments.d.ts +0 -50
- package/dist/components/trace-viewer/components/span-segments.d.ts.map +0 -1
- package/dist/components/trace-viewer/components/span-segments.js +0 -445
- package/dist/components/trace-viewer/components/span-segments.js.map +0 -1
- package/dist/components/trace-viewer/components/span-strategies.d.ts +0 -46
- package/dist/components/trace-viewer/components/span-strategies.d.ts.map +0 -1
- package/dist/components/trace-viewer/components/span-strategies.js +0 -108
- package/dist/components/trace-viewer/components/span-strategies.js.map +0 -1
- package/dist/components/trace-viewer/components/ui.d.ts +0 -28
- package/dist/components/trace-viewer/components/ui.d.ts.map +0 -1
- package/dist/components/trace-viewer/components/ui.js +0 -39
- package/dist/components/trace-viewer/components/ui.js.map +0 -1
- package/dist/components/trace-viewer/components/zoom-button.d.ts +0 -3
- package/dist/components/trace-viewer/components/zoom-button.d.ts.map +0 -1
- package/dist/components/trace-viewer/components/zoom-button.js +0 -29
- package/dist/components/trace-viewer/components/zoom-button.js.map +0 -1
- package/dist/components/trace-viewer/components/zoom-icons.d.ts +0 -11
- package/dist/components/trace-viewer/components/zoom-icons.d.ts.map +0 -1
- package/dist/components/trace-viewer/components/zoom-icons.js +0 -11
- package/dist/components/trace-viewer/components/zoom-icons.js.map +0 -1
- package/dist/components/trace-viewer/context.js.map +0 -1
- package/dist/components/trace-viewer/index.d.ts +0 -5
- package/dist/components/trace-viewer/index.d.ts.map +0 -1
- package/dist/components/trace-viewer/index.js +0 -4
- package/dist/components/trace-viewer/index.js.map +0 -1
- package/dist/components/trace-viewer/trace-viewer.js.map +0 -1
- package/dist/components/trace-viewer/trace-viewer.module.css +0 -1465
- package/dist/components/trace-viewer/types.js.map +0 -1
- package/dist/components/trace-viewer/util/constants.d.ts +0 -9
- package/dist/components/trace-viewer/util/constants.d.ts.map +0 -1
- package/dist/components/trace-viewer/util/constants.js +0 -9
- package/dist/components/trace-viewer/util/constants.js.map +0 -1
- package/dist/components/trace-viewer/util/scrollbar-width.d.ts +0 -2
- package/dist/components/trace-viewer/util/scrollbar-width.d.ts.map +0 -1
- package/dist/components/trace-viewer/util/scrollbar-width.js +0 -14
- package/dist/components/trace-viewer/util/scrollbar-width.js.map +0 -1
- package/dist/components/trace-viewer/util/timing.js.map +0 -1
- package/dist/components/trace-viewer/util/tree.d.ts +0 -13
- package/dist/components/trace-viewer/util/tree.d.ts.map +0 -1
- package/dist/components/trace-viewer/util/tree.js +0 -227
- package/dist/components/trace-viewer/util/tree.js.map +0 -1
- package/dist/components/trace-viewer/util/use-immediate-style.d.ts +0 -15
- package/dist/components/trace-viewer/util/use-immediate-style.d.ts.map +0 -1
- package/dist/components/trace-viewer/util/use-immediate-style.js +0 -23
- package/dist/components/trace-viewer/util/use-immediate-style.js.map +0 -1
- package/dist/components/trace-viewer/util/use-streaming-spans.d.ts +0 -8
- package/dist/components/trace-viewer/util/use-streaming-spans.d.ts.map +0 -1
- package/dist/components/trace-viewer/util/use-streaming-spans.js +0 -345
- package/dist/components/trace-viewer/util/use-streaming-spans.js.map +0 -1
- package/dist/components/trace-viewer/util/use-trackpad-zoom.d.ts +0 -6
- package/dist/components/trace-viewer/util/use-trackpad-zoom.d.ts.map +0 -1
- package/dist/components/trace-viewer/util/use-trackpad-zoom.js +0 -39
- package/dist/components/trace-viewer/util/use-trackpad-zoom.js.map +0 -1
- package/dist/components/trace-viewer/worker.d.ts +0 -2
- package/dist/components/trace-viewer/worker.d.ts.map +0 -1
- package/dist/components/trace-viewer/worker.js +0 -109
- package/dist/components/trace-viewer/worker.js.map +0 -1
- package/dist/components/trace-viewer-new.d.ts.map +0 -1
- package/dist/components/trace-viewer-new.js +0 -23
- package/dist/components/trace-viewer-new.js.map +0 -1
- package/dist/components/ui/alert.js.map +0 -1
- package/dist/components/ui/card.js.map +0 -1
- package/dist/components/ui/data-inspector.js.map +0 -1
- package/dist/components/ui/decrypt-button.js.map +0 -1
- package/dist/components/ui/error-card.js.map +0 -1
- package/dist/components/ui/error-stack-block.js.map +0 -1
- package/dist/components/ui/inspector-theme.d.ts +0 -95
- package/dist/components/ui/inspector-theme.d.ts.map +0 -1
- package/dist/components/ui/inspector-theme.js +0 -82
- package/dist/components/ui/inspector-theme.js.map +0 -1
- package/dist/components/ui/load-more-button.js.map +0 -1
- package/dist/components/ui/menu-dropdown.js.map +0 -1
- package/dist/components/ui/skeleton.js.map +0 -1
- package/dist/components/ui/spinner.js.map +0 -1
- package/dist/components/ui/timestamp-tooltip.js.map +0 -1
- package/dist/components/workflow-trace-view.d.ts +0 -40
- package/dist/components/workflow-trace-view.d.ts.map +0 -1
- package/dist/components/workflow-trace-view.js +0 -695
- package/dist/components/workflow-trace-view.js.map +0 -1
- package/dist/components/workflow-traces/event-colors.js.map +0 -1
- package/dist/components/workflow-traces/trace-colors.d.ts +0 -15
- package/dist/components/workflow-traces/trace-colors.d.ts.map +0 -1
- package/dist/components/workflow-traces/trace-colors.js +0 -87
- package/dist/components/workflow-traces/trace-colors.js.map +0 -1
- package/dist/components/workflow-traces/trace-span-construction.js.map +0 -1
- package/dist/components/workflow-traces/trace-time-utils.js.map +0 -1
- package/dist/hooks/use-dark-mode.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/event-analysis.js.map +0 -1
- package/dist/lib/event-materialization.js.map +0 -1
- package/dist/lib/hydration.js.map +0 -1
- package/dist/lib/stream-display.js.map +0 -1
- package/dist/lib/toast.js.map +0 -1
- package/dist/lib/trace-builder.js.map +0 -1
- package/dist/lib/utils.js.map +0 -1
- package/src/components/new-trace-viewer/components/event-list.tsx +0 -116
- package/src/components/new-trace-viewer/components/split-pane.tsx +0 -185
- package/src/components/new-trace-viewer/components/timeline.tsx +0 -382
- package/src/components/new-trace-viewer/context.tsx +0 -92
- package/src/components/new-trace-viewer/detail-panel.tsx +0 -58
- package/src/components/new-trace-viewer/trace-viewer.tsx +0 -645
- package/src/components/new-trace-viewer/types.ts +0 -0
- package/src/components/new-trace-viewer/util/constants.ts +0 -0
- package/src/components/run-trace-view.tsx +0 -84
- package/src/components/sidebar/detail-card.tsx +0 -65
- package/src/components/trace-viewer/components/map.tsx +0 -226
- package/src/components/trace-viewer/components/markers.tsx +0 -612
- package/src/components/trace-viewer/components/node.tsx +0 -505
- package/src/components/trace-viewer/components/search-input.tsx +0 -52
- package/src/components/trace-viewer/components/search.tsx +0 -47
- package/src/components/trace-viewer/components/span-content.tsx +0 -247
- package/src/components/trace-viewer/components/span-detail-panel.tsx +0 -655
- package/src/components/trace-viewer/components/span-segments.ts +0 -585
- package/src/components/trace-viewer/components/span-strategies.ts +0 -205
- package/src/components/trace-viewer/components/ui.tsx +0 -156
- package/src/components/trace-viewer/components/zoom-button.tsx +0 -61
- package/src/components/trace-viewer/components/zoom-icons.tsx +0 -65
- package/src/components/trace-viewer/index.tsx +0 -4
- package/src/components/trace-viewer/trace-viewer.module.css +0 -1465
- package/src/components/trace-viewer/util/constants.ts +0 -8
- package/src/components/trace-viewer/util/scrollbar-width.ts +0 -13
- package/src/components/trace-viewer/util/tree.ts +0 -277
- package/src/components/trace-viewer/util/use-immediate-style.ts +0 -38
- package/src/components/trace-viewer/util/use-streaming-spans.ts +0 -426
- package/src/components/trace-viewer/util/use-trackpad-zoom.tsx +0 -51
- package/src/components/trace-viewer/worker.ts +0 -131
- package/src/components/ui/inspector-theme.ts +0 -110
- package/src/components/workflow-trace-view.tsx +0 -1171
- package/src/components/workflow-traces/trace-colors.ts +0 -112
- /package/dist/components/{new-trace-viewer → trace-viewer}/components/copy-button.d.ts +0 -0
- /package/dist/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/copy-selection.d.ts +0 -0
- /package/dist/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/middle-truncate.d.ts +0 -0
- /package/dist/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/use-middle-truncate.d.ts +0 -0
- /package/dist/components/{new-trace-viewer → trace-viewer}/icons.d.ts +0 -0
- /package/src/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/copy-selection.ts +0 -0
- /package/src/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/use-middle-truncate.ts +0 -0
- /package/src/{components/trace-viewer/modules.d.ts → modules.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/trace-viewer/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { MutableRefObject, ReactNode } from 'react';\n\nexport type MemoCacheKey = Record<string, never>;\nexport type MemoCache = Map<string, MemoCacheKey>;\n\nexport interface Span {\n name: string;\n kind: number;\n resource: string;\n library: {\n name: string;\n version?: string;\n };\n spanId: string;\n parentSpanId?: string;\n status: {\n code: number;\n };\n traceFlags: number;\n attributes: Record<string, unknown>;\n links: Record<string, unknown>[];\n events: SpanEvent[];\n startTime: [number, number];\n endTime: [number, number];\n duration: [number, number];\n /**\n * The time when the span became active/started executing (optional).\n * If provided and different from startTime, the portion between startTime\n * and activeStartTime will be rendered as a \"queued\" period with different styling.\n */\n activeStartTime?: [number, number];\n}\n\nexport interface SpanEvent {\n name: string;\n timestamp: [number, number];\n attributes: Record<string, unknown>;\n /**\n * Optional custom color for this event marker (workflow-specific feature).\n * If provided, this color will be used for the event marker line/diamond.\n */\n color?: string;\n /**\n * Whether to show a vertical line for this event in the timeline (workflow-specific feature).\n * If false, only the diamond marker on the span will be shown.\n * Defaults to true if not specified.\n */\n showVerticalLine?: boolean;\n}\n\nexport interface Resource {\n name: string;\n attributes: Record<string, string>;\n}\n\nexport interface Trace {\n traceId: string;\n resources?: Resource[];\n spans: Span[];\n rootSpanId?: string;\n}\n\ninterface EveryNode {\n startTime: number;\n endTime: number;\n duration: number;\n /**\n * How deep is this node within the tree\n */\n depth: number;\n /**\n * All direct child nodes of this node\n */\n children: SpanNode[];\n}\n\nexport interface RootNode extends EveryNode {\n /**\n * The depth is always 0 for the root node\n */\n depth: 0;\n}\n\nexport interface SpanNode extends EveryNode {\n /**\n * This original Span that this node is based on\n */\n span: Span;\n /**\n * The immediate parent of this node\n */\n parent: RootNode | SpanNode;\n /**\n * A generated label to use (overrides the span.name) if present\n */\n label?: string;\n /**\n * OTEL events that are present on this span (e.g. TTFB)\n */\n events?: SpanNodeEvent[];\n /**\n * Whether this span originated in Vercel's infrastructure.\n */\n isVercel: boolean;\n /**\n * Whether this span matches the current search filter\n */\n isHighlighted?: boolean;\n /**\n * Whether this span is a placeholder to hint at where user spans\n * would appear if proper instrumentation were available\n */\n isInstrumentationHint?: boolean;\n /**\n * The index of the resource that this node belongs to (used for color)\n */\n resourceIndex: number;\n /**\n * The time when execution actually started (in milliseconds).\n * If present and greater than startTime, represents a \"queued\" period.\n */\n activeStartTime?: number;\n}\n\nexport interface SpanNodeEvent {\n /** A unique key for this event to help with rendering in React */\n key: string;\n /** The timestamp of this event in milliseconds */\n timestamp: number;\n /** The original event model */\n event: SpanEvent;\n}\n\nexport type TraceNode = RootNode | SpanNode;\n\nexport interface VisibleSpan extends SpanNode {\n /**\n * The ref for this span's element in the DOM\n */\n ref?: MutableRefObject<HTMLButtonElement | null>;\n /**\n * The y position of this span (in # of rows)\n */\n row: number;\n /**\n * Whether the CursorMarker is intersecting this span\n */\n isHovered: boolean;\n /**\n * Whether this is the selected span\n */\n isSelected: boolean;\n /**\n * Whether this node is visible (based on its size on screen)\n */\n isVisible: boolean;\n /**\n * Events also need to be able to hold a ref to their element in the DOM\n */\n events?: VisibleSpanEvent[];\n}\n\nexport interface VisibleSpanEvent extends SpanNodeEvent {\n /**\n * The ref for this span's element in the DOM\n */\n ref?: MutableRefObject<HTMLDivElement | null>;\n /**\n * Whether the CursorMarker is intersecting this span\n */\n isHovered: boolean;\n}\n\nexport interface ScrollSnapshot {\n anchorT: number;\n anchorX: number;\n scrollLeft: number;\n scrollTop: number;\n startTime: number;\n endTime: number;\n startRow: number;\n endRow: number;\n scale: number;\n}\n\nexport type WorkerRequest = {\n requestId: number;\n} & (\n | {\n type: 'calculateSpanPositions';\n root: RootNode;\n }\n | {\n type: 'filterSpans';\n root: RootNode;\n filter: string;\n }\n);\n\nexport type WorkerResponse = {\n requestId: number;\n} & (\n | {\n type: 'setRowsResult';\n rows: VisibleSpan[][];\n isEnd: boolean;\n }\n | {\n type: 'updateHighlight';\n matches: Set<string>;\n }\n);\n\n/**\n * Represents one link to a page related to the selected\n * span in the detail panel.\n */\nexport interface QuickLink {\n /** Used as a React key and the user-facing name for the link */\n key: string;\n /** Until this Promise is fulfilled, the row will render with a skeleton for the value. */\n value: Promise<QuickLinkValue>;\n}\n\nexport interface QuickLinkValue {\n /** The visible components for the right side of this link */\n label: ReactNode;\n /** A special suffix to show for this link, defaults to the ExternalLink icon */\n icon?: ReactNode;\n /** The href that this link will open when clicked */\n href: string;\n}\n\nexport type GetQuickLinks = (node: Span) => QuickLink[];\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare const SEARCH_HEIGHT = 40;
|
|
2
|
-
export declare const SEARCH_GAP = 8;
|
|
3
|
-
export declare const MAP_HEIGHT = 56;
|
|
4
|
-
export declare const TIMELINE_PADDING = 8;
|
|
5
|
-
export declare const ROW_PADDING = 2;
|
|
6
|
-
export declare const ROW_HEIGHT = 24;
|
|
7
|
-
export declare const MARKER_HEIGHT = 24;
|
|
8
|
-
export declare const MARKER_NOTCH_HEIGHT = 8;
|
|
9
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,mBAAmB,IAAI,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export const SEARCH_HEIGHT = 40;
|
|
2
|
-
export const SEARCH_GAP = 8;
|
|
3
|
-
export const MAP_HEIGHT = 56;
|
|
4
|
-
export const TIMELINE_PADDING = 8;
|
|
5
|
-
export const ROW_PADDING = 2;
|
|
6
|
-
export const ROW_HEIGHT = 24;
|
|
7
|
-
export const MARKER_HEIGHT = 24;
|
|
8
|
-
export const MARKER_NOTCH_HEIGHT = 8;
|
|
9
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC","sourcesContent":["export const SEARCH_HEIGHT = 40;\nexport const SEARCH_GAP = 8;\nexport const MAP_HEIGHT = 56;\nexport const TIMELINE_PADDING = 8;\nexport const ROW_PADDING = 2;\nexport const ROW_HEIGHT = 24;\nexport const MARKER_HEIGHT = 24;\nexport const MARKER_NOTCH_HEIGHT = 8;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scrollbar-width.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/scrollbar-width.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,QAAO,MAYvC,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export const detectScrollbarWidth = () => {
|
|
2
|
-
if (!('document' in globalThis))
|
|
3
|
-
return 0;
|
|
4
|
-
const size = 400;
|
|
5
|
-
const container = document.createElement('div');
|
|
6
|
-
container.style.width = `${size}px`;
|
|
7
|
-
container.style.height = `${size}px`;
|
|
8
|
-
container.style.overflow = 'scroll';
|
|
9
|
-
document.body.appendChild(container);
|
|
10
|
-
const scrollbarWidth = size - container.scrollWidth;
|
|
11
|
-
container.remove();
|
|
12
|
-
return scrollbarWidth;
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=scrollbar-width.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scrollbar-width.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/scrollbar-width.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAW,EAAE;IAC/C,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC;IACjB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC;IACpC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC;IACrC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC;IACpD,SAAS,CAAC,MAAM,EAAE,CAAC;IAEnB,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC","sourcesContent":["export const detectScrollbarWidth = (): number => {\n if (!('document' in globalThis)) return 0;\n const size = 400;\n const container = document.createElement('div');\n container.style.width = `${size}px`;\n container.style.height = `${size}px`;\n container.style.overflow = 'scroll';\n document.body.appendChild(container);\n const scrollbarWidth = size - container.scrollWidth;\n container.remove();\n\n return scrollbarWidth;\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/timing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,MAAM,UAAU,cAAc,CAAC,CAAC,OAAO,EAAE,WAAW,CAGnD;IACC,OAAO,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,GAAG,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EAAU,EAAU,EAAE,CAC9D,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAE3B,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,SAAS,GAAG,IAAI,EAAE,CAAC;QACrB,OAAO,GAAG,SAAS,IAAI,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B,CAAC","sourcesContent":["import { formatDuration } from '../../../lib/utils';\n\nexport { formatDuration };\n\nexport function getHighResInMs([seconds, nanoseconds]: [\n number,\n number,\n]): number {\n return seconds * 1000 + nanoseconds / 1e6;\n}\n\nexport function getMsInHighRes(ms: number): [number, number] {\n return [Math.floor(ms / 1000), (ms % 1000) * 1000];\n}\n\n/**\n * Formats a duration for timeline display (compact format).\n * @deprecated Use formatDuration(ms, true) instead.\n */\nexport const formatDurationForTimeline = (ms: number): string =>\n formatDuration(ms, true);\n\nexport function formatTimeSelection(ms: number): string {\n const roundedMs = Math.round(ms);\n if (roundedMs < 1000) {\n return `${roundedMs}ms`;\n }\n return `${Math.round(ms / 1000)}s`;\n}\n\n/**\n * Format an epoch-millisecond timestamp as a local wall-clock time.\n * Returns a compact HH:MM:SS.mmm string (24-hour format).\n */\nexport function formatWallClockTime(epochMs: number): string {\n const d = new Date(epochMs);\n const h = String(d.getHours()).padStart(2, '0');\n const m = String(d.getMinutes()).padStart(2, '0');\n const s = String(d.getSeconds()).padStart(2, '0');\n return `${h}:${m}:${s}`;\n}\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { RootNode, SpanNode, Trace, TraceNode, VisibleSpan } from '../types';
|
|
2
|
-
export declare const parseTrace: (trace: Trace) => {
|
|
3
|
-
root: RootNode;
|
|
4
|
-
map: Record<string, SpanNode>;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* Adds a node to a row and attempts to find the ideal placement
|
|
8
|
-
* within an existing row, creating a new one if necessary
|
|
9
|
-
*/
|
|
10
|
-
export declare const addToRow: (placed: VisibleSpan[][], node: VisibleSpan, precision: number) => void;
|
|
11
|
-
export declare const spanVisiblityHelper: (node: TraceNode, scale: number, visible: VisibleSpan[]) => void;
|
|
12
|
-
export declare const adjustSpanVisibility: (span: VisibleSpan, _scale: number) => boolean;
|
|
13
|
-
//# sourceMappingURL=tree.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAER,QAAQ,EAER,KAAK,EACL,SAAS,EACT,WAAW,EACZ,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,KACX;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CA2LjD,CAAC;AAgBF;;;GAGG;AACH,eAAO,MAAM,QAAQ,GACnB,QAAQ,WAAW,EAAE,EAAE,EACvB,MAAM,WAAW,EACjB,WAAW,MAAM,KAChB,IAoBF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,MAAM,SAAS,EACf,OAAO,MAAM,EACb,SAAS,WAAW,EAAE,KACrB,IAeF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,MAAM,WAAW,EACjB,QAAQ,MAAM,KACb,OAMF,CAAC"}
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
import { getHighResInMs, getMsInHighRes } from './timing';
|
|
2
|
-
export const parseTrace = (trace) => {
|
|
3
|
-
const { spans } = trace;
|
|
4
|
-
const root = {
|
|
5
|
-
startTime: 0,
|
|
6
|
-
endTime: 0,
|
|
7
|
-
duration: 0,
|
|
8
|
-
depth: 0,
|
|
9
|
-
children: [],
|
|
10
|
-
};
|
|
11
|
-
const map = {};
|
|
12
|
-
const resourceIndices = new Map();
|
|
13
|
-
const getResourceIndex = (resource) => {
|
|
14
|
-
const existing = resourceIndices.get(resource);
|
|
15
|
-
if (existing)
|
|
16
|
-
return existing;
|
|
17
|
-
const index = resourceIndices.size + 1;
|
|
18
|
-
resourceIndices.set(resource, index);
|
|
19
|
-
return index;
|
|
20
|
-
};
|
|
21
|
-
let hasUserSpans = false;
|
|
22
|
-
for (const span of spans) {
|
|
23
|
-
const startTime = getHighResInMs(span.startTime);
|
|
24
|
-
const endTime = getHighResInMs(span.endTime);
|
|
25
|
-
const duration = getHighResInMs(span.duration);
|
|
26
|
-
if (endTime > root.endTime) {
|
|
27
|
-
root.endTime = endTime;
|
|
28
|
-
root.duration = endTime - root.startTime;
|
|
29
|
-
}
|
|
30
|
-
if (root.startTime === 0 || startTime < root.startTime) {
|
|
31
|
-
root.startTime = startTime;
|
|
32
|
-
root.duration = root.endTime - startTime;
|
|
33
|
-
}
|
|
34
|
-
const isVercelResource = span.resource.startsWith('vercel.');
|
|
35
|
-
if (!isVercelResource) {
|
|
36
|
-
hasUserSpans = true;
|
|
37
|
-
}
|
|
38
|
-
const isVercel = isVercelResource &&
|
|
39
|
-
(span.resource !== 'vercel.serverless-runtime' ||
|
|
40
|
-
!('http.method' in span.attributes));
|
|
41
|
-
const resourceIndex = isVercel ? 0 : getResourceIndex(span.resource);
|
|
42
|
-
let label;
|
|
43
|
-
if (isVercel) {
|
|
44
|
-
label = `▲ ${span.name}`;
|
|
45
|
-
}
|
|
46
|
-
map[span.spanId] = {
|
|
47
|
-
parent: null,
|
|
48
|
-
startTime,
|
|
49
|
-
endTime,
|
|
50
|
-
duration,
|
|
51
|
-
span,
|
|
52
|
-
depth: 0,
|
|
53
|
-
label,
|
|
54
|
-
events: parseEvents(span),
|
|
55
|
-
isVercel,
|
|
56
|
-
children: [],
|
|
57
|
-
resourceIndex,
|
|
58
|
-
// Pass through activeStartTime if present (for showing queued period)
|
|
59
|
-
activeStartTime: span.activeStartTime
|
|
60
|
-
? getHighResInMs(span.activeStartTime)
|
|
61
|
-
: undefined,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
const addTo = (node, parentId) => {
|
|
65
|
-
let parent;
|
|
66
|
-
if (parentId) {
|
|
67
|
-
parent = map[parentId];
|
|
68
|
-
if (!parent) {
|
|
69
|
-
if (process.env.NODE_ENV === 'development') {
|
|
70
|
-
console.warn('Could not find parent span with spanId: %s', parentId);
|
|
71
|
-
}
|
|
72
|
-
parent = root;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
parent = root;
|
|
77
|
-
}
|
|
78
|
-
node.parent = parent;
|
|
79
|
-
parent.children.push(node);
|
|
80
|
-
};
|
|
81
|
-
const updateDepth = (node) => {
|
|
82
|
-
if ('parent' in node) {
|
|
83
|
-
node.depth = node.parent.depth + 1;
|
|
84
|
-
}
|
|
85
|
-
for (const child of node.children) {
|
|
86
|
-
updateDepth(child);
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
let hintIdCounter = 1;
|
|
90
|
-
const addInstrumentationHint = (node, name) => {
|
|
91
|
-
if ('parent' in node) {
|
|
92
|
-
if (node.span.name === name) {
|
|
93
|
-
let waitUntilStart = node.endTime;
|
|
94
|
-
// Detect the parent that's most likely to be at the bottom of the UI
|
|
95
|
-
const findParent = (span) => {
|
|
96
|
-
if (!span.children.length) {
|
|
97
|
-
if (span.span.name === 'waitUntil') {
|
|
98
|
-
waitUntilStart = span.startTime;
|
|
99
|
-
return span.parent;
|
|
100
|
-
}
|
|
101
|
-
return span;
|
|
102
|
-
}
|
|
103
|
-
return (span.children
|
|
104
|
-
.map(findParent)
|
|
105
|
-
.sort((a, b) => a.duration - b.duration)[0] || span);
|
|
106
|
-
};
|
|
107
|
-
const parent = findParent(node);
|
|
108
|
-
const spanId = `instrumentation-hint-${hintIdCounter++}`;
|
|
109
|
-
const offset = node.duration * 0.05;
|
|
110
|
-
const startTime = node.startTime + offset;
|
|
111
|
-
const endTime = Math.max(startTime + offset, Math.min(waitUntilStart - node.duration * 0.01, node.endTime - offset));
|
|
112
|
-
const duration = endTime - startTime;
|
|
113
|
-
const hint = {
|
|
114
|
-
parent,
|
|
115
|
-
startTime,
|
|
116
|
-
endTime,
|
|
117
|
-
duration,
|
|
118
|
-
span: {
|
|
119
|
-
spanId,
|
|
120
|
-
name: 'Add your spans here',
|
|
121
|
-
resource: '',
|
|
122
|
-
kind: 0,
|
|
123
|
-
library: {
|
|
124
|
-
name: '',
|
|
125
|
-
},
|
|
126
|
-
status: {
|
|
127
|
-
code: 200,
|
|
128
|
-
},
|
|
129
|
-
traceFlags: 0,
|
|
130
|
-
attributes: {},
|
|
131
|
-
links: [],
|
|
132
|
-
events: [],
|
|
133
|
-
startTime: getMsInHighRes(startTime),
|
|
134
|
-
endTime: getMsInHighRes(endTime),
|
|
135
|
-
duration: getMsInHighRes(duration),
|
|
136
|
-
},
|
|
137
|
-
depth: node.depth + 1,
|
|
138
|
-
isVercel: false,
|
|
139
|
-
isInstrumentationHint: true,
|
|
140
|
-
children: [],
|
|
141
|
-
resourceIndex: 1,
|
|
142
|
-
};
|
|
143
|
-
parent.children.push(hint);
|
|
144
|
-
map[spanId] = hint;
|
|
145
|
-
return true;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
for (const child of node.children) {
|
|
149
|
-
if (addInstrumentationHint(child, name))
|
|
150
|
-
return true;
|
|
151
|
-
}
|
|
152
|
-
return false;
|
|
153
|
-
};
|
|
154
|
-
// Create tree by matching nodes to their parents
|
|
155
|
-
for (const node of Object.values(map)) {
|
|
156
|
-
addTo(node, node.span.parentSpanId);
|
|
157
|
-
}
|
|
158
|
-
// Adjust depth of each node now that the tree is fully constructed
|
|
159
|
-
updateDepth(root);
|
|
160
|
-
// Add hints in the places where user spans would appear
|
|
161
|
-
if (!hasUserSpans) {
|
|
162
|
-
for (const name of [
|
|
163
|
-
'Invoke Function',
|
|
164
|
-
'Invoke Middleware',
|
|
165
|
-
'Vercel Runtime',
|
|
166
|
-
]) {
|
|
167
|
-
if (addInstrumentationHint(root, name))
|
|
168
|
-
break;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
return { root, map };
|
|
172
|
-
};
|
|
173
|
-
const parseEvents = (span) => {
|
|
174
|
-
if (!span.events.length)
|
|
175
|
-
return;
|
|
176
|
-
const keyPrefix = `${span.spanId}:ev`;
|
|
177
|
-
return span.events
|
|
178
|
-
.map((event, index) => ({
|
|
179
|
-
key: `${keyPrefix}${index}`,
|
|
180
|
-
timestamp: getHighResInMs(event.timestamp),
|
|
181
|
-
event,
|
|
182
|
-
}))
|
|
183
|
-
.sort((a, b) => a.timestamp - b.timestamp);
|
|
184
|
-
};
|
|
185
|
-
/**
|
|
186
|
-
* Adds a node to a row and attempts to find the ideal placement
|
|
187
|
-
* within an existing row, creating a new one if necessary
|
|
188
|
-
*/
|
|
189
|
-
export const addToRow = (placed, node, precision) => {
|
|
190
|
-
const parent = node.parent;
|
|
191
|
-
for (let y = (parent?.row || -1) + 1;; ++y) {
|
|
192
|
-
let row = placed[y];
|
|
193
|
-
if (!row) {
|
|
194
|
-
row = [];
|
|
195
|
-
placed.push(row);
|
|
196
|
-
}
|
|
197
|
-
else if (!row.every(({ startTime, endTime }) => startTime + precision > node.endTime ||
|
|
198
|
-
endTime - precision < node.startTime)) {
|
|
199
|
-
continue;
|
|
200
|
-
}
|
|
201
|
-
node.row = y;
|
|
202
|
-
row.push(node);
|
|
203
|
-
break;
|
|
204
|
-
}
|
|
205
|
-
};
|
|
206
|
-
export const spanVisiblityHelper = (node, scale, visible) => {
|
|
207
|
-
if ('parent' in node) {
|
|
208
|
-
const n = node;
|
|
209
|
-
n.row = -1;
|
|
210
|
-
// Always make spans visible regardless of width
|
|
211
|
-
n.isVisible = true;
|
|
212
|
-
n.isHovered = false;
|
|
213
|
-
if (!n.isVisible)
|
|
214
|
-
return;
|
|
215
|
-
visible.push(n);
|
|
216
|
-
}
|
|
217
|
-
for (const child of node.children) {
|
|
218
|
-
spanVisiblityHelper(child, scale, visible);
|
|
219
|
-
}
|
|
220
|
-
};
|
|
221
|
-
export const adjustSpanVisibility = (span, _scale) => {
|
|
222
|
-
// Always make spans visible regardless of width
|
|
223
|
-
span.isVisible = true;
|
|
224
|
-
span.isHovered = false;
|
|
225
|
-
return span.isVisible;
|
|
226
|
-
};
|
|
227
|
-
//# sourceMappingURL=tree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/tree.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n RootNode,\n Span,\n SpanNode,\n SpanNodeEvent,\n Trace,\n TraceNode,\n VisibleSpan,\n} from '../types';\nimport { getHighResInMs, getMsInHighRes } from './timing';\n\nexport const parseTrace = (\n trace: Trace\n): { root: RootNode; map: Record<string, SpanNode> } => {\n const { spans } = trace;\n const root: RootNode = {\n startTime: 0,\n endTime: 0,\n duration: 0,\n depth: 0,\n children: [],\n };\n const map: Record<string, SpanNode> = {};\n\n const resourceIndices = new Map<string, number>();\n const getResourceIndex = (resource: string): number => {\n const existing = resourceIndices.get(resource);\n if (existing) return existing;\n\n const index = resourceIndices.size + 1;\n resourceIndices.set(resource, index);\n return index;\n };\n\n let hasUserSpans = false;\n for (const span of spans) {\n const startTime = getHighResInMs(span.startTime);\n const endTime = getHighResInMs(span.endTime);\n const duration = getHighResInMs(span.duration);\n if (endTime > root.endTime) {\n root.endTime = endTime;\n root.duration = endTime - root.startTime;\n }\n if (root.startTime === 0 || startTime < root.startTime) {\n root.startTime = startTime;\n root.duration = root.endTime - startTime;\n }\n const isVercelResource = span.resource.startsWith('vercel.');\n if (!isVercelResource) {\n hasUserSpans = true;\n }\n\n const isVercel =\n isVercelResource &&\n (span.resource !== 'vercel.serverless-runtime' ||\n !('http.method' in span.attributes));\n\n const resourceIndex = isVercel ? 0 : getResourceIndex(span.resource);\n\n let label: string | undefined;\n if (isVercel) {\n label = `▲ ${span.name}`;\n }\n map[span.spanId] = {\n parent: null as unknown as SpanNode,\n startTime,\n endTime,\n duration,\n span,\n depth: 0,\n label,\n events: parseEvents(span),\n isVercel,\n children: [],\n resourceIndex,\n // Pass through activeStartTime if present (for showing queued period)\n activeStartTime: span.activeStartTime\n ? getHighResInMs(span.activeStartTime)\n : undefined,\n };\n }\n\n const addTo = (node: SpanNode, parentId?: string): void => {\n let parent: TraceNode | undefined;\n if (parentId) {\n parent = map[parentId];\n if (!parent) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('Could not find parent span with spanId: %s', parentId);\n }\n parent = root;\n }\n } else {\n parent = root;\n }\n node.parent = parent;\n parent.children.push(node);\n };\n\n const updateDepth = (node: TraceNode): void => {\n if ('parent' in node) {\n node.depth = node.parent.depth + 1;\n }\n for (const child of node.children) {\n updateDepth(child);\n }\n };\n\n let hintIdCounter = 1;\n const addInstrumentationHint = (node: TraceNode, name: string): boolean => {\n if ('parent' in node) {\n if (node.span.name === name) {\n let waitUntilStart = node.endTime;\n // Detect the parent that's most likely to be at the bottom of the UI\n const findParent = (span: SpanNode): SpanNode => {\n if (!span.children.length) {\n if (span.span.name === 'waitUntil') {\n waitUntilStart = span.startTime;\n return span.parent as SpanNode;\n }\n return span;\n }\n\n return (\n span.children\n .map(findParent)\n .sort((a, b) => a.duration - b.duration)[0] || span\n );\n };\n const parent = findParent(node);\n\n const spanId = `instrumentation-hint-${hintIdCounter++}`;\n const offset = node.duration * 0.05;\n const startTime = node.startTime + offset;\n const endTime = Math.max(\n startTime + offset,\n Math.min(waitUntilStart - node.duration * 0.01, node.endTime - offset)\n );\n const duration = endTime - startTime;\n const hint: SpanNode = {\n parent,\n startTime,\n endTime,\n duration,\n span: {\n spanId,\n name: 'Add your spans here',\n resource: '',\n kind: 0,\n library: {\n name: '',\n },\n status: {\n code: 200,\n },\n traceFlags: 0,\n attributes: {},\n links: [],\n events: [],\n startTime: getMsInHighRes(startTime),\n endTime: getMsInHighRes(endTime),\n duration: getMsInHighRes(duration),\n },\n depth: node.depth + 1,\n isVercel: false,\n isInstrumentationHint: true,\n children: [],\n resourceIndex: 1,\n };\n parent.children.push(hint);\n map[spanId] = hint;\n return true;\n }\n }\n for (const child of node.children) {\n if (addInstrumentationHint(child, name)) return true;\n }\n return false;\n };\n\n // Create tree by matching nodes to their parents\n for (const node of Object.values(map)) {\n addTo(node, node.span.parentSpanId);\n }\n\n // Adjust depth of each node now that the tree is fully constructed\n updateDepth(root);\n\n // Add hints in the places where user spans would appear\n if (!hasUserSpans) {\n for (const name of [\n 'Invoke Function',\n 'Invoke Middleware',\n 'Vercel Runtime',\n ]) {\n if (addInstrumentationHint(root, name)) break;\n }\n }\n\n return { root, map };\n};\n\nconst parseEvents = (span: Span): SpanNodeEvent[] | undefined => {\n if (!span.events.length) return;\n\n const keyPrefix = `${span.spanId}:ev`;\n\n return span.events\n .map<SpanNodeEvent>((event, index) => ({\n key: `${keyPrefix}${index}`,\n timestamp: getHighResInMs(event.timestamp),\n event,\n }))\n .sort((a, b) => a.timestamp - b.timestamp);\n};\n\n/**\n * Adds a node to a row and attempts to find the ideal placement\n * within an existing row, creating a new one if necessary\n */\nexport const addToRow = (\n placed: VisibleSpan[][],\n node: VisibleSpan,\n precision: number\n): void => {\n const parent = node.parent as VisibleSpan | undefined;\n for (let y = (parent?.row || -1) + 1; ; ++y) {\n let row = placed[y];\n if (!row) {\n row = [];\n placed.push(row);\n } else if (\n !row.every(\n ({ startTime, endTime }) =>\n startTime + precision > node.endTime ||\n endTime - precision < node.startTime\n )\n ) {\n continue;\n }\n node.row = y;\n row.push(node);\n break;\n }\n};\n\nexport const spanVisiblityHelper = (\n node: TraceNode,\n scale: number,\n visible: VisibleSpan[]\n): void => {\n if ('parent' in node) {\n const n = node as VisibleSpan;\n n.row = -1;\n // Always make spans visible regardless of width\n n.isVisible = true;\n n.isHovered = false;\n if (!n.isVisible) return;\n\n visible.push(n);\n }\n\n for (const child of node.children) {\n spanVisiblityHelper(child, scale, visible);\n }\n};\n\nexport const adjustSpanVisibility = (\n span: VisibleSpan,\n _scale: number\n): boolean => {\n // Always make spans visible regardless of width\n span.isVisible = true;\n span.isHovered = false;\n\n return span.isVisible;\n};\n"]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { CSSProperties, MutableRefObject } from 'react';
|
|
2
|
-
type SetStyle = (propertyName: string, value: string | undefined) => void;
|
|
3
|
-
interface ImmediateStyle {
|
|
4
|
-
setStyle: SetStyle;
|
|
5
|
-
styleRef: MutableRefObject<CSSProperties>;
|
|
6
|
-
style: CSSProperties;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Update an element's style without forcing renders, but in a way that is still
|
|
10
|
-
* safe if the element re-renders for another reason.
|
|
11
|
-
* @returns The current style & a method to update the style
|
|
12
|
-
*/
|
|
13
|
-
export declare function useImmediateStyle(ref: MutableRefObject<HTMLElement | null>): ImmediateStyle;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=use-immediate-style.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-immediate-style.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/use-immediate-style.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAG7D,KAAK,QAAQ,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;AAE1E,UAAU,cAAc;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC1C,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,GACxC,cAAc,CAiBhB"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { useCallback, useRef } from 'react';
|
|
3
|
-
/**
|
|
4
|
-
* Update an element's style without forcing renders, but in a way that is still
|
|
5
|
-
* safe if the element re-renders for another reason.
|
|
6
|
-
* @returns The current style & a method to update the style
|
|
7
|
-
*/
|
|
8
|
-
export function useImmediateStyle(ref) {
|
|
9
|
-
const styleRef = useRef({});
|
|
10
|
-
const setStyle = useCallback((propertyName, value) => {
|
|
11
|
-
// @ts-expect-error typeof keyof CSSProperties is too big of a union
|
|
12
|
-
styleRef.current[propertyName] = value;
|
|
13
|
-
if (!ref.current)
|
|
14
|
-
return;
|
|
15
|
-
if (!value) {
|
|
16
|
-
ref.current.style.removeProperty(propertyName);
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
ref.current.style.setProperty(propertyName, value);
|
|
20
|
-
}, [ref]);
|
|
21
|
-
return { setStyle, styleRef, style: { ...styleRef.current } };
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=use-immediate-style.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-immediate-style.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/use-immediate-style.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAU5C;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAyC;IAEzC,MAAM,QAAQ,GAAG,MAAM,CAAgB,EAAE,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;QACtB,oEAAoE;QACpE,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;AAChE,CAAC","sourcesContent":["'use client';\n\nimport type { CSSProperties, MutableRefObject } from 'react';\nimport { useCallback, useRef } from 'react';\n\ntype SetStyle = (propertyName: string, value: string | undefined) => void;\n\ninterface ImmediateStyle {\n setStyle: SetStyle;\n styleRef: MutableRefObject<CSSProperties>;\n style: CSSProperties;\n}\n\n/**\n * Update an element's style without forcing renders, but in a way that is still\n * safe if the element re-renders for another reason.\n * @returns The current style & a method to update the style\n */\nexport function useImmediateStyle(\n ref: MutableRefObject<HTMLElement | null>\n): ImmediateStyle {\n const styleRef = useRef<CSSProperties>({});\n const setStyle = useCallback<SetStyle>(\n (propertyName, value) => {\n // @ts-expect-error typeof keyof CSSProperties is too big of a union\n styleRef.current[propertyName] = value;\n if (!ref.current) return;\n if (!value) {\n ref.current.style.removeProperty(propertyName);\n return;\n }\n ref.current.style.setProperty(propertyName, value);\n },\n [ref]\n );\n\n return { setStyle, styleRef, style: { ...styleRef.current } };\n}\n"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { VisibleSpan, VisibleSpanEvent } from '../types';
|
|
2
|
-
export declare const useStreamingSpans: (highlightedSpans?: string[], eagerRender?: boolean) => {
|
|
3
|
-
rows: VisibleSpan[][];
|
|
4
|
-
spans: VisibleSpan[];
|
|
5
|
-
events: VisibleSpanEvent[];
|
|
6
|
-
scale: number;
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=use-streaming-spans.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-streaming-spans.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/use-streaming-spans.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAGjB,MAAM,UAAU,CAAC;AAsBlB,eAAO,MAAM,iBAAiB,GAC5B,mBAAmB,MAAM,EAAE,EAC3B,qBAAmB,KAClB;IACD,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;IACtB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CAqWf,CAAC"}
|