typekro 0.2.2 → 0.3.0
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 +4 -3
- package/dist/.tsbuildinfo +1 -1
- package/dist/core/composition/imperative.d.ts.map +1 -1
- package/dist/core/composition/imperative.js +15 -2
- package/dist/core/composition/imperative.js.map +1 -1
- package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts.map +1 -1
- package/dist/core/composition/typekro-runtime/typekro-runtime.js +24 -25
- package/dist/core/composition/typekro-runtime/typekro-runtime.js.map +1 -1
- package/dist/core/dependencies/type-guards.d.ts.map +1 -1
- package/dist/core/dependencies/type-guards.js +7 -2
- package/dist/core/dependencies/type-guards.js.map +1 -1
- package/dist/core/deployment/engine.d.ts +0 -1
- package/dist/core/deployment/engine.d.ts.map +1 -1
- package/dist/core/deployment/engine.js +0 -1
- package/dist/core/deployment/engine.js.map +1 -1
- package/dist/core/errors.d.ts +85 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +135 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/expressions/analyzer.d.ts +584 -0
- package/dist/core/expressions/analyzer.d.ts.map +1 -0
- package/dist/core/expressions/analyzer.js +2956 -0
- package/dist/core/expressions/analyzer.js.map +1 -0
- package/dist/core/expressions/cache.d.ts +136 -0
- package/dist/core/expressions/cache.d.ts.map +1 -0
- package/dist/core/expressions/cache.js +347 -0
- package/dist/core/expressions/cache.js.map +1 -0
- package/dist/core/expressions/cel-conversion-engine.d.ts +126 -0
- package/dist/core/expressions/cel-conversion-engine.d.ts.map +1 -0
- package/dist/core/expressions/cel-conversion-engine.js +293 -0
- package/dist/core/expressions/cel-conversion-engine.js.map +1 -0
- package/dist/core/expressions/compile-time-validation.d.ts +270 -0
- package/dist/core/expressions/compile-time-validation.d.ts.map +1 -0
- package/dist/core/expressions/compile-time-validation.js +506 -0
- package/dist/core/expressions/compile-time-validation.js.map +1 -0
- package/dist/core/expressions/composition-integration.d.ts +315 -0
- package/dist/core/expressions/composition-integration.d.ts.map +1 -0
- package/dist/core/expressions/composition-integration.js +936 -0
- package/dist/core/expressions/composition-integration.js.map +1 -0
- package/dist/core/expressions/conditional-expression-processor.d.ts +154 -0
- package/dist/core/expressions/conditional-expression-processor.d.ts.map +1 -0
- package/dist/core/expressions/conditional-expression-processor.js +479 -0
- package/dist/core/expressions/conditional-expression-processor.js.map +1 -0
- package/dist/core/expressions/conditional-integration.d.ts +133 -0
- package/dist/core/expressions/conditional-integration.d.ts.map +1 -0
- package/dist/core/expressions/conditional-integration.js +293 -0
- package/dist/core/expressions/conditional-integration.js.map +1 -0
- package/dist/core/expressions/conditional-validation.d.ts +181 -0
- package/dist/core/expressions/conditional-validation.d.ts.map +1 -0
- package/dist/core/expressions/conditional-validation.js +460 -0
- package/dist/core/expressions/conditional-validation.js.map +1 -0
- package/dist/core/expressions/context-aware-generator.d.ts +127 -0
- package/dist/core/expressions/context-aware-generator.d.ts.map +1 -0
- package/dist/core/expressions/context-aware-generator.js +500 -0
- package/dist/core/expressions/context-aware-generator.js.map +1 -0
- package/dist/core/expressions/context-detector.d.ts +148 -0
- package/dist/core/expressions/context-detector.d.ts.map +1 -0
- package/dist/core/expressions/context-detector.js +546 -0
- package/dist/core/expressions/context-detector.js.map +1 -0
- package/dist/core/expressions/context-switcher.d.ts +185 -0
- package/dist/core/expressions/context-switcher.d.ts.map +1 -0
- package/dist/core/expressions/context-switcher.js +515 -0
- package/dist/core/expressions/context-switcher.js.map +1 -0
- package/dist/core/expressions/context-validator.d.ts +176 -0
- package/dist/core/expressions/context-validator.d.ts.map +1 -0
- package/dist/core/expressions/context-validator.js +452 -0
- package/dist/core/expressions/context-validator.js.map +1 -0
- package/dist/core/expressions/custom-context-manager.d.ts +194 -0
- package/dist/core/expressions/custom-context-manager.d.ts.map +1 -0
- package/dist/core/expressions/custom-context-manager.js +390 -0
- package/dist/core/expressions/custom-context-manager.js.map +1 -0
- package/dist/core/expressions/expression-proxy.d.ts +80 -0
- package/dist/core/expressions/expression-proxy.d.ts.map +1 -0
- package/dist/core/expressions/expression-proxy.js +227 -0
- package/dist/core/expressions/expression-proxy.js.map +1 -0
- package/dist/core/expressions/factory-integration.d.ts +132 -0
- package/dist/core/expressions/factory-integration.d.ts.map +1 -0
- package/dist/core/expressions/factory-integration.js +327 -0
- package/dist/core/expressions/factory-integration.js.map +1 -0
- package/dist/core/expressions/factory-pattern-handler.d.ts +88 -0
- package/dist/core/expressions/factory-pattern-handler.d.ts.map +1 -0
- package/dist/core/expressions/factory-pattern-handler.js +336 -0
- package/dist/core/expressions/factory-pattern-handler.js.map +1 -0
- package/dist/core/expressions/field-hydration-processor.d.ts +188 -0
- package/dist/core/expressions/field-hydration-processor.d.ts.map +1 -0
- package/dist/core/expressions/field-hydration-processor.js +562 -0
- package/dist/core/expressions/field-hydration-processor.js.map +1 -0
- package/dist/core/expressions/imperative-analyzer.d.ts +21 -0
- package/dist/core/expressions/imperative-analyzer.d.ts.map +1 -0
- package/dist/core/expressions/imperative-analyzer.js +343 -0
- package/dist/core/expressions/imperative-analyzer.js.map +1 -0
- package/dist/core/expressions/index.d.ts +54 -0
- package/dist/core/expressions/index.d.ts.map +1 -0
- package/dist/core/expressions/index.js +50 -0
- package/dist/core/expressions/index.js.map +1 -0
- package/dist/core/expressions/lazy-analysis.d.ts +1128 -0
- package/dist/core/expressions/lazy-analysis.d.ts.map +1 -0
- package/dist/core/expressions/lazy-analysis.js +2443 -0
- package/dist/core/expressions/lazy-analysis.js.map +1 -0
- package/dist/core/expressions/magic-assignable-analyzer.d.ts +123 -0
- package/dist/core/expressions/magic-assignable-analyzer.d.ts.map +1 -0
- package/dist/core/expressions/magic-assignable-analyzer.js +352 -0
- package/dist/core/expressions/magic-assignable-analyzer.js.map +1 -0
- package/dist/core/expressions/magic-proxy-analyzer.d.ts +206 -0
- package/dist/core/expressions/magic-proxy-analyzer.d.ts.map +1 -0
- package/dist/core/expressions/magic-proxy-analyzer.js +639 -0
- package/dist/core/expressions/magic-proxy-analyzer.js.map +1 -0
- package/dist/core/expressions/magic-proxy-detector.d.ts +154 -0
- package/dist/core/expressions/magic-proxy-detector.d.ts.map +1 -0
- package/dist/core/expressions/magic-proxy-detector.js +242 -0
- package/dist/core/expressions/magic-proxy-detector.js.map +1 -0
- package/dist/core/expressions/migration-helpers.d.ts +133 -0
- package/dist/core/expressions/migration-helpers.d.ts.map +1 -0
- package/dist/core/expressions/migration-helpers.js +443 -0
- package/dist/core/expressions/migration-helpers.js.map +1 -0
- package/dist/core/expressions/optionality-handler.d.ts +503 -0
- package/dist/core/expressions/optionality-handler.d.ts.map +1 -0
- package/dist/core/expressions/optionality-handler.js +1306 -0
- package/dist/core/expressions/optionality-handler.js.map +1 -0
- package/dist/core/expressions/readiness-integration.d.ts +119 -0
- package/dist/core/expressions/readiness-integration.d.ts.map +1 -0
- package/dist/core/expressions/readiness-integration.js +386 -0
- package/dist/core/expressions/readiness-integration.js.map +1 -0
- package/dist/core/expressions/resource-analyzer.d.ts +486 -0
- package/dist/core/expressions/resource-analyzer.d.ts.map +1 -0
- package/dist/core/expressions/resource-analyzer.js +1086 -0
- package/dist/core/expressions/resource-analyzer.js.map +1 -0
- package/dist/core/expressions/resource-validation.d.ts +187 -0
- package/dist/core/expressions/resource-validation.d.ts.map +1 -0
- package/dist/core/expressions/resource-validation.js +552 -0
- package/dist/core/expressions/resource-validation.js.map +1 -0
- package/dist/core/expressions/runtime-error-mapper.d.ts +138 -0
- package/dist/core/expressions/runtime-error-mapper.d.ts.map +1 -0
- package/dist/core/expressions/runtime-error-mapper.js +412 -0
- package/dist/core/expressions/runtime-error-mapper.js.map +1 -0
- package/dist/core/expressions/source-map.d.ts +168 -0
- package/dist/core/expressions/source-map.d.ts.map +1 -0
- package/dist/core/expressions/source-map.js +350 -0
- package/dist/core/expressions/source-map.js.map +1 -0
- package/dist/core/expressions/status-builder-analyzer.d.ts +353 -0
- package/dist/core/expressions/status-builder-analyzer.d.ts.map +1 -0
- package/dist/core/expressions/status-builder-analyzer.js +1301 -0
- package/dist/core/expressions/status-builder-analyzer.js.map +1 -0
- package/dist/core/expressions/type-inference.d.ts +184 -0
- package/dist/core/expressions/type-inference.d.ts.map +1 -0
- package/dist/core/expressions/type-inference.js +838 -0
- package/dist/core/expressions/type-inference.js.map +1 -0
- package/dist/core/expressions/type-safety.d.ts +203 -0
- package/dist/core/expressions/type-safety.d.ts.map +1 -0
- package/dist/core/expressions/type-safety.js +442 -0
- package/dist/core/expressions/type-safety.js.map +1 -0
- package/dist/core/expressions/types.d.ts +282 -0
- package/dist/core/expressions/types.d.ts.map +1 -0
- package/dist/core/expressions/types.js +8 -0
- package/dist/core/expressions/types.js.map +1 -0
- package/dist/core/kubernetes/client-provider.js +2 -2
- package/dist/core/kubernetes/client-provider.js.map +1 -1
- package/dist/core/serialization/core.d.ts.map +1 -1
- package/dist/core/serialization/core.js +573 -9
- package/dist/core/serialization/core.js.map +1 -1
- package/dist/core/types/deployment.d.ts +4 -0
- package/dist/core/types/deployment.d.ts.map +1 -1
- package/dist/core/types/deployment.js.map +1 -1
- package/dist/core/types/index.d.ts +1 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/factories/helm/helm-release.d.ts.map +1 -1
- package/dist/factories/helm/helm-release.js +0 -5
- package/dist/factories/helm/helm-release.js.map +1 -1
- package/dist/factories/helm/types.d.ts +1 -1
- package/dist/factories/helm/types.d.ts.map +1 -1
- package/dist/factories/shared.d.ts.map +1 -1
- package/dist/factories/shared.js +21 -1
- package/dist/factories/shared.js.map +1 -1
- package/dist/factories/simple/index.d.ts +2 -2
- package/dist/factories/simple/index.d.ts.map +1 -1
- package/dist/factories/simple/workloads/deployment.d.ts +3 -3
- package/dist/factories/simple/workloads/deployment.d.ts.map +1 -1
- package/dist/factories/simple/workloads/deployment.js +37 -11
- package/dist/factories/simple/workloads/deployment.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/type-guards.d.ts +6 -0
- package/dist/utils/type-guards.d.ts.map +1 -1
- package/dist/utils/type-guards.js +25 -2
- package/dist/utils/type-guards.js.map +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource Builder Integration for JavaScript to CEL Expression Conversion
|
|
3
|
+
*
|
|
4
|
+
* This module provides integration with TypeKro's existing KubernetesRef and magic proxy systems
|
|
5
|
+
* for analyzing resource configurations that contain JavaScript expressions with KubernetesRef objects.
|
|
6
|
+
*
|
|
7
|
+
* The analyzer detects when resource builders use expressions that depend on other resources
|
|
8
|
+
* and converts them to appropriate CEL expressions based on the factory pattern.
|
|
9
|
+
*/
|
|
10
|
+
import type { Enhanced } from '../types/kubernetes.js';
|
|
11
|
+
import type { KubernetesRef } from '../types/common.js';
|
|
12
|
+
import type { SchemaProxy } from '../types/serialization.js';
|
|
13
|
+
import { ConversionError } from '../errors.js';
|
|
14
|
+
import { type AnalysisContext } from './analyzer.js';
|
|
15
|
+
/**
|
|
16
|
+
* Context for analyzing resource configurations
|
|
17
|
+
*/
|
|
18
|
+
export interface ResourceAnalysisContext extends AnalysisContext {
|
|
19
|
+
/** The resource being analyzed */
|
|
20
|
+
resourceId: string;
|
|
21
|
+
/** The resource configuration being analyzed */
|
|
22
|
+
resourceConfig: Record<string, any>;
|
|
23
|
+
/** Other resources available for cross-resource references */
|
|
24
|
+
availableResources?: Record<string, Enhanced<any, any>>;
|
|
25
|
+
/** Whether to validate resource types during analysis */
|
|
26
|
+
validateResourceTypes?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Result of analyzing a resource configuration
|
|
30
|
+
*/
|
|
31
|
+
export interface ResourceAnalysisResult {
|
|
32
|
+
/** The original resource configuration */
|
|
33
|
+
originalConfig: Record<string, any>;
|
|
34
|
+
/** The processed configuration with CEL expressions */
|
|
35
|
+
processedConfig: Record<string, any>;
|
|
36
|
+
/** All KubernetesRef dependencies found in the configuration */
|
|
37
|
+
dependencies: KubernetesRef<any>[];
|
|
38
|
+
/** Fields that required conversion */
|
|
39
|
+
convertedFields: string[];
|
|
40
|
+
/** Analysis errors encountered */
|
|
41
|
+
errors: ConversionError[];
|
|
42
|
+
/** Whether any conversion was needed */
|
|
43
|
+
requiresConversion: boolean;
|
|
44
|
+
/** Circular dependency chains detected */
|
|
45
|
+
circularDependencies: string[][];
|
|
46
|
+
/** Resource type validation results */
|
|
47
|
+
typeValidationResults: ResourceTypeValidationResult[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resource type validation result
|
|
51
|
+
*/
|
|
52
|
+
export interface ResourceTypeValidationResult {
|
|
53
|
+
/** The field path that was validated */
|
|
54
|
+
fieldPath: string;
|
|
55
|
+
/** The KubernetesRef that was validated */
|
|
56
|
+
reference: KubernetesRef<any>;
|
|
57
|
+
/** Whether the type validation passed */
|
|
58
|
+
valid: boolean;
|
|
59
|
+
/** Expected type */
|
|
60
|
+
expectedType: string;
|
|
61
|
+
/** Actual type (if determinable) */
|
|
62
|
+
actualType?: string;
|
|
63
|
+
/** Validation error message */
|
|
64
|
+
error?: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Dependency tracking information for a KubernetesRef
|
|
68
|
+
*/
|
|
69
|
+
export interface DependencyInfo {
|
|
70
|
+
/** The KubernetesRef object */
|
|
71
|
+
reference: KubernetesRef<any>;
|
|
72
|
+
/** The field path where this dependency was found */
|
|
73
|
+
fieldPath: string;
|
|
74
|
+
/** The type of dependency */
|
|
75
|
+
dependencyType: 'schema' | 'resource' | 'external';
|
|
76
|
+
/** Whether this dependency is required for the resource to function */
|
|
77
|
+
required: boolean;
|
|
78
|
+
/** The expected type of the dependency */
|
|
79
|
+
expectedType: string;
|
|
80
|
+
/** Additional metadata about the dependency */
|
|
81
|
+
metadata?: {
|
|
82
|
+
/** Whether this dependency affects resource readiness */
|
|
83
|
+
affectsReadiness?: boolean;
|
|
84
|
+
/** Whether this dependency is used in conditional logic */
|
|
85
|
+
conditional?: boolean;
|
|
86
|
+
/** The expression context where this dependency was found */
|
|
87
|
+
expressionContext?: string;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Dependency graph for tracking resource relationships
|
|
92
|
+
*/
|
|
93
|
+
export interface DependencyGraph {
|
|
94
|
+
/** Map of resource ID to its dependencies */
|
|
95
|
+
dependencies: Map<string, DependencyInfo[]>;
|
|
96
|
+
/** Map of resource ID to resources that depend on it */
|
|
97
|
+
dependents: Map<string, string[]>;
|
|
98
|
+
/** Detected circular dependency chains */
|
|
99
|
+
circularChains: string[][];
|
|
100
|
+
/** Topologically sorted resource order (for deployment) */
|
|
101
|
+
deploymentOrder: string[];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Options for dependency tracking
|
|
105
|
+
*/
|
|
106
|
+
export interface DependencyTrackingOptions {
|
|
107
|
+
/** Whether to track schema dependencies */
|
|
108
|
+
trackSchemaDependencies?: boolean;
|
|
109
|
+
/** Whether to track resource dependencies */
|
|
110
|
+
trackResourceDependencies?: boolean;
|
|
111
|
+
/** Whether to track external dependencies */
|
|
112
|
+
trackExternalDependencies?: boolean;
|
|
113
|
+
/** Whether to detect circular dependencies */
|
|
114
|
+
detectCircularDependencies?: boolean;
|
|
115
|
+
/** Whether to compute deployment order */
|
|
116
|
+
computeDeploymentOrder?: boolean;
|
|
117
|
+
/** Maximum depth for dependency traversal */
|
|
118
|
+
maxDepth?: number;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Analyzes resource configurations for JavaScript expressions containing KubernetesRef objects
|
|
122
|
+
*/
|
|
123
|
+
export declare class ResourceAnalyzer {
|
|
124
|
+
private analyzer;
|
|
125
|
+
private dependencyTracker;
|
|
126
|
+
private typeValidator;
|
|
127
|
+
constructor();
|
|
128
|
+
/**
|
|
129
|
+
* Analyze a resource configuration for KubernetesRef-dependent expressions
|
|
130
|
+
* This is the main entry point for resource builder integration
|
|
131
|
+
*/
|
|
132
|
+
analyzeResourceConfig(resourceId: string, config: Record<string, any>, context: ResourceAnalysisContext): ResourceAnalysisResult;
|
|
133
|
+
/**
|
|
134
|
+
* Recursively analyze a configuration object for KubernetesRef objects
|
|
135
|
+
*/
|
|
136
|
+
private analyzeConfigObject;
|
|
137
|
+
/**
|
|
138
|
+
* Convert a KubernetesRef object in a resource configuration
|
|
139
|
+
*/
|
|
140
|
+
private convertKubernetesRefInConfig;
|
|
141
|
+
/**
|
|
142
|
+
* Analyze string expressions that might contain KubernetesRef objects
|
|
143
|
+
*/
|
|
144
|
+
private analyzeStringExpression;
|
|
145
|
+
/**
|
|
146
|
+
* Check if a string looks like a JavaScript expression
|
|
147
|
+
*/
|
|
148
|
+
private looksLikeExpression;
|
|
149
|
+
/**
|
|
150
|
+
* Validate resource types for KubernetesRef objects
|
|
151
|
+
* This implements requirement 4.5: resource type validation
|
|
152
|
+
*/
|
|
153
|
+
private validateResourceTypes;
|
|
154
|
+
/**
|
|
155
|
+
* Get dependency information for a resource
|
|
156
|
+
*/
|
|
157
|
+
getDependencyInfo(resourceId: string): DependencyInfo[];
|
|
158
|
+
/**
|
|
159
|
+
* Get the full dependency graph
|
|
160
|
+
*/
|
|
161
|
+
getDependencyGraph(): DependencyGraph;
|
|
162
|
+
/**
|
|
163
|
+
* Get resources that depend on a specific resource
|
|
164
|
+
*/
|
|
165
|
+
getDependents(resourceId: string): string[];
|
|
166
|
+
/**
|
|
167
|
+
* Check if there are circular dependencies
|
|
168
|
+
*/
|
|
169
|
+
hasCircularDependencies(): boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Get the recommended deployment order
|
|
172
|
+
*/
|
|
173
|
+
getDeploymentOrder(): string[];
|
|
174
|
+
/**
|
|
175
|
+
* Perform advanced circular dependency analysis
|
|
176
|
+
* This provides detailed analysis and recommendations for resolving circular dependencies
|
|
177
|
+
*/
|
|
178
|
+
analyzeCircularDependencies(): CircularDependencyAnalysis;
|
|
179
|
+
/**
|
|
180
|
+
* Get the resource type validator
|
|
181
|
+
*/
|
|
182
|
+
getTypeValidator(): ResourceTypeValidator;
|
|
183
|
+
/**
|
|
184
|
+
* Register a custom schema validator
|
|
185
|
+
*/
|
|
186
|
+
registerSchemaValidator(schemaType: string, validator: SchemaValidator): void;
|
|
187
|
+
/**
|
|
188
|
+
* Register a custom resource type
|
|
189
|
+
*/
|
|
190
|
+
registerResourceType(name: string, typeInfo: ResourceTypeInfo): void;
|
|
191
|
+
/**
|
|
192
|
+
* Validate a single KubernetesRef for type correctness
|
|
193
|
+
*/
|
|
194
|
+
validateKubernetesRef(ref: KubernetesRef<any>, context: ResourceTypeValidationContext): ResourceTypeValidationResult;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Convenience function for analyzing resource configurations
|
|
198
|
+
* This is the main entry point for resource builder integration
|
|
199
|
+
*/
|
|
200
|
+
export declare function analyzeResourceConfig(resourceId: string, config: Record<string, any>, context: Omit<ResourceAnalysisContext, 'resourceId' | 'resourceConfig'>): ResourceAnalysisResult;
|
|
201
|
+
/**
|
|
202
|
+
* Analyze resource configurations for factory function integration with KubernetesRef detection
|
|
203
|
+
* This function integrates with existing factory functions to detect and convert
|
|
204
|
+
* JavaScript expressions that contain KubernetesRef objects from the magic proxy system
|
|
205
|
+
*/
|
|
206
|
+
export declare function analyzeFactoryResourceConfig<T extends Record<string, any>>(resourceId: string, config: T, availableResources: Record<string, Enhanced<any, any>>, schemaProxy?: SchemaProxy<any, any>, factoryType?: 'direct' | 'kro'): ResourceAnalysisResult;
|
|
207
|
+
/**
|
|
208
|
+
* Automatic dependency tracker for KubernetesRef objects in expressions
|
|
209
|
+
* This implements requirement 4.2: automatic dependency tracking
|
|
210
|
+
*/
|
|
211
|
+
export declare class DependencyTracker {
|
|
212
|
+
private dependencyGraph;
|
|
213
|
+
constructor();
|
|
214
|
+
/**
|
|
215
|
+
* Track dependencies for a resource configuration
|
|
216
|
+
*/
|
|
217
|
+
trackDependencies(resourceId: string, dependencies: KubernetesRef<any>[], fieldPaths: string[], options?: DependencyTrackingOptions): DependencyInfo[];
|
|
218
|
+
/**
|
|
219
|
+
* Create dependency information for a KubernetesRef
|
|
220
|
+
*/
|
|
221
|
+
private createDependencyInfo;
|
|
222
|
+
/**
|
|
223
|
+
* Create a skipped dependency info (for disabled tracking)
|
|
224
|
+
*/
|
|
225
|
+
private createSkippedDependencyInfo;
|
|
226
|
+
/**
|
|
227
|
+
* Determine the type of dependency
|
|
228
|
+
*/
|
|
229
|
+
private determineDependencyType;
|
|
230
|
+
/**
|
|
231
|
+
* Determine if a dependency is required
|
|
232
|
+
*/
|
|
233
|
+
private isDependencyRequired;
|
|
234
|
+
/**
|
|
235
|
+
* Check if a field path represents a required field
|
|
236
|
+
*/
|
|
237
|
+
private isRequiredField;
|
|
238
|
+
/**
|
|
239
|
+
* Check if a dependency affects resource readiness
|
|
240
|
+
*/
|
|
241
|
+
private affectsReadiness;
|
|
242
|
+
/**
|
|
243
|
+
* Check if a field path is in a conditional context
|
|
244
|
+
*/
|
|
245
|
+
private isConditional;
|
|
246
|
+
/**
|
|
247
|
+
* Get expression context for a field path
|
|
248
|
+
*/
|
|
249
|
+
private getExpressionContext;
|
|
250
|
+
/**
|
|
251
|
+
* Add dependency info to the dependency graph
|
|
252
|
+
*/
|
|
253
|
+
private addToDependencyGraph;
|
|
254
|
+
/**
|
|
255
|
+
* Detect circular dependencies in the dependency graph
|
|
256
|
+
*/
|
|
257
|
+
private detectCircularDependencies;
|
|
258
|
+
/**
|
|
259
|
+
* Detect cycles starting from a specific resource
|
|
260
|
+
*/
|
|
261
|
+
private detectCyclesFromResource;
|
|
262
|
+
/**
|
|
263
|
+
* Compute deployment order using topological sort
|
|
264
|
+
*/
|
|
265
|
+
private computeDeploymentOrder;
|
|
266
|
+
/**
|
|
267
|
+
* Get the current dependency graph
|
|
268
|
+
*/
|
|
269
|
+
getDependencyGraph(): DependencyGraph;
|
|
270
|
+
/**
|
|
271
|
+
* Get dependencies for a specific resource
|
|
272
|
+
*/
|
|
273
|
+
getDependencies(resourceId: string): DependencyInfo[];
|
|
274
|
+
/**
|
|
275
|
+
* Get resources that depend on a specific resource
|
|
276
|
+
*/
|
|
277
|
+
getDependents(resourceId: string): string[];
|
|
278
|
+
/**
|
|
279
|
+
* Check if there are circular dependencies
|
|
280
|
+
*/
|
|
281
|
+
hasCircularDependencies(): boolean;
|
|
282
|
+
/**
|
|
283
|
+
* Get the deployment order
|
|
284
|
+
*/
|
|
285
|
+
getDeploymentOrder(): string[];
|
|
286
|
+
/**
|
|
287
|
+
* Reset the dependency graph
|
|
288
|
+
*/
|
|
289
|
+
reset(): void;
|
|
290
|
+
/**
|
|
291
|
+
* Advanced circular dependency detection with detailed chain analysis
|
|
292
|
+
* This provides more sophisticated analysis of KubernetesRef chains
|
|
293
|
+
*/
|
|
294
|
+
detectCircularDependencyChains(): CircularDependencyAnalysis;
|
|
295
|
+
/**
|
|
296
|
+
* Find strongly connected components using Tarjan's algorithm
|
|
297
|
+
*/
|
|
298
|
+
private findStronglyConnectedComponents;
|
|
299
|
+
/**
|
|
300
|
+
* Analyze a circular dependency chain
|
|
301
|
+
*/
|
|
302
|
+
private analyzeCircularChain;
|
|
303
|
+
/**
|
|
304
|
+
* Calculate the severity of a circular dependency chain
|
|
305
|
+
*/
|
|
306
|
+
private calculateChainSeverity;
|
|
307
|
+
/**
|
|
308
|
+
* Find potential break points in a circular chain
|
|
309
|
+
*/
|
|
310
|
+
private findPotentialBreakPoints;
|
|
311
|
+
/**
|
|
312
|
+
* Get affected fields for a circular chain
|
|
313
|
+
*/
|
|
314
|
+
private getAffectedFields;
|
|
315
|
+
/**
|
|
316
|
+
* Generate recommendations for resolving circular dependencies
|
|
317
|
+
*/
|
|
318
|
+
private generateCircularDependencyRecommendations;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Detailed analysis of circular dependencies
|
|
322
|
+
*/
|
|
323
|
+
export interface CircularDependencyAnalysis {
|
|
324
|
+
/** Whether circular dependencies were found */
|
|
325
|
+
hasCircularDependencies: boolean;
|
|
326
|
+
/** List of circular dependency chains */
|
|
327
|
+
circularChains: string[][];
|
|
328
|
+
/** Detailed analysis of each chain */
|
|
329
|
+
chainAnalysis: CircularChainAnalysis[];
|
|
330
|
+
/** Recommendations for resolving circular dependencies */
|
|
331
|
+
recommendations: CircularDependencyRecommendation[];
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Analysis of a single circular dependency chain
|
|
335
|
+
*/
|
|
336
|
+
export interface CircularChainAnalysis {
|
|
337
|
+
/** The resources in the circular chain */
|
|
338
|
+
chain: string[];
|
|
339
|
+
/** Length of the chain */
|
|
340
|
+
chainLength: number;
|
|
341
|
+
/** Severity score (0-1, higher is more severe) */
|
|
342
|
+
severity: number;
|
|
343
|
+
/** Potential break points in the chain */
|
|
344
|
+
breakPoints: string[];
|
|
345
|
+
/** Fields affected by the circular dependency */
|
|
346
|
+
affectedFields: string[];
|
|
347
|
+
/** Risk level assessment */
|
|
348
|
+
riskLevel: 'low' | 'medium' | 'high';
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Recommendation for resolving circular dependencies
|
|
352
|
+
*/
|
|
353
|
+
export interface CircularDependencyRecommendation {
|
|
354
|
+
/** Type of recommendation */
|
|
355
|
+
type: 'break-optional-dependency' | 'refactor-architecture' | 'external-configuration' | 'conditional-logic';
|
|
356
|
+
/** Human-readable description */
|
|
357
|
+
description: string;
|
|
358
|
+
/** Severity of the issue this addresses */
|
|
359
|
+
severity: 'low' | 'medium' | 'high';
|
|
360
|
+
/** Resources affected by this recommendation */
|
|
361
|
+
affectedResources: string[];
|
|
362
|
+
/** Implementation guidance */
|
|
363
|
+
implementation: string;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Comprehensive resource type validator for KubernetesRef objects
|
|
367
|
+
* This implements requirement 4.5: resource type validation
|
|
368
|
+
*/
|
|
369
|
+
export declare class ResourceTypeValidator {
|
|
370
|
+
private knownResourceTypes;
|
|
371
|
+
private schemaValidators;
|
|
372
|
+
constructor();
|
|
373
|
+
/**
|
|
374
|
+
* Validate a KubernetesRef for type correctness
|
|
375
|
+
*/
|
|
376
|
+
validateKubernetesRef(ref: KubernetesRef<any>, context: ResourceTypeValidationContext): ResourceTypeValidationResult;
|
|
377
|
+
/**
|
|
378
|
+
* Validate a schema reference
|
|
379
|
+
*/
|
|
380
|
+
private validateSchemaRef;
|
|
381
|
+
/**
|
|
382
|
+
* Validate a resource reference
|
|
383
|
+
*/
|
|
384
|
+
private validateResourceRef;
|
|
385
|
+
/**
|
|
386
|
+
* Validate schema field path structure
|
|
387
|
+
*/
|
|
388
|
+
private validateSchemaFieldPath;
|
|
389
|
+
/**
|
|
390
|
+
* Validate resource field path structure
|
|
391
|
+
*/
|
|
392
|
+
private validateResourceFieldPath;
|
|
393
|
+
/**
|
|
394
|
+
* Validate field patterns against known Kubernetes patterns
|
|
395
|
+
*/
|
|
396
|
+
private validateFieldPattern;
|
|
397
|
+
/**
|
|
398
|
+
* Validate type compatibility between expected and actual types
|
|
399
|
+
*/
|
|
400
|
+
private validateTypeCompatibility;
|
|
401
|
+
/**
|
|
402
|
+
* Check if two types are compatible
|
|
403
|
+
*/
|
|
404
|
+
private areTypesCompatible;
|
|
405
|
+
/**
|
|
406
|
+
* Infer the type of a field from a resource
|
|
407
|
+
*/
|
|
408
|
+
private inferFieldType;
|
|
409
|
+
/**
|
|
410
|
+
* Initialize known resource types
|
|
411
|
+
*/
|
|
412
|
+
private initializeKnownTypes;
|
|
413
|
+
/**
|
|
414
|
+
* Register a custom schema validator
|
|
415
|
+
*/
|
|
416
|
+
registerSchemaValidator(schemaType: string, validator: SchemaValidator): void;
|
|
417
|
+
/**
|
|
418
|
+
* Register a custom resource type
|
|
419
|
+
*/
|
|
420
|
+
registerResourceType(name: string, typeInfo: ResourceTypeInfo): void;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Context for resource type validation
|
|
424
|
+
*/
|
|
425
|
+
export interface ResourceTypeValidationContext {
|
|
426
|
+
/** Available resources for validation */
|
|
427
|
+
availableResources?: Record<string, Enhanced<any, any>> | undefined;
|
|
428
|
+
/** Schema proxy for schema validation */
|
|
429
|
+
schemaProxy?: SchemaProxy<any, any> | undefined;
|
|
430
|
+
/** Type of schema being validated */
|
|
431
|
+
schemaType?: string;
|
|
432
|
+
/** Whether to perform strict type checking */
|
|
433
|
+
strictTypeChecking?: boolean;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Information about a resource type
|
|
437
|
+
*/
|
|
438
|
+
export interface ResourceTypeInfo {
|
|
439
|
+
/** API version of the resource */
|
|
440
|
+
apiVersion: string;
|
|
441
|
+
/** Kind of the resource */
|
|
442
|
+
kind: string;
|
|
443
|
+
/** Common fields and their types */
|
|
444
|
+
commonFields: Record<string, string>;
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Schema validator interface
|
|
448
|
+
*/
|
|
449
|
+
export interface SchemaValidator {
|
|
450
|
+
/** Validate a field in the schema */
|
|
451
|
+
validateField(fieldPath: string, expectedType?: any): SchemaFieldValidationResult;
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Result of schema field validation
|
|
455
|
+
*/
|
|
456
|
+
export interface SchemaFieldValidationResult {
|
|
457
|
+
/** Whether the validation passed */
|
|
458
|
+
valid: boolean;
|
|
459
|
+
/** Error message if validation failed */
|
|
460
|
+
error?: string;
|
|
461
|
+
/** Actual type of the field */
|
|
462
|
+
actualType?: string;
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Result of field path validation
|
|
466
|
+
*/
|
|
467
|
+
export interface FieldPathValidationResult {
|
|
468
|
+
/** Whether the validation passed */
|
|
469
|
+
valid: boolean;
|
|
470
|
+
/** Error message if validation failed */
|
|
471
|
+
error?: string;
|
|
472
|
+
/** Actual type of the field */
|
|
473
|
+
actualType?: string | undefined;
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Result of type compatibility validation
|
|
477
|
+
*/
|
|
478
|
+
export interface TypeCompatibilityValidationResult {
|
|
479
|
+
/** Whether the types are compatible */
|
|
480
|
+
valid: boolean;
|
|
481
|
+
/** Error message if validation failed */
|
|
482
|
+
error?: string;
|
|
483
|
+
/** Actual type found */
|
|
484
|
+
actualType?: string;
|
|
485
|
+
}
|
|
486
|
+
//# sourceMappingURL=resource-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-analyzer.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/resource-analyzer.ts"],"names":[],"mappings":"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"}
|