@stacksjs/bun-router 0.0.4 → 0.0.6
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/README.md +2 -2
- package/dist/auth.d.ts +134 -0
- package/dist/cache/lru-cache.d.ts +139 -0
- package/dist/cache/middleware-memoization.d.ts +151 -0
- package/dist/cache/route-cache-warmer.d.ts +161 -0
- package/dist/cache/sqlite-cache.d.ts +209 -0
- package/dist/cache/streaming-cache.d.ts +132 -0
- package/dist/chunk-jhsk5c5b.js +15758 -0
- package/dist/cli/colors.d.ts +15 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/middleware.d.ts +31 -0
- package/dist/cli/openapi.d.ts +17 -0
- package/dist/cli/router.d.ts +15 -0
- package/dist/cli/routes.d.ts +29 -0
- package/dist/cli/utils.d.ts +74 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +2 -2
- package/dist/config.d.ts +7 -0
- package/dist/container/container.d.ts +273 -0
- package/dist/container/contextual-binding.d.ts +240 -0
- package/dist/container/decorators.d.ts +141 -0
- package/dist/container/service-provider.d.ts +285 -0
- package/dist/development/hot-reload.d.ts +187 -0
- package/dist/development/index.d.ts +167 -0
- package/dist/development/performance-profiler.d.ts +217 -0
- package/dist/development/route-debugger.d.ts +154 -0
- package/dist/development/route-inspector.d.ts +211 -0
- package/dist/development/typescript-utilities.d.ts +209 -0
- package/dist/docs.d.ts +11 -0
- package/dist/errors/circuit-breaker.d.ts +195 -0
- package/dist/errors/error-handler.d.ts +88 -0
- package/dist/errors/error-reporting.d.ts +144 -0
- package/dist/errors/exceptions.d.ts +184 -0
- package/dist/errors/graceful-degradation.d.ts +154 -0
- package/dist/errors/index.d.ts +9 -0
- package/dist/errors/router-errors.d.ts +110 -0
- package/dist/file-serving/static-files.d.ts +143 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +320 -206
- package/dist/middleware/auth.d.ts +63 -0
- package/dist/middleware/content_security_policy.d.ts +53 -0
- package/dist/middleware/cors.d.ts +5 -0
- package/dist/middleware/csrf.d.ts +7 -0
- package/dist/middleware/ddos_protection.d.ts +39 -0
- package/dist/middleware/file_security.d.ts +26 -0
- package/dist/middleware/file_upload.d.ts +38 -0
- package/dist/middleware/helmet.d.ts +54 -0
- package/dist/middleware/index.d.ts +44 -0
- package/dist/middleware/input_validation.d.ts +45 -0
- package/dist/middleware/json_body.d.ts +4 -0
- package/dist/middleware/performance_alerting.d.ts +87 -0
- package/dist/middleware/performance_dashboard.d.ts +87 -0
- package/dist/middleware/performance_monitor.d.ts +209 -0
- package/dist/middleware/pipeline.d.ts +131 -0
- package/dist/middleware/rate_limit.d.ts +36 -0
- package/dist/middleware/request_id.d.ts +4 -0
- package/dist/middleware/request_signing.d.ts +153 -0
- package/dist/middleware/request_tracer.d.ts +72 -0
- package/dist/middleware/response_cache.d.ts +97 -0
- package/dist/middleware/security.d.ts +69 -0
- package/dist/middleware/security_suite.d.ts +46 -0
- package/dist/middleware/session.d.ts +23 -0
- package/dist/model-binding/index.d.ts +2 -0
- package/dist/model-binding/model-middleware.d.ts +118 -0
- package/dist/model-binding/model-registry.d.ts +164 -0
- package/dist/model-binding.d.ts +185 -0
- package/dist/model-resolver-factory.d.ts +31 -0
- package/dist/observability/correlation.d.ts +187 -0
- package/dist/observability/health-checks.d.ts +186 -0
- package/dist/observability/index.d.ts +60 -0
- package/dist/observability/integration.d.ts +147 -0
- package/dist/observability/metrics.d.ts +184 -0
- package/dist/observability/tracing.d.ts +187 -0
- package/dist/optimization/bun-utilities.d.ts +224 -0
- package/dist/query-builder-integration.d.ts +36 -0
- package/dist/request/context.d.ts +34 -0
- package/dist/request/enhanced-request.d.ts +213 -0
- package/dist/request/macros.d.ts +300 -0
- package/dist/response/macros.d.ts +245 -0
- package/dist/response/response-factory.d.ts +133 -0
- package/dist/router/api-routes.d.ts +5 -0
- package/dist/router/file-based-routing.d.ts +118 -0
- package/dist/router/file-streaming.d.ts +5 -0
- package/dist/router/fluent-router.d.ts +315 -0
- package/dist/router/fluent-routing.d.ts +271 -0
- package/dist/router/group-organization.d.ts +5 -0
- package/dist/router/handler-resolver.d.ts +24 -0
- package/dist/router/http-methods.d.ts +10 -0
- package/dist/router/index.d.ts +113 -0
- package/dist/router/middleware-groups.d.ts +94 -0
- package/dist/router/middleware-integration.d.ts +112 -0
- package/dist/router/middleware.d.ts +5 -0
- package/dist/router/model-binding.d.ts +5 -0
- package/dist/router/optimized-route-matching.d.ts +6 -0
- package/dist/router/route-building.d.ts +5 -0
- package/dist/router/route-compiler.d.ts +153 -0
- package/dist/router/route-matching.d.ts +5 -0
- package/dist/router/route-trie.d.ts +114 -0
- package/dist/router/router.d.ts +276 -0
- package/dist/router/server.d.ts +5 -0
- package/dist/router/validation-integration.d.ts +170 -0
- package/dist/router/view-rendering.d.ts +5 -0
- package/dist/router/websocket.d.ts +5 -0
- package/dist/routing/route-caching.d.ts +129 -0
- package/dist/routing/route-throttling.d.ts +150 -0
- package/dist/routing/subdomain-routing.d.ts +206 -0
- package/dist/session/database-store.d.ts +51 -0
- package/dist/session/file-store.d.ts +22 -0
- package/dist/session/index.d.ts +106 -0
- package/dist/session/memory-store.d.ts +21 -0
- package/dist/session/redis-store.d.ts +31 -0
- package/dist/streaming/index.d.ts +3 -0
- package/dist/streaming/sse-handler.d.ts +138 -0
- package/dist/streaming/stream-handler.d.ts +114 -0
- package/dist/testing/auth-testing.d.ts +156 -0
- package/dist/testing/file-upload-testing.d.ts +190 -0
- package/dist/testing/index.d.ts +10 -0
- package/dist/testing/middleware-testing.d.ts +138 -0
- package/dist/testing/model-binding-testing.d.ts +186 -0
- package/dist/testing/performance-testing.d.ts +235 -0
- package/dist/testing/test-client.d.ts +117 -0
- package/dist/testing/test-request.d.ts +85 -0
- package/dist/testing/test-response.d.ts +90 -0
- package/dist/testing/types.d.ts +207 -0
- package/dist/testing/websocket-testing.d.ts +227 -0
- package/dist/types/controller-types.d.ts +208 -0
- package/dist/types/core.d.ts +543 -0
- package/dist/types/middleware-types.d.ts +227 -0
- package/dist/types/request-response-augmentation.d.ts +261 -0
- package/dist/types/route-inference.d.ts +168 -0
- package/dist/types.d.ts +1776 -0
- package/dist/url.d.ts +56 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/query-preservation.d.ts +48 -0
- package/dist/utils.d.ts +69 -0
- package/dist/validation/validator.d.ts +140 -0
- package/dist/websocket/clustering.d.ts +185 -0
- package/package.json +18 -4
- package/src/auth.ts +469 -0
- package/src/cache/lru-cache.ts +457 -0
- package/src/cache/middleware-memoization.ts +531 -0
- package/src/cache/route-cache-warmer.ts +486 -0
- package/src/cache/sqlite-cache.ts +783 -0
- package/src/cache/streaming-cache.ts +572 -0
- package/src/cli/colors.ts +29 -0
- package/src/cli/index.ts +287 -0
- package/src/cli/middleware.ts +291 -0
- package/src/cli/openapi.ts +407 -0
- package/src/cli/router.ts +188 -0
- package/src/cli/routes.ts +265 -0
- package/src/cli/utils.ts +531 -0
- package/src/cli.ts +5 -0
- package/src/config.ts +322 -0
- package/src/container/container.ts +740 -0
- package/src/container/contextual-binding.ts +603 -0
- package/src/container/decorators.ts +359 -0
- package/src/container/service-provider.ts +596 -0
- package/src/development/hot-reload.ts +673 -0
- package/src/development/index.ts +499 -0
- package/src/development/performance-profiler.ts +717 -0
- package/src/development/route-debugger.ts +527 -0
- package/src/development/route-inspector.ts +749 -0
- package/src/development/typescript-utilities.ts +678 -0
- package/src/docs.ts +397 -0
- package/src/errors/circuit-breaker.ts +732 -0
- package/src/errors/error-handler.ts +569 -0
- package/src/errors/error-reporting.ts +672 -0
- package/src/errors/exceptions.ts +536 -0
- package/src/errors/graceful-degradation.ts +621 -0
- package/src/errors/index.ts +21 -0
- package/src/errors/router-errors.ts +632 -0
- package/src/file-serving/static-files.ts +581 -0
- package/src/index.ts +14 -0
- package/src/middleware/auth.ts +219 -0
- package/src/middleware/content_security_policy.ts +215 -0
- package/src/middleware/cors.ts +74 -0
- package/src/middleware/csrf.ts +108 -0
- package/src/middleware/ddos_protection.ts +255 -0
- package/src/middleware/file_security.ts +191 -0
- package/src/middleware/file_upload.ts +264 -0
- package/src/middleware/helmet.ts +268 -0
- package/src/middleware/index.ts +117 -0
- package/src/middleware/input_validation.ts +449 -0
- package/src/middleware/json_body.ts +37 -0
- package/src/middleware/performance_alerting.ts +538 -0
- package/src/middleware/performance_dashboard.ts +661 -0
- package/src/middleware/performance_monitor.ts +943 -0
- package/src/middleware/pipeline.ts +489 -0
- package/src/middleware/rate_limit.ts +245 -0
- package/src/middleware/request_id.ts +36 -0
- package/src/middleware/request_signing.ts +636 -0
- package/src/middleware/request_tracer.ts +636 -0
- package/src/middleware/response_cache.ts +743 -0
- package/src/middleware/security.ts +482 -0
- package/src/middleware/security_suite.ts +257 -0
- package/src/middleware/session.ts +91 -0
- package/src/model-binding/index.ts +18 -0
- package/src/model-binding/model-middleware.ts +425 -0
- package/src/model-binding/model-registry.ts +550 -0
- package/src/model-binding.ts +370 -0
- package/src/model-resolver-factory.ts +106 -0
- package/src/observability/correlation.ts +691 -0
- package/src/observability/health-checks.ts +729 -0
- package/src/observability/index.ts +184 -0
- package/src/observability/integration.ts +548 -0
- package/src/observability/metrics.ts +753 -0
- package/src/observability/tracing.ts +638 -0
- package/src/optimization/bun-utilities.ts +778 -0
- package/src/query-builder-integration.ts +137 -0
- package/src/request/context.ts +62 -0
- package/src/request/enhanced-request.ts +857 -0
- package/src/request/macros.ts +688 -0
- package/src/response/macros.ts +612 -0
- package/src/response/response-factory.ts +588 -0
- package/src/router/api-routes.ts +243 -0
- package/src/router/file-based-routing.ts +670 -0
- package/src/router/file-streaming.ts +372 -0
- package/src/router/fluent-router.ts +927 -0
- package/src/router/fluent-routing.ts +797 -0
- package/src/router/group-organization.ts +213 -0
- package/src/router/handler-resolver.ts +291 -0
- package/src/router/http-methods.ts +377 -0
- package/src/router/index.ts +185 -0
- package/src/router/middleware-groups.ts +222 -0
- package/src/router/middleware-integration.ts +399 -0
- package/src/router/middleware.ts +231 -0
- package/src/router/model-binding.ts +215 -0
- package/src/router/optimized-route-matching.ts +253 -0
- package/src/router/route-building.ts +212 -0
- package/src/router/route-compiler.ts +702 -0
- package/src/router/route-matching.ts +349 -0
- package/src/router/route-trie.ts +464 -0
- package/src/router/router.ts +1508 -0
- package/src/router/server.ts +406 -0
- package/src/router/validation-integration.ts +443 -0
- package/src/router/view-rendering.ts +233 -0
- package/src/router/websocket.ts +100 -0
- package/src/routing/route-caching.ts +402 -0
- package/src/routing/route-throttling.ts +469 -0
- package/src/routing/subdomain-routing.ts +492 -0
- package/src/session/database-store.ts +109 -0
- package/src/session/file-store.ts +148 -0
- package/src/session/index.ts +244 -0
- package/src/session/memory-store.ts +88 -0
- package/src/session/redis-store.ts +93 -0
- package/src/streaming/index.ts +17 -0
- package/src/streaming/sse-handler.ts +482 -0
- package/src/streaming/stream-handler.ts +552 -0
- package/src/testing/auth-testing.ts +446 -0
- package/src/testing/file-upload-testing.ts +543 -0
- package/src/testing/index.ts +10 -0
- package/src/testing/middleware-testing.ts +322 -0
- package/src/testing/model-binding-testing.ts +645 -0
- package/src/testing/performance-testing.ts +738 -0
- package/src/testing/test-client.ts +310 -0
- package/src/testing/test-request.ts +315 -0
- package/src/testing/test-response.ts +332 -0
- package/src/testing/types.ts +224 -0
- package/src/testing/websocket-testing.ts +590 -0
- package/src/types/controller-types.ts +385 -0
- package/src/types/core.ts +683 -0
- package/src/types/middleware-types.ts +419 -0
- package/src/types/request-response-augmentation.ts +489 -0
- package/src/types/route-inference.ts +357 -0
- package/src/types.ts +2049 -0
- package/src/url.ts +126 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/query-preservation.ts +201 -0
- package/src/utils.ts +327 -0
- package/src/validation/validator.ts +685 -0
- package/src/websocket/clustering.ts +762 -0
- package/dist/chunk-cjdekj87.js +0 -25886
|
@@ -0,0 +1,154 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1,211 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Development Tools - TypeScript Utilities
|
|
3
|
+
*
|
|
4
|
+
* TypeScript development utilities, type checking, and code generation
|
|
5
|
+
*/
|
|
6
|
+
import type { EnhancedRequest } from '../types';
|
|
7
|
+
export interface TypeScriptConfig {
|
|
8
|
+
strictMode?: boolean;
|
|
9
|
+
generateTypes?: boolean;
|
|
10
|
+
validateTypes?: boolean;
|
|
11
|
+
outputDir?: string;
|
|
12
|
+
includeComments?: boolean;
|
|
13
|
+
generateSchemas?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface RouteTypeInfo {
|
|
16
|
+
method: string;
|
|
17
|
+
pattern: string;
|
|
18
|
+
requestType: string;
|
|
19
|
+
responseType: string;
|
|
20
|
+
paramsType: string;
|
|
21
|
+
queryType: string;
|
|
22
|
+
bodyType: string;
|
|
23
|
+
middlewareTypes: string[];
|
|
24
|
+
handlerSignature: string;
|
|
25
|
+
}
|
|
26
|
+
export interface TypeDefinition {
|
|
27
|
+
name: string;
|
|
28
|
+
type: 'interface' | 'type' | 'enum' | 'class';
|
|
29
|
+
definition: string;
|
|
30
|
+
imports: string[];
|
|
31
|
+
exports: string[];
|
|
32
|
+
documentation?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ValidationSchema {
|
|
35
|
+
type: 'object' | 'array' | 'string' | 'number' | 'boolean';
|
|
36
|
+
properties?: Record<string, ValidationSchema>;
|
|
37
|
+
items?: ValidationSchema;
|
|
38
|
+
required?: string[];
|
|
39
|
+
pattern?: string;
|
|
40
|
+
minimum?: number;
|
|
41
|
+
maximum?: number;
|
|
42
|
+
enum?: any[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* TypeScript utilities for development
|
|
46
|
+
*/
|
|
47
|
+
export declare class TypeScriptUtilities {
|
|
48
|
+
private config;
|
|
49
|
+
private routeTypes;
|
|
50
|
+
private typeDefinitions;
|
|
51
|
+
constructor(config?: TypeScriptConfig);
|
|
52
|
+
/**
|
|
53
|
+
* Register route type information
|
|
54
|
+
*/
|
|
55
|
+
registerRouteTypes(method: string, pattern: string, options?: {
|
|
56
|
+
requestType?: string;
|
|
57
|
+
responseType?: string;
|
|
58
|
+
paramsType?: string;
|
|
59
|
+
queryType?: string;
|
|
60
|
+
bodyType?: string;
|
|
61
|
+
middlewareTypes?: string[];
|
|
62
|
+
handlerSignature?: string;
|
|
63
|
+
}): void;
|
|
64
|
+
/**
|
|
65
|
+
* Generate TypeScript definitions for all routes
|
|
66
|
+
*/
|
|
67
|
+
generateRouteTypes(): string;
|
|
68
|
+
/**
|
|
69
|
+
* Generate validation schemas from TypeScript types
|
|
70
|
+
*/
|
|
71
|
+
generateValidationSchemas(): Record<string, ValidationSchema>;
|
|
72
|
+
/**
|
|
73
|
+
* Generate OpenAPI schema from route types
|
|
74
|
+
*/
|
|
75
|
+
generateOpenAPISchema(): any;
|
|
76
|
+
/**
|
|
77
|
+
* Validate request against TypeScript types
|
|
78
|
+
*/
|
|
79
|
+
validateRequest(req: EnhancedRequest, routeKey: string): {
|
|
80
|
+
valid: boolean;
|
|
81
|
+
errors: string[];
|
|
82
|
+
warnings: string[];
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Generate type-safe route builder
|
|
86
|
+
*/
|
|
87
|
+
generateRouteBuilder(): string;
|
|
88
|
+
/**
|
|
89
|
+
* Generate middleware type definitions
|
|
90
|
+
*/
|
|
91
|
+
generateMiddlewareTypes(): string;
|
|
92
|
+
/**
|
|
93
|
+
* Get route type information
|
|
94
|
+
*/
|
|
95
|
+
getRouteTypes(): RouteTypeInfo[];
|
|
96
|
+
/**
|
|
97
|
+
* Get type definition
|
|
98
|
+
*/
|
|
99
|
+
getTypeDefinition(name: string): TypeDefinition | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* Register custom type definition
|
|
102
|
+
*/
|
|
103
|
+
registerTypeDefinition(definition: TypeDefinition): void;
|
|
104
|
+
/**
|
|
105
|
+
* Clear all type information
|
|
106
|
+
*/
|
|
107
|
+
clear(): void;
|
|
108
|
+
/**
|
|
109
|
+
* Infer parameter types from route pattern
|
|
110
|
+
*/
|
|
111
|
+
private inferParamsType;
|
|
112
|
+
/**
|
|
113
|
+
* Extract path parameters from pattern
|
|
114
|
+
*/
|
|
115
|
+
private extractPathParameters;
|
|
116
|
+
/**
|
|
117
|
+
* Infer parameter type from constraint
|
|
118
|
+
*/
|
|
119
|
+
private inferParamType;
|
|
120
|
+
/**
|
|
121
|
+
* Generate handler signature
|
|
122
|
+
*/
|
|
123
|
+
private generateHandlerSignature;
|
|
124
|
+
/**
|
|
125
|
+
* Generate imports section
|
|
126
|
+
*/
|
|
127
|
+
private generateImports;
|
|
128
|
+
/**
|
|
129
|
+
* Generate parameter types
|
|
130
|
+
*/
|
|
131
|
+
private generateParamTypes;
|
|
132
|
+
/**
|
|
133
|
+
* Generate handler types
|
|
134
|
+
*/
|
|
135
|
+
private generateHandlerTypes;
|
|
136
|
+
/**
|
|
137
|
+
* Generate route registry type
|
|
138
|
+
*/
|
|
139
|
+
private generateRouteRegistryType;
|
|
140
|
+
/**
|
|
141
|
+
* Generate utility types
|
|
142
|
+
*/
|
|
143
|
+
private generateUtilityTypes;
|
|
144
|
+
/**
|
|
145
|
+
* Convert path to type name
|
|
146
|
+
*/
|
|
147
|
+
private pathToTypeName;
|
|
148
|
+
/**
|
|
149
|
+
* Convert path to method name
|
|
150
|
+
*/
|
|
151
|
+
private pathToMethodName;
|
|
152
|
+
/**
|
|
153
|
+
* Convert path to operation ID
|
|
154
|
+
*/
|
|
155
|
+
private pathToOperationId;
|
|
156
|
+
/**
|
|
157
|
+
* Convert TypeScript type to validation schema
|
|
158
|
+
*/
|
|
159
|
+
private typeToSchema;
|
|
160
|
+
/**
|
|
161
|
+
* Convert TypeScript type to OpenAPI schema
|
|
162
|
+
*/
|
|
163
|
+
private typeToOpenAPISchema;
|
|
164
|
+
/**
|
|
165
|
+
* Validate request parameters
|
|
166
|
+
*/
|
|
167
|
+
private validateParams;
|
|
168
|
+
/**
|
|
169
|
+
* Validate query parameters
|
|
170
|
+
*/
|
|
171
|
+
private validateQuery;
|
|
172
|
+
/**
|
|
173
|
+
* Validate request body
|
|
174
|
+
*/
|
|
175
|
+
private validateBody;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Initialize global TypeScript utilities
|
|
179
|
+
*/
|
|
180
|
+
export declare function initializeTypeScriptUtilities(config?: TypeScriptConfig): TypeScriptUtilities;
|
|
181
|
+
/**
|
|
182
|
+
* Get global TypeScript utilities
|
|
183
|
+
*/
|
|
184
|
+
export declare function getTypeScriptUtilities(): TypeScriptUtilities | null;
|
|
185
|
+
/**
|
|
186
|
+
* TypeScript development helpers
|
|
187
|
+
*/
|
|
188
|
+
export declare const TypeScriptHelpers: {
|
|
189
|
+
/**
|
|
190
|
+
* Generate types for current routes
|
|
191
|
+
*/
|
|
192
|
+
generateTypes: () => string;
|
|
193
|
+
/**
|
|
194
|
+
* Generate validation schemas
|
|
195
|
+
*/
|
|
196
|
+
generateSchemas: () => Record<string, ValidationSchema>;
|
|
197
|
+
/**
|
|
198
|
+
* Generate OpenAPI documentation
|
|
199
|
+
*/
|
|
200
|
+
generateOpenAPI: () => any;
|
|
201
|
+
/**
|
|
202
|
+
* Validate request types
|
|
203
|
+
*/
|
|
204
|
+
validateRequest: (req: EnhancedRequest, routeKey: string) => {
|
|
205
|
+
valid: boolean;
|
|
206
|
+
errors: string[];
|
|
207
|
+
warnings: string[];
|
|
208
|
+
};
|
|
209
|
+
};
|
package/dist/docs.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface DocsOptions {
|
|
2
|
+
verbose?: boolean;
|
|
3
|
+
output?: string;
|
|
4
|
+
groupBy?: 'path' | 'method' | 'tag';
|
|
5
|
+
includeExamples?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Generates API documentation from route definitions
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateApiDocs(options?: DocsOptions): Promise<void>;
|
|
11
|
+
export {};
|