@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,187 @@
1
+ /**
2
+ * Hot Reload Development
3
+ *
4
+ * Hot reload for development using Bun's --hot mode with state preservation
5
+ */
6
+ export interface HotReloadConfig {
7
+ enabled?: boolean;
8
+ watchPaths?: string[];
9
+ ignorePaths?: string[];
10
+ extensions?: string[];
11
+ debounceMs?: number;
12
+ preserveState?: boolean;
13
+ onReload?: (changedFiles: string[]) => void;
14
+ onError?: (error: Error) => void;
15
+ verbose?: boolean;
16
+ }
17
+ export interface HotReloadState {
18
+ reloadCount: number;
19
+ lastReload: number;
20
+ changedFiles: string[];
21
+ preservedState: Record<string, any>;
22
+ watchers: Map<string, any>;
23
+ }
24
+ declare global {
25
+ var __HOT_RELOAD_STATE__: HotReloadState | undefined;
26
+ var __HOT_RELOAD_PRESERVE__: Record<string, any>;
27
+ }
28
+ /**
29
+ * Hot reload manager for development
30
+ */
31
+ export declare class HotReloadManager {
32
+ private config;
33
+ private state;
34
+ private debounceTimer?;
35
+ private isReloading;
36
+ constructor(config?: HotReloadConfig);
37
+ /**
38
+ * Initialize or restore hot reload state
39
+ */
40
+ private initializeState;
41
+ /**
42
+ * Setup file watchers
43
+ */
44
+ private setupWatchers;
45
+ /**
46
+ * Handle file change event
47
+ */
48
+ private handleFileChange;
49
+ /**
50
+ * Check if file should be ignored
51
+ */
52
+ private shouldIgnoreFile;
53
+ /**
54
+ * Check if file should be watched
55
+ */
56
+ private shouldWatchFile;
57
+ /**
58
+ * Trigger hot reload
59
+ */
60
+ private triggerReload;
61
+ /**
62
+ * Preserve state across reloads
63
+ */
64
+ preserveState<T>(key: string, value: T): void;
65
+ /**
66
+ * Restore preserved state
67
+ */
68
+ restoreState<T>(key: string, defaultValue?: T): T | undefined;
69
+ /**
70
+ * Clear preserved state
71
+ */
72
+ clearState(key?: string): void;
73
+ /**
74
+ * Get hot reload statistics
75
+ */
76
+ getStats(): {
77
+ reloadCount: number;
78
+ lastReload: number;
79
+ uptime: number;
80
+ watchedPaths: string[];
81
+ preservedKeys: string[];
82
+ };
83
+ /**
84
+ * Stop hot reload
85
+ */
86
+ stop(): void;
87
+ }
88
+ /**
89
+ * Hot reload middleware for preserving server state
90
+ */
91
+ export declare function createHotReloadMiddleware(hotReload: HotReloadManager): (request: Request, next: () => Promise<Response>) => Promise<Response>;
92
+ /**
93
+ * Hot reload utilities
94
+ */
95
+ export declare const HotReloadUtils: {
96
+ /**
97
+ * Check if running in hot reload mode
98
+ */
99
+ isHotReloadEnabled: () => boolean;
100
+ /**
101
+ * Get current reload count
102
+ */
103
+ getReloadCount: () => number;
104
+ /**
105
+ * Create hot-reloadable module cache
106
+ */
107
+ createModuleCache: <T>() => {
108
+ get: (key: string) => T | undefined;
109
+ set: (key: string, value: T) => void;
110
+ clear: () => void;
111
+ delete: (key: string) => boolean;
112
+ has: (key: string) => boolean;
113
+ size: () => number;
114
+ };
115
+ /**
116
+ * Create hot-reloadable configuration
117
+ */
118
+ createHotConfig: <T>(initialConfig: T, configPath?: string) => {
119
+ get: () => T;
120
+ reload: () => Promise<T>;
121
+ onChange: (callback: (config: T) => void) => void;
122
+ };
123
+ };
124
+ /**
125
+ * Hot reload helpers for common patterns
126
+ */
127
+ export declare const HotReloadHelpers: {
128
+ /**
129
+ * Create hot-reloadable route handlers
130
+ */
131
+ createHotHandler: (handlerPath: string) => (request: Request) => Promise<Response>;
132
+ /**
133
+ * Create hot-reloadable middleware
134
+ */
135
+ createHotMiddleware: (middlewarePath: string) => (request: Request, next: () => Promise<Response>) => Promise<Response>;
136
+ /**
137
+ * Create development server with hot reload
138
+ */
139
+ createDevelopmentServer: (config?: {
140
+ port?: number;
141
+ hostname?: string;
142
+ hotReload?: HotReloadConfig;
143
+ onReload?: () => void;
144
+ }) => {
145
+ server: ReturnType<typeof Bun.serve>;
146
+ hotReload: HotReloadManager;
147
+ stop: () => void;
148
+ };
149
+ };
150
+ /**
151
+ * Hot reload decorators for classes and methods
152
+ */
153
+ export declare const HotReloadDecorators: {
154
+ /**
155
+ * Class decorator for hot-reloadable classes
156
+ */
157
+ hotReloadable: <T extends new (...args: any[]) => any>(constructor: T) => T;
158
+ /**
159
+ * Method decorator for hot-reloadable methods
160
+ */
161
+ hotMethod: (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
162
+ };
163
+ /**
164
+ * Initialize global hot reload
165
+ */
166
+ export declare function initializeHotReload(config?: HotReloadConfig): HotReloadManager;
167
+ /**
168
+ * Get global hot reload instance
169
+ */
170
+ export declare function getHotReload(): HotReloadManager | null;
171
+ /**
172
+ * Hot reload factory functions
173
+ */
174
+ export declare const HotReloadFactory: {
175
+ /**
176
+ * Create development hot reload
177
+ */
178
+ createDevelopment: () => HotReloadManager;
179
+ /**
180
+ * Create production hot reload (disabled)
181
+ */
182
+ createProduction: () => HotReloadManager;
183
+ /**
184
+ * Create testing hot reload
185
+ */
186
+ createTesting: () => HotReloadManager;
187
+ };
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Development Tools - Main Integration
3
+ *
4
+ * Unified development tools with router integration and middleware
5
+ */
6
+ import type { EnhancedRequest } from '../types';
7
+ import { PerformanceProfiler, PerformanceProfilingHelpers } from './performance-profiler';
8
+ import { RouteDebugger, RouteDebugHelpers } from './route-debugger';
9
+ import { RouteInspectionHelpers, RouteInspector } from './route-inspector';
10
+ import { TypeScriptHelpers, TypeScriptUtilities } from './typescript-utilities';
11
+ export interface DevelopmentConfig {
12
+ debug?: {
13
+ enabled?: boolean;
14
+ logLevel?: 'debug' | 'info' | 'warn' | 'error';
15
+ includeHeaders?: boolean;
16
+ includeBody?: boolean;
17
+ colorOutput?: boolean;
18
+ };
19
+ profiling?: {
20
+ enabled?: boolean;
21
+ sampleRate?: number;
22
+ includeMemory?: boolean;
23
+ includeCpu?: boolean;
24
+ };
25
+ inspection?: {
26
+ enabled?: boolean;
27
+ trackStats?: boolean;
28
+ generateReports?: boolean;
29
+ };
30
+ typescript?: {
31
+ generateTypes?: boolean;
32
+ validateTypes?: boolean;
33
+ generateSchemas?: boolean;
34
+ };
35
+ }
36
+ /**
37
+ * Development tools manager
38
+ */
39
+ export declare class DevelopmentTools {
40
+ private debugger;
41
+ private inspector;
42
+ private profiler;
43
+ private tsUtils;
44
+ private config;
45
+ constructor(config?: DevelopmentConfig);
46
+ /**
47
+ * Create development middleware stack
48
+ */
49
+ createMiddleware(): Array<(req: EnhancedRequest, next: () => Promise<Response>) => Promise<Response>>;
50
+ /**
51
+ * Register route with all development tools
52
+ */
53
+ registerRoute(method: string, pattern: string, handler: (...args: any[]) => any, middleware?: ((..._args: any[]) => any)[], options?: any): string;
54
+ /**
55
+ * Get route debugging information
56
+ */
57
+ debug(): {
58
+ listRoutes: typeof RouteInspectionHelpers.listRoutes;
59
+ analyzeRoutes: typeof RouteInspectionHelpers.analyzeRoutes;
60
+ exportRoutes: typeof RouteInspectionHelpers.exportRoutes;
61
+ getDebugSession: (requestId: string) => import('./route-debugger').RouteDebugInfo | undefined;
62
+ clearSessions: () => void;
63
+ };
64
+ /**
65
+ * Get route listing and analysis
66
+ */
67
+ routes(): {
68
+ list: (filter?: any) => import('./route-inspector').RouteMetadata[];
69
+ analyze: () => import('./route-inspector').RouteAnalysis;
70
+ export: (format?: 'json' | 'csv' | 'markdown' | 'openapi') => string;
71
+ groups: () => import('./route-inspector').RouteGroup[];
72
+ find: (method: string, path: string) => import('./route-inspector').RouteMetadata[];
73
+ };
74
+ /**
75
+ * Get performance profiling information
76
+ */
77
+ profile(): {
78
+ getMetrics: () => import('./performance-profiler').PerformanceMetrics;
79
+ getProfiles: (filter?: any) => import('./performance-profiler').RouteProfile[];
80
+ generateReport: () => string;
81
+ clear: () => void;
82
+ };
83
+ /**
84
+ * Get TypeScript utilities
85
+ */
86
+ typescript(): {
87
+ generateTypes: () => string;
88
+ generateSchemas: () => Record<string, import('./typescript-utilities').ValidationSchema>;
89
+ generateOpenAPI: () => any;
90
+ generateRouteBuilder: () => string;
91
+ validateRequest: (req: EnhancedRequest, routeKey: string) => {
92
+ valid: boolean;
93
+ errors: string[];
94
+ warnings: string[];
95
+ };
96
+ };
97
+ /**
98
+ * Generate comprehensive development report
99
+ */
100
+ generateReport(): string;
101
+ /**
102
+ * Clear all development data
103
+ */
104
+ clear(): void;
105
+ /**
106
+ * Create inspection middleware
107
+ */
108
+ private createInspectionMiddleware;
109
+ }
110
+ /**
111
+ * Router extension for development tools
112
+ */
113
+ export declare class DevelopmentRouter {
114
+ private devTools;
115
+ private routes;
116
+ constructor(config?: DevelopmentConfig);
117
+ /**
118
+ * Enable debugging for next route
119
+ */
120
+ debug(): {
121
+ get: (pattern: string, handler: (...args: any[]) => any) => any;
122
+ post: (pattern: string, handler: (...args: any[]) => any) => any;
123
+ put: (pattern: string, handler: (...args: any[]) => any) => any;
124
+ patch: (pattern: string, handler: (...args: any[]) => any) => any;
125
+ delete: (pattern: string, handler: (...args: any[]) => any) => any;
126
+ };
127
+ /**
128
+ * Enable profiling for route group
129
+ */
130
+ profile(): {
131
+ group: (callback: () => void) => void;
132
+ };
133
+ /**
134
+ * Get all registered routes
135
+ */
136
+ getRoutes(): import('./route-inspector').RouteMetadata[];
137
+ /**
138
+ * Register route with development tools
139
+ */
140
+ private registerRoute;
141
+ }
142
+ /**
143
+ * Development presets for common configurations
144
+ */
145
+ export declare const DevelopmentPresets: {
146
+ /**
147
+ * Full development mode with all features enabled
148
+ */
149
+ development: () => DevelopmentConfig;
150
+ /**
151
+ * Production debugging with minimal overhead
152
+ */
153
+ production: () => DevelopmentConfig;
154
+ /**
155
+ * Performance testing configuration
156
+ */
157
+ performance: () => DevelopmentConfig;
158
+ /**
159
+ * TypeScript development configuration
160
+ */
161
+ typescript: () => DevelopmentConfig;
162
+ };
163
+ export { PerformanceProfiler, PerformanceProfilingHelpers, RouteDebugger, RouteDebugHelpers, RouteInspectionHelpers, RouteInspector, TypeScriptHelpers, TypeScriptUtilities, };
164
+ export type { ProfileConfig as ProfilerConfig, PerformanceMetrics as ProfilerMetrics, RouteProfile as ProfilerRouteProfile, } from './performance-profiler';
165
+ export type { RouteDebugConfig, RouteDebugInfo, } from './route-debugger';
166
+ export type { RouteAnalysis as InspectorRouteAnalysis, RouteMetadata as InspectorRouteMetadata, RouteGroup, } from './route-inspector';
167
+ export type { TypeScriptConfig as TSConfig, RouteTypeInfo as TSRouteTypeInfo, TypeDefinition as TSTypeDefinition, ValidationSchema as TSValidationSchema, } from './typescript-utilities';
@@ -0,0 +1,217 @@
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
+ };