@workflow/web-shared 5.0.0-beta.4 → 5.0.0-beta.41
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,355 +1,48 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { createContext, useContext, useEffect, useMemo,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const reducer = (state, action) => {
|
|
46
|
-
switch (action.type) {
|
|
47
|
-
case 'setRoot':
|
|
48
|
-
state.scrollSnapshotRef.current = undefined;
|
|
49
|
-
state.memoCacheRef.current.clear();
|
|
50
|
-
return reducer({
|
|
51
|
-
...state,
|
|
52
|
-
root: action.root,
|
|
53
|
-
spanMap: action.spanMap,
|
|
54
|
-
resourceMap: Object.fromEntries(action.resources.map(({ name, attributes }) => [name, attributes])),
|
|
55
|
-
}, {
|
|
56
|
-
type: 'detectBaseScale',
|
|
57
|
-
});
|
|
58
|
-
case 'setSize': {
|
|
59
|
-
const lowerHeight = action.height - MAP_HEIGHT - SEARCH_HEIGHT - 3 * SEARCH_GAP;
|
|
60
|
-
const isMobile = state.withPanel && action.width <= 768;
|
|
61
|
-
let newState = {
|
|
62
|
-
...state,
|
|
63
|
-
width: action.width,
|
|
64
|
-
height: action.height,
|
|
65
|
-
timelineWidth: action.width -
|
|
66
|
-
Number(Boolean(state.selected && state.withPanel && !isMobile)) *
|
|
67
|
-
state.panelWidth,
|
|
68
|
-
timelineHeight: lowerHeight,
|
|
69
|
-
panelHeight: lowerHeight,
|
|
70
|
-
isMobile,
|
|
71
|
-
};
|
|
72
|
-
if (newState.width !== state.width) {
|
|
73
|
-
newState = reducer(newState, {
|
|
74
|
-
type: 'detectBaseScale',
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
return newState;
|
|
78
|
-
}
|
|
79
|
-
case 'setPanelWidth': {
|
|
80
|
-
const panelWidth = Math.max(240, Math.min(action.width, state.width - 240));
|
|
81
|
-
const timelineWidth = state.withPanel && state.selected && !state.isMobile
|
|
82
|
-
? state.width - panelWidth
|
|
83
|
-
: state.width;
|
|
84
|
-
return reducer({
|
|
85
|
-
...state,
|
|
86
|
-
timelineWidth,
|
|
87
|
-
panelWidth,
|
|
88
|
-
}, {
|
|
89
|
-
type: 'detectBaseScale',
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
case 'setFilter':
|
|
93
|
-
return {
|
|
94
|
-
...state,
|
|
95
|
-
filter: action.filter,
|
|
96
|
-
};
|
|
97
|
-
case 'deselect':
|
|
98
|
-
return reducer({
|
|
99
|
-
...state,
|
|
100
|
-
selected: null,
|
|
101
|
-
timelineWidth: state.width,
|
|
102
|
-
}, {
|
|
103
|
-
type: 'detectBaseScale',
|
|
104
|
-
});
|
|
105
|
-
case 'select': {
|
|
106
|
-
const node = state.spanMap[action.id];
|
|
107
|
-
if (!node) {
|
|
108
|
-
return state;
|
|
109
|
-
}
|
|
110
|
-
return reducer({
|
|
111
|
-
...state,
|
|
112
|
-
selected: node,
|
|
113
|
-
timelineWidth: state.width -
|
|
114
|
-
(state.withPanel && !state.isMobile ? state.panelWidth : 0),
|
|
115
|
-
}, {
|
|
116
|
-
type: 'detectBaseScale',
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
case 'escape': {
|
|
120
|
-
if (state.selected) {
|
|
121
|
-
return reducer(state, {
|
|
122
|
-
type: 'deselect',
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
return reducer(state, {
|
|
126
|
-
type: 'resetScale',
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
case 'toggleSelection': {
|
|
130
|
-
let newState = state;
|
|
131
|
-
if (state.selected) {
|
|
132
|
-
newState = reducer(newState, {
|
|
133
|
-
type: 'deselect',
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
if (state.selected?.span.spanId === action.id) {
|
|
137
|
-
return newState;
|
|
138
|
-
}
|
|
139
|
-
return reducer(newState, {
|
|
140
|
-
type: 'select',
|
|
141
|
-
id: action.id,
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
case 'detectBaseScale': {
|
|
145
|
-
const baseScale = (state.timelineWidth - state.scrollbarWidth) / state.root.duration;
|
|
146
|
-
return reducer({
|
|
147
|
-
...state,
|
|
148
|
-
baseScale,
|
|
149
|
-
scale: baseScale * state.scaleRatio,
|
|
150
|
-
}, {
|
|
151
|
-
type: 'minScale',
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
case 'setScale':
|
|
155
|
-
return {
|
|
156
|
-
...state,
|
|
157
|
-
scaleRatio: action.scale,
|
|
158
|
-
scale: state.baseScale * action.scale,
|
|
159
|
-
};
|
|
160
|
-
case 'resetScale':
|
|
161
|
-
return reducer(state, {
|
|
162
|
-
type: 'scaleToRange',
|
|
163
|
-
t1: state.root.startTime,
|
|
164
|
-
t2: state.root.endTime,
|
|
165
|
-
});
|
|
166
|
-
case 'scaleToNode': {
|
|
167
|
-
const node = state.spanMap[action.id];
|
|
168
|
-
if (!node) {
|
|
169
|
-
return state;
|
|
170
|
-
}
|
|
171
|
-
return reducer(reducer(state, {
|
|
172
|
-
type: 'setScale',
|
|
173
|
-
scale: (state.width -
|
|
174
|
-
state.scrollbarWidth -
|
|
175
|
-
(state.withPanel && !state.isMobile ? state.panelWidth : 0)) /
|
|
176
|
-
node.duration /
|
|
177
|
-
state.baseScale,
|
|
178
|
-
}), {
|
|
179
|
-
type: 'setScrollSnapshot',
|
|
180
|
-
anchorT: node.startTime - state.root.startTime,
|
|
181
|
-
anchorX: 0,
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
case 'scaleToRange': {
|
|
185
|
-
const duration = Math.abs(action.t1 - action.t2);
|
|
186
|
-
return reducer(reducer(state, {
|
|
187
|
-
type: 'setScale',
|
|
188
|
-
scale: (state.width -
|
|
189
|
-
state.scrollbarWidth -
|
|
190
|
-
(state.selected && state.withPanel ? state.panelWidth : 0)) /
|
|
191
|
-
duration /
|
|
192
|
-
state.baseScale,
|
|
193
|
-
}), {
|
|
194
|
-
type: 'setScrollSnapshot',
|
|
195
|
-
anchorT: Math.min(action.t1, action.t2) - state.root.startTime,
|
|
196
|
-
anchorX: 0,
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
case 'adjustScaleRatio': {
|
|
200
|
-
let { scaleRatio } = state;
|
|
201
|
-
switch (action.direction) {
|
|
202
|
-
case -1:
|
|
203
|
-
scaleRatio *= 0.8;
|
|
204
|
-
break;
|
|
205
|
-
case 1:
|
|
206
|
-
scaleRatio *= 1.25;
|
|
207
|
-
break;
|
|
208
|
-
default:
|
|
209
|
-
scaleRatio = 1;
|
|
210
|
-
break;
|
|
211
|
-
}
|
|
212
|
-
const $timeline = state.timelineRef.current;
|
|
213
|
-
if (!$timeline) {
|
|
214
|
-
console.warn('timelineRef is null');
|
|
215
|
-
return state;
|
|
216
|
-
}
|
|
217
|
-
const { clientWidth, scrollLeft } = $timeline;
|
|
218
|
-
return reducer(reducer({
|
|
219
|
-
...state,
|
|
220
|
-
scaleRatio,
|
|
221
|
-
scale: state.baseScale * scaleRatio,
|
|
222
|
-
}, {
|
|
223
|
-
type: 'minScale',
|
|
224
|
-
}), {
|
|
225
|
-
type: 'setScrollSnapshot',
|
|
226
|
-
anchorT: (scrollLeft + clientWidth * 0.5) / state.scale,
|
|
227
|
-
anchorX: clientWidth * 0.5,
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
case 'trackpadScale': {
|
|
231
|
-
const minScaleRatio = getMinScale(state) / state.baseScale;
|
|
232
|
-
const scaleRatio = Math.max(minScaleRatio, state.scaleRatio *
|
|
233
|
-
(1 +
|
|
234
|
-
0.2 * Math.sign(action.delta) * Math.sqrt(Math.abs(action.delta))));
|
|
235
|
-
return reducer({
|
|
236
|
-
...state,
|
|
237
|
-
scaleRatio,
|
|
238
|
-
scale: state.baseScale * scaleRatio,
|
|
239
|
-
}, {
|
|
240
|
-
type: 'setScrollSnapshot',
|
|
241
|
-
anchorT: action.anchorT,
|
|
242
|
-
anchorX: action.anchorX,
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
case 'minScale': {
|
|
246
|
-
const minScale = getMinScale(state);
|
|
247
|
-
if (state.scale >= minScale)
|
|
248
|
-
return state;
|
|
249
|
-
return {
|
|
250
|
-
...state,
|
|
251
|
-
scale: minScale,
|
|
252
|
-
scaleRatio: minScale / state.baseScale,
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
case 'setScrollSnapshot': {
|
|
256
|
-
const $timeline = state.timelineRef.current;
|
|
257
|
-
if (!$timeline)
|
|
258
|
-
return state;
|
|
259
|
-
const { anchorT, anchorX } = action;
|
|
260
|
-
const scrollLeft = anchorT * state.scale - anchorX;
|
|
261
|
-
const { scrollTop } = $timeline;
|
|
262
|
-
const startRow = (scrollTop - MARKER_HEIGHT - TIMELINE_PADDING) /
|
|
263
|
-
(ROW_HEIGHT + ROW_PADDING);
|
|
264
|
-
const endRow = startRow + Math.ceil(state.timelineHeight / (ROW_HEIGHT + ROW_PADDING));
|
|
265
|
-
state.scrollSnapshotRef.current = {
|
|
266
|
-
anchorT,
|
|
267
|
-
anchorX,
|
|
268
|
-
scrollLeft,
|
|
269
|
-
scrollTop,
|
|
270
|
-
startTime: state.root.startTime + scrollLeft / state.scale,
|
|
271
|
-
endTime: state.root.startTime +
|
|
272
|
-
(scrollLeft + state.timelineWidth) / state.scale,
|
|
273
|
-
startRow,
|
|
274
|
-
endRow,
|
|
275
|
-
scale: state.scale,
|
|
276
|
-
};
|
|
277
|
-
return state;
|
|
278
|
-
}
|
|
279
|
-
case 'setWithPanel': {
|
|
280
|
-
if (state.withPanel === action.withPanel)
|
|
281
|
-
return state;
|
|
282
|
-
const timelineWidth = action.withPanel && state.selected && !state.isMobile
|
|
283
|
-
? state.width - state.panelWidth
|
|
284
|
-
: state.width;
|
|
285
|
-
return reducer({
|
|
286
|
-
...state,
|
|
287
|
-
withPanel: action.withPanel,
|
|
288
|
-
timelineWidth,
|
|
289
|
-
}, {
|
|
290
|
-
type: 'detectBaseScale',
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
case 'forceRender':
|
|
294
|
-
state.memoCacheRef.current.set('', {});
|
|
295
|
-
return {
|
|
296
|
-
...state,
|
|
297
|
-
};
|
|
298
|
-
case 'updateRoot':
|
|
299
|
-
// Incremental update: preserve scroll snapshot and only invalidate
|
|
300
|
-
// memo cache for spans whose data may have changed
|
|
301
|
-
state.memoCacheRef.current.set('', {});
|
|
302
|
-
return reducer({
|
|
303
|
-
...state,
|
|
304
|
-
root: action.root,
|
|
305
|
-
spanMap: action.spanMap,
|
|
306
|
-
resourceMap: Object.fromEntries(action.resources.map(({ name, attributes }) => [name, attributes])),
|
|
307
|
-
}, {
|
|
308
|
-
type: 'detectBaseScale',
|
|
309
|
-
});
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useState, } from 'react';
|
|
4
|
+
const ActiveSpanContext = createContext(null);
|
|
5
|
+
ActiveSpanContext.displayName = 'ActiveSpanContext';
|
|
6
|
+
export function ActiveSpanProvider({ spans, children, }) {
|
|
7
|
+
const [activeSpanId, setActiveSpanId] = useState(null);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
setActiveSpanId((currentSpanId) => {
|
|
10
|
+
if (!currentSpanId) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const hasCurrentSpan = spans.some((span) => span.spanId === currentSpanId);
|
|
14
|
+
if (hasCurrentSpan) {
|
|
15
|
+
return currentSpanId;
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
});
|
|
19
|
+
}, [spans]);
|
|
20
|
+
const activeSpan = useMemo(() => {
|
|
21
|
+
if (!activeSpanId) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return spans.find((span) => span.spanId === activeSpanId) ?? null;
|
|
25
|
+
}, [activeSpanId, spans]);
|
|
26
|
+
const setActiveSpan = useCallback((spanId) => {
|
|
27
|
+
setActiveSpanId(spanId);
|
|
28
|
+
}, []);
|
|
29
|
+
const clearActiveSpan = useCallback(() => {
|
|
30
|
+
setActiveSpanId(null);
|
|
31
|
+
}, []);
|
|
32
|
+
const value = useMemo(() => ({
|
|
33
|
+
activeSpanId,
|
|
34
|
+
activeSpan,
|
|
35
|
+
spans,
|
|
36
|
+
setActiveSpan,
|
|
37
|
+
clearActiveSpan,
|
|
38
|
+
}), [activeSpanId, activeSpan, spans, setActiveSpan, clearActiveSpan]);
|
|
39
|
+
return (_jsx(ActiveSpanContext.Provider, { value: value, children: children }));
|
|
40
|
+
}
|
|
41
|
+
export const useActiveSpan = () => {
|
|
42
|
+
const context = useContext(ActiveSpanContext);
|
|
43
|
+
if (!context) {
|
|
44
|
+
throw new Error('useActiveSpan must be used within ActiveSpanProvider');
|
|
310
45
|
}
|
|
46
|
+
return context;
|
|
311
47
|
};
|
|
312
|
-
|
|
313
|
-
const timelineRef = useRef(null);
|
|
314
|
-
const scrollSnapshotRef = useRef(undefined);
|
|
315
|
-
const getQuickLinksRef = useRef(getQuickLinks);
|
|
316
|
-
getQuickLinksRef.current = getQuickLinks;
|
|
317
|
-
const memoCacheRef = useRef(new Map());
|
|
318
|
-
const quickLinksCache = useRef(new Map());
|
|
319
|
-
const [state, dispatch] = useReducer(reducer, initialState, (initial) => {
|
|
320
|
-
return {
|
|
321
|
-
...initial,
|
|
322
|
-
scrollbarWidth: detectScrollbarWidth(),
|
|
323
|
-
timelineRef,
|
|
324
|
-
scrollSnapshotRef,
|
|
325
|
-
customSpanClassNameFunc,
|
|
326
|
-
customSpanEventClassNameFunc,
|
|
327
|
-
memoCacheRef,
|
|
328
|
-
withPanel,
|
|
329
|
-
getQuickLinks: (span) => {
|
|
330
|
-
const cacheKey = span.spanId;
|
|
331
|
-
const existing = quickLinksCache.current.get(cacheKey);
|
|
332
|
-
if (existing)
|
|
333
|
-
return existing;
|
|
334
|
-
const value = getQuickLinksRef.current?.(span) || [];
|
|
335
|
-
quickLinksCache.current.set(cacheKey, value);
|
|
336
|
-
return value;
|
|
337
|
-
},
|
|
338
|
-
};
|
|
339
|
-
});
|
|
340
|
-
useEffect(() => dispatch({
|
|
341
|
-
type: 'setWithPanel',
|
|
342
|
-
withPanel,
|
|
343
|
-
}), [withPanel]);
|
|
344
|
-
const value = useMemo(() => ({ state, dispatch }), [state, dispatch]);
|
|
345
|
-
return (_jsx(CustomPanelContext.Provider, { value: customPanelComponent, children: _jsx(TraceViewerContext.Provider, { value: value, children: children }) }));
|
|
346
|
-
}
|
|
347
|
-
export const useTraceViewer = () => useContext(TraceViewerContext);
|
|
348
|
-
/**
|
|
349
|
-
* Separate context for the custom panel component. This is intentionally
|
|
350
|
-
* outside the useReducer state so that the panel re-renders reactively
|
|
351
|
-
* when props like spanDetailData change.
|
|
352
|
-
*/
|
|
353
|
-
const CustomPanelContext = createContext(null);
|
|
354
|
-
export const useCustomPanelComponent = () => useContext(CustomPanelContext);
|
|
355
|
-
//# sourceMappingURL=context.js.map
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3RyYWNlLXZpZXdlci9jb250ZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7O0FBRWIsT0FBTyxFQUNMLGFBQWEsRUFFYixXQUFXLEVBQ1gsVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsUUFBUSxHQUNULE1BQU0sT0FBTyxDQUFDO0FBWWYsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQWdDLElBQUksQ0FBQyxDQUFDO0FBQzdFLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQztBQUVwRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsRUFDakMsS0FBSyxFQUNMLFFBQVEsR0FJVDtJQUNDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLEdBQUcsUUFBUSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUV0RSxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsZUFBZSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNuQixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFFRCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUMvQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQ3hDLENBQUM7WUFDRixJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixPQUFPLGFBQWEsQ0FBQztZQUN2QixDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFWixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQzlCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3BFLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRTFCLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ25ELGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1FBQ3ZDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQ25CLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDTCxZQUFZO1FBQ1osVUFBVTtRQUNWLEtBQUs7UUFDTCxhQUFhO1FBQ2IsZUFBZTtLQUNoQixDQUFDLEVBQ0YsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQ2xFLENBQUM7SUFFRixPQUFPLENBQ0wsS0FBQyxpQkFBaUIsQ0FBQyxRQUFRLElBQUMsS0FBSyxFQUFFLEtBQUssWUFDckMsUUFBUSxHQUNrQixDQUM5QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUEyQixFQUFFO0lBQ3hELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQge1xuICBjcmVhdGVDb250ZXh0LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUNvbnRleHQsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgU3BhbiB9IGZyb20gJy4vdHlwZXMnO1xuXG5pbnRlcmZhY2UgQWN0aXZlU3BhbkNvbnRleHRWYWx1ZSB7XG4gIGFjdGl2ZVNwYW5JZDogc3RyaW5nIHwgbnVsbDtcbiAgYWN0aXZlU3BhbjogU3BhbiB8IG51bGw7XG4gIC8qKiBUaGUgZnVsbCBzcGFuIGxpc3QgdGhlIHNlbGVjdGlvbiBsaXZlcyBpbiAob3JkZXJlZCBhcyByZW5kZXJlZCkuICovXG4gIHNwYW5zOiBTcGFuW107XG4gIHNldEFjdGl2ZVNwYW46IChzcGFuSWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgY2xlYXJBY3RpdmVTcGFuOiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBBY3RpdmVTcGFuQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8QWN0aXZlU3BhbkNvbnRleHRWYWx1ZSB8IG51bGw+KG51bGwpO1xuQWN0aXZlU3BhbkNvbnRleHQuZGlzcGxheU5hbWUgPSAnQWN0aXZlU3BhbkNvbnRleHQnO1xuXG5leHBvcnQgZnVuY3Rpb24gQWN0aXZlU3BhblByb3ZpZGVyKHtcbiAgc3BhbnMsXG4gIGNoaWxkcmVuLFxufToge1xuICBzcGFuczogU3BhbltdO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufSkge1xuICBjb25zdCBbYWN0aXZlU3BhbklkLCBzZXRBY3RpdmVTcGFuSWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRBY3RpdmVTcGFuSWQoKGN1cnJlbnRTcGFuSWQpID0+IHtcbiAgICAgIGlmICghY3VycmVudFNwYW5JZCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFzQ3VycmVudFNwYW4gPSBzcGFucy5zb21lKFxuICAgICAgICAoc3BhbikgPT4gc3Bhbi5zcGFuSWQgPT09IGN1cnJlbnRTcGFuSWRcbiAgICAgICk7XG4gICAgICBpZiAoaGFzQ3VycmVudFNwYW4pIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRTcGFuSWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICB9LCBbc3BhbnNdKTtcblxuICBjb25zdCBhY3RpdmVTcGFuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFhY3RpdmVTcGFuSWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBzcGFucy5maW5kKChzcGFuKSA9PiBzcGFuLnNwYW5JZCA9PT0gYWN0aXZlU3BhbklkKSA/PyBudWxsO1xuICB9LCBbYWN0aXZlU3BhbklkLCBzcGFuc10pO1xuXG4gIGNvbnN0IHNldEFjdGl2ZVNwYW4gPSB1c2VDYWxsYmFjaygoc3BhbklkOiBzdHJpbmcpID0+IHtcbiAgICBzZXRBY3RpdmVTcGFuSWQoc3BhbklkKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGNsZWFyQWN0aXZlU3BhbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRBY3RpdmVTcGFuSWQobnVsbCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW88QWN0aXZlU3BhbkNvbnRleHRWYWx1ZT4oXG4gICAgKCkgPT4gKHtcbiAgICAgIGFjdGl2ZVNwYW5JZCxcbiAgICAgIGFjdGl2ZVNwYW4sXG4gICAgICBzcGFucyxcbiAgICAgIHNldEFjdGl2ZVNwYW4sXG4gICAgICBjbGVhckFjdGl2ZVNwYW4sXG4gICAgfSksXG4gICAgW2FjdGl2ZVNwYW5JZCwgYWN0aXZlU3Bhbiwgc3BhbnMsIHNldEFjdGl2ZVNwYW4sIGNsZWFyQWN0aXZlU3Bhbl1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxBY3RpdmVTcGFuQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17dmFsdWV9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvQWN0aXZlU3BhbkNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59XG5cbmV4cG9ydCBjb25zdCB1c2VBY3RpdmVTcGFuID0gKCk6IEFjdGl2ZVNwYW5Db250ZXh0VmFsdWUgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChBY3RpdmVTcGFuQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlQWN0aXZlU3BhbiBtdXN0IGJlIHVzZWQgd2l0aGluIEFjdGl2ZVNwYW5Qcm92aWRlcicpO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/trace-viewer/icons.tsx"],"names":[],"mappings":"AAAA,QAAA,MAAM,YAAY,+CAgBjB,CAAC;AAEF,QAAA,MAAM,WAAW,+CAkBhB,CAAC;AAEF,QAAA,MAAM,SAAS,+CAkBd,CAAC;AAEF,QAAA,MAAM,eAAe,+CAkBpB,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
const WorkflowIcon = () => {
|
|
3
|
+
return (_jsx("svg", { "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", style: { color: 'currentColor' }, viewBox: "0 0 16 16", width: "16", children: _jsx("path", { d: "M5.75 7L6.4209 7.33594L4.85254 10.4717C5.38789 10.771 5.75 11.3431 5.75 12V14C5.75 14.9665 4.96648 15.75 4 15.75H2C1.03352 15.75 0.25 14.9665 0.25 14V12C0.25 11.0335 1.03352 10.25 2 10.25H3.28711L5.0791 6.66504L5.75 7ZM14 10.25C14.9665 10.25 15.75 11.0335 15.75 12V14C15.75 14.9665 14.9665 15.75 14 15.75H12C11.1185 15.75 10.3909 15.098 10.2695 14.25H7V12.75H10.25V12C10.25 11.0335 11.0335 10.25 12 10.25H14ZM2 11.75C1.86192 11.75 1.75 11.8619 1.75 12V14C1.75 14.1381 1.86192 14.25 2 14.25H4C4.13808 14.25 4.25 14.1381 4.25 14V12C4.25 11.8619 4.13808 11.75 4 11.75H2ZM12 11.75C11.8619 11.75 11.75 11.8619 11.75 12V14C11.75 14.1381 11.8619 14.25 12 14.25H14C14.1381 14.25 14.25 14.1381 14.25 14V12C14.25 11.8619 14.1381 11.75 14 11.75H12ZM9 0.25C9.96649 0.25 10.75 1.03351 10.75 2V4C10.75 4.44642 10.5808 4.85197 10.3057 5.16113L12.2041 8.6416L10.8877 9.36035L8.91895 5.75H7C6.03351 5.75 5.25 4.96649 5.25 4V2C5.25 1.03351 6.03351 0.25 7 0.25H9ZM7 1.75C6.86193 1.75 6.75 1.86193 6.75 2V4C6.75 4.13807 6.86193 4.25 7 4.25H9C9.13807 4.25 9.25 4.13807 9.25 4V2C9.25 1.86193 9.13807 1.75 9 1.75H7Z", fill: "currentColor" }) }));
|
|
4
|
+
};
|
|
5
|
+
const WebhookIcon = () => {
|
|
6
|
+
return (_jsx("svg", { "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", style: { color: 'currentColor' }, children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M5.8349 3.24994C5.14454 4.44567 5.55423 5.97464 6.74996 6.665L7.39465 7.03721L7.02726 7.68466L5.14599 11C5.21289 11.1531 5.25 11.3222 5.25 11.5C5.25 12.1904 4.69036 12.75 4 12.75C3.30964 12.75 2.75 12.1904 2.75 11.5C2.75 10.8634 3.22584 10.338 3.84123 10.26L5.38944 7.5316C3.95909 6.30274 3.55857 4.19264 4.53586 2.49994C5.64043 0.586765 8.08679 -0.0687357 9.99996 1.03583C11.836 2.09584 12.5137 4.39156 11.5892 6.26591L10.4949 4.33754C10.4418 3.53274 10.0009 2.76843 9.24996 2.33487C8.05423 1.64452 6.52525 2.0542 5.8349 3.24994ZM9.146 4.99996C9.21289 4.84686 9.25 4.67776 9.25 4.5C9.25 3.80964 8.69036 3.25 8 3.25C7.30964 3.25 6.75 3.80964 6.75 4.5C6.75 5.13659 7.22586 5.66203 7.84127 5.74002L9.72266 9.05556L10.0956 9.71274L10.75 9.33493C11.9457 8.64458 13.4747 9.05427 14.165 10.25C14.8554 11.4457 14.4457 12.9747 13.25 13.6651C12.5047 14.0953 11.63 14.0983 10.9096 13.75H8.69252C9.85895 15.4685 12.1727 16.0191 14 14.9641C15.9131 13.8595 16.5686 11.4132 15.4641 9.5C14.4886 7.81038 12.4665 7.10169 10.6895 7.71998L9.146 4.99996ZM13.25 11.5C13.25 12.1904 12.6904 12.75 12 12.75C11.591 12.75 11.228 12.5536 10.9999 12.25H7.9298C7.57875 14.1006 5.95279 15.5 4 15.5C1.79086 15.5 0 13.7091 0 11.5C0 9.40018 1.61801 7.67826 3.67529 7.51299L2.58098 9.44147C1.92792 9.89251 1.5 10.6463 1.5 11.5C1.5 12.8807 2.61929 14 4 14C5.38071 14 6.5 12.8807 6.5 11.5V10.75H7.25H10.9999C11.228 10.4464 11.591 10.25 12 10.25C12.6904 10.25 13.25 10.8096 13.25 11.5Z", fill: "currentColor" }) }));
|
|
7
|
+
};
|
|
8
|
+
const SleepIcon = () => {
|
|
9
|
+
return (_jsx("svg", { "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", style: { color: 'currentColor' }, children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.25 1.25V2.03971C5.87928 2.18571 4.62678 2.72736 3.6089 3.54824L3.03033 2.96967L2.5 2.43934L1.43934 3.5L1.96967 4.03033L2.54824 4.6089C1.57979 5.80976 1 7.33717 1 9C1 12.866 4.13401 16 8 16C11.866 16 15 12.866 15 9C15 7.33717 14.4202 5.80976 13.4518 4.6089L14.0303 4.03033L14.5607 3.5L13.5 2.43934L12.9697 2.96967L12.3911 3.54824C11.3732 2.72736 10.1207 2.18571 8.75 2.03971V1.25H9.25H10V-0.25H9.25H8.75H7.25H6.75H6V1.25H6.75H7.25ZM2.5 9C2.5 5.96243 4.96243 3.5 8 3.5C11.0376 3.5 13.5 5.96243 13.5 9C13.5 12.0376 11.0376 14.5 8 14.5C4.96243 14.5 2.5 12.0376 2.5 9ZM8.75 6.75V6H7.25V6.75V9V9.75H8.75V9V6.75Z", fill: "currentColor" }) }));
|
|
10
|
+
};
|
|
11
|
+
const StepForwardIcon = () => {
|
|
12
|
+
return (_jsx("svg", { "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", style: { color: 'currentColor' }, children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.21969 12.5303L4.75002 13.0607L5.81068 12L5.28035 11.4697L1.81068 7.99999L5.28035 4.53032L5.81068 3.99999L4.75002 2.93933L4.21969 3.46966L0.39647 7.29289C0.00594562 7.68341 0.00594562 8.31658 0.39647 8.7071L4.21969 12.5303ZM11.7804 12.5303L11.25 13.0607L10.1894 12L10.7197 11.4697L14.1894 7.99999L10.7197 4.53032L10.1894 3.99999L11.25 2.93933L11.7804 3.46966L15.6036 7.29289C15.9941 7.68341 15.9941 8.31658 15.6036 8.7071L11.7804 12.5303Z", fill: "currentColor" }) }));
|
|
13
|
+
};
|
|
14
|
+
export { WorkflowIcon, WebhookIcon, SleepIcon, StepForwardIcon };
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy90cmFjZS12aWV3ZXIvaWNvbnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7SUFDeEIsT0FBTyxDQUNMLDZCQUNjLFlBQVksRUFDeEIsTUFBTSxFQUFDLElBQUksRUFDWCxjQUFjLEVBQUMsT0FBTyxFQUN0QixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEVBQ2hDLE9BQU8sRUFBQyxXQUFXLEVBQ25CLEtBQUssRUFBQyxJQUFJLFlBRVYsZUFDRSxDQUFDLEVBQUMsc2tDQUFza0MsRUFDeGtDLElBQUksRUFBQyxjQUFjLEdBQ2IsR0FDSixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUU7SUFDdkIsT0FBTyxDQUNMLDZCQUNjLFlBQVksRUFDeEIsTUFBTSxFQUFDLElBQUksRUFDWCxjQUFjLEVBQUMsT0FBTyxFQUN0QixPQUFPLEVBQUMsV0FBVyxFQUNuQixLQUFLLEVBQUMsSUFBSSxFQUNWLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsWUFFaEMsZUFDRSxRQUFRLEVBQUMsU0FBUyxFQUNsQixRQUFRLEVBQUMsU0FBUyxFQUNsQixDQUFDLEVBQUMsMDZDQUEwNkMsRUFDNTZDLElBQUksRUFBQyxjQUFjLEdBQ2IsR0FDSixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7SUFDckIsT0FBTyxDQUNMLDZCQUNjLFlBQVksRUFDeEIsTUFBTSxFQUFDLElBQUksRUFDWCxjQUFjLEVBQUMsT0FBTyxFQUN0QixPQUFPLEVBQUMsV0FBVyxFQUNuQixLQUFLLEVBQUMsSUFBSSxFQUNWLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsWUFFaEMsZUFDRSxRQUFRLEVBQUMsU0FBUyxFQUNsQixRQUFRLEVBQUMsU0FBUyxFQUNsQixDQUFDLEVBQUMsa21CQUFrbUIsRUFDcG1CLElBQUksRUFBQyxjQUFjLEdBQ2IsR0FDSixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFDM0IsT0FBTyxDQUNMLDZCQUNjLFlBQVksRUFDeEIsTUFBTSxFQUFDLElBQUksRUFDWCxjQUFjLEVBQUMsT0FBTyxFQUN0QixPQUFPLEVBQUMsV0FBVyxFQUNuQixLQUFLLEVBQUMsSUFBSSxFQUNWLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsWUFFaEMsZUFDRSxRQUFRLEVBQUMsU0FBUyxFQUNsQixRQUFRLEVBQUMsU0FBUyxFQUNsQixDQUFDLEVBQUMsMGJBQTBiLEVBQzViLElBQUksRUFBQyxjQUFjLEdBQ2IsR0FDSixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBXb3JrZmxvd0ljb24gPSAoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgZGF0YS10ZXN0aWQ9XCJnZWlzdC1pY29uXCJcbiAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgc3R5bGU9e3sgY29sb3I6ICdjdXJyZW50Q29sb3InIH19XG4gICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgIHdpZHRoPVwiMTZcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNNS43NSA3TDYuNDIwOSA3LjMzNTk0TDQuODUyNTQgMTAuNDcxN0M1LjM4Nzg5IDEwLjc3MSA1Ljc1IDExLjM0MzEgNS43NSAxMlYxNEM1Ljc1IDE0Ljk2NjUgNC45NjY0OCAxNS43NSA0IDE1Ljc1SDJDMS4wMzM1MiAxNS43NSAwLjI1IDE0Ljk2NjUgMC4yNSAxNFYxMkMwLjI1IDExLjAzMzUgMS4wMzM1MiAxMC4yNSAyIDEwLjI1SDMuMjg3MTFMNS4wNzkxIDYuNjY1MDRMNS43NSA3Wk0xNCAxMC4yNUMxNC45NjY1IDEwLjI1IDE1Ljc1IDExLjAzMzUgMTUuNzUgMTJWMTRDMTUuNzUgMTQuOTY2NSAxNC45NjY1IDE1Ljc1IDE0IDE1Ljc1SDEyQzExLjExODUgMTUuNzUgMTAuMzkwOSAxNS4wOTggMTAuMjY5NSAxNC4yNUg3VjEyLjc1SDEwLjI1VjEyQzEwLjI1IDExLjAzMzUgMTEuMDMzNSAxMC4yNSAxMiAxMC4yNUgxNFpNMiAxMS43NUMxLjg2MTkyIDExLjc1IDEuNzUgMTEuODYxOSAxLjc1IDEyVjE0QzEuNzUgMTQuMTM4MSAxLjg2MTkyIDE0LjI1IDIgMTQuMjVINEM0LjEzODA4IDE0LjI1IDQuMjUgMTQuMTM4MSA0LjI1IDE0VjEyQzQuMjUgMTEuODYxOSA0LjEzODA4IDExLjc1IDQgMTEuNzVIMlpNMTIgMTEuNzVDMTEuODYxOSAxMS43NSAxMS43NSAxMS44NjE5IDExLjc1IDEyVjE0QzExLjc1IDE0LjEzODEgMTEuODYxOSAxNC4yNSAxMiAxNC4yNUgxNEMxNC4xMzgxIDE0LjI1IDE0LjI1IDE0LjEzODEgMTQuMjUgMTRWMTJDMTQuMjUgMTEuODYxOSAxNC4xMzgxIDExLjc1IDE0IDExLjc1SDEyWk05IDAuMjVDOS45NjY0OSAwLjI1IDEwLjc1IDEuMDMzNTEgMTAuNzUgMlY0QzEwLjc1IDQuNDQ2NDIgMTAuNTgwOCA0Ljg1MTk3IDEwLjMwNTcgNS4xNjExM0wxMi4yMDQxIDguNjQxNkwxMC44ODc3IDkuMzYwMzVMOC45MTg5NSA1Ljc1SDdDNi4wMzM1MSA1Ljc1IDUuMjUgNC45NjY0OSA1LjI1IDRWMkM1LjI1IDEuMDMzNTEgNi4wMzM1MSAwLjI1IDcgMC4yNUg5Wk03IDEuNzVDNi44NjE5MyAxLjc1IDYuNzUgMS44NjE5MyA2Ljc1IDJWNEM2Ljc1IDQuMTM4MDcgNi44NjE5MyA0LjI1IDcgNC4yNUg5QzkuMTM4MDcgNC4yNSA5LjI1IDQuMTM4MDcgOS4yNSA0VjJDOS4yNSAxLjg2MTkzIDkuMTM4MDcgMS43NSA5IDEuNzVIN1pcIlxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgID48L3BhdGg+XG4gICAgPC9zdmc+XG4gICk7XG59O1xuXG5jb25zdCBXZWJob29rSWNvbiA9ICgpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICBkYXRhLXRlc3RpZD1cImdlaXN0LWljb25cIlxuICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgc3R5bGU9e3sgY29sb3I6ICdjdXJyZW50Q29sb3InIH19XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk01LjgzNDkgMy4yNDk5NEM1LjE0NDU0IDQuNDQ1NjcgNS41NTQyMyA1Ljk3NDY0IDYuNzQ5OTYgNi42NjVMNy4zOTQ2NSA3LjAzNzIxTDcuMDI3MjYgNy42ODQ2Nkw1LjE0NTk5IDExQzUuMjEyODkgMTEuMTUzMSA1LjI1IDExLjMyMjIgNS4yNSAxMS41QzUuMjUgMTIuMTkwNCA0LjY5MDM2IDEyLjc1IDQgMTIuNzVDMy4zMDk2NCAxMi43NSAyLjc1IDEyLjE5MDQgMi43NSAxMS41QzIuNzUgMTAuODYzNCAzLjIyNTg0IDEwLjMzOCAzLjg0MTIzIDEwLjI2TDUuMzg5NDQgNy41MzE2QzMuOTU5MDkgNi4zMDI3NCAzLjU1ODU3IDQuMTkyNjQgNC41MzU4NiAyLjQ5OTk0QzUuNjQwNDMgMC41ODY3NjUgOC4wODY3OSAtMC4wNjg3MzU3IDkuOTk5OTYgMS4wMzU4M0MxMS44MzYgMi4wOTU4NCAxMi41MTM3IDQuMzkxNTYgMTEuNTg5MiA2LjI2NTkxTDEwLjQ5NDkgNC4zMzc1NEMxMC40NDE4IDMuNTMyNzQgMTAuMDAwOSAyLjc2ODQzIDkuMjQ5OTYgMi4zMzQ4N0M4LjA1NDIzIDEuNjQ0NTIgNi41MjUyNSAyLjA1NDIgNS44MzQ5IDMuMjQ5OTRaTTkuMTQ2IDQuOTk5OTZDOS4yMTI4OSA0Ljg0Njg2IDkuMjUgNC42Nzc3NiA5LjI1IDQuNUM5LjI1IDMuODA5NjQgOC42OTAzNiAzLjI1IDggMy4yNUM3LjMwOTY0IDMuMjUgNi43NSAzLjgwOTY0IDYuNzUgNC41QzYuNzUgNS4xMzY1OSA3LjIyNTg2IDUuNjYyMDMgNy44NDEyNyA1Ljc0MDAyTDkuNzIyNjYgOS4wNTU1NkwxMC4wOTU2IDkuNzEyNzRMMTAuNzUgOS4zMzQ5M0MxMS45NDU3IDguNjQ0NTggMTMuNDc0NyA5LjA1NDI3IDE0LjE2NSAxMC4yNUMxNC44NTU0IDExLjQ0NTcgMTQuNDQ1NyAxMi45NzQ3IDEzLjI1IDEzLjY2NTFDMTIuNTA0NyAxNC4wOTUzIDExLjYzIDE0LjA5ODMgMTAuOTA5NiAxMy43NUg4LjY5MjUyQzkuODU4OTUgMTUuNDY4NSAxMi4xNzI3IDE2LjAxOTEgMTQgMTQuOTY0MUMxNS45MTMxIDEzLjg1OTUgMTYuNTY4NiAxMS40MTMyIDE1LjQ2NDEgOS41QzE0LjQ4ODYgNy44MTAzOCAxMi40NjY1IDcuMTAxNjkgMTAuNjg5NSA3LjcxOTk4TDkuMTQ2IDQuOTk5OTZaTTEzLjI1IDExLjVDMTMuMjUgMTIuMTkwNCAxMi42OTA0IDEyLjc1IDEyIDEyLjc1QzExLjU5MSAxMi43NSAxMS4yMjggMTIuNTUzNiAxMC45OTk5IDEyLjI1SDcuOTI5OEM3LjU3ODc1IDE0LjEwMDYgNS45NTI3OSAxNS41IDQgMTUuNUMxLjc5MDg2IDE1LjUgMCAxMy43MDkxIDAgMTEuNUMwIDkuNDAwMTggMS42MTgwMSA3LjY3ODI2IDMuNjc1MjkgNy41MTI5OUwyLjU4MDk4IDkuNDQxNDdDMS45Mjc5MiA5Ljg5MjUxIDEuNSAxMC42NDYzIDEuNSAxMS41QzEuNSAxMi44ODA3IDIuNjE5MjkgMTQgNCAxNEM1LjM4MDcxIDE0IDYuNSAxMi44ODA3IDYuNSAxMS41VjEwLjc1SDcuMjVIMTAuOTk5OUMxMS4yMjggMTAuNDQ2NCAxMS41OTEgMTAuMjUgMTIgMTAuMjVDMTIuNjkwNCAxMC4yNSAxMy4yNSAxMC44MDk2IDEzLjI1IDExLjVaXCJcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICA+PC9wYXRoPlxuICAgIDwvc3ZnPlxuICApO1xufTtcblxuY29uc3QgU2xlZXBJY29uID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIGRhdGEtdGVzdGlkPVwiZ2Vpc3QtaWNvblwiXG4gICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICBzdHlsZT17eyBjb2xvcjogJ2N1cnJlbnRDb2xvcicgfX1cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTcuMjUgMS4yNVYyLjAzOTcxQzUuODc5MjggMi4xODU3MSA0LjYyNjc4IDIuNzI3MzYgMy42MDg5IDMuNTQ4MjRMMy4wMzAzMyAyLjk2OTY3TDIuNSAyLjQzOTM0TDEuNDM5MzQgMy41TDEuOTY5NjcgNC4wMzAzM0wyLjU0ODI0IDQuNjA4OUMxLjU3OTc5IDUuODA5NzYgMSA3LjMzNzE3IDEgOUMxIDEyLjg2NiA0LjEzNDAxIDE2IDggMTZDMTEuODY2IDE2IDE1IDEyLjg2NiAxNSA5QzE1IDcuMzM3MTcgMTQuNDIwMiA1LjgwOTc2IDEzLjQ1MTggNC42MDg5TDE0LjAzMDMgNC4wMzAzM0wxNC41NjA3IDMuNUwxMy41IDIuNDM5MzRMMTIuOTY5NyAyLjk2OTY3TDEyLjM5MTEgMy41NDgyNEMxMS4zNzMyIDIuNzI3MzYgMTAuMTIwNyAyLjE4NTcxIDguNzUgMi4wMzk3MVYxLjI1SDkuMjVIMTBWLTAuMjVIOS4yNUg4Ljc1SDcuMjVINi43NUg2VjEuMjVINi43NUg3LjI1Wk0yLjUgOUMyLjUgNS45NjI0MyA0Ljk2MjQzIDMuNSA4IDMuNUMxMS4wMzc2IDMuNSAxMy41IDUuOTYyNDMgMTMuNSA5QzEzLjUgMTIuMDM3NiAxMS4wMzc2IDE0LjUgOCAxNC41QzQuOTYyNDMgMTQuNSAyLjUgMTIuMDM3NiAyLjUgOVpNOC43NSA2Ljc1VjZINy4yNVY2Ljc1VjlWOS43NUg4Ljc1VjlWNi43NVpcIlxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgID48L3BhdGg+XG4gICAgPC9zdmc+XG4gICk7XG59O1xuXG5jb25zdCBTdGVwRm9yd2FyZEljb24gPSAoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgZGF0YS10ZXN0aWQ9XCJnZWlzdC1pY29uXCJcbiAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICB3aWR0aD1cIjE2XCJcbiAgICAgIHN0eWxlPXt7IGNvbG9yOiAnY3VycmVudENvbG9yJyB9fVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGxSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXBSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNNC4yMTk2OSAxMi41MzAzTDQuNzUwMDIgMTMuMDYwN0w1LjgxMDY4IDEyTDUuMjgwMzUgMTEuNDY5N0wxLjgxMDY4IDcuOTk5OTlMNS4yODAzNSA0LjUzMDMyTDUuODEwNjggMy45OTk5OUw0Ljc1MDAyIDIuOTM5MzNMNC4yMTk2OSAzLjQ2OTY2TDAuMzk2NDcgNy4yOTI4OUMwLjAwNTk0NTYyIDcuNjgzNDEgMC4wMDU5NDU2MiA4LjMxNjU4IDAuMzk2NDcgOC43MDcxTDQuMjE5NjkgMTIuNTMwM1pNMTEuNzgwNCAxMi41MzAzTDExLjI1IDEzLjA2MDdMMTAuMTg5NCAxMkwxMC43MTk3IDExLjQ2OTdMMTQuMTg5NCA3Ljk5OTk5TDEwLjcxOTcgNC41MzAzMkwxMC4xODk0IDMuOTk5OTlMMTEuMjUgMi45MzkzM0wxMS43ODA0IDMuNDY5NjZMMTUuNjAzNiA3LjI5Mjg5QzE1Ljk5NDEgNy42ODM0MSAxNS45OTQxIDguMzE2NTggMTUuNjAzNiA4LjcwNzFMMTEuNzgwNCAxMi41MzAzWlwiXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgPjwvcGF0aD5cbiAgICA8L3N2Zz5cbiAgKTtcbn07XG5cbmV4cG9ydCB7IFdvcmtmbG93SWNvbiwgV2ViaG9va0ljb24sIFNsZWVwSWNvbiwgU3RlcEZvcndhcmRJY29uIH07XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Span } from './types';
|
|
2
|
+
export interface SpanAttributeFilter {
|
|
3
|
+
key: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ParsedSpanSearchQuery {
|
|
7
|
+
text: string;
|
|
8
|
+
attributes: SpanAttributeFilter[];
|
|
9
|
+
}
|
|
10
|
+
export interface SpanSearchResult {
|
|
11
|
+
isActive: boolean;
|
|
12
|
+
matchedSpanIds: Set<string>;
|
|
13
|
+
matchingSpans: Span[];
|
|
14
|
+
query: ParsedSpanSearchQuery;
|
|
15
|
+
}
|
|
16
|
+
export declare function parseSpanSearchQuery(rawQuery: string): ParsedSpanSearchQuery;
|
|
17
|
+
export declare function isSpanDimmedBySearch(spanId: string, result: SpanSearchResult): boolean;
|
|
18
|
+
export declare function searchSpans(spans: Span[], rawQuery: string): SpanSearchResult;
|
|
19
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/components/trace-viewer/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAIpC,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,aAAa,EAAE,IAAI,EAAE,CAAC;IACtB,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAkB5E;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAET;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAa7E"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
const ATTR_FILTER_REGEX = /(?:^|\s)(?<pair>(?<key>[\w.]+):(?<value>\S*))/g;
|
|
2
|
+
export function parseSpanSearchQuery(rawQuery) {
|
|
3
|
+
const attributes = [];
|
|
4
|
+
for (const match of rawQuery.matchAll(ATTR_FILTER_REGEX)) {
|
|
5
|
+
const key = match.groups?.key?.trim();
|
|
6
|
+
if (!key)
|
|
7
|
+
continue;
|
|
8
|
+
attributes.push({
|
|
9
|
+
key,
|
|
10
|
+
value: (match.groups?.value ?? '').toLocaleLowerCase(),
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
const text = rawQuery
|
|
14
|
+
.replace(ATTR_FILTER_REGEX, ' ')
|
|
15
|
+
.replace(/\s{2,}/g, ' ')
|
|
16
|
+
.trim()
|
|
17
|
+
.toLocaleLowerCase();
|
|
18
|
+
return { text, attributes };
|
|
19
|
+
}
|
|
20
|
+
export function isSpanDimmedBySearch(spanId, result) {
|
|
21
|
+
return result.isActive && !result.matchedSpanIds.has(spanId);
|
|
22
|
+
}
|
|
23
|
+
export function searchSpans(spans, rawQuery) {
|
|
24
|
+
const query = parseSpanSearchQuery(rawQuery);
|
|
25
|
+
const isActive = Boolean(query.text || query.attributes.length);
|
|
26
|
+
const matchingSpans = isActive
|
|
27
|
+
? spans.filter((span) => spanMatchesQuery(span, query))
|
|
28
|
+
: spans;
|
|
29
|
+
return {
|
|
30
|
+
isActive,
|
|
31
|
+
matchedSpanIds: new Set(matchingSpans.map((span) => span.spanId)),
|
|
32
|
+
matchingSpans,
|
|
33
|
+
query,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function spanMatchesQuery(span, query) {
|
|
37
|
+
if (query.text && !spanMatchesText(span, query.text)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return query.attributes.every(({ key, value }) => spanMatchesAttribute(span, key, value));
|
|
41
|
+
}
|
|
42
|
+
function spanMatchesText(span, text) {
|
|
43
|
+
return [
|
|
44
|
+
span.name,
|
|
45
|
+
span.spanId,
|
|
46
|
+
span.resource,
|
|
47
|
+
span.library.name,
|
|
48
|
+
span.library.version,
|
|
49
|
+
]
|
|
50
|
+
.filter((value) => typeof value === 'string')
|
|
51
|
+
.some((value) => value.toLocaleLowerCase().includes(text));
|
|
52
|
+
}
|
|
53
|
+
function spanMatchesAttribute(span, key, expectedValue) {
|
|
54
|
+
const candidates = getSearchValues(span, key);
|
|
55
|
+
if (!candidates.length)
|
|
56
|
+
return false;
|
|
57
|
+
if (!expectedValue) {
|
|
58
|
+
return candidates.some((value) => value != null);
|
|
59
|
+
}
|
|
60
|
+
return candidates.some((value) => valueToSearchString(value).toLocaleLowerCase().includes(expectedValue));
|
|
61
|
+
}
|
|
62
|
+
function getSearchValues(span, key) {
|
|
63
|
+
const candidates = [];
|
|
64
|
+
const normalizedKey = key.toLocaleLowerCase();
|
|
65
|
+
switch (normalizedKey) {
|
|
66
|
+
case 'id':
|
|
67
|
+
case 'spanid':
|
|
68
|
+
case 'span.id':
|
|
69
|
+
candidates.push(span.spanId);
|
|
70
|
+
break;
|
|
71
|
+
case 'name':
|
|
72
|
+
candidates.push(span.name);
|
|
73
|
+
break;
|
|
74
|
+
case 'resource':
|
|
75
|
+
candidates.push(span.resource);
|
|
76
|
+
break;
|
|
77
|
+
case 'library':
|
|
78
|
+
case 'library.name':
|
|
79
|
+
candidates.push(span.library.name);
|
|
80
|
+
break;
|
|
81
|
+
case 'library.version':
|
|
82
|
+
candidates.push(span.library.version);
|
|
83
|
+
break;
|
|
84
|
+
case 'status':
|
|
85
|
+
case 'status.code':
|
|
86
|
+
candidates.push(span.status.code);
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
candidates.push(getOwnProperty(span.attributes, key));
|
|
90
|
+
candidates.push(getPathValue(span.attributes, key));
|
|
91
|
+
if (!normalizedKey.startsWith('data.')) {
|
|
92
|
+
candidates.push(getPathValue(span.attributes.data, key));
|
|
93
|
+
}
|
|
94
|
+
return candidates.filter((value) => value !== undefined);
|
|
95
|
+
}
|
|
96
|
+
function getOwnProperty(source, key) {
|
|
97
|
+
if (!source || typeof source !== 'object')
|
|
98
|
+
return undefined;
|
|
99
|
+
if (!Object.hasOwn(source, key))
|
|
100
|
+
return undefined;
|
|
101
|
+
return source[key];
|
|
102
|
+
}
|
|
103
|
+
function getPathValue(source, path) {
|
|
104
|
+
if (!source || typeof source !== 'object')
|
|
105
|
+
return undefined;
|
|
106
|
+
let current = source;
|
|
107
|
+
for (const segment of path.split('.')) {
|
|
108
|
+
if (!segment)
|
|
109
|
+
return undefined;
|
|
110
|
+
current = getOwnProperty(current, segment);
|
|
111
|
+
if (current === undefined)
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
return current;
|
|
115
|
+
}
|
|
116
|
+
function valueToSearchString(value) {
|
|
117
|
+
if (value instanceof Date)
|
|
118
|
+
return value.toISOString();
|
|
119
|
+
if (typeof value === 'string')
|
|
120
|
+
return value;
|
|
121
|
+
if (value == null ||
|
|
122
|
+
typeof value === 'number' ||
|
|
123
|
+
typeof value === 'boolean' ||
|
|
124
|
+
typeof value === 'bigint') {
|
|
125
|
+
return String(value);
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
return JSON.stringify(value);
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return String(value);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJhY2Utdmlld2VyL3NlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLGlCQUFpQixHQUFHLGdEQUFnRCxDQUFDO0FBbUIzRSxNQUFNLFVBQVUsb0JBQW9CLENBQUMsUUFBZ0I7SUFDbkQsTUFBTSxVQUFVLEdBQTBCLEVBQUUsQ0FBQztJQUM3QyxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1FBQ3pELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxHQUFHO1lBQUUsU0FBUztRQUNuQixVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ2QsR0FBRztZQUNILEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixFQUFFO1NBQ3ZELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxRQUFRO1NBQ2xCLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUM7U0FDL0IsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7U0FDdkIsSUFBSSxFQUFFO1NBQ04saUJBQWlCLEVBQUUsQ0FBQztJQUV2QixPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQzlCLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLE1BQWMsRUFDZCxNQUF3QjtJQUV4QixPQUFPLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFhLEVBQUUsUUFB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QUMvQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNwYW4gfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgQVRUUl9GSUxURVJfUkVHRVggPSAvKD86XnxcXHMpKD88cGFpcj4oPzxrZXk+W1xcdy5dKyk6KD88dmFsdWU+XFxTKikpL2c7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BhbkF0dHJpYnV0ZUZpbHRlciB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZFNwYW5TZWFyY2hRdWVyeSB7XG4gIHRleHQ6IHN0cmluZztcbiAgYXR0cmlidXRlczogU3BhbkF0dHJpYnV0ZUZpbHRlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwYW5TZWFyY2hSZXN1bHQge1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgbWF0Y2hlZFNwYW5JZHM6IFNldDxzdHJpbmc+O1xuICBtYXRjaGluZ1NwYW5zOiBTcGFuW107XG4gIHF1ZXJ5OiBQYXJzZWRTcGFuU2VhcmNoUXVlcnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNwYW5TZWFyY2hRdWVyeShyYXdRdWVyeTogc3RyaW5nKTogUGFyc2VkU3BhblNlYXJjaFF1ZXJ5IHtcbiAgY29uc3QgYXR0cmlidXRlczogU3BhbkF0dHJpYnV0ZUZpbHRlcltdID0gW107XG4gIGZvciAoY29uc3QgbWF0Y2ggb2YgcmF3UXVlcnkubWF0Y2hBbGwoQVRUUl9GSUxURVJfUkVHRVgpKSB7XG4gICAgY29uc3Qga2V5ID0gbWF0Y2guZ3JvdXBzPy5rZXk/LnRyaW0oKTtcbiAgICBpZiAoIWtleSkgY29udGludWU7XG4gICAgYXR0cmlidXRlcy5wdXNoKHtcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlOiAobWF0Y2guZ3JvdXBzPy52YWx1ZSA/PyAnJykudG9Mb2NhbGVMb3dlckNhc2UoKSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IHRleHQgPSByYXdRdWVyeVxuICAgIC5yZXBsYWNlKEFUVFJfRklMVEVSX1JFR0VYLCAnICcpXG4gICAgLnJlcGxhY2UoL1xcc3syLH0vZywgJyAnKVxuICAgIC50cmltKClcbiAgICAudG9Mb2NhbGVMb3dlckNhc2UoKTtcblxuICByZXR1cm4geyB0ZXh0LCBhdHRyaWJ1dGVzIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NwYW5EaW1tZWRCeVNlYXJjaChcbiAgc3BhbklkOiBzdHJpbmcsXG4gIHJlc3VsdDogU3BhblNlYXJjaFJlc3VsdFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiByZXN1bHQuaXNBY3RpdmUgJiYgIXJlc3VsdC5tYXRjaGVkU3Bhbklkcy5oYXMoc3BhbklkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaFNwYW5zKHNwYW5zOiBTcGFuW10sIHJhd1F1ZXJ5OiBzdHJpbmcpOiBTcGFuU2VhcmNoUmVzdWx0IHtcbiAgY29uc3QgcXVlcnkgPSBwYXJzZVNwYW5TZWFyY2hRdWVyeShyYXdRdWVyeSk7XG4gIGNvbnN0IGlzQWN0aXZlID0gQm9vbGVhbihxdWVyeS50ZXh0IHx8IHF1ZXJ5LmF0dHJpYnV0ZXMubGVuZ3RoKTtcbiAgY29uc3QgbWF0Y2hpbmdTcGFucyA9IGlzQWN0aXZlXG4gICAgPyBzcGFucy5maWx0ZXIoKHNwYW4pID0+IHNwYW5NYXRjaGVzUXVlcnkoc3BhbiwgcXVlcnkpKVxuICAgIDogc3BhbnM7XG5cbiAgcmV0dXJuIHtcbiAgICBpc0FjdGl2ZSxcbiAgICBtYXRjaGVkU3BhbklkczogbmV3IFNldChtYXRjaGluZ1NwYW5zLm1hcCgoc3BhbikgPT4gc3Bhbi5zcGFuSWQpKSxcbiAgICBtYXRjaGluZ1NwYW5zLFxuICAgIHF1ZXJ5LFxuICB9O1xufVxuXG5mdW5jdGlvbiBzcGFuTWF0Y2hlc1F1ZXJ5KHNwYW46IFNwYW4sIHF1ZXJ5OiBQYXJzZWRTcGFuU2VhcmNoUXVlcnkpOiBib29sZWFuIHtcbiAgaWYgKHF1ZXJ5LnRleHQgJiYgIXNwYW5NYXRjaGVzVGV4dChzcGFuLCBxdWVyeS50ZXh0KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBxdWVyeS5hdHRyaWJ1dGVzLmV2ZXJ5KCh7IGtleSwgdmFsdWUgfSkgPT5cbiAgICBzcGFuTWF0Y2hlc0F0dHJpYnV0ZShzcGFuLCBrZXksIHZhbHVlKVxuICApO1xufVxuXG5mdW5jdGlvbiBzcGFuTWF0Y2hlc1RleHQoc3BhbjogU3BhbiwgdGV4dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBbXG4gICAgc3Bhbi5uYW1lLFxuICAgIHNwYW4uc3BhbklkLFxuICAgIHNwYW4ucmVzb3VyY2UsXG4gICAgc3Bhbi5saWJyYXJ5Lm5hbWUsXG4gICAgc3Bhbi5saWJyYXJ5LnZlcnNpb24sXG4gIF1cbiAgICAuZmlsdGVyKCh2YWx1ZSk6IHZhbHVlIGlzIHN0cmluZyA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKVxuICAgIC5zb21lKCh2YWx1ZSkgPT4gdmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXh0KSk7XG59XG5cbmZ1bmN0aW9uIHNwYW5NYXRjaGVzQXR0cmlidXRlKFxuICBzcGFuOiBTcGFuLFxuICBrZXk6IHN0cmluZyxcbiAgZXhwZWN0ZWRWYWx1ZTogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgY29uc3QgY2FuZGlkYXRlcyA9IGdldFNlYXJjaFZhbHVlcyhzcGFuLCBrZXkpO1xuICBpZiAoIWNhbmRpZGF0ZXMubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKCFleHBlY3RlZFZhbHVlKSB7XG4gICAgcmV0dXJuIGNhbmRpZGF0ZXMuc29tZSgodmFsdWUpID0+IHZhbHVlICE9IG51bGwpO1xuICB9XG5cbiAgcmV0dXJuIGNhbmRpZGF0ZXMuc29tZSgodmFsdWUpID0+XG4gICAgdmFsdWVUb1NlYXJjaFN0cmluZyh2YWx1ZSkudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhleHBlY3RlZFZhbHVlKVxuICApO1xufVxuXG5mdW5jdGlvbiBnZXRTZWFyY2hWYWx1ZXMoc3BhbjogU3Bhbiwga2V5OiBzdHJpbmcpOiB1bmtub3duW10ge1xuICBjb25zdCBjYW5kaWRhdGVzOiB1bmtub3duW10gPSBbXTtcbiAgY29uc3Qgbm9ybWFsaXplZEtleSA9IGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuXG4gIHN3aXRjaCAobm9ybWFsaXplZEtleSkge1xuICAgIGNhc2UgJ2lkJzpcbiAgICBjYXNlICdzcGFuaWQnOlxuICAgIGNhc2UgJ3NwYW4uaWQnOlxuICAgICAgY2FuZGlkYXRlcy5wdXNoKHNwYW4uc3BhbklkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ25hbWUnOlxuICAgICAgY2FuZGlkYXRlcy5wdXNoKHNwYW4ubmFtZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdyZXNvdXJjZSc6XG4gICAgICBjYW5kaWRhdGVzLnB1c2goc3Bhbi5yZXNvdXJjZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsaWJyYXJ5JzpcbiAgICBjYXNlICdsaWJyYXJ5Lm5hbWUnOlxuICAgICAgY2FuZGlkYXRlcy5wdXNoKHNwYW4ubGlicmFyeS5uYW1lKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xpYnJhcnkudmVyc2lvbic6XG4gICAgICBjYW5kaWRhdGVzLnB1c2goc3Bhbi5saWJyYXJ5LnZlcnNpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RhdHVzJzpcbiAgICBjYXNlICdzdGF0dXMuY29kZSc6XG4gICAgICBjYW5kaWRhdGVzLnB1c2goc3Bhbi5zdGF0dXMuY29kZSk7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIGNhbmRpZGF0ZXMucHVzaChnZXRPd25Qcm9wZXJ0eShzcGFuLmF0dHJpYnV0ZXMsIGtleSkpO1xuICBjYW5kaWRhdGVzLnB1c2goZ2V0UGF0aFZhbHVlKHNwYW4uYXR0cmlidXRlcywga2V5KSk7XG5cbiAgaWYgKCFub3JtYWxpemVkS2V5LnN0YXJ0c1dpdGgoJ2RhdGEuJykpIHtcbiAgICBjYW5kaWRhdGVzLnB1c2goZ2V0UGF0aFZhbHVlKHNwYW4uYXR0cmlidXRlcy5kYXRhLCBrZXkpKTtcbiAgfVxuXG4gIHJldHVybiBjYW5kaWRhdGVzLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpO1xufVxuXG5mdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eShzb3VyY2U6IHVua25vd24sIGtleTogc3RyaW5nKTogdW5rbm93biB7XG4gIGlmICghc291cmNlIHx8IHR5cGVvZiBzb3VyY2UgIT09ICdvYmplY3QnKSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAoIU9iamVjdC5oYXNPd24oc291cmNlLCBrZXkpKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gKHNvdXJjZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilba2V5XTtcbn1cblxuZnVuY3Rpb24gZ2V0UGF0aFZhbHVlKHNvdXJjZTogdW5rbm93biwgcGF0aDogc3RyaW5nKTogdW5rbm93biB7XG4gIGlmICghc291cmNlIHx8IHR5cGVvZiBzb3VyY2UgIT09ICdvYmplY3QnKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGxldCBjdXJyZW50OiB1bmtub3duID0gc291cmNlO1xuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcGF0aC5zcGxpdCgnLicpKSB7XG4gICAgaWYgKCFzZWdtZW50KSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGN1cnJlbnQgPSBnZXRPd25Qcm9wZXJ0eShjdXJyZW50LCBzZWdtZW50KTtcbiAgICBpZiAoY3VycmVudCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGN1cnJlbnQ7XG59XG5cbmZ1bmN0aW9uIHZhbHVlVG9TZWFyY2hTdHJpbmcodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gdmFsdWUudG9JU09TdHJpbmcoKTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHJldHVybiB2YWx1ZTtcbiAgaWYgKFxuICAgIHZhbHVlID09IG51bGwgfHxcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8XG4gICAgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHxcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnXG4gICkge1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxufVxuIl19
|