@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
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
type DetailKeyValueRowProps = {
|
|
3
|
+
label: string;
|
|
4
|
+
value?: ReactNode;
|
|
5
|
+
copyText?: string;
|
|
6
|
+
href?: string;
|
|
7
|
+
removed?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare function DetailKeyValueRow(props: DetailKeyValueRowProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function DetailMonoKeyValueRow(props: DetailKeyValueRowProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
/**
|
|
12
|
+
* Sort attribute keys for display: user keys first (alphabetical), then
|
|
13
|
+
* reserved `$`-prefixed keys (alphabetical), so framework metadata doesn't
|
|
14
|
+
* crowd out user-set attributes.
|
|
15
|
+
*/
|
|
16
|
+
export declare function sortAttributeKeys(keys: string[]): string[];
|
|
17
|
+
/**
|
|
18
|
+
* Collapsible section showing a run's materialized attributes as key-value
|
|
19
|
+
* rows. Reserved (`$`-prefixed) keys are sorted after user keys.
|
|
20
|
+
*/
|
|
21
|
+
export declare function RunAttributesCard({ attributes, }: {
|
|
22
|
+
attributes: Record<string, string>;
|
|
23
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
24
|
+
/**
|
|
25
|
+
* Collapsible section showing hook (or other resource) metadata as key-value
|
|
26
|
+
* rows, matching the Attributes section styling.
|
|
27
|
+
*/
|
|
28
|
+
export declare function RunMetadataCard({ metadata }: {
|
|
29
|
+
metadata: unknown;
|
|
30
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
31
|
+
/**
|
|
32
|
+
* Renders the payload of an `attr_set` event: the list of attribute
|
|
33
|
+
* changes (sets and removals) plus which writer (workflow or step)
|
|
34
|
+
* made them. Falls back to the generic JSON block for unexpected shapes.
|
|
35
|
+
*/
|
|
36
|
+
export declare function AttrSetEventBlock({ data }: {
|
|
37
|
+
data: unknown;
|
|
38
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=attributes-block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attributes-block.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/attributes-block.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA6CvC,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AA2EF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAE9D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,sBAAsB,2CAElE;AAgBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAO1D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,UAAU,GACX,EAAE;IACD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,kDAoBA;AAuBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,kDA+BlE;AAgCD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,2CAgC5D"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { RESERVED_ATTRIBUTE_KEY_PREFIX, } from '@workflow/world';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
5
|
+
import { ArrowUpRight } from 'lucide-react';
|
|
6
|
+
import { cn } from '../../lib/cn';
|
|
7
|
+
import { CopyButton } from '../trace-viewer/components/copy-button';
|
|
8
|
+
import { MiddleTruncate } from '../trace-viewer/components/middle-truncate/middle-truncate';
|
|
9
|
+
import { CollapsibleContent, CollapsibleRoot, CollapsibleTrigger, } from '../ui/collapsible';
|
|
10
|
+
import { CopyableDataBlock } from './copyable-data-block';
|
|
11
|
+
function isReservedAttributeKey(key) {
|
|
12
|
+
return key.startsWith(RESERVED_ATTRIBUTE_KEY_PREFIX);
|
|
13
|
+
}
|
|
14
|
+
const rowValueVariants = cva('min-w-0 flex-1 truncate text-right text-copy-13 text-gray-1000', {
|
|
15
|
+
variants: {
|
|
16
|
+
variant: {
|
|
17
|
+
default: '',
|
|
18
|
+
mono: 'font-mono',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
defaultVariants: {
|
|
22
|
+
variant: 'default',
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
const rowCopyValueVariants = cva('flex min-w-0 flex-1 items-center justify-end gap-1 overflow-hidden text-copy-13 text-gray-1000', {
|
|
26
|
+
variants: {
|
|
27
|
+
variant: {
|
|
28
|
+
default: '',
|
|
29
|
+
mono: 'font-mono',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
defaultVariants: {
|
|
33
|
+
variant: 'default',
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
function DetailKeyValueRowBase({ label, value, copyText, href, removed = false, variant, }) {
|
|
37
|
+
const stringValue = typeof value === 'string' ? value : undefined;
|
|
38
|
+
return (_jsxs("div", { className: "px-1.5 hover:bg-gray-100 flex justify-between gap-3 -mx-1.5 py-0.5 rounded items-center", children: [_jsx("span", { className: "flex min-w-0 items-center gap-1.5 truncate text-label-13 text-gray-900", children: label }), removed ? (_jsx("span", { className: "shrink-0 text-copy-13 italic text-gray-700", children: "removed" })) : copyText ? (_jsxs("div", { className: cn(rowCopyValueVariants({ variant })), title: copyText, children: [href ? (_jsxs("a", { href: href, target: "_blank", rel: "noreferrer", className: cn(rowValueVariants({ variant }), 'flex min-w-0 items-center gap-0.5 hover:underline'), children: [_jsx(MiddleTruncate, { value: copyText, className: "min-w-0 text-right", style: { gridTemplateColumns: 'minmax(0, 1fr)' } }), _jsx(ArrowUpRight, { "aria-hidden": true, className: "h-3 w-3 shrink-0" })] })) : (_jsx(MiddleTruncate, { value: copyText, className: cn(rowValueVariants({ variant, className: 'text-right' })), style: { gridTemplateColumns: 'minmax(0, 1fr)' } })), _jsx(CopyButton, { copyText: copyText, ariaLabel: `Copy ${label}`, className: "shrink-0 -mr-1" })] })) : (_jsx("span", { className: cn(rowValueVariants({ variant })), title: stringValue, children: href ? (_jsx("a", { href: href, target: "_blank", rel: "noreferrer", className: "hover:underline", children: value })) : (value) }))] }));
|
|
39
|
+
}
|
|
40
|
+
export function DetailKeyValueRow(props) {
|
|
41
|
+
return _jsx(DetailKeyValueRowBase, { ...props });
|
|
42
|
+
}
|
|
43
|
+
export function DetailMonoKeyValueRow(props) {
|
|
44
|
+
return _jsx(DetailKeyValueRowBase, { ...props, variant: "mono" });
|
|
45
|
+
}
|
|
46
|
+
function AttributeRow({ attributeKey, value, removed = false, }) {
|
|
47
|
+
return (_jsx(DetailKeyValueRow, { label: attributeKey, value: value, removed: removed }));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Sort attribute keys for display: user keys first (alphabetical), then
|
|
51
|
+
* reserved `$`-prefixed keys (alphabetical), so framework metadata doesn't
|
|
52
|
+
* crowd out user-set attributes.
|
|
53
|
+
*/
|
|
54
|
+
export function sortAttributeKeys(keys) {
|
|
55
|
+
return [...keys].sort((a, b) => {
|
|
56
|
+
const aReserved = isReservedAttributeKey(a);
|
|
57
|
+
const bReserved = isReservedAttributeKey(b);
|
|
58
|
+
if (aReserved !== bReserved)
|
|
59
|
+
return aReserved ? 1 : -1;
|
|
60
|
+
return a.localeCompare(b);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Collapsible section showing a run's materialized attributes as key-value
|
|
65
|
+
* rows. Reserved (`$`-prefixed) keys are sorted after user keys.
|
|
66
|
+
*/
|
|
67
|
+
export function RunAttributesCard({ attributes, }) {
|
|
68
|
+
const keys = sortAttributeKeys(Object.keys(attributes));
|
|
69
|
+
if (keys.length === 0)
|
|
70
|
+
return null;
|
|
71
|
+
return (_jsxs(CollapsibleRoot, { defaultOpen: true, children: [_jsx(CollapsibleTrigger, { children: "Attributes" }), _jsx(CollapsibleContent, { className: "mb-4", children: _jsx("div", { className: "flex flex-col", children: keys.map((key) => (_jsx(AttributeRow, { attributeKey: key, value: attributes[key] }, key))) }) })] }));
|
|
72
|
+
}
|
|
73
|
+
function formatMetadataValue(value) {
|
|
74
|
+
if (value == null) {
|
|
75
|
+
return String(value);
|
|
76
|
+
}
|
|
77
|
+
if (typeof value === 'string') {
|
|
78
|
+
return value;
|
|
79
|
+
}
|
|
80
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
81
|
+
return String(value);
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
return JSON.stringify(value);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return String(value);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function isMetadataRecord(value) {
|
|
91
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Collapsible section showing hook (or other resource) metadata as key-value
|
|
95
|
+
* rows, matching the Attributes section styling.
|
|
96
|
+
*/
|
|
97
|
+
export function RunMetadataCard({ metadata }) {
|
|
98
|
+
if (!isMetadataRecord(metadata)) {
|
|
99
|
+
return (_jsxs(CollapsibleRoot, { defaultOpen: true, children: [_jsx(CollapsibleTrigger, { children: "Metadata" }), _jsx(CollapsibleContent, { className: "mb-4", children: _jsx(CopyableDataBlock, { data: metadata }) })] }));
|
|
100
|
+
}
|
|
101
|
+
const keys = Object.keys(metadata).sort((a, b) => a.localeCompare(b));
|
|
102
|
+
if (keys.length === 0)
|
|
103
|
+
return null;
|
|
104
|
+
return (_jsxs(CollapsibleRoot, { defaultOpen: true, children: [_jsx(CollapsibleTrigger, { children: "Metadata" }), _jsx(CollapsibleContent, { className: "mb-4", children: _jsx("div", { className: "flex flex-col", children: keys.map((key) => (_jsx(AttributeRow, { attributeKey: key, value: formatMetadataValue(metadata[key]) }, key))) }) })] }));
|
|
105
|
+
}
|
|
106
|
+
function isAttrSetEventData(data) {
|
|
107
|
+
if (data === null || typeof data !== 'object')
|
|
108
|
+
return false;
|
|
109
|
+
const record = data;
|
|
110
|
+
return (Array.isArray(record.changes) &&
|
|
111
|
+
record.changes.every((c) => c !== null &&
|
|
112
|
+
typeof c === 'object' &&
|
|
113
|
+
typeof c.key === 'string'));
|
|
114
|
+
}
|
|
115
|
+
function describeWriter(writer) {
|
|
116
|
+
if (!writer)
|
|
117
|
+
return null;
|
|
118
|
+
if (writer.type === 'workflow')
|
|
119
|
+
return 'Set by workflow';
|
|
120
|
+
if (writer.type === 'step') {
|
|
121
|
+
return `Set by step ${writer.stepId} (attempt ${writer.attempt})`;
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Renders the payload of an `attr_set` event: the list of attribute
|
|
127
|
+
* changes (sets and removals) plus which writer (workflow or step)
|
|
128
|
+
* made them. Falls back to the generic JSON block for unexpected shapes.
|
|
129
|
+
*/
|
|
130
|
+
export function AttrSetEventBlock({ data }) {
|
|
131
|
+
if (!isAttrSetEventData(data)) {
|
|
132
|
+
return _jsx(CopyableDataBlock, { data: data });
|
|
133
|
+
}
|
|
134
|
+
const writerLabel = describeWriter(data.writer);
|
|
135
|
+
return (_jsxs("div", { className: "flex flex-col px-3 py-1", children: [_jsx("div", { className: "flex flex-col", children: data.changes.map((change, index) => (_jsx(AttributeRow, { attributeKey: change.key, removed: change.value === null, value: change.value ?? undefined }, `${change.key}:${index}`))) }), writerLabel && (_jsx("div", { className: "border-t py-1.5 text-label-12", style: {
|
|
136
|
+
borderColor: 'var(--ds-gray-alpha-400)',
|
|
137
|
+
color: 'var(--ds-gray-700)',
|
|
138
|
+
}, children: writerLabel }))] }));
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy1ibG9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGViYXIvYXR0cmlidXRlcy1ibG9jay50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUViLE9BQU8sRUFFTCw2QkFBNkIsR0FDOUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsR0FBRyxFQUFxQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzVGLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGtCQUFrQixHQUNuQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELFNBQVMsc0JBQXNCLENBQUMsR0FBVztJQUN6QyxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQzFCLGdFQUFnRSxFQUNoRTtJQUNFLFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxFQUFFO1lBQ1gsSUFBSSxFQUFFLFdBQVc7U0FDbEI7S0FDRjtJQUNELGVBQWUsRUFBRTtRQUNmLE9BQU8sRUFBRSxTQUFTO0tBQ25CO0NBQ0YsQ0FDRixDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQzlCLGdHQUFnRyxFQUNoRztJQUNFLFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxFQUFFO1lBQ1gsSUFBSSxFQUFFLFdBQVc7U0FDbEI7S0FDRjtJQUNELGVBQWUsRUFBRTtRQUNmLE9BQU8sRUFBRSxTQUFTO0tBQ25CO0NBQ0YsQ0FDRixDQUFDO0FBVUYsU0FBUyxxQkFBcUIsQ0FBQyxFQUM3QixLQUFLLEVBQ0wsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osT0FBTyxHQUFHLEtBQUssRUFDZixPQUFPLEdBQ3dEO0lBQy9ELE1BQU0sV0FBVyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFbEUsT0FBTyxDQUNMLGVBQUssU0FBUyxFQUFDLHlGQUF5RixhQUN0RyxlQUFNLFNBQVMsRUFBQyx3RUFBd0UsWUFDckYsS0FBSyxHQUNELEVBQ04sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUNULGVBQU0sU0FBUyxFQUFDLDRDQUE0Qyx3QkFFckQsQ0FDUixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQ2IsZUFBSyxTQUFTLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLGFBQ25FLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDTixhQUNFLElBQUksRUFBRSxJQUFJLEVBQ1YsTUFBTSxFQUFDLFFBQVEsRUFDZixHQUFHLEVBQUMsWUFBWSxFQUNoQixTQUFTLEVBQUUsRUFBRSxDQUNYLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFDN0IsbURBQW1ELENBQ3BELGFBRUQsS0FBQyxjQUFjLElBQ2IsS0FBSyxFQUFFLFFBQVEsRUFDZixTQUFTLEVBQUMsb0JBQW9CLEVBQzlCLEtBQUssRUFBRSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLEdBQ2hELEVBQ0YsS0FBQyxZQUFZLHlCQUFhLFNBQVMsRUFBQyxrQkFBa0IsR0FBRyxJQUN2RCxDQUNMLENBQUMsQ0FBQyxDQUFDLENBQ0YsS0FBQyxjQUFjLElBQ2IsS0FBSyxFQUFFLFFBQVEsRUFDZixTQUFTLEVBQUUsRUFBRSxDQUNYLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUN2RCxFQUNELEtBQUssRUFBRSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLEdBQ2hELENBQ0gsRUFDRCxLQUFDLFVBQVUsSUFDVCxRQUFRLEVBQUUsUUFBUSxFQUNsQixTQUFTLEVBQUUsUUFBUSxLQUFLLEVBQUUsRUFDMUIsU0FBUyxFQUFDLGdCQUFnQixHQUMxQixJQUNFLENBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FDRixlQUFNLFNBQVMsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsWUFDbkUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNOLFlBQ0UsSUFBSSxFQUFFLElBQUksRUFDVixNQUFNLEVBQUMsUUFBUSxFQUNmLEdBQUcsRUFBQyxZQUFZLEVBQ2hCLFNBQVMsRUFBQyxpQkFBaUIsWUFFMUIsS0FBSyxHQUNKLENBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FDRixLQUFLLENBQ04sR0FDSSxDQUNSLElBQ0csQ0FDUCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUE2QjtJQUM3RCxPQUFPLEtBQUMscUJBQXFCLE9BQUssS0FBSyxHQUFJLENBQUM7QUFDOUMsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxLQUE2QjtJQUNqRSxPQUFPLEtBQUMscUJBQXFCLE9BQUssS0FBSyxFQUFFLE9BQU8sRUFBQyxNQUFNLEdBQUcsQ0FBQztBQUM3RCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsRUFDcEIsWUFBWSxFQUNaLEtBQUssRUFDTCxPQUFPLEdBQUcsS0FBSyxHQUtoQjtJQUNDLE9BQU8sQ0FDTCxLQUFDLGlCQUFpQixJQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxHQUFJLENBQzNFLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFjO0lBQzlDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM3QixNQUFNLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxNQUFNLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLFNBQVMsS0FBSyxTQUFTO1lBQUUsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxFQUNoQyxVQUFVLEdBR1g7SUFDQyxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDeEQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUVuQyxPQUFPLENBQ0wsTUFBQyxlQUFlLElBQUMsV0FBVyxtQkFDMUIsS0FBQyxrQkFBa0IsNkJBQWdDLEVBQ25ELEtBQUMsa0JBQWtCLElBQUMsU0FBUyxFQUFDLE1BQU0sWUFDbEMsY0FBSyxTQUFTLEVBQUMsZUFBZSxZQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUNqQixLQUFDLFlBQVksSUFDWCxZQUFZLEVBQUUsR0FBRyxFQUVqQixLQUFLLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQURqQixHQUFHLENBRVIsQ0FDSCxDQUFDLEdBQ0UsR0FDYSxJQUNMLENBQ25CLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxLQUFjO0lBQ3pDLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzVELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFjO0lBQ3RDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLEVBQUUsUUFBUSxFQUF5QjtJQUNqRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPLENBQ0wsTUFBQyxlQUFlLElBQUMsV0FBVyxtQkFDMUIsS0FBQyxrQkFBa0IsMkJBQThCLEVBQ2pELEtBQUMsa0JBQWtCLElBQUMsU0FBUyxFQUFDLE1BQU0sWUFDbEMsS0FBQyxpQkFBaUIsSUFBQyxJQUFJLEVBQUUsUUFBUSxHQUFJLEdBQ2xCLElBQ0wsQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRW5DLE9BQU8sQ0FDTCxNQUFDLGVBQWUsSUFBQyxXQUFXLG1CQUMxQixLQUFDLGtCQUFrQiwyQkFBOEIsRUFDakQsS0FBQyxrQkFBa0IsSUFBQyxTQUFTLEVBQUMsTUFBTSxZQUNsQyxjQUFLLFNBQVMsRUFBQyxlQUFlLFlBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQ2pCLEtBQUMsWUFBWSxJQUNYLFlBQVksRUFBRSxHQUFHLEVBRWpCLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFEcEMsR0FBRyxDQUVSLENBQ0gsQ0FBQyxHQUNFLEdBQ2EsSUFDTCxDQUNuQixDQUFDO0FBQ0osQ0FBQztBQVNELFNBQVMsa0JBQWtCLENBQUMsSUFBYTtJQUN2QyxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzVELE1BQU0sTUFBTSxHQUFHLElBQStCLENBQUM7SUFDL0MsT0FBTyxDQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM3QixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FDbEIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLENBQUMsS0FBSyxJQUFJO1lBQ1YsT0FBTyxDQUFDLEtBQUssUUFBUTtZQUNyQixPQUFRLENBQTZCLENBQUMsR0FBRyxLQUFLLFFBQVEsQ0FDekQsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLE1BQWtDO0lBQ3hELElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDekIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVU7UUFBRSxPQUFPLGlCQUFpQixDQUFDO0lBQ3pELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUMzQixPQUFPLGVBQWUsTUFBTSxDQUFDLE1BQU0sYUFBYSxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUM7SUFDcEUsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQXFCO0lBQzNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBQyxpQkFBaUIsSUFBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFaEQsT0FBTyxDQUNMLGVBQUssU0FBUyxFQUFDLHlCQUF5QixhQUN0QyxjQUFLLFNBQVMsRUFBQyxlQUFlLFlBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDbkMsS0FBQyxZQUFZLElBQ1gsWUFBWSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBRXhCLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksRUFDOUIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxJQUYzQixHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksS0FBSyxFQUFFLENBRzdCLENBQ0gsQ0FBQyxHQUNFLEVBQ0wsV0FBVyxJQUFJLENBQ2QsY0FDRSxTQUFTLEVBQUMsK0JBQStCLEVBQ3pDLEtBQUssRUFBRTtvQkFDTCxXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxLQUFLLEVBQUUsb0JBQW9CO2lCQUM1QixZQUVBLFdBQVcsR0FDUixDQUNQLElBQ0csQ0FDUCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHtcbiAgdHlwZSBBdHRyaWJ1dGVDaGFuZ2UsXG4gIFJFU0VSVkVEX0FUVFJJQlVURV9LRVlfUFJFRklYLFxufSBmcm9tICdAd29ya2Zsb3cvd29ybGQnO1xuaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gJ2NsYXNzLXZhcmlhbmNlLWF1dGhvcml0eSc7XG5pbXBvcnQgeyBBcnJvd1VwUmlnaHQgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uL2xpYi9jbic7XG5pbXBvcnQgeyBDb3B5QnV0dG9uIH0gZnJvbSAnLi4vdHJhY2Utdmlld2VyL2NvbXBvbmVudHMvY29weS1idXR0b24nO1xuaW1wb3J0IHsgTWlkZGxlVHJ1bmNhdGUgfSBmcm9tICcuLi90cmFjZS12aWV3ZXIvY29tcG9uZW50cy9taWRkbGUtdHJ1bmNhdGUvbWlkZGxlLXRydW5jYXRlJztcbmltcG9ydCB7XG4gIENvbGxhcHNpYmxlQ29udGVudCxcbiAgQ29sbGFwc2libGVSb290LFxuICBDb2xsYXBzaWJsZVRyaWdnZXIsXG59IGZyb20gJy4uL3VpL2NvbGxhcHNpYmxlJztcbmltcG9ydCB7IENvcHlhYmxlRGF0YUJsb2NrIH0gZnJvbSAnLi9jb3B5YWJsZS1kYXRhLWJsb2NrJztcblxuZnVuY3Rpb24gaXNSZXNlcnZlZEF0dHJpYnV0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4ga2V5LnN0YXJ0c1dpdGgoUkVTRVJWRURfQVRUUklCVVRFX0tFWV9QUkVGSVgpO1xufVxuXG5jb25zdCByb3dWYWx1ZVZhcmlhbnRzID0gY3ZhKFxuICAnbWluLXctMCBmbGV4LTEgdHJ1bmNhdGUgdGV4dC1yaWdodCB0ZXh0LWNvcHktMTMgdGV4dC1ncmF5LTEwMDAnLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6IHtcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIG1vbm86ICdmb250LW1vbm8nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgdmFyaWFudDogJ2RlZmF1bHQnLFxuICAgIH0sXG4gIH1cbik7XG5cbmNvbnN0IHJvd0NvcHlWYWx1ZVZhcmlhbnRzID0gY3ZhKFxuICAnZmxleCBtaW4tdy0wIGZsZXgtMSBpdGVtcy1jZW50ZXIganVzdGlmeS1lbmQgZ2FwLTEgb3ZlcmZsb3ctaGlkZGVuIHRleHQtY29weS0xMyB0ZXh0LWdyYXktMTAwMCcsXG4gIHtcbiAgICB2YXJpYW50czoge1xuICAgICAgdmFyaWFudDoge1xuICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgbW9ubzogJ2ZvbnQtbW9ubycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdFZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiAnZGVmYXVsdCcsXG4gICAgfSxcbiAgfVxuKTtcblxudHlwZSBEZXRhaWxLZXlWYWx1ZVJvd1Byb3BzID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZT86IFJlYWN0Tm9kZTtcbiAgY29weVRleHQ/OiBzdHJpbmc7XG4gIGhyZWY/OiBzdHJpbmc7XG4gIHJlbW92ZWQ/OiBib29sZWFuO1xufTtcblxuZnVuY3Rpb24gRGV0YWlsS2V5VmFsdWVSb3dCYXNlKHtcbiAgbGFiZWwsXG4gIHZhbHVlLFxuICBjb3B5VGV4dCxcbiAgaHJlZixcbiAgcmVtb3ZlZCA9IGZhbHNlLFxuICB2YXJpYW50LFxufTogRGV0YWlsS2V5VmFsdWVSb3dQcm9wcyAmIFZhcmlhbnRQcm9wczx0eXBlb2Ygcm93VmFsdWVWYXJpYW50cz4pIHtcbiAgY29uc3Qgc3RyaW5nVmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInB4LTEuNSBob3ZlcjpiZy1ncmF5LTEwMCBmbGV4IGp1c3RpZnktYmV0d2VlbiBnYXAtMyAtbXgtMS41IHB5LTAuNSByb3VuZGVkIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZmxleCBtaW4tdy0wIGl0ZW1zLWNlbnRlciBnYXAtMS41IHRydW5jYXRlIHRleHQtbGFiZWwtMTMgdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICB7bGFiZWx9XG4gICAgICA8L3NwYW4+XG4gICAgICB7cmVtb3ZlZCA/IChcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic2hyaW5rLTAgdGV4dC1jb3B5LTEzIGl0YWxpYyB0ZXh0LWdyYXktNzAwXCI+XG4gICAgICAgICAgcmVtb3ZlZFxuICAgICAgICA8L3NwYW4+XG4gICAgICApIDogY29weVRleHQgPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbihyb3dDb3B5VmFsdWVWYXJpYW50cyh7IHZhcmlhbnQgfSkpfSB0aXRsZT17Y29weVRleHR9PlxuICAgICAgICAgIHtocmVmID8gKFxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICAgcm93VmFsdWVWYXJpYW50cyh7IHZhcmlhbnQgfSksXG4gICAgICAgICAgICAgICAgJ2ZsZXggbWluLXctMCBpdGVtcy1jZW50ZXIgZ2FwLTAuNSBob3Zlcjp1bmRlcmxpbmUnXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxNaWRkbGVUcnVuY2F0ZVxuICAgICAgICAgICAgICAgIHZhbHVlPXtjb3B5VGV4dH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtaW4tdy0wIHRleHQtcmlnaHRcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdtaW5tYXgoMCwgMWZyKScgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPEFycm93VXBSaWdodCBhcmlhLWhpZGRlbiBjbGFzc05hbWU9XCJoLTMgdy0zIHNocmluay0wXCIgLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPE1pZGRsZVRydW5jYXRlXG4gICAgICAgICAgICAgIHZhbHVlPXtjb3B5VGV4dH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAgICAgICByb3dWYWx1ZVZhcmlhbnRzKHsgdmFyaWFudCwgY2xhc3NOYW1lOiAndGV4dC1yaWdodCcgfSlcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgc3R5bGU9e3sgZ3JpZFRlbXBsYXRlQ29sdW1uczogJ21pbm1heCgwLCAxZnIpJyB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxDb3B5QnV0dG9uXG4gICAgICAgICAgICBjb3B5VGV4dD17Y29weVRleHR9XG4gICAgICAgICAgICBhcmlhTGFiZWw9e2BDb3B5ICR7bGFiZWx9YH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInNocmluay0wIC1tci0xXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiAoXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Y24ocm93VmFsdWVWYXJpYW50cyh7IHZhcmlhbnQgfSkpfSB0aXRsZT17c3RyaW5nVmFsdWV9PlxuICAgICAgICAgIHtocmVmID8gKFxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhvdmVyOnVuZGVybGluZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt2YWx1ZX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICApfVxuICAgICAgICA8L3NwYW4+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGV0YWlsS2V5VmFsdWVSb3cocHJvcHM6IERldGFpbEtleVZhbHVlUm93UHJvcHMpIHtcbiAgcmV0dXJuIDxEZXRhaWxLZXlWYWx1ZVJvd0Jhc2Ugey4uLnByb3BzfSAvPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIERldGFpbE1vbm9LZXlWYWx1ZVJvdyhwcm9wczogRGV0YWlsS2V5VmFsdWVSb3dQcm9wcykge1xuICByZXR1cm4gPERldGFpbEtleVZhbHVlUm93QmFzZSB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJtb25vXCIgLz47XG59XG5cbmZ1bmN0aW9uIEF0dHJpYnV0ZVJvdyh7XG4gIGF0dHJpYnV0ZUtleSxcbiAgdmFsdWUsXG4gIHJlbW92ZWQgPSBmYWxzZSxcbn06IHtcbiAgYXR0cmlidXRlS2V5OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nO1xuICByZW1vdmVkPzogYm9vbGVhbjtcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8RGV0YWlsS2V5VmFsdWVSb3cgbGFiZWw9e2F0dHJpYnV0ZUtleX0gdmFsdWU9e3ZhbHVlfSByZW1vdmVkPXtyZW1vdmVkfSAvPlxuICApO1xufVxuXG4vKipcbiAqIFNvcnQgYXR0cmlidXRlIGtleXMgZm9yIGRpc3BsYXk6IHVzZXIga2V5cyBmaXJzdCAoYWxwaGFiZXRpY2FsKSwgdGhlblxuICogcmVzZXJ2ZWQgYCRgLXByZWZpeGVkIGtleXMgKGFscGhhYmV0aWNhbCksIHNvIGZyYW1ld29yayBtZXRhZGF0YSBkb2Vzbid0XG4gKiBjcm93ZCBvdXQgdXNlci1zZXQgYXR0cmlidXRlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvcnRBdHRyaWJ1dGVLZXlzKGtleXM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICByZXR1cm4gWy4uLmtleXNdLnNvcnQoKGEsIGIpID0+IHtcbiAgICBjb25zdCBhUmVzZXJ2ZWQgPSBpc1Jlc2VydmVkQXR0cmlidXRlS2V5KGEpO1xuICAgIGNvbnN0IGJSZXNlcnZlZCA9IGlzUmVzZXJ2ZWRBdHRyaWJ1dGVLZXkoYik7XG4gICAgaWYgKGFSZXNlcnZlZCAhPT0gYlJlc2VydmVkKSByZXR1cm4gYVJlc2VydmVkID8gMSA6IC0xO1xuICAgIHJldHVybiBhLmxvY2FsZUNvbXBhcmUoYik7XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbGxhcHNpYmxlIHNlY3Rpb24gc2hvd2luZyBhIHJ1bidzIG1hdGVyaWFsaXplZCBhdHRyaWJ1dGVzIGFzIGtleS12YWx1ZVxuICogcm93cy4gUmVzZXJ2ZWQgKGAkYC1wcmVmaXhlZCkga2V5cyBhcmUgc29ydGVkIGFmdGVyIHVzZXIga2V5cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJ1bkF0dHJpYnV0ZXNDYXJkKHtcbiAgYXR0cmlidXRlcyxcbn06IHtcbiAgYXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn0pIHtcbiAgY29uc3Qga2V5cyA9IHNvcnRBdHRyaWJ1dGVLZXlzKE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpKTtcbiAgaWYgKGtleXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxDb2xsYXBzaWJsZVJvb3QgZGVmYXVsdE9wZW4+XG4gICAgICA8Q29sbGFwc2libGVUcmlnZ2VyPkF0dHJpYnV0ZXM8L0NvbGxhcHNpYmxlVHJpZ2dlcj5cbiAgICAgIDxDb2xsYXBzaWJsZUNvbnRlbnQgY2xhc3NOYW1lPVwibWItNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICB7a2V5cy5tYXAoKGtleSkgPT4gKFxuICAgICAgICAgICAgPEF0dHJpYnV0ZVJvd1xuICAgICAgICAgICAgICBhdHRyaWJ1dGVLZXk9e2tleX1cbiAgICAgICAgICAgICAga2V5PXtrZXl9XG4gICAgICAgICAgICAgIHZhbHVlPXthdHRyaWJ1dGVzW2tleV19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvQ29sbGFwc2libGVDb250ZW50PlxuICAgIDwvQ29sbGFwc2libGVSb290PlxuICApO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRNZXRhZGF0YVZhbHVlKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNNZXRhZGF0YVJlY29yZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpO1xufVxuXG4vKipcbiAqIENvbGxhcHNpYmxlIHNlY3Rpb24gc2hvd2luZyBob29rIChvciBvdGhlciByZXNvdXJjZSkgbWV0YWRhdGEgYXMga2V5LXZhbHVlXG4gKiByb3dzLCBtYXRjaGluZyB0aGUgQXR0cmlidXRlcyBzZWN0aW9uIHN0eWxpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBSdW5NZXRhZGF0YUNhcmQoeyBtZXRhZGF0YSB9OiB7IG1ldGFkYXRhOiB1bmtub3duIH0pIHtcbiAgaWYgKCFpc01ldGFkYXRhUmVjb3JkKG1ldGFkYXRhKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8Q29sbGFwc2libGVSb290IGRlZmF1bHRPcGVuPlxuICAgICAgICA8Q29sbGFwc2libGVUcmlnZ2VyPk1ldGFkYXRhPC9Db2xsYXBzaWJsZVRyaWdnZXI+XG4gICAgICAgIDxDb2xsYXBzaWJsZUNvbnRlbnQgY2xhc3NOYW1lPVwibWItNFwiPlxuICAgICAgICAgIDxDb3B5YWJsZURhdGFCbG9jayBkYXRhPXttZXRhZGF0YX0gLz5cbiAgICAgICAgPC9Db2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICA8L0NvbGxhcHNpYmxlUm9vdD5cbiAgICApO1xuICB9XG5cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG1ldGFkYXRhKS5zb3J0KChhLCBiKSA9PiBhLmxvY2FsZUNvbXBhcmUoYikpO1xuICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPENvbGxhcHNpYmxlUm9vdCBkZWZhdWx0T3Blbj5cbiAgICAgIDxDb2xsYXBzaWJsZVRyaWdnZXI+TWV0YWRhdGE8L0NvbGxhcHNpYmxlVHJpZ2dlcj5cbiAgICAgIDxDb2xsYXBzaWJsZUNvbnRlbnQgY2xhc3NOYW1lPVwibWItNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICB7a2V5cy5tYXAoKGtleSkgPT4gKFxuICAgICAgICAgICAgPEF0dHJpYnV0ZVJvd1xuICAgICAgICAgICAgICBhdHRyaWJ1dGVLZXk9e2tleX1cbiAgICAgICAgICAgICAga2V5PXtrZXl9XG4gICAgICAgICAgICAgIHZhbHVlPXtmb3JtYXRNZXRhZGF0YVZhbHVlKG1ldGFkYXRhW2tleV0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0NvbGxhcHNpYmxlQ29udGVudD5cbiAgICA8L0NvbGxhcHNpYmxlUm9vdD5cbiAgKTtcbn1cblxuaW50ZXJmYWNlIEF0dHJTZXRFdmVudERhdGEge1xuICBjaGFuZ2VzOiBBdHRyaWJ1dGVDaGFuZ2VbXTtcbiAgd3JpdGVyPzpcbiAgICB8IHsgdHlwZTogJ3dvcmtmbG93JyB9XG4gICAgfCB7IHR5cGU6ICdzdGVwJzsgc3RlcElkOiBzdHJpbmc7IGF0dGVtcHQ6IG51bWJlciB9O1xufVxuXG5mdW5jdGlvbiBpc0F0dHJTZXRFdmVudERhdGEoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgQXR0clNldEV2ZW50RGF0YSB7XG4gIGlmIChkYXRhID09PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xuICBjb25zdCByZWNvcmQgPSBkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICByZXR1cm4gKFxuICAgIEFycmF5LmlzQXJyYXkocmVjb3JkLmNoYW5nZXMpICYmXG4gICAgcmVjb3JkLmNoYW5nZXMuZXZlcnkoXG4gICAgICAoYykgPT5cbiAgICAgICAgYyAhPT0gbnVsbCAmJlxuICAgICAgICB0eXBlb2YgYyA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgdHlwZW9mIChjIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5rZXkgPT09ICdzdHJpbmcnXG4gICAgKVxuICApO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZVdyaXRlcih3cml0ZXI6IEF0dHJTZXRFdmVudERhdGFbJ3dyaXRlciddKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICghd3JpdGVyKSByZXR1cm4gbnVsbDtcbiAgaWYgKHdyaXRlci50eXBlID09PSAnd29ya2Zsb3cnKSByZXR1cm4gJ1NldCBieSB3b3JrZmxvdyc7XG4gIGlmICh3cml0ZXIudHlwZSA9PT0gJ3N0ZXAnKSB7XG4gICAgcmV0dXJuIGBTZXQgYnkgc3RlcCAke3dyaXRlci5zdGVwSWR9IChhdHRlbXB0ICR7d3JpdGVyLmF0dGVtcHR9KWA7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgcGF5bG9hZCBvZiBhbiBgYXR0cl9zZXRgIGV2ZW50OiB0aGUgbGlzdCBvZiBhdHRyaWJ1dGVcbiAqIGNoYW5nZXMgKHNldHMgYW5kIHJlbW92YWxzKSBwbHVzIHdoaWNoIHdyaXRlciAod29ya2Zsb3cgb3Igc3RlcClcbiAqIG1hZGUgdGhlbS4gRmFsbHMgYmFjayB0byB0aGUgZ2VuZXJpYyBKU09OIGJsb2NrIGZvciB1bmV4cGVjdGVkIHNoYXBlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEF0dHJTZXRFdmVudEJsb2NrKHsgZGF0YSB9OiB7IGRhdGE6IHVua25vd24gfSkge1xuICBpZiAoIWlzQXR0clNldEV2ZW50RGF0YShkYXRhKSkge1xuICAgIHJldHVybiA8Q29weWFibGVEYXRhQmxvY2sgZGF0YT17ZGF0YX0gLz47XG4gIH1cblxuICBjb25zdCB3cml0ZXJMYWJlbCA9IGRlc2NyaWJlV3JpdGVyKGRhdGEud3JpdGVyKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBweC0zIHB5LTFcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICB7ZGF0YS5jaGFuZ2VzLm1hcCgoY2hhbmdlLCBpbmRleCkgPT4gKFxuICAgICAgICAgIDxBdHRyaWJ1dGVSb3dcbiAgICAgICAgICAgIGF0dHJpYnV0ZUtleT17Y2hhbmdlLmtleX1cbiAgICAgICAgICAgIGtleT17YCR7Y2hhbmdlLmtleX06JHtpbmRleH1gfVxuICAgICAgICAgICAgcmVtb3ZlZD17Y2hhbmdlLnZhbHVlID09PSBudWxsfVxuICAgICAgICAgICAgdmFsdWU9e2NoYW5nZS52YWx1ZSA/PyB1bmRlZmluZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgICA8L2Rpdj5cbiAgICAgIHt3cml0ZXJMYWJlbCAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJib3JkZXItdCBweS0xLjUgdGV4dC1sYWJlbC0xMlwiXG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiAndmFyKC0tZHMtZ3JheS1hbHBoYS00MDApJyxcbiAgICAgICAgICAgIGNvbG9yOiAndmFyKC0tZHMtZ3JheS03MDApJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge3dyaXRlckxhYmVsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0=
|
|
@@ -108,4 +108,4 @@ function parseContent(content) {
|
|
|
108
108
|
}
|
|
109
109
|
return [];
|
|
110
110
|
}
|
|
111
|
-
//# sourceMappingURL=conversation-view.js.map
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zaWRlYmFyL2NvbnZlcnNhdGlvbi12aWV3LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFNckQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEVBQUUsUUFBUSxFQUF5QjtJQUNsRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxDQUNMLGNBQ0UsU0FBUyxFQUFDLDhCQUE4QixFQUN4QyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsNEJBR2xDLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLENBQ0wsY0FBSyxTQUFTLEVBQUMseUJBQXlCLFlBQ3JDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUNoQyxLQUFDLGFBQWEsSUFBYSxPQUFPLEVBQUUsT0FBTyxJQUF2QixLQUFLLENBQXNCLENBQ2hELENBQUMsR0FDRSxDQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsRUFBRSxPQUFPLEVBQTZCO0lBQzNELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDMUIsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakMsT0FBTyxDQUNMLGVBQ0UsU0FBUyxFQUFDLCtCQUErQixFQUN6QyxLQUFLLEVBQUU7WUFDTCxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDekIsV0FBVyxFQUFFLEtB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LEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTW9kZWxNZXNzYWdlIH0gZnJvbSAnYWknO1xuaW1wb3J0IHsgU3RyZWFtZG93biB9IGZyb20gJ3N0cmVhbWRvd24nO1xuaW1wb3J0IHsgRGF0YUluc3BlY3RvciB9IGZyb20gJy4uL3VpL2RhdGEtaW5zcGVjdG9yJztcblxuaW50ZXJmYWNlIENvbnZlcnNhdGlvblZpZXdQcm9wcyB7XG4gIG1lc3NhZ2VzOiBNb2RlbE1lc3NhZ2VbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENvbnZlcnNhdGlvblZpZXcoeyBtZXNzYWdlcyB9OiBDb252ZXJzYXRpb25WaWV3UHJvcHMpIHtcbiAgaWYgKG1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHB5LTggdGV4dC1bMTFweF1cIlxuICAgICAgICBzdHlsZT17eyBjb2xvcjogJ3ZhcigtLWRzLWdyYXktNjAwKScgfX1cbiAgICAgID5cbiAgICAgICAgTm8gbWVzc2FnZXNcbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBnYXAtMyBwLTNcIj5cbiAgICAgIHttZXNzYWdlcy5tYXAoKG1lc3NhZ2UsIGluZGV4KSA9PiAoXG4gICAgICAgIDxNZXNzYWdlQnViYmxlIGtleT17aW5kZXh9IG1lc3NhZ2U9e21lc3NhZ2V9IC8+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gTWVzc2FnZUJ1YmJsZSh7IG1lc3NhZ2UgfTogeyBtZXNzYWdlOiBNb2RlbE1lc3NhZ2UgfSkge1xuICBjb25zdCByb2xlID0gbWVzc2FnZS5yb2xlO1xuICBjb25zdCBwYXJ0cyA9IHBhcnNlQ29udGVudChtZXNzYWdlLmNvbnRlbnQpO1xuICBjb25zdCBzdHlsZSA9IGdldFJvbGVTdHlsZShyb2xlKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQtbWQgYm9yZGVyIHRleHQtWzExcHhdXCJcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogc3R5bGUuYmcsXG4gICAgICAgIGJvcmRlckNvbG9yOiBzdHlsZS5ib3JkZXIsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHsvKiBSb2xlIGhlYWRlciAqL31cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwicHgtMi41IHB5LTEgYm9yZGVyLWIgdGV4dC1bMTBweF0gZm9udC1tZWRpdW0gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVcIlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGJvcmRlckNvbG9yOiBzdHlsZS5ib3JkZXIsXG4gICAgICAgICAgY29sb3I6IHN0eWxlLmxhYmVsLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7cm9sZX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQ29udGVudCAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHgtMi41IHB5LTIgc3BhY2UteS0yXCI+XG4gICAgICAgIHtwYXJ0cy5tYXAoKHBhcnQsIGkpID0+IChcbiAgICAgICAgICA8Q29udGVudFBhcnQga2V5PXtpfSBwYXJ0PXtwYXJ0fSByb2xlPXtyb2xlfSAvPlxuICAgICAgICApKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5pbnRlcmZhY2UgUGFyc2VkUGFydCB7XG4gIHR5cGU6ICd0ZXh0JyB8ICd0b29sLWNhbGwnIHwgJ3Rvb2wtcmVzdWx0JztcbiAgdGV4dD86IHN0cmluZztcbiAgdG9vbE5hbWU/OiBzdHJpbmc7XG4gIGlucHV0PzogdW5rbm93bjtcbiAgb3V0cHV0PzogdW5rbm93bjtcbn1cblxuZnVuY3Rpb24gQ29udGVudFBhcnQoeyBwYXJ0LCByb2xlIH06IHsgcGFydDogUGFyc2VkUGFydDsgcm9sZTogc3RyaW5nIH0pIHtcbiAgaWYgKHBhcnQudHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgaWYgKCFwYXJ0LnRleHQpIHJldHVybiBudWxsO1xuXG4gICAgLy8gVXNlIFN0cmVhbWRvd24gZm9yIGFzc2lzdGFudCBtZXNzYWdlcyAodGhleSBvZnRlbiBjb250YWluIG1hcmtkb3duKVxuICAgIGlmIChyb2xlID09PSAnYXNzaXN0YW50Jykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cInByb3NlIHByb3NlLXNtIG1heC13LW5vbmUgdGV4dC1bMTFweF0gWyY+KjpmaXJzdC1jaGlsZF06bXQtMCBbJj4qOmxhc3QtY2hpbGRdOm1iLTBcIlxuICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiAndmFyKC0tZHMtZ3JheS0xMDAwKScgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdHJlYW1kb3duPntwYXJ0LnRleHR9PC9TdHJlYW1kb3duPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwid2hpdGVzcGFjZS1wcmUtd3JhcCBicmVhay13b3Jkc1wiXG4gICAgICAgIHN0eWxlPXt7IGNvbG9yOiAndmFyKC0tZHMtZ3JheS0xMDAwKScgfX1cbiAgICAgID5cbiAgICAgICAge3BhcnQudGV4dH1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxuICBpZiAocGFydC50eXBlID09PSAndG9vbC1jYWxsJykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQgYm9yZGVyIHB4LTIgcHktMS41XCJcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1kcy1wdXJwbGUtMTAwKScsXG4gICAgICAgICAgYm9yZGVyQ29sb3I6ICd2YXIoLS1kcy1wdXJwbGUtMzAwKScsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNSB0ZXh0LVsxMHB4XSBmb250LW1lZGl1bVwiPlxuICAgICAgICAgIDxzcGFuPvCflKc8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICd2YXIoLS1kcy1wdXJwbGUtOTAwKScgfX0+e3BhcnQudG9vbE5hbWV9PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge3BhcnQuaW5wdXQgIT0gbnVsbCAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibXQtMS41IG92ZXJmbG93LXgtYXV0byBwLTEuNSByb3VuZGVkXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLWRzLWdyYXktMTAwKScgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dHlwZW9mIHBhcnQuaW5wdXQgPT09ICdzdHJpbmcnID8gKFxuICAgICAgICAgICAgICA8cHJlXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1bMTBweF1cIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiAndmFyKC0tZHMtZ3JheS04MDApJyB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3BhcnQuaW5wdXR9XG4gICAgICAgICAgICAgIDwvcHJlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPERhdGFJbnNwZWN0b3IgZGF0YT17cGFydC5pbnB1dH0gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgaWYgKHBhcnQudHlwZSA9PT0gJ3Rvb2wtcmVzdWx0Jykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQgYm9yZGVyIHB4LTIgcHktMS41XCJcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1kcy1ncmVlbi0xMDApJyxcbiAgICAgICAgICBib3JkZXJDb2xvcjogJ3ZhcigtLWRzLWdyZWVuLTMwMCknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgdGV4dC1bMTBweF0gZm9udC1tZWRpdW1cIj5cbiAgICAgICAgICA8c3Bhbj7inJM8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICd2YXIoLS1kcy1ncmVlbi05MDApJyB9fT5cbiAgICAgICAgICAgIHtwYXJ0LnRvb2xOYW1lfSByZXN1bHRcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7cGFydC5vdXRwdXQgIT0gbnVsbCAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibXQtMS41IG92ZXJmbG93LXgtYXV0byBtYXgtaC1bMjAwcHhdIG92ZXJmbG93LXktYXV0byBwLTEuNSByb3VuZGVkXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLWRzLWdyYXktMTAwKScgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dHlwZW9mIHBhcnQub3V0cHV0ID09PSAnc3RyaW5nJyA/IChcbiAgICAgICAgICAgICAgPHByZVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtWzEwcHhdXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogJ3ZhcigtLWRzLWdyYXktODAwKScgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtwYXJ0Lm91dHB1dH1cbiAgICAgICAgICAgICAgPC9wcmU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8RGF0YUluc3BlY3RvciBkYXRhPXtwYXJ0Lm91dHB1dH0gZXhwYW5kTGV2ZWw9ezF9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBnZXRSb2xlU3R5bGUocm9sZTogc3RyaW5nKSB7XG4gIHN3aXRjaCAocm9sZSkge1xuICAgIGNhc2UgJ3VzZXInOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYmc6ICd2YXIoLS1kcy1ibHVlLTEwMCknLFxuICAgICAgICBib3JkZXI6ICd2YXIoLS1kcy1ibHVlLTMwMCknLFxuICAgICAgICBsYWJlbDogJ3ZhcigtLWRzLWJsdWUtNzAwKScsXG4gICAgICB9O1xuICAgIGNhc2UgJ2Fzc2lzdGFudCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBiZzogJ3ZhcigtLWRzLWdyYXktMTAwKScsXG4gICAgICAgIGJvcmRlcjogJ3ZhcigtLWRzLWdyYXktMzAwKScsXG4gICAgICAgIGxhYmVsOiAndmFyKC0tZHMtZ3JheS03MDApJyxcbiAgICAgIH07XG4gICAgY2FzZSAnc3lzdGVtJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJnOiAndmFyKC0tZHMtYW1iZXItMTAwKScsXG4gICAgICAgIGJvcmRlcjogJ3ZhcigtLWRzLWFtYmVyLTMwMCknLFxuICAgICAgICBsYWJlbDogJ3ZhcigtLWRzLWFtYmVyLTcwMCknLFxuICAgICAgfTtcbiAgICBjYXNlICd0b29sJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJnOiAndmFyKC0tZHMtZ3JlZW4tNTApJyxcbiAgICAgICAgYm9yZGVyOiAndmFyKC0tZHMtZ3JlZW4tMzAwKScsXG4gICAgICAgIGxhYmVsOiAndmFyKC0tZHMtZ3JlZW4tNzAwKScsXG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBiZzogJ3ZhcigtLWRzLWdyYXktMTAwKScsXG4gICAgICAgIGJvcmRlcjogJ3ZhcigtLWRzLWdyYXktMzAwKScsXG4gICAgICAgIGxhYmVsOiAndmFyKC0tZHMtZ3JheS03MDApJyxcbiAgICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VDb250ZW50KGNvbnRlbnQ6IHVua25vd24pOiBQYXJzZWRQYXJ0W10ge1xuICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIFt7IHR5cGU6ICd0ZXh0JywgdGV4dDogY29udGVudCB9XTtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KGNvbnRlbnQpKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQubWFwKChwYXJ0KTogUGFyc2VkUGFydCA9PiB7XG4gICAgICBpZiAodHlwZW9mIHBhcnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB7IHR5cGU6ICd0ZXh0JywgdGV4dDogcGFydCB9O1xuICAgICAgfVxuICAgICAgaWYgKHBhcnQ/LnR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICByZXR1cm4geyB0eXBlOiAndGV4dCcsIHRleHQ6IFN0cmluZyhwYXJ0LnRleHQgPz8gJycpIH07XG4gICAgICB9XG4gICAgICBpZiAocGFydD8udHlwZSA9PT0gJ3Rvb2wtY2FsbCcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiAndG9vbC1jYWxsJyxcbiAgICAgICAgICB0b29sTmFtZTogcGFydC50b29sTmFtZSxcbiAgICAgICAgICBpbnB1dDogcGFydC5pbnB1dCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmIChwYXJ0Py50eXBlID09PSAndG9vbC1yZXN1bHQnKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogJ3Rvb2wtcmVzdWx0JyxcbiAgICAgICAgICB0b29sTmFtZTogcGFydC50b29sTmFtZSxcbiAgICAgICAgICBvdXRwdXQ6IHBhcnQub3V0cHV0LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgdHlwZTogJ3RleHQnLCB0ZXh0OiAnJyB9O1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIFtdO1xufVxuIl19
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export declare function EncryptedDataBlock(): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const serializeForClipboard: (value: unknown) => string;
|
|
1
3
|
export declare function CopyableDataBlock({ data }: {
|
|
2
4
|
data: unknown;
|
|
3
5
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copyable-data-block.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/copyable-data-block.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"copyable-data-block.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/copyable-data-block.tsx"],"names":[],"mappings":"AAcA,wBAAgB,kBAAkB,4CA8BjC;AAED,eAAO,MAAM,qBAAqB,GAAI,OAAO,OAAO,KAAG,MActD,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,2CAW5D"}
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
3
|
+
import { Lock } from 'lucide-react';
|
|
4
|
+
import { useContext } from 'react';
|
|
5
|
+
import { CopyButton } from '../trace-viewer/components/copy-button';
|
|
6
|
+
import { Button } from '../ui/button';
|
|
7
|
+
import { DataInspector, DecryptClickContext } from '../ui/data-inspector';
|
|
8
|
+
import { Spinner } from '../ui/spinner';
|
|
9
|
+
const encryptedPlaceholderPreview = `{
|
|
10
|
+
"input": "[encrypted]",
|
|
11
|
+
"result": "[encrypted]"
|
|
12
|
+
}`;
|
|
13
|
+
export function EncryptedDataBlock() {
|
|
14
|
+
const ctx = useContext(DecryptClickContext);
|
|
15
|
+
return (_jsxs("div", { className: "relative min-h-20 overflow-hidden rounded-md border border-gray-alpha-400 bg-background-100", children: [_jsx("pre", { "aria-hidden": "true", className: "pointer-events-none m-0 select-none p-3 font-mono text-label-12 text-gray-900 blur-[4px]", children: encryptedPlaceholderPreview }), _jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: ctx ? (_jsxs(Button, { onClick: ctx.onDecrypt, disabled: ctx.isDecrypting, size: "xs", children: [ctx.isDecrypting ? (_jsx(Spinner, { size: 10 })) : (_jsx(Lock, { className: "h-3 w-3" })), _jsx("span", { children: "Decrypt" })] })) : (_jsxs("span", { className: "inline-flex items-center gap-1 rounded border border-gray-alpha-400 bg-gray-100 px-1.5 py-0.5 text-button-12 font-medium text-gray-700", children: [_jsx(Lock, { className: "h-3 w-3" }), "Encrypted"] })) })] }));
|
|
16
|
+
}
|
|
17
|
+
export const serializeForClipboard = (value) => {
|
|
7
18
|
if (typeof value === 'string')
|
|
8
19
|
return value;
|
|
9
20
|
if (typeof value === 'number' ||
|
|
@@ -19,16 +30,6 @@ const serializeForClipboard = (value) => {
|
|
|
19
30
|
}
|
|
20
31
|
};
|
|
21
32
|
export function CopyableDataBlock({ data }) {
|
|
22
|
-
|
|
23
|
-
return (_jsxs("div", { className: "relative overflow-x-auto rounded-md border p-3", style: { borderColor: 'var(--ds-gray-300)' }, children: [_jsx("button", { type: "button", "aria-label": "Copy data", title: "Copy", className: "!absolute !right-2 !top-2 !flex !h-6 !w-6 !items-center !justify-center !rounded-md !border !bg-[var(--ds-background-100)] !text-[var(--ds-gray-800)] transition-transform transition-colors duration-100 hover:!bg-[var(--ds-gray-alpha-200)] active:!scale-95 active:!bg-[var(--ds-gray-alpha-300)]", style: { borderColor: 'var(--ds-gray-300)' }, onClick: () => {
|
|
24
|
-
navigator.clipboard
|
|
25
|
-
.writeText(serializeForClipboard(data))
|
|
26
|
-
.then(() => {
|
|
27
|
-
toast.success('Copied to clipboard');
|
|
28
|
-
})
|
|
29
|
-
.catch(() => {
|
|
30
|
-
toast.error('Failed to copy');
|
|
31
|
-
});
|
|
32
|
-
}, children: _jsx(Copy, { size: 12 }) }), _jsx(DataInspector, { data: data })] }));
|
|
33
|
+
return (_jsxs("div", { className: "relative overflow-x-auto rounded-md border border-gray-alpha-400 p-3", children: [_jsx(CopyButton, { copyText: serializeForClipboard(data), ariaLabel: "Copy data", className: "absolute right-2 top-2 z-10 flex h-6 w-6 items-center justify-center rounded-md border border-gray-alpha-400 !bg-background-100 p-0 text-gray-900 transition-transform transition-colors duration-100 hover:bg-gray-200 active:scale-95 active:bg-gray-300" }), _jsx(DataInspector, { data: data })] }));
|
|
33
34
|
}
|
|
34
|
-
//# sourceMappingURL=
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weWFibGUtZGF0YS1ibG9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGViYXIvY29weWFibGUtZGF0YS1ibG9jay50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUViLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4QyxNQUFNLDJCQUEyQixHQUFHOzs7RUFHbEMsQ0FBQztBQUVILE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFNUMsT0FBTyxDQUNMLGVBQUssU0FBUyxFQUFDLDZGQUE2RixhQUMxRyw2QkFDYyxNQUFNLEVBQ2xCLFNBQVMsRUFBQywwRkFBMEYsWUFFbkcsMkJBQTJCLEdBQ3hCLEVBQ04sY0FBSyxTQUFTLEVBQUMsbURBQW1ELFlBQy9ELEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDTCxNQUFDLE1BQU0sSUFBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUMsSUFBSSxhQUNsRSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUNsQixLQUFDLE9BQU8sSUFBQyxJQUFJLEVBQUUsRUFBRSxHQUFJLENBQ3RCLENBQUMsQ0FBQyxDQUFDLENBQ0YsS0FBQyxJQUFJLElBQUMsU0FBUyxFQUFDLFNBQVMsR0FBRyxDQUM3QixFQUNELHFDQUFvQixJQUNiLENBQ1YsQ0FBQyxDQUFDLENBQUMsQ0FDRixnQkFBTSxTQUFTLEVBQUMsd0lBQXdJLGFBQ3RKLEtBQUMsSUFBSSxJQUFDLFNBQVMsRUFBQyxTQUFTLEdBQUcsaUJBRXZCLENBQ1IsR0FDRyxJQUNGLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQWMsRUFBVSxFQUFFO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzVDLElBQ0UsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN6QixPQUFPLEtBQUssS0FBSyxTQUFTO1FBQzFCLEtBQUssS0FBSyxJQUFJLEVBQ2QsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxFQUFFLElBQUksRUFBcUI7SUFDM0QsT0FBTyxDQUNMLGVBQUssU0FBUyxFQUFDLHNFQUFzRSxhQUNuRixLQUFDLFVBQVUsSUFDVCxRQUFRLEVBQUUscUJBQXFCLENBQUMsSUFBSSxDQUFDLEVBQ3JDLFNBQVMsRUFBQyxXQUFXLEVBQ3JCLFNBQVMsRUFBQyw0UEFBNFAsR0FDdFEsRUFDRixLQUFDLGFBQWEsSUFBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLElBQ3pCLENBQ1AsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB7IExvY2sgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvcHlCdXR0b24gfSBmcm9tICcuLi90cmFjZS12aWV3ZXIvY29tcG9uZW50cy9jb3B5LWJ1dHRvbic7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi91aS9idXR0b24nO1xuaW1wb3J0IHsgRGF0YUluc3BlY3RvciwgRGVjcnlwdENsaWNrQ29udGV4dCB9IGZyb20gJy4uL3VpL2RhdGEtaW5zcGVjdG9yJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi91aS9zcGlubmVyJztcblxuY29uc3QgZW5jcnlwdGVkUGxhY2Vob2xkZXJQcmV2aWV3ID0gYHtcbiAgXCJpbnB1dFwiOiBcIltlbmNyeXB0ZWRdXCIsXG4gIFwicmVzdWx0XCI6IFwiW2VuY3J5cHRlZF1cIlxufWA7XG5cbmV4cG9ydCBmdW5jdGlvbiBFbmNyeXB0ZWREYXRhQmxvY2soKSB7XG4gIGNvbnN0IGN0eCA9IHVzZUNvbnRleHQoRGVjcnlwdENsaWNrQ29udGV4dCk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIG1pbi1oLTIwIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItZ3JheS1hbHBoYS00MDAgYmctYmFja2dyb3VuZC0xMDBcIj5cbiAgICAgIDxwcmVcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgY2xhc3NOYW1lPVwicG9pbnRlci1ldmVudHMtbm9uZSBtLTAgc2VsZWN0LW5vbmUgcC0zIGZvbnQtbW9ubyB0ZXh0LWxhYmVsLTEyIHRleHQtZ3JheS05MDAgYmx1ci1bNHB4XVwiXG4gICAgICA+XG4gICAgICAgIHtlbmNyeXB0ZWRQbGFjZWhvbGRlclByZXZpZXd9XG4gICAgICA8L3ByZT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICB7Y3R4ID8gKFxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17Y3R4Lm9uRGVjcnlwdH0gZGlzYWJsZWQ9e2N0eC5pc0RlY3J5cHRpbmd9IHNpemU9XCJ4c1wiPlxuICAgICAgICAgICAge2N0eC5pc0RlY3J5cHRpbmcgPyAoXG4gICAgICAgICAgICAgIDxTcGlubmVyIHNpemU9ezEwfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExvY2sgY2xhc3NOYW1lPVwiaC0zIHctM1wiIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPHNwYW4+RGVjcnlwdDwvc3Bhbj5cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgcm91bmRlZCBib3JkZXIgYm9yZGVyLWdyYXktYWxwaGEtNDAwIGJnLWdyYXktMTAwIHB4LTEuNSBweS0wLjUgdGV4dC1idXR0b24tMTIgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMFwiPlxuICAgICAgICAgICAgPExvY2sgY2xhc3NOYW1lPVwiaC0zIHctM1wiIC8+XG4gICAgICAgICAgICBFbmNyeXB0ZWRcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZUZvckNsaXBib2FyZCA9ICh2YWx1ZTogdW5rbm93bik6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWU7XG4gIGlmIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8XG4gICAgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHxcbiAgICB2YWx1ZSA9PT0gbnVsbFxuICApIHtcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxuICB0cnkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgbnVsbCwgMik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gQ29weWFibGVEYXRhQmxvY2soeyBkYXRhIH06IHsgZGF0YTogdW5rbm93biB9KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBvdmVyZmxvdy14LWF1dG8gcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWdyYXktYWxwaGEtNDAwIHAtM1wiPlxuICAgICAgPENvcHlCdXR0b25cbiAgICAgICAgY29weVRleHQ9e3NlcmlhbGl6ZUZvckNsaXBib2FyZChkYXRhKX1cbiAgICAgICAgYXJpYUxhYmVsPVwiQ29weSBkYXRhXCJcbiAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgcmlnaHQtMiB0b3AtMiB6LTEwIGZsZXggaC02IHctNiBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWdyYXktYWxwaGEtNDAwICFiZy1iYWNrZ3JvdW5kLTEwMCBwLTAgdGV4dC1ncmF5LTkwMCB0cmFuc2l0aW9uLXRyYW5zZm9ybSB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0xMDAgaG92ZXI6YmctZ3JheS0yMDAgYWN0aXZlOnNjYWxlLTk1IGFjdGl2ZTpiZy1ncmF5LTMwMFwiXG4gICAgICAvPlxuICAgICAgPERhdGFJbnNwZWN0b3IgZGF0YT17ZGF0YX0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Event, type Hook, type WorkflowRun } from '@workflow/world';
|
|
2
|
+
import { type FetchSpanDetail } from './use-selected-span-detail';
|
|
2
3
|
/**
|
|
3
4
|
* Info about the currently selected span
|
|
4
5
|
*/
|
|
@@ -26,26 +27,19 @@ export interface SelectedSpanInfo {
|
|
|
26
27
|
* This component is rendered OUTSIDE the trace viewer context — it
|
|
27
28
|
* receives all data via props rather than reading from context.
|
|
28
29
|
*/
|
|
29
|
-
export declare function EntityDetailPanel({ run, onStreamClick, onRunClick,
|
|
30
|
+
export declare function EntityDetailPanel({ run, onStreamClick, onRunClick, fetchSpanDetail, onWakeUpSleep, onLoadEventData, onResolveHook, encryptionKey, onDecrypt, isDecrypting, selectedSpan, showSeparateEventOccurrenceTimestamps, getModuleSourceUrl, }: {
|
|
30
31
|
run: WorkflowRun;
|
|
31
32
|
/** Callback when a stream reference is clicked */
|
|
32
33
|
onStreamClick?: (streamId: string) => void;
|
|
33
34
|
/** Callback when a run reference is clicked */
|
|
34
35
|
onRunClick?: (runId: string) => void;
|
|
35
|
-
|
|
36
|
-
spanDetailData: WorkflowRun | Step | Hook | Event | null;
|
|
37
|
-
/** Error from external span detail fetch. */
|
|
38
|
-
spanDetailError?: Error | null;
|
|
39
|
-
/** Loading state from external span detail fetch. */
|
|
40
|
-
spanDetailLoading?: boolean;
|
|
41
|
-
/** Callback when a span is selected. Use this to fetch data externally and pass via spanDetailData. */
|
|
42
|
-
onSpanSelect: (info: SpanSelectionInfo) => void;
|
|
36
|
+
fetchSpanDetail: FetchSpanDetail;
|
|
43
37
|
/** Callback to wake up a pending sleep call. */
|
|
44
38
|
onWakeUpSleep?: (runId: string, correlationId: string) => Promise<{
|
|
45
39
|
stoppedCount: number;
|
|
46
40
|
}>;
|
|
47
41
|
/** Callback to load event data for a specific event (lazy loading) */
|
|
48
|
-
onLoadEventData?: (
|
|
42
|
+
onLoadEventData?: (event: Event) => Promise<unknown | null>;
|
|
49
43
|
/** Callback to resolve a hook with a payload. */
|
|
50
44
|
onResolveHook?: (hookToken: string, payload: unknown, hook?: Hook) => Promise<void>;
|
|
51
45
|
/** Encryption key (available after Decrypt is clicked), used to re-load event data */
|
|
@@ -56,5 +50,11 @@ export declare function EntityDetailPanel({ run, onStreamClick, onRunClick, span
|
|
|
56
50
|
isDecrypting?: boolean;
|
|
57
51
|
/** Info about the currently selected span from the trace viewer */
|
|
58
52
|
selectedSpan: SelectedSpanInfo | null;
|
|
53
|
+
/** Show occurredAt separately instead of folding it into the Created timestamp. */
|
|
54
|
+
showSeparateEventOccurrenceTimestamps?: boolean;
|
|
55
|
+
getModuleSourceUrl?: (info: {
|
|
56
|
+
moduleSpecifier: string;
|
|
57
|
+
deploymentId: string;
|
|
58
|
+
}) => string | undefined;
|
|
59
59
|
}): React.JSX.Element | null;
|
|
60
60
|
//# sourceMappingURL=entity-detail-panel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-detail-panel.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/entity-detail-panel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entity-detail-panel.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/entity-detail-panel.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,IAAI,EAET,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,4BAA4B,CAAC;AAOpC;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,GAAG,EACH,aAAa,EACb,UAAU,EACV,eAAe,EACf,aAAa,EACb,eAAe,EACf,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAoB,EACpB,YAAY,EACZ,qCAA6C,EAC7C,kBAAkB,GACnB,EAAE;IACD,GAAG,EAAE,WAAW,CAAC;IACjB,kDAAkD;IAClD,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,+CAA+C;IAC/C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,gDAAgD;IAChD,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,KAClB,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvC,sEAAsE;IACtE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC5D,iDAAiD;IACjD,aAAa,CAAC,EAAE,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,IAAI,KACR,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,sFAAsF;IACtF,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mEAAmE;IACnE,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,mFAAmF;IACnF,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACtB,KAAK,MAAM,GAAG,SAAS,CAAC;CAC1B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAyT3B"}
|