@flanksource/clicky-ui 0.3.54 → 0.3.56
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/NOTICE.md +6 -0
- package/dist/ai.cjs +6 -0
- package/dist/ai.js +3 -1
- package/dist/chat.cjs +2 -0
- package/dist/chat.d.ts +1 -0
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +2 -1
- package/dist/comments/CommentCard.cjs +37 -7
- package/dist/comments/CommentCard.cjs.map +1 -1
- package/dist/comments/CommentCard.d.ts +11 -1
- package/dist/comments/CommentCard.d.ts.map +1 -1
- package/dist/comments/CommentCard.js +37 -7
- package/dist/comments/CommentCard.js.map +1 -1
- package/dist/comments/CommentCardParts.cjs +9 -4
- package/dist/comments/CommentCardParts.cjs.map +1 -1
- package/dist/comments/CommentCardParts.d.ts.map +1 -1
- package/dist/comments/CommentCardParts.js +9 -4
- package/dist/comments/CommentCardParts.js.map +1 -1
- package/dist/comments/CommentComposer.cjs +8 -8
- package/dist/comments/CommentComposer.cjs.map +1 -1
- package/dist/comments/CommentComposer.d.ts.map +1 -1
- package/dist/comments/CommentComposer.js +8 -8
- package/dist/comments/CommentComposer.js.map +1 -1
- package/dist/comments/CommentProvider.cjs +5 -1
- package/dist/comments/CommentProvider.cjs.map +1 -1
- package/dist/comments/CommentProvider.d.ts +1 -1
- package/dist/comments/CommentProvider.d.ts.map +1 -1
- package/dist/comments/CommentProvider.js +5 -1
- package/dist/comments/CommentProvider.js.map +1 -1
- package/dist/comments/CommentSidePanel.cjs +17 -11
- package/dist/comments/CommentSidePanel.cjs.map +1 -1
- package/dist/comments/CommentSidePanel.d.ts +6 -0
- package/dist/comments/CommentSidePanel.d.ts.map +1 -1
- package/dist/comments/CommentSidePanel.js +17 -11
- package/dist/comments/CommentSidePanel.js.map +1 -1
- package/dist/comments/CommentThread.cjs +4 -1
- package/dist/comments/CommentThread.cjs.map +1 -1
- package/dist/comments/CommentThread.d.ts +4 -1
- package/dist/comments/CommentThread.d.ts.map +1 -1
- package/dist/comments/CommentThread.js +4 -1
- package/dist/comments/CommentThread.js.map +1 -1
- package/dist/comments/CommentThreadList.cjs +6 -3
- package/dist/comments/CommentThreadList.cjs.map +1 -1
- package/dist/comments/CommentThreadList.d.ts +7 -2
- package/dist/comments/CommentThreadList.d.ts.map +1 -1
- package/dist/comments/CommentThreadList.js +6 -3
- package/dist/comments/CommentThreadList.js.map +1 -1
- package/dist/comments/MentionTextarea.cjs +1 -1
- package/dist/comments/MentionTextarea.cjs.map +1 -1
- package/dist/comments/MentionTextarea.d.ts.map +1 -1
- package/dist/comments/MentionTextarea.js +1 -1
- package/dist/comments/MentionTextarea.js.map +1 -1
- package/dist/comments/comment-assign.cjs +68 -0
- package/dist/comments/comment-assign.cjs.map +1 -0
- package/dist/comments/comment-assign.d.ts +31 -0
- package/dist/comments/comment-assign.d.ts.map +1 -0
- package/dist/comments/comment-assign.js +67 -0
- package/dist/comments/comment-assign.js.map +1 -0
- package/dist/comments/comment-types.cjs.map +1 -1
- package/dist/comments/comment-types.d.ts +39 -0
- package/dist/comments/comment-types.d.ts.map +1 -1
- package/dist/comments/comment-types.js.map +1 -1
- package/dist/comments/comment-utils.cjs +2 -0
- package/dist/comments/comment-utils.cjs.map +1 -1
- package/dist/comments/comment-utils.d.ts +2 -0
- package/dist/comments/comment-utils.d.ts.map +1 -1
- package/dist/comments/comment-utils.js +2 -0
- package/dist/comments/comment-utils.js.map +1 -1
- package/dist/comments.cjs +3 -0
- package/dist/comments.d.ts +1 -0
- package/dist/comments.d.ts.map +1 -1
- package/dist/comments.js +2 -1
- package/dist/components/ComboboxMenu.cjs +23 -13
- package/dist/components/ComboboxMenu.cjs.map +1 -1
- package/dist/components/ComboboxMenu.d.ts.map +1 -1
- package/dist/components/ComboboxMenu.js +23 -13
- package/dist/components/ComboboxMenu.js.map +1 -1
- package/dist/components/FilterBar.cjs +29 -6
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.d.ts +3 -1
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +29 -6
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/ItemActions.cjs +1 -1
- package/dist/components/ItemActions.cjs.map +1 -1
- package/dist/components/ItemActions.js +1 -1
- package/dist/components/ItemActions.js.map +1 -1
- package/dist/components/ListMenu.cjs +33 -3
- package/dist/components/ListMenu.cjs.map +1 -1
- package/dist/components/ListMenu.d.ts +4 -1
- package/dist/components/ListMenu.d.ts.map +1 -1
- package/dist/components/ListMenu.js +33 -3
- package/dist/components/ListMenu.js.map +1 -1
- package/dist/components/ListMenuItems.cjs +80 -0
- package/dist/components/ListMenuItems.cjs.map +1 -0
- package/dist/components/ListMenuItems.d.ts +8 -0
- package/dist/components/ListMenuItems.d.ts.map +1 -0
- package/dist/components/ListMenuItems.js +80 -0
- package/dist/components/ListMenuItems.js.map +1 -0
- package/dist/components/LocalPathPicker.cjs +182 -0
- package/dist/components/LocalPathPicker.cjs.map +1 -0
- package/dist/components/LocalPathPicker.d.ts +11 -0
- package/dist/components/LocalPathPicker.d.ts.map +1 -0
- package/dist/components/LocalPathPicker.js +182 -0
- package/dist/components/LocalPathPicker.js.map +1 -0
- package/dist/components/LocalPathTree.cjs +89 -0
- package/dist/components/LocalPathTree.cjs.map +1 -0
- package/dist/components/LocalPathTree.d.ts +9 -0
- package/dist/components/LocalPathTree.d.ts.map +1 -0
- package/dist/components/LocalPathTree.js +89 -0
- package/dist/components/LocalPathTree.js.map +1 -0
- package/dist/components/RangeSlider.cjs +10 -30
- package/dist/components/RangeSlider.cjs.map +1 -1
- package/dist/components/RangeSlider.d.ts.map +1 -1
- package/dist/components/RangeSlider.js +4 -24
- package/dist/components/RangeSlider.js.map +1 -1
- package/dist/components/Slider.cjs +79 -0
- package/dist/components/Slider.cjs.map +1 -0
- package/dist/components/Slider.d.ts +23 -0
- package/dist/components/Slider.d.ts.map +1 -0
- package/dist/components/Slider.js +79 -0
- package/dist/components/Slider.js.map +1 -0
- package/dist/components/combobox-types.d.ts +4 -1
- package/dist/components/combobox-types.d.ts.map +1 -1
- package/dist/components/filter-bar-field-utils.cjs +3 -5
- package/dist/components/filter-bar-field-utils.cjs.map +1 -1
- package/dist/components/filter-bar-field-utils.d.ts.map +1 -1
- package/dist/components/filter-bar-field-utils.js +3 -5
- package/dist/components/filter-bar-field-utils.js.map +1 -1
- package/dist/components/filter-bar-tree-model.cjs +22 -0
- package/dist/components/filter-bar-tree-model.cjs.map +1 -0
- package/dist/components/filter-bar-tree-model.d.ts +33 -0
- package/dist/components/filter-bar-tree-model.d.ts.map +1 -0
- package/dist/components/filter-bar-tree-model.js +21 -0
- package/dist/components/filter-bar-tree-model.js.map +1 -0
- package/dist/components/filter-bar-tree.cjs +84 -0
- package/dist/components/filter-bar-tree.cjs.map +1 -0
- package/dist/components/filter-bar-tree.d.ts +7 -0
- package/dist/components/filter-bar-tree.d.ts.map +1 -0
- package/dist/components/filter-bar-tree.js +84 -0
- package/dist/components/filter-bar-tree.js.map +1 -0
- package/dist/components/json-schema-form-debug-glyph-map.cjs +2 -0
- package/dist/components/json-schema-form-debug-glyph-map.cjs.map +1 -1
- package/dist/components/json-schema-form-debug-glyph-map.d.ts.map +1 -1
- package/dist/components/json-schema-form-debug-glyph-map.js +2 -0
- package/dist/components/json-schema-form-debug-glyph-map.js.map +1 -1
- package/dist/components/json-schema-form-help-links.cjs +18 -0
- package/dist/components/json-schema-form-help-links.cjs.map +1 -0
- package/dist/components/json-schema-form-help-links.d.ts +5 -0
- package/dist/components/json-schema-form-help-links.d.ts.map +1 -0
- package/dist/components/json-schema-form-help-links.js +18 -0
- package/dist/components/json-schema-form-help-links.js.map +1 -0
- package/dist/components/json-schema-form-help-model.cjs +7 -0
- package/dist/components/json-schema-form-help-model.cjs.map +1 -0
- package/dist/components/json-schema-form-help-model.d.ts +3 -0
- package/dist/components/json-schema-form-help-model.d.ts.map +1 -0
- package/dist/components/json-schema-form-help-model.js +7 -0
- package/dist/components/json-schema-form-help-model.js.map +1 -0
- package/dist/components/json-schema-form-json.cjs +48 -0
- package/dist/components/json-schema-form-json.cjs.map +1 -0
- package/dist/components/json-schema-form-json.d.ts +7 -0
- package/dist/components/json-schema-form-json.d.ts.map +1 -0
- package/dist/components/json-schema-form-json.js +48 -0
- package/dist/components/json-schema-form-json.js.map +1 -0
- package/dist/components/json-schema-form-layout.cjs +7 -5
- package/dist/components/json-schema-form-layout.cjs.map +1 -1
- package/dist/components/json-schema-form-layout.d.ts +2 -2
- package/dist/components/json-schema-form-layout.d.ts.map +1 -1
- package/dist/components/json-schema-form-layout.js +7 -5
- package/dist/components/json-schema-form-layout.js.map +1 -1
- package/dist/components/json-schema-form-object.cjs +2 -13
- package/dist/components/json-schema-form-object.cjs.map +1 -1
- package/dist/components/json-schema-form-object.d.ts.map +1 -1
- package/dist/components/json-schema-form-object.js +2 -13
- package/dist/components/json-schema-form-object.js.map +1 -1
- package/dist/components/json-schema-form-refs.cjs +1 -1
- package/dist/components/json-schema-form-refs.cjs.map +1 -1
- package/dist/components/json-schema-form-refs.d.ts.map +1 -1
- package/dist/components/json-schema-form-refs.js +1 -1
- package/dist/components/json-schema-form-refs.js.map +1 -1
- package/dist/components/json-schema-form-render.cjs +20 -6
- package/dist/components/json-schema-form-render.cjs.map +1 -1
- package/dist/components/json-schema-form-render.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.js +20 -6
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +22 -2
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +22 -2
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-types.d.ts +5 -1
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-union-model.cjs +46 -0
- package/dist/components/json-schema-form-union-model.cjs.map +1 -0
- package/dist/components/json-schema-form-union-model.d.ts +6 -0
- package/dist/components/json-schema-form-union-model.d.ts.map +1 -0
- package/dist/components/json-schema-form-union-model.js +43 -0
- package/dist/components/json-schema-form-union-model.js.map +1 -0
- package/dist/components/json-schema-form-union.cjs +52 -0
- package/dist/components/json-schema-form-union.cjs.map +1 -0
- package/dist/components/json-schema-form-union.d.ts +7 -0
- package/dist/components/json-schema-form-union.d.ts.map +1 -0
- package/dist/components/json-schema-form-union.js +52 -0
- package/dist/components/json-schema-form-union.js.map +1 -0
- package/dist/components/list-menu-virtual.cjs +5 -0
- package/dist/components/list-menu-virtual.cjs.map +1 -0
- package/dist/components/list-menu-virtual.d.ts +12 -0
- package/dist/components/list-menu-virtual.d.ts.map +1 -0
- package/dist/components/list-menu-virtual.js +6 -0
- package/dist/components/list-menu-virtual.js.map +1 -0
- package/dist/components/local-path.cjs +12 -0
- package/dist/components/local-path.cjs.map +1 -0
- package/dist/components/local-path.d.ts +14 -0
- package/dist/components/local-path.d.ts.map +1 -0
- package/dist/components/local-path.js +12 -0
- package/dist/components/local-path.js.map +1 -0
- package/dist/components/slider-shared.cjs +32 -0
- package/dist/components/slider-shared.cjs.map +1 -0
- package/dist/components/slider-shared.d.ts +18 -0
- package/dist/components/slider-shared.d.ts.map +1 -0
- package/dist/components/slider-shared.js +27 -0
- package/dist/components/slider-shared.js.map +1 -0
- package/dist/components.cjs +8 -0
- package/dist/components.d.ts +6 -1
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +5 -1
- package/dist/connections/ConnectionsPage.cjs +51 -19
- package/dist/connections/ConnectionsPage.cjs.map +1 -1
- package/dist/connections/ConnectionsPage.d.ts +9 -1
- package/dist/connections/ConnectionsPage.d.ts.map +1 -1
- package/dist/connections/ConnectionsPage.js +52 -20
- package/dist/connections/ConnectionsPage.js.map +1 -1
- package/dist/connections/connectionDashboard.cjs +13 -8
- package/dist/connections/connectionDashboard.cjs.map +1 -1
- package/dist/connections/connectionDashboard.d.ts +8 -3
- package/dist/connections/connectionDashboard.d.ts.map +1 -1
- package/dist/connections/connectionDashboard.js +14 -9
- package/dist/connections/connectionDashboard.js.map +1 -1
- package/dist/connections/connectionDashboardModel.cjs.map +1 -1
- package/dist/connections/connectionDashboardModel.d.ts +4 -0
- package/dist/connections/connectionDashboardModel.d.ts.map +1 -1
- package/dist/connections/connectionDashboardModel.js.map +1 -1
- package/dist/connections/connectionDashboardRow.cjs +75 -55
- package/dist/connections/connectionDashboardRow.cjs.map +1 -1
- package/dist/connections/connectionDashboardRow.d.ts +3 -2
- package/dist/connections/connectionDashboardRow.d.ts.map +1 -1
- package/dist/connections/connectionDashboardRow.js +75 -55
- package/dist/connections/connectionDashboardRow.js.map +1 -1
- package/dist/connections/connectionNamespaceField.cjs +17 -0
- package/dist/connections/connectionNamespaceField.cjs.map +1 -0
- package/dist/connections/connectionNamespaceField.d.ts +10 -0
- package/dist/connections/connectionNamespaceField.d.ts.map +1 -0
- package/dist/connections/connectionNamespaceField.js +17 -0
- package/dist/connections/connectionNamespaceField.js.map +1 -0
- package/dist/connections/connectionSchemaFormExtensions.cjs +98 -0
- package/dist/connections/connectionSchemaFormExtensions.cjs.map +1 -0
- package/dist/connections/connectionSchemaFormExtensions.d.ts +41 -0
- package/dist/connections/connectionSchemaFormExtensions.d.ts.map +1 -0
- package/dist/connections/connectionSchemaFormExtensions.js +96 -0
- package/dist/connections/connectionSchemaFormExtensions.js.map +1 -0
- package/dist/connections/connectionsPageModel.cjs +11 -0
- package/dist/connections/connectionsPageModel.cjs.map +1 -1
- package/dist/connections/connectionsPageModel.d.ts +5 -0
- package/dist/connections/connectionsPageModel.d.ts.map +1 -1
- package/dist/connections/connectionsPageModel.js +11 -1
- package/dist/connections/connectionsPageModel.js.map +1 -1
- package/dist/connections.cjs +5 -0
- package/dist/connections.d.ts +2 -1
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +3 -2
- package/dist/data/AvatarBadge.cjs +3 -3
- package/dist/data/AvatarBadge.cjs.map +1 -1
- package/dist/data/AvatarBadge.js +3 -3
- package/dist/data/AvatarBadge.js.map +1 -1
- package/dist/data/CodeDiff.cjs +2 -0
- package/dist/data/CodeDiff.cjs.map +1 -1
- package/dist/data/CodeDiff.js +2 -0
- package/dist/data/CodeDiff.js.map +1 -1
- package/dist/data/DataTable.cjs +3 -2
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.js +3 -2
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/Gauge.cjs +1 -1
- package/dist/data/Gauge.cjs.map +1 -1
- package/dist/data/Gauge.js +1 -1
- package/dist/data/Gauge.js.map +1 -1
- package/dist/data/HighlightedTokens.cjs +2 -10
- package/dist/data/HighlightedTokens.cjs.map +1 -1
- package/dist/data/HighlightedTokens.d.ts.map +1 -1
- package/dist/data/HighlightedTokens.js +1 -9
- package/dist/data/HighlightedTokens.js.map +1 -1
- package/dist/data/Markdown.cjs +38 -11
- package/dist/data/Markdown.cjs.map +1 -1
- package/dist/data/Markdown.d.ts +9 -1
- package/dist/data/Markdown.d.ts.map +1 -1
- package/dist/data/Markdown.js +39 -12
- package/dist/data/Markdown.js.map +1 -1
- package/dist/data/MultiGaugeBar.cjs +157 -0
- package/dist/data/MultiGaugeBar.cjs.map +1 -0
- package/dist/data/MultiGaugeBar.d.ts +29 -0
- package/dist/data/MultiGaugeBar.d.ts.map +1 -0
- package/dist/data/MultiGaugeBar.js +157 -0
- package/dist/data/MultiGaugeBar.js.map +1 -0
- package/dist/data/OpenInFilesLink.cjs +27 -0
- package/dist/data/OpenInFilesLink.cjs.map +1 -0
- package/dist/data/OpenInFilesLink.d.ts +15 -0
- package/dist/data/OpenInFilesLink.d.ts.map +1 -0
- package/dist/data/OpenInFilesLink.js +27 -0
- package/dist/data/OpenInFilesLink.js.map +1 -0
- package/dist/data/ProgressBar.cjs +5 -3
- package/dist/data/ProgressBar.cjs.map +1 -1
- package/dist/data/ProgressBar.d.ts +5 -1
- package/dist/data/ProgressBar.d.ts.map +1 -1
- package/dist/data/ProgressBar.js +5 -3
- package/dist/data/ProgressBar.js.map +1 -1
- package/dist/data/ProgressBars.cjs +13 -5
- package/dist/data/ProgressBars.cjs.map +1 -1
- package/dist/data/ProgressBars.d.ts +6 -1
- package/dist/data/ProgressBars.d.ts.map +1 -1
- package/dist/data/ProgressBars.js +13 -5
- package/dist/data/ProgressBars.js.map +1 -1
- package/dist/data/Properties.cjs +3 -3
- package/dist/data/Properties.cjs.map +1 -1
- package/dist/data/Properties.js +3 -3
- package/dist/data/Properties.js.map +1 -1
- package/dist/data/TaskProgress.cjs +14 -6
- package/dist/data/TaskProgress.cjs.map +1 -1
- package/dist/data/TaskProgress.d.ts +3 -1
- package/dist/data/TaskProgress.d.ts.map +1 -1
- package/dist/data/TaskProgress.js +14 -6
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/TaskPrompts.cjs +96 -0
- package/dist/data/TaskPrompts.cjs.map +1 -0
- package/dist/data/TaskPrompts.d.ts +6 -0
- package/dist/data/TaskPrompts.d.ts.map +1 -0
- package/dist/data/TaskPrompts.js +96 -0
- package/dist/data/TaskPrompts.js.map +1 -0
- package/dist/data/TaskSnapshot.cjs.map +1 -1
- package/dist/data/TaskSnapshot.d.ts +3 -0
- package/dist/data/TaskSnapshot.d.ts.map +1 -1
- package/dist/data/TaskSnapshot.js.map +1 -1
- package/dist/data/TimeseriesCoreBars.cjs +7 -3
- package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
- package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
- package/dist/data/TimeseriesCoreBars.js +8 -4
- package/dist/data/TimeseriesCoreBars.js.map +1 -1
- package/dist/data/TimeseriesGauge.cjs +12 -5
- package/dist/data/TimeseriesGauge.cjs.map +1 -1
- package/dist/data/TimeseriesGauge.d.ts.map +1 -1
- package/dist/data/TimeseriesGauge.js +13 -6
- package/dist/data/TimeseriesGauge.js.map +1 -1
- package/dist/data/TimeseriesPanel.cjs +10 -9
- package/dist/data/TimeseriesPanel.cjs.map +1 -1
- package/dist/data/TimeseriesPanel.d.ts +1 -1
- package/dist/data/TimeseriesPanel.d.ts.map +1 -1
- package/dist/data/TimeseriesPanel.js +11 -10
- package/dist/data/TimeseriesPanel.js.map +1 -1
- package/dist/data/TimeseriesPanel.model.cjs +62 -10
- package/dist/data/TimeseriesPanel.model.cjs.map +1 -1
- package/dist/data/TimeseriesPanel.model.d.ts +40 -1
- package/dist/data/TimeseriesPanel.model.d.ts.map +1 -1
- package/dist/data/TimeseriesPanel.model.js +62 -11
- package/dist/data/TimeseriesPanel.model.js.map +1 -1
- package/dist/data/WorkloadCard.cjs +7 -3
- package/dist/data/WorkloadCard.cjs.map +1 -1
- package/dist/data/WorkloadCard.d.ts +3 -1
- package/dist/data/WorkloadCard.d.ts.map +1 -1
- package/dist/data/WorkloadCard.js +7 -3
- package/dist/data/WorkloadCard.js.map +1 -1
- package/dist/data/WorkloadCard.model.cjs.map +1 -1
- package/dist/data/WorkloadCard.model.d.ts +2 -0
- package/dist/data/WorkloadCard.model.d.ts.map +1 -1
- package/dist/data/WorkloadCard.model.js.map +1 -1
- package/dist/data/ai/ChatWindow.placement.cjs +2 -1
- package/dist/data/ai/ChatWindow.placement.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.placement.d.ts +1 -1
- package/dist/data/ai/ChatWindow.placement.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.placement.js +2 -1
- package/dist/data/ai/ChatWindow.placement.js.map +1 -1
- package/dist/data/ai/SpecRuntimeBar.cjs +2 -2
- package/dist/data/ai/SpecRuntimeBar.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeBar.d.ts +4 -1
- package/dist/data/ai/SpecRuntimeBar.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeBar.js +2 -2
- package/dist/data/ai/SpecRuntimeBar.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.cjs +2 -2
- package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.js +2 -2
- package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
- package/dist/data/ai/ThreadPicker.cjs +2 -2
- package/dist/data/ai/ThreadPicker.cjs.map +1 -1
- package/dist/data/ai/ThreadPicker.js +2 -2
- package/dist/data/ai/ThreadPicker.js.map +1 -1
- package/dist/data/ai/index.d.ts +2 -0
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/use-prompt-run-stream.cjs +126 -0
- package/dist/data/ai/use-prompt-run-stream.cjs.map +1 -0
- package/dist/data/ai/use-prompt-run-stream.d.ts +52 -0
- package/dist/data/ai/use-prompt-run-stream.d.ts.map +1 -0
- package/dist/data/ai/use-prompt-run-stream.js +126 -0
- package/dist/data/ai/use-prompt-run-stream.js.map +1 -0
- package/dist/data/cache-browser/CacheBrowser.cjs +1 -0
- package/dist/data/cache-browser/CacheBrowser.cjs.map +1 -1
- package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -1
- package/dist/data/cache-browser/CacheBrowser.js +1 -0
- package/dist/data/cache-browser/CacheBrowser.js.map +1 -1
- package/dist/data/charts/BarChart.cjs +194 -0
- package/dist/data/charts/BarChart.cjs.map +1 -0
- package/dist/data/charts/BarChart.d.ts +19 -0
- package/dist/data/charts/BarChart.d.ts.map +1 -0
- package/dist/data/charts/BarChart.js +194 -0
- package/dist/data/charts/BarChart.js.map +1 -0
- package/dist/data/charts/ChartLegend.cjs +54 -0
- package/dist/data/charts/ChartLegend.cjs.map +1 -0
- package/dist/data/charts/ChartLegend.d.ts +17 -0
- package/dist/data/charts/ChartLegend.d.ts.map +1 -0
- package/dist/data/charts/ChartLegend.js +54 -0
- package/dist/data/charts/ChartLegend.js.map +1 -0
- package/dist/data/charts/Sparkline.cjs +56 -0
- package/dist/data/charts/Sparkline.cjs.map +1 -0
- package/dist/data/charts/Sparkline.d.ts +15 -0
- package/dist/data/charts/Sparkline.d.ts.map +1 -0
- package/dist/data/charts/Sparkline.js +56 -0
- package/dist/data/charts/Sparkline.js.map +1 -0
- package/dist/data/charts/StackedBarChart.cjs +241 -0
- package/dist/data/charts/StackedBarChart.cjs.map +1 -0
- package/dist/data/charts/StackedBarChart.d.ts +20 -0
- package/dist/data/charts/StackedBarChart.d.ts.map +1 -0
- package/dist/data/charts/StackedBarChart.js +241 -0
- package/dist/data/charts/StackedBarChart.js.map +1 -0
- package/dist/data/charts/TrendChart.cjs +157 -0
- package/dist/data/charts/TrendChart.cjs.map +1 -0
- package/dist/data/charts/TrendChart.d.ts +20 -0
- package/dist/data/charts/TrendChart.d.ts.map +1 -0
- package/dist/data/charts/TrendChart.js +157 -0
- package/dist/data/charts/TrendChart.js.map +1 -0
- package/dist/data/charts/chart-marks.cjs +115 -0
- package/dist/data/charts/chart-marks.cjs.map +1 -0
- package/dist/data/charts/chart-marks.d.ts +39 -0
- package/dist/data/charts/chart-marks.d.ts.map +1 -0
- package/dist/data/charts/chart-marks.js +112 -0
- package/dist/data/charts/chart-marks.js.map +1 -0
- package/dist/data/charts/chart-palette.cjs +74 -0
- package/dist/data/charts/chart-palette.cjs.map +1 -0
- package/dist/data/charts/chart-palette.d.ts +58 -0
- package/dist/data/charts/chart-palette.d.ts.map +1 -0
- package/dist/data/charts/chart-palette.js +72 -0
- package/dist/data/charts/chart-palette.js.map +1 -0
- package/dist/data/charts/chart-scale.cjs +115 -0
- package/dist/data/charts/chart-scale.cjs.map +1 -0
- package/dist/data/charts/chart-scale.d.ts +41 -0
- package/dist/data/charts/chart-scale.d.ts.map +1 -0
- package/dist/data/charts/chart-scale.js +104 -0
- package/dist/data/charts/chart-scale.js.map +1 -0
- package/dist/data/charts/chart.test-utils.d.ts +7 -0
- package/dist/data/charts/chart.test-utils.d.ts.map +1 -0
- package/dist/data/charts/index.d.ts +7 -0
- package/dist/data/charts/index.d.ts.map +1 -0
- package/dist/data/chat/MessageActions.cjs +1 -1
- package/dist/data/chat/MessageActions.cjs.map +1 -1
- package/dist/data/chat/MessageActions.js +1 -1
- package/dist/data/chat/MessageActions.js.map +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.js +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.cjs +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.cjs.map +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.js +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.js.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.cjs +9 -2
- package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.js +9 -2
- package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
- package/dist/data/diagnostics/ProblemActions.cjs +37 -0
- package/dist/data/diagnostics/ProblemActions.cjs.map +1 -0
- package/dist/data/diagnostics/ProblemActions.d.ts +6 -0
- package/dist/data/diagnostics/ProblemActions.d.ts.map +1 -0
- package/dist/data/diagnostics/ProblemActions.js +37 -0
- package/dist/data/diagnostics/ProblemActions.js.map +1 -0
- package/dist/data/diagnostics/ProblemFacet.cjs +33 -0
- package/dist/data/diagnostics/ProblemFacet.cjs.map +1 -0
- package/dist/data/diagnostics/ProblemFacet.d.ts +9 -0
- package/dist/data/diagnostics/ProblemFacet.d.ts.map +1 -0
- package/dist/data/diagnostics/ProblemFacet.js +33 -0
- package/dist/data/diagnostics/ProblemFacet.js.map +1 -0
- package/dist/data/diagnostics/ProblemRow.cjs +62 -0
- package/dist/data/diagnostics/ProblemRow.cjs.map +1 -0
- package/dist/data/diagnostics/ProblemRow.d.ts +14 -0
- package/dist/data/diagnostics/ProblemRow.d.ts.map +1 -0
- package/dist/data/diagnostics/ProblemRow.js +62 -0
- package/dist/data/diagnostics/ProblemRow.js.map +1 -0
- package/dist/data/diagnostics/ProblemViewOptions.cjs +18 -0
- package/dist/data/diagnostics/ProblemViewOptions.cjs.map +1 -0
- package/dist/data/diagnostics/ProblemViewOptions.d.ts +6 -0
- package/dist/data/diagnostics/ProblemViewOptions.d.ts.map +1 -0
- package/dist/data/diagnostics/ProblemViewOptions.js +18 -0
- package/dist/data/diagnostics/ProblemViewOptions.js.map +1 -0
- package/dist/data/diagnostics/StackFrameRow.cjs +1 -1
- package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -1
- package/dist/data/diagnostics/StackFrameRow.js +1 -1
- package/dist/data/diagnostics/StackFrameRow.js.map +1 -1
- package/dist/data/diagnostics/diagnostic-identity.cjs +14 -0
- package/dist/data/diagnostics/diagnostic-identity.cjs.map +1 -0
- package/dist/data/diagnostics/diagnostic-identity.d.ts +3 -0
- package/dist/data/diagnostics/diagnostic-identity.d.ts.map +1 -0
- package/dist/data/diagnostics/diagnostic-identity.js +14 -0
- package/dist/data/diagnostics/diagnostic-identity.js.map +1 -0
- package/dist/data/diagnostics/use-problem-expansion.cjs +16 -0
- package/dist/data/diagnostics/use-problem-expansion.cjs.map +1 -0
- package/dist/data/diagnostics/use-problem-expansion.d.ts +3 -0
- package/dist/data/diagnostics/use-problem-expansion.d.ts.map +1 -0
- package/dist/data/diagnostics/use-problem-expansion.js +16 -0
- package/dist/data/diagnostics/use-problem-expansion.js.map +1 -0
- package/dist/data/git/GitChangeList.cjs +9 -6
- package/dist/data/git/GitChangeList.cjs.map +1 -1
- package/dist/data/git/GitChangeList.d.ts +6 -0
- package/dist/data/git/GitChangeList.d.ts.map +1 -1
- package/dist/data/git/GitChangeList.js +9 -6
- package/dist/data/git/GitChangeList.js.map +1 -1
- package/dist/data/git/pickers/GitPickersDemo.d.ts.map +1 -1
- package/dist/data/git/pickers/ReferencePicker.cjs +1 -0
- package/dist/data/git/pickers/ReferencePicker.cjs.map +1 -1
- package/dist/data/git/pickers/ReferencePicker.js +1 -0
- package/dist/data/git/pickers/ReferencePicker.js.map +1 -1
- package/dist/data/lint/LintDetail.cjs +230 -189
- package/dist/data/lint/LintDetail.cjs.map +1 -1
- package/dist/data/lint/LintDetail.d.ts +25 -3
- package/dist/data/lint/LintDetail.d.ts.map +1 -1
- package/dist/data/lint/LintDetail.js +231 -192
- package/dist/data/lint/LintDetail.js.map +1 -1
- package/dist/data/lint/LintFilterBar.cjs +78 -83
- package/dist/data/lint/LintFilterBar.cjs.map +1 -1
- package/dist/data/lint/LintFilterBar.d.ts +23 -6
- package/dist/data/lint/LintFilterBar.d.ts.map +1 -1
- package/dist/data/lint/LintFilterBar.js +78 -85
- package/dist/data/lint/LintFilterBar.js.map +1 -1
- package/dist/data/lint/LintIgnoreMenu.cjs +59 -0
- package/dist/data/lint/LintIgnoreMenu.cjs.map +1 -0
- package/dist/data/lint/LintIgnoreMenu.d.ts +20 -0
- package/dist/data/lint/LintIgnoreMenu.d.ts.map +1 -0
- package/dist/data/lint/LintIgnoreMenu.js +58 -0
- package/dist/data/lint/LintIgnoreMenu.js.map +1 -0
- package/dist/data/lint/LintResults.cjs +59 -14
- package/dist/data/lint/LintResults.cjs.map +1 -1
- package/dist/data/lint/LintResults.d.ts +25 -1
- package/dist/data/lint/LintResults.d.ts.map +1 -1
- package/dist/data/lint/LintResults.fixtures.d.ts +19 -0
- package/dist/data/lint/LintResults.fixtures.d.ts.map +1 -1
- package/dist/data/lint/LintResults.js +60 -15
- package/dist/data/lint/LintResults.js.map +1 -1
- package/dist/data/lint/LintTable.cjs +156 -0
- package/dist/data/lint/LintTable.cjs.map +1 -0
- package/dist/data/lint/LintTable.d.ts +13 -0
- package/dist/data/lint/LintTable.d.ts.map +1 -0
- package/dist/data/lint/LintTable.js +156 -0
- package/dist/data/lint/LintTable.js.map +1 -0
- package/dist/data/lint/LintTreeNode.cjs +42 -19
- package/dist/data/lint/LintTreeNode.cjs.map +1 -1
- package/dist/data/lint/LintTreeNode.d.ts +7 -2
- package/dist/data/lint/LintTreeNode.d.ts.map +1 -1
- package/dist/data/lint/LintTreeNode.js +44 -21
- package/dist/data/lint/LintTreeNode.js.map +1 -1
- package/dist/data/lint/ViolationSnippet.cjs +113 -0
- package/dist/data/lint/ViolationSnippet.cjs.map +1 -0
- package/dist/data/lint/ViolationSnippet.d.ts +20 -0
- package/dist/data/lint/ViolationSnippet.d.ts.map +1 -0
- package/dist/data/lint/ViolationSnippet.js +112 -0
- package/dist/data/lint/ViolationSnippet.js.map +1 -0
- package/dist/data/lint/actions.cjs +44 -16
- package/dist/data/lint/actions.cjs.map +1 -1
- package/dist/data/lint/actions.d.ts +7 -3
- package/dist/data/lint/actions.d.ts.map +1 -1
- package/dist/data/lint/actions.js +44 -16
- package/dist/data/lint/actions.js.map +1 -1
- package/dist/data/lint/grouping.cjs +105 -8
- package/dist/data/lint/grouping.cjs.map +1 -1
- package/dist/data/lint/grouping.d.ts +21 -1
- package/dist/data/lint/grouping.d.ts.map +1 -1
- package/dist/data/lint/grouping.js +105 -10
- package/dist/data/lint/grouping.js.map +1 -1
- package/dist/data/lint/ignore-menu-items.cjs +18 -0
- package/dist/data/lint/ignore-menu-items.cjs.map +1 -0
- package/dist/data/lint/ignore-menu-items.d.ts +6 -0
- package/dist/data/lint/ignore-menu-items.d.ts.map +1 -0
- package/dist/data/lint/ignore-menu-items.js +17 -0
- package/dist/data/lint/ignore-menu-items.js.map +1 -0
- package/dist/data/lint/index.d.ts +7 -5
- package/dist/data/lint/index.d.ts.map +1 -1
- package/dist/data/lint/stats.cjs +19 -4
- package/dist/data/lint/stats.cjs.map +1 -1
- package/dist/data/lint/stats.d.ts +13 -3
- package/dist/data/lint/stats.d.ts.map +1 -1
- package/dist/data/lint/stats.js +17 -5
- package/dist/data/lint/stats.js.map +1 -1
- package/dist/data/lint/types.cjs +8 -0
- package/dist/data/lint/types.cjs.map +1 -1
- package/dist/data/lint/types.d.ts +47 -0
- package/dist/data/lint/types.d.ts.map +1 -1
- package/dist/data/lint/types.js +8 -1
- package/dist/data/lint/types.js.map +1 -1
- package/dist/data/lint/violation-menu-items.cjs +31 -0
- package/dist/data/lint/violation-menu-items.cjs.map +1 -0
- package/dist/data/lint/violation-menu-items.d.ts +12 -0
- package/dist/data/lint/violation-menu-items.d.ts.map +1 -0
- package/dist/data/lint/violation-menu-items.js +31 -0
- package/dist/data/lint/violation-menu-items.js.map +1 -0
- package/dist/data/markdown-source-blocks.cjs +38 -0
- package/dist/data/markdown-source-blocks.cjs.map +1 -0
- package/dist/data/markdown-source-blocks.d.ts +32 -0
- package/dist/data/markdown-source-blocks.d.ts.map +1 -0
- package/dist/data/markdown-source-blocks.js +35 -0
- package/dist/data/markdown-source-blocks.js.map +1 -0
- package/dist/data/test-runner/FilterFacet.cjs +52 -0
- package/dist/data/test-runner/FilterFacet.cjs.map +1 -0
- package/dist/data/test-runner/FilterFacet.d.ts +13 -0
- package/dist/data/test-runner/FilterFacet.d.ts.map +1 -0
- package/dist/data/test-runner/FilterFacet.js +52 -0
- package/dist/data/test-runner/FilterFacet.js.map +1 -0
- package/dist/data/test-runner/MatrixMarks.cjs +42 -40
- package/dist/data/test-runner/MatrixMarks.cjs.map +1 -1
- package/dist/data/test-runner/MatrixMarks.d.ts +20 -4
- package/dist/data/test-runner/MatrixMarks.d.ts.map +1 -1
- package/dist/data/test-runner/MatrixMarks.js +43 -42
- package/dist/data/test-runner/MatrixMarks.js.map +1 -1
- package/dist/data/test-runner/TestAttemptDetail.cjs +1 -1
- package/dist/data/test-runner/TestAttemptDetail.js +1 -1
- package/dist/data/test-runner/TestDetailPanel.cjs +11 -0
- package/dist/data/test-runner/TestDetailPanel.cjs.map +1 -1
- package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
- package/dist/data/test-runner/TestDetailPanel.js +11 -0
- package/dist/data/test-runner/TestDetailPanel.js.map +1 -1
- package/dist/data/test-runner/TestFilterBar.cjs +3 -44
- package/dist/data/test-runner/TestFilterBar.cjs.map +1 -1
- package/dist/data/test-runner/TestFilterBar.d.ts.map +1 -1
- package/dist/data/test-runner/TestFilterBar.js +3 -44
- package/dist/data/test-runner/TestFilterBar.js.map +1 -1
- package/dist/data/test-runner/TestRunner.cjs +3 -1
- package/dist/data/test-runner/TestRunner.cjs.map +1 -1
- package/dist/data/test-runner/TestRunner.d.ts +7 -1
- package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
- package/dist/data/test-runner/TestRunner.js +3 -1
- package/dist/data/test-runner/TestRunner.js.map +1 -1
- package/dist/data/test-runner/context.cjs.map +1 -1
- package/dist/data/test-runner/context.d.ts +3 -0
- package/dist/data/test-runner/context.d.ts.map +1 -1
- package/dist/data/test-runner/context.js.map +1 -1
- package/dist/data/test-runner/index.d.ts +2 -2
- package/dist/data/test-runner/index.d.ts.map +1 -1
- package/dist/data/test-runner/matrix-marks.cjs +2 -11
- package/dist/data/test-runner/matrix-marks.cjs.map +1 -1
- package/dist/data/test-runner/matrix-marks.d.ts +2 -4
- package/dist/data/test-runner/matrix-marks.d.ts.map +1 -1
- package/dist/data/test-runner/matrix-marks.js +3 -11
- package/dist/data/test-runner/matrix-marks.js.map +1 -1
- package/dist/data/test-runner/types.d.ts +2 -0
- package/dist/data/test-runner/types.d.ts.map +1 -1
- package/dist/data/timeseries-query.cjs +98 -2
- package/dist/data/timeseries-query.cjs.map +1 -1
- package/dist/data/timeseries-query.d.ts +31 -5
- package/dist/data/timeseries-query.d.ts.map +1 -1
- package/dist/data/timeseries-query.js +98 -3
- package/dist/data/timeseries-query.js.map +1 -1
- package/dist/data/timeseries-stream-provider.cjs +38 -0
- package/dist/data/timeseries-stream-provider.cjs.map +1 -0
- package/dist/data/timeseries-stream-provider.d.ts +26 -0
- package/dist/data/timeseries-stream-provider.d.ts.map +1 -0
- package/dist/data/timeseries-stream-provider.js +38 -0
- package/dist/data/timeseries-stream-provider.js.map +1 -0
- package/dist/data/timeseries-stream.cjs +304 -0
- package/dist/data/timeseries-stream.cjs.map +1 -0
- package/dist/data/timeseries-stream.d.ts +81 -0
- package/dist/data/timeseries-stream.d.ts.map +1 -0
- package/dist/data/timeseries-stream.fixtures.d.ts +36 -0
- package/dist/data/timeseries-stream.fixtures.d.ts.map +1 -0
- package/dist/data/timeseries-stream.js +296 -0
- package/dist/data/timeseries-stream.js.map +1 -0
- package/dist/data/token-style.cjs +13 -0
- package/dist/data/token-style.cjs.map +1 -0
- package/dist/data/token-style.d.ts +4 -0
- package/dist/data/token-style.d.ts.map +1 -0
- package/dist/data/token-style.js +13 -0
- package/dist/data/token-style.js.map +1 -0
- package/dist/data/traces/ProcessTraceDetail.cjs +1 -1
- package/dist/data/traces/ProcessTraceDetail.js +1 -1
- package/dist/data/traces/index.d.ts +1 -1
- package/dist/data/traces/index.d.ts.map +1 -1
- package/dist/data/use-data-table-virtual.d.ts +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data/workload-panel/MemoryStack.cjs +49 -0
- package/dist/data/workload-panel/MemoryStack.cjs.map +1 -0
- package/dist/data/workload-panel/MemoryStack.d.ts +11 -0
- package/dist/data/workload-panel/MemoryStack.d.ts.map +1 -0
- package/dist/data/workload-panel/MemoryStack.js +48 -0
- package/dist/data/workload-panel/MemoryStack.js.map +1 -0
- package/dist/data/workload-panel/Metrics.cjs +197 -0
- package/dist/data/workload-panel/Metrics.cjs.map +1 -0
- package/dist/data/workload-panel/Metrics.d.ts +11 -0
- package/dist/data/workload-panel/Metrics.d.ts.map +1 -0
- package/dist/data/workload-panel/Metrics.js +196 -0
- package/dist/data/workload-panel/Metrics.js.map +1 -0
- package/dist/data/workload-panel/WorkloadPanel.cjs +66 -0
- package/dist/data/workload-panel/WorkloadPanel.cjs.map +1 -0
- package/dist/data/workload-panel/WorkloadPanel.d.ts +3 -0
- package/dist/data/workload-panel/WorkloadPanel.d.ts.map +1 -0
- package/dist/data/workload-panel/WorkloadPanel.js +66 -0
- package/dist/data/workload-panel/WorkloadPanel.js.map +1 -0
- package/dist/data/workload-panel/fixtures.d.ts +60 -0
- package/dist/data/workload-panel/fixtures.d.ts.map +1 -0
- package/dist/data/workload-panel/model.cjs +137 -0
- package/dist/data/workload-panel/model.cjs.map +1 -0
- package/dist/data/workload-panel/model.d.ts +53 -0
- package/dist/data/workload-panel/model.d.ts.map +1 -0
- package/dist/data/workload-panel/model.js +133 -0
- package/dist/data/workload-panel/model.js.map +1 -0
- package/dist/data/workload-panel/types.d.ts +56 -0
- package/dist/data/workload-panel/types.d.ts.map +1 -0
- package/dist/data.cjs +58 -7
- package/dist/data.d.ts +9 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +29 -12
- package/dist/file-findings/AnnotatedCode.cjs +243 -0
- package/dist/file-findings/AnnotatedCode.cjs.map +1 -0
- package/dist/file-findings/AnnotatedCode.d.ts +30 -0
- package/dist/file-findings/AnnotatedCode.d.ts.map +1 -0
- package/dist/file-findings/AnnotatedCode.js +243 -0
- package/dist/file-findings/AnnotatedCode.js.map +1 -0
- package/dist/file-findings/FileFindingsView.cjs +213 -0
- package/dist/file-findings/FileFindingsView.cjs.map +1 -0
- package/dist/file-findings/FileFindingsView.d.ts +35 -0
- package/dist/file-findings/FileFindingsView.d.ts.map +1 -0
- package/dist/file-findings/FileFindingsView.js +213 -0
- package/dist/file-findings/FileFindingsView.js.map +1 -0
- package/dist/file-findings/LazyAnnotatedCode.cjs +22 -0
- package/dist/file-findings/LazyAnnotatedCode.cjs.map +1 -0
- package/dist/file-findings/LazyAnnotatedCode.d.ts +5 -0
- package/dist/file-findings/LazyAnnotatedCode.d.ts.map +1 -0
- package/dist/file-findings/LazyAnnotatedCode.js +22 -0
- package/dist/file-findings/LazyAnnotatedCode.js.map +1 -0
- package/dist/file-findings/adapters.cjs +155 -0
- package/dist/file-findings/adapters.cjs.map +1 -0
- package/dist/file-findings/adapters.d.ts +24 -0
- package/dist/file-findings/adapters.d.ts.map +1 -0
- package/dist/file-findings/adapters.js +153 -0
- package/dist/file-findings/adapters.js.map +1 -0
- package/dist/file-findings/file-review/CommentDraft.cjs +97 -0
- package/dist/file-findings/file-review/CommentDraft.cjs.map +1 -0
- package/dist/file-findings/file-review/CommentDraft.d.ts +25 -0
- package/dist/file-findings/file-review/CommentDraft.d.ts.map +1 -0
- package/dist/file-findings/file-review/CommentDraft.js +97 -0
- package/dist/file-findings/file-review/CommentDraft.js.map +1 -0
- package/dist/file-findings/file-review/FileReview.cjs +863 -0
- package/dist/file-findings/file-review/FileReview.cjs.map +1 -0
- package/dist/file-findings/file-review/FileReview.d.ts +79 -0
- package/dist/file-findings/file-review/FileReview.d.ts.map +1 -0
- package/dist/file-findings/file-review/FileReview.fixtures.d.ts +25 -0
- package/dist/file-findings/file-review/FileReview.fixtures.d.ts.map +1 -0
- package/dist/file-findings/file-review/FileReview.js +863 -0
- package/dist/file-findings/file-review/FileReview.js.map +1 -0
- package/dist/file-findings/file-review/InlineAuthors.cjs +77 -0
- package/dist/file-findings/file-review/InlineAuthors.cjs.map +1 -0
- package/dist/file-findings/file-review/InlineAuthors.d.ts +9 -0
- package/dist/file-findings/file-review/InlineAuthors.d.ts.map +1 -0
- package/dist/file-findings/file-review/InlineAuthors.js +77 -0
- package/dist/file-findings/file-review/InlineAuthors.js.map +1 -0
- package/dist/file-findings/file-review/InlineThread.cjs +77 -0
- package/dist/file-findings/file-review/InlineThread.cjs.map +1 -0
- package/dist/file-findings/file-review/InlineThread.d.ts +27 -0
- package/dist/file-findings/file-review/InlineThread.d.ts.map +1 -0
- package/dist/file-findings/file-review/InlineThread.js +77 -0
- package/dist/file-findings/file-review/InlineThread.js.map +1 -0
- package/dist/file-findings/file-review/ProblemsList.cjs +164 -0
- package/dist/file-findings/file-review/ProblemsList.cjs.map +1 -0
- package/dist/file-findings/file-review/ProblemsList.d.ts +15 -0
- package/dist/file-findings/file-review/ProblemsList.d.ts.map +1 -0
- package/dist/file-findings/file-review/ProblemsList.js +164 -0
- package/dist/file-findings/file-review/ProblemsList.js.map +1 -0
- package/dist/file-findings/file-review/SourceView.cjs +179 -0
- package/dist/file-findings/file-review/SourceView.cjs.map +1 -0
- package/dist/file-findings/file-review/SourceView.d.ts +29 -0
- package/dist/file-findings/file-review/SourceView.d.ts.map +1 -0
- package/dist/file-findings/file-review/SourceView.js +179 -0
- package/dist/file-findings/file-review/SourceView.js.map +1 -0
- package/dist/file-findings/file-review/blame.cjs +35 -0
- package/dist/file-findings/file-review/blame.cjs.map +1 -0
- package/dist/file-findings/file-review/blame.d.ts +28 -0
- package/dist/file-findings/file-review/blame.d.ts.map +1 -0
- package/dist/file-findings/file-review/blame.js +33 -0
- package/dist/file-findings/file-review/blame.js.map +1 -0
- package/dist/file-findings/file-review/geometry.cjs +101 -0
- package/dist/file-findings/file-review/geometry.cjs.map +1 -0
- package/dist/file-findings/file-review/geometry.d.ts +45 -0
- package/dist/file-findings/file-review/geometry.d.ts.map +1 -0
- package/dist/file-findings/file-review/geometry.js +98 -0
- package/dist/file-findings/file-review/geometry.js.map +1 -0
- package/dist/file-findings/file-review/hooks.cjs +101 -0
- package/dist/file-findings/file-review/hooks.cjs.map +1 -0
- package/dist/file-findings/file-review/hooks.d.ts +22 -0
- package/dist/file-findings/file-review/hooks.d.ts.map +1 -0
- package/dist/file-findings/file-review/hooks.js +99 -0
- package/dist/file-findings/file-review/hooks.js.map +1 -0
- package/dist/file-findings/file-review/marks.cjs +52 -0
- package/dist/file-findings/file-review/marks.cjs.map +1 -0
- package/dist/file-findings/file-review/marks.d.ts +23 -0
- package/dist/file-findings/file-review/marks.d.ts.map +1 -0
- package/dist/file-findings/file-review/marks.js +47 -0
- package/dist/file-findings/file-review/marks.js.map +1 -0
- package/dist/file-findings/file-review/problem-filters.cjs +14 -0
- package/dist/file-findings/file-review/problem-filters.cjs.map +1 -0
- package/dist/file-findings/file-review/problem-filters.d.ts +10 -0
- package/dist/file-findings/file-review/problem-filters.d.ts.map +1 -0
- package/dist/file-findings/file-review/problem-filters.js +13 -0
- package/dist/file-findings/file-review/problem-filters.js.map +1 -0
- package/dist/file-findings/file-review/quote-anchor.cjs +234 -0
- package/dist/file-findings/file-review/quote-anchor.cjs.map +1 -0
- package/dist/file-findings/file-review/quote-anchor.d.ts +54 -0
- package/dist/file-findings/file-review/quote-anchor.d.ts.map +1 -0
- package/dist/file-findings/file-review/quote-anchor.js +226 -0
- package/dist/file-findings/file-review/quote-anchor.js.map +1 -0
- package/dist/file-findings/file-review/source-anchor.cjs +104 -0
- package/dist/file-findings/file-review/source-anchor.cjs.map +1 -0
- package/dist/file-findings/file-review/source-anchor.d.ts +27 -0
- package/dist/file-findings/file-review/source-anchor.d.ts.map +1 -0
- package/dist/file-findings/file-review/source-anchor.js +99 -0
- package/dist/file-findings/file-review/source-anchor.js.map +1 -0
- package/dist/file-findings/file-review/source-marks.cjs +71 -0
- package/dist/file-findings/file-review/source-marks.cjs.map +1 -0
- package/dist/file-findings/file-review/source-marks.d.ts +27 -0
- package/dist/file-findings/file-review/source-marks.d.ts.map +1 -0
- package/dist/file-findings/file-review/source-marks.js +68 -0
- package/dist/file-findings/file-review/source-marks.js.map +1 -0
- package/dist/file-findings/findings-comments.cjs +136 -0
- package/dist/file-findings/findings-comments.cjs.map +1 -0
- package/dist/file-findings/findings-comments.d.ts +28 -0
- package/dist/file-findings/findings-comments.d.ts.map +1 -0
- package/dist/file-findings/findings-comments.js +131 -0
- package/dist/file-findings/findings-comments.js.map +1 -0
- package/dist/file-findings/findings-languages.cjs +53 -0
- package/dist/file-findings/findings-languages.cjs.map +1 -0
- package/dist/file-findings/findings-languages.d.ts +11 -0
- package/dist/file-findings/findings-languages.d.ts.map +1 -0
- package/dist/file-findings/findings-languages.js +53 -0
- package/dist/file-findings/findings-languages.js.map +1 -0
- package/dist/file-findings/mdx-source.cjs +48 -0
- package/dist/file-findings/mdx-source.cjs.map +1 -0
- package/dist/file-findings/mdx-source.d.ts +7 -0
- package/dist/file-findings/mdx-source.d.ts.map +1 -0
- package/dist/file-findings/mdx-source.js +48 -0
- package/dist/file-findings/mdx-source.js.map +1 -0
- package/dist/file-findings/monaco-language.cjs +73 -0
- package/dist/file-findings/monaco-language.cjs.map +1 -0
- package/dist/file-findings/monaco-language.d.ts +11 -0
- package/dist/file-findings/monaco-language.d.ts.map +1 -0
- package/dist/file-findings/monaco-language.js +72 -0
- package/dist/file-findings/monaco-language.js.map +1 -0
- package/dist/file-findings/severity-counts.cjs +20 -0
- package/dist/file-findings/severity-counts.cjs.map +1 -0
- package/dist/file-findings/severity-counts.d.ts +5 -0
- package/dist/file-findings/severity-counts.d.ts.map +1 -0
- package/dist/file-findings/severity-counts.js +19 -0
- package/dist/file-findings/severity-counts.js.map +1 -0
- package/dist/file-findings/types.cjs +12 -0
- package/dist/file-findings/types.cjs.map +1 -0
- package/dist/file-findings/types.d.ts +43 -0
- package/dist/file-findings/types.d.ts.map +1 -0
- package/dist/file-findings/types.js +11 -0
- package/dist/file-findings/types.js.map +1 -0
- package/dist/file-findings.cjs +47 -0
- package/dist/file-findings.d.ts +15 -0
- package/dist/file-findings.d.ts.map +1 -0
- package/dist/file-findings.js +15 -0
- package/dist/hooks/event-hub.cjs +22 -8
- package/dist/hooks/event-hub.cjs.map +1 -1
- package/dist/hooks/event-hub.d.ts.map +1 -1
- package/dist/hooks/event-hub.js +22 -8
- package/dist/hooks/event-hub.js.map +1 -1
- package/dist/icons/components/UiBrowser.cjs +51 -0
- package/dist/icons/components/UiBrowser.cjs.map +1 -0
- package/dist/icons/components/UiBrowser.d.ts +15 -0
- package/dist/icons/components/UiBrowser.d.ts.map +1 -0
- package/dist/icons/components/UiBrowser.js +48 -0
- package/dist/icons/components/UiBrowser.js.map +1 -0
- package/dist/icons/components/UiCreditCard.cjs +51 -0
- package/dist/icons/components/UiCreditCard.cjs.map +1 -0
- package/dist/icons/components/UiCreditCard.d.ts +15 -0
- package/dist/icons/components/UiCreditCard.d.ts.map +1 -0
- package/dist/icons/components/UiCreditCard.js +48 -0
- package/dist/icons/components/UiCreditCard.js.map +1 -0
- package/dist/icons/components/UiShoppingCart.cjs +51 -0
- package/dist/icons/components/UiShoppingCart.cjs.map +1 -0
- package/dist/icons/components/UiShoppingCart.d.ts +15 -0
- package/dist/icons/components/UiShoppingCart.d.ts.map +1 -0
- package/dist/icons/components/UiShoppingCart.js +48 -0
- package/dist/icons/components/UiShoppingCart.js.map +1 -0
- package/dist/icons/index.d.ts +6 -0
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/icons/registry.cjs +6 -0
- package/dist/icons/registry.cjs.map +1 -1
- package/dist/icons/registry.d.ts.map +1 -1
- package/dist/icons/registry.js +6 -0
- package/dist/icons/registry.js.map +1 -1
- package/dist/icons.cjs +9 -0
- package/dist/icons.js +4 -1
- package/dist/index.cjs +76 -8
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -14
- package/dist/layout/AppShell.cjs +37 -21
- package/dist/layout/AppShell.cjs.map +1 -1
- package/dist/layout/AppShell.d.ts +13 -2
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/AppShell.js +37 -21
- package/dist/layout/AppShell.js.map +1 -1
- package/dist/layout/AppShell.nav.cjs +7 -6
- package/dist/layout/AppShell.nav.cjs.map +1 -1
- package/dist/layout/AppShell.nav.d.ts.map +1 -1
- package/dist/layout/AppShell.nav.js +7 -6
- package/dist/layout/AppShell.nav.js.map +1 -1
- package/dist/layout/SplitPane.cjs +16 -6
- package/dist/layout/SplitPane.cjs.map +1 -1
- package/dist/layout/SplitPane.d.ts +12 -2
- package/dist/layout/SplitPane.d.ts.map +1 -1
- package/dist/layout/SplitPane.js +16 -6
- package/dist/layout/SplitPane.js.map +1 -1
- package/dist/layout/Workspace.cjs +37 -33
- package/dist/layout/Workspace.cjs.map +1 -1
- package/dist/layout/Workspace.d.ts.map +1 -1
- package/dist/layout/Workspace.js +37 -33
- package/dist/layout/Workspace.js.map +1 -1
- package/dist/layout/Workspace.regions.cjs +3 -3
- package/dist/layout/Workspace.regions.cjs.map +1 -1
- package/dist/layout/Workspace.regions.js +3 -3
- package/dist/layout/Workspace.regions.js.map +1 -1
- package/dist/lib/breakpoints.cjs +102 -0
- package/dist/lib/breakpoints.cjs.map +1 -0
- package/dist/lib/breakpoints.d.ts +36 -0
- package/dist/lib/breakpoints.d.ts.map +1 -0
- package/dist/lib/breakpoints.js +99 -0
- package/dist/lib/breakpoints.js.map +1 -0
- package/dist/lib/combobox.cjs +2 -1
- package/dist/lib/combobox.cjs.map +1 -1
- package/dist/lib/combobox.d.ts +1 -1
- package/dist/lib/combobox.d.ts.map +1 -1
- package/dist/lib/combobox.js +2 -1
- package/dist/lib/combobox.js.map +1 -1
- package/dist/lib/path-tree.cjs +21 -0
- package/dist/lib/path-tree.cjs.map +1 -1
- package/dist/lib/path-tree.d.ts +15 -0
- package/dist/lib/path-tree.d.ts.map +1 -1
- package/dist/lib/path-tree.js +21 -1
- package/dist/lib/path-tree.js.map +1 -1
- package/dist/overlay/Modal.cjs +2 -1
- package/dist/overlay/Modal.cjs.map +1 -1
- package/dist/overlay/Modal.d.ts.map +1 -1
- package/dist/overlay/Modal.js +2 -1
- package/dist/overlay/Modal.js.map +1 -1
- package/dist/overlay/dropdownMenuContext.d.ts +1 -1
- package/dist/profiles/editor/profileEditor.cjs +1 -1
- package/dist/profiles/editor/profileEditor.cjs.map +1 -1
- package/dist/profiles/editor/profileEditor.js +1 -1
- package/dist/profiles/editor/profileEditor.js.map +1 -1
- package/dist/profiles/editor/profileEditorSections.cjs +2 -2
- package/dist/profiles/editor/profileEditorSections.cjs.map +1 -1
- package/dist/profiles/editor/profileEditorSections.js +2 -2
- package/dist/profiles/editor/profileEditorSections.js.map +1 -1
- package/dist/profiles/query/prometheusResults.cjs +24 -36
- package/dist/profiles/query/prometheusResults.cjs.map +1 -1
- package/dist/profiles/query/prometheusResults.d.ts.map +1 -1
- package/dist/profiles/query/prometheusResults.js +24 -36
- package/dist/profiles/query/prometheusResults.js.map +1 -1
- package/dist/rpc/CommandForm.cjs +1 -1
- package/dist/rpc/CommandForm.cjs.map +1 -1
- package/dist/rpc/CommandForm.js +1 -1
- package/dist/rpc/CommandForm.js.map +1 -1
- package/dist/rpc/classify.cjs +1 -1
- package/dist/rpc/classify.cjs.map +1 -1
- package/dist/rpc/classify.d.ts.map +1 -1
- package/dist/rpc/classify.js +1 -1
- package/dist/rpc/classify.js.map +1 -1
- package/dist/rpc/useOperations.d.ts +24 -24
- package/dist/rpc.cjs +0 -2
- package/dist/rpc.d.ts +0 -1
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +1 -2
- package/dist/styles.css +1 -1
- package/dist/utils.cjs +6 -0
- package/dist/utils.d.ts +2 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -2
- package/package.json +9 -3
- package/schemas/json-schema-form.schema.json +9 -1
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
let react = require("react");
|
|
2
|
+
// src/data/timeseries-stream.ts
|
|
3
|
+
var DEFAULT_DEBOUNCE_MS = 50;
|
|
4
|
+
var CLOSED = 2;
|
|
5
|
+
var DEFAULT_WINDOW_MS = 36e5;
|
|
6
|
+
/** The state of a group nothing has been received for. */
|
|
7
|
+
var EMPTY_TIMESERIES_STREAM_GROUP = Object.freeze({
|
|
8
|
+
bySource: /* @__PURE__ */ new Map(),
|
|
9
|
+
answered: /* @__PURE__ */ new Set(),
|
|
10
|
+
error: null
|
|
11
|
+
});
|
|
12
|
+
function timeseriesStreamGroupKey({ baseUrl, range, interval }) {
|
|
13
|
+
return JSON.stringify([
|
|
14
|
+
baseUrl,
|
|
15
|
+
range,
|
|
16
|
+
interval
|
|
17
|
+
]);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The stream tick for a widget's `refreshMs`: whole seconds, rounded up, at
|
|
21
|
+
* least 1s (the server minimum). `null` for `refreshMs <= 0`, which asks for
|
|
22
|
+
* no live updates, so such widgets fetch once instead of streaming.
|
|
23
|
+
*/
|
|
24
|
+
function timeseriesStreamInterval(refreshMs) {
|
|
25
|
+
if (!(refreshMs > 0)) return null;
|
|
26
|
+
return `${Math.max(1, Math.ceil(refreshMs / 1e3))}s`;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Where a widget's series streams from. With a `baseUrl` the series streams
|
|
30
|
+
* as `id` from `{baseUrl}stream`. Without one (the single-`url` panel form),
|
|
31
|
+
* the url is split at its last path `/`: `"/api/v1/metrics/sqlserver.cpu"`
|
|
32
|
+
* streams as `sqlserver.cpu` from `/api/v1/metrics/stream`, the same single
|
|
33
|
+
* segment the server's `GET {prefix}/metrics/{id}` route reads. A url with no
|
|
34
|
+
* such prefix has no stream endpoint, so it is null and keeps fetching.
|
|
35
|
+
*/
|
|
36
|
+
function timeseriesStreamAddress(baseUrl, id) {
|
|
37
|
+
if (baseUrl !== "") return {
|
|
38
|
+
baseUrl,
|
|
39
|
+
id
|
|
40
|
+
};
|
|
41
|
+
const query = id.indexOf("?");
|
|
42
|
+
const slash = id.lastIndexOf("/", query === -1 ? id.length : query);
|
|
43
|
+
if (slash === -1 || slash === id.length - 1 || slash === query - 1) return null;
|
|
44
|
+
return {
|
|
45
|
+
baseUrl: id.slice(0, slash + 1),
|
|
46
|
+
id: id.slice(slash + 1)
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function timeseriesStreamUrl(group, ids) {
|
|
50
|
+
const params = new URLSearchParams();
|
|
51
|
+
for (const id of ids) params.append("id", id);
|
|
52
|
+
if (group.range) params.set("since", group.range);
|
|
53
|
+
params.set("interval", group.interval);
|
|
54
|
+
return `${group.baseUrl}stream?${params.toString()}`;
|
|
55
|
+
}
|
|
56
|
+
var GO_DURATION_UNITS_MS = {
|
|
57
|
+
ns: 1e-6,
|
|
58
|
+
us: .001,
|
|
59
|
+
"µs": .001,
|
|
60
|
+
ms: 1,
|
|
61
|
+
s: 1e3,
|
|
62
|
+
m: 6e4,
|
|
63
|
+
h: 36e5
|
|
64
|
+
};
|
|
65
|
+
var GO_DURATION = /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:ns|us|µs|ms|s|m|h)(?:(?:\d+(?:\.\d*)?|\.\d+)(?:ns|us|µs|ms|s|m|h))*$/;
|
|
66
|
+
var GO_DURATION_PART = /(\d+(?:\.\d*)?|\.\d+)(ns|us|µs|ms|s|m|h)/g;
|
|
67
|
+
/**
|
|
68
|
+
* The oldest timestamp (epoch ms) the window `range` keeps at `nowMs`, read the
|
|
69
|
+
* way the server reads `since`: an RFC3339 time, or a Go duration before now.
|
|
70
|
+
*/
|
|
71
|
+
function timeseriesWindowStart(range, nowMs) {
|
|
72
|
+
if (range === "") return nowMs - DEFAULT_WINDOW_MS;
|
|
73
|
+
if (range === "0") return nowMs;
|
|
74
|
+
if (GO_DURATION.test(range)) {
|
|
75
|
+
let ms = 0;
|
|
76
|
+
for (const [, amount, unit] of range.matchAll(GO_DURATION_PART)) ms += Number(amount) * GO_DURATION_UNITS_MS[unit];
|
|
77
|
+
return nowMs - ms;
|
|
78
|
+
}
|
|
79
|
+
const at = Date.parse(range);
|
|
80
|
+
if (Number.isNaN(at)) throw new Error(`metrics range ${JSON.stringify(range)} is neither a Go duration nor an RFC3339 time`);
|
|
81
|
+
return at;
|
|
82
|
+
}
|
|
83
|
+
function pointTime(point) {
|
|
84
|
+
const at = Date.parse(point.at);
|
|
85
|
+
if (Number.isNaN(at)) throw new Error(`metrics point has an invalid timestamp ${JSON.stringify(point.at)}`);
|
|
86
|
+
return at;
|
|
87
|
+
}
|
|
88
|
+
function trimPoints(points, startMs) {
|
|
89
|
+
return points.filter((p) => pointTime(p) >= startMs);
|
|
90
|
+
}
|
|
91
|
+
/** `existing` with `fresh` merged in by timestamp (fresh wins), sorted oldest first. */
|
|
92
|
+
function mergePoints(existing, fresh) {
|
|
93
|
+
const byTime = /* @__PURE__ */ new Map();
|
|
94
|
+
for (const p of existing) byTime.set(pointTime(p), p);
|
|
95
|
+
for (const p of fresh) byTime.set(pointTime(p), p);
|
|
96
|
+
return [...byTime.entries()].sort(([a], [b]) => a - b).map(([, p]) => p);
|
|
97
|
+
}
|
|
98
|
+
function parseFrame(name, data) {
|
|
99
|
+
const frame = JSON.parse(String(data));
|
|
100
|
+
if (!frame || !Array.isArray(frame.series)) throw new Error(`metrics stream ${name} frame has no series array`);
|
|
101
|
+
return frame;
|
|
102
|
+
}
|
|
103
|
+
function buildState(group) {
|
|
104
|
+
const bySource = /* @__PURE__ */ new Map();
|
|
105
|
+
for (const s of group.series.values()) {
|
|
106
|
+
const list = bySource.get(s.source) ?? [];
|
|
107
|
+
list.push(s);
|
|
108
|
+
bySource.set(s.source, list);
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
bySource,
|
|
112
|
+
answered: new Set(group.answered),
|
|
113
|
+
error: group.error
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/** Creates the store behind {@link TimeseriesStreamProvider}; see the module comment. */
|
|
117
|
+
function createTimeseriesStream(options) {
|
|
118
|
+
const { factory, debounceMs = DEFAULT_DEBOUNCE_MS, now = Date.now } = options;
|
|
119
|
+
const groups = /* @__PURE__ */ new Map();
|
|
120
|
+
const dirty = /* @__PURE__ */ new Set();
|
|
121
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
122
|
+
let flushTimer = null;
|
|
123
|
+
let snapshot = /* @__PURE__ */ new Map();
|
|
124
|
+
function notify(next) {
|
|
125
|
+
snapshot = next;
|
|
126
|
+
for (const listener of Array.from(listeners)) listener();
|
|
127
|
+
}
|
|
128
|
+
function publish(group) {
|
|
129
|
+
notify(new Map(snapshot).set(group.key, buildState(group)));
|
|
130
|
+
}
|
|
131
|
+
function forget(key) {
|
|
132
|
+
const next = new Map(snapshot);
|
|
133
|
+
next.delete(key);
|
|
134
|
+
notify(next);
|
|
135
|
+
}
|
|
136
|
+
function fail(group, error) {
|
|
137
|
+
group.error = error;
|
|
138
|
+
publish(group);
|
|
139
|
+
}
|
|
140
|
+
function applySnapshot(group, ids, frame) {
|
|
141
|
+
const start = timeseriesWindowStart(group.range, now());
|
|
142
|
+
group.series = new Map(frame.series.map((s) => [s.id, {
|
|
143
|
+
...s,
|
|
144
|
+
points: trimPoints(s.points, start)
|
|
145
|
+
}]));
|
|
146
|
+
group.answered = new Set(ids);
|
|
147
|
+
group.error = null;
|
|
148
|
+
}
|
|
149
|
+
function applyAppend(group, frame) {
|
|
150
|
+
const start = timeseriesWindowStart(group.range, now());
|
|
151
|
+
const next = /* @__PURE__ */ new Map();
|
|
152
|
+
for (const [id, s] of group.series) next.set(id, {
|
|
153
|
+
...s,
|
|
154
|
+
points: trimPoints(s.points, start)
|
|
155
|
+
});
|
|
156
|
+
for (const s of frame.series) {
|
|
157
|
+
const held = next.get(s.id);
|
|
158
|
+
const points = held ? mergePoints(held.points, s.points) : s.points;
|
|
159
|
+
next.set(s.id, {
|
|
160
|
+
...s,
|
|
161
|
+
points: trimPoints(points, start)
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
for (const id of frame.removed ?? []) next.delete(id);
|
|
165
|
+
group.series = next;
|
|
166
|
+
}
|
|
167
|
+
function open(group, ids) {
|
|
168
|
+
const url = timeseriesStreamUrl(group, ids);
|
|
169
|
+
const source = factory(url);
|
|
170
|
+
const current = () => group.source === source;
|
|
171
|
+
const onFrame = (name) => (event) => {
|
|
172
|
+
if (!current()) return;
|
|
173
|
+
try {
|
|
174
|
+
const frame = parseFrame(name, event.data);
|
|
175
|
+
if (name === "snapshot") applySnapshot(group, ids, frame);
|
|
176
|
+
else applyAppend(group, frame);
|
|
177
|
+
publish(group);
|
|
178
|
+
} catch (err) {
|
|
179
|
+
fail(group, err instanceof Error ? err : new Error(String(err)));
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
source.addEventListener("snapshot", onFrame("snapshot"));
|
|
183
|
+
source.addEventListener("append", onFrame("append"));
|
|
184
|
+
source.addEventListener("error", (event) => {
|
|
185
|
+
if (!current()) return;
|
|
186
|
+
if (event instanceof ErrorEvent) {
|
|
187
|
+
fail(group, new Error(event.message));
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
const data = event.data;
|
|
191
|
+
if (typeof data === "string" && data !== "") {
|
|
192
|
+
let message;
|
|
193
|
+
try {
|
|
194
|
+
message = String(JSON.parse(data).error ?? data);
|
|
195
|
+
} catch {
|
|
196
|
+
message = data;
|
|
197
|
+
}
|
|
198
|
+
fail(group, new Error(message));
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
if (source.readyState === CLOSED) fail(group, /* @__PURE__ */ new Error(`metrics stream closed: ${url}`));
|
|
202
|
+
});
|
|
203
|
+
group.source?.close();
|
|
204
|
+
group.source = source;
|
|
205
|
+
group.ids = ids;
|
|
206
|
+
}
|
|
207
|
+
function reconcile(key) {
|
|
208
|
+
const group = groups.get(key);
|
|
209
|
+
if (!group) return;
|
|
210
|
+
const ids = [...group.refs.keys()].sort();
|
|
211
|
+
if (ids.length === 0) {
|
|
212
|
+
group.source?.close();
|
|
213
|
+
groups.delete(key);
|
|
214
|
+
forget(key);
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
if (ids.length === group.ids.length && ids.every((id, i) => id === group.ids[i])) return;
|
|
218
|
+
const kept = new Set(ids);
|
|
219
|
+
for (const [id, s] of group.series) if (!kept.has(s.source)) group.series.delete(id);
|
|
220
|
+
group.answered = new Set([...group.answered].filter((id) => kept.has(id)));
|
|
221
|
+
group.error = null;
|
|
222
|
+
open(group, ids);
|
|
223
|
+
publish(group);
|
|
224
|
+
}
|
|
225
|
+
function flush() {
|
|
226
|
+
flushTimer = null;
|
|
227
|
+
const keys = [...dirty];
|
|
228
|
+
dirty.clear();
|
|
229
|
+
for (const key of keys) reconcile(key);
|
|
230
|
+
}
|
|
231
|
+
function markDirty(key) {
|
|
232
|
+
dirty.add(key);
|
|
233
|
+
if (flushTimer) clearTimeout(flushTimer);
|
|
234
|
+
flushTimer = setTimeout(flush, debounceMs);
|
|
235
|
+
}
|
|
236
|
+
return {
|
|
237
|
+
register(registration) {
|
|
238
|
+
const { id, ...groupFields } = registration;
|
|
239
|
+
if (id === "") throw new Error("timeseries stream registration needs a metric id");
|
|
240
|
+
const key = timeseriesStreamGroupKey(groupFields);
|
|
241
|
+
let group = groups.get(key);
|
|
242
|
+
if (!group) {
|
|
243
|
+
group = {
|
|
244
|
+
...groupFields,
|
|
245
|
+
key,
|
|
246
|
+
refs: /* @__PURE__ */ new Map(),
|
|
247
|
+
ids: [],
|
|
248
|
+
source: null,
|
|
249
|
+
series: /* @__PURE__ */ new Map(),
|
|
250
|
+
answered: /* @__PURE__ */ new Set(),
|
|
251
|
+
error: null
|
|
252
|
+
};
|
|
253
|
+
groups.set(key, group);
|
|
254
|
+
}
|
|
255
|
+
const owner = group;
|
|
256
|
+
owner.refs.set(id, (owner.refs.get(id) ?? 0) + 1);
|
|
257
|
+
markDirty(key);
|
|
258
|
+
let registered = true;
|
|
259
|
+
return () => {
|
|
260
|
+
if (!registered) return;
|
|
261
|
+
registered = false;
|
|
262
|
+
if (groups.get(key) !== owner) return;
|
|
263
|
+
const count = (owner.refs.get(id) ?? 0) - 1;
|
|
264
|
+
if (count > 0) owner.refs.set(id, count);
|
|
265
|
+
else owner.refs.delete(id);
|
|
266
|
+
markDirty(key);
|
|
267
|
+
};
|
|
268
|
+
},
|
|
269
|
+
subscribe(listener) {
|
|
270
|
+
listeners.add(listener);
|
|
271
|
+
return () => listeners.delete(listener);
|
|
272
|
+
},
|
|
273
|
+
getSnapshot() {
|
|
274
|
+
return snapshot;
|
|
275
|
+
},
|
|
276
|
+
getGroup(key) {
|
|
277
|
+
return snapshot.get(key) ?? EMPTY_TIMESERIES_STREAM_GROUP;
|
|
278
|
+
},
|
|
279
|
+
close() {
|
|
280
|
+
if (flushTimer) clearTimeout(flushTimer);
|
|
281
|
+
flushTimer = null;
|
|
282
|
+
dirty.clear();
|
|
283
|
+
for (const group of groups.values()) group.source?.close();
|
|
284
|
+
groups.clear();
|
|
285
|
+
if (snapshot.size > 0) notify(/* @__PURE__ */ new Map());
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
var TimeseriesStreamContext = (0, react.createContext)(null);
|
|
290
|
+
/** The provided {@link TimeseriesStream}, or null outside a `TimeseriesStreamProvider`. */
|
|
291
|
+
function useTimeseriesStream() {
|
|
292
|
+
return (0, react.useContext)(TimeseriesStreamContext);
|
|
293
|
+
}
|
|
294
|
+
exports.EMPTY_TIMESERIES_STREAM_GROUP = EMPTY_TIMESERIES_STREAM_GROUP;
|
|
295
|
+
exports.TimeseriesStreamContext = TimeseriesStreamContext;
|
|
296
|
+
exports.createTimeseriesStream = createTimeseriesStream;
|
|
297
|
+
exports.timeseriesStreamAddress = timeseriesStreamAddress;
|
|
298
|
+
exports.timeseriesStreamGroupKey = timeseriesStreamGroupKey;
|
|
299
|
+
exports.timeseriesStreamInterval = timeseriesStreamInterval;
|
|
300
|
+
exports.timeseriesStreamUrl = timeseriesStreamUrl;
|
|
301
|
+
exports.timeseriesWindowStart = timeseriesWindowStart;
|
|
302
|
+
exports.useTimeseriesStream = useTimeseriesStream;
|
|
303
|
+
|
|
304
|
+
//# sourceMappingURL=timeseries-stream.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeseries-stream.cjs","names":["createContext","useContext"],"sources":["../../src/data/timeseries-stream.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { EventSourceFactory, EventSourceLike } from \"../hooks/event-source\";\nimport type { TimeseriesPoint, TimeseriesServerSeries } from \"./TimeseriesPanel.model\";\n\n// One subscription per (baseUrl, range, interval) group serves every widget on\n// a page: widgets register the ids they show, registrations are coalesced over\n// a short debounce, and each group holds a single\n// `{baseUrl}stream?id=…&since=<range>&interval=<n>s` stream (clicky\n// metrics.RegisterStreamRoutes). Opened through the EventSourceFactory, so\n// under createEventHub every group rides the tab's one hub connection.\n\n/** The payload of a stream's `snapshot` and `append` events. */\nexport interface TimeseriesStreamFrame {\n series: TimeseriesServerSeries[];\n /** Series ids (not sources) that no longer exist. */\n removed?: string[];\n}\n\n/** The identity of a stream group: every widget with the same three shares one subscription. */\nexport interface TimeseriesStreamGroup {\n /** Prefix the stream path is appended to, e.g. \"/api/v1/metrics/\". */\n baseUrl: string;\n /** The look-back window, sent as `since` (a Go duration or RFC3339 time). */\n range: string;\n /** The server tick, e.g. \"5s\" (see {@link timeseriesStreamInterval}). */\n interval: string;\n}\n\nexport interface TimeseriesStreamRegistration extends TimeseriesStreamGroup {\n id: string;\n}\n\n/** What a group's widgets read, replaced (never mutated) on every change. */\nexport interface TimeseriesStreamGroupState {\n /** Every series held, grouped by the requested id (`source`) it answers. */\n bySource: ReadonlyMap<string, readonly TimeseriesServerSeries[]>;\n /** Requested ids a snapshot has answered; an id outside it is still loading. */\n answered: ReadonlySet<string>;\n /** The stream's error event, or its failure to open; cleared by the next snapshot. */\n error: Error | null;\n}\n\nexport interface TimeseriesStream {\n /** Adds one widget's interest in an id; the returned function removes it. */\n register(registration: TimeseriesStreamRegistration): () => void;\n /** useSyncExternalStore subscription: called after any group's state changes. */\n subscribe(listener: () => void): () => void;\n /** Every group's state by {@link timeseriesStreamGroupKey}; a new map after any change. */\n getSnapshot(): ReadonlyMap<string, TimeseriesStreamGroupState>;\n /** The state of one group (empty when nothing is registered in it). */\n getGroup(key: string): TimeseriesStreamGroupState;\n /** Closes every subscription and forgets every registration; later registrations start afresh. */\n close(): void;\n}\n\nexport interface TimeseriesStreamOptions {\n factory: EventSourceFactory;\n /** How long registrations coalesce before groups re-subscribe. Defaults to 50ms. */\n debounceMs?: number;\n /** Clock used to trim points older than the range window. Defaults to Date.now. */\n now?: () => number;\n}\n\nconst DEFAULT_DEBOUNCE_MS = 50;\nconst CLOSED = 2;\n// The server's window when `since` is empty (clicky metrics defaultWindow).\nconst DEFAULT_WINDOW_MS = 60 * 60 * 1000;\n\n/** The state of a group nothing has been received for. */\nexport const EMPTY_TIMESERIES_STREAM_GROUP: TimeseriesStreamGroupState = Object.freeze({\n bySource: new Map(),\n answered: new Set<string>(),\n error: null,\n});\n\nexport function timeseriesStreamGroupKey({ baseUrl, range, interval }: TimeseriesStreamGroup): string {\n return JSON.stringify([baseUrl, range, interval]);\n}\n\n/**\n * The stream tick for a widget's `refreshMs`: whole seconds, rounded up, at\n * least 1s (the server minimum). `null` for `refreshMs <= 0`, which asks for\n * no live updates, so such widgets fetch once instead of streaming.\n */\nexport function timeseriesStreamInterval(refreshMs: number): string | null {\n if (!(refreshMs > 0)) return null;\n return `${Math.max(1, Math.ceil(refreshMs / 1000))}s`;\n}\n\n/**\n * Where a widget's series streams from. With a `baseUrl` the series streams\n * as `id` from `{baseUrl}stream`. Without one (the single-`url` panel form),\n * the url is split at its last path `/`: `\"/api/v1/metrics/sqlserver.cpu\"`\n * streams as `sqlserver.cpu` from `/api/v1/metrics/stream`, the same single\n * segment the server's `GET {prefix}/metrics/{id}` route reads. A url with no\n * such prefix has no stream endpoint, so it is null and keeps fetching.\n */\nexport function timeseriesStreamAddress(baseUrl: string, id: string): { baseUrl: string; id: string } | null {\n if (baseUrl !== \"\") return { baseUrl, id };\n const query = id.indexOf(\"?\");\n const slash = id.lastIndexOf(\"/\", query === -1 ? id.length : query);\n if (slash === -1 || slash === id.length - 1 || slash === query - 1) return null;\n return { baseUrl: id.slice(0, slash + 1), id: id.slice(slash + 1) };\n}\n\nexport function timeseriesStreamUrl(group: TimeseriesStreamGroup, ids: readonly string[]): string {\n const params = new URLSearchParams();\n for (const id of ids) params.append(\"id\", id);\n if (group.range) params.set(\"since\", group.range);\n params.set(\"interval\", group.interval);\n return `${group.baseUrl}stream?${params.toString()}`;\n}\n\nconst GO_DURATION_UNITS_MS: Record<string, number> = {\n ns: 1e-6,\n us: 1e-3,\n \"µs\": 1e-3,\n ms: 1,\n s: 1000,\n m: 60_000,\n h: 3_600_000,\n};\nconst GO_DURATION = /^[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:ns|us|µs|ms|s|m|h)(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:ns|us|µs|ms|s|m|h))*$/;\nconst GO_DURATION_PART = /(\\d+(?:\\.\\d*)?|\\.\\d+)(ns|us|µs|ms|s|m|h)/g;\n\n/**\n * The oldest timestamp (epoch ms) the window `range` keeps at `nowMs`, read the\n * way the server reads `since`: an RFC3339 time, or a Go duration before now.\n */\nexport function timeseriesWindowStart(range: string, nowMs: number): number {\n if (range === \"\") return nowMs - DEFAULT_WINDOW_MS;\n if (range === \"0\") return nowMs;\n if (GO_DURATION.test(range)) {\n let ms = 0;\n for (const [, amount, unit] of range.matchAll(GO_DURATION_PART)) {\n ms += Number(amount) * (GO_DURATION_UNITS_MS[unit as string] as number);\n }\n return nowMs - ms;\n }\n const at = Date.parse(range);\n if (Number.isNaN(at)) {\n throw new Error(`metrics range ${JSON.stringify(range)} is neither a Go duration nor an RFC3339 time`);\n }\n return at;\n}\n\nfunction pointTime(point: TimeseriesPoint): number {\n const at = Date.parse(point.at);\n if (Number.isNaN(at)) throw new Error(`metrics point has an invalid timestamp ${JSON.stringify(point.at)}`);\n return at;\n}\n\nfunction trimPoints(points: readonly TimeseriesPoint[], startMs: number): TimeseriesPoint[] {\n return points.filter((p) => pointTime(p) >= startMs);\n}\n\n/** `existing` with `fresh` merged in by timestamp (fresh wins), sorted oldest first. */\nfunction mergePoints(existing: readonly TimeseriesPoint[], fresh: readonly TimeseriesPoint[]): TimeseriesPoint[] {\n const byTime = new Map<number, TimeseriesPoint>();\n for (const p of existing) byTime.set(pointTime(p), p);\n for (const p of fresh) byTime.set(pointTime(p), p);\n return [...byTime.entries()].sort(([a], [b]) => a - b).map(([, p]) => p);\n}\n\nfunction parseFrame(name: string, data: unknown): TimeseriesStreamFrame {\n const frame = JSON.parse(String(data)) as TimeseriesStreamFrame;\n if (!frame || !Array.isArray(frame.series)) {\n throw new Error(`metrics stream ${name} frame has no series array`);\n }\n return frame;\n}\n\ninterface GroupRecord extends TimeseriesStreamGroup {\n key: string;\n refs: Map<string, number>;\n ids: string[];\n source: EventSourceLike | null;\n /** Held series keyed by series id, in server order. */\n series: Map<string, TimeseriesServerSeries>;\n answered: Set<string>;\n error: Error | null;\n}\n\nfunction buildState(group: GroupRecord): TimeseriesStreamGroupState {\n const bySource = new Map<string, TimeseriesServerSeries[]>();\n for (const s of group.series.values()) {\n const list = bySource.get(s.source) ?? [];\n list.push(s);\n bySource.set(s.source, list);\n }\n return { bySource, answered: new Set(group.answered), error: group.error };\n}\n\n/** Creates the store behind {@link TimeseriesStreamProvider}; see the module comment. */\nexport function createTimeseriesStream(options: TimeseriesStreamOptions): TimeseriesStream {\n const { factory, debounceMs = DEFAULT_DEBOUNCE_MS, now = Date.now } = options;\n const groups = new Map<string, GroupRecord>();\n const dirty = new Set<string>();\n const listeners = new Set<() => void>();\n let flushTimer: ReturnType<typeof setTimeout> | null = null;\n let snapshot: ReadonlyMap<string, TimeseriesStreamGroupState> = new Map();\n\n function notify(next: Map<string, TimeseriesStreamGroupState>): void {\n snapshot = next;\n for (const listener of Array.from(listeners)) listener();\n }\n\n function publish(group: GroupRecord): void {\n notify(new Map(snapshot).set(group.key, buildState(group)));\n }\n\n function forget(key: string): void {\n const next = new Map(snapshot);\n next.delete(key);\n notify(next);\n }\n\n function fail(group: GroupRecord, error: Error): void {\n group.error = error;\n publish(group);\n }\n\n function applySnapshot(group: GroupRecord, ids: readonly string[], frame: TimeseriesStreamFrame): void {\n const start = timeseriesWindowStart(group.range, now());\n group.series = new Map(frame.series.map((s) => [s.id, { ...s, points: trimPoints(s.points, start) }]));\n group.answered = new Set(ids);\n group.error = null;\n }\n\n function applyAppend(group: GroupRecord, frame: TimeseriesStreamFrame): void {\n const start = timeseriesWindowStart(group.range, now());\n const next = new Map<string, TimeseriesServerSeries>();\n for (const [id, s] of group.series) next.set(id, { ...s, points: trimPoints(s.points, start) });\n for (const s of frame.series) {\n const held = next.get(s.id);\n const points = held ? mergePoints(held.points, s.points) : s.points;\n next.set(s.id, { ...s, points: trimPoints(points, start) });\n }\n for (const id of frame.removed ?? []) next.delete(id);\n group.series = next;\n }\n\n function open(group: GroupRecord, ids: string[]): void {\n const url = timeseriesStreamUrl(group, ids);\n const source = factory(url);\n const current = () => group.source === source;\n const onFrame = (name: \"snapshot\" | \"append\") => (event: Event) => {\n if (!current()) return;\n try {\n const frame = parseFrame(name, (event as MessageEvent).data);\n if (name === \"snapshot\") applySnapshot(group, ids, frame);\n else applyAppend(group, frame);\n publish(group);\n } catch (err) {\n fail(group, err instanceof Error ? err : new Error(String(err)));\n }\n };\n source.addEventListener(\"snapshot\", onFrame(\"snapshot\"));\n source.addEventListener(\"append\", onFrame(\"append\"));\n source.addEventListener(\"error\", (event) => {\n if (!current()) return;\n // A sub the event hub failed (the server closed it with an error, or\n // refused the subscribe) is an ErrorEvent carrying the server's message.\n // A server-sent `error` event carries {\"error\": msg}; a transport error\n // carries no data. A transport error that leaves the source CONNECTING\n // is a reconnect the hub (or native EventSource) re-subscribes from with\n // a fresh snapshot; one that leaves it CLOSED is a failed subscription\n // native EventSource gives no reason for.\n if (event instanceof ErrorEvent) {\n fail(group, new Error(event.message));\n return;\n }\n const data = (event as MessageEvent).data;\n if (typeof data === \"string\" && data !== \"\") {\n let message: string;\n try {\n message = String((JSON.parse(data) as { error?: unknown }).error ?? data);\n } catch {\n message = data;\n }\n fail(group, new Error(message));\n return;\n }\n if (source.readyState === CLOSED) fail(group, new Error(`metrics stream closed: ${url}`));\n });\n group.source?.close();\n group.source = source;\n group.ids = ids;\n }\n\n function reconcile(key: string): void {\n const group = groups.get(key);\n if (!group) return;\n const ids = [...group.refs.keys()].sort();\n if (ids.length === 0) {\n group.source?.close();\n groups.delete(key);\n forget(key);\n return;\n }\n if (ids.length === group.ids.length && ids.every((id, i) => id === group.ids[i])) return;\n // Keep what is held for ids still requested until the new snapshot\n // replaces it; an error belonged to the subscription being replaced.\n const kept = new Set(ids);\n for (const [id, s] of group.series) if (!kept.has(s.source)) group.series.delete(id);\n group.answered = new Set([...group.answered].filter((id) => kept.has(id)));\n group.error = null;\n open(group, ids);\n publish(group);\n }\n\n function flush(): void {\n flushTimer = null;\n const keys = [...dirty];\n dirty.clear();\n for (const key of keys) reconcile(key);\n }\n\n function markDirty(key: string): void {\n dirty.add(key);\n if (flushTimer) clearTimeout(flushTimer);\n flushTimer = setTimeout(flush, debounceMs);\n }\n\n return {\n register(registration) {\n const { id, ...groupFields } = registration;\n if (id === \"\") throw new Error(\"timeseries stream registration needs a metric id\");\n const key = timeseriesStreamGroupKey(groupFields);\n let group = groups.get(key);\n if (!group) {\n group = {\n ...groupFields,\n key,\n refs: new Map(),\n ids: [],\n source: null,\n series: new Map(),\n answered: new Set(),\n error: null,\n };\n groups.set(key, group);\n }\n const owner = group;\n owner.refs.set(id, (owner.refs.get(id) ?? 0) + 1);\n markDirty(key);\n let registered = true;\n return () => {\n if (!registered) return;\n registered = false;\n // close() may have dropped the group already (the provider unmounting\n // before its widgets); a later registration makes a new record.\n if (groups.get(key) !== owner) return;\n const count = (owner.refs.get(id) ?? 0) - 1;\n if (count > 0) owner.refs.set(id, count);\n else owner.refs.delete(id);\n markDirty(key);\n };\n },\n subscribe(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n getSnapshot() {\n return snapshot;\n },\n getGroup(key) {\n return snapshot.get(key) ?? EMPTY_TIMESERIES_STREAM_GROUP;\n },\n close() {\n if (flushTimer) clearTimeout(flushTimer);\n flushTimer = null;\n dirty.clear();\n for (const group of groups.values()) group.source?.close();\n groups.clear();\n if (snapshot.size > 0) notify(new Map());\n },\n };\n}\n\nexport const TimeseriesStreamContext = createContext<TimeseriesStream | null>(null);\n\n/** The provided {@link TimeseriesStream}, or null outside a `TimeseriesStreamProvider`. */\nexport function useTimeseriesStream(): TimeseriesStream | null {\n return useContext(TimeseriesStreamContext);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { EventSourceFactory } from '../hooks/event-source.js';
|
|
2
|
+
import { TimeseriesServerSeries } from './TimeseriesPanel.model.js';
|
|
3
|
+
/** The payload of a stream's `snapshot` and `append` events. */
|
|
4
|
+
export interface TimeseriesStreamFrame {
|
|
5
|
+
series: TimeseriesServerSeries[];
|
|
6
|
+
/** Series ids (not sources) that no longer exist. */
|
|
7
|
+
removed?: string[];
|
|
8
|
+
}
|
|
9
|
+
/** The identity of a stream group: every widget with the same three shares one subscription. */
|
|
10
|
+
export interface TimeseriesStreamGroup {
|
|
11
|
+
/** Prefix the stream path is appended to, e.g. "/api/v1/metrics/". */
|
|
12
|
+
baseUrl: string;
|
|
13
|
+
/** The look-back window, sent as `since` (a Go duration or RFC3339 time). */
|
|
14
|
+
range: string;
|
|
15
|
+
/** The server tick, e.g. "5s" (see {@link timeseriesStreamInterval}). */
|
|
16
|
+
interval: string;
|
|
17
|
+
}
|
|
18
|
+
export interface TimeseriesStreamRegistration extends TimeseriesStreamGroup {
|
|
19
|
+
id: string;
|
|
20
|
+
}
|
|
21
|
+
/** What a group's widgets read, replaced (never mutated) on every change. */
|
|
22
|
+
export interface TimeseriesStreamGroupState {
|
|
23
|
+
/** Every series held, grouped by the requested id (`source`) it answers. */
|
|
24
|
+
bySource: ReadonlyMap<string, readonly TimeseriesServerSeries[]>;
|
|
25
|
+
/** Requested ids a snapshot has answered; an id outside it is still loading. */
|
|
26
|
+
answered: ReadonlySet<string>;
|
|
27
|
+
/** The stream's error event, or its failure to open; cleared by the next snapshot. */
|
|
28
|
+
error: Error | null;
|
|
29
|
+
}
|
|
30
|
+
export interface TimeseriesStream {
|
|
31
|
+
/** Adds one widget's interest in an id; the returned function removes it. */
|
|
32
|
+
register(registration: TimeseriesStreamRegistration): () => void;
|
|
33
|
+
/** useSyncExternalStore subscription: called after any group's state changes. */
|
|
34
|
+
subscribe(listener: () => void): () => void;
|
|
35
|
+
/** Every group's state by {@link timeseriesStreamGroupKey}; a new map after any change. */
|
|
36
|
+
getSnapshot(): ReadonlyMap<string, TimeseriesStreamGroupState>;
|
|
37
|
+
/** The state of one group (empty when nothing is registered in it). */
|
|
38
|
+
getGroup(key: string): TimeseriesStreamGroupState;
|
|
39
|
+
/** Closes every subscription and forgets every registration; later registrations start afresh. */
|
|
40
|
+
close(): void;
|
|
41
|
+
}
|
|
42
|
+
export interface TimeseriesStreamOptions {
|
|
43
|
+
factory: EventSourceFactory;
|
|
44
|
+
/** How long registrations coalesce before groups re-subscribe. Defaults to 50ms. */
|
|
45
|
+
debounceMs?: number;
|
|
46
|
+
/** Clock used to trim points older than the range window. Defaults to Date.now. */
|
|
47
|
+
now?: () => number;
|
|
48
|
+
}
|
|
49
|
+
/** The state of a group nothing has been received for. */
|
|
50
|
+
export declare const EMPTY_TIMESERIES_STREAM_GROUP: TimeseriesStreamGroupState;
|
|
51
|
+
export declare function timeseriesStreamGroupKey({ baseUrl, range, interval }: TimeseriesStreamGroup): string;
|
|
52
|
+
/**
|
|
53
|
+
* The stream tick for a widget's `refreshMs`: whole seconds, rounded up, at
|
|
54
|
+
* least 1s (the server minimum). `null` for `refreshMs <= 0`, which asks for
|
|
55
|
+
* no live updates, so such widgets fetch once instead of streaming.
|
|
56
|
+
*/
|
|
57
|
+
export declare function timeseriesStreamInterval(refreshMs: number): string | null;
|
|
58
|
+
/**
|
|
59
|
+
* Where a widget's series streams from. With a `baseUrl` the series streams
|
|
60
|
+
* as `id` from `{baseUrl}stream`. Without one (the single-`url` panel form),
|
|
61
|
+
* the url is split at its last path `/`: `"/api/v1/metrics/sqlserver.cpu"`
|
|
62
|
+
* streams as `sqlserver.cpu` from `/api/v1/metrics/stream`, the same single
|
|
63
|
+
* segment the server's `GET {prefix}/metrics/{id}` route reads. A url with no
|
|
64
|
+
* such prefix has no stream endpoint, so it is null and keeps fetching.
|
|
65
|
+
*/
|
|
66
|
+
export declare function timeseriesStreamAddress(baseUrl: string, id: string): {
|
|
67
|
+
baseUrl: string;
|
|
68
|
+
id: string;
|
|
69
|
+
} | null;
|
|
70
|
+
export declare function timeseriesStreamUrl(group: TimeseriesStreamGroup, ids: readonly string[]): string;
|
|
71
|
+
/**
|
|
72
|
+
* The oldest timestamp (epoch ms) the window `range` keeps at `nowMs`, read the
|
|
73
|
+
* way the server reads `since`: an RFC3339 time, or a Go duration before now.
|
|
74
|
+
*/
|
|
75
|
+
export declare function timeseriesWindowStart(range: string, nowMs: number): number;
|
|
76
|
+
/** Creates the store behind {@link TimeseriesStreamProvider}; see the module comment. */
|
|
77
|
+
export declare function createTimeseriesStream(options: TimeseriesStreamOptions): TimeseriesStream;
|
|
78
|
+
export declare const TimeseriesStreamContext: import('react').Context<TimeseriesStream | null>;
|
|
79
|
+
/** The provided {@link TimeseriesStream}, or null outside a `TimeseriesStreamProvider`. */
|
|
80
|
+
export declare function useTimeseriesStream(): TimeseriesStream | null;
|
|
81
|
+
//# sourceMappingURL=timeseries-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeseries-stream.d.ts","sourceRoot":"","sources":["../../src/data/timeseries-stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,uBAAuB,CAAC;AACjF,OAAO,KAAK,EAAmB,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AASvF,gEAAgE;AAChE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,gGAAgG;AAChG,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4BAA6B,SAAQ,qBAAqB;IACzE,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,6EAA6E;AAC7E,MAAM,WAAW,0BAA0B;IACzC,4EAA4E;IAC5E,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAC,CAAC;IACjE,gFAAgF;IAChF,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,sFAAsF;IACtF,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,4BAA4B,GAAG,MAAM,IAAI,CAAC;IACjE,iFAAiF;IACjF,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,2FAA2F;IAC3F,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAC/D,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,0BAA0B,CAAC;IAClD,kGAAkG;IAClG,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAOD,0DAA0D;AAC1D,eAAO,MAAM,6BAA6B,EAAE,0BAI1C,CAAC;AAEH,wBAAgB,wBAAwB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,qBAAqB,GAAG,MAAM,CAEpG;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGzE;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAM3G;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAMhG;AAcD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAe1E;AAiDD,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,gBAAgB,CAwLzF;AAED,eAAO,MAAM,uBAAuB,kDAA+C,CAAC;AAEpF,2FAA2F;AAC3F,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAE7D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { EventSourceFactory, EventSourceLike } from '../hooks/event-source.js';
|
|
2
|
+
/**
|
|
3
|
+
* An in-memory EventSourceLike for tests and stories: it records the URL it
|
|
4
|
+
* was opened with and dispatches whatever frames the caller emits, standing
|
|
5
|
+
* in for one hub subscription.
|
|
6
|
+
*/
|
|
7
|
+
export declare class FakeEventSource implements EventSourceLike {
|
|
8
|
+
readonly url: string;
|
|
9
|
+
readyState: number;
|
|
10
|
+
onopen: ((ev: Event) => unknown) | null;
|
|
11
|
+
onmessage: ((ev: MessageEvent) => unknown) | null;
|
|
12
|
+
onerror: ((ev: Event) => unknown) | null;
|
|
13
|
+
readonly listeners: Map<string, Set<EventListenerOrEventListenerObject>>;
|
|
14
|
+
constructor(url: string);
|
|
15
|
+
/** The `id` query values, in URL order. */
|
|
16
|
+
get ids(): string[];
|
|
17
|
+
param(name: string): string | null;
|
|
18
|
+
get closed(): boolean;
|
|
19
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject): void;
|
|
20
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject): void;
|
|
21
|
+
/** Called once when the consumer closes the stream, e.g. to stop a story's timers. */
|
|
22
|
+
onClose: (() => void) | null;
|
|
23
|
+
close(): void;
|
|
24
|
+
/** Dispatches a server-named event whose data is `payload` as JSON. */
|
|
25
|
+
emit(name: string, payload: unknown): void;
|
|
26
|
+
/** A transport failure: no data, the stream ends CLOSED. */
|
|
27
|
+
fail(): void;
|
|
28
|
+
private dispatch;
|
|
29
|
+
}
|
|
30
|
+
/** A factory that opens FakeEventSources and keeps every one it opened, oldest first. */
|
|
31
|
+
export declare function createFakeEventSourceFactory(): {
|
|
32
|
+
factory: EventSourceFactory;
|
|
33
|
+
opened: FakeEventSource[];
|
|
34
|
+
latest(): FakeEventSource;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=timeseries-stream.fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeseries-stream.fixtures.d.ts","sourceRoot":"","sources":["../../src/data/timeseries-stream.fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMjF;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,eAAe;IAOzC,QAAQ,CAAC,GAAG,EAAE,MAAM;IANhC,UAAU,SAAc;IACxB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,IAAI,CAAQ;IAC/C,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,GAAG,IAAI,CAAQ;IACzD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,IAAI,CAAQ;IAChD,QAAQ,CAAC,SAAS,uDAA8D;gBAE3D,GAAG,EAAE,MAAM;IAEhC,2CAA2C;IAC3C,IAAI,GAAG,IAAI,MAAM,EAAE,CAElB;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIlC,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kCAAkC,GAAG,IAAI;IAMlF,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kCAAkC,GAAG,IAAI;IAIrF,sFAAsF;IACtF,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEpC,KAAK,IAAI,IAAI;IAMb,uEAAuE;IACvE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAM1C,4DAA4D;IAC5D,IAAI,IAAI,IAAI;IAKZ,OAAO,CAAC,QAAQ;CAMjB;AAED,yFAAyF;AACzF,wBAAgB,4BAA4B,IAAI;IAC9C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,IAAI,eAAe,CAAC;CAC3B,CAeA"}
|