@coherent.js/devtools 1.0.0-beta.2

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.
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Coherent.js DevTools TypeScript Definitions
3
+ * @module @coherent.js/devtools
4
+ */
5
+
6
+ // ===== Logger Types =====
7
+
8
+ export enum LogLevel {
9
+ TRACE = 0,
10
+ DEBUG = 1,
11
+ INFO = 2,
12
+ WARN = 3,
13
+ ERROR = 4,
14
+ FATAL = 5
15
+ }
16
+
17
+ export interface LoggerOptions {
18
+ level?: LogLevel;
19
+ prefix?: string;
20
+ timestamp?: boolean;
21
+ colors?: boolean;
22
+ maxLogs?: number;
23
+ maxBufferSize?: number;
24
+ grouping?: boolean;
25
+ buffer?: boolean;
26
+ sampleRate?: number;
27
+ silent?: boolean;
28
+ output?: ((log: LogEntry) => void) | null;
29
+ categories?: string[] | null;
30
+ filter?: ((log: LogEntry) => boolean) | null;
31
+ }
32
+
33
+ export interface LogEntry {
34
+ level: LogLevel;
35
+ message: string;
36
+ timestamp: number;
37
+ data?: any[];
38
+ category?: string;
39
+ context?: Record<string, any>;
40
+ }
41
+
42
+ export class DevLogger {
43
+ constructor(options?: LoggerOptions);
44
+ trace(message: string, ...data: any[]): void;
45
+ debug(message: string, ...data: any[]): void;
46
+ info(message: string, ...data: any[]): void;
47
+ warn(message: string, ...data: any[]): void;
48
+ error(message: string, ...data: any[]): void;
49
+ fatal(message: string, ...data: any[]): void;
50
+ log(level: LogLevel, message: string, ...data: any[]): void;
51
+ group(label: string): void;
52
+ groupEnd(): void;
53
+ clear(): void;
54
+ getLogs(): LogEntry[];
55
+ setLevel(level: LogLevel): void;
56
+ addFilter(filter: (log: LogEntry) => boolean): void;
57
+ removeFilter(filter: (log: LogEntry) => boolean): void;
58
+ }
59
+
60
+ export function createLogger(options?: LoggerOptions): DevLogger;
61
+ export function createComponentLogger(componentName: string, options?: LoggerOptions): DevLogger;
62
+ export function createConsoleLogger(): DevLogger;
63
+
64
+ // ===== Inspector Types =====
65
+
66
+ export interface InspectorOptions {
67
+ trackHistory?: boolean;
68
+ maxHistory?: number;
69
+ verbose?: boolean;
70
+ }
71
+
72
+ export interface ComponentAnalysis {
73
+ type: string;
74
+ valid: boolean;
75
+ issues: string[];
76
+ warnings: string[];
77
+ }
78
+
79
+ export interface ComponentTree {
80
+ type: string;
81
+ tagName?: string;
82
+ children: ComponentTree[];
83
+ depth: number;
84
+ }
85
+
86
+ export interface ComponentStats {
87
+ depth: number;
88
+ elementCount: number;
89
+ complexity: number;
90
+ nodeCount: number;
91
+ }
92
+
93
+ export interface InspectionResult {
94
+ id: string;
95
+ timestamp: number;
96
+ inspectionTime: number;
97
+ component: any;
98
+ metadata: Record<string, any>;
99
+ type: string;
100
+ structure: any;
101
+ props: Record<string, any>;
102
+ depth: number;
103
+ childCount: number;
104
+ complexity: number;
105
+ nodeCount: number;
106
+ analysis: ComponentAnalysis;
107
+ tree: ComponentTree;
108
+ stats: ComponentStats;
109
+ valid: boolean;
110
+ issues: string[];
111
+ errors: string[];
112
+ warnings: string[];
113
+ }
114
+
115
+ export class ComponentInspector {
116
+ constructor(options?: InspectorOptions);
117
+ inspect(component: any, metadata?: Record<string, any>): InspectionResult;
118
+ getHistory(): InspectionResult[];
119
+ getComponent(id: string): InspectionResult | undefined;
120
+ clear(): void;
121
+ }
122
+
123
+ export function createInspector(options?: InspectorOptions): ComponentInspector;
124
+ export function inspect(component: any, metadata?: Record<string, any>): InspectionResult;
125
+ export function validateComponent(component: any): { valid: boolean; issues: string[] };
126
+
127
+ // ===== Profiler Types =====
128
+
129
+ export interface ProfilerOptions {
130
+ sampleRate?: number;
131
+ maxSamples?: number;
132
+ autoStart?: boolean;
133
+ }
134
+
135
+ export interface PerformanceMeasurement {
136
+ name: string;
137
+ duration: number;
138
+ startTime: number;
139
+ endTime: number;
140
+ metadata?: Record<string, any>;
141
+ }
142
+
143
+ export interface ProfileReport {
144
+ measurements: PerformanceMeasurement[];
145
+ totalTime: number;
146
+ averageTime: number;
147
+ minTime: number;
148
+ maxTime: number;
149
+ count: number;
150
+ }
151
+
152
+ export class PerformanceProfiler {
153
+ constructor(options?: ProfilerOptions);
154
+ start(name: string): void;
155
+ end(name: string): PerformanceMeasurement | null;
156
+ measure(name: string, fn: () => any): any;
157
+ measureAsync(name: string, fn: () => Promise<any>): Promise<any>;
158
+ getReport(name?: string): ProfileReport | Map<string, ProfileReport>;
159
+ clear(): void;
160
+ reset(): void;
161
+ }
162
+
163
+ export function createProfiler(options?: ProfilerOptions): PerformanceProfiler;
164
+ export function measure<T>(name: string, fn: () => T): T;
165
+ export function profile<T>(fn: () => T): { result: T; duration: number };
166
+
167
+ // ===== DevTools Types =====
168
+
169
+ export interface DevToolsOptions {
170
+ logger?: LoggerOptions;
171
+ inspector?: InspectorOptions;
172
+ profiler?: ProfilerOptions;
173
+ enabled?: boolean;
174
+ }
175
+
176
+ export class DevTools {
177
+ logger: DevLogger;
178
+ inspector: ComponentInspector;
179
+ profiler: PerformanceProfiler;
180
+
181
+ constructor(options?: DevToolsOptions);
182
+ enable(): void;
183
+ disable(): void;
184
+ isEnabled(): boolean;
185
+ clear(): void;
186
+ getReport(): {
187
+ logs: LogEntry[];
188
+ inspections: InspectionResult[];
189
+ profiles: Map<string, ProfileReport>;
190
+ };
191
+ }
192
+
193
+ export function createDevTools(options?: DevToolsOptions): DevTools;
194
+
195
+ // Default export
196
+ declare const devtools: {
197
+ ComponentInspector: typeof ComponentInspector;
198
+ createInspector: typeof createInspector;
199
+ inspect: typeof inspect;
200
+ validateComponent: typeof validateComponent;
201
+ PerformanceProfiler: typeof PerformanceProfiler;
202
+ createProfiler: typeof createProfiler;
203
+ measure: typeof measure;
204
+ profile: typeof profile;
205
+ DevLogger: typeof DevLogger;
206
+ LogLevel: typeof LogLevel;
207
+ createLogger: typeof createLogger;
208
+ createComponentLogger: typeof createComponentLogger;
209
+ createConsoleLogger: typeof createConsoleLogger;
210
+ DevTools: typeof DevTools;
211
+ createDevTools: typeof createDevTools;
212
+ };
213
+
214
+ export default devtools;