@stacksjs/bun-router 0.0.2 → 0.0.3

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 (128) hide show
  1. package/dist/{chunk-r15a48wc.js → chunk-cjdekj87.js} +536 -98
  2. package/dist/cli.d.ts +1 -0
  3. package/dist/cli.js +2 -2
  4. package/dist/index.d.ts +3 -1
  5. package/dist/index.js +454 -119
  6. package/package.json +6 -8
  7. package/dist/auth.d.ts +0 -77
  8. package/dist/cache/lru-cache.d.ts +0 -88
  9. package/dist/cache/middleware-memoization.d.ts +0 -101
  10. package/dist/cache/route-cache-warmer.d.ts +0 -125
  11. package/dist/cache/sqlite-cache.d.ts +0 -114
  12. package/dist/cache/streaming-cache.d.ts +0 -86
  13. package/dist/cli/colors.d.ts +0 -12
  14. package/dist/cli/index.d.ts +0 -10
  15. package/dist/cli/middleware.d.ts +0 -31
  16. package/dist/cli/openapi.d.ts +0 -17
  17. package/dist/cli/router.d.ts +0 -15
  18. package/dist/cli/routes.d.ts +0 -30
  19. package/dist/cli/utils.d.ts +0 -68
  20. package/dist/config.d.ts +0 -274
  21. package/dist/container/container.d.ts +0 -141
  22. package/dist/container/contextual-binding.d.ts +0 -112
  23. package/dist/container/decorators.d.ts +0 -114
  24. package/dist/container/service-provider.d.ts +0 -221
  25. package/dist/development/hot-reload.d.ts +0 -129
  26. package/dist/development/index.d.ts +0 -144
  27. package/dist/development/performance-profiler.d.ts +0 -152
  28. package/dist/development/route-debugger.d.ts +0 -102
  29. package/dist/development/route-inspector.d.ts +0 -142
  30. package/dist/development/typescript-utilities.d.ts +0 -116
  31. package/dist/docs.d.ts +0 -10
  32. package/dist/errors/circuit-breaker.d.ts +0 -138
  33. package/dist/errors/error-handler.d.ts +0 -57
  34. package/dist/errors/error-reporting.d.ts +0 -135
  35. package/dist/errors/exceptions.d.ts +0 -178
  36. package/dist/errors/graceful-degradation.d.ts +0 -130
  37. package/dist/errors/index.d.ts +0 -6
  38. package/dist/errors/router-errors.d.ts +0 -97
  39. package/dist/file-serving/static-files.d.ts +0 -98
  40. package/dist/middleware/auth.d.ts +0 -34
  41. package/dist/middleware/content_security_policy.d.ts +0 -54
  42. package/dist/middleware/cors.d.ts +0 -5
  43. package/dist/middleware/csrf.d.ts +0 -7
  44. package/dist/middleware/ddos_protection.d.ts +0 -47
  45. package/dist/middleware/file_security.d.ts +0 -23
  46. package/dist/middleware/file_upload.d.ts +0 -41
  47. package/dist/middleware/helmet.d.ts +0 -54
  48. package/dist/middleware/index.d.ts +0 -55
  49. package/dist/middleware/input_validation.d.ts +0 -46
  50. package/dist/middleware/json_body.d.ts +0 -4
  51. package/dist/middleware/performance_alerting.d.ts +0 -88
  52. package/dist/middleware/performance_dashboard.d.ts +0 -97
  53. package/dist/middleware/performance_monitor.d.ts +0 -236
  54. package/dist/middleware/pipeline.d.ts +0 -90
  55. package/dist/middleware/rate_limit.d.ts +0 -33
  56. package/dist/middleware/request_id.d.ts +0 -4
  57. package/dist/middleware/request_signing.d.ts +0 -96
  58. package/dist/middleware/request_tracer.d.ts +0 -76
  59. package/dist/middleware/response_cache.d.ts +0 -90
  60. package/dist/middleware/security.d.ts +0 -70
  61. package/dist/middleware/security_suite.d.ts +0 -46
  62. package/dist/middleware/session.d.ts +0 -7
  63. package/dist/model-binding/index.d.ts +0 -17
  64. package/dist/model-binding/model-middleware.d.ts +0 -80
  65. package/dist/model-binding/model-registry.d.ts +0 -125
  66. package/dist/model-binding.d.ts +0 -123
  67. package/dist/model-resolver-factory.d.ts +0 -31
  68. package/dist/observability/correlation.d.ts +0 -131
  69. package/dist/observability/health-checks.d.ts +0 -129
  70. package/dist/observability/index.d.ts +0 -92
  71. package/dist/observability/integration.d.ts +0 -112
  72. package/dist/observability/metrics.d.ts +0 -135
  73. package/dist/observability/tracing.d.ts +0 -112
  74. package/dist/optimization/bun-utilities.d.ts +0 -106
  75. package/dist/query-builder-integration.d.ts +0 -24
  76. package/dist/request/enhanced-request.d.ts +0 -143
  77. package/dist/request/macros.d.ts +0 -267
  78. package/dist/response/macros.d.ts +0 -207
  79. package/dist/response/response-factory.d.ts +0 -93
  80. package/dist/router/file-based-routing.d.ts +0 -40
  81. package/dist/router/file-streaming.d.ts +0 -6
  82. package/dist/router/fluent-router.d.ts +0 -179
  83. package/dist/router/fluent-routing.d.ts +0 -198
  84. package/dist/router/group-organization.d.ts +0 -5
  85. package/dist/router/handler-resolver.d.ts +0 -13
  86. package/dist/router/http-methods.d.ts +0 -10
  87. package/dist/router/index.d.ts +0 -114
  88. package/dist/router/middleware-integration.d.ts +0 -86
  89. package/dist/router/middleware.d.ts +0 -5
  90. package/dist/router/model-binding.d.ts +0 -7
  91. package/dist/router/optimized-route-matching.d.ts +0 -6
  92. package/dist/router/route-building.d.ts +0 -5
  93. package/dist/router/route-compiler.d.ts +0 -67
  94. package/dist/router/route-matching.d.ts +0 -5
  95. package/dist/router/route-trie.d.ts +0 -69
  96. package/dist/router/router.d.ts +0 -133
  97. package/dist/router/server.d.ts +0 -5
  98. package/dist/router/validation-integration.d.ts +0 -116
  99. package/dist/router/view-rendering.d.ts +0 -5
  100. package/dist/router/websocket.d.ts +0 -5
  101. package/dist/routing/route-caching.d.ts +0 -105
  102. package/dist/routing/route-throttling.d.ts +0 -112
  103. package/dist/routing/subdomain-routing.d.ts +0 -159
  104. package/dist/streaming/index.d.ts +0 -15
  105. package/dist/streaming/sse-handler.d.ts +0 -81
  106. package/dist/streaming/stream-handler.d.ts +0 -81
  107. package/dist/testing/auth-testing.d.ts +0 -107
  108. package/dist/testing/file-upload-testing.d.ts +0 -139
  109. package/dist/testing/index.d.ts +0 -10
  110. package/dist/testing/middleware-testing.d.ts +0 -99
  111. package/dist/testing/model-binding-testing.d.ts +0 -132
  112. package/dist/testing/performance-testing.d.ts +0 -202
  113. package/dist/testing/test-client.d.ts +0 -58
  114. package/dist/testing/test-request.d.ts +0 -43
  115. package/dist/testing/test-response.d.ts +0 -45
  116. package/dist/testing/types.d.ts +0 -206
  117. package/dist/testing/websocket-testing.d.ts +0 -170
  118. package/dist/types/controller-types.d.ts +0 -303
  119. package/dist/types/core.d.ts +0 -526
  120. package/dist/types/middleware-types.d.ts +0 -315
  121. package/dist/types/request-response-augmentation.d.ts +0 -373
  122. package/dist/types/route-inference.d.ts +0 -287
  123. package/dist/types.d.ts +0 -1620
  124. package/dist/utils/index.d.ts +0 -1
  125. package/dist/utils/query-preservation.d.ts +0 -31
  126. package/dist/utils.d.ts +0 -69
  127. package/dist/validation/validator.d.ts +0 -169
  128. package/dist/websocket/clustering.d.ts +0 -114
@@ -1,236 +0,0 @@
1
- import type { Middleware, NextFunction } from '../types';
2
- // Factory function for easy use
3
- export declare function performanceMonitor(options?: PerformanceMonitorOptions): (req: EnhancedRequest, next: NextFunction) => Promise<Response | null>;
4
- // Extend the EnhancedRequest interface to include profiling data
5
- export declare interface EnhancedRequest extends BaseEnhancedRequest {
6
- profiling?: {
7
- samples: any[]
8
- systemSamples: any[]
9
- requestId: string
10
- }
11
- }
12
- export declare interface PerformanceMetrics {
13
- requestId: string
14
- method: string
15
- path: string
16
- statusCode: number
17
- responseTime: number
18
- memoryUsage: {
19
- heapUsed: number
20
- heapTotal: number
21
- external: number
22
- rss: number
23
- arrayBuffers?: number
24
- }
25
- cpuUsage: {
26
- user: number
27
- system: number
28
- }
29
- timestamp: number
30
- userAgent?: string
31
- ip?: string
32
- contentLength?: number
33
- queryParams?: number | Record<string, string>
34
- headers?: Record<string, string>
35
- error?: string
36
- traceId?: string
37
- spanId?: string
38
- }
39
- export declare interface PerformanceThresholds {
40
- responseTime: {
41
- warning: number
42
- critical: number
43
- }
44
- memoryUsage: {
45
- warning: number
46
- critical: number
47
- }
48
- errorRate: {
49
- warning: number
50
- critical: number
51
- }
52
- }
53
- export declare interface PerformanceMonitorOptions {
54
- enabled?: boolean
55
- sampleRate?: number
56
- maxRequestsPerSecond?: number
57
- sampling?: {
58
- enabled?: boolean
59
- interval?: number
60
- maxSamples?: number
61
- rate?: number
62
- maxRequestsPerSecond?: number
63
- }
64
- collectMetrics?: {
65
- responseTime?: boolean
66
- memoryUsage?: boolean
67
- cpuUsage?: boolean
68
- requestDetails?: boolean
69
- headers?: boolean
70
- queryParams?: boolean
71
- userAgent?: boolean
72
- ip?: boolean
73
- contentLength?: boolean
74
- }
75
- includeHeaders?: boolean
76
- includeQueryParams?: boolean
77
- includeUserAgent?: boolean
78
- includeIp?: boolean
79
- includeContentLength?: boolean
80
- thresholds?: {
81
- responseTime?: {
82
- warning?: number
83
- critical?: number
84
- }
85
- memoryUsage?: {
86
- warning?: number
87
- critical?: number
88
- }
89
- errorRate?: {
90
- warning?: number
91
- critical?: number
92
- }
93
- }
94
- customHandler?: (metrics: PerformanceMetrics) => Promise<void>
95
- storage?: {
96
- type: 'memory' | 'file' | 'database' | 'custom'
97
- maxEntries?: number
98
- retentionPeriod?: number
99
- filePath?: string
100
- customHandler?: (metrics: PerformanceMetrics) => Promise<void>
101
- }
102
- alerts?: {
103
- enabled?: boolean
104
- cooldown?: number
105
- thresholds?: {
106
- responseTime: number
107
- memoryUsage: number
108
- errorRate: number
109
- }
110
- handler?: (alert: {
111
- type: string
112
- message: string
113
- value: number
114
- threshold: number
115
- path: string
116
- method: string
117
- statusCode: number
118
- timestamp: number
119
- severity: 'info' | 'warning' | 'critical'
120
- }) => Promise<void>
121
- customHandler?: (alert: {
122
- type: string
123
- message: string
124
- value: number
125
- threshold: number
126
- path: string
127
- method: string
128
- statusCode: number
129
- timestamp: number
130
- severity: 'info' | 'warning' | 'critical'
131
- }) => Promise<void>
132
- webhookUrl?: string
133
- emailConfig?: {
134
- smtp: string
135
- from: string
136
- to: string[]
137
- }
138
- slackConfig?: {
139
- webhookUrl: string
140
- channel: string
141
- }
142
- }
143
- profiling?: {
144
- enabled?: boolean
145
- sampleRate?: number
146
- includeStackTrace?: boolean
147
- maxStackDepth?: number
148
- sampleInterval?: number
149
- maxSamples?: number
150
- }
151
- tracing?: {
152
- enabled?: boolean
153
- sampleRate?: number
154
- exporters?: ('console' | 'jaeger' | 'zipkin' | 'otlp')[]
155
- }
156
- }
157
- declare type Timer = ReturnType<typeof setTimeout>
158
- export declare class PerformanceMonitor implements Middleware {
159
- private options: PerformanceMonitorOptions;
160
- private metrics: PerformanceMetrics[];
161
- private lastAlertTime: Record<string, number>;
162
- private requestsThisSecond: number;
163
- private lastSecondTimestamp: number;
164
- private requestContexts: Map<string, RequestContext>;
165
- private samplingCounter: any;
166
- private alertCooldowns: Map<string, number>;
167
- private cleanupInterval?: Timer;
168
- constructor(options?: PerformanceMonitorOptions);
169
- private startCleanupInterval(): void;
170
- private cleanupOldMetrics(): void;
171
- private shouldSample(): boolean;
172
- private generateTraceId(): string;
173
- private generateSpanId(): string;
174
- private getClientIP(req: EnhancedRequest): string;
175
- private collectSystemMetrics(): Promise<{
176
- memory: NodeJS.MemoryUsage
177
- cpu: NodeJS.CpuUsage
178
- }>;
179
- private takeSample(profileData: any): void;
180
- private calculateCpuPercent(start: NodeJS.CpuUsage, end: NodeJS.CpuUsage, duration: number): {
181
- user: number
182
- system: number
183
- };
184
- private storeMetrics(metrics: PerformanceMetrics): Promise<void>;
185
- private checkThresholds(metrics: PerformanceMetrics): Promise<void>;
186
- private sendAlert(alert: {
187
- type: string
188
- message: string
189
- value: number
190
- threshold: number
191
- path: string
192
- method: string
193
- statusCode: number
194
- timestamp: number
195
- severity: 'info' | 'warning' | 'critical'
196
- }): Promise<void>;
197
- private sendAlerts(alerts: string[], metrics: PerformanceMetrics): Promise<void>;
198
- private collectMetrics(params: {
199
- req: EnhancedRequest
200
- res: Response | null
201
- startTime: number
202
- startMemory: NodeJS.MemoryUsage
203
- startCPU: NodeJS.CpuUsage
204
- profilingSamples: any[]
205
- error?: Error
206
- }): Promise<PerformanceMetrics>;
207
- handle(req: EnhancedRequest, next: NextFunction): Promise<Response | null>;
208
- addMetrics(metrics: PerformanceMetrics): void;
209
- checkThresholdsPublic(metrics: PerformanceMetrics): Promise<void>;
210
- getMetrics(options?: {
211
- startTime?: number
212
- endTime?: number
213
- path?: string
214
- method?: string
215
- statusCode?: number
216
- limit?: number
217
- }): PerformanceMetrics[];
218
- getAggregatedMetrics(timeWindow?: number): {
219
- totalRequests: number
220
- averageResponseTime: number
221
- medianResponseTime: number
222
- p95ResponseTime: number
223
- p99ResponseTime: number
224
- errorRate: number
225
- averageMemoryUsage: number
226
- requestsPerSecond: number
227
- statusCodeDistribution: Record<number, number>
228
- pathDistribution: Record<string, number>
229
- };
230
- getProfiles(): Array<{
231
- timestamp: number
232
- memoryUsage: NodeJS.MemoryUsage
233
- cpuUsage: NodeJS.CpuUsage
234
- }>;
235
- destroy(): void;
236
- }
@@ -1,90 +0,0 @@
1
- import type { EnhancedRequest, MiddlewareHandler } from '../types';
2
- /**
3
- * Skip condition factory functions
4
- */
5
- export declare const SkipConditions: {
6
- skipForMethods: (methods: string[]) => any;
7
- skipForPaths: (paths: string[]) => any;
8
- skipForHeaders: (headers: Record<string, string>) => any;
9
- skipForRoles: (roles: string[]) => any;
10
- skipForEnvironment: (environments: string[]) => any
11
- };
12
- /**
13
- * Dependency factory functions
14
- */
15
- export declare const Dependencies: {
16
- database: (connectionString?: string) => any;
17
- logger: (level: string?) => any;
18
- cache: (maxSize: number?) => any;
19
- httpClient: (baseURL?: string) => any
20
- };
21
- /**
22
- * Middleware factory functions
23
- */
24
- export declare const MiddlewareFactory: {
25
- auth: (options: { secret?: string, skipPaths?: string[] } = {}) => any;
26
- rateLimit: (options: { maxRequests: number, windowMs: number }) => any;
27
- cors: (options: { origin?: string, methods?: string[] } = {}) => any;
28
- logging: (_options: { level?: string } = {}) => any
29
- };
30
- /**
31
- * Global middleware pipeline instance
32
- */
33
- export declare const globalMiddlewarePipeline: MiddlewarePipeline;
34
- /**
35
- * Middleware pipeline with composition caching, conditional execution,
36
- * dependency injection, and short-circuiting capabilities
37
- */
38
- export declare interface MiddlewareContext {
39
- request: EnhancedRequest
40
- route?: any
41
- skipConditions?: MiddlewareSkipCondition[]
42
- dependencies?: Map<string, any>
43
- metadata?: Record<string, any>
44
- }
45
- export declare interface MiddlewareSkipCondition {
46
- name: string
47
- condition: (context: MiddlewareContext) => boolean | Promise<boolean>
48
- }
49
- export declare interface MiddlewareDependency {
50
- name: string
51
- factory: (context: MiddlewareContext) => any | Promise<any>
52
- singleton?: boolean
53
- dependencies?: string[]
54
- }
55
- export declare interface CompiledMiddleware {
56
- handler: MiddlewareHandler
57
- name: string
58
- skipConditions: MiddlewareSkipCondition[]
59
- dependencies: string[]
60
- canShortCircuit: boolean
61
- priority: number
62
- }
63
- export declare interface MiddlewarePipelineStats {
64
- totalExecutions: number
65
- cacheHits: number
66
- cacheMisses: number
67
- shortCircuits: number
68
- skippedMiddleware: number
69
- averageExecutionTime: number
70
- dependencyResolutions: number
71
- }
72
- /**
73
- * Middleware pipeline with advanced optimization features
74
- */
75
- export declare class MiddlewarePipeline {
76
- private compiledPipelines: any;
77
- private dependencyRegistry: any;
78
- private singletonInstances: any;
79
- private stats: MiddlewarePipelineStats;
80
- registerDependency(dependency: MiddlewareDependency): void;
81
- compileMiddleware(routeKey: string, middleware: MiddlewareHandler[], skipConditions?: MiddlewareSkipCondition[]): void;
82
- execute(routeKey: string, request: EnhancedRequest, finalHandler: () => Promise<Response>): Promise<Response>;
83
- private shouldSkip(middleware: CompiledMiddleware, context: MiddlewareContext): Promise<boolean>;
84
- private resolveDependencies(context: MiddlewareContext, pipeline: CompiledMiddleware[]): Promise<void>;
85
- private extractDependencies(handler: MiddlewareHandler): string[];
86
- private canShortCircuit(handler: MiddlewareHandler): boolean;
87
- private updateAverageExecutionTime(executionTime: number): void;
88
- getStats(): MiddlewarePipelineStats;
89
- clear(): void;
90
- }
@@ -1,33 +0,0 @@
1
- import type { EnhancedRequest, Middleware, MiddlewareHandler, NextFunction } from '../types';
2
- // Export a factory function to create middleware handlers
3
- export declare function rateLimit(options?: RateLimitOptions): MiddlewareHandler;
4
- export declare interface RateLimitOptions {
5
- windowMs?: number
6
- maxRequests?: number
7
- standardHeaders?: boolean
8
- legacyHeaders?: boolean
9
- skipFailedRequests?: boolean
10
- keyGenerator?: (request: Request) => string | Promise<string>
11
- handler?: (request: Request, limit: { remaining: number, limit: number, resetTime: number }) => Response | Promise<Response>
12
- skip?: (request: Request) => boolean | Promise<boolean>
13
- storage?: any
14
- algorithm?: 'fixed-window' | 'sliding-window' | 'token-bucket'
15
- draftMode?: boolean
16
- redis?: {
17
- url?: string
18
- prefix?: string
19
- }
20
- tokenBucket?: {
21
- tokensPerInterval?: number
22
- interval?: number
23
- burst?: number
24
- }
25
- }
26
- export declare class RateLimit implements Middleware {
27
- private limiter: any;
28
- private options: RateLimitOptions;
29
- constructor(options?: RateLimitOptions);
30
- private initLimiter(): void;
31
- private defaultHandler(req: Request, result: any): Response;
32
- handle(req: EnhancedRequest, next: NextFunction): Promise<Response>;
33
- }
@@ -1,4 +0,0 @@
1
- import type { EnhancedRequest, NextFunction } from '../types';
2
- export declare class RequestId {
3
- handle(req: EnhancedRequest, next: NextFunction): Promise<Response>;
4
- }
@@ -1,96 +0,0 @@
1
- import type { EnhancedRequest, Middleware, NextFunction } from '../types';
2
- /**
3
- * Factory function to create request signing middleware
4
- */
5
- export declare function requestSigning(options: RequestSigningOptions): RequestSigning;
6
- /**
7
- * Helper to sign a request (for clients)
8
- */
9
- export declare function signRequest(request: Request, secret: string, options?: {
10
- algorithm?: SignatureAlgorithm
11
- signedParts?: SignedPart[]
12
- signedHeaders?: string[]
13
- signatureHeader?: string
14
- timestampHeader?: string
15
- nonceHeader?: string
16
- keyId?: string
17
- keyIdHeader?: string
18
- encoding?: 'hex' | 'base64'
19
- }): Promise<Request>;
20
- /**
21
- * Verify a signature (utility function)
22
- */
23
- export declare function verifySignature(stringToSign: string, signature: string, secret: string, algorithm?: SignatureAlgorithm, encoding?: 'hex' | 'base64'): Promise<boolean>;
24
- export declare interface RequestSigningOptions {
25
- secret: string | ((keyId: string) => string | Promise<string | null> | null)
26
- algorithm?: SignatureAlgorithm
27
- signatureHeader?: string
28
- timestampHeader?: string
29
- keyIdHeader?: string
30
- nonceHeader?: string
31
- maxAge?: number
32
- requireTimestamp?: boolean
33
- requireNonce?: boolean
34
- nonceStore?: NonceStore
35
- signedParts?: SignedPart[]
36
- stringToSign?: (req: EnhancedRequest, timestamp: string, nonce?: string) => Promise<string> | string
37
- onError?: (error: SignatureError, req: EnhancedRequest) => Response | Promise<Response>
38
- exclude?: string[] | ((req: EnhancedRequest) => boolean)
39
- signedHeaders?: string[]
40
- encoding?: 'hex' | 'base64'
41
- }
42
- export declare interface NonceStore {
43
- has: (nonce: string) => Promise<boolean> | boolean
44
- set: (nonce: string, expiry?: number) => Promise<void> | void
45
- }
46
- export type SignatureAlgorithm = 'sha256' | 'sha384' | 'sha512'
47
- export type SignedPart = 'method' | 'path' | 'query' | 'timestamp' | 'body' | 'nonce' | 'headers'
48
- export type SignatureErrorCode = | 'MISSING_SIGNATURE'
49
- | 'MISSING_TIMESTAMP'
50
- | 'MISSING_NONCE'
51
- | 'MISSING_KEY_ID'
52
- | 'INVALID_KEY'
53
- | 'INVALID_SIGNATURE'
54
- | 'EXPIRED_TIMESTAMP'
55
- | 'FUTURE_TIMESTAMP'
56
- | 'NONCE_REUSED'
57
- | 'SIGNATURE_MISMATCH'
58
- export declare class SignatureError extends Error {
59
- readonly code: SignatureErrorCode;
60
- readonly statusCode: number;
61
- constructor(code: SignatureErrorCode, message: string);
62
- }
63
- /**
64
- * In-memory nonce store with automatic expiry
65
- */
66
- export declare class InMemoryNonceStore implements NonceStore {
67
- private nonces: any;
68
- private cleanupInterval: ReturnType<typeof setInterval> | null;
69
- constructor(cleanupIntervalMs?: number);
70
- has(nonce: string): boolean;
71
- set(nonce: string, expirySeconds?: number): void;
72
- private cleanup(): void;
73
- destroy(): void;
74
- }
75
- /**
76
- * Request Signing Middleware
77
- */
78
- export declare class RequestSigning implements Middleware {
79
- private options: Required<Omit<RequestSigningOptions, 'onError' | 'exclude' | 'nonceStore' | 'stringToSign'>> & {
80
- onError?: RequestSigningOptions['onError']
81
- exclude?: RequestSigningOptions['exclude']
82
- nonceStore?: NonceStore
83
- stringToSign?: RequestSigningOptions['stringToSign']
84
- };
85
- constructor(options: RequestSigningOptions);
86
- handle(req: EnhancedRequest, next: NextFunction): Promise<Response | null>;
87
- private shouldSkip(req: EnhancedRequest): boolean;
88
- private verifySignature(req: EnhancedRequest): Promise<void>;
89
- private getSecret(req: EnhancedRequest): Promise<string | null>;
90
- private validateTimestamp(timestamp: string): void;
91
- private validateNonce(nonce: string): Promise<void>;
92
- private buildStringToSign(req: EnhancedRequest, timestamp: string, nonce?: string): Promise<string>;
93
- private calculateSignature(data: string, secret: string): Promise<string>;
94
- private timingSafeEqual(a: string, b: string): boolean;
95
- private defaultErrorResponse(error: SignatureError): Response;
96
- }
@@ -1,76 +0,0 @@
1
- import type { EnhancedRequest, NextFunction } from '../types';
2
- // Factory function for easy use
3
- export declare function requestTracer(options?: TracingOptions): (req: EnhancedRequest, next: NextFunction) => Promise<Response>;
4
- export declare interface TraceSpan {
5
- traceId: string
6
- spanId: string
7
- parentSpanId?: string
8
- operationName: string
9
- startTime: number
10
- endTime?: number
11
- duration?: number
12
- tags: Record<string, any>
13
- logs: Array<{
14
- timestamp: number
15
- level: 'debug' | 'info' | 'warn' | 'error'
16
- message: string
17
- fields?: Record<string, any>
18
- }>
19
- status: 'ok' | 'error' | 'timeout'
20
- error?: string
21
- stackTrace?: string[]
22
- }
23
- export declare interface TracingOptions {
24
- enabled?: boolean
25
- sampleRate?: number
26
- maxSpans?: number
27
- includeHeaders?: boolean
28
- includeQueryParams?: boolean
29
- includeRequestBody?: boolean
30
- includeResponseBody?: boolean
31
- maxBodySize?: number
32
- exporters?: Array<{
33
- type: 'console' | 'jaeger' | 'zipkin' | 'otlp' | 'custom'
34
- endpoint?: string
35
- headers?: Record<string, string>
36
- customExporter?: (spans: TraceSpan[]) => Promise<void>
37
- }>
38
- propagation?: {
39
- enabled?: boolean
40
- headers?: string[]
41
- }
42
- }
43
- export declare class RequestTracer {
44
- private options: TracingOptions;
45
- private spans: Map<string, TraceSpan>;
46
- private activeSpans: Map<string, string>;
47
- private exportQueue: TraceSpan[];
48
- private exportInterval?: Timer;
49
- constructor(options?: TracingOptions);
50
- private startExportInterval(): void;
51
- private shouldSample(): boolean;
52
- private generateId(): string;
53
- private extractPropagationHeaders(req: EnhancedRequest): {
54
- traceId?: string
55
- parentSpanId?: string
56
- };
57
- private captureRequestBody(req: EnhancedRequest): Promise<any>;
58
- private captureResponseBody(response: Response): Promise<any>;
59
- private createSpan(traceId: string, spanId: string, operationName: string, parentSpanId?: string): TraceSpan;
60
- private addSpanTag(spanId: string, key: string, value: any): void;
61
- private addSpanLog(spanId: string, level: 'debug' | 'info' | 'warn' | 'error', message: string, fields?: Record<string, any>): void;
62
- private finishSpan(spanId: string, status?: 'ok' | 'error' | 'timeout', error?: string): void;
63
- private exportSpans(): Promise<void>;
64
- private exportToConsole(spans: TraceSpan[]): void;
65
- private exportToJaeger(spans: TraceSpan[], exporter: any): Promise<void>;
66
- private exportToZipkin(spans: TraceSpan[], exporter: any): Promise<void>;
67
- handle(req: EnhancedRequest, next: NextFunction): Promise<Response>;
68
- getActiveSpans(): TraceSpan[];
69
- getSpanById(spanId: string): TraceSpan | undefined;
70
- createChildSpan(parentSpanId: string, operationName: string): string | null;
71
- addTag(spanId: string, key: string, value: any): void;
72
- addLog(spanId: string, level: 'debug' | 'info' | 'warn' | 'error', message: string, fields?: Record<string, any>): void;
73
- finish(spanId: string, status?: 'ok' | 'error' | 'timeout', error?: string): void;
74
- flush(): Promise<void>;
75
- destroy(): void;
76
- }
@@ -1,90 +0,0 @@
1
- import type { EnhancedRequest, Middleware, NextFunction } from '../types';
2
- // Factory functions
3
- export declare function responseCache(options?: ResponseCacheOptions): ResponseCache;
4
- export declare function memoryCache(options?: Omit<ResponseCacheOptions, 'storage'>): ResponseCache;
5
- export declare function fileCache(directory?: string, options?: Omit<ResponseCacheOptions, 'storage'>): ResponseCache;
6
- export declare function hybridCache(options?: ResponseCacheOptions): ResponseCache;
7
- export declare interface CacheEntry {
8
- key: string
9
- response: {
10
- status: number
11
- statusText: string
12
- headers: Record<string, string>
13
- body: number[] // Store as number array for JSON serialization
14
- contentType: string
15
- }
16
- createdAt: number
17
- expiresAt: number
18
- etag?: string
19
- lastModified?: string
20
- size: number
21
- }
22
- export declare interface ResponseCacheOptions {
23
- enabled?: boolean
24
- storage?: {
25
- type: 'memory' | 'file' | 'hybrid'
26
- directory?: string
27
- maxSize?: number
28
- maxEntries?: number
29
- }
30
- ttl?: {
31
- default: number
32
- routes?: Record<string, number>
33
- methods?: Record<string, number>
34
- }
35
- keyGenerator?: (req: EnhancedRequest) => string
36
- shouldCache?: (req: EnhancedRequest, res: Response) => boolean
37
- varyHeaders?: string[]
38
- compression?: {
39
- enabled: boolean
40
- threshold: number
41
- algorithms: ('gzip' | 'deflate' | 'br')[]
42
- }
43
- invalidation?: {
44
- patterns?: string[]
45
- methods?: string[]
46
- headers?: string[]
47
- }
48
- etag?: {
49
- enabled: boolean
50
- weak: boolean
51
- }
52
- staleWhileRevalidate?: {
53
- enabled: boolean
54
- maxAge: number
55
- }
56
- }
57
- export declare class ResponseCache implements Middleware {
58
- private options: Required<ResponseCacheOptions>;
59
- private memoryCache: any;
60
- private cacheStats: any;
61
- private cleanupInterval?: Timer;
62
- constructor(options?: ResponseCacheOptions);
63
- private initializeStorage(): Promise<void>;
64
- private startCleanupInterval(): void;
65
- cleanup(): Promise<void>;
66
- private cleanupFileCache(): Promise<void>;
67
- private defaultKeyGenerator(req: EnhancedRequest): string;
68
- private defaultShouldCache(req: EnhancedRequest, res: Response): boolean;
69
- private getTTL(req: EnhancedRequest): number;
70
- private generateETag(content: string | Uint8Array): string;
71
- private getFromMemoryCache(key: string): Promise<CacheEntry | null>;
72
- private getFromFileCache(key: string): Promise<CacheEntry | null>;
73
- private setMemoryCache(key: string, entry: CacheEntry): Promise<void>;
74
- private setFileCache(key: string, entry: CacheEntry): Promise<void>;
75
- private evictLRU(): void;
76
- private updateCacheStats(): void;
77
- private generateCacheKey(req: EnhancedRequest): string;
78
- private getCachedResponse(key: string): Promise<CacheEntry | null>;
79
- private setCachedResponse(key: string, entry: CacheEntry): Promise<void>;
80
- private handleConditionalRequest(req: EnhancedRequest, entry: CacheEntry): Response | null;
81
- handle(req: EnhancedRequest, next: NextFunction): Promise<Response>;
82
- private deleteCachedResponse(key: string): Promise<void>;
83
- private createCacheEntry(req: EnhancedRequest, res: Response): Promise<{ entry: CacheEntry, response: Response }>;
84
- private createResponseFromEntry(entry: CacheEntry): Response;
85
- private backgroundRevalidate(cacheKey: string, req: EnhancedRequest, next: NextFunction): Promise<void>;
86
- invalidateCache(req?: EnhancedRequest): Promise<void>;
87
- clearCache(): Promise<void>;
88
- getStats(): { hits: number, misses: number, sets: number, deletes: number, size: number, memoryUsage: number, hitRate: number };
89
- destroy(): void;
90
- }
@@ -1,70 +0,0 @@
1
- import type { EnhancedRequest, NextFunction } from '../types';
2
- // Factory function for easy use
3
- export declare function security(options?: SecurityOptions): (req: EnhancedRequest, next: NextFunction) => Promise<Response>;
4
- export declare interface SecurityOptions {
5
- inputValidation?: {
6
- enabled?: boolean
7
- maxBodySize?: number
8
- maxUrlLength?: number
9
- maxHeaderSize?: number
10
- allowedContentTypes?: string[]
11
- sanitizeInput?: boolean
12
- validateEncoding?: boolean
13
- }
14
- requestFiltering?: {
15
- enabled?: boolean
16
- blockSuspiciousPatterns?: boolean
17
- maxRequestsPerMinute?: number
18
- blockUserAgents?: string[]
19
- allowedMethods?: string[]
20
- requireUserAgent?: boolean
21
- }
22
- ipFiltering?: {
23
- enabled?: boolean
24
- whitelist?: string[]
25
- blacklist?: string[]
26
- blockPrivateIPs?: boolean
27
- blockCloudProviders?: boolean
28
- geoBlocking?: {
29
- enabled?: boolean
30
- allowedCountries?: string[]
31
- blockedCountries?: string[]
32
- }
33
- }
34
- attackPrevention?: {
35
- enabled?: boolean
36
- sqlInjection?: boolean
37
- xss?: boolean
38
- pathTraversal?: boolean
39
- commandInjection?: boolean
40
- ldapInjection?: boolean
41
- xxe?: boolean
42
- customPatterns?: Array<{
43
- name: string
44
- pattern: RegExp
45
- action: 'block' | 'log' | 'sanitize'
46
- }>
47
- }
48
- responseSecurity?: {
49
- enabled?: boolean
50
- removeServerHeaders?: boolean
51
- addSecurityHeaders?: boolean
52
- sanitizeErrors?: boolean
53
- preventInfoDisclosure?: boolean
54
- }
55
- }
56
- export declare class Security {
57
- private options: SecurityOptions;
58
- private suspiciousPatterns: RegExp[];
59
- private sqlInjectionPatterns: RegExp[];
60
- private xssPatterns: RegExp[];
61
- private pathTraversalPatterns: RegExp[];
62
- private commandInjectionPatterns: RegExp[];
63
- constructor(options?: SecurityOptions);
64
- private initializePatterns(): void;
65
- private getClientIP(req: EnhancedRequest): string;
66
- private isPrivateIP(ip: string): boolean;
67
- private validateInput(input: string): { isValid: boolean, threats: string[] };
68
- private sanitizeInput(input: string): string;
69
- handle(req: EnhancedRequest, next: NextFunction): Promise<Response>;
70
- }