typekro 0.2.2 → 0.3.1

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 (213) hide show
  1. package/README.md +4 -3
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/core/composition/imperative.d.ts.map +1 -1
  4. package/dist/core/composition/imperative.js +15 -2
  5. package/dist/core/composition/imperative.js.map +1 -1
  6. package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts.map +1 -1
  7. package/dist/core/composition/typekro-runtime/typekro-runtime.js +24 -25
  8. package/dist/core/composition/typekro-runtime/typekro-runtime.js.map +1 -1
  9. package/dist/core/dependencies/type-guards.d.ts.map +1 -1
  10. package/dist/core/dependencies/type-guards.js +7 -2
  11. package/dist/core/dependencies/type-guards.js.map +1 -1
  12. package/dist/core/deployment/engine.d.ts +13 -1
  13. package/dist/core/deployment/engine.d.ts.map +1 -1
  14. package/dist/core/deployment/engine.js +48 -3
  15. package/dist/core/deployment/engine.js.map +1 -1
  16. package/dist/core/errors.d.ts +85 -0
  17. package/dist/core/errors.d.ts.map +1 -1
  18. package/dist/core/errors.js +135 -0
  19. package/dist/core/errors.js.map +1 -1
  20. package/dist/core/evaluation/cel-optimizer.d.ts.map +1 -1
  21. package/dist/core/evaluation/cel-optimizer.js +7 -13
  22. package/dist/core/evaluation/cel-optimizer.js.map +1 -1
  23. package/dist/core/expressions/analyzer.d.ts +584 -0
  24. package/dist/core/expressions/analyzer.d.ts.map +1 -0
  25. package/dist/core/expressions/analyzer.js +2956 -0
  26. package/dist/core/expressions/analyzer.js.map +1 -0
  27. package/dist/core/expressions/cache.d.ts +136 -0
  28. package/dist/core/expressions/cache.d.ts.map +1 -0
  29. package/dist/core/expressions/cache.js +347 -0
  30. package/dist/core/expressions/cache.js.map +1 -0
  31. package/dist/core/expressions/cel-conversion-engine.d.ts +126 -0
  32. package/dist/core/expressions/cel-conversion-engine.d.ts.map +1 -0
  33. package/dist/core/expressions/cel-conversion-engine.js +293 -0
  34. package/dist/core/expressions/cel-conversion-engine.js.map +1 -0
  35. package/dist/core/expressions/compile-time-validation.d.ts +270 -0
  36. package/dist/core/expressions/compile-time-validation.d.ts.map +1 -0
  37. package/dist/core/expressions/compile-time-validation.js +506 -0
  38. package/dist/core/expressions/compile-time-validation.js.map +1 -0
  39. package/dist/core/expressions/composition-integration.d.ts +315 -0
  40. package/dist/core/expressions/composition-integration.d.ts.map +1 -0
  41. package/dist/core/expressions/composition-integration.js +936 -0
  42. package/dist/core/expressions/composition-integration.js.map +1 -0
  43. package/dist/core/expressions/conditional-expression-processor.d.ts +154 -0
  44. package/dist/core/expressions/conditional-expression-processor.d.ts.map +1 -0
  45. package/dist/core/expressions/conditional-expression-processor.js +479 -0
  46. package/dist/core/expressions/conditional-expression-processor.js.map +1 -0
  47. package/dist/core/expressions/conditional-integration.d.ts +133 -0
  48. package/dist/core/expressions/conditional-integration.d.ts.map +1 -0
  49. package/dist/core/expressions/conditional-integration.js +293 -0
  50. package/dist/core/expressions/conditional-integration.js.map +1 -0
  51. package/dist/core/expressions/conditional-validation.d.ts +181 -0
  52. package/dist/core/expressions/conditional-validation.d.ts.map +1 -0
  53. package/dist/core/expressions/conditional-validation.js +460 -0
  54. package/dist/core/expressions/conditional-validation.js.map +1 -0
  55. package/dist/core/expressions/context-aware-generator.d.ts +127 -0
  56. package/dist/core/expressions/context-aware-generator.d.ts.map +1 -0
  57. package/dist/core/expressions/context-aware-generator.js +500 -0
  58. package/dist/core/expressions/context-aware-generator.js.map +1 -0
  59. package/dist/core/expressions/context-detector.d.ts +148 -0
  60. package/dist/core/expressions/context-detector.d.ts.map +1 -0
  61. package/dist/core/expressions/context-detector.js +546 -0
  62. package/dist/core/expressions/context-detector.js.map +1 -0
  63. package/dist/core/expressions/context-switcher.d.ts +185 -0
  64. package/dist/core/expressions/context-switcher.d.ts.map +1 -0
  65. package/dist/core/expressions/context-switcher.js +515 -0
  66. package/dist/core/expressions/context-switcher.js.map +1 -0
  67. package/dist/core/expressions/context-validator.d.ts +176 -0
  68. package/dist/core/expressions/context-validator.d.ts.map +1 -0
  69. package/dist/core/expressions/context-validator.js +452 -0
  70. package/dist/core/expressions/context-validator.js.map +1 -0
  71. package/dist/core/expressions/custom-context-manager.d.ts +194 -0
  72. package/dist/core/expressions/custom-context-manager.d.ts.map +1 -0
  73. package/dist/core/expressions/custom-context-manager.js +390 -0
  74. package/dist/core/expressions/custom-context-manager.js.map +1 -0
  75. package/dist/core/expressions/expression-proxy.d.ts +80 -0
  76. package/dist/core/expressions/expression-proxy.d.ts.map +1 -0
  77. package/dist/core/expressions/expression-proxy.js +227 -0
  78. package/dist/core/expressions/expression-proxy.js.map +1 -0
  79. package/dist/core/expressions/factory-integration.d.ts +132 -0
  80. package/dist/core/expressions/factory-integration.d.ts.map +1 -0
  81. package/dist/core/expressions/factory-integration.js +327 -0
  82. package/dist/core/expressions/factory-integration.js.map +1 -0
  83. package/dist/core/expressions/factory-pattern-handler.d.ts +88 -0
  84. package/dist/core/expressions/factory-pattern-handler.d.ts.map +1 -0
  85. package/dist/core/expressions/factory-pattern-handler.js +336 -0
  86. package/dist/core/expressions/factory-pattern-handler.js.map +1 -0
  87. package/dist/core/expressions/field-hydration-processor.d.ts +188 -0
  88. package/dist/core/expressions/field-hydration-processor.d.ts.map +1 -0
  89. package/dist/core/expressions/field-hydration-processor.js +562 -0
  90. package/dist/core/expressions/field-hydration-processor.js.map +1 -0
  91. package/dist/core/expressions/imperative-analyzer.d.ts +21 -0
  92. package/dist/core/expressions/imperative-analyzer.d.ts.map +1 -0
  93. package/dist/core/expressions/imperative-analyzer.js +457 -0
  94. package/dist/core/expressions/imperative-analyzer.js.map +1 -0
  95. package/dist/core/expressions/index.d.ts +54 -0
  96. package/dist/core/expressions/index.d.ts.map +1 -0
  97. package/dist/core/expressions/index.js +50 -0
  98. package/dist/core/expressions/index.js.map +1 -0
  99. package/dist/core/expressions/lazy-analysis.d.ts +1128 -0
  100. package/dist/core/expressions/lazy-analysis.d.ts.map +1 -0
  101. package/dist/core/expressions/lazy-analysis.js +2443 -0
  102. package/dist/core/expressions/lazy-analysis.js.map +1 -0
  103. package/dist/core/expressions/magic-assignable-analyzer.d.ts +123 -0
  104. package/dist/core/expressions/magic-assignable-analyzer.d.ts.map +1 -0
  105. package/dist/core/expressions/magic-assignable-analyzer.js +352 -0
  106. package/dist/core/expressions/magic-assignable-analyzer.js.map +1 -0
  107. package/dist/core/expressions/magic-proxy-analyzer.d.ts +206 -0
  108. package/dist/core/expressions/magic-proxy-analyzer.d.ts.map +1 -0
  109. package/dist/core/expressions/magic-proxy-analyzer.js +639 -0
  110. package/dist/core/expressions/magic-proxy-analyzer.js.map +1 -0
  111. package/dist/core/expressions/magic-proxy-detector.d.ts +154 -0
  112. package/dist/core/expressions/magic-proxy-detector.d.ts.map +1 -0
  113. package/dist/core/expressions/magic-proxy-detector.js +242 -0
  114. package/dist/core/expressions/magic-proxy-detector.js.map +1 -0
  115. package/dist/core/expressions/migration-helpers.d.ts +133 -0
  116. package/dist/core/expressions/migration-helpers.d.ts.map +1 -0
  117. package/dist/core/expressions/migration-helpers.js +443 -0
  118. package/dist/core/expressions/migration-helpers.js.map +1 -0
  119. package/dist/core/expressions/optionality-handler.d.ts +503 -0
  120. package/dist/core/expressions/optionality-handler.d.ts.map +1 -0
  121. package/dist/core/expressions/optionality-handler.js +1306 -0
  122. package/dist/core/expressions/optionality-handler.js.map +1 -0
  123. package/dist/core/expressions/readiness-integration.d.ts +119 -0
  124. package/dist/core/expressions/readiness-integration.d.ts.map +1 -0
  125. package/dist/core/expressions/readiness-integration.js +386 -0
  126. package/dist/core/expressions/readiness-integration.js.map +1 -0
  127. package/dist/core/expressions/resource-analyzer.d.ts +486 -0
  128. package/dist/core/expressions/resource-analyzer.d.ts.map +1 -0
  129. package/dist/core/expressions/resource-analyzer.js +1086 -0
  130. package/dist/core/expressions/resource-analyzer.js.map +1 -0
  131. package/dist/core/expressions/resource-validation.d.ts +187 -0
  132. package/dist/core/expressions/resource-validation.d.ts.map +1 -0
  133. package/dist/core/expressions/resource-validation.js +552 -0
  134. package/dist/core/expressions/resource-validation.js.map +1 -0
  135. package/dist/core/expressions/runtime-error-mapper.d.ts +138 -0
  136. package/dist/core/expressions/runtime-error-mapper.d.ts.map +1 -0
  137. package/dist/core/expressions/runtime-error-mapper.js +412 -0
  138. package/dist/core/expressions/runtime-error-mapper.js.map +1 -0
  139. package/dist/core/expressions/source-map.d.ts +168 -0
  140. package/dist/core/expressions/source-map.d.ts.map +1 -0
  141. package/dist/core/expressions/source-map.js +350 -0
  142. package/dist/core/expressions/source-map.js.map +1 -0
  143. package/dist/core/expressions/status-builder-analyzer.d.ts +353 -0
  144. package/dist/core/expressions/status-builder-analyzer.d.ts.map +1 -0
  145. package/dist/core/expressions/status-builder-analyzer.js +1311 -0
  146. package/dist/core/expressions/status-builder-analyzer.js.map +1 -0
  147. package/dist/core/expressions/type-inference.d.ts +184 -0
  148. package/dist/core/expressions/type-inference.d.ts.map +1 -0
  149. package/dist/core/expressions/type-inference.js +838 -0
  150. package/dist/core/expressions/type-inference.js.map +1 -0
  151. package/dist/core/expressions/type-safety.d.ts +203 -0
  152. package/dist/core/expressions/type-safety.d.ts.map +1 -0
  153. package/dist/core/expressions/type-safety.js +442 -0
  154. package/dist/core/expressions/type-safety.js.map +1 -0
  155. package/dist/core/expressions/types.d.ts +282 -0
  156. package/dist/core/expressions/types.d.ts.map +1 -0
  157. package/dist/core/expressions/types.js +8 -0
  158. package/dist/core/expressions/types.js.map +1 -0
  159. package/dist/core/kubernetes/client-provider.js +2 -2
  160. package/dist/core/kubernetes/client-provider.js.map +1 -1
  161. package/dist/core/references/cel.d.ts +13 -1
  162. package/dist/core/references/cel.d.ts.map +1 -1
  163. package/dist/core/references/cel.js +50 -0
  164. package/dist/core/references/cel.js.map +1 -1
  165. package/dist/core/references/schema-proxy.d.ts.map +1 -1
  166. package/dist/core/references/schema-proxy.js +13 -8
  167. package/dist/core/references/schema-proxy.js.map +1 -1
  168. package/dist/core/serialization/core.d.ts.map +1 -1
  169. package/dist/core/serialization/core.js +573 -9
  170. package/dist/core/serialization/core.js.map +1 -1
  171. package/dist/core/types/deployment.d.ts +7 -0
  172. package/dist/core/types/deployment.d.ts.map +1 -1
  173. package/dist/core/types/deployment.js +7 -0
  174. package/dist/core/types/deployment.js.map +1 -1
  175. package/dist/core/types/index.d.ts +1 -0
  176. package/dist/core/types/index.d.ts.map +1 -1
  177. package/dist/core/types/index.js.map +1 -1
  178. package/dist/core/validation/cel-validator.d.ts.map +1 -1
  179. package/dist/core/validation/cel-validator.js +4 -8
  180. package/dist/core/validation/cel-validator.js.map +1 -1
  181. package/dist/core.d.ts +1 -1
  182. package/dist/core.d.ts.map +1 -1
  183. package/dist/core.js +1 -1
  184. package/dist/core.js.map +1 -1
  185. package/dist/factories/helm/helm-release.d.ts.map +1 -1
  186. package/dist/factories/helm/helm-release.js +0 -5
  187. package/dist/factories/helm/helm-release.js.map +1 -1
  188. package/dist/factories/helm/types.d.ts +1 -1
  189. package/dist/factories/helm/types.d.ts.map +1 -1
  190. package/dist/factories/index.js +1 -0
  191. package/dist/factories/index.js.map +1 -1
  192. package/dist/factories/shared.d.ts.map +1 -1
  193. package/dist/factories/shared.js +21 -1
  194. package/dist/factories/shared.js.map +1 -1
  195. package/dist/factories/simple/index.d.ts +2 -2
  196. package/dist/factories/simple/index.d.ts.map +1 -1
  197. package/dist/factories/simple/workloads/deployment.d.ts +3 -3
  198. package/dist/factories/simple/workloads/deployment.d.ts.map +1 -1
  199. package/dist/factories/simple/workloads/deployment.js +37 -11
  200. package/dist/factories/simple/workloads/deployment.js.map +1 -1
  201. package/dist/index.d.ts +1 -1
  202. package/dist/index.d.ts.map +1 -1
  203. package/dist/index.js +1 -1
  204. package/dist/index.js.map +1 -1
  205. package/dist/utils/index.d.ts +1 -1
  206. package/dist/utils/index.d.ts.map +1 -1
  207. package/dist/utils/index.js +1 -1
  208. package/dist/utils/index.js.map +1 -1
  209. package/dist/utils/type-guards.d.ts +6 -0
  210. package/dist/utils/type-guards.d.ts.map +1 -1
  211. package/dist/utils/type-guards.js +25 -2
  212. package/dist/utils/type-guards.js.map +1 -1
  213. 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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"}