@stacksjs/bun-router 0.0.13 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +770 -0
- package/README.md +584 -261
- package/package.json +43 -47
- package/bin/cli.ts +0 -9
- package/dist/auth.d.ts +0 -134
- package/dist/cache/lru-cache.d.ts +0 -139
- package/dist/cache/middleware-memoization.d.ts +0 -151
- package/dist/cache/route-cache-warmer.d.ts +0 -161
- package/dist/cache/sqlite-cache.d.ts +0 -209
- package/dist/cache/streaming-cache.d.ts +0 -132
- package/dist/chunk-1mvtv6jw.js +0 -13012
- package/dist/cli/colors.d.ts +0 -15
- package/dist/cli/index.d.ts +0 -10
- package/dist/cli/middleware.d.ts +0 -31
- package/dist/cli/openapi.d.ts +0 -17
- package/dist/cli/router.d.ts +0 -15
- package/dist/cli/routes.d.ts +0 -29
- package/dist/cli/utils.d.ts +0 -74
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +0 -3195
- package/dist/config.d.ts +0 -7
- package/dist/container/container.d.ts +0 -273
- package/dist/container/contextual-binding.d.ts +0 -240
- package/dist/container/decorators.d.ts +0 -141
- package/dist/container/service-provider.d.ts +0 -285
- package/dist/development/hot-reload.d.ts +0 -187
- package/dist/development/index.d.ts +0 -167
- package/dist/development/performance-profiler.d.ts +0 -217
- package/dist/development/route-debugger.d.ts +0 -154
- package/dist/development/route-inspector.d.ts +0 -211
- package/dist/development/typescript-utilities.d.ts +0 -209
- package/dist/docs.d.ts +0 -11
- package/dist/errors/circuit-breaker.d.ts +0 -195
- package/dist/errors/error-handler.d.ts +0 -88
- package/dist/errors/error-reporting.d.ts +0 -144
- package/dist/errors/exceptions.d.ts +0 -184
- package/dist/errors/graceful-degradation.d.ts +0 -154
- package/dist/errors/index.d.ts +0 -9
- package/dist/errors/router-errors.d.ts +0 -110
- package/dist/file-serving/static-files.d.ts +0 -143
- package/dist/index.d.ts +0 -14
- package/dist/index.js +0 -13933
- package/dist/middleware/auth.d.ts +0 -63
- package/dist/middleware/content_security_policy.d.ts +0 -53
- package/dist/middleware/cors.d.ts +0 -5
- package/dist/middleware/csrf.d.ts +0 -7
- package/dist/middleware/ddos_protection.d.ts +0 -39
- package/dist/middleware/file_security.d.ts +0 -26
- package/dist/middleware/file_upload.d.ts +0 -38
- package/dist/middleware/helmet.d.ts +0 -54
- package/dist/middleware/index.d.ts +0 -44
- package/dist/middleware/input_validation.d.ts +0 -45
- package/dist/middleware/json_body.d.ts +0 -4
- package/dist/middleware/performance_alerting.d.ts +0 -87
- package/dist/middleware/performance_dashboard.d.ts +0 -87
- package/dist/middleware/performance_monitor.d.ts +0 -209
- package/dist/middleware/pipeline.d.ts +0 -131
- package/dist/middleware/rate_limit.d.ts +0 -36
- package/dist/middleware/request_id.d.ts +0 -4
- package/dist/middleware/request_signing.d.ts +0 -153
- package/dist/middleware/request_tracer.d.ts +0 -72
- package/dist/middleware/response_cache.d.ts +0 -97
- package/dist/middleware/security.d.ts +0 -69
- package/dist/middleware/security_suite.d.ts +0 -46
- package/dist/middleware/session.d.ts +0 -23
- package/dist/model-binding/index.d.ts +0 -2
- package/dist/model-binding/model-middleware.d.ts +0 -118
- package/dist/model-binding/model-registry.d.ts +0 -164
- package/dist/model-binding.d.ts +0 -185
- package/dist/model-resolver-factory.d.ts +0 -31
- package/dist/observability/correlation.d.ts +0 -187
- package/dist/observability/health-checks.d.ts +0 -186
- package/dist/observability/index.d.ts +0 -60
- package/dist/observability/integration.d.ts +0 -147
- package/dist/observability/metrics.d.ts +0 -184
- package/dist/observability/tracing.d.ts +0 -187
- package/dist/optimization/bun-utilities.d.ts +0 -224
- package/dist/query-builder-integration.d.ts +0 -36
- package/dist/request/context.d.ts +0 -34
- package/dist/request/enhanced-request.d.ts +0 -213
- package/dist/request/macros.d.ts +0 -300
- package/dist/response/macros.d.ts +0 -245
- package/dist/response/response-factory.d.ts +0 -133
- package/dist/router/api-routes.d.ts +0 -5
- package/dist/router/file-based-routing.d.ts +0 -118
- package/dist/router/file-streaming.d.ts +0 -5
- package/dist/router/fluent-router.d.ts +0 -315
- package/dist/router/fluent-routing.d.ts +0 -271
- package/dist/router/group-organization.d.ts +0 -5
- package/dist/router/handler-resolver.d.ts +0 -24
- package/dist/router/http-methods.d.ts +0 -10
- package/dist/router/index.d.ts +0 -114
- package/dist/router/middleware-groups.d.ts +0 -94
- package/dist/router/middleware-integration.d.ts +0 -112
- package/dist/router/middleware.d.ts +0 -5
- package/dist/router/model-binding.d.ts +0 -5
- package/dist/router/optimized-route-matching.d.ts +0 -6
- package/dist/router/route-building.d.ts +0 -5
- package/dist/router/route-compiler.d.ts +0 -153
- package/dist/router/route-matching.d.ts +0 -5
- package/dist/router/route-trie.d.ts +0 -114
- package/dist/router/router.d.ts +0 -294
- package/dist/router/server.d.ts +0 -5
- package/dist/router/validation-integration.d.ts +0 -170
- package/dist/router/view-rendering.d.ts +0 -5
- package/dist/router/websocket.d.ts +0 -5
- package/dist/routing/route-caching.d.ts +0 -129
- package/dist/routing/route-throttling.d.ts +0 -150
- package/dist/routing/subdomain-routing.d.ts +0 -206
- package/dist/session/database-store.d.ts +0 -51
- package/dist/session/file-store.d.ts +0 -22
- package/dist/session/index.d.ts +0 -106
- package/dist/session/memory-store.d.ts +0 -21
- package/dist/session/redis-store.d.ts +0 -31
- package/dist/streaming/index.d.ts +0 -3
- package/dist/streaming/sse-handler.d.ts +0 -138
- package/dist/streaming/stream-handler.d.ts +0 -114
- package/dist/testing/auth-testing.d.ts +0 -156
- package/dist/testing/file-upload-testing.d.ts +0 -190
- package/dist/testing/index.d.ts +0 -10
- package/dist/testing/middleware-testing.d.ts +0 -138
- package/dist/testing/model-binding-testing.d.ts +0 -186
- package/dist/testing/performance-testing.d.ts +0 -235
- package/dist/testing/test-client.d.ts +0 -117
- package/dist/testing/test-request.d.ts +0 -85
- package/dist/testing/test-response.d.ts +0 -90
- package/dist/testing/types.d.ts +0 -207
- package/dist/testing/websocket-testing.d.ts +0 -227
- package/dist/types/controller-types.d.ts +0 -208
- package/dist/types/core.d.ts +0 -543
- package/dist/types/middleware-types.d.ts +0 -227
- package/dist/types/request-response-augmentation.d.ts +0 -261
- package/dist/types/route-inference.d.ts +0 -168
- package/dist/types.d.ts +0 -1782
- package/dist/url.d.ts +0 -56
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/query-preservation.d.ts +0 -48
- package/dist/utils.d.ts +0 -69
- package/dist/validation/validator.d.ts +0 -140
- package/dist/websocket/clustering.d.ts +0 -185
- package/src/auth.ts +0 -469
- package/src/cache/lru-cache.ts +0 -457
- package/src/cache/middleware-memoization.ts +0 -531
- package/src/cache/route-cache-warmer.ts +0 -486
- package/src/cache/sqlite-cache.ts +0 -783
- package/src/cache/streaming-cache.ts +0 -572
- package/src/cli/colors.ts +0 -29
- package/src/cli/index.ts +0 -287
- package/src/cli/middleware.ts +0 -291
- package/src/cli/openapi.ts +0 -407
- package/src/cli/router.ts +0 -188
- package/src/cli/routes.ts +0 -265
- package/src/cli/utils.ts +0 -531
- package/src/cli.ts +0 -5
- package/src/config.ts +0 -322
- package/src/container/container.ts +0 -740
- package/src/container/contextual-binding.ts +0 -603
- package/src/container/decorators.ts +0 -359
- package/src/container/service-provider.ts +0 -596
- package/src/development/hot-reload.ts +0 -673
- package/src/development/index.ts +0 -499
- package/src/development/performance-profiler.ts +0 -717
- package/src/development/route-debugger.ts +0 -527
- package/src/development/route-inspector.ts +0 -749
- package/src/development/typescript-utilities.ts +0 -682
- package/src/docs.ts +0 -397
- package/src/errors/circuit-breaker.ts +0 -732
- package/src/errors/error-handler.ts +0 -569
- package/src/errors/error-reporting.ts +0 -672
- package/src/errors/exceptions.ts +0 -536
- package/src/errors/graceful-degradation.ts +0 -621
- package/src/errors/index.ts +0 -21
- package/src/errors/router-errors.ts +0 -632
- package/src/file-serving/static-files.ts +0 -581
- package/src/index.ts +0 -14
- package/src/middleware/auth.ts +0 -219
- package/src/middleware/content_security_policy.ts +0 -215
- package/src/middleware/cors.ts +0 -74
- package/src/middleware/csrf.ts +0 -108
- package/src/middleware/ddos_protection.ts +0 -255
- package/src/middleware/file_security.ts +0 -191
- package/src/middleware/file_upload.ts +0 -264
- package/src/middleware/helmet.ts +0 -268
- package/src/middleware/index.ts +0 -117
- package/src/middleware/input_validation.ts +0 -449
- package/src/middleware/json_body.ts +0 -37
- package/src/middleware/performance_alerting.ts +0 -538
- package/src/middleware/performance_dashboard.ts +0 -661
- package/src/middleware/performance_monitor.ts +0 -943
- package/src/middleware/pipeline.ts +0 -489
- package/src/middleware/rate_limit.ts +0 -245
- package/src/middleware/request_id.ts +0 -36
- package/src/middleware/request_signing.ts +0 -636
- package/src/middleware/request_tracer.ts +0 -636
- package/src/middleware/response_cache.ts +0 -743
- package/src/middleware/security.ts +0 -482
- package/src/middleware/security_suite.ts +0 -257
- package/src/middleware/session.ts +0 -91
- package/src/model-binding/index.ts +0 -18
- package/src/model-binding/model-middleware.ts +0 -425
- package/src/model-binding/model-registry.ts +0 -550
- package/src/model-binding.ts +0 -370
- package/src/model-resolver-factory.ts +0 -106
- package/src/observability/correlation.ts +0 -691
- package/src/observability/health-checks.ts +0 -729
- package/src/observability/index.ts +0 -184
- package/src/observability/integration.ts +0 -548
- package/src/observability/metrics.ts +0 -753
- package/src/observability/tracing.ts +0 -638
- package/src/optimization/bun-utilities.ts +0 -778
- package/src/query-builder-integration.ts +0 -137
- package/src/request/context.ts +0 -62
- package/src/request/enhanced-request.ts +0 -857
- package/src/request/macros.ts +0 -688
- package/src/response/macros.ts +0 -612
- package/src/response/response-factory.ts +0 -596
- package/src/router/api-routes.ts +0 -243
- package/src/router/file-based-routing.ts +0 -670
- package/src/router/file-streaming.ts +0 -372
- package/src/router/fluent-router.ts +0 -927
- package/src/router/fluent-routing.ts +0 -797
- package/src/router/group-organization.ts +0 -213
- package/src/router/handler-resolver.ts +0 -291
- package/src/router/http-methods.ts +0 -377
- package/src/router/index.ts +0 -187
- package/src/router/middleware-groups.ts +0 -222
- package/src/router/middleware-integration.ts +0 -399
- package/src/router/middleware.ts +0 -231
- package/src/router/model-binding.ts +0 -215
- package/src/router/optimized-route-matching.ts +0 -253
- package/src/router/route-building.ts +0 -212
- package/src/router/route-compiler.ts +0 -702
- package/src/router/route-matching.ts +0 -349
- package/src/router/route-trie.ts +0 -464
- package/src/router/router.ts +0 -1581
- package/src/router/server.ts +0 -462
- package/src/router/validation-integration.ts +0 -443
- package/src/router/view-rendering.ts +0 -233
- package/src/router/websocket.ts +0 -100
- package/src/routing/route-caching.ts +0 -402
- package/src/routing/route-throttling.ts +0 -469
- package/src/routing/subdomain-routing.ts +0 -492
- package/src/session/database-store.ts +0 -109
- package/src/session/file-store.ts +0 -148
- package/src/session/index.ts +0 -244
- package/src/session/memory-store.ts +0 -88
- package/src/session/redis-store.ts +0 -93
- package/src/streaming/index.ts +0 -17
- package/src/streaming/sse-handler.ts +0 -482
- package/src/streaming/stream-handler.ts +0 -552
- package/src/testing/auth-testing.ts +0 -446
- package/src/testing/file-upload-testing.ts +0 -543
- package/src/testing/index.ts +0 -10
- package/src/testing/middleware-testing.ts +0 -322
- package/src/testing/model-binding-testing.ts +0 -645
- package/src/testing/performance-testing.ts +0 -738
- package/src/testing/test-client.ts +0 -310
- package/src/testing/test-request.ts +0 -315
- package/src/testing/test-response.ts +0 -332
- package/src/testing/types.ts +0 -224
- package/src/testing/websocket-testing.ts +0 -590
- package/src/types/controller-types.ts +0 -385
- package/src/types/core.ts +0 -683
- package/src/types/middleware-types.ts +0 -419
- package/src/types/request-response-augmentation.ts +0 -489
- package/src/types/route-inference.ts +0 -357
- package/src/types.ts +0 -2055
- package/src/url.ts +0 -126
- package/src/utils/index.ts +0 -1
- package/src/utils/query-preservation.ts +0 -201
- package/src/utils.ts +0 -327
- package/src/validation/validator.ts +0 -685
- package/src/websocket/clustering.ts +0 -762
package/dist/router/router.d.ts
DELETED
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
import type { Server } from 'bun';
|
|
2
|
-
import type { MiddlewareDependency, MiddlewarePipeline, MiddlewarePipelineStats, MiddlewareSkipCondition } from '../middleware/pipeline';
|
|
3
|
-
import type { ActionHandler, CookieOptions, EnhancedRequest, MiddlewareHandler, Route, RouteGroup, RouteHandler, RouterConfig, WebSocketConfig, WebSocketData } from '../types';
|
|
4
|
-
/**
|
|
5
|
-
* Route compiler interface for pattern matching
|
|
6
|
-
*/
|
|
7
|
-
export interface RouteCompiler {
|
|
8
|
-
compile: (path: string) => RegExp;
|
|
9
|
-
match: (path: string, pattern: RegExp) => Record<string, string> | null;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Middleware cache info interface
|
|
13
|
-
*/
|
|
14
|
-
export interface MiddlewareCacheInfo {
|
|
15
|
-
size: number;
|
|
16
|
-
routes: string[];
|
|
17
|
-
hitRate: number;
|
|
18
|
-
}
|
|
19
|
-
export type { ActionHandler, MiddlewareHandler, Route, RouteGroup, RouteHandler, RouterConfig, WebSocketConfig, };
|
|
20
|
-
export type MiddlewareCondition = (_req: EnhancedRequest) => boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Unified Router class with advanced middleware patterns
|
|
23
|
-
*/
|
|
24
|
-
export declare class Router {
|
|
25
|
-
routes: Route[];
|
|
26
|
-
currentGroup: RouteGroup | null;
|
|
27
|
-
globalMiddleware: MiddlewareHandler[];
|
|
28
|
-
namedRoutes: Map<string, Route>;
|
|
29
|
-
fallbackHandler: ActionHandler | null;
|
|
30
|
-
patterns: Map<string, string>;
|
|
31
|
-
currentDomain: string | null;
|
|
32
|
-
domains: Record<string, Route[]>;
|
|
33
|
-
serverInstance: Server<WebSocketData> | null;
|
|
34
|
-
wsConfig: WebSocketConfig | null;
|
|
35
|
-
errorHandler: ((_error: Error) => Response | Promise<Response>) | null;
|
|
36
|
-
templateCache: Map<string, string>;
|
|
37
|
-
routeCache: Map<string, {
|
|
38
|
-
route: Route;
|
|
39
|
-
params: Record<string, string>;
|
|
40
|
-
}>;
|
|
41
|
-
staticRoutes: Map<string, Map<string, Route>>;
|
|
42
|
-
staticResponses: Map<string, Response>;
|
|
43
|
-
precompiledPatterns: Map<string, RegExp>;
|
|
44
|
-
domainPatternCache: Map<string, RegExp>;
|
|
45
|
-
routeCompiler: RouteCompiler | null;
|
|
46
|
-
private middlewareGroups;
|
|
47
|
-
private namedMiddleware;
|
|
48
|
-
private conditionalMiddleware;
|
|
49
|
-
_middlewarePipeline?: MiddlewarePipeline;
|
|
50
|
-
config: RouterConfig;
|
|
51
|
-
constructor(config?: Partial<RouterConfig>);
|
|
52
|
-
/**
|
|
53
|
-
* Initialize default named middleware
|
|
54
|
-
*/
|
|
55
|
-
private initializeDefaultMiddleware;
|
|
56
|
-
/**
|
|
57
|
-
* Register a middleware group
|
|
58
|
-
*/
|
|
59
|
-
middlewareGroup(name: string, middlewareNames: string[]): this;
|
|
60
|
-
/**
|
|
61
|
-
* Apply middleware group to routes
|
|
62
|
-
*/
|
|
63
|
-
middlewareGroupRoutes(name: string): RouteGroupBuilder;
|
|
64
|
-
/**
|
|
65
|
-
* Conditional middleware execution
|
|
66
|
-
*/
|
|
67
|
-
when(condition: MiddlewareCondition): ConditionalBuilder;
|
|
68
|
-
/**
|
|
69
|
-
* Apply middleware with parameters
|
|
70
|
-
*/
|
|
71
|
-
middleware(middlewareName: string): MiddlewareBuilder;
|
|
72
|
-
/**
|
|
73
|
-
* Get the server instance
|
|
74
|
-
*/
|
|
75
|
-
getServer(): Server<WebSocketData> | null;
|
|
76
|
-
/**
|
|
77
|
-
* Extend the router with custom methods
|
|
78
|
-
*/
|
|
79
|
-
extend(methods: Record<string, (...args: unknown[]) => unknown>): Router;
|
|
80
|
-
/**
|
|
81
|
-
* Register routes from a package or module file.
|
|
82
|
-
* Loads the route file within an optional group (prefix + middleware).
|
|
83
|
-
*/
|
|
84
|
-
register(routePath: string, options?: {
|
|
85
|
-
prefix?: string;
|
|
86
|
-
middleware?: MiddlewareHandler[];
|
|
87
|
-
}): Promise<Router>;
|
|
88
|
-
/**
|
|
89
|
-
* Invalidate route caches
|
|
90
|
-
*/
|
|
91
|
-
invalidateCache(): void;
|
|
92
|
-
/**
|
|
93
|
-
* Internal method to add a route with full HTTP method support
|
|
94
|
-
* This is the core route registration method used by get/post/put/patch/delete
|
|
95
|
-
*/
|
|
96
|
-
registerRoute(method: string, path: string, handler: ActionHandler, type?: 'api' | 'web', name?: string, middleware?: (string | MiddlewareHandler)[]): Router;
|
|
97
|
-
/**
|
|
98
|
-
* Resolve middleware from string or handler (synchronous)
|
|
99
|
-
*/
|
|
100
|
-
resolveMiddleware(middleware: string | MiddlewareHandler): MiddlewareHandler | null;
|
|
101
|
-
/**
|
|
102
|
-
* HTTP GET method
|
|
103
|
-
*/
|
|
104
|
-
get(path: string, handler: ActionHandler, type?: 'api' | 'web', name?: string, middleware?: (string | MiddlewareHandler)[]): Router;
|
|
105
|
-
/**
|
|
106
|
-
* HTTP POST method
|
|
107
|
-
*/
|
|
108
|
-
post(path: string, handler: ActionHandler, type?: 'api' | 'web', name?: string, middleware?: (string | MiddlewareHandler)[]): Router;
|
|
109
|
-
/**
|
|
110
|
-
* HTTP PUT method
|
|
111
|
-
*/
|
|
112
|
-
put(path: string, handler: ActionHandler, type?: 'api' | 'web', name?: string, middleware?: (string | MiddlewareHandler)[]): Router;
|
|
113
|
-
/**
|
|
114
|
-
* HTTP PATCH method
|
|
115
|
-
*/
|
|
116
|
-
patch(path: string, handler: ActionHandler, type?: 'api' | 'web', name?: string, middleware?: (string | MiddlewareHandler)[]): Router;
|
|
117
|
-
/**
|
|
118
|
-
* HTTP DELETE method
|
|
119
|
-
*/
|
|
120
|
-
delete(path: string, handler: ActionHandler, type?: 'api' | 'web', name?: string, middleware?: (string | MiddlewareHandler)[]): Router;
|
|
121
|
-
/**
|
|
122
|
-
* HTTP OPTIONS method
|
|
123
|
-
*/
|
|
124
|
-
options(path: string, handler: ActionHandler, type?: 'api' | 'web', name?: string, middleware?: (string | MiddlewareHandler)[]): Router;
|
|
125
|
-
/**
|
|
126
|
-
* Register route for multiple HTTP methods
|
|
127
|
-
*/
|
|
128
|
-
match(methods: string[], path: string, handler: ActionHandler, type?: 'api' | 'web', name?: string, middleware?: (string | MiddlewareHandler)[]): Router;
|
|
129
|
-
/**
|
|
130
|
-
* Register route for any HTTP method
|
|
131
|
-
*/
|
|
132
|
-
any(path: string, handler: ActionHandler, type?: 'api' | 'web', name?: string, middleware?: (string | MiddlewareHandler)[]): Router;
|
|
133
|
-
/**
|
|
134
|
-
* Set fallback handler for unmatched routes
|
|
135
|
-
*/
|
|
136
|
-
fallback(handler: ActionHandler): Router;
|
|
137
|
-
/**
|
|
138
|
-
* Generate URL for a named route
|
|
139
|
-
*/
|
|
140
|
-
route(name: string, params?: Record<string, string>): string;
|
|
141
|
-
/**
|
|
142
|
-
* Set error handler
|
|
143
|
-
*/
|
|
144
|
-
onError(handler: (error: Error) => Response | Promise<Response>): Router;
|
|
145
|
-
/**
|
|
146
|
-
* Create redirect response
|
|
147
|
-
*/
|
|
148
|
-
redirect(url: string, status?: 301 | 302 | 303 | 307 | 308): Response;
|
|
149
|
-
/**
|
|
150
|
-
* Create permanent redirect response
|
|
151
|
-
*/
|
|
152
|
-
permanentRedirect(url: string): Response;
|
|
153
|
-
/**
|
|
154
|
-
* Register redirect route
|
|
155
|
-
*/
|
|
156
|
-
redirectRoute(from: string, to: string, status?: 301 | 302 | 303 | 307 | 308): Router;
|
|
157
|
-
/**
|
|
158
|
-
* Start the HTTP server
|
|
159
|
-
*/
|
|
160
|
-
serve(options?: {
|
|
161
|
-
port?: number;
|
|
162
|
-
hostname?: string;
|
|
163
|
-
}): Promise<Server<WebSocketData>>;
|
|
164
|
-
/**
|
|
165
|
-
* Handle an HTTP request
|
|
166
|
-
*/
|
|
167
|
-
handleRequest(req: Request): Promise<Response>;
|
|
168
|
-
/**
|
|
169
|
-
* Get all allowed HTTP methods for a given path
|
|
170
|
-
* Used to determine if a 405 Method Not Allowed should be returned instead of 404
|
|
171
|
-
*/
|
|
172
|
-
getAllowedMethods(path: string, domain?: string): string[];
|
|
173
|
-
/**
|
|
174
|
-
* Match a route based on the path, method, and domain
|
|
175
|
-
*/
|
|
176
|
-
matchRoute(path: string, method: string, domain?: string): {
|
|
177
|
-
route: Route;
|
|
178
|
-
params: Record<string, string>;
|
|
179
|
-
} | undefined;
|
|
180
|
-
/**
|
|
181
|
-
* Enhance a request with params and other utilities
|
|
182
|
-
*/
|
|
183
|
-
enhanceRequest(req: Request, params?: Record<string, string>): EnhancedRequest;
|
|
184
|
-
/**
|
|
185
|
-
* Apply modified cookies to a response
|
|
186
|
-
*/
|
|
187
|
-
applyModifiedCookies(response: Response, req: EnhancedRequest): Response;
|
|
188
|
-
/**
|
|
189
|
-
* Serialize a cookie for the Set-Cookie header
|
|
190
|
-
*/
|
|
191
|
-
serializeCookie(name: string, value: string, options?: CookieOptions): string;
|
|
192
|
-
/**
|
|
193
|
-
* Build an optimized middleware chain
|
|
194
|
-
*/
|
|
195
|
-
buildMiddlewareChain(middlewares: MiddlewareHandler[]): (req: EnhancedRequest) => Promise<Response | null>;
|
|
196
|
-
/**
|
|
197
|
-
* Run middleware stack for a request
|
|
198
|
-
*/
|
|
199
|
-
runMiddleware(req: EnhancedRequest, middlewareStack: MiddlewareHandler[]): Promise<Response | null>;
|
|
200
|
-
/**
|
|
201
|
-
* Resolve an action handler
|
|
202
|
-
*/
|
|
203
|
-
resolveHandler(handler: ActionHandler, req: EnhancedRequest): Promise<Response>;
|
|
204
|
-
/**
|
|
205
|
-
* Add middleware to the router
|
|
206
|
-
*/
|
|
207
|
-
use(...middleware: (string | MiddlewareHandler)[]): Router;
|
|
208
|
-
/**
|
|
209
|
-
* Create a route group with prefix and middleware
|
|
210
|
-
*/
|
|
211
|
-
group(options: {
|
|
212
|
-
prefix?: string;
|
|
213
|
-
middleware?: (string | MiddlewareHandler)[];
|
|
214
|
-
}, callback: () => void | Promise<void>): Router;
|
|
215
|
-
/**
|
|
216
|
-
* Add route to the router
|
|
217
|
-
*/
|
|
218
|
-
addRoute(route: Route): this;
|
|
219
|
-
/**
|
|
220
|
-
* Register middleware dependency
|
|
221
|
-
*/
|
|
222
|
-
registerMiddlewareDependency(dependency: MiddlewareDependency): this;
|
|
223
|
-
/**
|
|
224
|
-
* Register middleware skip conditions
|
|
225
|
-
*/
|
|
226
|
-
registerMiddlewareSkipConditions(_middlewareName: string, _conditions: MiddlewareSkipCondition[]): this;
|
|
227
|
-
/**
|
|
228
|
-
* Get middleware statistics
|
|
229
|
-
*/
|
|
230
|
-
getMiddlewareStats(): MiddlewarePipelineStats | Record<string, never>;
|
|
231
|
-
/**
|
|
232
|
-
* Get middleware cache info
|
|
233
|
-
*/
|
|
234
|
-
getMiddlewareCacheInfo(): MiddlewareCacheInfo;
|
|
235
|
-
/**
|
|
236
|
-
* Clear middleware cache
|
|
237
|
-
*/
|
|
238
|
-
clearMiddlewareCache(): this;
|
|
239
|
-
/**
|
|
240
|
-
* Execute middleware pipeline
|
|
241
|
-
*/
|
|
242
|
-
executeMiddleware(middleware: MiddlewareHandler[], request: EnhancedRequest, handler: () => Promise<Response>): Promise<Response>;
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Builder for conditional middleware
|
|
246
|
-
*/
|
|
247
|
-
export declare class ConditionalBuilder {
|
|
248
|
-
private router;
|
|
249
|
-
private condition;
|
|
250
|
-
constructor(router: Router, condition: MiddlewareCondition);
|
|
251
|
-
middleware(middlewareName: string): this;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Builder for middleware with parameters
|
|
255
|
-
*/
|
|
256
|
-
export declare class MiddlewareBuilder {
|
|
257
|
-
private router;
|
|
258
|
-
private middleware;
|
|
259
|
-
constructor(router: Router, middleware: MiddlewareHandler[]);
|
|
260
|
-
get(_path: string, _handler: RouteHandler): this;
|
|
261
|
-
post(_path: string, _handler: RouteHandler): this;
|
|
262
|
-
put(_path: string, _handler: RouteHandler): this;
|
|
263
|
-
delete(_path: string, _handler: RouteHandler): this;
|
|
264
|
-
}
|
|
265
|
-
/**
|
|
266
|
-
* Builder for route groups with middleware
|
|
267
|
-
*/
|
|
268
|
-
export declare class RouteGroupBuilder {
|
|
269
|
-
private router;
|
|
270
|
-
private middleware;
|
|
271
|
-
constructor(router: Router, middleware: MiddlewareHandler[]);
|
|
272
|
-
get(_path: string, _handler: RouteHandler): this;
|
|
273
|
-
post(_path: string, _handler: RouteHandler): this;
|
|
274
|
-
put(_path: string, _handler: RouteHandler): this;
|
|
275
|
-
delete(_path: string, _handler: RouteHandler): this;
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Attach bun-router's request macros (`bearerToken`, `getParam`, `cookie`,
|
|
279
|
-
* `cookies`, `header`, `params`, plus the Laravel-style input helpers
|
|
280
|
-
* `get`, `input`, `string`, `integer`, `float`, `boolean`, `array`, `has`,
|
|
281
|
-
* `filled`, etc.) to a request.
|
|
282
|
-
*
|
|
283
|
-
* Idempotent: calling on an already-enhanced request returns it unchanged.
|
|
284
|
-
* We sniff `req.bearerToken` as the marker — cheap and reliable since no
|
|
285
|
-
* native Request has it.
|
|
286
|
-
*
|
|
287
|
-
* @example
|
|
288
|
-
* import { applyRequestEnhancements } from '@stacksjs/bun-router'
|
|
289
|
-
*
|
|
290
|
-
* const enhanced = applyRequestEnhancements(req, { id: '42' })
|
|
291
|
-
* enhanced.bearerToken() // → string | null
|
|
292
|
-
* enhanced.getParam('id') // → '42'
|
|
293
|
-
*/
|
|
294
|
-
export declare function applyRequestEnhancements(req: Request | EnhancedRequest, params?: Record<string, string>): EnhancedRequest;
|
package/dist/router/server.d.ts
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Router Validation Integration
|
|
3
|
-
*
|
|
4
|
-
* Integration layer for validation and macros with the router.
|
|
5
|
-
* Provides RouteBuilder and FluentRouter for building routes with validation support.
|
|
6
|
-
*/
|
|
7
|
-
import type { EnhancedRequest, MiddlewareHandler, RouteHandler } from '../types';
|
|
8
|
-
import type { ValidationRules, ValidatorConfig } from '../validation/validator';
|
|
9
|
-
/**
|
|
10
|
-
* Route builder with validation support
|
|
11
|
-
*/
|
|
12
|
-
export declare class RouteBuilder {
|
|
13
|
-
private method;
|
|
14
|
-
private path;
|
|
15
|
-
private handler;
|
|
16
|
-
private validationRules?;
|
|
17
|
-
private validatorConfig?;
|
|
18
|
-
constructor(method: string, path: string, handler: RouteHandler);
|
|
19
|
-
/**
|
|
20
|
-
* Add validation to the route
|
|
21
|
-
*/
|
|
22
|
-
validate(rules: ValidationRules, config?: ValidatorConfig): this;
|
|
23
|
-
/**
|
|
24
|
-
* Build the route with middleware
|
|
25
|
-
*/
|
|
26
|
-
build(): {
|
|
27
|
-
method: string;
|
|
28
|
-
path: string;
|
|
29
|
-
handler: RouteHandler;
|
|
30
|
-
middleware?: MiddlewareHandler[];
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Fluent router for enhanced routing functionality
|
|
35
|
-
*/
|
|
36
|
-
export declare class FluentRouter {
|
|
37
|
-
private routes;
|
|
38
|
-
/**
|
|
39
|
-
* Create GET route
|
|
40
|
-
*/
|
|
41
|
-
get(path: string, handler: RouteHandler): RouteBuilder;
|
|
42
|
-
/**
|
|
43
|
-
* Create POST route
|
|
44
|
-
*/
|
|
45
|
-
post(path: string, handler: RouteHandler): RouteBuilder;
|
|
46
|
-
/**
|
|
47
|
-
* Create PUT route
|
|
48
|
-
*/
|
|
49
|
-
put(path: string, handler: RouteHandler): RouteBuilder;
|
|
50
|
-
/**
|
|
51
|
-
* Create PATCH route
|
|
52
|
-
*/
|
|
53
|
-
patch(path: string, handler: RouteHandler): RouteBuilder;
|
|
54
|
-
/**
|
|
55
|
-
* Create DELETE route
|
|
56
|
-
*/
|
|
57
|
-
delete(path: string, handler: RouteHandler): RouteBuilder;
|
|
58
|
-
/**
|
|
59
|
-
* Register a built route
|
|
60
|
-
*/
|
|
61
|
-
register(routeBuilder: RouteBuilder): void;
|
|
62
|
-
/**
|
|
63
|
-
* Get all registered routes
|
|
64
|
-
*/
|
|
65
|
-
getRoutes(): Array<{
|
|
66
|
-
method: string;
|
|
67
|
-
path: string;
|
|
68
|
-
handler: RouteHandler;
|
|
69
|
-
middleware?: MiddlewareHandler[];
|
|
70
|
-
}>;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Router middleware factory for request/response enhancements
|
|
74
|
-
*/
|
|
75
|
-
export declare function createEnhancementMiddleware(): (req: EnhancedRequest, next: () => Promise<Response>) => Promise<Response>;
|
|
76
|
-
/**
|
|
77
|
-
* Validation middleware factory with fluent API
|
|
78
|
-
*/
|
|
79
|
-
export declare class ValidationMiddlewareBuilder {
|
|
80
|
-
private rules;
|
|
81
|
-
private config;
|
|
82
|
-
/**
|
|
83
|
-
* Add validation rule for field
|
|
84
|
-
*/
|
|
85
|
-
field(name: string, rules: string): this;
|
|
86
|
-
/**
|
|
87
|
-
* Add multiple validation rules
|
|
88
|
-
*/
|
|
89
|
-
fields(rules: ValidationRules): this;
|
|
90
|
-
/**
|
|
91
|
-
* Set validator configuration
|
|
92
|
-
*/
|
|
93
|
-
configure(config: ValidatorConfig): this;
|
|
94
|
-
/**
|
|
95
|
-
* Stop on first validation failure
|
|
96
|
-
*/
|
|
97
|
-
stopOnFirstFailure(): this;
|
|
98
|
-
/**
|
|
99
|
-
* Set custom error messages
|
|
100
|
-
*/
|
|
101
|
-
messages(messages: Record<string, string>): this;
|
|
102
|
-
/**
|
|
103
|
-
* Set custom field attributes
|
|
104
|
-
*/
|
|
105
|
-
attributes(attributes: Record<string, string>): this;
|
|
106
|
-
/**
|
|
107
|
-
* Build the validation middleware
|
|
108
|
-
*/
|
|
109
|
-
build(): MiddlewareHandler;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Factory function to create validation middleware builder
|
|
113
|
-
*/
|
|
114
|
-
export declare function validate(): ValidationMiddlewareBuilder;
|
|
115
|
-
/** Resource handlers configuration */
|
|
116
|
-
export interface ResourceHandlers {
|
|
117
|
-
index?: RouteHandler;
|
|
118
|
-
show?: RouteHandler;
|
|
119
|
-
store?: RouteHandler;
|
|
120
|
-
update?: RouteHandler;
|
|
121
|
-
destroy?: RouteHandler;
|
|
122
|
-
}
|
|
123
|
-
/** Resource validation configuration */
|
|
124
|
-
export interface ResourceValidation {
|
|
125
|
-
store?: ValidationRules;
|
|
126
|
-
update?: ValidationRules;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Route helper functions
|
|
130
|
-
*/
|
|
131
|
-
export declare const RouteHelpers: {
|
|
132
|
-
validated: (method: string, path: string, handler: RouteHandler, rules: ValidationRules, config?: ValidatorConfig) => RouteBuilder;
|
|
133
|
-
apiRoute: (method: string, path: string, handler: RouteHandler, rules?: ValidationRules) => RouteBuilder;
|
|
134
|
-
resourceRoute: (basePath: string, handlers: ResourceHandlers, validation?: ResourceValidation) => RouteBuilder[];
|
|
135
|
-
};
|
|
136
|
-
/**
|
|
137
|
-
* Fluent router factory
|
|
138
|
-
*/
|
|
139
|
-
export declare function createFluentRouter(): FluentRouter;
|
|
140
|
-
/**
|
|
141
|
-
* Middleware composition helpers
|
|
142
|
-
*/
|
|
143
|
-
export declare const MiddlewareHelpers: {
|
|
144
|
-
/**
|
|
145
|
-
* Compose multiple middleware into one
|
|
146
|
-
*/
|
|
147
|
-
compose: (...middleware: MiddlewareHandler[]) => MiddlewareHandler;
|
|
148
|
-
/**
|
|
149
|
-
* Create conditional middleware
|
|
150
|
-
*/
|
|
151
|
-
when: (condition: (req: EnhancedRequest) => boolean, middleware: MiddlewareHandler) => MiddlewareHandler;
|
|
152
|
-
/**
|
|
153
|
-
* Create middleware that runs unless condition is met
|
|
154
|
-
*/
|
|
155
|
-
unless: (condition: (req: EnhancedRequest) => boolean, middleware: MiddlewareHandler) => MiddlewareHandler;
|
|
156
|
-
/**
|
|
157
|
-
* Create middleware group
|
|
158
|
-
*/
|
|
159
|
-
group: (middleware: MiddlewareHandler[]) => MiddlewareHandler;
|
|
160
|
-
};
|
|
161
|
-
/** Enhancement middleware type */
|
|
162
|
-
export type EnhancementMiddleware = (req: EnhancedRequest, next: () => Promise<Response>) => Promise<Response>;
|
|
163
|
-
/**
|
|
164
|
-
* Request/Response enhancement presets
|
|
165
|
-
*/
|
|
166
|
-
export declare const EnhancementPresets: {
|
|
167
|
-
api: () => EnhancementMiddleware[];
|
|
168
|
-
web: () => EnhancementMiddleware[];
|
|
169
|
-
validation: (rules: ValidationRules, config?: ValidatorConfig) => EnhancementMiddleware[];
|
|
170
|
-
};
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import type { EnhancedRequest } from '../types';
|
|
2
|
-
import { LRUCache } from '../cache/lru-cache';
|
|
3
|
-
/**
|
|
4
|
-
* Route caching configuration
|
|
5
|
-
*/
|
|
6
|
-
export interface RouteCacheConfig {
|
|
7
|
-
ttl?: number;
|
|
8
|
-
maxSize?: number;
|
|
9
|
-
tags?: string[];
|
|
10
|
-
varyBy?: string[];
|
|
11
|
-
excludeQuery?: string[];
|
|
12
|
-
condition?: (req: EnhancedRequest) => boolean;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Cached response metadata
|
|
16
|
-
*/
|
|
17
|
-
export interface CachedResponse {
|
|
18
|
-
response: Response;
|
|
19
|
-
headers: Record<string, string>;
|
|
20
|
-
status: number;
|
|
21
|
-
body: string | Uint8Array;
|
|
22
|
-
timestamp: number;
|
|
23
|
-
ttl?: number;
|
|
24
|
-
tags: string[];
|
|
25
|
-
etag?: string;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Cache key generator for route responses
|
|
29
|
-
*/
|
|
30
|
-
export declare class RouteCacheKeyGenerator {
|
|
31
|
-
/**
|
|
32
|
-
* Generate cache key from request
|
|
33
|
-
*/
|
|
34
|
-
static generateKey(req: EnhancedRequest, config: RouteCacheConfig): string;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Route cache manager with tag-based invalidation
|
|
38
|
-
*/
|
|
39
|
-
export declare class RouteCacheManager {
|
|
40
|
-
private cache;
|
|
41
|
-
private tagIndex;
|
|
42
|
-
private keyTags;
|
|
43
|
-
constructor(maxSize?: number);
|
|
44
|
-
/**
|
|
45
|
-
* Get cached response
|
|
46
|
-
*/
|
|
47
|
-
get(key: string): Promise<CachedResponse | null>;
|
|
48
|
-
/**
|
|
49
|
-
* Set cached response
|
|
50
|
-
*/
|
|
51
|
-
set(key: string, response: CachedResponse): Promise<void>;
|
|
52
|
-
/**
|
|
53
|
-
* Delete cached response
|
|
54
|
-
*/
|
|
55
|
-
delete(key: string): boolean;
|
|
56
|
-
/**
|
|
57
|
-
* Invalidate cache by tags
|
|
58
|
-
*/
|
|
59
|
-
invalidateByTags(tags: string[]): number;
|
|
60
|
-
/**
|
|
61
|
-
* Clear all cache
|
|
62
|
-
*/
|
|
63
|
-
clear(): void;
|
|
64
|
-
/**
|
|
65
|
-
* Get cache statistics
|
|
66
|
-
*/
|
|
67
|
-
getStats(): ReturnType<LRUCache<CachedResponse>['getStats']> & {
|
|
68
|
-
totalTags: number;
|
|
69
|
-
totalKeyTagMappings: number;
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Global route cache manager instance
|
|
74
|
-
*/
|
|
75
|
-
export declare const routeCacheManager: RouteCacheManager;
|
|
76
|
-
/**
|
|
77
|
-
* Create route caching middleware
|
|
78
|
-
*/
|
|
79
|
-
export declare function createRouteCacheMiddleware(config: RouteCacheConfig): (req: EnhancedRequest, next: () => Promise<Response>) => Promise<Response>;
|
|
80
|
-
/**
|
|
81
|
-
* Factory functions for common cache configurations
|
|
82
|
-
*/
|
|
83
|
-
export declare const RouteCacheFactory: {
|
|
84
|
-
/**
|
|
85
|
-
* Short-term cache (5 minutes)
|
|
86
|
-
*/
|
|
87
|
-
short: (tags?: string[]) => RouteCacheConfig;
|
|
88
|
-
/**
|
|
89
|
-
* Medium-term cache (1 hour)
|
|
90
|
-
*/
|
|
91
|
-
medium: (tags?: string[]) => RouteCacheConfig;
|
|
92
|
-
/**
|
|
93
|
-
* Long-term cache (24 hours)
|
|
94
|
-
*/
|
|
95
|
-
long: (tags?: string[]) => RouteCacheConfig;
|
|
96
|
-
/**
|
|
97
|
-
* API response cache with common settings
|
|
98
|
-
*/
|
|
99
|
-
api: (tags?: string[]) => RouteCacheConfig;
|
|
100
|
-
/**
|
|
101
|
-
* Static content cache
|
|
102
|
-
*/
|
|
103
|
-
static: (tags?: string[]) => RouteCacheConfig;
|
|
104
|
-
/**
|
|
105
|
-
* User-specific cache
|
|
106
|
-
*/
|
|
107
|
-
user: (tags?: string[]) => RouteCacheConfig;
|
|
108
|
-
};
|
|
109
|
-
/**
|
|
110
|
-
* Cache invalidation utilities
|
|
111
|
-
*/
|
|
112
|
-
export declare const CacheInvalidation: {
|
|
113
|
-
/**
|
|
114
|
-
* Invalidate by tags
|
|
115
|
-
*/
|
|
116
|
-
byTags: (tags: string[]) => number;
|
|
117
|
-
/**
|
|
118
|
-
* Invalidate all user-related cache
|
|
119
|
-
*/
|
|
120
|
-
forUser: (userId: string) => number;
|
|
121
|
-
/**
|
|
122
|
-
* Invalidate model-related cache
|
|
123
|
-
*/
|
|
124
|
-
forModel: (modelName: string, id?: string) => number;
|
|
125
|
-
/**
|
|
126
|
-
* Clear all cache
|
|
127
|
-
*/
|
|
128
|
-
all: () => void;
|
|
129
|
-
};
|