@flight-framework/devtools 0.0.3 → 0.0.5

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/index.d.ts CHANGED
@@ -6,15 +6,13 @@
6
6
  *
7
7
  * @example
8
8
  * ```typescript
9
- * // In your flight.config.ts or main entry
10
9
  * import { enableDevTools } from '@flight-framework/devtools';
11
10
  *
12
- * if (process.env.NODE_ENV === 'development') {
11
+ * if (import.meta.env.DEV) {
13
12
  * enableDevTools({
14
- * port: 3001,
15
13
  * showRoutes: true,
16
14
  * showRequests: true,
17
- * showCache: true,
15
+ * showPerformance: true,
18
16
  * });
19
17
  * }
20
18
  * ```
@@ -30,6 +28,10 @@ export interface DevToolsOptions {
30
28
  showCache?: boolean;
31
29
  /** Show connected adapters */
32
30
  showAdapters?: boolean;
31
+ /** Show performance metrics */
32
+ showPerformance?: boolean;
33
+ /** Show console logs */
34
+ showConsole?: boolean;
33
35
  /** Custom panel position */
34
36
  position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
35
37
  }
@@ -39,6 +41,8 @@ export interface RouteInfo {
39
41
  type: 'page' | 'api';
40
42
  filePath: string;
41
43
  slot?: string;
44
+ params?: string[];
45
+ middleware?: string[];
42
46
  interceptInfo?: {
43
47
  level: number;
44
48
  target: string;
@@ -51,6 +55,11 @@ export interface RequestInfo {
51
55
  status: number;
52
56
  duration: number;
53
57
  timestamp: number;
58
+ size?: number;
59
+ type?: 'fetch' | 'xhr' | 'navigation';
60
+ cached?: boolean;
61
+ headers?: Record<string, string>;
62
+ initiator?: string;
54
63
  }
55
64
  export interface CacheInfo {
56
65
  key: string;
@@ -62,18 +71,55 @@ export interface AdapterInfo {
62
71
  name: string;
63
72
  type: 'db' | 'auth' | 'storage' | 'email' | 'payments' | 'realtime' | 'other';
64
73
  status: 'connected' | 'disconnected' | 'error';
74
+ latency?: number;
75
+ lastActivity?: number;
76
+ }
77
+ export interface PerformanceMetrics {
78
+ lcp?: number;
79
+ fid?: number;
80
+ cls?: number;
81
+ fcp?: number;
82
+ ttfb?: number;
83
+ domLoad?: number;
84
+ pageLoad?: number;
85
+ renderTime?: number;
86
+ hydrationTime?: number;
87
+ }
88
+ export interface ConsoleEntry {
89
+ id: string;
90
+ level: 'log' | 'info' | 'warn' | 'error';
91
+ message: string;
92
+ timestamp: number;
93
+ stack?: string;
94
+ }
95
+ export interface ErrorInfo {
96
+ id: string;
97
+ message: string;
98
+ stack?: string;
99
+ timestamp: number;
100
+ source?: string;
101
+ line?: number;
102
+ column?: number;
65
103
  }
66
104
  export interface DevToolsState {
67
105
  routes: RouteInfo[];
68
106
  requests: RequestInfo[];
69
107
  cache: CacheInfo[];
70
108
  adapters: AdapterInfo[];
109
+ performance: PerformanceMetrics;
110
+ console: ConsoleEntry[];
111
+ errors: ErrorInfo[];
71
112
  }
72
- declare class DevToolsManager {
113
+ declare function generateId(): string;
114
+ export declare function formatBytes(bytes: number): string;
115
+ export declare function formatDuration(ms: number): string;
116
+ export declare function formatRelativeTime(timestamp: number): string;
117
+ export declare class DevToolsManager {
73
118
  private options;
74
119
  private state;
75
120
  private subscribers;
76
121
  private isEnabled;
122
+ private startTime;
77
123
  constructor(options: DevToolsOptions);
78
124
  /**
79
125
  * Register routes for display in DevTools
@@ -91,6 +137,30 @@ declare class DevToolsManager {
91
137
  * Register an adapter
92
138
  */
93
139
  registerAdapter(adapter: AdapterInfo): void;
140
+ /**
141
+ * Update performance metrics
142
+ */
143
+ updatePerformance(metrics: Partial<PerformanceMetrics>): void;
144
+ /**
145
+ * Log a console entry
146
+ */
147
+ logConsole(level: ConsoleEntry['level'], message: string, stack?: string): void;
148
+ /**
149
+ * Log an error
150
+ */
151
+ logError(error: Omit<ErrorInfo, 'id' | 'timestamp'>): void;
152
+ /**
153
+ * Clear requests
154
+ */
155
+ clearRequests(): void;
156
+ /**
157
+ * Clear console
158
+ */
159
+ clearConsole(): void;
160
+ /**
161
+ * Clear errors
162
+ */
163
+ clearErrors(): void;
94
164
  /**
95
165
  * Subscribe to state changes
96
166
  */
@@ -103,6 +173,10 @@ declare class DevToolsManager {
103
173
  * Get options
104
174
  */
105
175
  getOptions(): Required<DevToolsOptions>;
176
+ /**
177
+ * Get uptime in ms
178
+ */
179
+ getUptime(): number;
106
180
  private notify;
107
181
  }
108
182
  /**
@@ -123,5 +197,5 @@ export declare function isDevToolsEnabled(): boolean;
123
197
  export declare function devToolsMiddleware(): (context: {
124
198
  request: Request;
125
199
  }, next: () => Promise<Response>) => Promise<Response>;
126
- export {};
200
+ export { generateId };
127
201
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,35 +6,73 @@
6
6
  *
7
7
  * @example
8
8
  * ```typescript
9
- * // In your flight.config.ts or main entry
10
9
  * import { enableDevTools } from '@flight-framework/devtools';
11
10
  *
12
- * if (process.env.NODE_ENV === 'development') {
11
+ * if (import.meta.env.DEV) {
13
12
  * enableDevTools({
14
- * port: 3001,
15
13
  * showRoutes: true,
16
14
  * showRequests: true,
17
- * showCache: true,
15
+ * showPerformance: true,
18
16
  * });
19
17
  * }
20
18
  * ```
21
19
  */
22
20
  // ============================================================================
21
+ // Utility Functions
22
+ // ============================================================================
23
+ function generateId() {
24
+ return typeof crypto !== 'undefined' && crypto.randomUUID
25
+ ? crypto.randomUUID()
26
+ : `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
27
+ }
28
+ export function formatBytes(bytes) {
29
+ if (bytes === 0)
30
+ return '0 B';
31
+ const k = 1024;
32
+ const sizes = ['B', 'KB', 'MB', 'GB'];
33
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
34
+ return `${parseFloat((bytes / Math.pow(k, i)).toFixed(1))} ${sizes[i]}`;
35
+ }
36
+ export function formatDuration(ms) {
37
+ if (ms < 1)
38
+ return '<1ms';
39
+ if (ms < 1000)
40
+ return `${Math.round(ms)}ms`;
41
+ return `${(ms / 1000).toFixed(2)}s`;
42
+ }
43
+ export function formatRelativeTime(timestamp) {
44
+ const now = Date.now();
45
+ const diff = now - timestamp;
46
+ if (diff < 1000)
47
+ return 'just now';
48
+ if (diff < 60000)
49
+ return `${Math.floor(diff / 1000)}s ago`;
50
+ if (diff < 3600000)
51
+ return `${Math.floor(diff / 60000)}m ago`;
52
+ if (diff < 86400000)
53
+ return `${Math.floor(diff / 3600000)}h ago`;
54
+ return `${Math.floor(diff / 86400000)}d ago`;
55
+ }
56
+ // ============================================================================
23
57
  // DevTools Manager
24
58
  // ============================================================================
25
59
  let devToolsInstance = null;
26
- class DevToolsManager {
60
+ export class DevToolsManager {
27
61
  options;
28
62
  state;
29
63
  subscribers;
30
64
  isEnabled;
65
+ startTime;
31
66
  constructor(options) {
67
+ this.startTime = performance.now();
32
68
  this.options = {
33
69
  port: options.port ?? 3001,
34
70
  showRoutes: options.showRoutes ?? true,
35
71
  showRequests: options.showRequests ?? true,
36
72
  showCache: options.showCache ?? true,
37
73
  showAdapters: options.showAdapters ?? true,
74
+ showPerformance: options.showPerformance ?? true,
75
+ showConsole: options.showConsole ?? true,
38
76
  position: options.position ?? 'bottom-right',
39
77
  };
40
78
  this.state = {
@@ -42,9 +80,15 @@ class DevToolsManager {
42
80
  requests: [],
43
81
  cache: [],
44
82
  adapters: [],
83
+ performance: {},
84
+ console: [],
85
+ errors: [],
45
86
  };
46
87
  this.subscribers = new Set();
47
- this.isEnabled = process.env.NODE_ENV === 'development';
88
+ // Check if running in development mode (works in Node and browsers with Vite)
89
+ this.isEnabled = typeof process !== 'undefined'
90
+ ? process.env?.NODE_ENV === 'development'
91
+ : true; // Assume development if process is undefined (browser)
48
92
  }
49
93
  /**
50
94
  * Register routes for display in DevTools
@@ -63,7 +107,7 @@ class DevToolsManager {
63
107
  return;
64
108
  const request = {
65
109
  ...info,
66
- id: crypto.randomUUID(),
110
+ id: generateId(),
67
111
  timestamp: Date.now(),
68
112
  };
69
113
  // Keep last 100 requests
@@ -87,13 +131,75 @@ class DevToolsManager {
87
131
  return;
88
132
  const existing = this.state.adapters.findIndex(a => a.name === adapter.name);
89
133
  if (existing >= 0) {
90
- this.state.adapters[existing] = adapter;
134
+ this.state.adapters[existing] = { ...adapter, lastActivity: Date.now() };
91
135
  }
92
136
  else {
93
- this.state.adapters.push(adapter);
137
+ this.state.adapters.push({ ...adapter, lastActivity: Date.now() });
94
138
  }
95
139
  this.notify();
96
140
  }
141
+ /**
142
+ * Update performance metrics
143
+ */
144
+ updatePerformance(metrics) {
145
+ if (!this.isEnabled || !this.options.showPerformance)
146
+ return;
147
+ this.state.performance = { ...this.state.performance, ...metrics };
148
+ this.notify();
149
+ }
150
+ /**
151
+ * Log a console entry
152
+ */
153
+ logConsole(level, message, stack) {
154
+ if (!this.isEnabled || !this.options.showConsole)
155
+ return;
156
+ const entry = {
157
+ id: generateId(),
158
+ level,
159
+ message: typeof message === 'string' ? message : JSON.stringify(message),
160
+ timestamp: Date.now(),
161
+ stack,
162
+ };
163
+ // Keep last 200 console entries
164
+ this.state.console = [entry, ...this.state.console].slice(0, 200);
165
+ this.notify();
166
+ }
167
+ /**
168
+ * Log an error
169
+ */
170
+ logError(error) {
171
+ if (!this.isEnabled)
172
+ return;
173
+ const errorInfo = {
174
+ ...error,
175
+ id: generateId(),
176
+ timestamp: Date.now(),
177
+ };
178
+ // Keep last 50 errors
179
+ this.state.errors = [errorInfo, ...this.state.errors].slice(0, 50);
180
+ this.notify();
181
+ }
182
+ /**
183
+ * Clear requests
184
+ */
185
+ clearRequests() {
186
+ this.state.requests = [];
187
+ this.notify();
188
+ }
189
+ /**
190
+ * Clear console
191
+ */
192
+ clearConsole() {
193
+ this.state.console = [];
194
+ this.notify();
195
+ }
196
+ /**
197
+ * Clear errors
198
+ */
199
+ clearErrors() {
200
+ this.state.errors = [];
201
+ this.notify();
202
+ }
97
203
  /**
98
204
  * Subscribe to state changes
99
205
  */
@@ -114,6 +220,12 @@ class DevToolsManager {
114
220
  getOptions() {
115
221
  return this.options;
116
222
  }
223
+ /**
224
+ * Get uptime in ms
225
+ */
226
+ getUptime() {
227
+ return performance.now() - this.startTime;
228
+ }
117
229
  notify() {
118
230
  for (const callback of this.subscribers) {
119
231
  callback(this.state);
@@ -127,13 +239,17 @@ class DevToolsManager {
127
239
  * Enable DevTools for the application
128
240
  */
129
241
  export function enableDevTools(options = {}) {
130
- if (process.env.NODE_ENV !== 'development') {
242
+ // Check NODE_ENV safely for browsers
243
+ const isDevelopment = typeof process !== 'undefined'
244
+ ? process.env?.NODE_ENV === 'development'
245
+ : true;
246
+ if (!isDevelopment) {
131
247
  console.warn('[Flight DevTools] DevTools are disabled in production');
132
248
  return devToolsInstance;
133
249
  }
134
250
  if (!devToolsInstance) {
135
251
  devToolsInstance = new DevToolsManager(options);
136
- console.log(`[Flight DevTools] Enabled on port ${options.port ?? 3001}`);
252
+ console.log(`[Flight DevTools] Enabled`);
137
253
  }
138
254
  return devToolsInstance;
139
255
  }
@@ -147,7 +263,10 @@ export function getDevTools() {
147
263
  * Check if DevTools are enabled
148
264
  */
149
265
  export function isDevToolsEnabled() {
150
- return devToolsInstance !== null && process.env.NODE_ENV === 'development';
266
+ const isDevelopment = typeof process !== 'undefined'
267
+ ? process.env?.NODE_ENV === 'development'
268
+ : true;
269
+ return devToolsInstance !== null && isDevelopment;
151
270
  }
152
271
  // ============================================================================
153
272
  // Instrumentation Helpers
@@ -164,11 +283,23 @@ export function devToolsMiddleware() {
164
283
  try {
165
284
  const response = await next();
166
285
  const duration = performance.now() - start;
286
+ // Try to get response size
287
+ const clonedResponse = response.clone();
288
+ let size;
289
+ try {
290
+ const blob = await clonedResponse.blob();
291
+ size = blob.size;
292
+ }
293
+ catch {
294
+ // Ignore size calculation errors
295
+ }
167
296
  devToolsInstance.logRequest({
168
297
  method: request.method,
169
298
  path: new URL(request.url).pathname,
170
299
  status: response.status,
171
300
  duration: Math.round(duration),
301
+ size,
302
+ type: 'fetch',
172
303
  });
173
304
  return response;
174
305
  }
@@ -179,9 +310,12 @@ export function devToolsMiddleware() {
179
310
  path: new URL(request.url).pathname,
180
311
  status: 500,
181
312
  duration: Math.round(duration),
313
+ type: 'fetch',
182
314
  });
183
315
  throw error;
184
316
  }
185
317
  };
186
318
  }
319
+ // Re-export utility functions for panel use
320
+ export { generateId };
187
321
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,21 @@
1
1
  /**
2
2
  * @flight-framework/devtools/instrumentation - Auto-instrumentation
3
3
  *
4
- * Automatically instruments Flight apps to send data to DevTools.
5
- */
6
- import { type AdapterInfo } from './index.js';
7
- /**
8
- * Instrument file router to report routes to DevTools
4
+ * Automatically captures:
5
+ * - Fetch requests with timing and size
6
+ * - Performance metrics (Core Web Vitals)
7
+ * - JavaScript errors
8
+ * - Console output
9
9
  */
10
+ export declare function instrumentFetch(): void;
11
+ export declare function instrumentPerformance(): void;
12
+ export declare function instrumentErrors(): void;
13
+ export declare function instrumentConsole(): void;
10
14
  export declare function instrumentFileRouter(routes: unknown[]): void;
11
- /**
12
- * Instrument an adapter to report to DevTools
13
- */
14
- export declare function instrumentAdapter(adapter: {
15
+ export declare function instrumentAdapter<T extends object>(adapter: T, info: {
15
16
  name: string;
16
- }, type: AdapterInfo['type']): void;
17
- /**
18
- * Report adapter error to DevTools
19
- */
20
- export declare function reportAdapterError(adapterName: string): void;
21
- /**
22
- * Instrument a cache to report to DevTools
23
- */
24
- export declare function instrumentCache(cache: Map<string, unknown>): void;
25
- /**
26
- * Auto-instrument common Flight patterns
27
- * Call this once during app initialization
28
- */
17
+ type: 'db' | 'auth' | 'storage' | 'email' | 'payments' | 'realtime' | 'other';
18
+ }): T;
19
+ export declare function reportAdapterError(name: string, type: 'db' | 'auth' | 'storage' | 'email' | 'payments' | 'realtime' | 'other', error: Error): void;
29
20
  export declare function autoInstrument(): void;
30
21
  //# sourceMappingURL=instrumentation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA+B,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAM3E;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAc5D;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACzB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAC1B,IAAI,CASN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAa5D;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAYjE;AAMD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CA8CrC"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,wBAAgB,eAAe,IAAI,IAAI,CAsDtC;AAMD,wBAAgB,qBAAqB,IAAI,IAAI,CA+D5C;AAMD,wBAAgB,gBAAgB,IAAI,IAAI,CA0BvC;AAQD,wBAAgB,iBAAiB,IAAI,IAAI,CA0BxC;AAMD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAiB5D;AAwBD,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAC9C,OAAO,EAAE,CAAC,EACV,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAA;CAAE,GACtG,CAAC,CAuCH;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CASlJ;AAQD,wBAAgB,cAAc,IAAI,IAAI,CAgBrC"}