@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 +80 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +146 -12
- package/dist/index.js.map +1 -1
- package/dist/instrumentation.d.ts +13 -22
- package/dist/instrumentation.d.ts.map +1 -1
- package/dist/instrumentation.js +250 -89
- package/dist/instrumentation.js.map +1 -1
- package/dist/panel.d.ts +2 -6
- package/dist/panel.d.ts.map +1 -1
- package/dist/panel.js +655 -108
- package/dist/panel.js.map +1 -1
- package/package.json +1 -1
package/dist/instrumentation.js
CHANGED
|
@@ -1,126 +1,287 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @flight-framework/devtools/instrumentation - Auto-instrumentation
|
|
3
3
|
*
|
|
4
|
-
* Automatically
|
|
4
|
+
* Automatically captures:
|
|
5
|
+
* - Fetch requests with timing and size
|
|
6
|
+
* - Performance metrics (Core Web Vitals)
|
|
7
|
+
* - JavaScript errors
|
|
8
|
+
* - Console output
|
|
5
9
|
*/
|
|
6
10
|
import { getDevTools } from './index.js';
|
|
7
11
|
// ============================================================================
|
|
8
|
-
//
|
|
12
|
+
// Fetch Instrumentation
|
|
13
|
+
// ============================================================================
|
|
14
|
+
let originalFetch = null;
|
|
15
|
+
export function instrumentFetch() {
|
|
16
|
+
const devTools = getDevTools();
|
|
17
|
+
if (!devTools || typeof window === 'undefined' || originalFetch)
|
|
18
|
+
return;
|
|
19
|
+
originalFetch = window.fetch;
|
|
20
|
+
window.fetch = async (input, init) => {
|
|
21
|
+
const start = performance.now();
|
|
22
|
+
const url = typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;
|
|
23
|
+
const method = init?.method || 'GET';
|
|
24
|
+
try {
|
|
25
|
+
const response = await originalFetch(input, init);
|
|
26
|
+
const duration = performance.now() - start;
|
|
27
|
+
// Clone to read body size
|
|
28
|
+
const cloned = response.clone();
|
|
29
|
+
let size;
|
|
30
|
+
try {
|
|
31
|
+
const blob = await cloned.blob();
|
|
32
|
+
size = blob.size;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// Size calculation failed, ignore
|
|
36
|
+
}
|
|
37
|
+
const parsedUrl = new URL(url, window.location.origin);
|
|
38
|
+
devTools.logRequest({
|
|
39
|
+
method: method.toUpperCase(),
|
|
40
|
+
path: parsedUrl.pathname + parsedUrl.search,
|
|
41
|
+
status: response.status,
|
|
42
|
+
duration: Math.round(duration),
|
|
43
|
+
size,
|
|
44
|
+
type: 'fetch',
|
|
45
|
+
cached: response.headers.get('x-cache') === 'HIT',
|
|
46
|
+
});
|
|
47
|
+
return response;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
const duration = performance.now() - start;
|
|
51
|
+
const parsedUrl = new URL(url, window.location.origin);
|
|
52
|
+
devTools.logRequest({
|
|
53
|
+
method: method.toUpperCase(),
|
|
54
|
+
path: parsedUrl.pathname + parsedUrl.search,
|
|
55
|
+
status: 0,
|
|
56
|
+
duration: Math.round(duration),
|
|
57
|
+
type: 'fetch',
|
|
58
|
+
});
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// ============================================================================
|
|
64
|
+
// Performance Instrumentation
|
|
65
|
+
// ============================================================================
|
|
66
|
+
export function instrumentPerformance() {
|
|
67
|
+
const devTools = getDevTools();
|
|
68
|
+
if (!devTools || typeof window === 'undefined' || typeof PerformanceObserver === 'undefined')
|
|
69
|
+
return;
|
|
70
|
+
// Core Web Vitals
|
|
71
|
+
try {
|
|
72
|
+
// LCP - Largest Contentful Paint
|
|
73
|
+
const lcpObserver = new PerformanceObserver((list) => {
|
|
74
|
+
const entries = list.getEntries();
|
|
75
|
+
const lastEntry = entries[entries.length - 1];
|
|
76
|
+
devTools.updatePerformance({ lcp: Math.round(lastEntry.startTime) });
|
|
77
|
+
});
|
|
78
|
+
lcpObserver.observe({ type: 'largest-contentful-paint', buffered: true });
|
|
79
|
+
// FID - First Input Delay
|
|
80
|
+
const fidObserver = new PerformanceObserver((list) => {
|
|
81
|
+
const entries = list.getEntries();
|
|
82
|
+
if (entries.length > 0) {
|
|
83
|
+
const firstInput = entries[0];
|
|
84
|
+
devTools.updatePerformance({ fid: Math.round(firstInput.processingStart - firstInput.startTime) });
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
fidObserver.observe({ type: 'first-input', buffered: true });
|
|
88
|
+
// CLS - Cumulative Layout Shift
|
|
89
|
+
let clsValue = 0;
|
|
90
|
+
const clsObserver = new PerformanceObserver((list) => {
|
|
91
|
+
const entries = list.getEntries();
|
|
92
|
+
for (const entry of entries) {
|
|
93
|
+
if (!entry.hadRecentInput) {
|
|
94
|
+
clsValue += entry.value;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
devTools.updatePerformance({ cls: clsValue });
|
|
98
|
+
});
|
|
99
|
+
clsObserver.observe({ type: 'layout-shift', buffered: true });
|
|
100
|
+
// FCP - First Contentful Paint
|
|
101
|
+
const fcpObserver = new PerformanceObserver((list) => {
|
|
102
|
+
const entries = list.getEntriesByName('first-contentful-paint');
|
|
103
|
+
if (entries.length > 0) {
|
|
104
|
+
devTools.updatePerformance({ fcp: Math.round(entries[0].startTime) });
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
fcpObserver.observe({ type: 'paint', buffered: true });
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
// PerformanceObserver not fully supported
|
|
111
|
+
}
|
|
112
|
+
// Navigation Timing
|
|
113
|
+
if (window.performance && window.performance.timing) {
|
|
114
|
+
window.addEventListener('load', () => {
|
|
115
|
+
setTimeout(() => {
|
|
116
|
+
const timing = window.performance.timing;
|
|
117
|
+
devTools.updatePerformance({
|
|
118
|
+
ttfb: timing.responseStart - timing.requestStart,
|
|
119
|
+
domLoad: timing.domContentLoadedEventEnd - timing.navigationStart,
|
|
120
|
+
pageLoad: timing.loadEventEnd - timing.navigationStart,
|
|
121
|
+
});
|
|
122
|
+
}, 0);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// ============================================================================
|
|
127
|
+
// Error Instrumentation
|
|
128
|
+
// ============================================================================
|
|
129
|
+
export function instrumentErrors() {
|
|
130
|
+
const devTools = getDevTools();
|
|
131
|
+
if (!devTools || typeof window === 'undefined')
|
|
132
|
+
return;
|
|
133
|
+
// Global error handler
|
|
134
|
+
window.addEventListener('error', (event) => {
|
|
135
|
+
devTools.logError({
|
|
136
|
+
message: event.message,
|
|
137
|
+
source: event.filename,
|
|
138
|
+
line: event.lineno,
|
|
139
|
+
column: event.colno,
|
|
140
|
+
stack: event.error?.stack,
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
// Unhandled promise rejections
|
|
144
|
+
window.addEventListener('unhandledrejection', (event) => {
|
|
145
|
+
const message = event.reason instanceof Error
|
|
146
|
+
? event.reason.message
|
|
147
|
+
: String(event.reason);
|
|
148
|
+
devTools.logError({
|
|
149
|
+
message: `Unhandled Promise Rejection: ${message}`,
|
|
150
|
+
stack: event.reason instanceof Error ? event.reason.stack : undefined,
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
// ============================================================================
|
|
155
|
+
// Console Instrumentation
|
|
156
|
+
// ============================================================================
|
|
157
|
+
const originalConsole = {};
|
|
158
|
+
export function instrumentConsole() {
|
|
159
|
+
const devTools = getDevTools();
|
|
160
|
+
if (!devTools || typeof console === 'undefined')
|
|
161
|
+
return;
|
|
162
|
+
const levels = ['log', 'info', 'warn', 'error'];
|
|
163
|
+
levels.forEach(level => {
|
|
164
|
+
originalConsole[level] = console[level];
|
|
165
|
+
console[level] = (...args) => {
|
|
166
|
+
// Call original
|
|
167
|
+
originalConsole[level]?.apply(console, args);
|
|
168
|
+
// Log to DevTools
|
|
169
|
+
const message = args.map(arg => {
|
|
170
|
+
if (typeof arg === 'string')
|
|
171
|
+
return arg;
|
|
172
|
+
try {
|
|
173
|
+
return JSON.stringify(arg);
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
return String(arg);
|
|
177
|
+
}
|
|
178
|
+
}).join(' ');
|
|
179
|
+
devTools.logConsole(level, message);
|
|
180
|
+
};
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
// ============================================================================
|
|
184
|
+
// File Router Instrumentation
|
|
9
185
|
// ============================================================================
|
|
10
|
-
/**
|
|
11
|
-
* Instrument file router to report routes to DevTools
|
|
12
|
-
*/
|
|
13
186
|
export function instrumentFileRouter(routes) {
|
|
14
187
|
const devTools = getDevTools();
|
|
15
188
|
if (!devTools)
|
|
16
189
|
return;
|
|
17
|
-
|
|
190
|
+
// Convert generic routes to RouteInfo format
|
|
191
|
+
const routeInfos = routes.map((route) => ({
|
|
18
192
|
method: route.method || 'GET',
|
|
19
|
-
path: route.path || '/',
|
|
20
|
-
type: route.type || 'page',
|
|
21
|
-
filePath: route.filePath || '',
|
|
193
|
+
path: route.path || route.pattern || '/',
|
|
194
|
+
type: route.type || (route.path?.includes('/api') ? 'api' : 'page'),
|
|
195
|
+
filePath: route.filePath || route.file || '',
|
|
196
|
+
params: extractParams(route.path || ''),
|
|
22
197
|
slot: route.slot,
|
|
198
|
+
middleware: route.middleware,
|
|
23
199
|
interceptInfo: route.interceptInfo,
|
|
24
200
|
}));
|
|
25
201
|
devTools.registerRoutes(routeInfos);
|
|
26
202
|
}
|
|
203
|
+
function extractParams(path) {
|
|
204
|
+
const params = [];
|
|
205
|
+
// Extract :param style
|
|
206
|
+
const colonParams = path.match(/:([^\/]+)/g);
|
|
207
|
+
if (colonParams) {
|
|
208
|
+
params.push(...colonParams.map(p => p.slice(1)));
|
|
209
|
+
}
|
|
210
|
+
// Extract [param] style
|
|
211
|
+
const bracketParams = path.match(/\[([^\]]+)\]/g);
|
|
212
|
+
if (bracketParams) {
|
|
213
|
+
params.push(...bracketParams.map(p => p.slice(1, -1)));
|
|
214
|
+
}
|
|
215
|
+
return params;
|
|
216
|
+
}
|
|
27
217
|
// ============================================================================
|
|
28
218
|
// Adapter Instrumentation
|
|
29
219
|
// ============================================================================
|
|
30
|
-
|
|
31
|
-
* Instrument an adapter to report to DevTools
|
|
32
|
-
*/
|
|
33
|
-
export function instrumentAdapter(adapter, type) {
|
|
220
|
+
export function instrumentAdapter(adapter, info) {
|
|
34
221
|
const devTools = getDevTools();
|
|
35
222
|
if (!devTools)
|
|
36
|
-
return;
|
|
223
|
+
return adapter;
|
|
37
224
|
devTools.registerAdapter({
|
|
38
|
-
name:
|
|
39
|
-
type,
|
|
225
|
+
name: info.name,
|
|
226
|
+
type: info.type,
|
|
40
227
|
status: 'connected',
|
|
41
228
|
});
|
|
229
|
+
// Wrap methods to track errors
|
|
230
|
+
return new Proxy(adapter, {
|
|
231
|
+
get(target, prop) {
|
|
232
|
+
const value = target[prop];
|
|
233
|
+
if (typeof value === 'function') {
|
|
234
|
+
return async function (...args) {
|
|
235
|
+
try {
|
|
236
|
+
const result = await value.apply(target, args);
|
|
237
|
+
devTools.registerAdapter({
|
|
238
|
+
name: info.name,
|
|
239
|
+
type: info.type,
|
|
240
|
+
status: 'connected',
|
|
241
|
+
});
|
|
242
|
+
return result;
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
devTools.registerAdapter({
|
|
246
|
+
name: info.name,
|
|
247
|
+
type: info.type,
|
|
248
|
+
status: 'error',
|
|
249
|
+
});
|
|
250
|
+
throw error;
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
return value;
|
|
255
|
+
},
|
|
256
|
+
});
|
|
42
257
|
}
|
|
43
|
-
|
|
44
|
-
* Report adapter error to DevTools
|
|
45
|
-
*/
|
|
46
|
-
export function reportAdapterError(adapterName) {
|
|
47
|
-
const devTools = getDevTools();
|
|
48
|
-
if (!devTools)
|
|
49
|
-
return;
|
|
50
|
-
const state = devTools.getState();
|
|
51
|
-
const adapter = state.adapters.find(a => a.name === adapterName);
|
|
52
|
-
if (adapter) {
|
|
53
|
-
devTools.registerAdapter({
|
|
54
|
-
...adapter,
|
|
55
|
-
status: 'error',
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
// ============================================================================
|
|
60
|
-
// Cache Instrumentation
|
|
61
|
-
// ============================================================================
|
|
62
|
-
/**
|
|
63
|
-
* Instrument a cache to report to DevTools
|
|
64
|
-
*/
|
|
65
|
-
export function instrumentCache(cache) {
|
|
258
|
+
export function reportAdapterError(name, type, error) {
|
|
66
259
|
const devTools = getDevTools();
|
|
67
260
|
if (!devTools)
|
|
68
261
|
return;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}));
|
|
75
|
-
devTools.updateCache(cacheInfos);
|
|
262
|
+
devTools.registerAdapter({ name, type, status: 'error' });
|
|
263
|
+
devTools.logError({
|
|
264
|
+
message: `Adapter Error (${name}): ${error.message}`,
|
|
265
|
+
stack: error.stack,
|
|
266
|
+
});
|
|
76
267
|
}
|
|
77
268
|
// ============================================================================
|
|
78
|
-
// Auto-
|
|
269
|
+
// Auto-Instrument All
|
|
79
270
|
// ============================================================================
|
|
80
|
-
|
|
81
|
-
* Auto-instrument common Flight patterns
|
|
82
|
-
* Call this once during app initialization
|
|
83
|
-
*/
|
|
271
|
+
let instrumented = false;
|
|
84
272
|
export function autoInstrument() {
|
|
85
|
-
if (
|
|
273
|
+
if (instrumented)
|
|
274
|
+
return;
|
|
275
|
+
instrumented = true;
|
|
276
|
+
const devTools = getDevTools();
|
|
277
|
+
if (!devTools) {
|
|
278
|
+
console.warn('[Flight DevTools] Cannot auto-instrument: DevTools not enabled');
|
|
86
279
|
return;
|
|
87
|
-
console.log('[Flight DevTools] Auto-instrumentation enabled');
|
|
88
|
-
// Instrument fetch for request logging
|
|
89
|
-
if (typeof globalThis.fetch !== 'undefined') {
|
|
90
|
-
const originalFetch = globalThis.fetch;
|
|
91
|
-
globalThis.fetch = async (input, init) => {
|
|
92
|
-
const devTools = getDevTools();
|
|
93
|
-
const start = performance.now();
|
|
94
|
-
try {
|
|
95
|
-
const response = await originalFetch(input, init);
|
|
96
|
-
if (devTools) {
|
|
97
|
-
const url = typeof input === 'string'
|
|
98
|
-
? input
|
|
99
|
-
: input instanceof URL
|
|
100
|
-
? input.pathname
|
|
101
|
-
: input.url;
|
|
102
|
-
devTools.logRequest({
|
|
103
|
-
method: init?.method || 'GET',
|
|
104
|
-
path: new URL(url, 'http://localhost').pathname,
|
|
105
|
-
status: response.status,
|
|
106
|
-
duration: Math.round(performance.now() - start),
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
return response;
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
if (devTools) {
|
|
113
|
-
const url = typeof input === 'string' ? input : input?.url || '/';
|
|
114
|
-
devTools.logRequest({
|
|
115
|
-
method: init?.method || 'GET',
|
|
116
|
-
path: new URL(url, 'http://localhost').pathname,
|
|
117
|
-
status: 0,
|
|
118
|
-
duration: Math.round(performance.now() - start),
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
throw error;
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
280
|
}
|
|
281
|
+
instrumentFetch();
|
|
282
|
+
instrumentPerformance();
|
|
283
|
+
instrumentErrors();
|
|
284
|
+
instrumentConsole();
|
|
285
|
+
console.log('[Flight DevTools] Auto-instrumentation enabled');
|
|
125
286
|
}
|
|
126
287
|
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"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"}
|
package/dist/panel.d.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @flight-framework/devtools/panel - DevTools Panel UI
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Inject the DevTools panel into the page
|
|
9
|
-
* Call this in your app's entry point during development
|
|
4
|
+
* Enhanced floating panel with collapsible sections, real-time updates,
|
|
5
|
+
* and improved data visualization.
|
|
10
6
|
*/
|
|
11
7
|
export declare function injectDevToolsPanel(): void;
|
|
12
8
|
//# sourceMappingURL=panel.d.ts.map
|
package/dist/panel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8BH,wBAAgB,mBAAmB,IAAI,IAAI,CAsY1C"}
|