@stacksjs/bun-router 0.0.17 → 0.0.18
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/cli.js +1 -1
- package/dist/container/service-provider.d.ts +3 -3
- package/dist/development/performance-profiler.d.ts +3 -3
- package/dist/development/route-debugger.d.ts +1 -1
- package/dist/development/route-inspector.d.ts +2 -2
- package/dist/observability/integration.d.ts +1 -1
- package/dist/response/macros.d.ts +1 -1
- package/dist/router/index.d.ts +7 -7
- package/dist/router/router.d.ts +0 -32
- package/dist/testing/performance-testing.d.ts +2 -2
- package/dist/testing/test-client.d.ts +1 -1
- package/dist/testing/websocket-testing.d.ts +1 -1
- package/package.json +2 -3
- package/src/auth.ts +0 -489
- package/src/cache/lru-cache.ts +0 -457
- package/src/cache/middleware-memoization.ts +0 -531
- package/src/cache/route-cache-warmer.ts +0 -486
- package/src/cache/sqlite-cache.ts +0 -783
- package/src/cache/streaming-cache.ts +0 -572
- package/src/cli/colors.ts +0 -29
- package/src/cli/index.ts +0 -287
- package/src/cli/middleware.ts +0 -291
- package/src/cli/openapi.ts +0 -407
- package/src/cli/router.ts +0 -188
- package/src/cli/routes.ts +0 -265
- package/src/cli/utils.ts +0 -531
- package/src/cli.ts +0 -5
- package/src/config.ts +0 -322
- package/src/container/container.ts +0 -786
- package/src/container/contextual-binding.ts +0 -606
- package/src/container/decorators.ts +0 -368
- package/src/container/index.ts +0 -49
- package/src/container/service-provider.ts +0 -596
- package/src/development/hot-reload.ts +0 -673
- package/src/development/index.ts +0 -499
- package/src/development/performance-profiler.ts +0 -717
- package/src/development/route-debugger.ts +0 -527
- package/src/development/route-inspector.ts +0 -749
- package/src/development/typescript-utilities.ts +0 -682
- package/src/docs.ts +0 -397
- package/src/errors/circuit-breaker.ts +0 -733
- package/src/errors/error-handler.ts +0 -569
- package/src/errors/error-reporting.ts +0 -672
- package/src/errors/exceptions.ts +0 -536
- package/src/errors/graceful-degradation.ts +0 -623
- package/src/errors/index.ts +0 -21
- package/src/errors/router-errors.ts +0 -632
- package/src/file-serving/static-files.ts +0 -718
- package/src/index.ts +0 -66
- package/src/middleware/auth.ts +0 -220
- package/src/middleware/content_security_policy.ts +0 -215
- package/src/middleware/cors.ts +0 -142
- package/src/middleware/csrf.ts +0 -166
- package/src/middleware/ddos_protection.ts +0 -279
- package/src/middleware/file_security.ts +0 -191
- package/src/middleware/file_upload.ts +0 -275
- package/src/middleware/helmet.ts +0 -268
- package/src/middleware/index.ts +0 -117
- package/src/middleware/input_validation.ts +0 -453
- package/src/middleware/json_body.ts +0 -37
- package/src/middleware/performance_alerting.ts +0 -540
- package/src/middleware/performance_dashboard.ts +0 -661
- package/src/middleware/performance_monitor.ts +0 -945
- package/src/middleware/pipeline.ts +0 -489
- package/src/middleware/rate_limit.ts +0 -251
- package/src/middleware/request_id.ts +0 -36
- package/src/middleware/request_signing.ts +0 -638
- package/src/middleware/request_tracer.ts +0 -653
- package/src/middleware/response_cache.ts +0 -778
- package/src/middleware/security.ts +0 -482
- package/src/middleware/security_suite.ts +0 -257
- package/src/middleware/session.ts +0 -91
- package/src/model-binding/index.ts +0 -18
- package/src/model-binding/model-middleware.ts +0 -425
- package/src/model-binding/model-registry.ts +0 -550
- package/src/model-binding.ts +0 -370
- package/src/model-resolver-factory.ts +0 -106
- package/src/observability/correlation.ts +0 -691
- package/src/observability/health-checks.ts +0 -729
- package/src/observability/index.ts +0 -184
- package/src/observability/integration.ts +0 -548
- package/src/observability/metrics.ts +0 -753
- package/src/observability/tracing.ts +0 -638
- package/src/optimization/bun-utilities.ts +0 -778
- package/src/query-builder-integration.ts +0 -137
- package/src/request/context.ts +0 -109
- package/src/request/enhanced-request.ts +0 -876
- package/src/request/macros.ts +0 -822
- package/src/response/macros.ts +0 -665
- package/src/response/response-factory.ts +0 -596
- package/src/router/api-routes.ts +0 -243
- package/src/router/file-based-routing.ts +0 -697
- package/src/router/file-streaming.ts +0 -383
- package/src/router/fluent-routing.ts +0 -866
- package/src/router/group-organization.ts +0 -229
- package/src/router/handler-resolver.ts +0 -327
- package/src/router/http-methods.ts +0 -407
- package/src/router/index.ts +0 -193
- package/src/router/middleware-groups.ts +0 -222
- package/src/router/middleware-integration.ts +0 -399
- package/src/router/middleware.ts +0 -234
- package/src/router/model-binding.ts +0 -215
- package/src/router/optimized-route-matching.ts +0 -302
- package/src/router/route-building.ts +0 -221
- package/src/router/route-compiler.ts +0 -691
- package/src/router/route-matching.ts +0 -368
- package/src/router/route-trie.ts +0 -450
- package/src/router/router.ts +0 -1616
- package/src/router/server.ts +0 -684
- package/src/router/validation-integration.ts +0 -449
- package/src/router/view-rendering.ts +0 -233
- package/src/router/websocket.ts +0 -100
- package/src/routing/route-caching.ts +0 -402
- package/src/routing/route-throttling.ts +0 -469
- package/src/routing/subdomain-routing.ts +0 -492
- package/src/session/database-store.ts +0 -109
- package/src/session/file-store.ts +0 -148
- package/src/session/index.ts +0 -244
- package/src/session/memory-store.ts +0 -88
- package/src/session/redis-store.ts +0 -93
- package/src/streaming/index.ts +0 -17
- package/src/streaming/sse-handler.ts +0 -482
- package/src/streaming/stream-handler.ts +0 -552
- package/src/testing/auth-testing.ts +0 -448
- package/src/testing/file-upload-testing.ts +0 -543
- package/src/testing/index.ts +0 -10
- package/src/testing/middleware-testing.ts +0 -322
- package/src/testing/model-binding-testing.ts +0 -645
- package/src/testing/performance-testing.ts +0 -738
- package/src/testing/test-client.ts +0 -310
- package/src/testing/test-request.ts +0 -315
- package/src/testing/test-response.ts +0 -332
- package/src/testing/types.ts +0 -224
- package/src/testing/websocket-testing.ts +0 -590
- package/src/types/controller-types.ts +0 -385
- package/src/types/core.ts +0 -683
- package/src/types/middleware-types.ts +0 -422
- package/src/types/request-response-augmentation.ts +0 -489
- package/src/types/route-inference.ts +0 -372
- package/src/types.ts +0 -2123
- package/src/url.ts +0 -131
- package/src/utils/index.ts +0 -1
- package/src/utils/query-preservation.ts +0 -201
- package/src/utils.ts +0 -395
- package/src/validation/validator.ts +0 -688
- package/src/websocket/clustering.ts +0 -769
package/src/development/index.ts
DELETED
|
@@ -1,499 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Development Tools - Main Integration
|
|
3
|
-
*
|
|
4
|
-
* Unified development tools with router integration and middleware
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { EnhancedRequest } from '../types'
|
|
8
|
-
import { createPerformanceProfilingMiddleware, initializePerformanceProfiler, PerformanceProfiler, PerformanceProfilingHelpers } from './performance-profiler'
|
|
9
|
-
import { createRouteDebugMiddleware, initializeRouteDebugger, RouteDebugger, RouteDebugHelpers } from './route-debugger'
|
|
10
|
-
import { initializeRouteInspector, RouteInspectionHelpers, RouteInspector } from './route-inspector'
|
|
11
|
-
import { initializeTypeScriptUtilities, TypeScriptHelpers, TypeScriptUtilities } from './typescript-utilities'
|
|
12
|
-
|
|
13
|
-
export interface DevelopmentConfig {
|
|
14
|
-
debug?: {
|
|
15
|
-
enabled?: boolean
|
|
16
|
-
logLevel?: 'debug' | 'info' | 'warn' | 'error'
|
|
17
|
-
includeHeaders?: boolean
|
|
18
|
-
includeBody?: boolean
|
|
19
|
-
colorOutput?: boolean
|
|
20
|
-
}
|
|
21
|
-
profiling?: {
|
|
22
|
-
enabled?: boolean
|
|
23
|
-
sampleRate?: number
|
|
24
|
-
includeMemory?: boolean
|
|
25
|
-
includeCpu?: boolean
|
|
26
|
-
}
|
|
27
|
-
inspection?: {
|
|
28
|
-
enabled?: boolean
|
|
29
|
-
trackStats?: boolean
|
|
30
|
-
generateReports?: boolean
|
|
31
|
-
}
|
|
32
|
-
typescript?: {
|
|
33
|
-
generateTypes?: boolean
|
|
34
|
-
validateTypes?: boolean
|
|
35
|
-
generateSchemas?: boolean
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Development tools manager
|
|
41
|
-
*/
|
|
42
|
-
export class DevelopmentTools {
|
|
43
|
-
private debugger: RouteDebugger
|
|
44
|
-
private inspector: RouteInspector
|
|
45
|
-
private profiler: PerformanceProfiler
|
|
46
|
-
private tsUtils: TypeScriptUtilities
|
|
47
|
-
private config: DevelopmentConfig
|
|
48
|
-
|
|
49
|
-
constructor(config: DevelopmentConfig = {}) {
|
|
50
|
-
this.config = {
|
|
51
|
-
debug: { enabled: true, ...config.debug },
|
|
52
|
-
profiling: { enabled: true, sampleRate: 0.1, ...config.profiling },
|
|
53
|
-
inspection: { enabled: true, trackStats: true, ...config.inspection },
|
|
54
|
-
typescript: { generateTypes: true, ...config.typescript },
|
|
55
|
-
...config,
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Initialize components
|
|
59
|
-
this.debugger = initializeRouteDebugger(this.config.debug)
|
|
60
|
-
this.inspector = initializeRouteInspector()
|
|
61
|
-
this.profiler = initializePerformanceProfiler(this.config.profiling)
|
|
62
|
-
this.tsUtils = initializeTypeScriptUtilities(this.config.typescript)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Create development middleware stack
|
|
67
|
-
*/
|
|
68
|
-
createMiddleware(): Array<(req: EnhancedRequest, next: () => Promise<Response>) => Promise<Response>> {
|
|
69
|
-
const middleware: Array<(req: EnhancedRequest, next: () => Promise<Response>) => Promise<Response>> = []
|
|
70
|
-
|
|
71
|
-
// Add debugging middleware
|
|
72
|
-
if (this.config.debug?.enabled) {
|
|
73
|
-
middleware.push(createRouteDebugMiddleware(this.config.debug))
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// Add profiling middleware
|
|
77
|
-
if (this.config.profiling?.enabled) {
|
|
78
|
-
middleware.push(createPerformanceProfilingMiddleware(this.config.profiling))
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Add inspection middleware
|
|
82
|
-
if (this.config.inspection?.enabled) {
|
|
83
|
-
middleware.push(this.createInspectionMiddleware())
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return middleware
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Register route with all development tools
|
|
91
|
-
*/
|
|
92
|
-
registerRoute(
|
|
93
|
-
method: string,
|
|
94
|
-
pattern: string,
|
|
95
|
-
handler: (...args: any[]) => any,
|
|
96
|
-
middleware: ((..._args: any[]) => any)[] = [],
|
|
97
|
-
options: any = {},
|
|
98
|
-
): string {
|
|
99
|
-
// Register with debugger
|
|
100
|
-
this.debugger.registerRoute(method, pattern, handler, middleware)
|
|
101
|
-
|
|
102
|
-
// Register with inspector
|
|
103
|
-
const routeId = this.inspector.registerRoute(method, pattern, handler, middleware, options)
|
|
104
|
-
|
|
105
|
-
// Register with TypeScript utilities
|
|
106
|
-
this.tsUtils.registerRouteTypes(method, pattern, options.types || {})
|
|
107
|
-
|
|
108
|
-
return routeId
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Get route debugging information
|
|
113
|
-
*/
|
|
114
|
-
debug(): {
|
|
115
|
-
listRoutes: typeof RouteInspectionHelpers.listRoutes
|
|
116
|
-
analyzeRoutes: typeof RouteInspectionHelpers.analyzeRoutes
|
|
117
|
-
exportRoutes: typeof RouteInspectionHelpers.exportRoutes
|
|
118
|
-
getDebugSession: (requestId: string) => import('./route-debugger').RouteDebugInfo | undefined
|
|
119
|
-
clearSessions: () => void
|
|
120
|
-
} {
|
|
121
|
-
const debuggerInstance = this.debugger
|
|
122
|
-
return {
|
|
123
|
-
listRoutes: RouteInspectionHelpers.listRoutes,
|
|
124
|
-
analyzeRoutes: RouteInspectionHelpers.analyzeRoutes,
|
|
125
|
-
exportRoutes: RouteInspectionHelpers.exportRoutes,
|
|
126
|
-
getDebugSession: (requestId: string): import('./route-debugger').RouteDebugInfo | undefined => debuggerInstance.getDebugSession(requestId),
|
|
127
|
-
clearSessions: (): void => debuggerInstance.clearSessions(),
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Get route listing and analysis
|
|
133
|
-
*/
|
|
134
|
-
routes(): {
|
|
135
|
-
list: (filter?: any) => import('./route-inspector').RouteMetadata[]
|
|
136
|
-
analyze: () => import('./route-inspector').RouteAnalysis
|
|
137
|
-
export: (format?: 'json' | 'csv' | 'markdown' | 'openapi') => string
|
|
138
|
-
groups: () => import('./route-inspector').RouteGroup[]
|
|
139
|
-
find: (method: string, path: string) => import('./route-inspector').RouteMetadata[]
|
|
140
|
-
} {
|
|
141
|
-
const inspectorInstance = this.inspector
|
|
142
|
-
return {
|
|
143
|
-
list: (filter?: any): import('./route-inspector').RouteMetadata[] => inspectorInstance.getRoutes(filter),
|
|
144
|
-
analyze: (): import('./route-inspector').RouteAnalysis => inspectorInstance.analyzeRoutes(),
|
|
145
|
-
export: (format?: 'json' | 'csv' | 'markdown' | 'openapi'): string => inspectorInstance.exportRoutes(format),
|
|
146
|
-
groups: (): import('./route-inspector').RouteGroup[] => inspectorInstance.getGroups(),
|
|
147
|
-
find: (method: string, path: string): import('./route-inspector').RouteMetadata[] => inspectorInstance.findMatchingRoutes(method, path),
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Get performance profiling information
|
|
153
|
-
*/
|
|
154
|
-
profile(): {
|
|
155
|
-
getMetrics: () => import('./performance-profiler').PerformanceMetrics
|
|
156
|
-
getProfiles: (filter?: any) => import('./performance-profiler').RouteProfile[]
|
|
157
|
-
generateReport: () => string
|
|
158
|
-
clear: () => void
|
|
159
|
-
} {
|
|
160
|
-
const profilerInstance = this.profiler
|
|
161
|
-
return {
|
|
162
|
-
getMetrics: (): import('./performance-profiler').PerformanceMetrics => profilerInstance.getMetrics(),
|
|
163
|
-
getProfiles: (filter?: any): import('./performance-profiler').RouteProfile[] => profilerInstance.getProfiles(filter),
|
|
164
|
-
generateReport: (): string => profilerInstance.generateReport(),
|
|
165
|
-
clear: (): void => profilerInstance.clear(),
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Get TypeScript utilities
|
|
171
|
-
*/
|
|
172
|
-
typescript(): {
|
|
173
|
-
generateTypes: () => string
|
|
174
|
-
generateSchemas: () => Record<string, import('./typescript-utilities').ValidationSchema>
|
|
175
|
-
generateOpenAPI: () => any
|
|
176
|
-
generateRouteBuilder: () => string
|
|
177
|
-
validateRequest: (req: EnhancedRequest, routeKey: string) => { valid: boolean, errors: string[], warnings: string[] }
|
|
178
|
-
} {
|
|
179
|
-
const tsUtilsInstance = this.tsUtils
|
|
180
|
-
return {
|
|
181
|
-
generateTypes: (): string => tsUtilsInstance.generateRouteTypes(),
|
|
182
|
-
generateSchemas: (): Record<string, import('./typescript-utilities').ValidationSchema> => tsUtilsInstance.generateValidationSchemas(),
|
|
183
|
-
generateOpenAPI: (): any => tsUtilsInstance.generateOpenAPISchema(),
|
|
184
|
-
generateRouteBuilder: (): string => tsUtilsInstance.generateRouteBuilder(),
|
|
185
|
-
validateRequest: (req: EnhancedRequest, routeKey: string): { valid: boolean, errors: string[], warnings: string[] } => tsUtilsInstance.validateRequest(req, routeKey),
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Generate comprehensive development report
|
|
191
|
-
*/
|
|
192
|
-
generateReport(): string {
|
|
193
|
-
let report = '# Development Tools Report\n\n'
|
|
194
|
-
|
|
195
|
-
// Route analysis
|
|
196
|
-
const analysis = this.inspector.analyzeRoutes()
|
|
197
|
-
report += '## Route Analysis\n'
|
|
198
|
-
report += `- Total Routes: ${analysis.totalRoutes}\n`
|
|
199
|
-
report += `- Routes by Method: ${JSON.stringify(analysis.routesByMethod)}\n`
|
|
200
|
-
report += `- Unused Routes: ${analysis.unusedRoutes.length}\n`
|
|
201
|
-
report += `- Slow Routes: ${analysis.slowRoutes.length}\n`
|
|
202
|
-
report += `- Error-prone Routes: ${analysis.errorProneRoutes.length}\n\n`
|
|
203
|
-
|
|
204
|
-
// Performance metrics
|
|
205
|
-
const metrics = this.profiler.getMetrics()
|
|
206
|
-
report += '## Performance Metrics\n'
|
|
207
|
-
report += `- Average Response Time: ${metrics.averageResponseTime.toFixed(2)}ms\n`
|
|
208
|
-
report += `- P95 Response Time: ${metrics.p95ResponseTime.toFixed(2)}ms\n`
|
|
209
|
-
report += `- P99 Response Time: ${metrics.p99ResponseTime.toFixed(2)}ms\n`
|
|
210
|
-
report += `- Memory Usage (Avg): ${(metrics.memoryUsageAverage / 1024 / 1024).toFixed(2)}MB\n`
|
|
211
|
-
report += `- Memory Usage (Peak): ${(metrics.memoryUsagePeak / 1024 / 1024).toFixed(2)}MB\n\n`
|
|
212
|
-
|
|
213
|
-
// Recommendations
|
|
214
|
-
if (analysis.recommendations.length > 0) {
|
|
215
|
-
report += '## Recommendations\n'
|
|
216
|
-
analysis.recommendations.forEach((rec, index) => {
|
|
217
|
-
report += `${index + 1}. ${rec}\n`
|
|
218
|
-
})
|
|
219
|
-
report += '\n'
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
// TypeScript information
|
|
223
|
-
const routeTypes = this.tsUtils.getRouteTypes()
|
|
224
|
-
report += '## TypeScript Information\n'
|
|
225
|
-
report += `- Routes with Type Information: ${routeTypes.length}\n`
|
|
226
|
-
report += `- Generated Type Definitions: Available\n`
|
|
227
|
-
report += `- Validation Schemas: Available\n\n`
|
|
228
|
-
|
|
229
|
-
return report
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
/**
|
|
233
|
-
* Clear all development data
|
|
234
|
-
*/
|
|
235
|
-
clear(): void {
|
|
236
|
-
this.debugger.clearSessions()
|
|
237
|
-
this.inspector.clear()
|
|
238
|
-
this.profiler.clear()
|
|
239
|
-
this.tsUtils.clear()
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* Create inspection middleware
|
|
244
|
-
*/
|
|
245
|
-
private createInspectionMiddleware() {
|
|
246
|
-
return async (req: EnhancedRequest, next: () => Promise<Response>): Promise<Response> => {
|
|
247
|
-
const startTime = performance.now()
|
|
248
|
-
const _pattern = (req as any).route?.pattern || req.url
|
|
249
|
-
const routeId = (req as any).route?.id
|
|
250
|
-
|
|
251
|
-
try {
|
|
252
|
-
const response = await next()
|
|
253
|
-
|
|
254
|
-
if (routeId && this.config.inspection?.trackStats) {
|
|
255
|
-
const duration = performance.now() - startTime
|
|
256
|
-
this.inspector.recordRouteAccess(routeId, duration, false)
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
return response
|
|
260
|
-
}
|
|
261
|
-
catch (error) {
|
|
262
|
-
if (routeId && this.config.inspection?.trackStats) {
|
|
263
|
-
const duration = performance.now() - startTime
|
|
264
|
-
this.inspector.recordRouteAccess(routeId, duration, true)
|
|
265
|
-
}
|
|
266
|
-
throw error
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
/**
|
|
273
|
-
* Router extension for development tools
|
|
274
|
-
*/
|
|
275
|
-
export class DevelopmentRouter {
|
|
276
|
-
private devTools: DevelopmentTools
|
|
277
|
-
private routes = new Map<string, any>()
|
|
278
|
-
|
|
279
|
-
constructor(config?: DevelopmentConfig) {
|
|
280
|
-
this.devTools = new DevelopmentTools(config)
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Enable debugging for next route
|
|
285
|
-
*/
|
|
286
|
-
debug(): {
|
|
287
|
-
get: (pattern: string, handler: (...args: any[]) => any) => any
|
|
288
|
-
post: (pattern: string, handler: (...args: any[]) => any) => any
|
|
289
|
-
put: (pattern: string, handler: (...args: any[]) => any) => any
|
|
290
|
-
patch: (pattern: string, handler: (...args: any[]) => any) => any
|
|
291
|
-
delete: (pattern: string, handler: (...args: any[]) => any) => any
|
|
292
|
-
} {
|
|
293
|
-
return {
|
|
294
|
-
get: (pattern: string, handler: (...args: any[]) => any): any => this.registerRoute('GET', pattern, handler, { debug: true }),
|
|
295
|
-
post: (pattern: string, handler: (...args: any[]) => any): any => this.registerRoute('POST', pattern, handler, { debug: true }),
|
|
296
|
-
put: (pattern: string, handler: (...args: any[]) => any): any => this.registerRoute('PUT', pattern, handler, { debug: true }),
|
|
297
|
-
patch: (pattern: string, handler: (...args: any[]) => any): any => this.registerRoute('PATCH', pattern, handler, { debug: true }),
|
|
298
|
-
delete: (pattern: string, handler: (...args: any[]) => any): any => this.registerRoute('DELETE', pattern, handler, { debug: true }),
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
/**
|
|
303
|
-
* Enable profiling for route group
|
|
304
|
-
*/
|
|
305
|
-
profile(): {
|
|
306
|
-
group: (callback: () => void) => void
|
|
307
|
-
} {
|
|
308
|
-
return {
|
|
309
|
-
group: (callback: () => void): void => {
|
|
310
|
-
// Enable profiling for routes registered in callback
|
|
311
|
-
const originalRegister = this.registerRoute.bind(this)
|
|
312
|
-
this.registerRoute = (method: string, pattern: string, handler: (...args: any[]) => any, options: any = {}): any => {
|
|
313
|
-
return originalRegister(method, pattern, handler, { ...options, profile: true })
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
callback()
|
|
317
|
-
|
|
318
|
-
// Restore original register function
|
|
319
|
-
this.registerRoute = originalRegister
|
|
320
|
-
},
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
/**
|
|
325
|
-
* Get all registered routes
|
|
326
|
-
*/
|
|
327
|
-
getRoutes(): import('./route-inspector').RouteMetadata[] {
|
|
328
|
-
return this.devTools.routes().list()
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
/**
|
|
332
|
-
* Register route with development tools
|
|
333
|
-
*/
|
|
334
|
-
private registerRoute(method: string, pattern: string, handler: (...args: any[]) => any, options: any = {}) {
|
|
335
|
-
const routeId = this.devTools.registerRoute(method, pattern, handler, [], options)
|
|
336
|
-
|
|
337
|
-
const route = {
|
|
338
|
-
id: routeId,
|
|
339
|
-
method,
|
|
340
|
-
pattern,
|
|
341
|
-
handler,
|
|
342
|
-
options,
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
this.routes.set(`${method}:${pattern}`, route)
|
|
346
|
-
|
|
347
|
-
console.log(`🔧 Registered ${method} ${pattern} with development tools`)
|
|
348
|
-
|
|
349
|
-
return route
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
/**
|
|
354
|
-
* Development presets for common configurations
|
|
355
|
-
*/
|
|
356
|
-
export const DevelopmentPresets = {
|
|
357
|
-
/**
|
|
358
|
-
* Full development mode with all features enabled
|
|
359
|
-
*/
|
|
360
|
-
development: (): DevelopmentConfig => ({
|
|
361
|
-
debug: {
|
|
362
|
-
enabled: true,
|
|
363
|
-
logLevel: 'debug',
|
|
364
|
-
includeHeaders: true,
|
|
365
|
-
includeBody: true,
|
|
366
|
-
colorOutput: true,
|
|
367
|
-
},
|
|
368
|
-
profiling: {
|
|
369
|
-
enabled: true,
|
|
370
|
-
sampleRate: 1.0, // Profile all requests in development
|
|
371
|
-
includeMemory: true,
|
|
372
|
-
includeCpu: true,
|
|
373
|
-
},
|
|
374
|
-
inspection: {
|
|
375
|
-
enabled: true,
|
|
376
|
-
trackStats: true,
|
|
377
|
-
generateReports: true,
|
|
378
|
-
},
|
|
379
|
-
typescript: {
|
|
380
|
-
generateTypes: true,
|
|
381
|
-
validateTypes: true,
|
|
382
|
-
generateSchemas: true,
|
|
383
|
-
},
|
|
384
|
-
}),
|
|
385
|
-
|
|
386
|
-
/**
|
|
387
|
-
* Production debugging with minimal overhead
|
|
388
|
-
*/
|
|
389
|
-
production: (): DevelopmentConfig => ({
|
|
390
|
-
debug: {
|
|
391
|
-
enabled: true,
|
|
392
|
-
logLevel: 'warn',
|
|
393
|
-
includeHeaders: false,
|
|
394
|
-
includeBody: false,
|
|
395
|
-
colorOutput: false,
|
|
396
|
-
},
|
|
397
|
-
profiling: {
|
|
398
|
-
enabled: true,
|
|
399
|
-
sampleRate: 0.01, // 1% sampling in production
|
|
400
|
-
includeMemory: false,
|
|
401
|
-
includeCpu: false,
|
|
402
|
-
},
|
|
403
|
-
inspection: {
|
|
404
|
-
enabled: true,
|
|
405
|
-
trackStats: true,
|
|
406
|
-
generateReports: false,
|
|
407
|
-
},
|
|
408
|
-
typescript: {
|
|
409
|
-
generateTypes: false,
|
|
410
|
-
validateTypes: false,
|
|
411
|
-
generateSchemas: false,
|
|
412
|
-
},
|
|
413
|
-
}),
|
|
414
|
-
|
|
415
|
-
/**
|
|
416
|
-
* Performance testing configuration
|
|
417
|
-
*/
|
|
418
|
-
performance: (): DevelopmentConfig => ({
|
|
419
|
-
debug: {
|
|
420
|
-
enabled: false,
|
|
421
|
-
},
|
|
422
|
-
profiling: {
|
|
423
|
-
enabled: true,
|
|
424
|
-
sampleRate: 1.0,
|
|
425
|
-
includeMemory: true,
|
|
426
|
-
includeCpu: true,
|
|
427
|
-
},
|
|
428
|
-
inspection: {
|
|
429
|
-
enabled: true,
|
|
430
|
-
trackStats: true,
|
|
431
|
-
generateReports: true,
|
|
432
|
-
},
|
|
433
|
-
typescript: {
|
|
434
|
-
generateTypes: false,
|
|
435
|
-
validateTypes: false,
|
|
436
|
-
generateSchemas: false,
|
|
437
|
-
},
|
|
438
|
-
}),
|
|
439
|
-
|
|
440
|
-
/**
|
|
441
|
-
* TypeScript development configuration
|
|
442
|
-
*/
|
|
443
|
-
typescript: (): DevelopmentConfig => ({
|
|
444
|
-
debug: {
|
|
445
|
-
enabled: true,
|
|
446
|
-
logLevel: 'info',
|
|
447
|
-
},
|
|
448
|
-
profiling: {
|
|
449
|
-
enabled: false,
|
|
450
|
-
},
|
|
451
|
-
inspection: {
|
|
452
|
-
enabled: true,
|
|
453
|
-
trackStats: false,
|
|
454
|
-
generateReports: false,
|
|
455
|
-
},
|
|
456
|
-
typescript: {
|
|
457
|
-
generateTypes: true,
|
|
458
|
-
validateTypes: true,
|
|
459
|
-
generateSchemas: true,
|
|
460
|
-
},
|
|
461
|
-
}),
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
// Export all components
|
|
465
|
-
export {
|
|
466
|
-
PerformanceProfiler,
|
|
467
|
-
PerformanceProfilingHelpers,
|
|
468
|
-
RouteDebugger,
|
|
469
|
-
RouteDebugHelpers,
|
|
470
|
-
RouteInspectionHelpers,
|
|
471
|
-
RouteInspector,
|
|
472
|
-
TypeScriptHelpers,
|
|
473
|
-
TypeScriptUtilities,
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
export type {
|
|
477
|
-
ProfileConfig as ProfilerConfig,
|
|
478
|
-
PerformanceMetrics as ProfilerMetrics,
|
|
479
|
-
RouteProfile as ProfilerRouteProfile,
|
|
480
|
-
} from './performance-profiler'
|
|
481
|
-
|
|
482
|
-
// Export types
|
|
483
|
-
export type {
|
|
484
|
-
RouteDebugConfig,
|
|
485
|
-
RouteDebugInfo,
|
|
486
|
-
} from './route-debugger'
|
|
487
|
-
|
|
488
|
-
export type {
|
|
489
|
-
RouteAnalysis as InspectorRouteAnalysis,
|
|
490
|
-
RouteMetadata as InspectorRouteMetadata,
|
|
491
|
-
RouteGroup,
|
|
492
|
-
} from './route-inspector'
|
|
493
|
-
|
|
494
|
-
export type {
|
|
495
|
-
TypeScriptConfig as TSConfig,
|
|
496
|
-
RouteTypeInfo as TSRouteTypeInfo,
|
|
497
|
-
TypeDefinition as TSTypeDefinition,
|
|
498
|
-
ValidationSchema as TSValidationSchema,
|
|
499
|
-
} from './typescript-utilities'
|