cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
148 lines • 4.14 kB
TypeScript
/**
* Интерфейсы для браузерного расширения CSElement DevTools
*/
export interface ExtensionMessage {
type: string;
data?: any;
tabId?: number;
timestamp?: number;
}
export interface CSElementDetectionMessage extends ExtensionMessage {
type: 'CS_ELEMENT_DETECTED';
data: {
elementCount: number;
version: string;
features: string[];
};
}
export interface InspectionRequestMessage extends ExtensionMessage {
type: 'INSPECTION_REQUEST';
data: {
elementId?: string;
path?: string;
format?: 'json' | 'compact' | 'debug';
};
}
export interface InspectionResponseMessage extends ExtensionMessage {
type: 'INSPECTION_RESPONSE';
data: {
element: any;
snapshot: any;
metadata: any;
};
}
export interface VisualizationRequestMessage extends ExtensionMessage {
type: 'VISUALIZATION_REQUEST';
data: {
elementId?: string;
format: 'ascii' | 'svg' | 'html' | 'mermaid';
options?: any;
};
}
export interface VisualizationResponseMessage extends ExtensionMessage {
type: 'VISUALIZATION_RESPONSE';
data: {
result: string;
metadata: any;
error?: string;
};
}
export interface PerformanceDataMessage extends ExtensionMessage {
type: 'PERFORMANCE_DATA';
data: {
operations: any[];
memoryUsage: any;
slowOperations: any[];
summary: any;
};
}
export interface ElementUpdateMessage extends ExtensionMessage {
type: 'ELEMENT_UPDATE';
data: {
elementId: string;
operation: string;
timestamp: number;
details: any;
};
}
export interface ErrorMessage extends ExtensionMessage {
type: 'ERROR';
data: {
message: string;
stack?: string;
context?: any;
};
}
export type DevToolsMessage = CSElementDetectionMessage | InspectionRequestMessage | InspectionResponseMessage | VisualizationRequestMessage | VisualizationResponseMessage | PerformanceDataMessage | ElementUpdateMessage | ErrorMessage;
export interface ExtensionPort {
postMessage(message: DevToolsMessage): void;
onMessage: {
addListener(callback: (message: DevToolsMessage) => void): void;
removeListener(callback: (message: DevToolsMessage) => void): void;
};
onDisconnect: {
addListener(callback: () => void): void;
};
}
export interface DevToolsPanel {
id: string;
title: string;
iconPath: string;
pagePath: string;
port?: ExtensionPort;
}
export interface ExtensionState {
isConnected: boolean;
currentTab?: number;
detectedElements: Map<string, any>;
performanceData: any[];
selectedElement?: string;
visualizationCache: Map<string, any>;
}
export interface PanelViewState {
activeTab: 'inspector' | 'visualizer' | 'performance' | 'console';
inspectorPath: string[];
visualizationFormat: 'ascii' | 'svg' | 'html' | 'mermaid';
performanceFilter: 'all' | 'slow' | 'errors';
autoRefresh: boolean;
refreshInterval: number;
}
export interface ElementTreeNode {
id: string;
name: string;
type: string;
children: ElementTreeNode[];
data: any;
metadata: any;
expanded?: boolean;
selected?: boolean;
}
export interface VisualizationOptions {
format: 'ascii' | 'svg' | 'html' | 'mermaid';
theme: 'light' | 'dark' | 'minimal';
layout?: 'tree' | 'force' | 'circular' | 'hierarchical';
showMetadata: boolean;
maxDepth?: number;
width?: number;
height?: number;
}
export interface PerformanceMetrics {
totalOperations: number;
averageOperationTime: number;
slowestOperation: any;
memoryUsage: {
used: number;
total: number;
percentage: number;
};
errorRate: number;
lastUpdate: number;
}
export interface ConsoleLogEntry {
level: 'log' | 'warn' | 'error' | 'debug';
message: string;
timestamp: number;
source: 'extension' | 'content' | 'background';
data?: any;
}
//# sourceMappingURL=devtools-extension-interfaces.d.ts.map