@stacksjs/bun-router 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- 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/chunk-jhsk5c5b.js +15758 -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 +2 -2
- 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 +320 -206
- 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 +18 -4
- 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 +1508 -0
- package/src/router/server.ts +406 -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
- package/dist/chunk-cjdekj87.js +0 -25886
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple color utility for CLI output without external dependencies
|
|
3
|
+
*/
|
|
4
|
+
export declare const chalk: {
|
|
5
|
+
red: (text: string) => string;
|
|
6
|
+
green: (text: string) => string;
|
|
7
|
+
yellow: (text: string) => string;
|
|
8
|
+
blue: (text: string) => string;
|
|
9
|
+
cyan: (text: string) => string;
|
|
10
|
+
white: (text: string) => string;
|
|
11
|
+
gray: (text: string) => string;
|
|
12
|
+
bold: (text: string) => string;
|
|
13
|
+
dim: (text: string) => string;
|
|
14
|
+
hex: (_color: string) => (text: string) => string;
|
|
15
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CLI } from '@stacksjs/clapp';
|
|
2
|
+
/**
|
|
3
|
+
* Create and configure the CLI
|
|
4
|
+
*/
|
|
5
|
+
export declare function createCLI(): CLI;
|
|
6
|
+
export * from './middleware';
|
|
7
|
+
export * from './openapi';
|
|
8
|
+
export * from './router';
|
|
9
|
+
export * from './routes';
|
|
10
|
+
export * from './utils';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for the middleware:types command
|
|
3
|
+
*/
|
|
4
|
+
export interface GenerateMiddlewareTypesOptions {
|
|
5
|
+
output?: string;
|
|
6
|
+
watch?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Options for the middleware:map command
|
|
10
|
+
*/
|
|
11
|
+
export interface MapMiddlewareOptions {
|
|
12
|
+
output?: string;
|
|
13
|
+
dir?: string;
|
|
14
|
+
watch?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Generate TypeScript types for middleware configurations
|
|
18
|
+
*/
|
|
19
|
+
export declare function generateMiddlewareTypes(outputPath: string): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Generate middleware type mappings for user project
|
|
22
|
+
*/
|
|
23
|
+
export declare function generateMiddlewareMap(directoryPath: string, outputPath: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Watch for changes in the directory and regenerate middleware map
|
|
26
|
+
*/
|
|
27
|
+
export declare function watchDirectoryForMiddleware(directoryPath: string, outputPath: string): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Watch for changes in the middleware directory and regenerate types
|
|
30
|
+
*/
|
|
31
|
+
export declare function watchMiddlewareDirectory(outputPath: string): Promise<void>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for the openapi command
|
|
3
|
+
*/
|
|
4
|
+
export interface OpenAPIOptions {
|
|
5
|
+
output?: string;
|
|
6
|
+
title?: string;
|
|
7
|
+
version?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
basePath?: string;
|
|
10
|
+
servers?: string;
|
|
11
|
+
tags?: boolean;
|
|
12
|
+
security?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Generate OpenAPI specification for API routes
|
|
16
|
+
*/
|
|
17
|
+
export declare function generateOpenAPISpec(options: OpenAPIOptions): Promise<void>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for the router:types command
|
|
3
|
+
*/
|
|
4
|
+
export interface GenerateRouterTypesOptions {
|
|
5
|
+
output?: string;
|
|
6
|
+
watch?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Generate TypeScript types for router extensions
|
|
10
|
+
*/
|
|
11
|
+
export declare function generateRouterTypes(outputPath: string): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Watch for changes in router files and regenerate types
|
|
14
|
+
*/
|
|
15
|
+
export declare function watchRouterFiles(outputPath: string): Promise<void>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for the route:list command
|
|
3
|
+
*/
|
|
4
|
+
export interface RouteListOptions {
|
|
5
|
+
verbose?: boolean;
|
|
6
|
+
extraVerbose?: boolean;
|
|
7
|
+
path?: string;
|
|
8
|
+
exceptVendor?: boolean;
|
|
9
|
+
onlyVendor?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Options for the route:types command
|
|
13
|
+
*/
|
|
14
|
+
export interface GenerateRouteTypesOptions {
|
|
15
|
+
output?: string;
|
|
16
|
+
watch?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Display all registered routes in a formatted table
|
|
20
|
+
*/
|
|
21
|
+
export declare function displayRoutes(options: RouteListOptions): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Generate TypeScript types for route names
|
|
24
|
+
*/
|
|
25
|
+
export declare function generateRouteTypes(outputPath: string): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Watch for changes in the routes directory and regenerate types
|
|
28
|
+
*/
|
|
29
|
+
export declare function watchRoutesDirectory(outputPath: string): Promise<void>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formats console output with consistent styling
|
|
3
|
+
*/
|
|
4
|
+
export declare const format: {
|
|
5
|
+
success: (message: string) => string;
|
|
6
|
+
info: (message: string) => string;
|
|
7
|
+
warning: (message: string) => string;
|
|
8
|
+
error: (message: string) => string;
|
|
9
|
+
dim: (message: string) => string;
|
|
10
|
+
bold: (message: string) => string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Logger for CLI commands with consistent styling
|
|
14
|
+
*/
|
|
15
|
+
export declare const logger: {
|
|
16
|
+
success: (message: string) => void;
|
|
17
|
+
info: (message: string) => void;
|
|
18
|
+
warning: (message: string) => void;
|
|
19
|
+
error: (message: string) => void;
|
|
20
|
+
debug: (message: string) => void;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Load router instance from the application
|
|
24
|
+
*/
|
|
25
|
+
export declare function loadRouter(): Promise<any>;
|
|
26
|
+
/**
|
|
27
|
+
* Setup a debounced file watcher
|
|
28
|
+
*/
|
|
29
|
+
export declare function setupDebouncedWatcher(_callback: () => Promise<void>, _debounceTime?: number): {
|
|
30
|
+
timeoutId: NodeJS.Timeout | null;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Utility to get method color for console output
|
|
34
|
+
*/
|
|
35
|
+
export declare function getMethodColor(method: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* Pad a string to a specified length
|
|
38
|
+
*/
|
|
39
|
+
export declare function padString(str: string, length: number): string;
|
|
40
|
+
/**
|
|
41
|
+
* Check router health and configuration
|
|
42
|
+
*/
|
|
43
|
+
export declare function checkRouterHealth(options: {
|
|
44
|
+
verbose?: boolean;
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Test routes by making HTTP requests
|
|
48
|
+
*/
|
|
49
|
+
export declare function testRoutes(options: {
|
|
50
|
+
baseUrl?: string;
|
|
51
|
+
filter?: string;
|
|
52
|
+
method?: string;
|
|
53
|
+
timeout?: number;
|
|
54
|
+
}): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Debug route matching for a specific path
|
|
57
|
+
*/
|
|
58
|
+
export declare function debugRoute(path: string, options: {
|
|
59
|
+
method?: string;
|
|
60
|
+
verbose?: boolean;
|
|
61
|
+
}): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Clear route caches
|
|
64
|
+
*/
|
|
65
|
+
export declare function clearCaches(options: {
|
|
66
|
+
stats?: boolean;
|
|
67
|
+
}): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Validate route definitions and configuration
|
|
70
|
+
*/
|
|
71
|
+
export declare function validateRoutes(options: {
|
|
72
|
+
strict?: boolean;
|
|
73
|
+
fix?: boolean;
|
|
74
|
+
}): Promise<void>;
|
package/dist/cli.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export {};
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
middleware
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-jhsk5c5b.js";
|
|
5
5
|
|
|
6
6
|
// src/cli/index.ts
|
|
7
7
|
import process13 from "process";
|
|
@@ -1879,7 +1879,7 @@ var prefix = getPrefix();
|
|
|
1879
1879
|
var color18 = __toESM(require_picocolors(), 1);
|
|
1880
1880
|
var import_picocolors19 = __toESM(require_picocolors(), 1);
|
|
1881
1881
|
// package.json
|
|
1882
|
-
var version = "0.0.
|
|
1882
|
+
var version = "0.0.6";
|
|
1883
1883
|
|
|
1884
1884
|
// src/cli/middleware.ts
|
|
1885
1885
|
import fs from "fs/promises";
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IoC Container for Dependency Resolution
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive dependency injection container with automatic resolution,
|
|
5
|
+
* lifecycle management, and contextual binding support
|
|
6
|
+
*/
|
|
7
|
+
declare global {
|
|
8
|
+
namespace Reflect {
|
|
9
|
+
function getMetadata(_metadataKey: any, _target: any, _propertyKey?: string | symbol): any;
|
|
10
|
+
function defineMetadata(_metadataKey: any, _metadataValue: any, _target: any, _propertyKey?: string | symbol): void;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export type BindingScope = 'singleton' | 'transient' | 'scoped' | 'request';
|
|
14
|
+
export type Token = string | symbol | ((...args: any[]) => any) | (new (...args: any[]) => any) | Function;
|
|
15
|
+
export interface BindingMetadata {
|
|
16
|
+
scope: BindingScope;
|
|
17
|
+
tags?: string[];
|
|
18
|
+
when?: (context: ResolutionContext) => boolean;
|
|
19
|
+
factory?: (..._args: any[]) => any;
|
|
20
|
+
dependencies?: Token[];
|
|
21
|
+
lazy?: boolean;
|
|
22
|
+
decorators?: ((..._args: any[]) => any)[];
|
|
23
|
+
}
|
|
24
|
+
export interface Binding<T = any> {
|
|
25
|
+
token: Token;
|
|
26
|
+
implementation?: new (...args: any[]) => T;
|
|
27
|
+
instance?: T;
|
|
28
|
+
factory?: (...args: any[]) => T;
|
|
29
|
+
value?: T;
|
|
30
|
+
metadata: BindingMetadata;
|
|
31
|
+
}
|
|
32
|
+
export interface ResolutionContext {
|
|
33
|
+
container: Container;
|
|
34
|
+
token: Token;
|
|
35
|
+
parent?: ResolutionContext;
|
|
36
|
+
environment?: string;
|
|
37
|
+
requestId?: string;
|
|
38
|
+
depth: number;
|
|
39
|
+
resolving: Set<Token>;
|
|
40
|
+
}
|
|
41
|
+
export interface ContainerOptions {
|
|
42
|
+
autoRegister?: boolean;
|
|
43
|
+
strictMode?: boolean;
|
|
44
|
+
maxDepth?: number;
|
|
45
|
+
enableDecorators?: boolean;
|
|
46
|
+
enableInterception?: boolean;
|
|
47
|
+
defaultScope?: BindingScope;
|
|
48
|
+
}
|
|
49
|
+
export declare const INJECTABLE_METADATA_KEY: unique symbol;
|
|
50
|
+
export declare const INJECT_METADATA_KEY: unique symbol;
|
|
51
|
+
export declare const OPTIONAL_METADATA_KEY: unique symbol;
|
|
52
|
+
export declare const TAGGED_METADATA_KEY: unique symbol;
|
|
53
|
+
export interface InjectableMetadata {
|
|
54
|
+
token?: string | symbol;
|
|
55
|
+
scope?: BindingScope;
|
|
56
|
+
tags?: string[];
|
|
57
|
+
}
|
|
58
|
+
export interface InjectMetadata {
|
|
59
|
+
token: Token;
|
|
60
|
+
optional?: boolean;
|
|
61
|
+
tags?: string[];
|
|
62
|
+
when?: (context: ResolutionContext) => boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Main IoC Container implementation
|
|
66
|
+
*/
|
|
67
|
+
export declare class Container {
|
|
68
|
+
private bindings;
|
|
69
|
+
private instances;
|
|
70
|
+
private scopedInstances;
|
|
71
|
+
private interceptors;
|
|
72
|
+
private parent?;
|
|
73
|
+
private children;
|
|
74
|
+
private options;
|
|
75
|
+
constructor(options?: ContainerOptions);
|
|
76
|
+
/**
|
|
77
|
+
* Bind a token to an implementation
|
|
78
|
+
*/
|
|
79
|
+
bind<T>(token: Token): BindingBuilder<T>;
|
|
80
|
+
/**
|
|
81
|
+
* Register a binding
|
|
82
|
+
*/
|
|
83
|
+
register<T>(binding: Binding<T>): this;
|
|
84
|
+
/**
|
|
85
|
+
* Bind a singleton
|
|
86
|
+
*/
|
|
87
|
+
singleton<T>(token: Token, implementation: new (...args: any[]) => T): Container;
|
|
88
|
+
/**
|
|
89
|
+
* Bind a transient
|
|
90
|
+
*/
|
|
91
|
+
transient<T>(token: Token, implementation: new (...args: any[]) => T): Container;
|
|
92
|
+
/**
|
|
93
|
+
* Bind a value
|
|
94
|
+
*/
|
|
95
|
+
value<T>(token: Token, value: T): Container;
|
|
96
|
+
/**
|
|
97
|
+
* Bind a factory
|
|
98
|
+
*/
|
|
99
|
+
factory<T>(token: Token, factory: (...args: any[]) => T): Container;
|
|
100
|
+
/**
|
|
101
|
+
* Resolve a dependency
|
|
102
|
+
*/
|
|
103
|
+
resolve<T>(token: Token, context?: Partial<ResolutionContext>): T;
|
|
104
|
+
/**
|
|
105
|
+
* Resolve all instances of a token (useful for arrays of services)
|
|
106
|
+
*/
|
|
107
|
+
resolveAll<T>(token: Token): T[];
|
|
108
|
+
/**
|
|
109
|
+
* Resolve with tags
|
|
110
|
+
*/
|
|
111
|
+
resolveTagged<T>(tag: string): T[];
|
|
112
|
+
/**
|
|
113
|
+
* Get all bindings with a specific tag
|
|
114
|
+
*/
|
|
115
|
+
getTaggedBindings<T>(tag: string): Binding<T>[];
|
|
116
|
+
/**
|
|
117
|
+
* Add interceptor for a service
|
|
118
|
+
*/
|
|
119
|
+
addInterceptor<T>(token: Token, interceptor: (service: T) => T): void;
|
|
120
|
+
/**
|
|
121
|
+
* Register controller (basic implementation for compatibility)
|
|
122
|
+
*/
|
|
123
|
+
registerController(controller: new (...args: any[]) => any): void;
|
|
124
|
+
/**
|
|
125
|
+
* Get controller instance
|
|
126
|
+
*/
|
|
127
|
+
getController<T>(controller: new (...args: any[]) => T): T;
|
|
128
|
+
/**
|
|
129
|
+
* Check if a token is bound
|
|
130
|
+
*/
|
|
131
|
+
isBound(token: Token): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Unbind a token
|
|
134
|
+
*/
|
|
135
|
+
unbind(token: Token): this;
|
|
136
|
+
/**
|
|
137
|
+
* Create a child container
|
|
138
|
+
*/
|
|
139
|
+
createChild(options?: ContainerOptions): Container;
|
|
140
|
+
/**
|
|
141
|
+
* Create a scoped container
|
|
142
|
+
*/
|
|
143
|
+
createScope(scopeId: string): Container;
|
|
144
|
+
/**
|
|
145
|
+
* Get all bindings
|
|
146
|
+
*/
|
|
147
|
+
getBindings(): Map<Token, Binding>;
|
|
148
|
+
/**
|
|
149
|
+
* Clear all bindings and instances
|
|
150
|
+
*/
|
|
151
|
+
clear(): this;
|
|
152
|
+
/**
|
|
153
|
+
* Add interceptor
|
|
154
|
+
*/
|
|
155
|
+
intercept<T>(token: string | symbol | ((..._args: any[]) => any), interceptor: (instance: T, context: ResolutionContext) => T): this;
|
|
156
|
+
/**
|
|
157
|
+
* Internal resolution logic
|
|
158
|
+
*/
|
|
159
|
+
private resolveInternal;
|
|
160
|
+
/**
|
|
161
|
+
* Create instance from binding
|
|
162
|
+
*/
|
|
163
|
+
protected createInstance<T>(binding: Binding<T>, context: ResolutionContext): T;
|
|
164
|
+
/**
|
|
165
|
+
* Create new instance from binding
|
|
166
|
+
*/
|
|
167
|
+
private createNewInstance;
|
|
168
|
+
/**
|
|
169
|
+
* Create instance from constructor
|
|
170
|
+
*/
|
|
171
|
+
private createInstanceFromConstructor;
|
|
172
|
+
/**
|
|
173
|
+
* Get constructor dependencies using reflection
|
|
174
|
+
*/
|
|
175
|
+
private getConstructorDependencies;
|
|
176
|
+
/**
|
|
177
|
+
* Parse constructor dependencies from function string
|
|
178
|
+
*/
|
|
179
|
+
private parseConstructorDependencies;
|
|
180
|
+
/**
|
|
181
|
+
* Resolve array of dependencies
|
|
182
|
+
*/
|
|
183
|
+
private resolveDependencies;
|
|
184
|
+
/**
|
|
185
|
+
* Auto-register and resolve
|
|
186
|
+
*/
|
|
187
|
+
private autoRegisterAndResolve;
|
|
188
|
+
/**
|
|
189
|
+
* Apply decorators to instance
|
|
190
|
+
*/
|
|
191
|
+
private applyDecorators;
|
|
192
|
+
/**
|
|
193
|
+
* Check if binding has tag
|
|
194
|
+
*/
|
|
195
|
+
private hasTag;
|
|
196
|
+
/**
|
|
197
|
+
* Convert token to string for error messages
|
|
198
|
+
*/
|
|
199
|
+
private tokenToString;
|
|
200
|
+
/**
|
|
201
|
+
* Generate unique request ID
|
|
202
|
+
*/
|
|
203
|
+
private generateRequestId;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Fluent binding builder
|
|
207
|
+
*/
|
|
208
|
+
export declare class BindingBuilder<T> {
|
|
209
|
+
private container;
|
|
210
|
+
private binding;
|
|
211
|
+
constructor(container: Container, token: Token);
|
|
212
|
+
/**
|
|
213
|
+
* Bind to implementation
|
|
214
|
+
*/
|
|
215
|
+
to(implementation: new (...args: any[]) => T): this;
|
|
216
|
+
/**
|
|
217
|
+
* Bind to value
|
|
218
|
+
*/
|
|
219
|
+
toValue(value: T): this;
|
|
220
|
+
/**
|
|
221
|
+
* Bind to factory
|
|
222
|
+
*/
|
|
223
|
+
toFactory(factory: (...args: any[]) => T): this;
|
|
224
|
+
/**
|
|
225
|
+
* Bind to existing instance
|
|
226
|
+
*/
|
|
227
|
+
toInstance(instance: T): this;
|
|
228
|
+
/**
|
|
229
|
+
* Set singleton scope
|
|
230
|
+
*/
|
|
231
|
+
inSingletonScope(): this;
|
|
232
|
+
/**
|
|
233
|
+
* Set transient scope
|
|
234
|
+
*/
|
|
235
|
+
inTransientScope(): this;
|
|
236
|
+
/**
|
|
237
|
+
* Set scoped scope
|
|
238
|
+
*/
|
|
239
|
+
inScopedScope(): this;
|
|
240
|
+
/**
|
|
241
|
+
* Set request scope
|
|
242
|
+
*/
|
|
243
|
+
inRequestScope(): this;
|
|
244
|
+
/**
|
|
245
|
+
* Add tags
|
|
246
|
+
*/
|
|
247
|
+
withTags(...tags: string[]): this;
|
|
248
|
+
/**
|
|
249
|
+
* Add contextual condition
|
|
250
|
+
*/
|
|
251
|
+
when(condition: (context: ResolutionContext) => boolean): this;
|
|
252
|
+
/**
|
|
253
|
+
* Set as lazy
|
|
254
|
+
*/
|
|
255
|
+
lazy(): this;
|
|
256
|
+
/**
|
|
257
|
+
* Build and register binding
|
|
258
|
+
*/
|
|
259
|
+
build(): Container;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Get or create global container
|
|
263
|
+
*/
|
|
264
|
+
export declare function getContainer(): Container;
|
|
265
|
+
/**
|
|
266
|
+
* Set global container
|
|
267
|
+
*/
|
|
268
|
+
export declare function setContainer(container: Container): void;
|
|
269
|
+
/**
|
|
270
|
+
* Create new container
|
|
271
|
+
*/
|
|
272
|
+
export declare function createContainer(options?: ContainerOptions): Container;
|
|
273
|
+
export { Container as DIContainer };
|