@stacksjs/bun-router 0.0.12 → 0.0.14
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/CHANGELOG.md +770 -0
- package/README.md +584 -261
- package/package.json +43 -48
- package/bin/cli.ts +0 -9
- package/dist/auth.d.ts +0 -134
- package/dist/cache/lru-cache.d.ts +0 -139
- package/dist/cache/middleware-memoization.d.ts +0 -151
- package/dist/cache/route-cache-warmer.d.ts +0 -161
- package/dist/cache/sqlite-cache.d.ts +0 -209
- package/dist/cache/streaming-cache.d.ts +0 -132
- package/dist/chunk-1mvtv6jw.js +0 -13012
- package/dist/cli/colors.d.ts +0 -15
- package/dist/cli/index.d.ts +0 -10
- package/dist/cli/middleware.d.ts +0 -31
- package/dist/cli/openapi.d.ts +0 -17
- package/dist/cli/router.d.ts +0 -15
- package/dist/cli/routes.d.ts +0 -29
- package/dist/cli/utils.d.ts +0 -74
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +0 -3195
- package/dist/config.d.ts +0 -7
- package/dist/container/container.d.ts +0 -273
- package/dist/container/contextual-binding.d.ts +0 -240
- package/dist/container/decorators.d.ts +0 -141
- package/dist/container/service-provider.d.ts +0 -285
- package/dist/development/hot-reload.d.ts +0 -187
- package/dist/development/index.d.ts +0 -167
- package/dist/development/performance-profiler.d.ts +0 -217
- package/dist/development/route-debugger.d.ts +0 -154
- package/dist/development/route-inspector.d.ts +0 -211
- package/dist/development/typescript-utilities.d.ts +0 -209
- package/dist/docs.d.ts +0 -11
- package/dist/errors/circuit-breaker.d.ts +0 -195
- package/dist/errors/error-handler.d.ts +0 -88
- package/dist/errors/error-reporting.d.ts +0 -144
- package/dist/errors/exceptions.d.ts +0 -184
- package/dist/errors/graceful-degradation.d.ts +0 -154
- package/dist/errors/index.d.ts +0 -9
- package/dist/errors/router-errors.d.ts +0 -110
- package/dist/file-serving/static-files.d.ts +0 -143
- package/dist/index.d.ts +0 -14
- package/dist/index.js +0 -13933
- package/dist/middleware/auth.d.ts +0 -63
- package/dist/middleware/content_security_policy.d.ts +0 -53
- package/dist/middleware/cors.d.ts +0 -5
- package/dist/middleware/csrf.d.ts +0 -7
- package/dist/middleware/ddos_protection.d.ts +0 -39
- package/dist/middleware/file_security.d.ts +0 -26
- package/dist/middleware/file_upload.d.ts +0 -38
- package/dist/middleware/helmet.d.ts +0 -54
- package/dist/middleware/index.d.ts +0 -44
- package/dist/middleware/input_validation.d.ts +0 -45
- package/dist/middleware/json_body.d.ts +0 -4
- package/dist/middleware/performance_alerting.d.ts +0 -87
- package/dist/middleware/performance_dashboard.d.ts +0 -87
- package/dist/middleware/performance_monitor.d.ts +0 -209
- package/dist/middleware/pipeline.d.ts +0 -131
- package/dist/middleware/rate_limit.d.ts +0 -36
- package/dist/middleware/request_id.d.ts +0 -4
- package/dist/middleware/request_signing.d.ts +0 -153
- package/dist/middleware/request_tracer.d.ts +0 -72
- package/dist/middleware/response_cache.d.ts +0 -97
- package/dist/middleware/security.d.ts +0 -69
- package/dist/middleware/security_suite.d.ts +0 -46
- package/dist/middleware/session.d.ts +0 -23
- package/dist/model-binding/index.d.ts +0 -2
- package/dist/model-binding/model-middleware.d.ts +0 -118
- package/dist/model-binding/model-registry.d.ts +0 -164
- package/dist/model-binding.d.ts +0 -185
- package/dist/model-resolver-factory.d.ts +0 -31
- package/dist/observability/correlation.d.ts +0 -187
- package/dist/observability/health-checks.d.ts +0 -186
- package/dist/observability/index.d.ts +0 -60
- package/dist/observability/integration.d.ts +0 -147
- package/dist/observability/metrics.d.ts +0 -184
- package/dist/observability/tracing.d.ts +0 -187
- package/dist/optimization/bun-utilities.d.ts +0 -224
- package/dist/query-builder-integration.d.ts +0 -36
- package/dist/request/context.d.ts +0 -34
- package/dist/request/enhanced-request.d.ts +0 -213
- package/dist/request/macros.d.ts +0 -300
- package/dist/response/macros.d.ts +0 -245
- package/dist/response/response-factory.d.ts +0 -133
- package/dist/router/api-routes.d.ts +0 -5
- package/dist/router/file-based-routing.d.ts +0 -118
- package/dist/router/file-streaming.d.ts +0 -5
- package/dist/router/fluent-router.d.ts +0 -315
- package/dist/router/fluent-routing.d.ts +0 -271
- package/dist/router/group-organization.d.ts +0 -5
- package/dist/router/handler-resolver.d.ts +0 -24
- package/dist/router/http-methods.d.ts +0 -10
- package/dist/router/index.d.ts +0 -114
- package/dist/router/middleware-groups.d.ts +0 -94
- package/dist/router/middleware-integration.d.ts +0 -112
- package/dist/router/middleware.d.ts +0 -5
- package/dist/router/model-binding.d.ts +0 -5
- package/dist/router/optimized-route-matching.d.ts +0 -6
- package/dist/router/route-building.d.ts +0 -5
- package/dist/router/route-compiler.d.ts +0 -153
- package/dist/router/route-matching.d.ts +0 -5
- package/dist/router/route-trie.d.ts +0 -114
- package/dist/router/router.d.ts +0 -294
- package/dist/router/server.d.ts +0 -5
- package/dist/router/validation-integration.d.ts +0 -170
- package/dist/router/view-rendering.d.ts +0 -5
- package/dist/router/websocket.d.ts +0 -5
- package/dist/routing/route-caching.d.ts +0 -129
- package/dist/routing/route-throttling.d.ts +0 -150
- package/dist/routing/subdomain-routing.d.ts +0 -206
- package/dist/session/database-store.d.ts +0 -51
- package/dist/session/file-store.d.ts +0 -22
- package/dist/session/index.d.ts +0 -106
- package/dist/session/memory-store.d.ts +0 -21
- package/dist/session/redis-store.d.ts +0 -31
- package/dist/streaming/index.d.ts +0 -3
- package/dist/streaming/sse-handler.d.ts +0 -138
- package/dist/streaming/stream-handler.d.ts +0 -114
- package/dist/testing/auth-testing.d.ts +0 -156
- package/dist/testing/file-upload-testing.d.ts +0 -190
- package/dist/testing/index.d.ts +0 -10
- package/dist/testing/middleware-testing.d.ts +0 -138
- package/dist/testing/model-binding-testing.d.ts +0 -186
- package/dist/testing/performance-testing.d.ts +0 -235
- package/dist/testing/test-client.d.ts +0 -117
- package/dist/testing/test-request.d.ts +0 -85
- package/dist/testing/test-response.d.ts +0 -90
- package/dist/testing/types.d.ts +0 -207
- package/dist/testing/websocket-testing.d.ts +0 -227
- package/dist/types/controller-types.d.ts +0 -208
- package/dist/types/core.d.ts +0 -543
- package/dist/types/middleware-types.d.ts +0 -227
- package/dist/types/request-response-augmentation.d.ts +0 -261
- package/dist/types/route-inference.d.ts +0 -168
- package/dist/types.d.ts +0 -1782
- package/dist/url.d.ts +0 -56
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/query-preservation.d.ts +0 -48
- package/dist/utils.d.ts +0 -69
- package/dist/validation/validator.d.ts +0 -140
- package/dist/websocket/clustering.d.ts +0 -185
- package/src/auth.ts +0 -469
- 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 -740
- package/src/container/contextual-binding.ts +0 -603
- package/src/container/decorators.ts +0 -359
- 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 -732
- 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 -621
- package/src/errors/index.ts +0 -21
- package/src/errors/router-errors.ts +0 -632
- package/src/file-serving/static-files.ts +0 -581
- package/src/index.ts +0 -14
- package/src/middleware/auth.ts +0 -219
- package/src/middleware/content_security_policy.ts +0 -215
- package/src/middleware/cors.ts +0 -74
- package/src/middleware/csrf.ts +0 -108
- package/src/middleware/ddos_protection.ts +0 -255
- package/src/middleware/file_security.ts +0 -191
- package/src/middleware/file_upload.ts +0 -264
- package/src/middleware/helmet.ts +0 -268
- package/src/middleware/index.ts +0 -117
- package/src/middleware/input_validation.ts +0 -449
- package/src/middleware/json_body.ts +0 -37
- package/src/middleware/performance_alerting.ts +0 -538
- package/src/middleware/performance_dashboard.ts +0 -661
- package/src/middleware/performance_monitor.ts +0 -943
- package/src/middleware/pipeline.ts +0 -489
- package/src/middleware/rate_limit.ts +0 -245
- package/src/middleware/request_id.ts +0 -36
- package/src/middleware/request_signing.ts +0 -636
- package/src/middleware/request_tracer.ts +0 -636
- package/src/middleware/response_cache.ts +0 -743
- 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 -62
- package/src/request/enhanced-request.ts +0 -857
- package/src/request/macros.ts +0 -688
- package/src/response/macros.ts +0 -612
- package/src/response/response-factory.ts +0 -596
- package/src/router/api-routes.ts +0 -243
- package/src/router/file-based-routing.ts +0 -670
- package/src/router/file-streaming.ts +0 -372
- package/src/router/fluent-router.ts +0 -927
- package/src/router/fluent-routing.ts +0 -797
- package/src/router/group-organization.ts +0 -213
- package/src/router/handler-resolver.ts +0 -291
- package/src/router/http-methods.ts +0 -377
- package/src/router/index.ts +0 -187
- package/src/router/middleware-groups.ts +0 -222
- package/src/router/middleware-integration.ts +0 -399
- package/src/router/middleware.ts +0 -231
- package/src/router/model-binding.ts +0 -215
- package/src/router/optimized-route-matching.ts +0 -253
- package/src/router/route-building.ts +0 -212
- package/src/router/route-compiler.ts +0 -702
- package/src/router/route-matching.ts +0 -349
- package/src/router/route-trie.ts +0 -464
- package/src/router/router.ts +0 -1581
- package/src/router/server.ts +0 -462
- package/src/router/validation-integration.ts +0 -443
- 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 -446
- 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 -419
- package/src/types/request-response-augmentation.ts +0 -489
- package/src/types/route-inference.ts +0 -357
- package/src/types.ts +0 -2055
- package/src/url.ts +0 -126
- package/src/utils/index.ts +0 -1
- package/src/utils/query-preservation.ts +0 -201
- package/src/utils.ts +0 -327
- package/src/validation/validator.ts +0 -685
- package/src/websocket/clustering.ts +0 -762
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Development Tools - Performance Profiler
|
|
3
|
-
*
|
|
4
|
-
* Performance profiling, benchmarking, and optimization analysis
|
|
5
|
-
*/
|
|
6
|
-
import type { EnhancedRequest } from '../types';
|
|
7
|
-
export interface ProfileConfig {
|
|
8
|
-
enabled?: boolean;
|
|
9
|
-
sampleRate?: number;
|
|
10
|
-
includeMemory?: boolean;
|
|
11
|
-
includeCpu?: boolean;
|
|
12
|
-
includeGc?: boolean;
|
|
13
|
-
trackSlowQueries?: boolean;
|
|
14
|
-
slowQueryThreshold?: number;
|
|
15
|
-
maxProfiles?: number;
|
|
16
|
-
outputFormat?: 'console' | 'json' | 'flamegraph';
|
|
17
|
-
}
|
|
18
|
-
export interface ProfilePoint {
|
|
19
|
-
name: string;
|
|
20
|
-
timestamp: number;
|
|
21
|
-
duration?: number;
|
|
22
|
-
memory?: NodeJS.MemoryUsage;
|
|
23
|
-
cpu?: NodeJS.CpuUsage;
|
|
24
|
-
metadata?: Record<string, any>;
|
|
25
|
-
}
|
|
26
|
-
export interface RouteProfile {
|
|
27
|
-
id: string;
|
|
28
|
-
requestId: string;
|
|
29
|
-
method: string;
|
|
30
|
-
path: string;
|
|
31
|
-
pattern: string;
|
|
32
|
-
startTime: number;
|
|
33
|
-
endTime?: number;
|
|
34
|
-
totalDuration?: number;
|
|
35
|
-
phases: {
|
|
36
|
-
routeMatching: ProfilePoint[];
|
|
37
|
-
middlewareExecution: ProfilePoint[];
|
|
38
|
-
handlerExecution: ProfilePoint[];
|
|
39
|
-
responseGeneration: ProfilePoint[];
|
|
40
|
-
};
|
|
41
|
-
memory: {
|
|
42
|
-
initial: NodeJS.MemoryUsage;
|
|
43
|
-
peak: NodeJS.MemoryUsage;
|
|
44
|
-
final?: NodeJS.MemoryUsage;
|
|
45
|
-
allocations: number;
|
|
46
|
-
};
|
|
47
|
-
cpu: {
|
|
48
|
-
initial: NodeJS.CpuUsage;
|
|
49
|
-
final?: NodeJS.CpuUsage;
|
|
50
|
-
userTime: number;
|
|
51
|
-
systemTime: number;
|
|
52
|
-
};
|
|
53
|
-
gc?: {
|
|
54
|
-
collections: number;
|
|
55
|
-
duration: number;
|
|
56
|
-
reclaimedMemory: number;
|
|
57
|
-
};
|
|
58
|
-
queries?: Array<{
|
|
59
|
-
query: string;
|
|
60
|
-
duration: number;
|
|
61
|
-
timestamp: number;
|
|
62
|
-
}>;
|
|
63
|
-
warnings: string[];
|
|
64
|
-
recommendations: string[];
|
|
65
|
-
}
|
|
66
|
-
export interface PerformanceMetrics {
|
|
67
|
-
averageResponseTime: number;
|
|
68
|
-
p50ResponseTime: number;
|
|
69
|
-
p95ResponseTime: number;
|
|
70
|
-
p99ResponseTime: number;
|
|
71
|
-
requestsPerSecond: number;
|
|
72
|
-
memoryUsageAverage: number;
|
|
73
|
-
memoryUsagePeak: number;
|
|
74
|
-
cpuUsageAverage: number;
|
|
75
|
-
gcPressure: number;
|
|
76
|
-
slowestRoutes: Array<{
|
|
77
|
-
pattern: string;
|
|
78
|
-
averageTime: number;
|
|
79
|
-
count: number;
|
|
80
|
-
}>;
|
|
81
|
-
memoryLeaks: Array<{
|
|
82
|
-
route: string;
|
|
83
|
-
memoryGrowth: number;
|
|
84
|
-
requests: number;
|
|
85
|
-
}>;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Performance profiler for route analysis
|
|
89
|
-
*/
|
|
90
|
-
export declare class PerformanceProfiler {
|
|
91
|
-
private config;
|
|
92
|
-
private profiles;
|
|
93
|
-
private activeProfiles;
|
|
94
|
-
private metrics;
|
|
95
|
-
private gcObserver?;
|
|
96
|
-
private memoryBaseline;
|
|
97
|
-
constructor(config?: ProfileConfig);
|
|
98
|
-
/**
|
|
99
|
-
* Start profiling a request
|
|
100
|
-
*/
|
|
101
|
-
startProfiling(req: EnhancedRequest, pattern: string): string | null;
|
|
102
|
-
/**
|
|
103
|
-
* Record a profile point
|
|
104
|
-
*/
|
|
105
|
-
recordPoint(profileId: string, phase: keyof RouteProfile['phases'], name: string, metadata?: Record<string, any>): void;
|
|
106
|
-
/**
|
|
107
|
-
* Start timing a specific operation
|
|
108
|
-
*/
|
|
109
|
-
startTiming(profileId: string, phase: keyof RouteProfile['phases'], name: string): string;
|
|
110
|
-
/**
|
|
111
|
-
* End timing a specific operation
|
|
112
|
-
*/
|
|
113
|
-
endTiming(profileId: string, phase: keyof RouteProfile['phases'], timingId: string): void;
|
|
114
|
-
/**
|
|
115
|
-
* Record database query
|
|
116
|
-
*/
|
|
117
|
-
recordQuery(profileId: string, query: string, duration: number): void;
|
|
118
|
-
/**
|
|
119
|
-
* Finish profiling a request
|
|
120
|
-
*/
|
|
121
|
-
finishProfiling(profileId: string, _response?: Response): RouteProfile | null;
|
|
122
|
-
/**
|
|
123
|
-
* Get profile by ID
|
|
124
|
-
*/
|
|
125
|
-
getProfile(profileId: string): RouteProfile | undefined;
|
|
126
|
-
/**
|
|
127
|
-
* Get all profiles
|
|
128
|
-
*/
|
|
129
|
-
getProfiles(filter?: {
|
|
130
|
-
method?: string;
|
|
131
|
-
pattern?: string;
|
|
132
|
-
minDuration?: number;
|
|
133
|
-
maxDuration?: number;
|
|
134
|
-
hasWarnings?: boolean;
|
|
135
|
-
}): RouteProfile[];
|
|
136
|
-
/**
|
|
137
|
-
* Get performance metrics
|
|
138
|
-
*/
|
|
139
|
-
getMetrics(): PerformanceMetrics;
|
|
140
|
-
/**
|
|
141
|
-
* Generate performance report
|
|
142
|
-
*/
|
|
143
|
-
generateReport(): string;
|
|
144
|
-
/**
|
|
145
|
-
* Clear all profiles and reset metrics
|
|
146
|
-
*/
|
|
147
|
-
clear(): void;
|
|
148
|
-
/**
|
|
149
|
-
* Determine if request should be profiled
|
|
150
|
-
*/
|
|
151
|
-
private shouldProfile;
|
|
152
|
-
/**
|
|
153
|
-
* Generate unique profile ID
|
|
154
|
-
*/
|
|
155
|
-
private generateProfileId;
|
|
156
|
-
/**
|
|
157
|
-
* Extract request ID from request
|
|
158
|
-
*/
|
|
159
|
-
private extractRequestId;
|
|
160
|
-
/**
|
|
161
|
-
* Initialize metrics structure
|
|
162
|
-
*/
|
|
163
|
-
private initializeMetrics;
|
|
164
|
-
/**
|
|
165
|
-
* Setup garbage collection observer
|
|
166
|
-
*/
|
|
167
|
-
private setupGcObserver;
|
|
168
|
-
/**
|
|
169
|
-
* Generate recommendations for a profile
|
|
170
|
-
*/
|
|
171
|
-
private generateRecommendations;
|
|
172
|
-
/**
|
|
173
|
-
* Update performance metrics
|
|
174
|
-
*/
|
|
175
|
-
private updateMetrics;
|
|
176
|
-
/**
|
|
177
|
-
* Cleanup old profiles
|
|
178
|
-
*/
|
|
179
|
-
private cleanupProfiles;
|
|
180
|
-
/**
|
|
181
|
-
* Log profile information
|
|
182
|
-
*/
|
|
183
|
-
private logProfile;
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Initialize global performance profiler
|
|
187
|
-
*/
|
|
188
|
-
export declare function initializePerformanceProfiler(config?: ProfileConfig): PerformanceProfiler;
|
|
189
|
-
/**
|
|
190
|
-
* Get global performance profiler
|
|
191
|
-
*/
|
|
192
|
-
export declare function getPerformanceProfiler(): PerformanceProfiler | null;
|
|
193
|
-
/**
|
|
194
|
-
* Performance profiling middleware factory
|
|
195
|
-
*/
|
|
196
|
-
export declare function createPerformanceProfilingMiddleware(config?: ProfileConfig): (req: EnhancedRequest, next: () => Promise<Response>) => Promise<Response>;
|
|
197
|
-
/**
|
|
198
|
-
* Performance profiling helpers
|
|
199
|
-
*/
|
|
200
|
-
export declare const PerformanceProfilingHelpers: {
|
|
201
|
-
/**
|
|
202
|
-
* Record timing from request context
|
|
203
|
-
*/
|
|
204
|
-
startTiming: (req: EnhancedRequest, phase: keyof RouteProfile["phases"], name: string) => string | null;
|
|
205
|
-
/**
|
|
206
|
-
* End timing from request context
|
|
207
|
-
*/
|
|
208
|
-
endTiming: (req: EnhancedRequest, phase: keyof RouteProfile["phases"], timingId: string) => void;
|
|
209
|
-
/**
|
|
210
|
-
* Record database query from request context
|
|
211
|
-
*/
|
|
212
|
-
recordQuery: (req: EnhancedRequest, query: string, duration: number) => void;
|
|
213
|
-
/**
|
|
214
|
-
* Record profile point from request context
|
|
215
|
-
*/
|
|
216
|
-
recordPoint: (req: EnhancedRequest, phase: keyof RouteProfile["phases"], name: string, metadata?: Record<string, any>) => void;
|
|
217
|
-
};
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Development Tools - Route Debugging
|
|
3
|
-
*
|
|
4
|
-
* Comprehensive route debugging with detailed logging and inspection
|
|
5
|
-
*/
|
|
6
|
-
import type { EnhancedRequest } from '../types';
|
|
7
|
-
export interface RouteDebugConfig {
|
|
8
|
-
enabled?: boolean;
|
|
9
|
-
logLevel?: 'debug' | 'info' | 'warn' | 'error';
|
|
10
|
-
includeHeaders?: boolean;
|
|
11
|
-
includeBody?: boolean;
|
|
12
|
-
includeParams?: boolean;
|
|
13
|
-
includeQuery?: boolean;
|
|
14
|
-
includeTimings?: boolean;
|
|
15
|
-
maxBodySize?: number;
|
|
16
|
-
colorOutput?: boolean;
|
|
17
|
-
outputFormat?: 'console' | 'json' | 'structured';
|
|
18
|
-
}
|
|
19
|
-
export interface RouteMatchAttempt {
|
|
20
|
-
pattern: string;
|
|
21
|
-
method: string;
|
|
22
|
-
matched: boolean;
|
|
23
|
-
reason?: string;
|
|
24
|
-
params?: Record<string, string>;
|
|
25
|
-
score?: number;
|
|
26
|
-
timing: number;
|
|
27
|
-
}
|
|
28
|
-
export interface RouteDebugInfo {
|
|
29
|
-
requestId: string;
|
|
30
|
-
timestamp: number;
|
|
31
|
-
method: string;
|
|
32
|
-
url: string;
|
|
33
|
-
path: string;
|
|
34
|
-
headers?: Record<string, string>;
|
|
35
|
-
query?: Record<string, string>;
|
|
36
|
-
params?: Record<string, string>;
|
|
37
|
-
body?: any;
|
|
38
|
-
matchAttempts: RouteMatchAttempt[];
|
|
39
|
-
finalMatch?: {
|
|
40
|
-
pattern: string;
|
|
41
|
-
handler: string;
|
|
42
|
-
middleware: string[];
|
|
43
|
-
params: Record<string, string>;
|
|
44
|
-
};
|
|
45
|
-
timings: {
|
|
46
|
-
routeMatching: number;
|
|
47
|
-
middlewareExecution: number;
|
|
48
|
-
handlerExecution: number;
|
|
49
|
-
total: number;
|
|
50
|
-
};
|
|
51
|
-
performance: {
|
|
52
|
-
memoryUsage: NodeJS.MemoryUsage;
|
|
53
|
-
cpuTime: number;
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Route debugger for development
|
|
58
|
-
*/
|
|
59
|
-
export declare class RouteDebugger {
|
|
60
|
-
private config;
|
|
61
|
-
private debugSessions;
|
|
62
|
-
private routePatterns;
|
|
63
|
-
constructor(config?: RouteDebugConfig);
|
|
64
|
-
/**
|
|
65
|
-
* Start debugging a request
|
|
66
|
-
*/
|
|
67
|
-
startDebugging(req: EnhancedRequest): string;
|
|
68
|
-
/**
|
|
69
|
-
* Record route match attempt
|
|
70
|
-
*/
|
|
71
|
-
recordMatchAttempt(requestId: string, pattern: string, method: string, matched: boolean, reason?: string, params?: Record<string, string>): void;
|
|
72
|
-
/**
|
|
73
|
-
* Record final route match
|
|
74
|
-
*/
|
|
75
|
-
recordFinalMatch(requestId: string, pattern: string, handler: (..._args: any[]) => any, middleware: ((..._args: any[]) => any)[], params: Record<string, string>): void;
|
|
76
|
-
/**
|
|
77
|
-
* Record timing information
|
|
78
|
-
*/
|
|
79
|
-
recordTiming(requestId: string, phase: keyof RouteDebugInfo['timings'], duration: number): void;
|
|
80
|
-
/**
|
|
81
|
-
* Finish debugging session
|
|
82
|
-
*/
|
|
83
|
-
finishDebugging(requestId: string, response?: Response): RouteDebugInfo | null;
|
|
84
|
-
/**
|
|
85
|
-
* Register route pattern for debugging
|
|
86
|
-
*/
|
|
87
|
-
registerRoute(method: string, pattern: string, handler: (...args: any[]) => any, middleware?: ((...args: any[]) => any)[]): void;
|
|
88
|
-
/**
|
|
89
|
-
* Get all registered routes
|
|
90
|
-
*/
|
|
91
|
-
getRegisteredRoutes(): Array<{
|
|
92
|
-
method: string;
|
|
93
|
-
pattern: string;
|
|
94
|
-
handler: string;
|
|
95
|
-
middleware: string[];
|
|
96
|
-
}>;
|
|
97
|
-
/**
|
|
98
|
-
* Get debug session
|
|
99
|
-
*/
|
|
100
|
-
getDebugSession(requestId: string): RouteDebugInfo | undefined;
|
|
101
|
-
/**
|
|
102
|
-
* Clear all debug sessions
|
|
103
|
-
*/
|
|
104
|
-
clearSessions(): void;
|
|
105
|
-
/**
|
|
106
|
-
* Generate unique request ID
|
|
107
|
-
*/
|
|
108
|
-
private generateRequestId;
|
|
109
|
-
/**
|
|
110
|
-
* Capture request body safely
|
|
111
|
-
*/
|
|
112
|
-
private captureRequestBody;
|
|
113
|
-
/**
|
|
114
|
-
* Log debug message
|
|
115
|
-
*/
|
|
116
|
-
private log;
|
|
117
|
-
/**
|
|
118
|
-
* Log debugging summary
|
|
119
|
-
*/
|
|
120
|
-
private logSummary;
|
|
121
|
-
/**
|
|
122
|
-
* Check if should log at level
|
|
123
|
-
*/
|
|
124
|
-
private shouldLog;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Initialize global route debugger
|
|
128
|
-
*/
|
|
129
|
-
export declare function initializeRouteDebugger(config?: RouteDebugConfig): RouteDebugger;
|
|
130
|
-
/**
|
|
131
|
-
* Get global route debugger
|
|
132
|
-
*/
|
|
133
|
-
export declare function getRouteDebugger(): RouteDebugger | null;
|
|
134
|
-
/**
|
|
135
|
-
* Route debugging middleware factory
|
|
136
|
-
*/
|
|
137
|
-
export declare function createRouteDebugMiddleware(config?: RouteDebugConfig): (req: EnhancedRequest, next: () => Promise<Response>) => Promise<Response>;
|
|
138
|
-
/**
|
|
139
|
-
* Route debugging helpers
|
|
140
|
-
*/
|
|
141
|
-
export declare const RouteDebugHelpers: {
|
|
142
|
-
/**
|
|
143
|
-
* Record route match attempt from request context
|
|
144
|
-
*/
|
|
145
|
-
recordMatch: (req: EnhancedRequest, pattern: string, method: string, matched: boolean, reason?: string, params?: Record<string, string>) => void;
|
|
146
|
-
/**
|
|
147
|
-
* Record final match from request context
|
|
148
|
-
*/
|
|
149
|
-
recordFinalMatch: (req: EnhancedRequest, pattern: string, handler: (...args: any[]) => any, middleware: ((...args: any[]) => any)[], params: Record<string, string>) => void;
|
|
150
|
-
/**
|
|
151
|
-
* Record timing from request context
|
|
152
|
-
*/
|
|
153
|
-
recordTiming: (req: EnhancedRequest, phase: keyof RouteDebugInfo["timings"], duration: number) => void;
|
|
154
|
-
};
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Development Tools - Route Inspector
|
|
3
|
-
*
|
|
4
|
-
* Route listing, metadata inspection, and route analysis
|
|
5
|
-
*/
|
|
6
|
-
export interface RouteMetadata {
|
|
7
|
-
id: string;
|
|
8
|
-
method: string;
|
|
9
|
-
pattern: string;
|
|
10
|
-
originalPattern: string;
|
|
11
|
-
handler: {
|
|
12
|
-
name: string;
|
|
13
|
-
source?: string;
|
|
14
|
-
parameters: string[];
|
|
15
|
-
isAsync: boolean;
|
|
16
|
-
};
|
|
17
|
-
middleware: Array<{
|
|
18
|
-
name: string;
|
|
19
|
-
source?: string;
|
|
20
|
-
order: number;
|
|
21
|
-
}>;
|
|
22
|
-
params: Array<{
|
|
23
|
-
name: string;
|
|
24
|
-
type: 'string' | 'number' | 'uuid' | 'slug';
|
|
25
|
-
optional: boolean;
|
|
26
|
-
constraint?: string;
|
|
27
|
-
}>;
|
|
28
|
-
constraints: Record<string, any>;
|
|
29
|
-
cache?: {
|
|
30
|
-
enabled: boolean;
|
|
31
|
-
ttl?: number;
|
|
32
|
-
tags?: string[];
|
|
33
|
-
};
|
|
34
|
-
throttling?: {
|
|
35
|
-
enabled: boolean;
|
|
36
|
-
limit: number;
|
|
37
|
-
window: number;
|
|
38
|
-
};
|
|
39
|
-
validation?: {
|
|
40
|
-
rules: Record<string, string>;
|
|
41
|
-
messages?: Record<string, string>;
|
|
42
|
-
};
|
|
43
|
-
metadata: {
|
|
44
|
-
registeredAt: number;
|
|
45
|
-
file?: string;
|
|
46
|
-
line?: number;
|
|
47
|
-
group?: string;
|
|
48
|
-
name?: string;
|
|
49
|
-
description?: string;
|
|
50
|
-
};
|
|
51
|
-
stats: {
|
|
52
|
-
hits: number;
|
|
53
|
-
averageResponseTime: number;
|
|
54
|
-
lastAccessed?: number;
|
|
55
|
-
errors: number;
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
export interface RouteGroup {
|
|
59
|
-
name: string;
|
|
60
|
-
prefix: string;
|
|
61
|
-
middleware: string[];
|
|
62
|
-
routes: RouteMetadata[];
|
|
63
|
-
subgroups: RouteGroup[];
|
|
64
|
-
}
|
|
65
|
-
export interface RouteAnalysis {
|
|
66
|
-
totalRoutes: number;
|
|
67
|
-
routesByMethod: Record<string, number>;
|
|
68
|
-
duplicatePatterns: Array<{
|
|
69
|
-
pattern: string;
|
|
70
|
-
routes: RouteMetadata[];
|
|
71
|
-
}>;
|
|
72
|
-
unusedRoutes: RouteMetadata[];
|
|
73
|
-
slowRoutes: RouteMetadata[];
|
|
74
|
-
errorProneRoutes: RouteMetadata[];
|
|
75
|
-
middlewareUsage: Record<string, number>;
|
|
76
|
-
parameterAnalysis: {
|
|
77
|
-
mostUsedParams: Array<{
|
|
78
|
-
name: string;
|
|
79
|
-
count: number;
|
|
80
|
-
}>;
|
|
81
|
-
parameterTypes: Record<string, number>;
|
|
82
|
-
};
|
|
83
|
-
recommendations: string[];
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Route inspector for development and debugging
|
|
87
|
-
*/
|
|
88
|
-
export declare class RouteInspector {
|
|
89
|
-
private routes;
|
|
90
|
-
private groups;
|
|
91
|
-
private routeStats;
|
|
92
|
-
/**
|
|
93
|
-
* Register a route for inspection
|
|
94
|
-
*/
|
|
95
|
-
registerRoute(method: string, pattern: string, handler: (...args: any[]) => any, middleware?: Array<(...args: any[]) => any>, options?: Partial<RouteMetadata>): string;
|
|
96
|
-
/**
|
|
97
|
-
* Get all registered routes
|
|
98
|
-
*/
|
|
99
|
-
getRoutes(filter?: {
|
|
100
|
-
method?: string;
|
|
101
|
-
pattern?: string;
|
|
102
|
-
group?: string;
|
|
103
|
-
hasMiddleware?: string;
|
|
104
|
-
hasParams?: boolean;
|
|
105
|
-
}): RouteMetadata[];
|
|
106
|
-
/**
|
|
107
|
-
* Get route by ID
|
|
108
|
-
*/
|
|
109
|
-
getRoute(id: string): RouteMetadata | undefined;
|
|
110
|
-
/**
|
|
111
|
-
* Find routes matching a request
|
|
112
|
-
*/
|
|
113
|
-
findMatchingRoutes(method: string, path: string): RouteMetadata[];
|
|
114
|
-
/**
|
|
115
|
-
* Register route group
|
|
116
|
-
*/
|
|
117
|
-
registerGroup(name: string, prefix: string, middleware?: Array<(...args: any[]) => any>): void;
|
|
118
|
-
/**
|
|
119
|
-
* Get route groups
|
|
120
|
-
*/
|
|
121
|
-
getGroups(): RouteGroup[];
|
|
122
|
-
/**
|
|
123
|
-
* Record route access for statistics
|
|
124
|
-
*/
|
|
125
|
-
recordRouteAccess(routeId: string, responseTime: number, error?: boolean): void;
|
|
126
|
-
/**
|
|
127
|
-
* Analyze routes for insights and recommendations
|
|
128
|
-
*/
|
|
129
|
-
analyzeRoutes(): RouteAnalysis;
|
|
130
|
-
/**
|
|
131
|
-
* Export routes in various formats
|
|
132
|
-
*/
|
|
133
|
-
exportRoutes(format?: 'json' | 'csv' | 'markdown' | 'openapi'): string;
|
|
134
|
-
/**
|
|
135
|
-
* Clear all routes and statistics
|
|
136
|
-
*/
|
|
137
|
-
clear(): void;
|
|
138
|
-
/**
|
|
139
|
-
* Generate unique route ID
|
|
140
|
-
*/
|
|
141
|
-
private generateRouteId;
|
|
142
|
-
/**
|
|
143
|
-
* Extract function source code
|
|
144
|
-
*/
|
|
145
|
-
private getFunctionSource;
|
|
146
|
-
/**
|
|
147
|
-
* Extract function parameters
|
|
148
|
-
*/
|
|
149
|
-
private extractFunctionParameters;
|
|
150
|
-
/**
|
|
151
|
-
* Check if function is async
|
|
152
|
-
*/
|
|
153
|
-
private isAsyncFunction;
|
|
154
|
-
/**
|
|
155
|
-
* Extract route parameters from pattern
|
|
156
|
-
*/
|
|
157
|
-
private extractRouteParameters;
|
|
158
|
-
/**
|
|
159
|
-
* Infer parameter type from constraint
|
|
160
|
-
*/
|
|
161
|
-
private inferParameterType;
|
|
162
|
-
/**
|
|
163
|
-
* Get call site information
|
|
164
|
-
*/
|
|
165
|
-
private getCallSiteInfo;
|
|
166
|
-
/**
|
|
167
|
-
* Convert route pattern to regex
|
|
168
|
-
*/
|
|
169
|
-
private patternToRegex;
|
|
170
|
-
/**
|
|
171
|
-
* Generate recommendations based on analysis
|
|
172
|
-
*/
|
|
173
|
-
private generateRecommendations;
|
|
174
|
-
/**
|
|
175
|
-
* Export routes to CSV format
|
|
176
|
-
*/
|
|
177
|
-
private exportToCsv;
|
|
178
|
-
/**
|
|
179
|
-
* Export routes to Markdown format
|
|
180
|
-
*/
|
|
181
|
-
private exportToMarkdown;
|
|
182
|
-
/**
|
|
183
|
-
* Export routes to OpenAPI format
|
|
184
|
-
*/
|
|
185
|
-
private exportToOpenAPI;
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Initialize global route inspector
|
|
189
|
-
*/
|
|
190
|
-
export declare function initializeRouteInspector(): RouteInspector;
|
|
191
|
-
/**
|
|
192
|
-
* Get global route inspector
|
|
193
|
-
*/
|
|
194
|
-
export declare function getRouteInspector(): RouteInspector | null;
|
|
195
|
-
/**
|
|
196
|
-
* Route inspection helpers
|
|
197
|
-
*/
|
|
198
|
-
export declare const RouteInspectionHelpers: {
|
|
199
|
-
/**
|
|
200
|
-
* List all routes in a formatted table
|
|
201
|
-
*/
|
|
202
|
-
listRoutes: (filter?: Parameters<RouteInspector["getRoutes"]>[0]) => void;
|
|
203
|
-
/**
|
|
204
|
-
* Analyze routes and show recommendations
|
|
205
|
-
*/
|
|
206
|
-
analyzeRoutes: () => void;
|
|
207
|
-
/**
|
|
208
|
-
* Export routes to file
|
|
209
|
-
*/
|
|
210
|
-
exportRoutes: (format?: "json" | "csv" | "markdown" | "openapi", filename?: string) => void;
|
|
211
|
-
};
|