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,353 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status Builder Analyzer for JavaScript to CEL Expression Conversion
|
|
3
|
+
*
|
|
4
|
+
* This module provides specialized analysis for status builder functions used in
|
|
5
|
+
* toResourceGraph. It detects KubernetesRef objects from the magic proxy system
|
|
6
|
+
* and converts JavaScript expressions to appropriate CEL expressions for status
|
|
7
|
+
* field population.
|
|
8
|
+
*
|
|
9
|
+
* Key Features:
|
|
10
|
+
* - Analyzes status builder functions for KubernetesRef detection
|
|
11
|
+
* - Converts return object expressions to CEL for status field mapping
|
|
12
|
+
* - Integrates with magic proxy system (SchemaProxy and ResourcesProxy)
|
|
13
|
+
* - Provides status context-specific CEL generation
|
|
14
|
+
* - Supports both direct and Kro factory patterns
|
|
15
|
+
*/
|
|
16
|
+
import type { Node as ESTreeNode, ReturnStatement } from 'estree';
|
|
17
|
+
import type { CelExpression, KubernetesRef } from '../types/common.js';
|
|
18
|
+
import type { Enhanced } from '../types/kubernetes.js';
|
|
19
|
+
import type { SchemaProxy } from '../types/serialization.js';
|
|
20
|
+
import { ConversionError } from '../errors.js';
|
|
21
|
+
import { JavaScriptToCelAnalyzer } from './analyzer.js';
|
|
22
|
+
import { type SourceMapEntry } from './source-map.js';
|
|
23
|
+
import { type OptionalityContext, type OptionalityAnalysisResult, type FieldHydrationState } from './optionality-handler.js';
|
|
24
|
+
/**
|
|
25
|
+
* Status builder function type for analysis
|
|
26
|
+
*/
|
|
27
|
+
export type StatusBuilderFunction<TSpec extends Record<string, any> = any, TStatus = any> = (schema: SchemaProxy<TSpec, any>, resources: Record<string, Enhanced<any, any>>) => TStatus;
|
|
28
|
+
/**
|
|
29
|
+
* Status field analysis result
|
|
30
|
+
*/
|
|
31
|
+
export interface StatusFieldAnalysisResult {
|
|
32
|
+
/** Field name in the status object */
|
|
33
|
+
fieldName: string;
|
|
34
|
+
/** Original JavaScript expression */
|
|
35
|
+
originalExpression: any;
|
|
36
|
+
/** Converted CEL expression */
|
|
37
|
+
celExpression: CelExpression | null;
|
|
38
|
+
/** KubernetesRef dependencies detected */
|
|
39
|
+
dependencies: KubernetesRef<any>[];
|
|
40
|
+
/** Whether the expression requires conversion */
|
|
41
|
+
requiresConversion: boolean;
|
|
42
|
+
/** Whether the expression is valid */
|
|
43
|
+
valid: boolean;
|
|
44
|
+
/** Conversion errors */
|
|
45
|
+
errors: ConversionError[];
|
|
46
|
+
/** Source mapping entries */
|
|
47
|
+
sourceMap: SourceMapEntry[];
|
|
48
|
+
/** Optionality analysis results */
|
|
49
|
+
optionalityAnalysis: OptionalityAnalysisResult[];
|
|
50
|
+
/** Type information */
|
|
51
|
+
inferredType: string | undefined;
|
|
52
|
+
/** Confidence level of the analysis */
|
|
53
|
+
confidence: number;
|
|
54
|
+
/** Static value for object expressions that can be evaluated at compile time */
|
|
55
|
+
staticValue?: any;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Status builder analysis result
|
|
59
|
+
*/
|
|
60
|
+
export interface StatusBuilderAnalysisResult {
|
|
61
|
+
/** Analysis results for each status field */
|
|
62
|
+
fieldAnalysis: Map<string, StatusFieldAnalysisResult>;
|
|
63
|
+
/** Overall status mappings (field name -> CEL expression or static value) */
|
|
64
|
+
statusMappings: Record<string, CelExpression | any>;
|
|
65
|
+
/** All KubernetesRef dependencies found */
|
|
66
|
+
allDependencies: KubernetesRef<any>[];
|
|
67
|
+
/** All resource references */
|
|
68
|
+
resourceReferences: KubernetesRef<any>[];
|
|
69
|
+
/** All schema references */
|
|
70
|
+
schemaReferences: KubernetesRef<any>[];
|
|
71
|
+
/** Overall source mapping */
|
|
72
|
+
sourceMap: SourceMapEntry[];
|
|
73
|
+
/** All errors encountered */
|
|
74
|
+
errors: ConversionError[];
|
|
75
|
+
/** Whether the analysis was successful */
|
|
76
|
+
valid: boolean;
|
|
77
|
+
/** Original status builder function source */
|
|
78
|
+
originalSource: string;
|
|
79
|
+
/** Parsed AST of the status builder */
|
|
80
|
+
ast?: ESTreeNode;
|
|
81
|
+
/** Return statement analysis */
|
|
82
|
+
returnStatement?: ReturnStatementAnalysis;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Return statement analysis
|
|
86
|
+
*/
|
|
87
|
+
export interface ReturnStatementAnalysis {
|
|
88
|
+
/** The return statement node */
|
|
89
|
+
node: ReturnStatement;
|
|
90
|
+
/** Whether it returns an object expression */
|
|
91
|
+
returnsObject: boolean;
|
|
92
|
+
/** Properties in the returned object */
|
|
93
|
+
properties: PropertyAnalysis[];
|
|
94
|
+
/** Source location information */
|
|
95
|
+
sourceLocation: {
|
|
96
|
+
line: number;
|
|
97
|
+
column: number;
|
|
98
|
+
length: number;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Property analysis for object expressions
|
|
103
|
+
*/
|
|
104
|
+
export interface PropertyAnalysis {
|
|
105
|
+
/** Property name */
|
|
106
|
+
name: string;
|
|
107
|
+
/** Property value node */
|
|
108
|
+
valueNode: ESTreeNode;
|
|
109
|
+
/** Property value as string */
|
|
110
|
+
valueSource: string;
|
|
111
|
+
/** Whether the property contains KubernetesRef objects */
|
|
112
|
+
containsKubernetesRefs: boolean;
|
|
113
|
+
/** Source location */
|
|
114
|
+
sourceLocation: {
|
|
115
|
+
line: number;
|
|
116
|
+
column: number;
|
|
117
|
+
length: number;
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Status field handling information
|
|
122
|
+
*/
|
|
123
|
+
export interface StatusFieldHandlingInfo {
|
|
124
|
+
/** The KubernetesRef being handled */
|
|
125
|
+
kubernetesRef: KubernetesRef<any>;
|
|
126
|
+
/** Whether this field requires hydration */
|
|
127
|
+
requiresHydration: boolean;
|
|
128
|
+
/** Whether this field is optional */
|
|
129
|
+
isOptional: boolean;
|
|
130
|
+
/** Handling strategy for this field */
|
|
131
|
+
strategy: StatusHandlingStrategy;
|
|
132
|
+
/** Priority for evaluation (lower = higher priority) */
|
|
133
|
+
priority: number;
|
|
134
|
+
/** Category of the status field */
|
|
135
|
+
fieldCategory: StatusFieldCategory;
|
|
136
|
+
/** Expected availability timing */
|
|
137
|
+
expectedAvailability: FieldAvailabilityEstimate;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Status handling strategy
|
|
141
|
+
*/
|
|
142
|
+
export type StatusHandlingStrategy = 'direct-access' | 'null-safety-only' | 'hydration-required' | 'hydration-with-null-safety';
|
|
143
|
+
/**
|
|
144
|
+
* Status field category
|
|
145
|
+
*/
|
|
146
|
+
export type StatusFieldCategory = 'readiness-indicator' | 'condition-status' | 'replica-status' | 'network-status' | 'lifecycle-status' | 'general-status';
|
|
147
|
+
/**
|
|
148
|
+
* Field availability estimate
|
|
149
|
+
*/
|
|
150
|
+
export type FieldAvailabilityEstimate = 'immediate' | 'delayed' | 'very-delayed';
|
|
151
|
+
/**
|
|
152
|
+
* Options for status builder analysis
|
|
153
|
+
*/
|
|
154
|
+
export interface StatusBuilderAnalysisOptions {
|
|
155
|
+
/** Whether to perform deep analysis */
|
|
156
|
+
deepAnalysis?: boolean;
|
|
157
|
+
/** Whether to include source mapping */
|
|
158
|
+
includeSourceMapping?: boolean;
|
|
159
|
+
/** Whether to validate resource references */
|
|
160
|
+
validateReferences?: boolean;
|
|
161
|
+
/** Whether to perform optionality analysis */
|
|
162
|
+
performOptionalityAnalysis?: boolean;
|
|
163
|
+
/** Factory type for CEL generation */
|
|
164
|
+
factoryType?: 'direct' | 'kro';
|
|
165
|
+
/** Maximum analysis depth */
|
|
166
|
+
maxDepth?: number;
|
|
167
|
+
/** Field hydration states for optionality analysis */
|
|
168
|
+
hydrationStates?: Map<string, FieldHydrationState>;
|
|
169
|
+
/** Whether to use conservative null-safety */
|
|
170
|
+
conservativeNullSafety?: boolean;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Status Builder Analyzer
|
|
174
|
+
*
|
|
175
|
+
* Analyzes status builder functions to extract KubernetesRef dependencies
|
|
176
|
+
* and convert JavaScript expressions to CEL for status field population.
|
|
177
|
+
*/
|
|
178
|
+
export declare class StatusBuilderAnalyzer {
|
|
179
|
+
private expressionAnalyzer;
|
|
180
|
+
private magicProxyAnalyzer;
|
|
181
|
+
private optionalityHandler;
|
|
182
|
+
private options;
|
|
183
|
+
private logger;
|
|
184
|
+
constructor(expressionAnalyzer?: JavaScriptToCelAnalyzer, options?: StatusBuilderAnalysisOptions);
|
|
185
|
+
/**
|
|
186
|
+
* Analyze status builder function for toResourceGraph integration
|
|
187
|
+
*
|
|
188
|
+
* This is the main method that analyzes a status builder function and extracts
|
|
189
|
+
* KubernetesRef dependencies for conversion to CEL expressions.
|
|
190
|
+
*/
|
|
191
|
+
analyzeStatusBuilder<TSpec extends Record<string, any>, TStatus>(statusBuilder: StatusBuilderFunction<TSpec, TStatus>, resources: Record<string, Enhanced<any, any>>, schemaProxy?: SchemaProxy<TSpec, any>): StatusBuilderAnalysisResult;
|
|
192
|
+
/**
|
|
193
|
+
* Analyze return object expressions with magic proxy support
|
|
194
|
+
*
|
|
195
|
+
* This method analyzes the object returned by the status builder function
|
|
196
|
+
* and detects KubernetesRef objects from the magic proxy system.
|
|
197
|
+
*/
|
|
198
|
+
analyzeReturnObjectWithMagicProxy(returnObject: any, resources: Record<string, Enhanced<any, any>>, schemaProxy?: SchemaProxy<any, any>): {
|
|
199
|
+
statusMappings: Record<string, CelExpression>;
|
|
200
|
+
dependencies: KubernetesRef<any>[];
|
|
201
|
+
errors: ConversionError[];
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Analyze a single field in the return object with comprehensive magic proxy support
|
|
205
|
+
*/
|
|
206
|
+
private analyzeReturnObjectField;
|
|
207
|
+
/**
|
|
208
|
+
* Convert static values (no KubernetesRef objects) to CEL expressions
|
|
209
|
+
*/
|
|
210
|
+
private convertStaticValueToCel;
|
|
211
|
+
/**
|
|
212
|
+
* Perform deep analysis of nested return object structures
|
|
213
|
+
*/
|
|
214
|
+
analyzeNestedReturnObjectStructure(returnObject: any, resources: Record<string, Enhanced<any, any>>, schemaProxy?: SchemaProxy<any, any>, depth?: number): {
|
|
215
|
+
flattenedMappings: Record<string, CelExpression>;
|
|
216
|
+
nestedDependencies: Map<string, KubernetesRef<any>[]>;
|
|
217
|
+
structureErrors: ConversionError[];
|
|
218
|
+
};
|
|
219
|
+
/**
|
|
220
|
+
* Recursively analyze object structure for KubernetesRef objects
|
|
221
|
+
*/
|
|
222
|
+
private analyzeObjectStructureRecursively;
|
|
223
|
+
/**
|
|
224
|
+
* Generate status context-specific CEL from KubernetesRef objects
|
|
225
|
+
*
|
|
226
|
+
* This method generates CEL expressions specifically for status context,
|
|
227
|
+
* taking into account the magic proxy system and field hydration timing.
|
|
228
|
+
*/
|
|
229
|
+
generateStatusContextCel(kubernetesRef: KubernetesRef<any>, context: OptionalityContext): CelExpression;
|
|
230
|
+
/**
|
|
231
|
+
* Generate advanced status context CEL with full feature support
|
|
232
|
+
*/
|
|
233
|
+
private generateStatusContextCelWithAdvancedFeatures;
|
|
234
|
+
/**
|
|
235
|
+
* Analyze status field handling requirements
|
|
236
|
+
*/
|
|
237
|
+
private analyzeStatusFieldHandlingRequirements;
|
|
238
|
+
/**
|
|
239
|
+
* Apply status context-specific transformations to CEL expression
|
|
240
|
+
*/
|
|
241
|
+
private applyStatusContextTransformations;
|
|
242
|
+
/**
|
|
243
|
+
* Apply hydration with null-safety transformation
|
|
244
|
+
*/
|
|
245
|
+
private applyHydrationWithNullSafety;
|
|
246
|
+
/**
|
|
247
|
+
* Apply hydration required transformation
|
|
248
|
+
*/
|
|
249
|
+
private applyHydrationRequired;
|
|
250
|
+
/**
|
|
251
|
+
* Apply null-safety only transformation
|
|
252
|
+
*/
|
|
253
|
+
private applyNullSafetyOnly;
|
|
254
|
+
/**
|
|
255
|
+
* Check if a field is optional in status context
|
|
256
|
+
*/
|
|
257
|
+
private isFieldOptionalInStatusContext;
|
|
258
|
+
/**
|
|
259
|
+
* Calculate priority for status field evaluation
|
|
260
|
+
*/
|
|
261
|
+
private calculateStatusFieldPriority;
|
|
262
|
+
/**
|
|
263
|
+
* Categorize status field type
|
|
264
|
+
*/
|
|
265
|
+
private categorizeStatusField;
|
|
266
|
+
/**
|
|
267
|
+
* Estimate field availability timing
|
|
268
|
+
*/
|
|
269
|
+
private estimateFieldAvailability;
|
|
270
|
+
/**
|
|
271
|
+
* Infer the type of a status field
|
|
272
|
+
*/
|
|
273
|
+
private inferStatusFieldType;
|
|
274
|
+
/**
|
|
275
|
+
* Analyze a mixed object expression (contains both static and dynamic values)
|
|
276
|
+
*/
|
|
277
|
+
private analyzeMixedObjectExpression;
|
|
278
|
+
/**
|
|
279
|
+
* Evaluate a static object expression to a JavaScript object
|
|
280
|
+
*/
|
|
281
|
+
private evaluateStaticObjectExpression;
|
|
282
|
+
/**
|
|
283
|
+
* Evaluate a static value from an AST node
|
|
284
|
+
*/
|
|
285
|
+
private evaluateStaticValue;
|
|
286
|
+
/**
|
|
287
|
+
* Create a CelExpression for a static value
|
|
288
|
+
*/
|
|
289
|
+
private createStaticCelExpression;
|
|
290
|
+
/**
|
|
291
|
+
* Extract source code for an AST node using range information
|
|
292
|
+
*/
|
|
293
|
+
private getNodeSource;
|
|
294
|
+
/**
|
|
295
|
+
* Generate fallback status CEL expression
|
|
296
|
+
*/
|
|
297
|
+
private generateFallbackStatusCel;
|
|
298
|
+
/**
|
|
299
|
+
* Parse status builder function to AST
|
|
300
|
+
*/
|
|
301
|
+
private parseStatusBuilderFunction;
|
|
302
|
+
/**
|
|
303
|
+
* Analyze the return statement of the status builder
|
|
304
|
+
*/
|
|
305
|
+
private analyzeReturnStatement;
|
|
306
|
+
/**
|
|
307
|
+
* Analyze properties in an object expression
|
|
308
|
+
*/
|
|
309
|
+
private analyzeObjectProperties;
|
|
310
|
+
/**
|
|
311
|
+
* Analyze a single status field
|
|
312
|
+
*/
|
|
313
|
+
private analyzeStatusField;
|
|
314
|
+
/**
|
|
315
|
+
* Calculate confidence level for field analysis
|
|
316
|
+
*/
|
|
317
|
+
private calculateFieldConfidence;
|
|
318
|
+
/**
|
|
319
|
+
* Categorize dependencies into resource and schema references
|
|
320
|
+
*/
|
|
321
|
+
private categorizeDependencies;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Analyze status builder function for toResourceGraph integration with KubernetesRef detection
|
|
325
|
+
*
|
|
326
|
+
* This is the main integration point for toResourceGraph to analyze status builder functions
|
|
327
|
+
* and detect KubernetesRef objects from the magic proxy system.
|
|
328
|
+
*/
|
|
329
|
+
export declare function analyzeStatusBuilderForToResourceGraph<TSpec extends Record<string, any>, TStatus>(statusBuilder: StatusBuilderFunction<TSpec, TStatus>, resources: Record<string, Enhanced<any, any>>, schemaProxy?: SchemaProxy<TSpec, any>, factoryType?: 'direct' | 'kro'): {
|
|
330
|
+
statusMappings: Record<string, CelExpression | any>;
|
|
331
|
+
dependencies: KubernetesRef<any>[];
|
|
332
|
+
hydrationOrder: string[];
|
|
333
|
+
errors: ConversionError[];
|
|
334
|
+
valid: boolean;
|
|
335
|
+
requiresConversion: boolean;
|
|
336
|
+
};
|
|
337
|
+
/**
|
|
338
|
+
* Convenience function to analyze status builder functions
|
|
339
|
+
*/
|
|
340
|
+
export declare function analyzeStatusBuilder<TSpec extends Record<string, any>, TStatus>(statusBuilder: StatusBuilderFunction<TSpec, TStatus>, resources: Record<string, Enhanced<any, any>>, schemaProxy?: SchemaProxy<TSpec, any>, options?: StatusBuilderAnalysisOptions): StatusBuilderAnalysisResult;
|
|
341
|
+
/**
|
|
342
|
+
* Convenience function to analyze return objects with magic proxy support
|
|
343
|
+
*/
|
|
344
|
+
export declare function analyzeReturnObjectWithMagicProxy(returnObject: any, resources: Record<string, Enhanced<any, any>>, schemaProxy?: SchemaProxy<any, any>, options?: StatusBuilderAnalysisOptions): {
|
|
345
|
+
statusMappings: Record<string, CelExpression>;
|
|
346
|
+
dependencies: KubernetesRef<any>[];
|
|
347
|
+
errors: ConversionError[];
|
|
348
|
+
};
|
|
349
|
+
/**
|
|
350
|
+
* Convenience function to generate status context-specific CEL
|
|
351
|
+
*/
|
|
352
|
+
export declare function generateStatusContextCel(kubernetesRef: KubernetesRef<any>, context: OptionalityContext, options?: StatusBuilderAnalysisOptions): CelExpression;
|
|
353
|
+
//# sourceMappingURL=status-builder-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-builder-analyzer.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/status-builder-analyzer.ts"],"names":[],"mappings":"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"}
|