@flanksource/clicky-ui 0.3.44 → 0.3.46
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 +24 -0
- package/dist/ai.cjs +4 -2
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +3 -1
- package/dist/components/MdxEditorField.cjs +40 -22
- package/dist/components/MdxEditorField.cjs.map +1 -1
- package/dist/components/MdxEditorField.d.ts.map +1 -1
- package/dist/components/MdxEditorField.js +41 -23
- package/dist/components/MdxEditorField.js.map +1 -1
- package/dist/components/json-schema-form-item-summary.cjs +6 -1
- package/dist/components/json-schema-form-item-summary.cjs.map +1 -1
- package/dist/components/json-schema-form-item-summary.d.ts.map +1 -1
- package/dist/components/json-schema-form-item-summary.js +6 -1
- package/dist/components/json-schema-form-item-summary.js.map +1 -1
- package/dist/data/AccessMark.cjs +23 -0
- package/dist/data/AccessMark.cjs.map +1 -0
- package/dist/data/AccessMark.d.ts +11 -0
- package/dist/data/AccessMark.d.ts.map +1 -0
- package/dist/data/AccessMark.js +23 -0
- package/dist/data/AccessMark.js.map +1 -0
- package/dist/data/CodeBlock.cjs +3 -2
- package/dist/data/CodeBlock.cjs.map +1 -1
- package/dist/data/CodeBlock.d.ts +3 -1
- package/dist/data/CodeBlock.d.ts.map +1 -1
- package/dist/data/CodeBlock.js +3 -2
- package/dist/data/CodeBlock.js.map +1 -1
- package/dist/data/CodeDiff.cjs +116 -23
- package/dist/data/CodeDiff.cjs.map +1 -1
- package/dist/data/CodeDiff.d.ts +26 -0
- package/dist/data/CodeDiff.d.ts.map +1 -1
- package/dist/data/CodeDiff.js +116 -23
- package/dist/data/CodeDiff.js.map +1 -1
- package/dist/data/GraphDiagram.cjs +75 -11
- package/dist/data/GraphDiagram.cjs.map +1 -1
- package/dist/data/GraphDiagram.d.ts +17 -2
- package/dist/data/GraphDiagram.d.ts.map +1 -1
- package/dist/data/GraphDiagram.js +76 -12
- package/dist/data/GraphDiagram.js.map +1 -1
- package/dist/data/GraphDiagramGroups.cjs +100 -0
- package/dist/data/GraphDiagramGroups.cjs.map +1 -0
- package/dist/data/GraphDiagramGroups.d.ts +24 -0
- package/dist/data/GraphDiagramGroups.d.ts.map +1 -0
- package/dist/data/GraphDiagramGroups.js +100 -0
- package/dist/data/GraphDiagramGroups.js.map +1 -0
- package/dist/data/GraphDiagramNodes.cjs +46 -51
- package/dist/data/GraphDiagramNodes.cjs.map +1 -1
- package/dist/data/GraphDiagramNodes.d.ts +8 -9
- package/dist/data/GraphDiagramNodes.d.ts.map +1 -1
- package/dist/data/GraphDiagramNodes.js +46 -51
- package/dist/data/GraphDiagramNodes.js.map +1 -1
- package/dist/data/JsonView.cjs +118 -49
- package/dist/data/JsonView.cjs.map +1 -1
- package/dist/data/JsonView.d.ts +13 -10
- package/dist/data/JsonView.d.ts.map +1 -1
- package/dist/data/JsonView.js +118 -49
- package/dist/data/JsonView.js.map +1 -1
- package/dist/data/MarkdownEditor.cjs +2 -2
- package/dist/data/MarkdownEditor.cjs.map +1 -1
- package/dist/data/MarkdownEditor.js +2 -2
- package/dist/data/MarkdownEditor.js.map +1 -1
- package/dist/data/TreeNode.cjs +1 -1
- package/dist/data/TreeNode.cjs.map +1 -1
- package/dist/data/TreeNode.d.ts.map +1 -1
- package/dist/data/TreeNode.js +1 -1
- package/dist/data/TreeNode.js.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.cjs +90 -249
- package/dist/data/ai/AdvancedChatConfig.cjs.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.d.ts +2 -5
- package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.js +91 -250
- package/dist/data/ai/AdvancedChatConfig.js.map +1 -1
- package/dist/data/ai/ChatButton.cjs +2 -0
- package/dist/data/ai/ChatButton.cjs.map +1 -1
- package/dist/data/ai/ChatButton.d.ts +1 -1
- package/dist/data/ai/ChatButton.d.ts.map +1 -1
- package/dist/data/ai/ChatButton.js +2 -0
- package/dist/data/ai/ChatButton.js.map +1 -1
- package/dist/data/ai/ChatFab.cjs +5 -1
- package/dist/data/ai/ChatFab.cjs.map +1 -1
- package/dist/data/ai/ChatFab.d.ts +5 -1
- package/dist/data/ai/ChatFab.d.ts.map +1 -1
- package/dist/data/ai/ChatFab.js +5 -1
- package/dist/data/ai/ChatFab.js.map +1 -1
- package/dist/data/ai/ChatWindow.cjs +2 -8
- package/dist/data/ai/ChatWindow.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.js +2 -8
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.cjs +0 -5
- package/dist/data/ai/ChatWindow.runtime.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.d.ts +0 -2
- package/dist/data/ai/ChatWindow.runtime.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.js +0 -5
- package/dist/data/ai/ChatWindow.runtime.js.map +1 -1
- package/dist/data/ai/PromptRunEditor/runtimeActions.cjs +2 -2
- package/dist/data/ai/PromptRunEditor/runtimeActions.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/runtimeActions.js +2 -2
- package/dist/data/ai/PromptRunEditor/runtimeActions.js.map +1 -1
- package/dist/data/ai/SessionInspector.approvals.cjs +3 -6
- package/dist/data/ai/SessionInspector.approvals.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.approvals.js +3 -6
- package/dist/data/ai/SessionInspector.approvals.js.map +1 -1
- package/dist/data/ai/SessionViewer.cjs +13 -4
- package/dist/data/ai/SessionViewer.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.d.ts +5 -1
- package/dist/data/ai/SessionViewer.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.header.cjs +1 -1
- package/dist/data/ai/SessionViewer.header.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.header.js +1 -1
- package/dist/data/ai/SessionViewer.header.js.map +1 -1
- package/dist/data/ai/SessionViewer.js +13 -4
- package/dist/data/ai/SessionViewer.js.map +1 -1
- package/dist/data/ai/SessionViewer.model.cjs +2 -0
- package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.model.d.ts +1 -0
- package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.model.js +2 -0
- package/dist/data/ai/SessionViewer.model.js.map +1 -1
- package/dist/data/ai/SessionViewer.rows.cjs +41 -27
- package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.rows.d.ts +4 -2
- package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.rows.js +41 -27
- package/dist/data/ai/SessionViewer.rows.js.map +1 -1
- package/dist/data/ai/SessionViewer.tokens.cjs +35 -0
- package/dist/data/ai/SessionViewer.tokens.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.tokens.d.ts +5 -0
- package/dist/data/ai/SessionViewer.tokens.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.tokens.js +35 -0
- package/dist/data/ai/SessionViewer.tokens.js.map +1 -0
- package/dist/data/ai/SessionViewer.tool-cost.cjs +128 -0
- package/dist/data/ai/SessionViewer.tool-cost.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.tool-cost.d.ts +6 -0
- package/dist/data/ai/SessionViewer.tool-cost.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.tool-cost.js +128 -0
- package/dist/data/ai/SessionViewer.tool-cost.js.map +1 -0
- package/dist/data/ai/SessionViewer.tool-details.cjs +3 -1
- package/dist/data/ai/SessionViewer.tool-details.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.tool-details.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.tool-details.js +3 -1
- package/dist/data/ai/SessionViewer.tool-details.js.map +1 -1
- package/dist/data/ai/SessionViewer.tool-row.cjs +55 -35
- package/dist/data/ai/SessionViewer.tool-row.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.tool-row.d.ts +2 -1
- package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.tool-row.js +55 -35
- package/dist/data/ai/SessionViewer.tool-row.js.map +1 -1
- package/dist/data/ai/SessionViewer.unified.d.ts +4 -0
- package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
- package/dist/data/ai/SessionViewerMenu.cjs +18 -1
- package/dist/data/ai/SessionViewerMenu.cjs.map +1 -1
- package/dist/data/ai/SessionViewerMenu.d.ts +6 -1
- package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
- package/dist/data/ai/SessionViewerMenu.js +18 -1
- package/dist/data/ai/SessionViewerMenu.js.map +1 -1
- package/dist/data/ai/ToolPreferences.cjs +149 -143
- package/dist/data/ai/ToolPreferences.cjs.map +1 -1
- package/dist/data/ai/ToolPreferences.d.ts +20 -6
- package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferences.js +151 -146
- package/dist/data/ai/ToolPreferences.js.map +1 -1
- package/dist/data/ai/ToolPreferences.model.cjs +14 -10
- package/dist/data/ai/ToolPreferences.model.cjs.map +1 -1
- package/dist/data/ai/ToolPreferences.model.d.ts +1 -0
- package/dist/data/ai/ToolPreferences.model.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferences.model.js +15 -11
- package/dist/data/ai/ToolPreferences.model.js.map +1 -1
- package/dist/data/ai/ToolPreferencesList.cjs +1 -0
- package/dist/data/ai/ToolPreferencesList.cjs.map +1 -1
- package/dist/data/ai/ToolPreferencesList.d.ts +4 -1
- package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferencesList.js +2 -1
- package/dist/data/ai/ToolPreferencesList.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.cjs +52 -53
- package/dist/data/ai/ToolSchemaBrowser.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.d.ts +6 -3
- package/dist/data/ai/ToolSchemaBrowser.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.directory-header.cjs +9 -13
- package/dist/data/ai/ToolSchemaBrowser.directory-header.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts +5 -2
- package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.directory-header.js +9 -13
- package/dist/data/ai/ToolSchemaBrowser.directory-header.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.js +53 -54
- package/dist/data/ai/ToolSchemaBrowser.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.model.cjs +19 -27
- package/dist/data/ai/ToolSchemaBrowser.model.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.model.d.ts +9 -6
- package/dist/data/ai/ToolSchemaBrowser.model.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.model.js +20 -28
- package/dist/data/ai/ToolSchemaBrowser.model.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.sidebar.cjs +12 -213
- package/dist/data/ai/ToolSchemaBrowser.sidebar.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts +1 -3
- package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.sidebar.js +13 -214
- package/dist/data/ai/ToolSchemaBrowser.sidebar.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.strategies.cjs +54 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.cjs.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.d.ts +9 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.d.ts.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.js +54 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.js.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.cjs +179 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.cjs.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.d.ts +20 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.d.ts.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.js +179 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.js.map +1 -0
- package/dist/data/ai/index.d.ts +2 -2
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.cjs +8 -28
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.cjs.map +1 -1
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.js +9 -29
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.js.map +1 -1
- package/dist/data/ai/session-token-sizing.d.ts +32 -0
- package/dist/data/ai/session-token-sizing.d.ts.map +1 -0
- package/dist/data/ai/use-session-token-sizing.cjs +73 -0
- package/dist/data/ai/use-session-token-sizing.cjs.map +1 -0
- package/dist/data/ai/use-session-token-sizing.d.ts +21 -0
- package/dist/data/ai/use-session-token-sizing.d.ts.map +1 -0
- package/dist/data/ai/use-session-token-sizing.js +73 -0
- package/dist/data/ai/use-session-token-sizing.js.map +1 -0
- package/dist/data/call-graph/CallGraph.cjs +269 -0
- package/dist/data/call-graph/CallGraph.cjs.map +1 -0
- package/dist/data/call-graph/CallGraph.d.ts +78 -0
- package/dist/data/call-graph/CallGraph.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraph.js +269 -0
- package/dist/data/call-graph/CallGraph.js.map +1 -0
- package/dist/data/call-graph/CallGraphGlyphs.cjs +39 -0
- package/dist/data/call-graph/CallGraphGlyphs.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphGlyphs.d.ts +19 -0
- package/dist/data/call-graph/CallGraphGlyphs.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphGlyphs.js +39 -0
- package/dist/data/call-graph/CallGraphGlyphs.js.map +1 -0
- package/dist/data/call-graph/CallGraphMembers.cjs +51 -0
- package/dist/data/call-graph/CallGraphMembers.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphMembers.d.ts +22 -0
- package/dist/data/call-graph/CallGraphMembers.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphMembers.js +51 -0
- package/dist/data/call-graph/CallGraphMembers.js.map +1 -0
- package/dist/data/call-graph/CallGraphParts.cjs +204 -0
- package/dist/data/call-graph/CallGraphParts.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphParts.d.ts +44 -0
- package/dist/data/call-graph/CallGraphParts.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphParts.js +204 -0
- package/dist/data/call-graph/CallGraphParts.js.map +1 -0
- package/dist/data/call-graph/CallGraphToolbar.cjs +198 -0
- package/dist/data/call-graph/CallGraphToolbar.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphToolbar.d.ts +55 -0
- package/dist/data/call-graph/CallGraphToolbar.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphToolbar.js +198 -0
- package/dist/data/call-graph/CallGraphToolbar.js.map +1 -0
- package/dist/data/call-graph/call-graph-exclude.cjs +75 -0
- package/dist/data/call-graph/call-graph-exclude.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-exclude.d.ts +31 -0
- package/dist/data/call-graph/call-graph-exclude.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-exclude.js +75 -0
- package/dist/data/call-graph/call-graph-exclude.js.map +1 -0
- package/dist/data/call-graph/call-graph-labels.cjs +96 -0
- package/dist/data/call-graph/call-graph-labels.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-labels.d.ts +53 -0
- package/dist/data/call-graph/call-graph-labels.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-labels.js +96 -0
- package/dist/data/call-graph/call-graph-labels.js.map +1 -0
- package/dist/data/call-graph/call-graph-model.cjs +312 -0
- package/dist/data/call-graph/call-graph-model.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-model.d.ts +138 -0
- package/dist/data/call-graph/call-graph-model.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-model.js +312 -0
- package/dist/data/call-graph/call-graph-model.js.map +1 -0
- package/dist/data/call-graph/call-graph-vocabulary.cjs +195 -0
- package/dist/data/call-graph/call-graph-vocabulary.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-vocabulary.d.ts +76 -0
- package/dist/data/call-graph/call-graph-vocabulary.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-vocabulary.js +195 -0
- package/dist/data/call-graph/call-graph-vocabulary.js.map +1 -0
- package/dist/data/call-graph/call-graph.fixtures.d.ts +63 -0
- package/dist/data/call-graph/call-graph.fixtures.d.ts.map +1 -0
- package/dist/data/call-graph/index.d.ts +7 -0
- package/dist/data/call-graph/index.d.ts.map +1 -0
- package/dist/data/call-graph/types.cjs +5 -0
- package/dist/data/call-graph/types.cjs.map +1 -0
- package/dist/data/call-graph/types.d.ts +140 -0
- package/dist/data/call-graph/types.d.ts.map +1 -0
- package/dist/data/call-graph/types.js +5 -0
- package/dist/data/call-graph/types.js.map +1 -0
- package/dist/data/call-graph/use-call-graph.cjs +93 -0
- package/dist/data/call-graph/use-call-graph.cjs.map +1 -0
- package/dist/data/call-graph/use-call-graph.d.ts +24 -0
- package/dist/data/call-graph/use-call-graph.d.ts.map +1 -0
- package/dist/data/call-graph/use-call-graph.js +93 -0
- package/dist/data/call-graph/use-call-graph.js.map +1 -0
- package/dist/data/chat/Chat.cjs +39 -15
- package/dist/data/chat/Chat.cjs.map +1 -1
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/Chat.fixtures.cjs +2 -2
- package/dist/data/chat/Chat.fixtures.cjs.map +1 -1
- package/dist/data/chat/Chat.fixtures.js +2 -2
- package/dist/data/chat/Chat.fixtures.js.map +1 -1
- package/dist/data/chat/Chat.js +40 -16
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.cjs +3 -6
- package/dist/data/chat/ChatRuntimeToolbar.cjs.map +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.js +3 -6
- package/dist/data/chat/ChatRuntimeToolbar.js.map +1 -1
- package/dist/data/chat/ContextMeter.bar.cjs +5 -8
- package/dist/data/chat/ContextMeter.bar.cjs.map +1 -1
- package/dist/data/chat/ContextMeter.bar.d.ts +1 -1
- package/dist/data/chat/ContextMeter.bar.d.ts.map +1 -1
- package/dist/data/chat/ContextMeter.bar.js +5 -8
- package/dist/data/chat/ContextMeter.bar.js.map +1 -1
- package/dist/data/chat/ContextMeter.cjs +18 -19
- package/dist/data/chat/ContextMeter.cjs.map +1 -1
- package/dist/data/chat/ContextMeter.d.ts +1 -1
- package/dist/data/chat/ContextMeter.d.ts.map +1 -1
- package/dist/data/chat/ContextMeter.js +18 -19
- package/dist/data/chat/ContextMeter.js.map +1 -1
- package/dist/data/chat/Conversation.cjs +2 -1
- package/dist/data/chat/Conversation.cjs.map +1 -1
- package/dist/data/chat/Conversation.d.ts +4 -1
- package/dist/data/chat/Conversation.d.ts.map +1 -1
- package/dist/data/chat/Conversation.js +2 -1
- package/dist/data/chat/Conversation.js.map +1 -1
- package/dist/data/chat/Message.cjs +39 -12
- package/dist/data/chat/Message.cjs.map +1 -1
- package/dist/data/chat/Message.d.ts +1 -1
- package/dist/data/chat/Message.d.ts.map +1 -1
- package/dist/data/chat/Message.js +40 -13
- package/dist/data/chat/Message.js.map +1 -1
- package/dist/data/chat/ToolCall.cjs +60 -5
- package/dist/data/chat/ToolCall.cjs.map +1 -1
- package/dist/data/chat/ToolCall.d.ts +7 -2
- package/dist/data/chat/ToolCall.d.ts.map +1 -1
- package/dist/data/chat/ToolCall.js +60 -5
- package/dist/data/chat/ToolCall.js.map +1 -1
- package/dist/data/chat/approval.cjs.map +1 -1
- package/dist/data/chat/approval.d.ts +2 -2
- package/dist/data/chat/approval.d.ts.map +1 -1
- package/dist/data/chat/approval.js.map +1 -1
- package/dist/data/chat/tool-policy.cjs +59 -2
- package/dist/data/chat/tool-policy.cjs.map +1 -1
- package/dist/data/chat/tool-policy.d.ts +9 -0
- package/dist/data/chat/tool-policy.d.ts.map +1 -1
- package/dist/data/chat/tool-policy.js +59 -2
- package/dist/data/chat/tool-policy.js.map +1 -1
- package/dist/data/chat/types.cjs +6 -0
- package/dist/data/chat/types.cjs.map +1 -1
- package/dist/data/chat/types.d.ts +13 -4
- package/dist/data/chat/types.d.ts.map +1 -1
- package/dist/data/chat/types.js +7 -1
- package/dist/data/chat/types.js.map +1 -1
- package/dist/data/chat/usage-snapshot.cjs +11 -6
- package/dist/data/chat/usage-snapshot.cjs.map +1 -1
- package/dist/data/chat/usage-snapshot.d.ts +0 -1
- package/dist/data/chat/usage-snapshot.d.ts.map +1 -1
- package/dist/data/chat/usage-snapshot.js +11 -6
- package/dist/data/chat/usage-snapshot.js.map +1 -1
- package/dist/data/data-access.cjs +8 -0
- package/dist/data/data-access.cjs.map +1 -0
- package/dist/data/data-access.d.ts +5 -0
- package/dist/data/data-access.d.ts.map +1 -0
- package/dist/data/data-access.js +8 -0
- package/dist/data/data-access.js.map +1 -0
- package/dist/data/diagnostics/StackFrameRow.cjs +3 -3
- package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -1
- package/dist/data/diagnostics/StackFrameRow.js +3 -3
- package/dist/data/diagnostics/StackFrameRow.js.map +1 -1
- package/dist/data/git/GitChangeList.cjs +6 -2
- package/dist/data/git/GitChangeList.cjs.map +1 -1
- package/dist/data/git/GitChangeList.d.ts +6 -1
- package/dist/data/git/GitChangeList.d.ts.map +1 -1
- package/dist/data/git/GitChangeList.js +6 -2
- package/dist/data/git/GitChangeList.js.map +1 -1
- package/dist/data/graph-columns-layout.cjs +61 -14
- package/dist/data/graph-columns-layout.cjs.map +1 -1
- package/dist/data/graph-columns-layout.d.ts +42 -0
- package/dist/data/graph-columns-layout.d.ts.map +1 -1
- package/dist/data/graph-columns-layout.js +61 -14
- package/dist/data/graph-columns-layout.js.map +1 -1
- package/dist/data/graph-diagram-model.cjs +5 -0
- package/dist/data/graph-diagram-model.cjs.map +1 -1
- package/dist/data/graph-diagram-model.d.ts +24 -0
- package/dist/data/graph-diagram-model.d.ts.map +1 -1
- package/dist/data/graph-diagram-model.js +5 -0
- package/dist/data/graph-diagram-model.js.map +1 -1
- package/dist/data/graph-edge-routing.cjs +9 -3
- package/dist/data/graph-edge-routing.cjs.map +1 -1
- package/dist/data/graph-edge-routing.d.ts +2 -0
- package/dist/data/graph-edge-routing.d.ts.map +1 -1
- package/dist/data/graph-edge-routing.js +9 -3
- package/dist/data/graph-edge-routing.js.map +1 -1
- package/dist/data/graph-group-window.cjs +60 -0
- package/dist/data/graph-group-window.cjs.map +1 -0
- package/dist/data/graph-group-window.d.ts +33 -0
- package/dist/data/graph-group-window.d.ts.map +1 -0
- package/dist/data/graph-group-window.js +60 -0
- package/dist/data/graph-group-window.js.map +1 -0
- package/dist/data/json-view/JsonSource.cjs +84 -0
- package/dist/data/json-view/JsonSource.cjs.map +1 -0
- package/dist/data/json-view/JsonSource.d.ts +7 -0
- package/dist/data/json-view/JsonSource.d.ts.map +1 -0
- package/dist/data/json-view/JsonSource.js +84 -0
- package/dist/data/json-view/JsonSource.js.map +1 -0
- package/dist/data/json-view/parse-prefix.cjs +132 -0
- package/dist/data/json-view/parse-prefix.cjs.map +1 -0
- package/dist/data/json-view/parse-prefix.d.ts +11 -0
- package/dist/data/json-view/parse-prefix.d.ts.map +1 -0
- package/dist/data/json-view/parse-prefix.js +132 -0
- package/dist/data/json-view/parse-prefix.js.map +1 -0
- package/dist/data/json-view/parse-source.cjs +62 -0
- package/dist/data/json-view/parse-source.cjs.map +1 -0
- package/dist/data/json-view/parse-source.d.ts +16 -0
- package/dist/data/json-view/parse-source.d.ts.map +1 -0
- package/dist/data/json-view/parse-source.js +62 -0
- package/dist/data/json-view/parse-source.js.map +1 -0
- package/dist/data/json-view/story-fixtures.d.ts +6 -0
- package/dist/data/json-view/story-fixtures.d.ts.map +1 -0
- package/dist/data/json-view/types.d.ts +14 -0
- package/dist/data/json-view/types.d.ts.map +1 -0
- package/dist/data/runtime/RuntimeBar.cjs +2 -5
- package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.d.ts +2 -4
- package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.fields.cjs +2 -2
- package/dist/data/runtime/RuntimeBar.fields.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.fields.js +2 -2
- package/dist/data/runtime/RuntimeBar.fields.js.map +1 -1
- package/dist/data/runtime/RuntimeBar.js +2 -5
- package/dist/data/runtime/RuntimeBar.js.map +1 -1
- package/dist/data/runtime/RuntimeBar.selection.cjs +4 -1
- package/dist/data/runtime/RuntimeBar.selection.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.selection.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.selection.js +5 -2
- package/dist/data/runtime/RuntimeBar.selection.js.map +1 -1
- package/dist/data/runtime/RuntimeBarActions.cjs +1 -5
- package/dist/data/runtime/RuntimeBarActions.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarActions.d.ts +1 -1
- package/dist/data/runtime/RuntimeBarActions.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarActions.js +1 -5
- package/dist/data/runtime/RuntimeBarActions.js.map +1 -1
- package/dist/data/runtime/RuntimeBarIdentity.cjs +6 -14
- package/dist/data/runtime/RuntimeBarIdentity.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarIdentity.d.ts +0 -1
- package/dist/data/runtime/RuntimeBarIdentity.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarIdentity.js +6 -14
- package/dist/data/runtime/RuntimeBarIdentity.js.map +1 -1
- package/dist/data/runtime/RuntimeBarLayout.cjs +8 -27
- package/dist/data/runtime/RuntimeBarLayout.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarLayout.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarLayout.js +8 -27
- package/dist/data/runtime/RuntimeBarLayout.js.map +1 -1
- package/dist/data/runtime/RuntimeBarSegment.cjs +1 -5
- package/dist/data/runtime/RuntimeBarSegment.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarSegment.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarSegment.js +1 -5
- package/dist/data/runtime/RuntimeBarSegment.js.map +1 -1
- package/dist/data/runtime/use-runtime-bar-overflow.cjs +4 -10
- package/dist/data/runtime/use-runtime-bar-overflow.cjs.map +1 -1
- package/dist/data/runtime/use-runtime-bar-overflow.d.ts +1 -2
- package/dist/data/runtime/use-runtime-bar-overflow.d.ts.map +1 -1
- package/dist/data/runtime/use-runtime-bar-overflow.js +4 -10
- package/dist/data/runtime/use-runtime-bar-overflow.js.map +1 -1
- package/dist/data/test-runner/TestRunner.fixtures.d.ts +0 -20
- package/dist/data/test-runner/TestRunner.fixtures.d.ts.map +1 -1
- package/dist/data/test-runner/TestRunner.large-fixtures.d.ts +22 -0
- package/dist/data/test-runner/TestRunner.large-fixtures.d.ts.map +1 -0
- package/dist/data/use-group-windows.cjs +50 -0
- package/dist/data/use-group-windows.cjs.map +1 -0
- package/dist/data/use-group-windows.d.ts +27 -0
- package/dist/data/use-group-windows.d.ts.map +1 -0
- package/dist/data/use-group-windows.js +50 -0
- package/dist/data/use-group-windows.js.map +1 -0
- package/dist/data/use-pan-zoom.cjs +23 -10
- package/dist/data/use-pan-zoom.cjs.map +1 -1
- package/dist/data/use-pan-zoom.d.ts +16 -2
- package/dist/data/use-pan-zoom.d.ts.map +1 -1
- package/dist/data/use-pan-zoom.js +23 -10
- package/dist/data/use-pan-zoom.js.map +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +36 -2
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +5 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +35 -1
- package/dist/data.js.map +1 -1
- package/dist/hooks/event-hub.cjs +229 -0
- package/dist/hooks/event-hub.cjs.map +1 -0
- package/dist/hooks/event-hub.d.ts +26 -0
- package/dist/hooks/event-hub.d.ts.map +1 -0
- package/dist/hooks/event-hub.js +229 -0
- package/dist/hooks/event-hub.js.map +1 -0
- package/dist/hooks.cjs +2 -0
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.ts +1 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +2 -0
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +40 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +37 -1
- package/dist/index.js.map +1 -1
- package/dist/layout/Workspace.cjs +13 -4
- package/dist/layout/Workspace.cjs.map +1 -1
- package/dist/layout/Workspace.d.ts +7 -2
- package/dist/layout/Workspace.d.ts.map +1 -1
- package/dist/layout/Workspace.js +13 -4
- package/dist/layout/Workspace.js.map +1 -1
- package/dist/lib/permission-strategies.cjs +71 -11
- package/dist/lib/permission-strategies.cjs.map +1 -1
- package/dist/lib/permission-strategies.d.ts +3 -0
- package/dist/lib/permission-strategies.d.ts.map +1 -1
- package/dist/lib/permission-strategies.js +71 -11
- package/dist/lib/permission-strategies.js.map +1 -1
- package/dist/overlay/modalStack.cjs +13 -6
- package/dist/overlay/modalStack.cjs.map +1 -1
- package/dist/overlay/modalStack.d.ts.map +1 -1
- package/dist/overlay/modalStack.js +13 -6
- package/dist/overlay/modalStack.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +5 -3
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.cjs +0 -57
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.cjs.map +0 -1
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts +0 -7
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts.map +0 -1
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.js +0 -57
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.js.map +0 -1
- package/dist/data/runtime/RuntimeBar.context.cjs +0 -8
- package/dist/data/runtime/RuntimeBar.context.cjs.map +0 -1
- package/dist/data/runtime/RuntimeBar.context.d.ts +0 -2
- package/dist/data/runtime/RuntimeBar.context.d.ts.map +0 -1
- package/dist/data/runtime/RuntimeBar.context.js +0 -8
- package/dist/data/runtime/RuntimeBar.context.js.map +0 -1
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
const DEFAULT_URL = "/api/events";
|
|
5
|
+
const TEARDOWN_GRACE_MS = 1e3;
|
|
6
|
+
const RESUBSCRIBE_DELAY_MS = 1e3;
|
|
7
|
+
const READY_STATE_CONNECTING = 0;
|
|
8
|
+
const READY_STATE_OPEN = 1;
|
|
9
|
+
const READY_STATE_CLOSED = 2;
|
|
10
|
+
function invokeListener(listener, event) {
|
|
11
|
+
if (typeof listener === "function") listener(event);
|
|
12
|
+
else listener.handleEvent(event);
|
|
13
|
+
}
|
|
14
|
+
class Sub {
|
|
15
|
+
constructor(id, url, hooks) {
|
|
16
|
+
__publicField(this, "readyState", READY_STATE_CONNECTING);
|
|
17
|
+
__publicField(this, "onopen", null);
|
|
18
|
+
__publicField(this, "onmessage", null);
|
|
19
|
+
__publicField(this, "onerror", null);
|
|
20
|
+
__publicField(this, "listeners", /* @__PURE__ */ new Map());
|
|
21
|
+
// Real-connection listeners this sub has registered, keyed by the prefixed
|
|
22
|
+
// event name (`${id}/${name}`), so close() can remove exactly what it added.
|
|
23
|
+
__publicField(this, "routedHandlers", /* @__PURE__ */ new Map());
|
|
24
|
+
__publicField(this, "resubscribeTimer", null);
|
|
25
|
+
__publicField(this, "disposed", false);
|
|
26
|
+
this.id = id;
|
|
27
|
+
this.url = url;
|
|
28
|
+
this.hooks = hooks;
|
|
29
|
+
}
|
|
30
|
+
addEventListener(type, listener) {
|
|
31
|
+
let set = this.listeners.get(type);
|
|
32
|
+
if (!set) {
|
|
33
|
+
set = /* @__PURE__ */ new Set();
|
|
34
|
+
this.listeners.set(type, set);
|
|
35
|
+
}
|
|
36
|
+
set.add(listener);
|
|
37
|
+
this.hooks.route(this, type);
|
|
38
|
+
}
|
|
39
|
+
removeEventListener(type, listener) {
|
|
40
|
+
var _a;
|
|
41
|
+
(_a = this.listeners.get(type)) == null ? void 0 : _a.delete(listener);
|
|
42
|
+
}
|
|
43
|
+
close() {
|
|
44
|
+
this.hooks.close(this);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function dispatch(sub, name, event) {
|
|
48
|
+
var _a, _b, _c;
|
|
49
|
+
for (const listener of Array.from(sub.listeners.get(name) ?? [])) invokeListener(listener, event);
|
|
50
|
+
if (name === "message") (_a = sub.onmessage) == null ? void 0 : _a.call(sub, event);
|
|
51
|
+
if (name === "error") (_b = sub.onerror) == null ? void 0 : _b.call(sub, event);
|
|
52
|
+
if (name === "open") (_c = sub.onopen) == null ? void 0 : _c.call(sub, event);
|
|
53
|
+
}
|
|
54
|
+
function createEventHub(options = {}) {
|
|
55
|
+
const { url: hubUrl = DEFAULT_URL, buildId = null, onBuildMismatch = () => window.location.reload() } = options;
|
|
56
|
+
let real = null;
|
|
57
|
+
let connId = null;
|
|
58
|
+
let subCounter = 0;
|
|
59
|
+
const subs = /* @__PURE__ */ new Map();
|
|
60
|
+
let teardownTimer = null;
|
|
61
|
+
let reloadedForBuildMismatch = false;
|
|
62
|
+
function maybeReloadForBuildMismatch(helloBuildId) {
|
|
63
|
+
if (reloadedForBuildMismatch) return;
|
|
64
|
+
if (!helloBuildId || !buildId) return;
|
|
65
|
+
if (helloBuildId === buildId) return;
|
|
66
|
+
reloadedForBuildMismatch = true;
|
|
67
|
+
onBuildMismatch();
|
|
68
|
+
}
|
|
69
|
+
function failSub(sub, message, cause) {
|
|
70
|
+
sub.readyState = READY_STATE_CLOSED;
|
|
71
|
+
dispatch(sub, "error", new Event("error"));
|
|
72
|
+
if (cause !== void 0) console.error(`[event-hub] ${message} for ${sub.url}:`, cause);
|
|
73
|
+
else console.error(`[event-hub] ${message} for ${sub.url}`);
|
|
74
|
+
}
|
|
75
|
+
async function postSub(sub) {
|
|
76
|
+
const conn = connId;
|
|
77
|
+
if (!conn || sub.disposed || sub.readyState === READY_STATE_CLOSED) return;
|
|
78
|
+
const stale = () => sub.disposed || conn !== connId || sub.readyState === READY_STATE_CLOSED;
|
|
79
|
+
try {
|
|
80
|
+
const res = await fetch(`${hubUrl}/${conn}/subs`, {
|
|
81
|
+
method: "POST",
|
|
82
|
+
headers: { "Content-Type": "application/json" },
|
|
83
|
+
body: JSON.stringify({ id: sub.id, path: sub.url })
|
|
84
|
+
});
|
|
85
|
+
if (stale()) return;
|
|
86
|
+
if (res.status === 204) {
|
|
87
|
+
sub.readyState = READY_STATE_OPEN;
|
|
88
|
+
dispatch(sub, "open", new Event("open"));
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (res.status === 404) return;
|
|
92
|
+
failSub(sub, `subscribe failed: ${res.status}`);
|
|
93
|
+
} catch (err) {
|
|
94
|
+
if (stale()) return;
|
|
95
|
+
failSub(sub, "subscribe request failed", err);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function onHello(event) {
|
|
99
|
+
const payload = JSON.parse(event.data);
|
|
100
|
+
connId = payload.conn;
|
|
101
|
+
maybeReloadForBuildMismatch(payload.build);
|
|
102
|
+
for (const sub of subs.values()) {
|
|
103
|
+
if (!sub.disposed) void postSub(sub);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function onRealError(es) {
|
|
107
|
+
connId = null;
|
|
108
|
+
for (const sub of subs.values()) {
|
|
109
|
+
if (sub.disposed || sub.readyState === READY_STATE_CLOSED) continue;
|
|
110
|
+
sub.readyState = READY_STATE_CONNECTING;
|
|
111
|
+
dispatch(sub, "error", new Event("error"));
|
|
112
|
+
}
|
|
113
|
+
if (es.readyState !== READY_STATE_CLOSED || real !== es) return;
|
|
114
|
+
for (const sub of subs.values()) {
|
|
115
|
+
for (const [eventName, handler] of sub.routedHandlers) es.removeEventListener(eventName, handler);
|
|
116
|
+
sub.routedHandlers.clear();
|
|
117
|
+
}
|
|
118
|
+
es.onerror = null;
|
|
119
|
+
real = null;
|
|
120
|
+
setTimeout(() => {
|
|
121
|
+
if (!real && subs.size > 0) ensureRealOpen();
|
|
122
|
+
}, RESUBSCRIBE_DELAY_MS);
|
|
123
|
+
}
|
|
124
|
+
function ensureRealOpen() {
|
|
125
|
+
if (real) {
|
|
126
|
+
if (teardownTimer) {
|
|
127
|
+
clearTimeout(teardownTimer);
|
|
128
|
+
teardownTimer = null;
|
|
129
|
+
}
|
|
130
|
+
return real;
|
|
131
|
+
}
|
|
132
|
+
connId = null;
|
|
133
|
+
const es = new EventSource(hubUrl);
|
|
134
|
+
es.addEventListener("__hello", (event) => onHello(event));
|
|
135
|
+
es.onerror = () => onRealError(es);
|
|
136
|
+
real = es;
|
|
137
|
+
routeActiveSubs();
|
|
138
|
+
return es;
|
|
139
|
+
}
|
|
140
|
+
function routeActiveSubs() {
|
|
141
|
+
for (const sub of subs.values()) {
|
|
142
|
+
if (sub.disposed) continue;
|
|
143
|
+
routeName(sub, "message");
|
|
144
|
+
for (const name of sub.listeners.keys()) routeName(sub, name);
|
|
145
|
+
routeClosed(sub);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const eventNameFor = (sub, name) => `${sub.id}/${name}`;
|
|
149
|
+
function routeName(sub, name) {
|
|
150
|
+
const eventName = eventNameFor(sub, name);
|
|
151
|
+
if (!real || name === "open" || sub.disposed || sub.routedHandlers.has(eventName)) return;
|
|
152
|
+
const handler = (event) => {
|
|
153
|
+
const message = event;
|
|
154
|
+
dispatch(sub, name, new MessageEvent(name, { data: message.data, lastEventId: message.lastEventId }));
|
|
155
|
+
};
|
|
156
|
+
real.addEventListener(eventName, handler);
|
|
157
|
+
sub.routedHandlers.set(eventName, handler);
|
|
158
|
+
}
|
|
159
|
+
function onSubClosed(sub, event) {
|
|
160
|
+
if (sub.disposed) return;
|
|
161
|
+
let payload;
|
|
162
|
+
try {
|
|
163
|
+
payload = JSON.parse(event.data);
|
|
164
|
+
} catch (err) {
|
|
165
|
+
failSub(sub, "closed frame was malformed", err);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (payload.status >= 200 && payload.status < 300) {
|
|
169
|
+
sub.readyState = READY_STATE_CONNECTING;
|
|
170
|
+
dispatch(sub, "error", new Event("error"));
|
|
171
|
+
sub.resubscribeTimer = setTimeout(() => {
|
|
172
|
+
sub.resubscribeTimer = null;
|
|
173
|
+
if (!sub.disposed) void postSub(sub);
|
|
174
|
+
}, RESUBSCRIBE_DELAY_MS);
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
failSub(sub, `sub closed with status ${payload.status}`, payload.error);
|
|
178
|
+
}
|
|
179
|
+
function routeClosed(sub) {
|
|
180
|
+
const eventName = eventNameFor(sub, "__closed");
|
|
181
|
+
if (!real || sub.routedHandlers.has(eventName)) return;
|
|
182
|
+
const handler = (event) => onSubClosed(sub, event);
|
|
183
|
+
real.addEventListener(eventName, handler);
|
|
184
|
+
sub.routedHandlers.set(eventName, handler);
|
|
185
|
+
}
|
|
186
|
+
function scheduleTeardownIfIdle() {
|
|
187
|
+
if (subs.size > 0 || teardownTimer) return;
|
|
188
|
+
teardownTimer = setTimeout(() => {
|
|
189
|
+
teardownTimer = null;
|
|
190
|
+
if (subs.size > 0) return;
|
|
191
|
+
real == null ? void 0 : real.close();
|
|
192
|
+
real = null;
|
|
193
|
+
connId = null;
|
|
194
|
+
}, TEARDOWN_GRACE_MS);
|
|
195
|
+
}
|
|
196
|
+
function closeSub(sub) {
|
|
197
|
+
if (sub.disposed) return;
|
|
198
|
+
sub.disposed = true;
|
|
199
|
+
sub.readyState = READY_STATE_CLOSED;
|
|
200
|
+
if (sub.resubscribeTimer) {
|
|
201
|
+
clearTimeout(sub.resubscribeTimer);
|
|
202
|
+
sub.resubscribeTimer = null;
|
|
203
|
+
}
|
|
204
|
+
for (const [eventName, handler] of sub.routedHandlers) real == null ? void 0 : real.removeEventListener(eventName, handler);
|
|
205
|
+
sub.routedHandlers.clear();
|
|
206
|
+
subs.delete(sub.id);
|
|
207
|
+
const conn = connId;
|
|
208
|
+
if (conn) {
|
|
209
|
+
fetch(`${hubUrl}/${conn}/subs/${sub.id}`, { method: "DELETE" }).then((res) => {
|
|
210
|
+
if (!res.ok && res.status !== 404) console.error(`[event-hub] unsubscribe failed for ${sub.url}: ${res.status}`);
|
|
211
|
+
}).catch((err) => console.error(`[event-hub] unsubscribe request failed for ${sub.url}:`, err));
|
|
212
|
+
}
|
|
213
|
+
scheduleTeardownIfIdle();
|
|
214
|
+
}
|
|
215
|
+
const hooks = { route: routeName, close: closeSub };
|
|
216
|
+
return (url) => {
|
|
217
|
+
const sub = new Sub(`s${++subCounter}`, url, hooks);
|
|
218
|
+
subs.set(sub.id, sub);
|
|
219
|
+
ensureRealOpen();
|
|
220
|
+
routeName(sub, "message");
|
|
221
|
+
routeClosed(sub);
|
|
222
|
+
if (connId) void postSub(sub);
|
|
223
|
+
return sub;
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
export {
|
|
227
|
+
createEventHub
|
|
228
|
+
};
|
|
229
|
+
//# sourceMappingURL=event-hub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-hub.js","sources":["../../src/hooks/event-hub.ts"],"sourcesContent":["import type { EventSourceFactory, EventSourceLike } from \"./event-source\";\n\n// Browsers allow only six HTTP/1.1 connections per host, shared across every\n// tab. An app that opens one native EventSource per topic (list view, status\n// badge, detail pane, activity feed, ...) lets a second tab or a reload starve\n// ordinary fetches behind a queue that never drains.\n//\n// An event hub multiplexes every topic a tab opens onto a single real\n// connection to the server's events endpoint (`/api/events` by default): one\n// native EventSource, with each logical stream registered as a \"sub\"\n// (POST {url}/{conn}/subs, DELETE {url}/{conn}/subs/{id}) whose frames arrive\n// prefixed `<subId>/<name>`. Callers never see any of this — the factory\n// returned by createEventHub() hands back an EventSourceLike that behaves like\n// `new EventSource(url)` from their point of view, so it plugs straight into\n// `<EventSourceProvider value={...}>`.\n\nexport interface EventHubOptions {\n /** Server endpoint of the multiplexed stream. Defaults to `/api/events`. */\n url?: string;\n /**\n * The build id this page was served with. When the server's hello frame\n * reports a different build, `onBuildMismatch` fires once. `null`/absent\n * (tests, Storybook, a bare dev server with no backend in front of it)\n * means the hub never reloads.\n */\n buildId?: string | null;\n /** Called once on a build mismatch. Defaults to `window.location.reload()`. */\n onBuildMismatch?: () => void;\n}\n\nconst DEFAULT_URL = \"/api/events\";\n\n// How long an idle hub (no subs left) keeps the real connection open before\n// tearing it down — long enough to survive React StrictMode's mount → unmount\n// → mount churn and a component swap that closes one stream and immediately\n// opens its replacement.\nconst TEARDOWN_GRACE_MS = 1000;\n\n// Delay before re-subscribing after a sub's handler ends with a 2xx status\n// (server-side stream completed normally and can be re-opened), mirroring\n// native EventSource's own reconnect delay.\nconst RESUBSCRIBE_DELAY_MS = 1000;\n\nconst READY_STATE_CONNECTING = 0;\nconst READY_STATE_OPEN = 1;\nconst READY_STATE_CLOSED = 2;\n\ntype DomListener = EventListenerOrEventListenerObject;\n\nfunction invokeListener(listener: DomListener, event: Event): void {\n if (typeof listener === \"function\") listener(event);\n else listener.handleEvent(event);\n}\n\n// Sub is both the internal bookkeeping for one logical stream and the public\n// EventSourceLike handed back to the caller — there is no separate wrapper\n// object, so `readyState`/`url` always reflect live state.\nclass Sub implements EventSourceLike {\n readyState = READY_STATE_CONNECTING;\n onopen: ((ev: Event) => unknown) | null = null;\n onmessage: ((ev: MessageEvent) => unknown) | null = null;\n onerror: ((ev: Event) => unknown) | null = null;\n\n readonly listeners = new Map<string, Set<DomListener>>();\n // Real-connection listeners this sub has registered, keyed by the prefixed\n // event name (`${id}/${name}`), so close() can remove exactly what it added.\n readonly routedHandlers = new Map<string, (ev: Event) => void>();\n resubscribeTimer: ReturnType<typeof setTimeout> | null = null;\n disposed = false;\n\n constructor(\n readonly id: string,\n readonly url: string,\n private readonly hooks: { route(sub: Sub, name: string): void; close(sub: Sub): void },\n ) {}\n\n addEventListener(type: string, listener: DomListener): void {\n let set = this.listeners.get(type);\n if (!set) {\n set = new Set();\n this.listeners.set(type, set);\n }\n set.add(listener);\n this.hooks.route(this, type);\n }\n\n removeEventListener(type: string, listener: DomListener): void {\n this.listeners.get(type)?.delete(listener);\n }\n\n close(): void {\n this.hooks.close(this);\n }\n}\n\nfunction dispatch(sub: Sub, name: string, event: Event): void {\n // Snapshot the set so a listener that (un)registers listeners mid-dispatch\n // doesn't change who receives this frame.\n for (const listener of Array.from(sub.listeners.get(name) ?? [])) invokeListener(listener, event);\n // onmessage/onerror/onopen mirror native EventSource: each is just the\n // single-slot form of addEventListener('message'|'error'|'open', ...), so a\n // frame named \"error\" (server-sent) reaches both a registered\n // addEventListener('error', ...) and .onerror, exactly like the browser.\n if (name === \"message\") sub.onmessage?.(event as MessageEvent);\n if (name === \"error\") sub.onerror?.(event);\n if (name === \"open\") sub.onopen?.(event);\n}\n\n/**\n * Creates an `EventSourceFactory` that multiplexes every stream it opens over\n * one real connection to `options.url`. Each returned stream behaves like\n * `new EventSource(url)` to the caller: CONNECTING until the subscription is\n * live, dispatches 'open'/'message'/'error' (and any server-named event), and\n * auto-reconnects the way native EventSource does.\n *\n * All state (real connection, connection id, sub registry, teardown timer,\n * reload guard) is per hub, so two hubs never share a connection.\n */\nexport function createEventHub(options: EventHubOptions = {}): EventSourceFactory {\n const { url: hubUrl = DEFAULT_URL, buildId = null, onBuildMismatch = () => window.location.reload() } = options;\n\n let real: EventSourceLike | null = null;\n let connId: string | null = null;\n let subCounter = 0;\n const subs = new Map<string, Sub>();\n let teardownTimer: ReturnType<typeof setTimeout> | null = null;\n // Guards against a reload loop within one page load: once triggered, further\n // __hello frames (e.g. after the reload's own new connection reconnects\n // mid-flight) never trigger a second one.\n let reloadedForBuildMismatch = false;\n\n // A stale tab still serving an old bundle would otherwise keep working\n // against a server that has moved on — including racing the six-connection\n // cap this hub exists to close, since an old bundle may hold raw\n // EventSources of its own. When the server's hello reports a different build\n // than the one this page was served with, reload once to pick up the\n // current bundle.\n function maybeReloadForBuildMismatch(helloBuildId: string | undefined): void {\n if (reloadedForBuildMismatch) return;\n if (!helloBuildId || !buildId) return;\n if (helloBuildId === buildId) return;\n reloadedForBuildMismatch = true;\n onBuildMismatch();\n }\n\n function failSub(sub: Sub, message: string, cause?: unknown): void {\n sub.readyState = READY_STATE_CLOSED;\n dispatch(sub, \"error\", new Event(\"error\"));\n if (cause !== undefined) console.error(`[event-hub] ${message} for ${sub.url}:`, cause);\n else console.error(`[event-hub] ${message} for ${sub.url}`);\n }\n\n async function postSub(sub: Sub): Promise<void> {\n const conn = connId;\n if (!conn || sub.disposed || sub.readyState === READY_STATE_CLOSED) return;\n // A response for a connection that has since dropped (or a sub that has\n // since failed) is stale: the next __hello re-subscribes on the live one.\n const stale = () => sub.disposed || conn !== connId || sub.readyState === READY_STATE_CLOSED;\n try {\n const res = await fetch(`${hubUrl}/${conn}/subs`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ id: sub.id, path: sub.url }),\n });\n if (stale()) return;\n if (res.status === 204) {\n sub.readyState = READY_STATE_OPEN;\n dispatch(sub, \"open\", new Event(\"open\"));\n return;\n }\n if (res.status === 404) return; // stale conn id; the next __hello retries\n failSub(sub, `subscribe failed: ${res.status}`);\n } catch (err) {\n if (stale()) return;\n failSub(sub, \"subscribe request failed\", err);\n }\n }\n\n function onHello(event: MessageEvent): void {\n const payload = JSON.parse(event.data) as { conn: string; build?: string };\n connId = payload.conn;\n maybeReloadForBuildMismatch(payload.build);\n // A hello means every currently-active sub needs a fresh subscription: the\n // first hello of a brand-new connection, or a reconnect hello after a\n // drop, both start from a server side with no subs registered yet.\n for (const sub of subs.values()) {\n if (!sub.disposed) void postSub(sub);\n }\n }\n\n function onRealError(es: EventSourceLike): void {\n connId = null;\n for (const sub of subs.values()) {\n if (sub.disposed || sub.readyState === READY_STATE_CLOSED) continue;\n sub.readyState = READY_STATE_CONNECTING;\n dispatch(sub, \"error\", new Event(\"error\"));\n }\n // Native EventSource reconnects on its own after a transient error; the\n // next __hello re-subscribes everything and dispatches 'open' again. A\n // CLOSED source (non-200 or wrong Content-Type) never reconnects, so drop\n // it and open a replacement after a delay.\n if (es.readyState !== READY_STATE_CLOSED || real !== es) return;\n for (const sub of subs.values()) {\n for (const [eventName, handler] of sub.routedHandlers) es.removeEventListener(eventName, handler);\n sub.routedHandlers.clear();\n }\n es.onerror = null;\n real = null;\n setTimeout(() => {\n if (!real && subs.size > 0) ensureRealOpen();\n }, RESUBSCRIBE_DELAY_MS);\n }\n\n function ensureRealOpen(): EventSourceLike {\n if (real) {\n if (teardownTimer) {\n clearTimeout(teardownTimer);\n teardownTimer = null;\n }\n return real;\n }\n connId = null;\n const es = new EventSource(hubUrl);\n es.addEventListener(\"__hello\", (event) => onHello(event as MessageEvent));\n es.onerror = () => onRealError(es);\n real = es;\n routeActiveSubs();\n return es;\n }\n\n // routeActiveSubs binds every live sub's routing onto a freshly created real\n // connection (a replacement after a terminal error has none yet).\n function routeActiveSubs(): void {\n for (const sub of subs.values()) {\n if (sub.disposed) continue;\n routeName(sub, \"message\");\n for (const name of sub.listeners.keys()) routeName(sub, name);\n routeClosed(sub);\n }\n }\n\n const eventNameFor = (sub: Sub, name: string) => `${sub.id}/${name}`;\n\n // routeName registers, at most once per sub+name, a real-connection listener\n // that re-dispatches `${sub.id}/${name}` frames to this sub's own listeners.\n // \"open\" is synthetic (dispatched locally on subscribe/reconnect) and never\n // arrives on the wire, so it is never routed. A closed sub has no routing to\n // register: its real connection may already be torn down, and no frame for\n // it can arrive. With no real connection (awaiting a replacement after a\n // terminal error) routing is deferred to routeActiveSubs.\n function routeName(sub: Sub, name: string): void {\n const eventName = eventNameFor(sub, name);\n if (!real || name === \"open\" || sub.disposed || sub.routedHandlers.has(eventName)) return;\n const handler = (event: Event) => {\n const message = event as MessageEvent;\n dispatch(sub, name, new MessageEvent(name, { data: message.data, lastEventId: message.lastEventId }));\n };\n real.addEventListener(eventName, handler);\n sub.routedHandlers.set(eventName, handler);\n }\n\n function onSubClosed(sub: Sub, event: MessageEvent): void {\n if (sub.disposed) return;\n let payload: { status: number; error?: string };\n try {\n payload = JSON.parse(event.data) as { status: number; error?: string };\n } catch (err) {\n failSub(sub, \"closed frame was malformed\", err);\n return;\n }\n if (payload.status >= 200 && payload.status < 300) {\n // The server-side handler ended on its own with a success status — the\n // same shape as a native stream simply reconnecting.\n sub.readyState = READY_STATE_CONNECTING;\n dispatch(sub, \"error\", new Event(\"error\"));\n sub.resubscribeTimer = setTimeout(() => {\n sub.resubscribeTimer = null;\n if (!sub.disposed) void postSub(sub);\n }, RESUBSCRIBE_DELAY_MS);\n return;\n }\n failSub(sub, `sub closed with status ${payload.status}`, payload.error);\n }\n\n // routeClosed wires the sub's terminal frame: unlike every other name, its\n // payload drives re-subscription rather than being handed to consumers.\n function routeClosed(sub: Sub): void {\n const eventName = eventNameFor(sub, \"__closed\");\n if (!real || sub.routedHandlers.has(eventName)) return;\n const handler = (event: Event) => onSubClosed(sub, event as MessageEvent);\n real.addEventListener(eventName, handler);\n sub.routedHandlers.set(eventName, handler);\n }\n\n function scheduleTeardownIfIdle(): void {\n if (subs.size > 0 || teardownTimer) return;\n teardownTimer = setTimeout(() => {\n teardownTimer = null;\n if (subs.size > 0) return; // something re-subscribed during the grace window\n real?.close();\n real = null;\n connId = null;\n }, TEARDOWN_GRACE_MS);\n }\n\n function closeSub(sub: Sub): void {\n if (sub.disposed) return;\n sub.disposed = true;\n sub.readyState = READY_STATE_CLOSED;\n if (sub.resubscribeTimer) {\n clearTimeout(sub.resubscribeTimer);\n sub.resubscribeTimer = null;\n }\n for (const [eventName, handler] of sub.routedHandlers) real?.removeEventListener(eventName, handler);\n sub.routedHandlers.clear();\n subs.delete(sub.id);\n\n const conn = connId;\n if (conn) {\n fetch(`${hubUrl}/${conn}/subs/${sub.id}`, { method: \"DELETE\" })\n .then((res) => {\n if (!res.ok && res.status !== 404) console.error(`[event-hub] unsubscribe failed for ${sub.url}: ${res.status}`);\n })\n .catch((err) => console.error(`[event-hub] unsubscribe request failed for ${sub.url}:`, err));\n }\n scheduleTeardownIfIdle();\n }\n\n const hooks = { route: routeName, close: closeSub };\n\n return (url) => {\n const sub = new Sub(`s${++subCounter}`, url, hooks);\n subs.set(sub.id, sub);\n ensureRealOpen();\n // Routing must be registered before the subscribe POST is sent: frames can\n // start arriving on the real connection as soon as the server accepts the\n // subscription, which can race the POST's own response.\n routeName(sub, \"message\");\n routeClosed(sub);\n if (connId) void postSub(sub);\n return sub;\n };\n}\n"],"names":[],"mappings":"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"}
|
package/dist/hooks.cjs
CHANGED
|
@@ -10,6 +10,7 @@ const useSort = require("./hooks/use-sort.cjs");
|
|
|
10
10
|
const useHistoryRoute = require("./hooks/use-history-route.cjs");
|
|
11
11
|
const eventSource = require("./hooks/event-source.cjs");
|
|
12
12
|
const eventSourceProvider = require("./hooks/event-source-provider.cjs");
|
|
13
|
+
const eventHub = require("./hooks/event-hub.cjs");
|
|
13
14
|
const useTaskRun = require("./hooks/use-task-run.cjs");
|
|
14
15
|
const usePrompts = require("./hooks/use-prompts.cjs");
|
|
15
16
|
const useHotkey = require("./hooks/use-hotkey.cjs");
|
|
@@ -31,6 +32,7 @@ exports.useSort = useSort.useSort;
|
|
|
31
32
|
exports.useHistoryRoute = useHistoryRoute.useHistoryRoute;
|
|
32
33
|
exports.useEventSourceFactory = eventSource.useEventSourceFactory;
|
|
33
34
|
exports.EventSourceProvider = eventSourceProvider.EventSourceProvider;
|
|
35
|
+
exports.createEventHub = eventHub.createEventHub;
|
|
34
36
|
exports.useTaskRun = useTaskRun.useTaskRun;
|
|
35
37
|
exports.useTaskRuns = useTaskRun.useTaskRuns;
|
|
36
38
|
exports.answerPrompt = usePrompts.answerPrompt;
|
package/dist/hooks.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/hooks.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export { useSort, type SortDir, type SortState, type UseSortOptions, type UseSor
|
|
|
8
8
|
export { useHistoryRoute, type UseHistoryRouteOptions } from './hooks/use-history-route.js';
|
|
9
9
|
export { useEventSourceFactory, type EventSourceFactory, type EventSourceLike, } from './hooks/event-source.js';
|
|
10
10
|
export { EventSourceProvider, type EventSourceProviderProps, } from './hooks/event-source-provider.js';
|
|
11
|
+
export { createEventHub, type EventHubOptions } from './hooks/event-hub.js';
|
|
11
12
|
export { useTaskRun, useTaskRuns, type UseTaskRunOptions, type UseTaskRunResult, type UseTaskRunsOptions, type UseTaskRunsResult, type TaskTransportOptions, } from './hooks/use-task-run.js';
|
|
12
13
|
export { usePrompts, answerPrompt, type PromptSnapshot, type PromptFilter, type UsePromptsOptions, type UsePromptsResult, } from './hooks/use-prompts.js';
|
|
13
14
|
export { useHotkey, parseHotkey, formatHotkey, type UseHotkeyOptions, type ParsedHotkey, } from './hooks/use-hotkey.js';
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,OAAO,EACP,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EACL,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,UAAU,EACV,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,OAAO,EACP,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EACL,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,UAAU,EACV,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/hooks.js
CHANGED
|
@@ -8,6 +8,7 @@ import { useSort } from "./hooks/use-sort.js";
|
|
|
8
8
|
import { useHistoryRoute } from "./hooks/use-history-route.js";
|
|
9
9
|
import { useEventSourceFactory } from "./hooks/event-source.js";
|
|
10
10
|
import { EventSourceProvider } from "./hooks/event-source-provider.js";
|
|
11
|
+
import { createEventHub } from "./hooks/event-hub.js";
|
|
11
12
|
import { useTaskRun, useTaskRuns } from "./hooks/use-task-run.js";
|
|
12
13
|
import { answerPrompt, usePrompts } from "./hooks/use-prompts.js";
|
|
13
14
|
import { formatHotkey, parseHotkey, useHotkey } from "./hooks/use-hotkey.js";
|
|
@@ -20,6 +21,7 @@ export {
|
|
|
20
21
|
ThemeProvider,
|
|
21
22
|
answerPrompt,
|
|
22
23
|
appendTailEvent,
|
|
24
|
+
createEventHub,
|
|
23
25
|
emptyLogTailBuffer,
|
|
24
26
|
encodeTailParams,
|
|
25
27
|
formatHotkey,
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
package/dist/index.cjs
CHANGED
|
@@ -23,6 +23,7 @@ const useSort = require("./hooks/use-sort.cjs");
|
|
|
23
23
|
const useHistoryRoute = require("./hooks/use-history-route.cjs");
|
|
24
24
|
const eventSource = require("./hooks/event-source.cjs");
|
|
25
25
|
const eventSourceProvider = require("./hooks/event-source-provider.cjs");
|
|
26
|
+
const eventHub = require("./hooks/event-hub.cjs");
|
|
26
27
|
const useTaskRun = require("./hooks/use-task-run.cjs");
|
|
27
28
|
const usePrompts = require("./hooks/use-prompts.cjs");
|
|
28
29
|
const useHotkey = require("./hooks/use-hotkey.cjs");
|
|
@@ -199,6 +200,8 @@ const ExecutionTree = require("./data/ExecutionTree.cjs");
|
|
|
199
200
|
const GraphDiagram = require("./data/GraphDiagram.cjs");
|
|
200
201
|
const graphLayout = require("./data/graph-layout.cjs");
|
|
201
202
|
const graphColumnsLayout = require("./data/graph-columns-layout.cjs");
|
|
203
|
+
const AccessMark = require("./data/AccessMark.cjs");
|
|
204
|
+
const dataAccess = require("./data/data-access.cjs");
|
|
202
205
|
const TreeNode = require("./data/TreeNode.cjs");
|
|
203
206
|
const TreeGroupHeader = require("./data/TreeGroupHeader.cjs");
|
|
204
207
|
const Timeline = require("./data/Timeline.cjs");
|
|
@@ -286,13 +289,18 @@ const clickyMetadata = require("./rpc/clickyMetadata.cjs");
|
|
|
286
289
|
const commandHref = require("./rpc/commandHref.cjs");
|
|
287
290
|
const router = require("./rpc/router.cjs");
|
|
288
291
|
const RouterProvider = require("./rpc/RouterProvider.cjs");
|
|
289
|
-
const types$
|
|
292
|
+
const types$2 = require("./rpc/types.cjs");
|
|
293
|
+
const types = require("./data/call-graph/types.cjs");
|
|
294
|
+
const callGraphVocabulary = require("./data/call-graph/call-graph-vocabulary.cjs");
|
|
295
|
+
const callGraphModel = require("./data/call-graph/call-graph-model.cjs");
|
|
296
|
+
const callGraphExclude = require("./data/call-graph/call-graph-exclude.cjs");
|
|
290
297
|
const adapter = require("./data/cache-browser/adapter.cjs");
|
|
291
298
|
const CacheBrowser = require("./data/cache-browser/CacheBrowser.cjs");
|
|
292
299
|
const CacheDetailPanel = require("./data/cache-browser/CacheDetailPanel.cjs");
|
|
293
300
|
const CacheTree = require("./data/cache-browser/CacheTree.cjs");
|
|
294
301
|
const CacheStatsOverview = require("./data/cache-browser/CacheStatsOverview.cjs");
|
|
295
302
|
const CacheValue = require("./data/cache-browser/CacheValue.cjs");
|
|
303
|
+
const CallGraph = require("./data/call-graph/CallGraph.cjs");
|
|
296
304
|
const ClickyExportDialog = require("./data/clicky-export/ClickyExportDialog.cjs");
|
|
297
305
|
const FixtureEditor = require("./data/FixtureEditor/FixtureEditor.cjs");
|
|
298
306
|
const GitChangeList = require("./data/git/GitChangeList.cjs");
|
|
@@ -890,7 +898,7 @@ const filterState = require("./data/test-runner/filterState.cjs");
|
|
|
890
898
|
const verifyReport = require("./data/verification/verify-report.cjs");
|
|
891
899
|
const gitDates = require("./data/git/git-dates.cjs");
|
|
892
900
|
const frameworkIcon = require("./data/test-runner/frameworkIcon.cjs");
|
|
893
|
-
const types = require("./data/cache-browser/types.cjs");
|
|
901
|
+
const types$1 = require("./data/cache-browser/types.cjs");
|
|
894
902
|
const programmingCatalog = require("./icons/programmingCatalog.cjs");
|
|
895
903
|
const graphEdgeRouting = require("./data/graph-edge-routing.cjs");
|
|
896
904
|
const useClickyExport = require("./data/clicky-export/useClickyExport.cjs");
|
|
@@ -987,6 +995,7 @@ exports.useSort = useSort.useSort;
|
|
|
987
995
|
exports.useHistoryRoute = useHistoryRoute.useHistoryRoute;
|
|
988
996
|
exports.useEventSourceFactory = eventSource.useEventSourceFactory;
|
|
989
997
|
exports.EventSourceProvider = eventSourceProvider.EventSourceProvider;
|
|
998
|
+
exports.createEventHub = eventHub.createEventHub;
|
|
990
999
|
exports.useTaskRun = useTaskRun.useTaskRun;
|
|
991
1000
|
exports.useTaskRuns = useTaskRun.useTaskRuns;
|
|
992
1001
|
exports.answerPrompt = usePrompts.answerPrompt;
|
|
@@ -1265,7 +1274,10 @@ exports.pruneNullNodes = objectGraphNodes.pruneNullNodes;
|
|
|
1265
1274
|
exports.ExecutionTree = ExecutionTree.ExecutionTree;
|
|
1266
1275
|
exports.GraphDiagram = GraphDiagram.GraphDiagram;
|
|
1267
1276
|
exports.ringLayout = graphLayout.ringLayout;
|
|
1277
|
+
exports.GROUP_MEMBER_WINDOW = graphColumnsLayout.GROUP_MEMBER_WINDOW;
|
|
1268
1278
|
exports.columnsLayout = graphColumnsLayout.columnsLayout;
|
|
1279
|
+
exports.AccessMark = AccessMark.AccessMark;
|
|
1280
|
+
exports.mergeAccess = dataAccess.mergeAccess;
|
|
1269
1281
|
exports.TreeNode = TreeNode.TreeNode;
|
|
1270
1282
|
exports.TreeGroupHeader = TreeGroupHeader.TreeGroupHeader;
|
|
1271
1283
|
exports.Timeline = Timeline.Timeline;
|
|
@@ -1462,7 +1474,30 @@ exports.useBrowserRouter = router.useBrowserRouter;
|
|
|
1462
1474
|
exports.useMemoryRouter = router.useMemoryRouter;
|
|
1463
1475
|
exports.useRouter = router.useRouter;
|
|
1464
1476
|
exports.RouterProvider = RouterProvider.RouterProvider;
|
|
1465
|
-
exports.isPositionalParam = types$
|
|
1477
|
+
exports.isPositionalParam = types$2.isPositionalParam;
|
|
1478
|
+
exports.CALL_GRAPH_ACCESS = types.CALL_GRAPH_ACCESS;
|
|
1479
|
+
exports.CALL_GRAPH_DATA_GLYPHS = callGraphVocabulary.CALL_GRAPH_DATA_GLYPHS;
|
|
1480
|
+
exports.CALL_GRAPH_DATA_KIND_WORDS = callGraphVocabulary.DATA_KIND_WORDS;
|
|
1481
|
+
exports.DATA_MEMBER_OWNER = callGraphVocabulary.DATA_MEMBER_OWNER;
|
|
1482
|
+
exports.UIR_CALL_GRAPH_VOCABULARY = callGraphVocabulary.UIR_CALL_GRAPH_VOCABULARY;
|
|
1483
|
+
exports.callsItself = callGraphVocabulary.callsItself;
|
|
1484
|
+
exports.dataMemberAside = callGraphVocabulary.dataMemberAside;
|
|
1485
|
+
exports.dataNodeBacking = callGraphVocabulary.dataNodeBacking;
|
|
1486
|
+
exports.dataNodeGlyph = callGraphVocabulary.dataNodeGlyph;
|
|
1487
|
+
exports.dataNodeStatus = callGraphVocabulary.dataNodeStatus;
|
|
1488
|
+
exports.interfaceMethods = callGraphVocabulary.interfaceMethods;
|
|
1489
|
+
exports.isDataMember = callGraphVocabulary.isDataMember;
|
|
1490
|
+
exports.isDataNode = callGraphVocabulary.isDataNode;
|
|
1491
|
+
exports.CALL_GRAPH_DEFAULT_DEPTH = callGraphModel.CALL_GRAPH_DEFAULT_DEPTH;
|
|
1492
|
+
exports.CALL_GRAPH_MAX_DEPTH = callGraphModel.CALL_GRAPH_MAX_DEPTH;
|
|
1493
|
+
exports.baseCallGraphAccess = callGraphModel.baseAccess;
|
|
1494
|
+
exports.mergeCallGraph = callGraphModel.mergeGraph;
|
|
1495
|
+
exports.toggleCallGraphAccess = callGraphModel.toggleAccess;
|
|
1496
|
+
exports.CALL_GRAPH_EXCLUDE_EXTERNAL = callGraphExclude.EXCLUDE_EXTERNAL;
|
|
1497
|
+
exports.callGraphGroupFacts = callGraphExclude.callGraphGroupFacts;
|
|
1498
|
+
exports.formatCallGraphExclude = callGraphExclude.formatExclude;
|
|
1499
|
+
exports.matchesCallGraphExclude = callGraphExclude.matchesExclude;
|
|
1500
|
+
exports.parseCallGraphExclude = callGraphExclude.parseExclude;
|
|
1466
1501
|
exports.CacheAdapterRegistry = adapter.CacheAdapterRegistry;
|
|
1467
1502
|
exports.createCacheRegistry = adapter.createCacheRegistry;
|
|
1468
1503
|
exports.prefixAdapter = adapter.prefixAdapter;
|
|
@@ -1472,6 +1507,7 @@ exports.CacheNodeRow = CacheTree.CacheNodeRow;
|
|
|
1472
1507
|
exports.CacheTree = CacheTree.CacheTree;
|
|
1473
1508
|
exports.CacheStatsOverview = CacheStatsOverview.CacheStatsOverview;
|
|
1474
1509
|
exports.CacheValue = CacheValue.CacheValue;
|
|
1510
|
+
exports.CallGraph = CallGraph.CallGraph;
|
|
1475
1511
|
exports.ClickyExportDialog = ClickyExportDialog.ClickyExportDialog;
|
|
1476
1512
|
exports.FixtureEditor = FixtureEditor.FixtureEditor;
|
|
1477
1513
|
exports.GitChangedFilesSummary = GitChangeList.GitChangedFilesSummary;
|
|
@@ -2605,7 +2641,7 @@ exports.emptyVerifySummary = verifyReport.emptyVerifySummary;
|
|
|
2605
2641
|
exports.summarizeVerifyNodes = verifyReport.summarizeVerifyNodes;
|
|
2606
2642
|
exports.formatGitCommitDateHeader = gitDates.formatGitCommitDateHeader;
|
|
2607
2643
|
exports.frameworkIcon = frameworkIcon.frameworkIcon;
|
|
2608
|
-
exports.isLeaf = types.isLeaf;
|
|
2644
|
+
exports.isLeaf = types$1.isLeaf;
|
|
2609
2645
|
exports.programmingIconCatalog = programmingCatalog.programmingIconCatalog;
|
|
2610
2646
|
exports.routeEdges = graphEdgeRouting.routeEdges;
|
|
2611
2647
|
exports.useClickyExport = useClickyExport.useClickyExport;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -21,6 +21,7 @@ import { useSort } from "./hooks/use-sort.js";
|
|
|
21
21
|
import { useHistoryRoute } from "./hooks/use-history-route.js";
|
|
22
22
|
import { useEventSourceFactory } from "./hooks/event-source.js";
|
|
23
23
|
import { EventSourceProvider } from "./hooks/event-source-provider.js";
|
|
24
|
+
import { createEventHub } from "./hooks/event-hub.js";
|
|
24
25
|
import { useTaskRun, useTaskRuns } from "./hooks/use-task-run.js";
|
|
25
26
|
import { answerPrompt, usePrompts } from "./hooks/use-prompts.js";
|
|
26
27
|
import { formatHotkey, parseHotkey, useHotkey } from "./hooks/use-hotkey.js";
|
|
@@ -196,7 +197,9 @@ import { countObjectGraphNodes, pruneNullNodes } from "./data/object-graph-nodes
|
|
|
196
197
|
import { ExecutionTree } from "./data/ExecutionTree.js";
|
|
197
198
|
import { GraphDiagram } from "./data/GraphDiagram.js";
|
|
198
199
|
import { ringLayout } from "./data/graph-layout.js";
|
|
199
|
-
import { columnsLayout } from "./data/graph-columns-layout.js";
|
|
200
|
+
import { GROUP_MEMBER_WINDOW, columnsLayout } from "./data/graph-columns-layout.js";
|
|
201
|
+
import { AccessMark } from "./data/AccessMark.js";
|
|
202
|
+
import { mergeAccess } from "./data/data-access.js";
|
|
200
203
|
import { TreeNode } from "./data/TreeNode.js";
|
|
201
204
|
import { TreeGroupHeader } from "./data/TreeGroupHeader.js";
|
|
202
205
|
import { Timeline } from "./data/Timeline.js";
|
|
@@ -285,12 +288,17 @@ import { buildCommandHref, withBasePath } from "./rpc/commandHref.js";
|
|
|
285
288
|
import { useBrowserRouter, useMemoryRouter, useRouter } from "./rpc/router.js";
|
|
286
289
|
import { RouterProvider } from "./rpc/RouterProvider.js";
|
|
287
290
|
import { isPositionalParam } from "./rpc/types.js";
|
|
291
|
+
import { CALL_GRAPH_ACCESS } from "./data/call-graph/types.js";
|
|
292
|
+
import { CALL_GRAPH_DATA_GLYPHS, DATA_KIND_WORDS, DATA_MEMBER_OWNER, UIR_CALL_GRAPH_VOCABULARY, callsItself, dataMemberAside, dataNodeBacking, dataNodeGlyph, dataNodeStatus, interfaceMethods, isDataMember, isDataNode } from "./data/call-graph/call-graph-vocabulary.js";
|
|
293
|
+
import { CALL_GRAPH_DEFAULT_DEPTH, CALL_GRAPH_MAX_DEPTH, baseAccess, mergeGraph, toggleAccess } from "./data/call-graph/call-graph-model.js";
|
|
294
|
+
import { EXCLUDE_EXTERNAL, callGraphGroupFacts, formatExclude, matchesExclude, parseExclude } from "./data/call-graph/call-graph-exclude.js";
|
|
288
295
|
import { CacheAdapterRegistry, createCacheRegistry, prefixAdapter } from "./data/cache-browser/adapter.js";
|
|
289
296
|
import { CacheBrowser } from "./data/cache-browser/CacheBrowser.js";
|
|
290
297
|
import { CacheDetailPanel } from "./data/cache-browser/CacheDetailPanel.js";
|
|
291
298
|
import { CacheNodeRow, CacheTree } from "./data/cache-browser/CacheTree.js";
|
|
292
299
|
import { CacheStatsOverview } from "./data/cache-browser/CacheStatsOverview.js";
|
|
293
300
|
import { CacheValue } from "./data/cache-browser/CacheValue.js";
|
|
301
|
+
import { CallGraph } from "./data/call-graph/CallGraph.js";
|
|
294
302
|
import { ClickyExportDialog } from "./data/clicky-export/ClickyExportDialog.js";
|
|
295
303
|
import { FixtureEditor } from "./data/FixtureEditor/FixtureEditor.js";
|
|
296
304
|
import { GitChangedFilesSummary, GitCommitList, GitDiffPanel, GitFileList } from "./data/git/GitChangeList.js";
|
|
@@ -897,6 +905,7 @@ import { verifyReportCounts, verifyReportTests } from "./data/verification/verif
|
|
|
897
905
|
export {
|
|
898
906
|
ACCEPT_OPTIONS,
|
|
899
907
|
AVATAR_PALETTE,
|
|
908
|
+
AccessMark,
|
|
900
909
|
AccordionList,
|
|
901
910
|
AnsiHtml,
|
|
902
911
|
AppLayout,
|
|
@@ -909,6 +918,12 @@ export {
|
|
|
909
918
|
CALLOUT_TONES,
|
|
910
919
|
CALLOUT_VARIANTS,
|
|
911
920
|
CALLOUT_VARIANT_LABELS,
|
|
921
|
+
CALL_GRAPH_ACCESS,
|
|
922
|
+
CALL_GRAPH_DATA_GLYPHS,
|
|
923
|
+
DATA_KIND_WORDS as CALL_GRAPH_DATA_KIND_WORDS,
|
|
924
|
+
CALL_GRAPH_DEFAULT_DEPTH,
|
|
925
|
+
EXCLUDE_EXTERNAL as CALL_GRAPH_EXCLUDE_EXTERNAL,
|
|
926
|
+
CALL_GRAPH_MAX_DEPTH,
|
|
912
927
|
CLICKY_COLUMN_FORMAT_OPTIONS,
|
|
913
928
|
CLICKY_COLUMN_UNIT_OPTIONS,
|
|
914
929
|
CLICKY_FORMAT_OPTIONS,
|
|
@@ -925,6 +940,7 @@ export {
|
|
|
925
940
|
CacheStatsOverview,
|
|
926
941
|
CacheTree,
|
|
927
942
|
CacheValue,
|
|
943
|
+
CallGraph,
|
|
928
944
|
Callout,
|
|
929
945
|
CellActionButton,
|
|
930
946
|
CellActions,
|
|
@@ -959,6 +975,7 @@ export {
|
|
|
959
975
|
CopyButton,
|
|
960
976
|
CountryFlag,
|
|
961
977
|
CountryPicker,
|
|
978
|
+
DATA_MEMBER_OWNER,
|
|
962
979
|
DATA_TABLE_FILTER_LOOKUP_LIMIT,
|
|
963
980
|
DEBUG_CAPTURE_HEADER,
|
|
964
981
|
DEBUG_REFRESH_INSPECTION_HEADER,
|
|
@@ -1003,6 +1020,7 @@ export {
|
|
|
1003
1020
|
FormLookupProvider,
|
|
1004
1021
|
FormatOptionsDropdown,
|
|
1005
1022
|
FrameSourceWindow,
|
|
1023
|
+
GROUP_MEMBER_WINDOW,
|
|
1006
1024
|
Gauge,
|
|
1007
1025
|
GaugeHoverCard,
|
|
1008
1026
|
GitChangedFilesSummary,
|
|
@@ -1157,6 +1175,7 @@ export {
|
|
|
1157
1175
|
TreePickerField,
|
|
1158
1176
|
TriStateMultiSelect,
|
|
1159
1177
|
TriStateToggle,
|
|
1178
|
+
UIR_CALL_GRAPH_VOCABULARY,
|
|
1160
1179
|
UiAccessProtected,
|
|
1161
1180
|
UiAccessProtectedDark,
|
|
1162
1181
|
UiAccessPublic,
|
|
@@ -2243,6 +2262,7 @@ export {
|
|
|
2243
2262
|
authorDisplayName,
|
|
2244
2263
|
authoredRuntimeSpec,
|
|
2245
2264
|
badgeVariants,
|
|
2265
|
+
baseAccess as baseCallGraphAccess,
|
|
2246
2266
|
bucketTasks,
|
|
2247
2267
|
buildCommandHref,
|
|
2248
2268
|
buildJSONPathNode,
|
|
@@ -2257,7 +2277,9 @@ export {
|
|
|
2257
2277
|
buttonVariants,
|
|
2258
2278
|
cacheQueryKeys,
|
|
2259
2279
|
calculateComboboxMenuPosition,
|
|
2280
|
+
callGraphGroupFacts,
|
|
2260
2281
|
calloutVariantStyles,
|
|
2282
|
+
callsItself,
|
|
2261
2283
|
changeIconAliases,
|
|
2262
2284
|
chooseTimestampFormat,
|
|
2263
2285
|
clickyFormatForMarkdownPreview,
|
|
@@ -2283,6 +2305,7 @@ export {
|
|
|
2283
2305
|
createCacheRegistry,
|
|
2284
2306
|
createChecklistMarkdown,
|
|
2285
2307
|
createComboboxCustomEntry,
|
|
2308
|
+
createEventHub,
|
|
2286
2309
|
createFenceMarkdown,
|
|
2287
2310
|
createLazyJSONPathTree,
|
|
2288
2311
|
createOperationsApiClient,
|
|
@@ -2290,6 +2313,10 @@ export {
|
|
|
2290
2313
|
createTestRunnerRegistry,
|
|
2291
2314
|
createUnitFormExtensions,
|
|
2292
2315
|
cycleFilterState,
|
|
2316
|
+
dataMemberAside,
|
|
2317
|
+
dataNodeBacking,
|
|
2318
|
+
dataNodeGlyph,
|
|
2319
|
+
dataNodeStatus,
|
|
2293
2320
|
debugCaptureHeaders,
|
|
2294
2321
|
debugConsoleAvailable,
|
|
2295
2322
|
debugConsoleOpen,
|
|
@@ -2330,6 +2357,7 @@ export {
|
|
|
2330
2357
|
foldersFirst,
|
|
2331
2358
|
formatBytes,
|
|
2332
2359
|
formatBytesPerSecond,
|
|
2360
|
+
formatExclude as formatCallGraphExclude,
|
|
2333
2361
|
formatCount,
|
|
2334
2362
|
formatDateTimeRelative,
|
|
2335
2363
|
formatDuration,
|
|
@@ -2364,9 +2392,12 @@ export {
|
|
|
2364
2392
|
humanizeName,
|
|
2365
2393
|
iconsByConsumerName,
|
|
2366
2394
|
inferColumns,
|
|
2395
|
+
interfaceMethods,
|
|
2367
2396
|
isApplicationStackFrame,
|
|
2368
2397
|
isConnectionLoggingCapability,
|
|
2369
2398
|
isCountryCode,
|
|
2399
|
+
isDataMember,
|
|
2400
|
+
isDataNode,
|
|
2370
2401
|
isFailedOrWarn,
|
|
2371
2402
|
isFlatMetadata,
|
|
2372
2403
|
isGroupCollapsedByDefault,
|
|
@@ -2395,11 +2426,14 @@ export {
|
|
|
2395
2426
|
makeSurfaceDefinition,
|
|
2396
2427
|
markdownDocumentStats,
|
|
2397
2428
|
matchMentionsInBody,
|
|
2429
|
+
matchesExclude as matchesCallGraphExclude,
|
|
2398
2430
|
matchesFilterState,
|
|
2399
2431
|
matchesIf,
|
|
2400
2432
|
matchingTools,
|
|
2401
2433
|
mediaMatches,
|
|
2402
2434
|
memoryTourStorage,
|
|
2435
|
+
mergeAccess,
|
|
2436
|
+
mergeGraph as mergeCallGraph,
|
|
2403
2437
|
mergeRuntimeSpec,
|
|
2404
2438
|
mergeSeries,
|
|
2405
2439
|
metadataEntries,
|
|
@@ -2422,6 +2456,7 @@ export {
|
|
|
2422
2456
|
onMediaChange,
|
|
2423
2457
|
paletteClass,
|
|
2424
2458
|
parseBoundsValue,
|
|
2459
|
+
parseExclude as parseCallGraphExclude,
|
|
2425
2460
|
parseDiagnosticsStackTrace,
|
|
2426
2461
|
parseDurationBoundsValue,
|
|
2427
2462
|
parseEndpointValue,
|
|
@@ -2539,6 +2574,7 @@ export {
|
|
|
2539
2574
|
taskStatusIcon,
|
|
2540
2575
|
templateValuePre,
|
|
2541
2576
|
testStatus,
|
|
2577
|
+
toggleAccess as toggleCallGraphAccess,
|
|
2542
2578
|
toneToBadgeTone,
|
|
2543
2579
|
toolFieldSuggestions,
|
|
2544
2580
|
totalDuration,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|