@supernal/interface 1.0.8 → 1.0.11
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/dist/cjs/src/adapters/copilotkit/CopilotKitAdapter.js +3 -5
- package/dist/cjs/src/adapters/copilotkit/CopilotKitAdapter.js.map +1 -1
- package/dist/cjs/src/adapters/index.js +3 -4
- package/dist/cjs/src/adapters/index.js.map +1 -1
- package/dist/cjs/src/ai/AIInterface.js +111 -61
- package/dist/cjs/src/ai/AIInterface.js.map +1 -1
- package/dist/cjs/src/ai/ToolExecutor.js +36 -1
- package/dist/cjs/src/ai/ToolExecutor.js.map +1 -1
- package/dist/cjs/src/ai/ToolMatcher.js +6 -0
- package/dist/cjs/src/ai/ToolMatcher.js.map +1 -1
- package/dist/cjs/src/background/architecture/ArchitectureInitializer.js +13 -2
- package/dist/cjs/src/background/architecture/ArchitectureInitializer.js.map +1 -1
- package/dist/cjs/src/background/architecture/Containers.js +72 -2
- package/dist/cjs/src/background/architecture/Containers.js.map +1 -1
- package/dist/cjs/src/background/architecture/index.js +2 -1
- package/dist/cjs/src/background/architecture/index.js.map +1 -1
- package/dist/cjs/src/background/location/LocationContext.js +19 -2
- package/dist/cjs/src/background/location/LocationContext.js.map +1 -1
- package/dist/cjs/src/background/navigation/NavigationGraph.js +7 -0
- package/dist/cjs/src/background/navigation/NavigationGraph.js.map +1 -1
- package/dist/cjs/src/background/registry/ComponentRegistry.js +0 -2
- package/dist/cjs/src/background/registry/ComponentRegistry.js.map +1 -1
- package/dist/cjs/src/background/registry/ToolRegistry.js +83 -123
- package/dist/cjs/src/background/registry/ToolRegistry.js.map +1 -1
- package/dist/cjs/src/browser.js +48 -1
- package/dist/cjs/src/browser.js.map +1 -1
- package/dist/cjs/src/decorators/Component.js +4 -5
- package/dist/cjs/src/decorators/Component.js.map +1 -1
- package/dist/cjs/src/decorators/ContainerHelpers.js +16 -1
- package/dist/cjs/src/decorators/ContainerHelpers.js.map +1 -1
- package/dist/cjs/src/decorators/Tool.js +3 -9
- package/dist/cjs/src/decorators/Tool.js.map +1 -1
- package/dist/cjs/src/decorators/ToolHelpers.js +1 -3
- package/dist/cjs/src/decorators/ToolHelpers.js.map +1 -1
- package/dist/cjs/src/decorators/ToolPreset.js +14 -14
- package/dist/cjs/src/decorators/ToolPreset.js.map +1 -1
- package/dist/cjs/src/decorators/ToolProvider.js +30 -20
- package/dist/cjs/src/decorators/ToolProvider.js.map +1 -1
- package/dist/cjs/src/decorators/index.js +8 -13
- package/dist/cjs/src/decorators/index.js.map +1 -1
- package/dist/cjs/src/exposure/ExposureCollector.js +27 -0
- package/dist/cjs/src/exposure/ExposureCollector.js.map +1 -1
- package/dist/cjs/src/index.js +6 -9
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/mcp/server.js +12 -14
- package/dist/cjs/src/mcp/server.js.map +1 -1
- package/dist/cjs/src/react/hooks/useChatWithContext.js +4 -10
- package/dist/cjs/src/react/hooks/useChatWithContext.js.map +1 -1
- package/dist/cjs/src/testing/graph-tester/core/GraphTester.js +339 -0
- package/dist/cjs/src/testing/graph-tester/core/GraphTester.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/core/TestFunction.js +189 -0
- package/dist/cjs/src/testing/graph-tester/core/TestFunction.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/core/types.js +24 -0
- package/dist/cjs/src/testing/graph-tester/core/types.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/fixtures/index.js +13 -0
- package/dist/cjs/src/testing/graph-tester/fixtures/index.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/fixtures/portPool.js +184 -0
- package/dist/cjs/src/testing/graph-tester/fixtures/portPool.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/index.js +98 -0
- package/dist/cjs/src/testing/graph-tester/index.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/modes/AccessibilityMode.js +230 -0
- package/dist/cjs/src/testing/graph-tester/modes/AccessibilityMode.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/modes/PerformanceMode.js +168 -0
- package/dist/cjs/src/testing/graph-tester/modes/PerformanceMode.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/modes/SEOMode.js +264 -0
- package/dist/cjs/src/testing/graph-tester/modes/SEOMode.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/modes/VisualRegressionMode.js +199 -0
- package/dist/cjs/src/testing/graph-tester/modes/VisualRegressionMode.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/modes/index.js +17 -0
- package/dist/cjs/src/testing/graph-tester/modes/index.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/reporters/HTMLReporter.js +411 -0
- package/dist/cjs/src/testing/graph-tester/reporters/HTMLReporter.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/reporters/JSONReporter.js +127 -0
- package/dist/cjs/src/testing/graph-tester/reporters/JSONReporter.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/reporters/MarkdownReporter.js +169 -0
- package/dist/cjs/src/testing/graph-tester/reporters/MarkdownReporter.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/reporters/UnifiedReporter.js +118 -0
- package/dist/cjs/src/testing/graph-tester/reporters/UnifiedReporter.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/reporters/index.js +17 -0
- package/dist/cjs/src/testing/graph-tester/reporters/index.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.js +47 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.js +584 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/ScreenshotAnnotator.js +376 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/ScreenshotAnnotator.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/index.js +15 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/index.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/types.js +11 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/types.js.map +1 -0
- package/dist/cjs/src/testing/selectors.js +1 -1
- package/dist/cjs/src/types/ComponentState.js.map +1 -1
- package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.d.ts.map +1 -1
- package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.js +3 -5
- package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.js.map +1 -1
- package/dist/esm/src/adapters/index.d.ts +0 -2
- package/dist/esm/src/adapters/index.d.ts.map +1 -1
- package/dist/esm/src/adapters/index.js +2 -1
- package/dist/esm/src/adapters/index.js.map +1 -1
- package/dist/esm/src/adapters/types/index.d.ts +0 -2
- package/dist/esm/src/adapters/types/index.d.ts.map +1 -1
- package/dist/esm/src/ai/AIInterface.d.ts +5 -1
- package/dist/esm/src/ai/AIInterface.d.ts.map +1 -1
- package/dist/esm/src/ai/AIInterface.js +111 -61
- package/dist/esm/src/ai/AIInterface.js.map +1 -1
- package/dist/esm/src/ai/ToolExecutor.js +36 -1
- package/dist/esm/src/ai/ToolExecutor.js.map +1 -1
- package/dist/esm/src/ai/ToolMatcher.d.ts +1 -0
- package/dist/esm/src/ai/ToolMatcher.d.ts.map +1 -1
- package/dist/esm/src/ai/ToolMatcher.js +6 -0
- package/dist/esm/src/ai/ToolMatcher.js.map +1 -1
- package/dist/esm/src/background/architecture/ArchitectureInitializer.d.ts +1 -1
- package/dist/esm/src/background/architecture/ArchitectureInitializer.d.ts.map +1 -1
- package/dist/esm/src/background/architecture/ArchitectureInitializer.js +13 -2
- package/dist/esm/src/background/architecture/ArchitectureInitializer.js.map +1 -1
- package/dist/esm/src/background/architecture/Containers.d.ts +35 -2
- package/dist/esm/src/background/architecture/Containers.d.ts.map +1 -1
- package/dist/esm/src/background/architecture/Containers.js +70 -2
- package/dist/esm/src/background/architecture/Containers.js.map +1 -1
- package/dist/esm/src/background/architecture/index.d.ts +1 -1
- package/dist/esm/src/background/architecture/index.d.ts.map +1 -1
- package/dist/esm/src/background/architecture/index.js +1 -1
- package/dist/esm/src/background/architecture/index.js.map +1 -1
- package/dist/esm/src/background/location/LocationContext.d.ts +3 -2
- package/dist/esm/src/background/location/LocationContext.d.ts.map +1 -1
- package/dist/esm/src/background/location/LocationContext.js +19 -2
- package/dist/esm/src/background/location/LocationContext.js.map +1 -1
- package/dist/esm/src/background/navigation/NavigationGraph.d.ts +5 -0
- package/dist/esm/src/background/navigation/NavigationGraph.d.ts.map +1 -1
- package/dist/esm/src/background/navigation/NavigationGraph.js +7 -0
- package/dist/esm/src/background/navigation/NavigationGraph.js.map +1 -1
- package/dist/esm/src/background/registry/ComponentRegistry.d.ts +0 -4
- package/dist/esm/src/background/registry/ComponentRegistry.d.ts.map +1 -1
- package/dist/esm/src/background/registry/ComponentRegistry.js +0 -2
- package/dist/esm/src/background/registry/ComponentRegistry.js.map +1 -1
- package/dist/esm/src/background/registry/ToolRegistry.d.ts +24 -38
- package/dist/esm/src/background/registry/ToolRegistry.d.ts.map +1 -1
- package/dist/esm/src/background/registry/ToolRegistry.js +81 -121
- package/dist/esm/src/background/registry/ToolRegistry.js.map +1 -1
- package/dist/esm/src/browser.d.ts +12 -1
- package/dist/esm/src/browser.d.ts.map +1 -1
- package/dist/esm/src/browser.js +17 -1
- package/dist/esm/src/browser.js.map +1 -1
- package/dist/esm/src/decorators/Component.d.ts +1 -8
- package/dist/esm/src/decorators/Component.d.ts.map +1 -1
- package/dist/esm/src/decorators/Component.js +4 -5
- package/dist/esm/src/decorators/Component.js.map +1 -1
- package/dist/esm/src/decorators/ContainerHelpers.d.ts +2 -1
- package/dist/esm/src/decorators/ContainerHelpers.d.ts.map +1 -1
- package/dist/esm/src/decorators/ContainerHelpers.js +16 -1
- package/dist/esm/src/decorators/ContainerHelpers.js.map +1 -1
- package/dist/esm/src/decorators/Tool.d.ts +1 -6
- package/dist/esm/src/decorators/Tool.d.ts.map +1 -1
- package/dist/esm/src/decorators/Tool.js +3 -9
- package/dist/esm/src/decorators/Tool.js.map +1 -1
- package/dist/esm/src/decorators/ToolHelpers.d.ts.map +1 -1
- package/dist/esm/src/decorators/ToolHelpers.js +1 -3
- package/dist/esm/src/decorators/ToolHelpers.js.map +1 -1
- package/dist/esm/src/decorators/ToolPreset.d.ts +12 -9
- package/dist/esm/src/decorators/ToolPreset.d.ts.map +1 -1
- package/dist/esm/src/decorators/ToolPreset.js +13 -13
- package/dist/esm/src/decorators/ToolPreset.js.map +1 -1
- package/dist/esm/src/decorators/ToolProvider.d.ts +5 -21
- package/dist/esm/src/decorators/ToolProvider.d.ts.map +1 -1
- package/dist/esm/src/decorators/ToolProvider.js +30 -19
- package/dist/esm/src/decorators/ToolProvider.js.map +1 -1
- package/dist/esm/src/decorators/index.d.ts +6 -12
- package/dist/esm/src/decorators/index.d.ts.map +1 -1
- package/dist/esm/src/decorators/index.js +7 -12
- package/dist/esm/src/decorators/index.js.map +1 -1
- package/dist/esm/src/exposure/ExposureCollector.d.ts +8 -0
- package/dist/esm/src/exposure/ExposureCollector.d.ts.map +1 -1
- package/dist/esm/src/exposure/ExposureCollector.js +27 -0
- package/dist/esm/src/exposure/ExposureCollector.js.map +1 -1
- package/dist/esm/src/index.d.ts +5 -6
- package/dist/esm/src/index.d.ts.map +1 -1
- package/dist/esm/src/index.js +5 -6
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/mcp/server.d.ts +1 -1
- package/dist/esm/src/mcp/server.d.ts.map +1 -1
- package/dist/esm/src/mcp/server.js +12 -14
- package/dist/esm/src/mcp/server.js.map +1 -1
- package/dist/esm/src/react/hooks/useChatWithContext.d.ts +0 -2
- package/dist/esm/src/react/hooks/useChatWithContext.d.ts.map +1 -1
- package/dist/esm/src/react/hooks/useChatWithContext.js +4 -10
- package/dist/esm/src/react/hooks/useChatWithContext.js.map +1 -1
- package/dist/esm/src/testing/graph-tester/core/GraphTester.d.ts +110 -0
- package/dist/esm/src/testing/graph-tester/core/GraphTester.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/core/GraphTester.js +335 -0
- package/dist/esm/src/testing/graph-tester/core/GraphTester.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/core/TestFunction.d.ts +120 -0
- package/dist/esm/src/testing/graph-tester/core/TestFunction.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/core/TestFunction.js +184 -0
- package/dist/esm/src/testing/graph-tester/core/TestFunction.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/core/types.d.ts +331 -0
- package/dist/esm/src/testing/graph-tester/core/types.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/core/types.js +21 -0
- package/dist/esm/src/testing/graph-tester/core/types.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/fixtures/index.d.ts +8 -0
- package/dist/esm/src/testing/graph-tester/fixtures/index.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/fixtures/index.js +7 -0
- package/dist/esm/src/testing/graph-tester/fixtures/index.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/fixtures/portPool.d.ts +40 -0
- package/dist/esm/src/testing/graph-tester/fixtures/portPool.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/fixtures/portPool.js +147 -0
- package/dist/esm/src/testing/graph-tester/fixtures/portPool.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/index.d.ts +84 -0
- package/dist/esm/src/testing/graph-tester/index.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/index.js +77 -0
- package/dist/esm/src/testing/graph-tester/index.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/AccessibilityMode.d.ts +40 -0
- package/dist/esm/src/testing/graph-tester/modes/AccessibilityMode.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/AccessibilityMode.js +193 -0
- package/dist/esm/src/testing/graph-tester/modes/AccessibilityMode.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/PerformanceMode.d.ts +42 -0
- package/dist/esm/src/testing/graph-tester/modes/PerformanceMode.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/PerformanceMode.js +131 -0
- package/dist/esm/src/testing/graph-tester/modes/PerformanceMode.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/SEOMode.d.ts +39 -0
- package/dist/esm/src/testing/graph-tester/modes/SEOMode.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/SEOMode.js +227 -0
- package/dist/esm/src/testing/graph-tester/modes/SEOMode.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/VisualRegressionMode.d.ts +83 -0
- package/dist/esm/src/testing/graph-tester/modes/VisualRegressionMode.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/VisualRegressionMode.js +162 -0
- package/dist/esm/src/testing/graph-tester/modes/VisualRegressionMode.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/index.d.ts +14 -0
- package/dist/esm/src/testing/graph-tester/modes/index.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/index.js +10 -0
- package/dist/esm/src/testing/graph-tester/modes/index.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/HTMLReporter.d.ts +38 -0
- package/dist/esm/src/testing/graph-tester/reporters/HTMLReporter.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/HTMLReporter.js +374 -0
- package/dist/esm/src/testing/graph-tester/reporters/HTMLReporter.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/JSONReporter.d.ts +50 -0
- package/dist/esm/src/testing/graph-tester/reporters/JSONReporter.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/JSONReporter.js +90 -0
- package/dist/esm/src/testing/graph-tester/reporters/JSONReporter.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/MarkdownReporter.d.ts +33 -0
- package/dist/esm/src/testing/graph-tester/reporters/MarkdownReporter.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/MarkdownReporter.js +132 -0
- package/dist/esm/src/testing/graph-tester/reporters/MarkdownReporter.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/UnifiedReporter.d.ts +30 -0
- package/dist/esm/src/testing/graph-tester/reporters/UnifiedReporter.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/UnifiedReporter.js +81 -0
- package/dist/esm/src/testing/graph-tester/reporters/UnifiedReporter.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/index.d.ts +14 -0
- package/dist/esm/src/testing/graph-tester/reporters/index.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/index.js +10 -0
- package/dist/esm/src/testing/graph-tester/reporters/index.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.d.ts +33 -0
- package/dist/esm/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.js +43 -0
- package/dist/esm/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.d.ts +70 -0
- package/dist/esm/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.js +547 -0
- package/dist/esm/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/ScreenshotAnnotator.d.ts +83 -0
- package/dist/esm/src/testing/graph-tester/screenshot/ScreenshotAnnotator.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/ScreenshotAnnotator.js +339 -0
- package/dist/esm/src/testing/graph-tester/screenshot/ScreenshotAnnotator.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/index.d.ts +11 -0
- package/dist/esm/src/testing/graph-tester/screenshot/index.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/index.js +9 -0
- package/dist/esm/src/testing/graph-tester/screenshot/index.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/types.d.ts +331 -0
- package/dist/esm/src/testing/graph-tester/screenshot/types.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/types.js +10 -0
- package/dist/esm/src/testing/graph-tester/screenshot/types.js.map +1 -0
- package/dist/esm/src/testing/selectors.d.ts +1 -1
- package/dist/esm/src/testing/selectors.js +1 -1
- package/dist/esm/src/types/ComponentState.d.ts +0 -4
- package/dist/esm/src/types/ComponentState.d.ts.map +1 -1
- package/dist/esm/src/types/ComponentState.js.map +1 -1
- package/package.json +22 -8
- package/dist/cjs/src/adapters/native/NativeAdapter.js +0 -268
- package/dist/cjs/src/adapters/native/NativeAdapter.js.map +0 -1
- package/dist/cjs/src/adapters/native/index.js +0 -10
- package/dist/cjs/src/adapters/native/index.js.map +0 -1
- package/dist/cjs/src/ui/react/chat/ChatBubble.js +0 -221
- package/dist/cjs/src/ui/react/chat/ChatBubble.js.map +0 -1
- package/dist/esm/src/adapters/native/NativeAdapter.d.ts +0 -47
- package/dist/esm/src/adapters/native/NativeAdapter.d.ts.map +0 -1
- package/dist/esm/src/adapters/native/NativeAdapter.js +0 -230
- package/dist/esm/src/adapters/native/NativeAdapter.js.map +0 -1
- package/dist/esm/src/adapters/native/index.d.ts +0 -6
- package/dist/esm/src/adapters/native/index.d.ts.map +0 -1
- package/dist/esm/src/adapters/native/index.js +0 -5
- package/dist/esm/src/adapters/native/index.js.map +0 -1
- package/dist/esm/src/ui/react/chat/ChatBubble.d.ts +0 -27
- package/dist/esm/src/ui/react/chat/ChatBubble.d.ts.map +0 -1
- package/dist/esm/src/ui/react/chat/ChatBubble.js +0 -184
- package/dist/esm/src/ui/react/chat/ChatBubble.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSONReporter.d.ts","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/reporters/JSONReporter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAElB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAa,YAAW,QAAQ;IAC3C,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,OAAO,CAAC,MAAM,CAA+B;gBAEjC,MAAM,EAAE,kBAAkB;IAStC;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CAoD9D"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON reporter for CI/CD integration.
|
|
3
|
+
*
|
|
4
|
+
* Generates machine-readable JSON output with complete test results.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import * as fs from 'fs/promises';
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
/**
|
|
11
|
+
* JSON reporter.
|
|
12
|
+
*
|
|
13
|
+
* Generates structured JSON output suitable for CI/CD pipelines and
|
|
14
|
+
* programmatic analysis.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const reporter = new JSONReporter({
|
|
19
|
+
* outputDir: './test-results',
|
|
20
|
+
* filename: 'results.json',
|
|
21
|
+
* pretty: true
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* await reporter.generate(results);
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export class JSONReporter {
|
|
28
|
+
constructor(config) {
|
|
29
|
+
this.name = 'JSON Reporter';
|
|
30
|
+
this.config = {
|
|
31
|
+
filename: 'test-results.json',
|
|
32
|
+
pretty: true,
|
|
33
|
+
includeErrorStacks: true,
|
|
34
|
+
...config,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Generate JSON report.
|
|
39
|
+
*
|
|
40
|
+
* @param results - Aggregated test results
|
|
41
|
+
*/
|
|
42
|
+
async generate(results) {
|
|
43
|
+
const startTime = Date.now();
|
|
44
|
+
// Ensure output directory exists
|
|
45
|
+
await fs.mkdir(this.config.outputDir, { recursive: true });
|
|
46
|
+
// Convert Map to plain objects for JSON serialization
|
|
47
|
+
const serializable = {
|
|
48
|
+
summary: {
|
|
49
|
+
routeCount: results.routeCount,
|
|
50
|
+
testCount: results.testCount,
|
|
51
|
+
passedCount: results.passedCount,
|
|
52
|
+
failedCount: results.failedCount,
|
|
53
|
+
passRate: results.passRate,
|
|
54
|
+
totalDuration: results.totalDuration,
|
|
55
|
+
timestamp: results.timestamp.toISOString(),
|
|
56
|
+
},
|
|
57
|
+
config: results.config,
|
|
58
|
+
resultsByRoute: Array.from(results.resultsByRoute.entries()).map(([route, testResults]) => ({
|
|
59
|
+
route,
|
|
60
|
+
results: testResults.map((r) => ({
|
|
61
|
+
...r,
|
|
62
|
+
errors: this.config.includeErrorStacks
|
|
63
|
+
? r.errors
|
|
64
|
+
: r.errors.map((e) => ({ ...e, stack: undefined })),
|
|
65
|
+
})),
|
|
66
|
+
})),
|
|
67
|
+
resultsByMode: Array.from(results.resultsByMode.entries()).map(([mode, testResults]) => ({
|
|
68
|
+
mode,
|
|
69
|
+
results: testResults.map((r) => ({
|
|
70
|
+
...r,
|
|
71
|
+
errors: this.config.includeErrorStacks
|
|
72
|
+
? r.errors
|
|
73
|
+
: r.errors.map((e) => ({ ...e, stack: undefined })),
|
|
74
|
+
})),
|
|
75
|
+
})),
|
|
76
|
+
errors: this.config.includeErrorStacks
|
|
77
|
+
? results.errors
|
|
78
|
+
: results.errors.map((e) => ({ ...e, stack: undefined })),
|
|
79
|
+
};
|
|
80
|
+
// Write JSON file
|
|
81
|
+
const outputPath = path.join(this.config.outputDir, this.config.filename);
|
|
82
|
+
const json = this.config.pretty
|
|
83
|
+
? JSON.stringify(serializable, null, 2)
|
|
84
|
+
: JSON.stringify(serializable);
|
|
85
|
+
await fs.writeFile(outputPath, json, 'utf-8');
|
|
86
|
+
const duration = Date.now() - startTime;
|
|
87
|
+
console.log(`JSON report generated in ${duration}ms: ${outputPath}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=JSONReporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSONReporter.js","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/reporters/JSONReporter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAoB7B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,YAAY;IAKvB,YAAY,MAA0B;QAJ7B,SAAI,GAAG,eAAe,CAAC;QAK9B,IAAI,CAAC,MAAM,GAAG;YACZ,QAAQ,EAAE,mBAAmB;YAC7B,MAAM,EAAE,IAAI;YACZ,kBAAkB,EAAE,IAAI;YACxB,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,OAA8B;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,iCAAiC;QACjC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,sDAAsD;QACtD,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE;gBACP,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;aAC3C;YACD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1F,KAAK;gBACL,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC/B,GAAG,CAAC;oBACJ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;wBACpC,CAAC,CAAC,CAAC,CAAC,MAAM;wBACV,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;iBACtD,CAAC,CAAC;aACJ,CAAC,CAAC;YACH,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvF,IAAI;gBACJ,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC/B,GAAG,CAAC;oBACJ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;wBACpC,CAAC,CAAC,CAAC,CAAC,MAAM;wBACV,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;iBACtD,CAAC,CAAC;aACJ,CAAC,CAAC;YACH,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;gBACpC,CAAC,CAAC,OAAO,CAAC,MAAM;gBAChB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;SAC5D,CAAC;QAEF,kBAAkB;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;YAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAEjC,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,4BAA4B,QAAQ,OAAO,UAAU,EAAE,CAAC,CAAC;IACvE,CAAC;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown reporter (stub - to be implemented in Phase 2).
|
|
3
|
+
*
|
|
4
|
+
* Will generate GitHub-friendly markdown reports.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import type { AggregatedTestResults, Reporter } from '../core/types';
|
|
9
|
+
/**
|
|
10
|
+
* Configuration for Markdown reporter.
|
|
11
|
+
*/
|
|
12
|
+
export interface MarkdownReporterConfig {
|
|
13
|
+
/** Output directory */
|
|
14
|
+
outputDir: string;
|
|
15
|
+
/** Output filename (default: 'TEST_RESULTS.md') */
|
|
16
|
+
filename?: string;
|
|
17
|
+
/** Whether to include detailed error stacks */
|
|
18
|
+
includeErrorStacks?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Markdown reporter (stub).
|
|
22
|
+
*/
|
|
23
|
+
export declare class MarkdownReporter implements Reporter {
|
|
24
|
+
readonly name = "Markdown Reporter";
|
|
25
|
+
private config;
|
|
26
|
+
constructor(config: MarkdownReporterConfig);
|
|
27
|
+
generate(results: AggregatedTestResults): Promise<void>;
|
|
28
|
+
private generateMarkdown;
|
|
29
|
+
private getModeIcon;
|
|
30
|
+
private ensureDirectory;
|
|
31
|
+
private writeFile;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=MarkdownReporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownReporter.d.ts","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/reporters/MarkdownReporter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAElB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,QAAQ,CAAC,IAAI,uBAAuB;IAEpC,OAAO,CAAC,MAAM,CAAyB;gBAE3B,MAAM,EAAE,sBAAsB;IAIpC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7D,OAAO,CAAC,gBAAgB;IA4GxB,OAAO,CAAC,WAAW;YAUL,eAAe;YAKf,SAAS;CAIxB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown reporter (stub - to be implemented in Phase 2).
|
|
3
|
+
*
|
|
4
|
+
* Will generate GitHub-friendly markdown reports.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Markdown reporter (stub).
|
|
10
|
+
*/
|
|
11
|
+
export class MarkdownReporter {
|
|
12
|
+
constructor(config) {
|
|
13
|
+
this.name = 'Markdown Reporter';
|
|
14
|
+
this.config = config;
|
|
15
|
+
}
|
|
16
|
+
async generate(results) {
|
|
17
|
+
const markdown = this.generateMarkdown(results);
|
|
18
|
+
const outputPath = `${this.config.outputDir}/${this.config.filename || 'TEST_RESULTS.md'}`;
|
|
19
|
+
await this.ensureDirectory(this.config.outputDir);
|
|
20
|
+
await this.writeFile(outputPath, markdown);
|
|
21
|
+
console.log(`📝 Markdown report generated: ${outputPath}`);
|
|
22
|
+
}
|
|
23
|
+
generateMarkdown(results) {
|
|
24
|
+
const sections = [];
|
|
25
|
+
// Header
|
|
26
|
+
sections.push('# Graph-Based Testing Report\n');
|
|
27
|
+
sections.push(`> Generated on ${new Date().toLocaleString()}\n`);
|
|
28
|
+
// Summary
|
|
29
|
+
sections.push('## Summary\n');
|
|
30
|
+
sections.push('| Metric | Value |');
|
|
31
|
+
sections.push('|--------|-------|');
|
|
32
|
+
sections.push(`| Routes Tested | ${results.routeCount} |`);
|
|
33
|
+
sections.push(`| Total Tests | ${results.testCount} |`);
|
|
34
|
+
sections.push(`| Passed | ${results.passedCount} ✅ |`);
|
|
35
|
+
sections.push(`| Failed | ${results.failedCount} ❌ |`);
|
|
36
|
+
sections.push(`| Pass Rate | ${results.passRate}% |`);
|
|
37
|
+
sections.push(`| Total Duration | ${(results.totalDuration / 1000).toFixed(2)}s |`);
|
|
38
|
+
sections.push('');
|
|
39
|
+
// Status badge
|
|
40
|
+
const status = results.passRate === 100 ? '✅ All tests passed' : `⚠️ ${results.failedCount} test(s) failed`;
|
|
41
|
+
sections.push(`**Status:** ${status}\n`);
|
|
42
|
+
// Results by mode
|
|
43
|
+
sections.push('## Results by Test Mode\n');
|
|
44
|
+
for (const [mode, modeResults] of results.resultsByMode) {
|
|
45
|
+
const passed = modeResults.filter((r) => r.passed).length;
|
|
46
|
+
const failed = modeResults.filter((r) => !r.passed).length;
|
|
47
|
+
const icon = this.getModeIcon(mode);
|
|
48
|
+
sections.push(`### ${icon} ${mode.toUpperCase()}\n`);
|
|
49
|
+
sections.push(`- **Passed:** ${passed} ✅`);
|
|
50
|
+
sections.push(`- **Failed:** ${failed} ❌`);
|
|
51
|
+
sections.push(`- **Total:** ${modeResults.length}`);
|
|
52
|
+
sections.push('');
|
|
53
|
+
}
|
|
54
|
+
// Results by route
|
|
55
|
+
sections.push('## Test Results by Route\n');
|
|
56
|
+
for (const [route, routeResults] of results.resultsByRoute) {
|
|
57
|
+
sections.push(`### \`${route}\`\n`);
|
|
58
|
+
sections.push('| Mode | Status | Duration | Errors |');
|
|
59
|
+
sections.push('|------|--------|----------|--------|');
|
|
60
|
+
for (const result of routeResults) {
|
|
61
|
+
const status = result.passed ? '✅ PASS' : '❌ FAIL';
|
|
62
|
+
const errors = result.errors.length > 0 ? result.errors.length : '-';
|
|
63
|
+
sections.push(`| ${result.mode} | ${status} | ${result.duration}ms | ${errors} |`);
|
|
64
|
+
}
|
|
65
|
+
// Show errors if any
|
|
66
|
+
const failedResults = routeResults.filter((r) => !r.passed);
|
|
67
|
+
if (failedResults.length > 0) {
|
|
68
|
+
sections.push('\n**Errors:**\n');
|
|
69
|
+
for (const result of failedResults) {
|
|
70
|
+
if (result.errors.length > 0) {
|
|
71
|
+
sections.push(`<details>`);
|
|
72
|
+
sections.push(`<summary><strong>${result.mode}</strong> - ${result.errors.length} error(s)</summary>\n`);
|
|
73
|
+
sections.push('```');
|
|
74
|
+
result.errors.forEach((err) => sections.push(typeof err === 'string' ? err : err.message));
|
|
75
|
+
sections.push('```');
|
|
76
|
+
sections.push('</details>\n');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
sections.push('');
|
|
81
|
+
}
|
|
82
|
+
// Detailed mode breakdown
|
|
83
|
+
sections.push('## Detailed Mode Analysis\n');
|
|
84
|
+
for (const [mode, modeResults] of results.resultsByMode) {
|
|
85
|
+
const icon = this.getModeIcon(mode);
|
|
86
|
+
sections.push(`### ${icon} ${mode.toUpperCase()} Mode\n`);
|
|
87
|
+
const passed = modeResults.filter((r) => r.passed).length;
|
|
88
|
+
const failed = modeResults.filter((r) => !r.passed).length;
|
|
89
|
+
const avgDuration = modeResults.reduce((sum, r) => sum + r.duration, 0) / modeResults.length;
|
|
90
|
+
sections.push(`**Performance:**`);
|
|
91
|
+
sections.push(`- Average Duration: ${avgDuration.toFixed(2)}ms`);
|
|
92
|
+
sections.push(`- Success Rate: ${((passed / modeResults.length) * 100).toFixed(1)}%`);
|
|
93
|
+
sections.push('');
|
|
94
|
+
// Show failed routes for this mode
|
|
95
|
+
const failures = modeResults.filter((r) => !r.passed);
|
|
96
|
+
if (failures.length > 0) {
|
|
97
|
+
sections.push('**Failed Routes:**\n');
|
|
98
|
+
for (const result of failures) {
|
|
99
|
+
sections.push(`- \`${result.route || 'unknown'}\``);
|
|
100
|
+
if (this.config.includeErrorStacks && result.errors.length > 0) {
|
|
101
|
+
sections.push(' ```');
|
|
102
|
+
result.errors.forEach((err) => sections.push(` ${typeof err === 'string' ? err : err.message}`));
|
|
103
|
+
sections.push(' ```');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
sections.push('');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Footer
|
|
110
|
+
sections.push('---\n');
|
|
111
|
+
sections.push('_Generated by Supernal Interface Graph-Based Testing Framework_');
|
|
112
|
+
return sections.join('\n');
|
|
113
|
+
}
|
|
114
|
+
getModeIcon(mode) {
|
|
115
|
+
const icons = {
|
|
116
|
+
visual: '👁️',
|
|
117
|
+
performance: '⚡',
|
|
118
|
+
accessibility: '♿',
|
|
119
|
+
seo: '🔍',
|
|
120
|
+
};
|
|
121
|
+
return icons[mode] || '📊';
|
|
122
|
+
}
|
|
123
|
+
async ensureDirectory(dir) {
|
|
124
|
+
const fs = await import('fs/promises');
|
|
125
|
+
await fs.mkdir(dir, { recursive: true });
|
|
126
|
+
}
|
|
127
|
+
async writeFile(path, content) {
|
|
128
|
+
const fs = await import('fs/promises');
|
|
129
|
+
await fs.writeFile(path, content, 'utf-8');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=MarkdownReporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownReporter.js","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/reporters/MarkdownReporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified reporter - orchestrates multiple reporters and correlates results across modes.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
import type { AggregatedTestResults, Reporter } from '../core/types';
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for unified reporter.
|
|
9
|
+
*/
|
|
10
|
+
export interface UnifiedReporterConfig {
|
|
11
|
+
/** Output directory */
|
|
12
|
+
outputDir: string;
|
|
13
|
+
/** Report formats to generate */
|
|
14
|
+
formats: ('json' | 'html' | 'markdown' | 'csv')[];
|
|
15
|
+
/** Whether to include detailed logs */
|
|
16
|
+
includeDetailedLogs?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Unified reporter (stub).
|
|
20
|
+
*/
|
|
21
|
+
export declare class UnifiedReporter implements Reporter {
|
|
22
|
+
readonly name = "Unified Reporter";
|
|
23
|
+
private config;
|
|
24
|
+
constructor(config: UnifiedReporterConfig);
|
|
25
|
+
generate(results: AggregatedTestResults): Promise<void>;
|
|
26
|
+
private generateCSV;
|
|
27
|
+
private ensureDirectory;
|
|
28
|
+
private writeFile;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=UnifiedReporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnifiedReporter.d.ts","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/reporters/UnifiedReporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAKrE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;IAElD,uCAAuC;IACvC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,QAAQ,CAAC,IAAI,sBAAsB;IAEnC,OAAO,CAAC,MAAM,CAAwB;gBAE1B,MAAM,EAAE,qBAAqB;IAInC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;YAmD/C,WAAW;YAwBX,eAAe;YAKf,SAAS;CAIxB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified reporter - orchestrates multiple reporters and correlates results across modes.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
import { JSONReporter } from './JSONReporter.js';
|
|
7
|
+
import { HTMLReporter } from './HTMLReporter.js';
|
|
8
|
+
import { MarkdownReporter } from './MarkdownReporter.js';
|
|
9
|
+
/**
|
|
10
|
+
* Unified reporter (stub).
|
|
11
|
+
*/
|
|
12
|
+
export class UnifiedReporter {
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.name = 'Unified Reporter';
|
|
15
|
+
this.config = config;
|
|
16
|
+
}
|
|
17
|
+
async generate(results) {
|
|
18
|
+
console.log(`\n📊 Generating unified reports in ${this.config.formats.length} format(s)...\n`);
|
|
19
|
+
const reporters = [];
|
|
20
|
+
// Create reporters based on requested formats
|
|
21
|
+
if (this.config.formats.includes('json')) {
|
|
22
|
+
reporters.push(new JSONReporter({
|
|
23
|
+
outputDir: this.config.outputDir,
|
|
24
|
+
filename: 'results.json',
|
|
25
|
+
pretty: true,
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
28
|
+
if (this.config.formats.includes('html')) {
|
|
29
|
+
reporters.push(new HTMLReporter({
|
|
30
|
+
outputDir: this.config.outputDir,
|
|
31
|
+
filename: 'index.html',
|
|
32
|
+
includeCharts: true,
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
if (this.config.formats.includes('markdown')) {
|
|
36
|
+
reporters.push(new MarkdownReporter({
|
|
37
|
+
outputDir: this.config.outputDir,
|
|
38
|
+
filename: 'TEST_RESULTS.md',
|
|
39
|
+
includeErrorStacks: this.config.includeDetailedLogs,
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
if (this.config.formats.includes('csv')) {
|
|
43
|
+
reporters.push({
|
|
44
|
+
name: 'CSV Reporter',
|
|
45
|
+
generate: async (results) => {
|
|
46
|
+
await this.generateCSV(results);
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
// Generate all reports in parallel
|
|
51
|
+
await Promise.all(reporters.map((reporter) => reporter.generate(results)));
|
|
52
|
+
console.log(`✅ Unified report generation complete\n`);
|
|
53
|
+
}
|
|
54
|
+
async generateCSV(results) {
|
|
55
|
+
const rows = [];
|
|
56
|
+
// CSV header
|
|
57
|
+
rows.push('Route,Mode,Status,Duration (ms),Errors');
|
|
58
|
+
// CSV data
|
|
59
|
+
for (const [route, routeResults] of results.resultsByRoute) {
|
|
60
|
+
for (const result of routeResults) {
|
|
61
|
+
const status = result.passed ? 'PASS' : 'FAIL';
|
|
62
|
+
const errors = result.errors.length > 0 ? `"${result.errors.join('; ')}"` : '';
|
|
63
|
+
rows.push(`"${route}",${result.mode},${status},${result.duration},${errors}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const csv = rows.join('\n');
|
|
67
|
+
const outputPath = `${this.config.outputDir}/results.csv`;
|
|
68
|
+
await this.ensureDirectory(this.config.outputDir);
|
|
69
|
+
await this.writeFile(outputPath, csv);
|
|
70
|
+
console.log(`📊 CSV report generated: ${outputPath}`);
|
|
71
|
+
}
|
|
72
|
+
async ensureDirectory(dir) {
|
|
73
|
+
const fs = await import('fs/promises');
|
|
74
|
+
await fs.mkdir(dir, { recursive: true });
|
|
75
|
+
}
|
|
76
|
+
async writeFile(path, content) {
|
|
77
|
+
const fs = await import('fs/promises');
|
|
78
|
+
await fs.writeFile(path, content, 'utf-8');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=UnifiedReporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnifiedReporter.js","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/reporters/UnifiedReporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgBtD;;GAEG;AACH,MAAM,OAAO,eAAe;IAK1B,YAAY,MAA6B;QAJhC,SAAI,GAAG,kBAAkB,CAAC;QAKjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA8B;QAC3C,OAAO,CAAC,GAAG,CAAC,sCAAsC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,iBAAiB,CAAC,CAAC;QAE/F,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,8CAA8C;QAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,SAAS,CAAC,IAAI,CACZ,IAAI,YAAY,CAAC;gBACf,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,IAAI;aACb,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,SAAS,CAAC,IAAI,CACZ,IAAI,YAAY,CAAC;gBACf,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,QAAQ,EAAE,YAAY;gBACtB,aAAa,EAAE,IAAI;aACpB,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,SAAS,CAAC,IAAI,CACZ,IAAI,gBAAgB,CAAC;gBACnB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,QAAQ,EAAE,iBAAiB;gBAC3B,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;aACpD,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,KAAK,EAAE,OAA8B,EAAE,EAAE;oBACjD,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAClC,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,mCAAmC;QACnC,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE3E,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,OAA8B;QACtD,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAEpD,WAAW;QACX,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3D,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,cAAc,CAAC;QAE1D,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAEtC,OAAO,CAAC,GAAG,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,GAAW;QACvC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAe;QACnD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reporters exports.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
export { UnifiedReporter } from './UnifiedReporter';
|
|
7
|
+
export type { UnifiedReporterConfig } from './UnifiedReporter';
|
|
8
|
+
export { JSONReporter } from './JSONReporter';
|
|
9
|
+
export type { JSONReporterConfig } from './JSONReporter';
|
|
10
|
+
export { HTMLReporter } from './HTMLReporter';
|
|
11
|
+
export type { HTMLReporterConfig } from './HTMLReporter';
|
|
12
|
+
export { MarkdownReporter } from './MarkdownReporter';
|
|
13
|
+
export type { MarkdownReporterConfig } from './MarkdownReporter';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/reporters/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reporters exports.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
export { UnifiedReporter } from './UnifiedReporter.js';
|
|
7
|
+
export { JSONReporter } from './JSONReporter.js';
|
|
8
|
+
export { HTMLReporter } from './HTMLReporter.js';
|
|
9
|
+
export { MarkdownReporter } from './MarkdownReporter.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/reporters/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas annotation renderer (stub - to be implemented in Phase 3).
|
|
3
|
+
*
|
|
4
|
+
* Will render bounding boxes directly on screenshot canvas.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import type { AnnotatedScreenshot, CanvasRendererConfig, AnnotationRenderResult } from './types';
|
|
9
|
+
/**
|
|
10
|
+
* Canvas annotation renderer (stub).
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const renderer = new CanvasAnnotationRenderer({
|
|
15
|
+
* drawLabels: true,
|
|
16
|
+
* outputPath: './screenshots/dashboard-annotated.png'
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* const result = await renderer.render(annotatedScreenshot);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class CanvasAnnotationRenderer {
|
|
23
|
+
private config;
|
|
24
|
+
constructor(config: CanvasRendererConfig);
|
|
25
|
+
/**
|
|
26
|
+
* Render annotated screenshot with canvas overlay.
|
|
27
|
+
*
|
|
28
|
+
* @param screenshot - Annotated screenshot
|
|
29
|
+
* @returns Render result
|
|
30
|
+
*/
|
|
31
|
+
render(screenshot: AnnotatedScreenshot): Promise<AnnotationRenderResult>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=CanvasAnnotationRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasAnnotationRenderer.d.ts","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;GAYG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,EAAE,oBAAoB;IAUxC;;;;;OAKG;IACG,MAAM,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAK/E"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas annotation renderer (stub - to be implemented in Phase 3).
|
|
3
|
+
*
|
|
4
|
+
* Will render bounding boxes directly on screenshot canvas.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Canvas annotation renderer (stub).
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const renderer = new CanvasAnnotationRenderer({
|
|
14
|
+
* drawLabels: true,
|
|
15
|
+
* outputPath: './screenshots/dashboard-annotated.png'
|
|
16
|
+
* });
|
|
17
|
+
*
|
|
18
|
+
* const result = await renderer.render(annotatedScreenshot);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export class CanvasAnnotationRenderer {
|
|
22
|
+
constructor(config) {
|
|
23
|
+
this.config = {
|
|
24
|
+
drawLabels: true,
|
|
25
|
+
labelFontSize: 12,
|
|
26
|
+
boundingBoxColor: '#00ff00',
|
|
27
|
+
boundingBoxWidth: 2,
|
|
28
|
+
...config,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Render annotated screenshot with canvas overlay.
|
|
33
|
+
*
|
|
34
|
+
* @param screenshot - Annotated screenshot
|
|
35
|
+
* @returns Render result
|
|
36
|
+
*/
|
|
37
|
+
async render(screenshot) {
|
|
38
|
+
// TODO: Implement in Phase 3
|
|
39
|
+
// Will use canvas/sharp to draw bounding boxes on screenshot
|
|
40
|
+
throw new Error('CanvasAnnotationRenderer not yet implemented (Phase 3)');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=CanvasAnnotationRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasAnnotationRenderer.js","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,wBAAwB;IAGnC,YAAY,MAA4B;QACtC,IAAI,CAAC,MAAM,GAAG;YACZ,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,EAAE;YACjB,gBAAgB,EAAE,SAAS;YAC3B,gBAAgB,EAAE,CAAC;YACnB,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,UAA+B;QAC1C,6BAA6B;QAC7B,6DAA6D;QAC7D,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;CACF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTML annotation renderer.
|
|
3
|
+
*
|
|
4
|
+
* Generates interactive HTML overlay with:
|
|
5
|
+
* - Hoverable bounding boxes
|
|
6
|
+
* - Sidebar with annotation details
|
|
7
|
+
* - Click-to-highlight functionality
|
|
8
|
+
* - Search/filter capabilities
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
import type { AnnotatedScreenshot, HTMLRendererConfig, AnnotationRenderResult } from './types';
|
|
13
|
+
/**
|
|
14
|
+
* HTML annotation renderer.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const renderer = new HTMLAnnotationRenderer({
|
|
19
|
+
* includeSidebar: true,
|
|
20
|
+
* enableHover: true,
|
|
21
|
+
* outputPath: './screenshots/dashboard.html'
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* const result = await renderer.render(annotatedScreenshot);
|
|
25
|
+
* console.log(`HTML rendered: ${result.outputPath}`);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare class HTMLAnnotationRenderer {
|
|
29
|
+
private config;
|
|
30
|
+
constructor(config: HTMLRendererConfig);
|
|
31
|
+
/**
|
|
32
|
+
* Render annotated screenshot as interactive HTML.
|
|
33
|
+
*
|
|
34
|
+
* @param screenshot - Annotated screenshot
|
|
35
|
+
* @returns Render result
|
|
36
|
+
*/
|
|
37
|
+
render(screenshot: AnnotatedScreenshot): Promise<AnnotationRenderResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Generate complete HTML document.
|
|
40
|
+
*
|
|
41
|
+
* @param screenshot - Annotated screenshot
|
|
42
|
+
* @returns HTML string
|
|
43
|
+
*/
|
|
44
|
+
private generateHTML;
|
|
45
|
+
/**
|
|
46
|
+
* Get sidebar CSS styles.
|
|
47
|
+
*/
|
|
48
|
+
private getSidebarStyles;
|
|
49
|
+
/**
|
|
50
|
+
* Render annotation bounding boxes.
|
|
51
|
+
*/
|
|
52
|
+
private renderAnnotationBoxes;
|
|
53
|
+
/**
|
|
54
|
+
* Render sidebar with annotation list.
|
|
55
|
+
*/
|
|
56
|
+
private renderSidebar;
|
|
57
|
+
/**
|
|
58
|
+
* Render annotation item for sidebar.
|
|
59
|
+
*/
|
|
60
|
+
private renderAnnotationItem;
|
|
61
|
+
/**
|
|
62
|
+
* Generate JavaScript for interactivity.
|
|
63
|
+
*/
|
|
64
|
+
private generateJavaScript;
|
|
65
|
+
/**
|
|
66
|
+
* Escape HTML entities.
|
|
67
|
+
*/
|
|
68
|
+
private escapeHtml;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=HTMLAnnotationRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HTMLAnnotationRenderer.d.ts","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EACV,mBAAmB,EAEnB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;GAcG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,kBAAkB;IAWtC;;;;;OAKG;IACG,MAAM,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmB9E;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IA8GpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+JxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4B7B;;OAEG;IACH,OAAO,CAAC,aAAa;IAoCrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0C5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkG1B;;OAEG;IACH,OAAO,CAAC,UAAU;CAUnB"}
|