@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.
Files changed (272) hide show
  1. package/README.md +2 -2
  2. package/dist/auth.d.ts +134 -0
  3. package/dist/cache/lru-cache.d.ts +139 -0
  4. package/dist/cache/middleware-memoization.d.ts +151 -0
  5. package/dist/cache/route-cache-warmer.d.ts +161 -0
  6. package/dist/cache/sqlite-cache.d.ts +209 -0
  7. package/dist/cache/streaming-cache.d.ts +132 -0
  8. package/dist/chunk-jhsk5c5b.js +15758 -0
  9. package/dist/cli/colors.d.ts +15 -0
  10. package/dist/cli/index.d.ts +10 -0
  11. package/dist/cli/middleware.d.ts +31 -0
  12. package/dist/cli/openapi.d.ts +17 -0
  13. package/dist/cli/router.d.ts +15 -0
  14. package/dist/cli/routes.d.ts +29 -0
  15. package/dist/cli/utils.d.ts +74 -0
  16. package/dist/cli.d.ts +1 -1
  17. package/dist/cli.js +2 -2
  18. package/dist/config.d.ts +7 -0
  19. package/dist/container/container.d.ts +273 -0
  20. package/dist/container/contextual-binding.d.ts +240 -0
  21. package/dist/container/decorators.d.ts +141 -0
  22. package/dist/container/service-provider.d.ts +285 -0
  23. package/dist/development/hot-reload.d.ts +187 -0
  24. package/dist/development/index.d.ts +167 -0
  25. package/dist/development/performance-profiler.d.ts +217 -0
  26. package/dist/development/route-debugger.d.ts +154 -0
  27. package/dist/development/route-inspector.d.ts +211 -0
  28. package/dist/development/typescript-utilities.d.ts +209 -0
  29. package/dist/docs.d.ts +11 -0
  30. package/dist/errors/circuit-breaker.d.ts +195 -0
  31. package/dist/errors/error-handler.d.ts +88 -0
  32. package/dist/errors/error-reporting.d.ts +144 -0
  33. package/dist/errors/exceptions.d.ts +184 -0
  34. package/dist/errors/graceful-degradation.d.ts +154 -0
  35. package/dist/errors/index.d.ts +9 -0
  36. package/dist/errors/router-errors.d.ts +110 -0
  37. package/dist/file-serving/static-files.d.ts +143 -0
  38. package/dist/index.d.ts +2 -0
  39. package/dist/index.js +320 -206
  40. package/dist/middleware/auth.d.ts +63 -0
  41. package/dist/middleware/content_security_policy.d.ts +53 -0
  42. package/dist/middleware/cors.d.ts +5 -0
  43. package/dist/middleware/csrf.d.ts +7 -0
  44. package/dist/middleware/ddos_protection.d.ts +39 -0
  45. package/dist/middleware/file_security.d.ts +26 -0
  46. package/dist/middleware/file_upload.d.ts +38 -0
  47. package/dist/middleware/helmet.d.ts +54 -0
  48. package/dist/middleware/index.d.ts +44 -0
  49. package/dist/middleware/input_validation.d.ts +45 -0
  50. package/dist/middleware/json_body.d.ts +4 -0
  51. package/dist/middleware/performance_alerting.d.ts +87 -0
  52. package/dist/middleware/performance_dashboard.d.ts +87 -0
  53. package/dist/middleware/performance_monitor.d.ts +209 -0
  54. package/dist/middleware/pipeline.d.ts +131 -0
  55. package/dist/middleware/rate_limit.d.ts +36 -0
  56. package/dist/middleware/request_id.d.ts +4 -0
  57. package/dist/middleware/request_signing.d.ts +153 -0
  58. package/dist/middleware/request_tracer.d.ts +72 -0
  59. package/dist/middleware/response_cache.d.ts +97 -0
  60. package/dist/middleware/security.d.ts +69 -0
  61. package/dist/middleware/security_suite.d.ts +46 -0
  62. package/dist/middleware/session.d.ts +23 -0
  63. package/dist/model-binding/index.d.ts +2 -0
  64. package/dist/model-binding/model-middleware.d.ts +118 -0
  65. package/dist/model-binding/model-registry.d.ts +164 -0
  66. package/dist/model-binding.d.ts +185 -0
  67. package/dist/model-resolver-factory.d.ts +31 -0
  68. package/dist/observability/correlation.d.ts +187 -0
  69. package/dist/observability/health-checks.d.ts +186 -0
  70. package/dist/observability/index.d.ts +60 -0
  71. package/dist/observability/integration.d.ts +147 -0
  72. package/dist/observability/metrics.d.ts +184 -0
  73. package/dist/observability/tracing.d.ts +187 -0
  74. package/dist/optimization/bun-utilities.d.ts +224 -0
  75. package/dist/query-builder-integration.d.ts +36 -0
  76. package/dist/request/context.d.ts +34 -0
  77. package/dist/request/enhanced-request.d.ts +213 -0
  78. package/dist/request/macros.d.ts +300 -0
  79. package/dist/response/macros.d.ts +245 -0
  80. package/dist/response/response-factory.d.ts +133 -0
  81. package/dist/router/api-routes.d.ts +5 -0
  82. package/dist/router/file-based-routing.d.ts +118 -0
  83. package/dist/router/file-streaming.d.ts +5 -0
  84. package/dist/router/fluent-router.d.ts +315 -0
  85. package/dist/router/fluent-routing.d.ts +271 -0
  86. package/dist/router/group-organization.d.ts +5 -0
  87. package/dist/router/handler-resolver.d.ts +24 -0
  88. package/dist/router/http-methods.d.ts +10 -0
  89. package/dist/router/index.d.ts +113 -0
  90. package/dist/router/middleware-groups.d.ts +94 -0
  91. package/dist/router/middleware-integration.d.ts +112 -0
  92. package/dist/router/middleware.d.ts +5 -0
  93. package/dist/router/model-binding.d.ts +5 -0
  94. package/dist/router/optimized-route-matching.d.ts +6 -0
  95. package/dist/router/route-building.d.ts +5 -0
  96. package/dist/router/route-compiler.d.ts +153 -0
  97. package/dist/router/route-matching.d.ts +5 -0
  98. package/dist/router/route-trie.d.ts +114 -0
  99. package/dist/router/router.d.ts +276 -0
  100. package/dist/router/server.d.ts +5 -0
  101. package/dist/router/validation-integration.d.ts +170 -0
  102. package/dist/router/view-rendering.d.ts +5 -0
  103. package/dist/router/websocket.d.ts +5 -0
  104. package/dist/routing/route-caching.d.ts +129 -0
  105. package/dist/routing/route-throttling.d.ts +150 -0
  106. package/dist/routing/subdomain-routing.d.ts +206 -0
  107. package/dist/session/database-store.d.ts +51 -0
  108. package/dist/session/file-store.d.ts +22 -0
  109. package/dist/session/index.d.ts +106 -0
  110. package/dist/session/memory-store.d.ts +21 -0
  111. package/dist/session/redis-store.d.ts +31 -0
  112. package/dist/streaming/index.d.ts +3 -0
  113. package/dist/streaming/sse-handler.d.ts +138 -0
  114. package/dist/streaming/stream-handler.d.ts +114 -0
  115. package/dist/testing/auth-testing.d.ts +156 -0
  116. package/dist/testing/file-upload-testing.d.ts +190 -0
  117. package/dist/testing/index.d.ts +10 -0
  118. package/dist/testing/middleware-testing.d.ts +138 -0
  119. package/dist/testing/model-binding-testing.d.ts +186 -0
  120. package/dist/testing/performance-testing.d.ts +235 -0
  121. package/dist/testing/test-client.d.ts +117 -0
  122. package/dist/testing/test-request.d.ts +85 -0
  123. package/dist/testing/test-response.d.ts +90 -0
  124. package/dist/testing/types.d.ts +207 -0
  125. package/dist/testing/websocket-testing.d.ts +227 -0
  126. package/dist/types/controller-types.d.ts +208 -0
  127. package/dist/types/core.d.ts +543 -0
  128. package/dist/types/middleware-types.d.ts +227 -0
  129. package/dist/types/request-response-augmentation.d.ts +261 -0
  130. package/dist/types/route-inference.d.ts +168 -0
  131. package/dist/types.d.ts +1776 -0
  132. package/dist/url.d.ts +56 -0
  133. package/dist/utils/index.d.ts +1 -0
  134. package/dist/utils/query-preservation.d.ts +48 -0
  135. package/dist/utils.d.ts +69 -0
  136. package/dist/validation/validator.d.ts +140 -0
  137. package/dist/websocket/clustering.d.ts +185 -0
  138. package/package.json +18 -4
  139. package/src/auth.ts +469 -0
  140. package/src/cache/lru-cache.ts +457 -0
  141. package/src/cache/middleware-memoization.ts +531 -0
  142. package/src/cache/route-cache-warmer.ts +486 -0
  143. package/src/cache/sqlite-cache.ts +783 -0
  144. package/src/cache/streaming-cache.ts +572 -0
  145. package/src/cli/colors.ts +29 -0
  146. package/src/cli/index.ts +287 -0
  147. package/src/cli/middleware.ts +291 -0
  148. package/src/cli/openapi.ts +407 -0
  149. package/src/cli/router.ts +188 -0
  150. package/src/cli/routes.ts +265 -0
  151. package/src/cli/utils.ts +531 -0
  152. package/src/cli.ts +5 -0
  153. package/src/config.ts +322 -0
  154. package/src/container/container.ts +740 -0
  155. package/src/container/contextual-binding.ts +603 -0
  156. package/src/container/decorators.ts +359 -0
  157. package/src/container/service-provider.ts +596 -0
  158. package/src/development/hot-reload.ts +673 -0
  159. package/src/development/index.ts +499 -0
  160. package/src/development/performance-profiler.ts +717 -0
  161. package/src/development/route-debugger.ts +527 -0
  162. package/src/development/route-inspector.ts +749 -0
  163. package/src/development/typescript-utilities.ts +678 -0
  164. package/src/docs.ts +397 -0
  165. package/src/errors/circuit-breaker.ts +732 -0
  166. package/src/errors/error-handler.ts +569 -0
  167. package/src/errors/error-reporting.ts +672 -0
  168. package/src/errors/exceptions.ts +536 -0
  169. package/src/errors/graceful-degradation.ts +621 -0
  170. package/src/errors/index.ts +21 -0
  171. package/src/errors/router-errors.ts +632 -0
  172. package/src/file-serving/static-files.ts +581 -0
  173. package/src/index.ts +14 -0
  174. package/src/middleware/auth.ts +219 -0
  175. package/src/middleware/content_security_policy.ts +215 -0
  176. package/src/middleware/cors.ts +74 -0
  177. package/src/middleware/csrf.ts +108 -0
  178. package/src/middleware/ddos_protection.ts +255 -0
  179. package/src/middleware/file_security.ts +191 -0
  180. package/src/middleware/file_upload.ts +264 -0
  181. package/src/middleware/helmet.ts +268 -0
  182. package/src/middleware/index.ts +117 -0
  183. package/src/middleware/input_validation.ts +449 -0
  184. package/src/middleware/json_body.ts +37 -0
  185. package/src/middleware/performance_alerting.ts +538 -0
  186. package/src/middleware/performance_dashboard.ts +661 -0
  187. package/src/middleware/performance_monitor.ts +943 -0
  188. package/src/middleware/pipeline.ts +489 -0
  189. package/src/middleware/rate_limit.ts +245 -0
  190. package/src/middleware/request_id.ts +36 -0
  191. package/src/middleware/request_signing.ts +636 -0
  192. package/src/middleware/request_tracer.ts +636 -0
  193. package/src/middleware/response_cache.ts +743 -0
  194. package/src/middleware/security.ts +482 -0
  195. package/src/middleware/security_suite.ts +257 -0
  196. package/src/middleware/session.ts +91 -0
  197. package/src/model-binding/index.ts +18 -0
  198. package/src/model-binding/model-middleware.ts +425 -0
  199. package/src/model-binding/model-registry.ts +550 -0
  200. package/src/model-binding.ts +370 -0
  201. package/src/model-resolver-factory.ts +106 -0
  202. package/src/observability/correlation.ts +691 -0
  203. package/src/observability/health-checks.ts +729 -0
  204. package/src/observability/index.ts +184 -0
  205. package/src/observability/integration.ts +548 -0
  206. package/src/observability/metrics.ts +753 -0
  207. package/src/observability/tracing.ts +638 -0
  208. package/src/optimization/bun-utilities.ts +778 -0
  209. package/src/query-builder-integration.ts +137 -0
  210. package/src/request/context.ts +62 -0
  211. package/src/request/enhanced-request.ts +857 -0
  212. package/src/request/macros.ts +688 -0
  213. package/src/response/macros.ts +612 -0
  214. package/src/response/response-factory.ts +588 -0
  215. package/src/router/api-routes.ts +243 -0
  216. package/src/router/file-based-routing.ts +670 -0
  217. package/src/router/file-streaming.ts +372 -0
  218. package/src/router/fluent-router.ts +927 -0
  219. package/src/router/fluent-routing.ts +797 -0
  220. package/src/router/group-organization.ts +213 -0
  221. package/src/router/handler-resolver.ts +291 -0
  222. package/src/router/http-methods.ts +377 -0
  223. package/src/router/index.ts +185 -0
  224. package/src/router/middleware-groups.ts +222 -0
  225. package/src/router/middleware-integration.ts +399 -0
  226. package/src/router/middleware.ts +231 -0
  227. package/src/router/model-binding.ts +215 -0
  228. package/src/router/optimized-route-matching.ts +253 -0
  229. package/src/router/route-building.ts +212 -0
  230. package/src/router/route-compiler.ts +702 -0
  231. package/src/router/route-matching.ts +349 -0
  232. package/src/router/route-trie.ts +464 -0
  233. package/src/router/router.ts +1508 -0
  234. package/src/router/server.ts +406 -0
  235. package/src/router/validation-integration.ts +443 -0
  236. package/src/router/view-rendering.ts +233 -0
  237. package/src/router/websocket.ts +100 -0
  238. package/src/routing/route-caching.ts +402 -0
  239. package/src/routing/route-throttling.ts +469 -0
  240. package/src/routing/subdomain-routing.ts +492 -0
  241. package/src/session/database-store.ts +109 -0
  242. package/src/session/file-store.ts +148 -0
  243. package/src/session/index.ts +244 -0
  244. package/src/session/memory-store.ts +88 -0
  245. package/src/session/redis-store.ts +93 -0
  246. package/src/streaming/index.ts +17 -0
  247. package/src/streaming/sse-handler.ts +482 -0
  248. package/src/streaming/stream-handler.ts +552 -0
  249. package/src/testing/auth-testing.ts +446 -0
  250. package/src/testing/file-upload-testing.ts +543 -0
  251. package/src/testing/index.ts +10 -0
  252. package/src/testing/middleware-testing.ts +322 -0
  253. package/src/testing/model-binding-testing.ts +645 -0
  254. package/src/testing/performance-testing.ts +738 -0
  255. package/src/testing/test-client.ts +310 -0
  256. package/src/testing/test-request.ts +315 -0
  257. package/src/testing/test-response.ts +332 -0
  258. package/src/testing/types.ts +224 -0
  259. package/src/testing/websocket-testing.ts +590 -0
  260. package/src/types/controller-types.ts +385 -0
  261. package/src/types/core.ts +683 -0
  262. package/src/types/middleware-types.ts +419 -0
  263. package/src/types/request-response-augmentation.ts +489 -0
  264. package/src/types/route-inference.ts +357 -0
  265. package/src/types.ts +2049 -0
  266. package/src/url.ts +126 -0
  267. package/src/utils/index.ts +1 -0
  268. package/src/utils/query-preservation.ts +201 -0
  269. package/src/utils.ts +327 -0
  270. package/src/validation/validator.ts +685 -0
  271. package/src/websocket/clustering.ts +762 -0
  272. 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 {};