@stacksjs/bun-router 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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/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 +1 -1
- 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 +375 -227
- 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 +3 -2
- 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 +1524 -0
- package/src/router/server.ts +429 -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
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Providers for Bootstrapping
|
|
3
|
+
*
|
|
4
|
+
* Service provider system for registering services, managing lifecycle,
|
|
5
|
+
* and bootstrapping application components with dependency injection
|
|
6
|
+
*/
|
|
7
|
+
import type { BindingBuilder, Container, ResolutionContext } from './container';
|
|
8
|
+
export interface ServiceProvider {
|
|
9
|
+
/**
|
|
10
|
+
* Register services in the container
|
|
11
|
+
*/
|
|
12
|
+
register: (container: Container) => void | Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Boot services after all providers are registered
|
|
15
|
+
*/
|
|
16
|
+
boot?: (container: Container) => void | Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Shutdown services gracefully
|
|
19
|
+
*/
|
|
20
|
+
shutdown?: (container: Container) => void | Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Provider metadata
|
|
23
|
+
*/
|
|
24
|
+
readonly name: string;
|
|
25
|
+
readonly version?: string;
|
|
26
|
+
readonly dependencies?: readonly string[];
|
|
27
|
+
readonly environment?: string[];
|
|
28
|
+
readonly priority?: number;
|
|
29
|
+
}
|
|
30
|
+
export interface DeferredServiceProvider extends ServiceProvider {
|
|
31
|
+
/**
|
|
32
|
+
* Services that should trigger loading of this provider
|
|
33
|
+
*/
|
|
34
|
+
provides: () => (string | symbol | Function)[];
|
|
35
|
+
/**
|
|
36
|
+
* Check if provider should be loaded
|
|
37
|
+
*/
|
|
38
|
+
isDeferred: () => boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface ConditionalServiceProvider extends ServiceProvider {
|
|
41
|
+
/**
|
|
42
|
+
* Check if provider should be loaded based on environment
|
|
43
|
+
*/
|
|
44
|
+
shouldLoad: (container: Container) => boolean | Promise<boolean>;
|
|
45
|
+
}
|
|
46
|
+
export interface ServiceProviderManager {
|
|
47
|
+
register: (provider: ServiceProvider) => this;
|
|
48
|
+
boot: () => Promise<void>;
|
|
49
|
+
shutdown: () => Promise<void>;
|
|
50
|
+
getProvider: (name: string) => ServiceProvider | undefined;
|
|
51
|
+
getProviders: () => ServiceProvider[];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Base service provider implementation
|
|
55
|
+
*/
|
|
56
|
+
export declare abstract class BaseServiceProvider implements ServiceProvider {
|
|
57
|
+
abstract readonly name: string;
|
|
58
|
+
readonly version?: string;
|
|
59
|
+
readonly dependencies?: readonly string[];
|
|
60
|
+
readonly environment?: string[];
|
|
61
|
+
readonly priority: number;
|
|
62
|
+
abstract register(container: Container): void | Promise<void>;
|
|
63
|
+
boot?(_container: Container): void | Promise<void>;
|
|
64
|
+
shutdown?(_container: Container): void | Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Helper method to bind singleton
|
|
67
|
+
*/
|
|
68
|
+
protected singleton<T>(container: Container, token: string | symbol | Function, implementation: new (...args: any[]) => T): void;
|
|
69
|
+
/**
|
|
70
|
+
* Helper method to bind transient
|
|
71
|
+
*/
|
|
72
|
+
protected transient<T>(container: Container, token: string | symbol | Function, implementation: new (...args: any[]) => T): void;
|
|
73
|
+
/**
|
|
74
|
+
* Helper method to bind value
|
|
75
|
+
*/
|
|
76
|
+
protected value<T>(container: Container, token: string | symbol | Function, value: T): void;
|
|
77
|
+
/**
|
|
78
|
+
* Helper method to bind factory
|
|
79
|
+
*/
|
|
80
|
+
protected factory<T>(container: Container, token: string | symbol | Function, factory: (...args: any[]) => T): void;
|
|
81
|
+
/**
|
|
82
|
+
* Helper method for conditional binding
|
|
83
|
+
*/
|
|
84
|
+
protected when(container: Container, condition: (context: ResolutionContext) => boolean): {
|
|
85
|
+
bind: <T>(token: string | symbol | Function) => BindingBuilder<T>;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Helper method for environment-specific binding
|
|
89
|
+
*/
|
|
90
|
+
protected forEnvironment(container: Container, ...environments: string[]): {
|
|
91
|
+
bind: <T>(token: string | symbol | Function) => BindingBuilder<T>;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Deferred service provider base class
|
|
96
|
+
*/
|
|
97
|
+
export declare abstract class BaseDeferredServiceProvider extends BaseServiceProvider implements DeferredServiceProvider {
|
|
98
|
+
abstract provides(): (string | symbol | Function)[];
|
|
99
|
+
isDeferred(): boolean;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Service provider manager implementation
|
|
103
|
+
*/
|
|
104
|
+
export declare class DefaultServiceProviderManager implements ServiceProviderManager {
|
|
105
|
+
private providers;
|
|
106
|
+
private deferredProviders;
|
|
107
|
+
private loadedProviders;
|
|
108
|
+
private bootedProviders;
|
|
109
|
+
private container;
|
|
110
|
+
constructor(container: Container);
|
|
111
|
+
/**
|
|
112
|
+
* Register a service provider
|
|
113
|
+
*/
|
|
114
|
+
register(provider: ServiceProvider): this;
|
|
115
|
+
/**
|
|
116
|
+
* Boot all registered providers
|
|
117
|
+
*/
|
|
118
|
+
boot(): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Shutdown all providers
|
|
121
|
+
*/
|
|
122
|
+
shutdown(): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Get provider by name
|
|
125
|
+
*/
|
|
126
|
+
getProvider(name: string): ServiceProvider | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* Get all providers
|
|
129
|
+
*/
|
|
130
|
+
getProviders(): ServiceProvider[];
|
|
131
|
+
/**
|
|
132
|
+
* Load deferred provider when needed
|
|
133
|
+
*/
|
|
134
|
+
loadDeferredProvider(token: string | symbol | Function): Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Internal registration logic
|
|
137
|
+
*/
|
|
138
|
+
private doRegister;
|
|
139
|
+
/**
|
|
140
|
+
* Load a provider
|
|
141
|
+
*/
|
|
142
|
+
private loadProvider;
|
|
143
|
+
/**
|
|
144
|
+
* Boot a provider
|
|
145
|
+
*/
|
|
146
|
+
private bootProvider;
|
|
147
|
+
/**
|
|
148
|
+
* Validate provider dependencies
|
|
149
|
+
*/
|
|
150
|
+
private validateDependencies;
|
|
151
|
+
/**
|
|
152
|
+
* Check if provider is deferred
|
|
153
|
+
*/
|
|
154
|
+
private isDeferredProvider;
|
|
155
|
+
/**
|
|
156
|
+
* Check if provider is conditional
|
|
157
|
+
*/
|
|
158
|
+
private isConditionalProvider;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Common service providers
|
|
162
|
+
*/
|
|
163
|
+
/**
|
|
164
|
+
* Configuration service provider
|
|
165
|
+
*/
|
|
166
|
+
export declare class ConfigServiceProvider extends BaseServiceProvider {
|
|
167
|
+
readonly name = "config";
|
|
168
|
+
readonly priority = 100;
|
|
169
|
+
register(container: Container): void;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Logging service provider
|
|
173
|
+
*/
|
|
174
|
+
export declare class LoggingServiceProvider extends BaseServiceProvider {
|
|
175
|
+
readonly name = "logging";
|
|
176
|
+
readonly priority = 90;
|
|
177
|
+
register(container: Container): void;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Database service provider
|
|
181
|
+
*/
|
|
182
|
+
export declare class DatabaseServiceProvider extends BaseServiceProvider {
|
|
183
|
+
readonly name = "database";
|
|
184
|
+
readonly dependencies: readonly ["config", "logging"];
|
|
185
|
+
register(container: Container): void;
|
|
186
|
+
boot(container: Container): Promise<void>;
|
|
187
|
+
shutdown(container: Container): Promise<void>;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Cache service provider
|
|
191
|
+
*/
|
|
192
|
+
export declare class CacheServiceProvider extends BaseServiceProvider {
|
|
193
|
+
readonly name = "cache";
|
|
194
|
+
readonly dependencies: readonly ["config"];
|
|
195
|
+
register(container: Container): void;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Authentication service provider
|
|
199
|
+
*/
|
|
200
|
+
export declare class AuthServiceProvider extends BaseServiceProvider {
|
|
201
|
+
readonly name = "auth";
|
|
202
|
+
readonly dependencies: readonly ["config", "database"];
|
|
203
|
+
register(container: Container): void;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Validation service provider
|
|
207
|
+
*/
|
|
208
|
+
export declare class ValidationServiceProvider extends BaseServiceProvider {
|
|
209
|
+
readonly name = "validation";
|
|
210
|
+
register(container: Container): void;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Event service provider (deferred)
|
|
214
|
+
*/
|
|
215
|
+
export declare class EventServiceProvider extends BaseDeferredServiceProvider {
|
|
216
|
+
readonly name = "events";
|
|
217
|
+
provides(): (string | symbol | Function)[];
|
|
218
|
+
register(container: Container): void;
|
|
219
|
+
}
|
|
220
|
+
declare class ConfigService {
|
|
221
|
+
get(key: string, defaultValue?: any): any;
|
|
222
|
+
}
|
|
223
|
+
declare class Logger {
|
|
224
|
+
private config;
|
|
225
|
+
constructor(config: any);
|
|
226
|
+
log(message: string): void;
|
|
227
|
+
}
|
|
228
|
+
declare class ConsoleLogger extends Logger {
|
|
229
|
+
constructor();
|
|
230
|
+
}
|
|
231
|
+
declare class FileLogger extends Logger {
|
|
232
|
+
private filePath;
|
|
233
|
+
constructor(filePath: string);
|
|
234
|
+
}
|
|
235
|
+
declare class DatabaseConnection {
|
|
236
|
+
connect(): Promise<void>;
|
|
237
|
+
disconnect(): Promise<void>;
|
|
238
|
+
}
|
|
239
|
+
declare class UserRepository {
|
|
240
|
+
private db;
|
|
241
|
+
constructor(db: DatabaseConnection);
|
|
242
|
+
}
|
|
243
|
+
declare class PostRepository {
|
|
244
|
+
private db;
|
|
245
|
+
constructor(db: DatabaseConnection);
|
|
246
|
+
}
|
|
247
|
+
declare class CacheManager {
|
|
248
|
+
private store;
|
|
249
|
+
constructor(store: any);
|
|
250
|
+
}
|
|
251
|
+
declare class MemoryCache {
|
|
252
|
+
private cache;
|
|
253
|
+
}
|
|
254
|
+
declare class RedisCache {
|
|
255
|
+
private config;
|
|
256
|
+
constructor(config: any);
|
|
257
|
+
}
|
|
258
|
+
declare class AuthService {
|
|
259
|
+
private jwt;
|
|
260
|
+
private userRepo;
|
|
261
|
+
constructor(jwt: JwtService, userRepo: UserRepository);
|
|
262
|
+
}
|
|
263
|
+
declare class JwtService {
|
|
264
|
+
private config;
|
|
265
|
+
constructor(config: ConfigService);
|
|
266
|
+
}
|
|
267
|
+
declare class AuthGuard {
|
|
268
|
+
private auth;
|
|
269
|
+
constructor(auth: AuthService);
|
|
270
|
+
}
|
|
271
|
+
declare class Validator {
|
|
272
|
+
validate(_data: any, _rules: any): boolean;
|
|
273
|
+
}
|
|
274
|
+
declare class ValidationPipe {
|
|
275
|
+
private validator;
|
|
276
|
+
constructor(validator: Validator);
|
|
277
|
+
}
|
|
278
|
+
declare class EventBus {
|
|
279
|
+
emit(_event: string, _data: any): void;
|
|
280
|
+
}
|
|
281
|
+
declare class EventDispatcher {
|
|
282
|
+
private bus;
|
|
283
|
+
constructor(bus: EventBus);
|
|
284
|
+
}
|
|
285
|
+
export { AuthGuard, AuthService, CacheManager, ConfigService, ConsoleLogger, DatabaseConnection, EventBus, EventDispatcher, FileLogger, JwtService, Logger, MemoryCache, PostRepository, RedisCache, UserRepository, ValidationPipe, Validator, };
|
|
@@ -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';
|