@flight-framework/devtools 0.0.2 → 0.0.3
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 +127 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +187 -273
- package/dist/index.js.map +1 -0
- package/dist/instrumentation.d.ts +30 -0
- package/dist/instrumentation.d.ts.map +1 -0
- package/{src/instrumentation.ts → dist/instrumentation.js} +126 -146
- package/dist/instrumentation.js.map +1 -0
- package/dist/panel.d.ts +12 -0
- package/dist/panel.d.ts.map +1 -0
- package/{src/panel.ts → dist/panel.js} +76 -95
- package/dist/panel.js.map +1 -0
- package/package.json +4 -1
- package/tsconfig.json +0 -17
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @flight-framework/devtools - Development Tools
|
|
3
|
+
*
|
|
4
|
+
* Provides debugging tools for Flight applications during development.
|
|
5
|
+
* Automatically disabled in production builds.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // In your flight.config.ts or main entry
|
|
10
|
+
* import { enableDevTools } from '@flight-framework/devtools';
|
|
11
|
+
*
|
|
12
|
+
* if (process.env.NODE_ENV === 'development') {
|
|
13
|
+
* enableDevTools({
|
|
14
|
+
* port: 3001,
|
|
15
|
+
* showRoutes: true,
|
|
16
|
+
* showRequests: true,
|
|
17
|
+
* showCache: true,
|
|
18
|
+
* });
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export interface DevToolsOptions {
|
|
23
|
+
/** WebSocket port for DevTools communication (default: 3001) */
|
|
24
|
+
port?: number;
|
|
25
|
+
/** Show registered routes */
|
|
26
|
+
showRoutes?: boolean;
|
|
27
|
+
/** Show incoming requests */
|
|
28
|
+
showRequests?: boolean;
|
|
29
|
+
/** Show cache status */
|
|
30
|
+
showCache?: boolean;
|
|
31
|
+
/** Show connected adapters */
|
|
32
|
+
showAdapters?: boolean;
|
|
33
|
+
/** Custom panel position */
|
|
34
|
+
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
35
|
+
}
|
|
36
|
+
export interface RouteInfo {
|
|
37
|
+
method: string;
|
|
38
|
+
path: string;
|
|
39
|
+
type: 'page' | 'api';
|
|
40
|
+
filePath: string;
|
|
41
|
+
slot?: string;
|
|
42
|
+
interceptInfo?: {
|
|
43
|
+
level: number;
|
|
44
|
+
target: string;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export interface RequestInfo {
|
|
48
|
+
id: string;
|
|
49
|
+
method: string;
|
|
50
|
+
path: string;
|
|
51
|
+
status: number;
|
|
52
|
+
duration: number;
|
|
53
|
+
timestamp: number;
|
|
54
|
+
}
|
|
55
|
+
export interface CacheInfo {
|
|
56
|
+
key: string;
|
|
57
|
+
size: number;
|
|
58
|
+
hits: number;
|
|
59
|
+
lastAccessed: number;
|
|
60
|
+
}
|
|
61
|
+
export interface AdapterInfo {
|
|
62
|
+
name: string;
|
|
63
|
+
type: 'db' | 'auth' | 'storage' | 'email' | 'payments' | 'realtime' | 'other';
|
|
64
|
+
status: 'connected' | 'disconnected' | 'error';
|
|
65
|
+
}
|
|
66
|
+
export interface DevToolsState {
|
|
67
|
+
routes: RouteInfo[];
|
|
68
|
+
requests: RequestInfo[];
|
|
69
|
+
cache: CacheInfo[];
|
|
70
|
+
adapters: AdapterInfo[];
|
|
71
|
+
}
|
|
72
|
+
declare class DevToolsManager {
|
|
73
|
+
private options;
|
|
74
|
+
private state;
|
|
75
|
+
private subscribers;
|
|
76
|
+
private isEnabled;
|
|
77
|
+
constructor(options: DevToolsOptions);
|
|
78
|
+
/**
|
|
79
|
+
* Register routes for display in DevTools
|
|
80
|
+
*/
|
|
81
|
+
registerRoutes(routes: RouteInfo[]): void;
|
|
82
|
+
/**
|
|
83
|
+
* Log a request
|
|
84
|
+
*/
|
|
85
|
+
logRequest(info: Omit<RequestInfo, 'id' | 'timestamp'>): void;
|
|
86
|
+
/**
|
|
87
|
+
* Update cache info
|
|
88
|
+
*/
|
|
89
|
+
updateCache(cache: CacheInfo[]): void;
|
|
90
|
+
/**
|
|
91
|
+
* Register an adapter
|
|
92
|
+
*/
|
|
93
|
+
registerAdapter(adapter: AdapterInfo): void;
|
|
94
|
+
/**
|
|
95
|
+
* Subscribe to state changes
|
|
96
|
+
*/
|
|
97
|
+
subscribe(callback: (state: DevToolsState) => void): () => void;
|
|
98
|
+
/**
|
|
99
|
+
* Get current state
|
|
100
|
+
*/
|
|
101
|
+
getState(): DevToolsState;
|
|
102
|
+
/**
|
|
103
|
+
* Get options
|
|
104
|
+
*/
|
|
105
|
+
getOptions(): Required<DevToolsOptions>;
|
|
106
|
+
private notify;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Enable DevTools for the application
|
|
110
|
+
*/
|
|
111
|
+
export declare function enableDevTools(options?: DevToolsOptions): DevToolsManager;
|
|
112
|
+
/**
|
|
113
|
+
* Get the DevTools instance
|
|
114
|
+
*/
|
|
115
|
+
export declare function getDevTools(): DevToolsManager | null;
|
|
116
|
+
/**
|
|
117
|
+
* Check if DevTools are enabled
|
|
118
|
+
*/
|
|
119
|
+
export declare function isDevToolsEnabled(): boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Middleware to log requests to DevTools
|
|
122
|
+
*/
|
|
123
|
+
export declare function devToolsMiddleware(): (context: {
|
|
124
|
+
request: Request;
|
|
125
|
+
}, next: () => Promise<Response>) => Promise<Response>;
|
|
126
|
+
export {};
|
|
127
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,273 +1,187 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @flight-framework/devtools - Development Tools
|
|
3
|
-
*
|
|
4
|
-
* Provides debugging tools for Flight applications during development.
|
|
5
|
-
* Automatically disabled in production builds.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* // In your flight.config.ts or main entry
|
|
10
|
-
* import { enableDevTools } from '@flight-framework/devtools';
|
|
11
|
-
*
|
|
12
|
-
* if (process.env.NODE_ENV === 'development') {
|
|
13
|
-
* enableDevTools({
|
|
14
|
-
* port: 3001,
|
|
15
|
-
* showRoutes: true,
|
|
16
|
-
* showRequests: true,
|
|
17
|
-
* showCache: true,
|
|
18
|
-
* });
|
|
19
|
-
* }
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
private notify(): void {
|
|
190
|
-
for (const callback of this.subscribers) {
|
|
191
|
-
callback(this.state);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// ============================================================================
|
|
197
|
-
// Public API
|
|
198
|
-
// ============================================================================
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Enable DevTools for the application
|
|
202
|
-
*/
|
|
203
|
-
export function enableDevTools(options: DevToolsOptions = {}): DevToolsManager {
|
|
204
|
-
if (process.env.NODE_ENV !== 'development') {
|
|
205
|
-
console.warn('[Flight DevTools] DevTools are disabled in production');
|
|
206
|
-
return devToolsInstance as DevToolsManager;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
if (!devToolsInstance) {
|
|
210
|
-
devToolsInstance = new DevToolsManager(options);
|
|
211
|
-
console.log(`[Flight DevTools] Enabled on port ${options.port ?? 3001}`);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
return devToolsInstance;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Get the DevTools instance
|
|
219
|
-
*/
|
|
220
|
-
export function getDevTools(): DevToolsManager | null {
|
|
221
|
-
return devToolsInstance;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Check if DevTools are enabled
|
|
226
|
-
*/
|
|
227
|
-
export function isDevToolsEnabled(): boolean {
|
|
228
|
-
return devToolsInstance !== null && process.env.NODE_ENV === 'development';
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// ============================================================================
|
|
232
|
-
// Instrumentation Helpers
|
|
233
|
-
// ============================================================================
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Middleware to log requests to DevTools
|
|
237
|
-
*/
|
|
238
|
-
export function devToolsMiddleware() {
|
|
239
|
-
return async (
|
|
240
|
-
context: { request: Request },
|
|
241
|
-
next: () => Promise<Response>
|
|
242
|
-
): Promise<Response> => {
|
|
243
|
-
if (!devToolsInstance) return next();
|
|
244
|
-
|
|
245
|
-
const start = performance.now();
|
|
246
|
-
const { request } = context;
|
|
247
|
-
|
|
248
|
-
try {
|
|
249
|
-
const response = await next();
|
|
250
|
-
const duration = performance.now() - start;
|
|
251
|
-
|
|
252
|
-
devToolsInstance.logRequest({
|
|
253
|
-
method: request.method,
|
|
254
|
-
path: new URL(request.url).pathname,
|
|
255
|
-
status: response.status,
|
|
256
|
-
duration: Math.round(duration),
|
|
257
|
-
});
|
|
258
|
-
|
|
259
|
-
return response;
|
|
260
|
-
} catch (error) {
|
|
261
|
-
const duration = performance.now() - start;
|
|
262
|
-
|
|
263
|
-
devToolsInstance.logRequest({
|
|
264
|
-
method: request.method,
|
|
265
|
-
path: new URL(request.url).pathname,
|
|
266
|
-
status: 500,
|
|
267
|
-
duration: Math.round(duration),
|
|
268
|
-
});
|
|
269
|
-
|
|
270
|
-
throw error;
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @flight-framework/devtools - Development Tools
|
|
3
|
+
*
|
|
4
|
+
* Provides debugging tools for Flight applications during development.
|
|
5
|
+
* Automatically disabled in production builds.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // In your flight.config.ts or main entry
|
|
10
|
+
* import { enableDevTools } from '@flight-framework/devtools';
|
|
11
|
+
*
|
|
12
|
+
* if (process.env.NODE_ENV === 'development') {
|
|
13
|
+
* enableDevTools({
|
|
14
|
+
* port: 3001,
|
|
15
|
+
* showRoutes: true,
|
|
16
|
+
* showRequests: true,
|
|
17
|
+
* showCache: true,
|
|
18
|
+
* });
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
// ============================================================================
|
|
23
|
+
// DevTools Manager
|
|
24
|
+
// ============================================================================
|
|
25
|
+
let devToolsInstance = null;
|
|
26
|
+
class DevToolsManager {
|
|
27
|
+
options;
|
|
28
|
+
state;
|
|
29
|
+
subscribers;
|
|
30
|
+
isEnabled;
|
|
31
|
+
constructor(options) {
|
|
32
|
+
this.options = {
|
|
33
|
+
port: options.port ?? 3001,
|
|
34
|
+
showRoutes: options.showRoutes ?? true,
|
|
35
|
+
showRequests: options.showRequests ?? true,
|
|
36
|
+
showCache: options.showCache ?? true,
|
|
37
|
+
showAdapters: options.showAdapters ?? true,
|
|
38
|
+
position: options.position ?? 'bottom-right',
|
|
39
|
+
};
|
|
40
|
+
this.state = {
|
|
41
|
+
routes: [],
|
|
42
|
+
requests: [],
|
|
43
|
+
cache: [],
|
|
44
|
+
adapters: [],
|
|
45
|
+
};
|
|
46
|
+
this.subscribers = new Set();
|
|
47
|
+
this.isEnabled = process.env.NODE_ENV === 'development';
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Register routes for display in DevTools
|
|
51
|
+
*/
|
|
52
|
+
registerRoutes(routes) {
|
|
53
|
+
if (!this.isEnabled)
|
|
54
|
+
return;
|
|
55
|
+
this.state.routes = routes;
|
|
56
|
+
this.notify();
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Log a request
|
|
60
|
+
*/
|
|
61
|
+
logRequest(info) {
|
|
62
|
+
if (!this.isEnabled || !this.options.showRequests)
|
|
63
|
+
return;
|
|
64
|
+
const request = {
|
|
65
|
+
...info,
|
|
66
|
+
id: crypto.randomUUID(),
|
|
67
|
+
timestamp: Date.now(),
|
|
68
|
+
};
|
|
69
|
+
// Keep last 100 requests
|
|
70
|
+
this.state.requests = [request, ...this.state.requests].slice(0, 100);
|
|
71
|
+
this.notify();
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Update cache info
|
|
75
|
+
*/
|
|
76
|
+
updateCache(cache) {
|
|
77
|
+
if (!this.isEnabled || !this.options.showCache)
|
|
78
|
+
return;
|
|
79
|
+
this.state.cache = cache;
|
|
80
|
+
this.notify();
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Register an adapter
|
|
84
|
+
*/
|
|
85
|
+
registerAdapter(adapter) {
|
|
86
|
+
if (!this.isEnabled || !this.options.showAdapters)
|
|
87
|
+
return;
|
|
88
|
+
const existing = this.state.adapters.findIndex(a => a.name === adapter.name);
|
|
89
|
+
if (existing >= 0) {
|
|
90
|
+
this.state.adapters[existing] = adapter;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
this.state.adapters.push(adapter);
|
|
94
|
+
}
|
|
95
|
+
this.notify();
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Subscribe to state changes
|
|
99
|
+
*/
|
|
100
|
+
subscribe(callback) {
|
|
101
|
+
this.subscribers.add(callback);
|
|
102
|
+
callback(this.state); // Initial state
|
|
103
|
+
return () => this.subscribers.delete(callback);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get current state
|
|
107
|
+
*/
|
|
108
|
+
getState() {
|
|
109
|
+
return this.state;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get options
|
|
113
|
+
*/
|
|
114
|
+
getOptions() {
|
|
115
|
+
return this.options;
|
|
116
|
+
}
|
|
117
|
+
notify() {
|
|
118
|
+
for (const callback of this.subscribers) {
|
|
119
|
+
callback(this.state);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// ============================================================================
|
|
124
|
+
// Public API
|
|
125
|
+
// ============================================================================
|
|
126
|
+
/**
|
|
127
|
+
* Enable DevTools for the application
|
|
128
|
+
*/
|
|
129
|
+
export function enableDevTools(options = {}) {
|
|
130
|
+
if (process.env.NODE_ENV !== 'development') {
|
|
131
|
+
console.warn('[Flight DevTools] DevTools are disabled in production');
|
|
132
|
+
return devToolsInstance;
|
|
133
|
+
}
|
|
134
|
+
if (!devToolsInstance) {
|
|
135
|
+
devToolsInstance = new DevToolsManager(options);
|
|
136
|
+
console.log(`[Flight DevTools] Enabled on port ${options.port ?? 3001}`);
|
|
137
|
+
}
|
|
138
|
+
return devToolsInstance;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get the DevTools instance
|
|
142
|
+
*/
|
|
143
|
+
export function getDevTools() {
|
|
144
|
+
return devToolsInstance;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Check if DevTools are enabled
|
|
148
|
+
*/
|
|
149
|
+
export function isDevToolsEnabled() {
|
|
150
|
+
return devToolsInstance !== null && process.env.NODE_ENV === 'development';
|
|
151
|
+
}
|
|
152
|
+
// ============================================================================
|
|
153
|
+
// Instrumentation Helpers
|
|
154
|
+
// ============================================================================
|
|
155
|
+
/**
|
|
156
|
+
* Middleware to log requests to DevTools
|
|
157
|
+
*/
|
|
158
|
+
export function devToolsMiddleware() {
|
|
159
|
+
return async (context, next) => {
|
|
160
|
+
if (!devToolsInstance)
|
|
161
|
+
return next();
|
|
162
|
+
const start = performance.now();
|
|
163
|
+
const { request } = context;
|
|
164
|
+
try {
|
|
165
|
+
const response = await next();
|
|
166
|
+
const duration = performance.now() - start;
|
|
167
|
+
devToolsInstance.logRequest({
|
|
168
|
+
method: request.method,
|
|
169
|
+
path: new URL(request.url).pathname,
|
|
170
|
+
status: response.status,
|
|
171
|
+
duration: Math.round(duration),
|
|
172
|
+
});
|
|
173
|
+
return response;
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
const duration = performance.now() - start;
|
|
177
|
+
devToolsInstance.logRequest({
|
|
178
|
+
method: request.method,
|
|
179
|
+
path: new URL(request.url).pathname,
|
|
180
|
+
status: 500,
|
|
181
|
+
duration: Math.round(duration),
|
|
182
|
+
});
|
|
183
|
+
throw error;
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA8DH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,IAAI,gBAAgB,GAA2B,IAAI,CAAC;AAEpD,MAAM,eAAe;IACT,OAAO,CAA4B;IACnC,KAAK,CAAgB;IACrB,WAAW,CAAsC;IACjD,SAAS,CAAU;IAE3B,YAAY,OAAwB;QAChC,IAAI,CAAC,OAAO,GAAG;YACX,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACtC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;YAC1C,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACpC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;YAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,cAAc;SAC/C,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG;YACT,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;SACf,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,MAAmB;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAA2C;QAClD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,OAAO;QAE1D,MAAM,OAAO,GAAgB;YACzB,GAAG,IAAI;YACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;YACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACxB,CAAC;QAEF,yBAAyB;QACzB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAkB;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,OAAO;QACvD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,OAAoB;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,OAAO;QAE1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAwC;QAC9C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB;QACtC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEO,MAAM;QACV,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;CACJ;AAED,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,UAA2B,EAAE;IACxD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACtE,OAAO,gBAAmC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,gBAAgB,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,qCAAqC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACvB,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC7B,OAAO,gBAAgB,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;AAC/E,CAAC;AAED,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAC9B,OAAO,KAAK,EACR,OAA6B,EAC7B,IAA6B,EACZ,EAAE;QACnB,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,EAAE,CAAC;QAErC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAE5B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAE3C,gBAAgB,CAAC,UAAU,CAAC;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;gBACnC,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aACjC,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAE3C,gBAAgB,CAAC,UAAU,CAAC;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;gBACnC,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aACjC,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @flight-framework/devtools/instrumentation - Auto-instrumentation
|
|
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
|
|
9
|
+
*/
|
|
10
|
+
export declare function instrumentFileRouter(routes: unknown[]): void;
|
|
11
|
+
/**
|
|
12
|
+
* Instrument an adapter to report to DevTools
|
|
13
|
+
*/
|
|
14
|
+
export declare function instrumentAdapter(adapter: {
|
|
15
|
+
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
|
+
*/
|
|
29
|
+
export declare function autoInstrument(): void;
|
|
30
|
+
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -0,0 +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,146 +1,126 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @flight-framework/devtools/instrumentation - Auto-instrumentation
|
|
3
|
-
*
|
|
4
|
-
* Automatically instruments Flight apps to send data to DevTools.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
// ============================================================================
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
duration: Math.round(performance.now() - start),
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
return response;
|
|
132
|
-
} catch (error) {
|
|
133
|
-
if (devTools) {
|
|
134
|
-
const url = typeof input === 'string' ? input : (input as Request)?.url || '/';
|
|
135
|
-
devTools.logRequest({
|
|
136
|
-
method: init?.method || 'GET',
|
|
137
|
-
path: new URL(url, 'http://localhost').pathname,
|
|
138
|
-
status: 0,
|
|
139
|
-
duration: Math.round(performance.now() - start),
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
throw error;
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @flight-framework/devtools/instrumentation - Auto-instrumentation
|
|
3
|
+
*
|
|
4
|
+
* Automatically instruments Flight apps to send data to DevTools.
|
|
5
|
+
*/
|
|
6
|
+
import { getDevTools } from './index.js';
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Route Instrumentation
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Instrument file router to report routes to DevTools
|
|
12
|
+
*/
|
|
13
|
+
export function instrumentFileRouter(routes) {
|
|
14
|
+
const devTools = getDevTools();
|
|
15
|
+
if (!devTools)
|
|
16
|
+
return;
|
|
17
|
+
const routeInfos = routes.map(route => ({
|
|
18
|
+
method: route.method || 'GET',
|
|
19
|
+
path: route.path || '/',
|
|
20
|
+
type: route.type || 'page',
|
|
21
|
+
filePath: route.filePath || '',
|
|
22
|
+
slot: route.slot,
|
|
23
|
+
interceptInfo: route.interceptInfo,
|
|
24
|
+
}));
|
|
25
|
+
devTools.registerRoutes(routeInfos);
|
|
26
|
+
}
|
|
27
|
+
// ============================================================================
|
|
28
|
+
// Adapter Instrumentation
|
|
29
|
+
// ============================================================================
|
|
30
|
+
/**
|
|
31
|
+
* Instrument an adapter to report to DevTools
|
|
32
|
+
*/
|
|
33
|
+
export function instrumentAdapter(adapter, type) {
|
|
34
|
+
const devTools = getDevTools();
|
|
35
|
+
if (!devTools)
|
|
36
|
+
return;
|
|
37
|
+
devTools.registerAdapter({
|
|
38
|
+
name: adapter.name,
|
|
39
|
+
type,
|
|
40
|
+
status: 'connected',
|
|
41
|
+
});
|
|
42
|
+
}
|
|
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) {
|
|
66
|
+
const devTools = getDevTools();
|
|
67
|
+
if (!devTools)
|
|
68
|
+
return;
|
|
69
|
+
const cacheInfos = Array.from(cache.entries()).map(([key, value]) => ({
|
|
70
|
+
key,
|
|
71
|
+
size: JSON.stringify(value).length,
|
|
72
|
+
hits: 0,
|
|
73
|
+
lastAccessed: Date.now(),
|
|
74
|
+
}));
|
|
75
|
+
devTools.updateCache(cacheInfos);
|
|
76
|
+
}
|
|
77
|
+
// ============================================================================
|
|
78
|
+
// Auto-Instrumentation
|
|
79
|
+
// ============================================================================
|
|
80
|
+
/**
|
|
81
|
+
* Auto-instrument common Flight patterns
|
|
82
|
+
* Call this once during app initialization
|
|
83
|
+
*/
|
|
84
|
+
export function autoInstrument() {
|
|
85
|
+
if (process.env.NODE_ENV !== 'development')
|
|
86
|
+
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
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAoC,MAAM,YAAY,CAAC;AAE3E,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IAClD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,MAAM,UAAU,GAAiB,MAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK;QAC7B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG;QACvB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,aAAa,EAAE,KAAK,CAAC,aAAa;KACrC,CAAC,CAAC,CAAC;IAEJ,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC7B,OAAyB,EACzB,IAAyB;IAEzB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,QAAQ,CAAC,eAAe,CAAC;QACrB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI;QACJ,MAAM,EAAE,WAAW;KACtB,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IAClD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAEjE,IAAI,OAAO,EAAE,CAAC;QACV,QAAQ,CAAC,eAAe,CAAC;YACrB,GAAG,OAAO;YACV,MAAM,EAAE,OAAO;SAClB,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACvD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,GAAG;QACH,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM;QAClC,IAAI,EAAE,CAAC;QACP,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;KAC3B,CAAC,CAAC,CAAC;IAEJ,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;QAAE,OAAO;IAEnD,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAE9D,uCAAuC;IACvC,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;QAEvC,UAAU,CAAC,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAEhC,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAElD,IAAI,QAAQ,EAAE,CAAC;oBACX,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ;wBACjC,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,KAAK,YAAY,GAAG;4BAClB,CAAC,CAAC,KAAK,CAAC,QAAQ;4BAChB,CAAC,CAAE,KAAiB,CAAC,GAAG,CAAC;oBAEjC,QAAQ,CAAC,UAAU,CAAC;wBAChB,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK;wBAC7B,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,QAAQ;wBAC/C,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;qBAClD,CAAC,CAAC;gBACP,CAAC;gBAED,OAAO,QAAQ,CAAC;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,QAAQ,EAAE,CAAC;oBACX,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,KAAiB,EAAE,GAAG,IAAI,GAAG,CAAC;oBAC/E,QAAQ,CAAC,UAAU,CAAC;wBAChB,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK;wBAC7B,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,QAAQ;wBAC/C,MAAM,EAAE,CAAC;wBACT,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;qBAClD,CAAC,CAAC;gBACP,CAAC;gBACD,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC,CAAC;IACN,CAAC;AACL,CAAC"}
|
package/dist/panel.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @flight-framework/devtools/panel - DevTools Panel UI
|
|
3
|
+
*
|
|
4
|
+
* React component for the DevTools floating panel.
|
|
5
|
+
* Automatically injected into pages during development.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Inject the DevTools panel into the page
|
|
9
|
+
* Call this in your app's entry point during development
|
|
10
|
+
*/
|
|
11
|
+
export declare function injectDevToolsPanel(): void;
|
|
12
|
+
//# sourceMappingURL=panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAmI1C"}
|
|
@@ -1,43 +1,36 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @flight-framework/devtools/panel - DevTools Panel UI
|
|
3
|
-
*
|
|
4
|
-
* React component for the DevTools floating panel.
|
|
5
|
-
* Automatically injected into pages during development.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
// ============================================================================
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// Initial render
|
|
35
|
-
let isOpen = false;
|
|
36
|
-
let currentTab = 'routes';
|
|
37
|
-
|
|
38
|
-
function render(state: DevToolsState): void {
|
|
39
|
-
const options = devTools!.getOptions();
|
|
40
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @flight-framework/devtools/panel - DevTools Panel UI
|
|
3
|
+
*
|
|
4
|
+
* React component for the DevTools floating panel.
|
|
5
|
+
* Automatically injected into pages during development.
|
|
6
|
+
*/
|
|
7
|
+
import { getDevTools } from './index.js';
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Panel Component (Plain JS for framework-agnostic use)
|
|
10
|
+
// ============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Inject the DevTools panel into the page
|
|
13
|
+
* Call this in your app's entry point during development
|
|
14
|
+
*/
|
|
15
|
+
export function injectDevToolsPanel() {
|
|
16
|
+
if (typeof document === 'undefined')
|
|
17
|
+
return;
|
|
18
|
+
const devTools = getDevTools();
|
|
19
|
+
if (!devTools)
|
|
20
|
+
return;
|
|
21
|
+
// Create container
|
|
22
|
+
const container = document.createElement('div');
|
|
23
|
+
container.id = 'flight-devtools';
|
|
24
|
+
document.body.appendChild(container);
|
|
25
|
+
// Inject styles
|
|
26
|
+
const styles = document.createElement('style');
|
|
27
|
+
styles.textContent = getDevToolsStyles();
|
|
28
|
+
document.head.appendChild(styles);
|
|
29
|
+
// Initial render
|
|
30
|
+
let isOpen = false;
|
|
31
|
+
let currentTab = 'routes';
|
|
32
|
+
function render(state) {
|
|
33
|
+
const options = devTools.getOptions();
|
|
41
34
|
container.innerHTML = `
|
|
42
35
|
<div class="flight-devtools ${options.position} ${isOpen ? 'open' : ''}">
|
|
43
36
|
<button class="flight-devtools-toggle" onclick="window.__flightToggleDevTools()">
|
|
@@ -45,10 +38,9 @@ export function injectDevToolsPanel(): void {
|
|
|
45
38
|
</button>
|
|
46
39
|
${isOpen ? renderPanel(state, currentTab) : ''}
|
|
47
40
|
</div>
|
|
48
|
-
`;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function renderPanel(state: DevToolsState, tab: string): string {
|
|
41
|
+
`;
|
|
42
|
+
}
|
|
43
|
+
function renderPanel(state, tab) {
|
|
52
44
|
return `
|
|
53
45
|
<div class="flight-devtools-panel">
|
|
54
46
|
<div class="flight-devtools-header">
|
|
@@ -71,16 +63,13 @@ export function injectDevToolsPanel(): void {
|
|
|
71
63
|
${tab === 'adapters' ? renderAdapters(state) : ''}
|
|
72
64
|
</div>
|
|
73
65
|
</div>
|
|
74
|
-
`;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const dots = (level: number) => '.'.repeat(level);
|
|
83
|
-
|
|
66
|
+
`;
|
|
67
|
+
}
|
|
68
|
+
function renderRoutes(routes) {
|
|
69
|
+
if (routes.length === 0) {
|
|
70
|
+
return '<div class="flight-devtools-empty">No routes registered</div>';
|
|
71
|
+
}
|
|
72
|
+
const dots = (level) => '.'.repeat(level);
|
|
84
73
|
return `
|
|
85
74
|
<div class="flight-devtools-list">
|
|
86
75
|
${routes.map(route => `
|
|
@@ -93,14 +82,12 @@ export function injectDevToolsPanel(): void {
|
|
|
93
82
|
</div>
|
|
94
83
|
`).join('')}
|
|
95
84
|
</div>
|
|
96
|
-
`;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
|
|
85
|
+
`;
|
|
86
|
+
}
|
|
87
|
+
function renderRequests(requests) {
|
|
88
|
+
if (requests.length === 0) {
|
|
89
|
+
return '<div class="flight-devtools-empty">No requests yet</div>';
|
|
90
|
+
}
|
|
104
91
|
return `
|
|
105
92
|
<div class="flight-devtools-list">
|
|
106
93
|
${requests.slice(0, 20).map(req => `
|
|
@@ -112,14 +99,12 @@ export function injectDevToolsPanel(): void {
|
|
|
112
99
|
</div>
|
|
113
100
|
`).join('')}
|
|
114
101
|
</div>
|
|
115
|
-
`;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
102
|
+
`;
|
|
103
|
+
}
|
|
104
|
+
function renderAdapters(state) {
|
|
105
|
+
if (state.adapters.length === 0) {
|
|
106
|
+
return '<div class="flight-devtools-empty">No adapters registered</div>';
|
|
107
|
+
}
|
|
123
108
|
return `
|
|
124
109
|
<div class="flight-devtools-list">
|
|
125
110
|
${state.adapters.map(adapter => `
|
|
@@ -130,29 +115,24 @@ export function injectDevToolsPanel(): void {
|
|
|
130
115
|
</div>
|
|
131
116
|
`).join('')}
|
|
132
117
|
</div>
|
|
133
|
-
`;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
// ============================================================================
|
|
152
|
-
// Styles
|
|
153
|
-
// ============================================================================
|
|
154
|
-
|
|
155
|
-
function getDevToolsStyles(): string {
|
|
118
|
+
`;
|
|
119
|
+
}
|
|
120
|
+
// Global functions for onclick handlers
|
|
121
|
+
window.__flightToggleDevTools = () => {
|
|
122
|
+
isOpen = !isOpen;
|
|
123
|
+
render(devTools.getState());
|
|
124
|
+
};
|
|
125
|
+
window.__flightSetTab = (tab) => {
|
|
126
|
+
currentTab = tab;
|
|
127
|
+
render(devTools.getState());
|
|
128
|
+
};
|
|
129
|
+
// Subscribe to state changes
|
|
130
|
+
devTools.subscribe(render);
|
|
131
|
+
}
|
|
132
|
+
// ============================================================================
|
|
133
|
+
// Styles
|
|
134
|
+
// ============================================================================
|
|
135
|
+
function getDevToolsStyles() {
|
|
156
136
|
return `
|
|
157
137
|
#flight-devtools {
|
|
158
138
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
@@ -284,5 +264,6 @@ function getDevToolsStyles(): string {
|
|
|
284
264
|
text-align: center;
|
|
285
265
|
color: #666;
|
|
286
266
|
}
|
|
287
|
-
`;
|
|
288
|
-
}
|
|
267
|
+
`;
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.js","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAwD,MAAM,YAAY,CAAC;AAE/F,+EAA+E;AAC/E,wDAAwD;AACxD,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IAC/B,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAE5C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,mBAAmB;IACnB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,GAAG,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAErC,gBAAgB;IAChB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,CAAC,WAAW,GAAG,iBAAiB,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAElC,iBAAiB;IACjB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,UAAU,GAAG,QAAQ,CAAC;IAE1B,SAAS,MAAM,CAAC,KAAoB;QAChC,MAAM,OAAO,GAAG,QAAS,CAAC,UAAU,EAAE,CAAC;QAEvC,SAAS,CAAC,SAAS,GAAG;0CACY,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;;sBAE5D,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ;;kBAE3B,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;;SAErD,CAAC;IACN,CAAC;IAED,SAAS,WAAW,CAAC,KAAoB,EAAE,GAAW;QAClD,OAAO;;;;;;qCAMsB,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;kCACnC,KAAK,CAAC,MAAM,CAAC,MAAM;;qCAEhB,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;oCACnC,KAAK,CAAC,QAAQ,CAAC,MAAM;;qCAEpB,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;oCACnC,KAAK,CAAC,QAAQ,CAAC,MAAM;;;;sBAInC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;sBAClD,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;sBACxD,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;;;SAG5D,CAAC;IACN,CAAC;IAED,SAAS,YAAY,CAAC,MAAmB;QACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,+DAA+D,CAAC;QAC3E,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAElD,OAAO;;kBAEG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;;8CAEQ,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,MAAM;6CAC5C,KAAK,CAAC,IAAI;6CACV,KAAK,CAAC,IAAI;0BAC7B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;0BAC5D,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,4BAA4B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;;iBAEzG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;SAElB,CAAC;IACN,CAAC;IAED,SAAS,cAAc,CAAC,QAAuB;QAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,0DAA0D,CAAC;QACtE,CAAC;QAED,OAAO;;kBAEG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;;8CAEL,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,MAAM;6CACxC,GAAG,CAAC,IAAI;qDACA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM;iDACjD,GAAG,CAAC,QAAQ;;iBAE5C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;SAElB,CAAC;IACN,CAAC;IAED,SAAS,cAAc,CAAC,KAAoB;QACxC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,iEAAiE,CAAC;QAC7E,CAAC;QAED,OAAO;;kBAEG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;;qDAEK,OAAO,CAAC,IAAI;qDACZ,OAAO,CAAC,IAAI;6DACJ,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;;iBAE7E,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;SAElB,CAAC;IACN,CAAC;IAED,wCAAwC;IACvC,MAAc,CAAC,sBAAsB,GAAG,GAAG,EAAE;QAC1C,MAAM,GAAG,CAAC,MAAM,CAAC;QACjB,MAAM,CAAC,QAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC;IAED,MAAc,CAAC,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;QAC7C,UAAU,GAAG,GAAG,CAAC;QACjB,MAAM,CAAC,QAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,SAAS,iBAAiB;IACtB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmIN,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flight-framework/devtools",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Development tools and debugging panel for Flight Framework",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist"
|
|
8
|
+
],
|
|
6
9
|
"main": "./dist/index.js",
|
|
7
10
|
"types": "./dist/index.d.ts",
|
|
8
11
|
"exports": {
|
package/tsconfig.json
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../tsconfig.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"outDir": "./dist",
|
|
5
|
-
"rootDir": "./src",
|
|
6
|
-
"declaration": true,
|
|
7
|
-
"declarationMap": true,
|
|
8
|
-
"jsx": "react-jsx"
|
|
9
|
-
},
|
|
10
|
-
"include": [
|
|
11
|
-
"src/**/*"
|
|
12
|
-
],
|
|
13
|
-
"exclude": [
|
|
14
|
-
"node_modules",
|
|
15
|
-
"dist"
|
|
16
|
-
]
|
|
17
|
-
}
|