typekro 0.2.1 → 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.
Files changed (197) 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 +0 -1
  13. package/dist/core/deployment/engine.d.ts.map +1 -1
  14. package/dist/core/deployment/engine.js +0 -1
  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/expressions/analyzer.d.ts +584 -0
  21. package/dist/core/expressions/analyzer.d.ts.map +1 -0
  22. package/dist/core/expressions/analyzer.js +2956 -0
  23. package/dist/core/expressions/analyzer.js.map +1 -0
  24. package/dist/core/expressions/cache.d.ts +136 -0
  25. package/dist/core/expressions/cache.d.ts.map +1 -0
  26. package/dist/core/expressions/cache.js +347 -0
  27. package/dist/core/expressions/cache.js.map +1 -0
  28. package/dist/core/expressions/cel-conversion-engine.d.ts +126 -0
  29. package/dist/core/expressions/cel-conversion-engine.d.ts.map +1 -0
  30. package/dist/core/expressions/cel-conversion-engine.js +293 -0
  31. package/dist/core/expressions/cel-conversion-engine.js.map +1 -0
  32. package/dist/core/expressions/compile-time-validation.d.ts +270 -0
  33. package/dist/core/expressions/compile-time-validation.d.ts.map +1 -0
  34. package/dist/core/expressions/compile-time-validation.js +506 -0
  35. package/dist/core/expressions/compile-time-validation.js.map +1 -0
  36. package/dist/core/expressions/composition-integration.d.ts +315 -0
  37. package/dist/core/expressions/composition-integration.d.ts.map +1 -0
  38. package/dist/core/expressions/composition-integration.js +936 -0
  39. package/dist/core/expressions/composition-integration.js.map +1 -0
  40. package/dist/core/expressions/conditional-expression-processor.d.ts +154 -0
  41. package/dist/core/expressions/conditional-expression-processor.d.ts.map +1 -0
  42. package/dist/core/expressions/conditional-expression-processor.js +479 -0
  43. package/dist/core/expressions/conditional-expression-processor.js.map +1 -0
  44. package/dist/core/expressions/conditional-integration.d.ts +133 -0
  45. package/dist/core/expressions/conditional-integration.d.ts.map +1 -0
  46. package/dist/core/expressions/conditional-integration.js +293 -0
  47. package/dist/core/expressions/conditional-integration.js.map +1 -0
  48. package/dist/core/expressions/conditional-validation.d.ts +181 -0
  49. package/dist/core/expressions/conditional-validation.d.ts.map +1 -0
  50. package/dist/core/expressions/conditional-validation.js +460 -0
  51. package/dist/core/expressions/conditional-validation.js.map +1 -0
  52. package/dist/core/expressions/context-aware-generator.d.ts +127 -0
  53. package/dist/core/expressions/context-aware-generator.d.ts.map +1 -0
  54. package/dist/core/expressions/context-aware-generator.js +500 -0
  55. package/dist/core/expressions/context-aware-generator.js.map +1 -0
  56. package/dist/core/expressions/context-detector.d.ts +148 -0
  57. package/dist/core/expressions/context-detector.d.ts.map +1 -0
  58. package/dist/core/expressions/context-detector.js +546 -0
  59. package/dist/core/expressions/context-detector.js.map +1 -0
  60. package/dist/core/expressions/context-switcher.d.ts +185 -0
  61. package/dist/core/expressions/context-switcher.d.ts.map +1 -0
  62. package/dist/core/expressions/context-switcher.js +515 -0
  63. package/dist/core/expressions/context-switcher.js.map +1 -0
  64. package/dist/core/expressions/context-validator.d.ts +176 -0
  65. package/dist/core/expressions/context-validator.d.ts.map +1 -0
  66. package/dist/core/expressions/context-validator.js +452 -0
  67. package/dist/core/expressions/context-validator.js.map +1 -0
  68. package/dist/core/expressions/custom-context-manager.d.ts +194 -0
  69. package/dist/core/expressions/custom-context-manager.d.ts.map +1 -0
  70. package/dist/core/expressions/custom-context-manager.js +390 -0
  71. package/dist/core/expressions/custom-context-manager.js.map +1 -0
  72. package/dist/core/expressions/expression-proxy.d.ts +80 -0
  73. package/dist/core/expressions/expression-proxy.d.ts.map +1 -0
  74. package/dist/core/expressions/expression-proxy.js +227 -0
  75. package/dist/core/expressions/expression-proxy.js.map +1 -0
  76. package/dist/core/expressions/factory-integration.d.ts +132 -0
  77. package/dist/core/expressions/factory-integration.d.ts.map +1 -0
  78. package/dist/core/expressions/factory-integration.js +327 -0
  79. package/dist/core/expressions/factory-integration.js.map +1 -0
  80. package/dist/core/expressions/factory-pattern-handler.d.ts +88 -0
  81. package/dist/core/expressions/factory-pattern-handler.d.ts.map +1 -0
  82. package/dist/core/expressions/factory-pattern-handler.js +336 -0
  83. package/dist/core/expressions/factory-pattern-handler.js.map +1 -0
  84. package/dist/core/expressions/field-hydration-processor.d.ts +188 -0
  85. package/dist/core/expressions/field-hydration-processor.d.ts.map +1 -0
  86. package/dist/core/expressions/field-hydration-processor.js +562 -0
  87. package/dist/core/expressions/field-hydration-processor.js.map +1 -0
  88. package/dist/core/expressions/imperative-analyzer.d.ts +21 -0
  89. package/dist/core/expressions/imperative-analyzer.d.ts.map +1 -0
  90. package/dist/core/expressions/imperative-analyzer.js +343 -0
  91. package/dist/core/expressions/imperative-analyzer.js.map +1 -0
  92. package/dist/core/expressions/index.d.ts +54 -0
  93. package/dist/core/expressions/index.d.ts.map +1 -0
  94. package/dist/core/expressions/index.js +50 -0
  95. package/dist/core/expressions/index.js.map +1 -0
  96. package/dist/core/expressions/lazy-analysis.d.ts +1128 -0
  97. package/dist/core/expressions/lazy-analysis.d.ts.map +1 -0
  98. package/dist/core/expressions/lazy-analysis.js +2443 -0
  99. package/dist/core/expressions/lazy-analysis.js.map +1 -0
  100. package/dist/core/expressions/magic-assignable-analyzer.d.ts +123 -0
  101. package/dist/core/expressions/magic-assignable-analyzer.d.ts.map +1 -0
  102. package/dist/core/expressions/magic-assignable-analyzer.js +352 -0
  103. package/dist/core/expressions/magic-assignable-analyzer.js.map +1 -0
  104. package/dist/core/expressions/magic-proxy-analyzer.d.ts +206 -0
  105. package/dist/core/expressions/magic-proxy-analyzer.d.ts.map +1 -0
  106. package/dist/core/expressions/magic-proxy-analyzer.js +639 -0
  107. package/dist/core/expressions/magic-proxy-analyzer.js.map +1 -0
  108. package/dist/core/expressions/magic-proxy-detector.d.ts +154 -0
  109. package/dist/core/expressions/magic-proxy-detector.d.ts.map +1 -0
  110. package/dist/core/expressions/magic-proxy-detector.js +242 -0
  111. package/dist/core/expressions/magic-proxy-detector.js.map +1 -0
  112. package/dist/core/expressions/migration-helpers.d.ts +133 -0
  113. package/dist/core/expressions/migration-helpers.d.ts.map +1 -0
  114. package/dist/core/expressions/migration-helpers.js +443 -0
  115. package/dist/core/expressions/migration-helpers.js.map +1 -0
  116. package/dist/core/expressions/optionality-handler.d.ts +503 -0
  117. package/dist/core/expressions/optionality-handler.d.ts.map +1 -0
  118. package/dist/core/expressions/optionality-handler.js +1306 -0
  119. package/dist/core/expressions/optionality-handler.js.map +1 -0
  120. package/dist/core/expressions/readiness-integration.d.ts +119 -0
  121. package/dist/core/expressions/readiness-integration.d.ts.map +1 -0
  122. package/dist/core/expressions/readiness-integration.js +386 -0
  123. package/dist/core/expressions/readiness-integration.js.map +1 -0
  124. package/dist/core/expressions/resource-analyzer.d.ts +486 -0
  125. package/dist/core/expressions/resource-analyzer.d.ts.map +1 -0
  126. package/dist/core/expressions/resource-analyzer.js +1086 -0
  127. package/dist/core/expressions/resource-analyzer.js.map +1 -0
  128. package/dist/core/expressions/resource-validation.d.ts +187 -0
  129. package/dist/core/expressions/resource-validation.d.ts.map +1 -0
  130. package/dist/core/expressions/resource-validation.js +552 -0
  131. package/dist/core/expressions/resource-validation.js.map +1 -0
  132. package/dist/core/expressions/runtime-error-mapper.d.ts +138 -0
  133. package/dist/core/expressions/runtime-error-mapper.d.ts.map +1 -0
  134. package/dist/core/expressions/runtime-error-mapper.js +412 -0
  135. package/dist/core/expressions/runtime-error-mapper.js.map +1 -0
  136. package/dist/core/expressions/source-map.d.ts +168 -0
  137. package/dist/core/expressions/source-map.d.ts.map +1 -0
  138. package/dist/core/expressions/source-map.js +350 -0
  139. package/dist/core/expressions/source-map.js.map +1 -0
  140. package/dist/core/expressions/status-builder-analyzer.d.ts +353 -0
  141. package/dist/core/expressions/status-builder-analyzer.d.ts.map +1 -0
  142. package/dist/core/expressions/status-builder-analyzer.js +1301 -0
  143. package/dist/core/expressions/status-builder-analyzer.js.map +1 -0
  144. package/dist/core/expressions/type-inference.d.ts +184 -0
  145. package/dist/core/expressions/type-inference.d.ts.map +1 -0
  146. package/dist/core/expressions/type-inference.js +838 -0
  147. package/dist/core/expressions/type-inference.js.map +1 -0
  148. package/dist/core/expressions/type-safety.d.ts +203 -0
  149. package/dist/core/expressions/type-safety.d.ts.map +1 -0
  150. package/dist/core/expressions/type-safety.js +442 -0
  151. package/dist/core/expressions/type-safety.js.map +1 -0
  152. package/dist/core/expressions/types.d.ts +282 -0
  153. package/dist/core/expressions/types.d.ts.map +1 -0
  154. package/dist/core/expressions/types.js +8 -0
  155. package/dist/core/expressions/types.js.map +1 -0
  156. package/dist/core/kubernetes/client-provider.js +2 -2
  157. package/dist/core/kubernetes/client-provider.js.map +1 -1
  158. package/dist/core/serialization/core.d.ts.map +1 -1
  159. package/dist/core/serialization/core.js +573 -9
  160. package/dist/core/serialization/core.js.map +1 -1
  161. package/dist/core/types/deployment.d.ts +4 -0
  162. package/dist/core/types/deployment.d.ts.map +1 -1
  163. package/dist/core/types/deployment.js.map +1 -1
  164. package/dist/core/types/index.d.ts +1 -0
  165. package/dist/core/types/index.d.ts.map +1 -1
  166. package/dist/core/types/index.js.map +1 -1
  167. package/dist/core.d.ts +1 -1
  168. package/dist/core.d.ts.map +1 -1
  169. package/dist/core.js +1 -1
  170. package/dist/core.js.map +1 -1
  171. package/dist/factories/helm/helm-release.d.ts.map +1 -1
  172. package/dist/factories/helm/helm-release.js +0 -5
  173. package/dist/factories/helm/helm-release.js.map +1 -1
  174. package/dist/factories/helm/types.d.ts +1 -1
  175. package/dist/factories/helm/types.d.ts.map +1 -1
  176. package/dist/factories/shared.d.ts.map +1 -1
  177. package/dist/factories/shared.js +21 -1
  178. package/dist/factories/shared.js.map +1 -1
  179. package/dist/factories/simple/index.d.ts +2 -2
  180. package/dist/factories/simple/index.d.ts.map +1 -1
  181. package/dist/factories/simple/workloads/deployment.d.ts +3 -3
  182. package/dist/factories/simple/workloads/deployment.d.ts.map +1 -1
  183. package/dist/factories/simple/workloads/deployment.js +37 -11
  184. package/dist/factories/simple/workloads/deployment.js.map +1 -1
  185. package/dist/index.d.ts +1 -1
  186. package/dist/index.d.ts.map +1 -1
  187. package/dist/index.js +1 -1
  188. package/dist/index.js.map +1 -1
  189. package/dist/utils/index.d.ts +1 -1
  190. package/dist/utils/index.d.ts.map +1 -1
  191. package/dist/utils/index.js +1 -1
  192. package/dist/utils/index.js.map +1 -1
  193. package/dist/utils/type-guards.d.ts +6 -0
  194. package/dist/utils/type-guards.d.ts.map +1 -1
  195. package/dist/utils/type-guards.js +25 -2
  196. package/dist/utils/type-guards.js.map +1 -1
  197. package/package.json +6 -1
@@ -0,0 +1,503 @@
1
+ /**
2
+ * Enhanced Type Optionality Handler for JavaScript to CEL Expression Conversion
3
+ *
4
+ * This module handles the mismatch between Enhanced type compile-time non-optionality
5
+ * and runtime optionality during field hydration. Enhanced types show fields as
6
+ * non-optional at compile time, but KubernetesRef objects might resolve to undefined
7
+ * during field hydration.
8
+ *
9
+ * Key Features:
10
+ * - Automatic null-safety detection for Enhanced type KubernetesRef objects
11
+ * - CEL expression generation with has() checks for potentially undefined fields
12
+ * - Support for optional chaining with Enhanced types that appear non-optional
13
+ * - Integration with field hydration timing to handle undefined-to-defined transitions
14
+ * - Context-aware optionality handling based on field hydration state
15
+ */
16
+ import type { CelExpression, KubernetesRef } from '../types/common.js';
17
+ import type { Enhanced } from '../types/kubernetes.js';
18
+ import { ConversionError } from '../errors.js';
19
+ import type { AnalysisContext, CelConversionResult } from './analyzer.js';
20
+ /**
21
+ * Optionality analysis result for a KubernetesRef
22
+ */
23
+ export interface OptionalityAnalysisResult {
24
+ /** The KubernetesRef being analyzed */
25
+ kubernetesRef: KubernetesRef<any>;
26
+ /** Whether this field might be undefined at runtime */
27
+ potentiallyUndefined: boolean;
28
+ /** Whether this field requires null-safety checks */
29
+ requiresNullSafety: boolean;
30
+ /** Whether optional chaining was used in the original expression */
31
+ hasOptionalChaining: boolean;
32
+ /** The field path being accessed */
33
+ fieldPath: string;
34
+ /** The resource ID being referenced */
35
+ resourceId: string;
36
+ /** Whether this is a schema reference */
37
+ isSchemaReference: boolean;
38
+ /** Confidence level of the optionality analysis (0-1) */
39
+ confidence: number;
40
+ /** Reason for the optionality determination */
41
+ reason: string;
42
+ /** Suggested CEL expression pattern for null-safety */
43
+ suggestedCelPattern: string | undefined;
44
+ }
45
+ /**
46
+ * Field hydration state information
47
+ */
48
+ export interface FieldHydrationState {
49
+ /** Resource ID */
50
+ resourceId: string;
51
+ /** Field path */
52
+ fieldPath: string;
53
+ /** Whether the field is currently hydrated */
54
+ isHydrated: boolean;
55
+ /** Whether the field is in the process of being hydrated */
56
+ isHydrating: boolean;
57
+ /** Whether the field has failed hydration */
58
+ hydrationFailed: boolean;
59
+ /** Timestamp of last hydration attempt */
60
+ lastHydrationAttempt?: Date;
61
+ /** Expected hydration completion time */
62
+ expectedHydrationTime?: Date;
63
+ }
64
+ /**
65
+ * Optionality handling context
66
+ */
67
+ export interface OptionalityContext extends AnalysisContext {
68
+ /** Current field hydration states */
69
+ hydrationStates?: Map<string, FieldHydrationState>;
70
+ /** Whether to be conservative with null-safety (default: true) */
71
+ conservativeNullSafety?: boolean;
72
+ /** Whether to use Kro's conditional operators */
73
+ useKroConditionals?: boolean;
74
+ /** Whether to generate has() checks for potentially undefined fields */
75
+ generateHasChecks?: boolean;
76
+ /** Maximum depth for optionality analysis */
77
+ maxOptionalityDepth?: number;
78
+ }
79
+ /**
80
+ * Optional chaining pattern information
81
+ */
82
+ export interface OptionalChainingPattern {
83
+ /** The KubernetesRef involved in optional chaining */
84
+ kubernetesRef: KubernetesRef<any>;
85
+ /** Field path being accessed */
86
+ fieldPath: string;
87
+ /** Whether this is an Enhanced type */
88
+ isEnhancedType: boolean;
89
+ /** Whether the field appears non-optional at compile time */
90
+ appearsNonOptional: boolean;
91
+ /** Whether the field is actually optional at runtime */
92
+ actuallyOptional: boolean;
93
+ /** Depth of the chaining (number of dots) */
94
+ chainingDepth: number;
95
+ /** Suggested CEL pattern for this optional chaining */
96
+ suggestedCelPattern: string;
97
+ }
98
+ /**
99
+ * Enhanced type field information
100
+ */
101
+ export interface EnhancedTypeFieldInfo {
102
+ /** The KubernetesRef for this field */
103
+ kubernetesRef: KubernetesRef<any>;
104
+ /** Field path */
105
+ fieldPath: string;
106
+ /** Whether this is an Enhanced type */
107
+ isEnhancedType: boolean;
108
+ /** Whether the field appears non-optional at compile time */
109
+ appearsNonOptional: boolean;
110
+ /** Whether the field is actually optional at runtime */
111
+ actuallyOptional: boolean;
112
+ /** Whether this is a status field */
113
+ isStatusField: boolean;
114
+ /** Whether this field requires optional chaining handling */
115
+ requiresOptionalChaining: boolean;
116
+ /** Confidence level of the analysis */
117
+ confidence: number;
118
+ }
119
+ /**
120
+ * Hydration state analysis result
121
+ */
122
+ export interface HydrationStateAnalysis {
123
+ /** References that are not yet hydrated */
124
+ unhydratedRefs: KubernetesRef<any>[];
125
+ /** References that are fully hydrated */
126
+ hydratedRefs: KubernetesRef<any>[];
127
+ /** References that are currently being hydrated */
128
+ hydratingRefs: KubernetesRef<any>[];
129
+ /** References that failed hydration */
130
+ failedRefs: KubernetesRef<any>[];
131
+ /** Total number of references */
132
+ totalRefs: number;
133
+ /** Hydration progress (0-1) */
134
+ hydrationProgress: number;
135
+ }
136
+ /**
137
+ * Hydration transition plan
138
+ */
139
+ export interface HydrationTransitionPlan {
140
+ /** Hydration phases in order */
141
+ phases: HydrationPhase[];
142
+ /** Total expected duration for all phases */
143
+ totalDuration: number;
144
+ /** Critical fields that must be hydrated for the expression to work */
145
+ criticalFields: string[];
146
+ }
147
+ /**
148
+ * Hydration phase information
149
+ */
150
+ export interface HydrationPhase {
151
+ /** Phase name */
152
+ name: string;
153
+ /** Fields expected to be hydrated in this phase */
154
+ fields: KubernetesRef<any>[];
155
+ /** Expected duration for this phase (milliseconds) */
156
+ expectedDuration: number;
157
+ /** Dependencies that must be satisfied before this phase */
158
+ dependencies: string[];
159
+ /** Whether this phase is critical for expression evaluation */
160
+ isCritical: boolean;
161
+ }
162
+ /**
163
+ * Hydration transition handler
164
+ */
165
+ export interface HydrationTransitionHandler {
166
+ /** State transitioning from */
167
+ fromState: HydrationState;
168
+ /** State transitioning to */
169
+ toState: HydrationState;
170
+ /** Condition that triggers this transition */
171
+ triggerCondition: string;
172
+ /** Expression to use during this transition */
173
+ transitionExpression: CelExpression;
174
+ /** Priority of this handler (lower = higher priority) */
175
+ priority: number;
176
+ }
177
+ /**
178
+ * Hydration state
179
+ */
180
+ export type HydrationState = 'unhydrated' | 'hydrating' | 'hydrated' | 'failed';
181
+ /**
182
+ * Result of undefined-to-defined transition handling
183
+ */
184
+ export interface UndefinedToDefinedTransitionResult {
185
+ /** Transition plan for hydration phases */
186
+ transitionPlan: HydrationTransitionPlan;
187
+ /** Expressions for each hydration phase */
188
+ phaseExpressions: Map<string, CelExpression>;
189
+ /** Watch expressions for monitoring hydration progress */
190
+ watchExpressions: CelExpression[];
191
+ /** Fallback expressions for hydration failures */
192
+ fallbackExpressions: Map<string, CelExpression>;
193
+ /** Whether the transition handling was successful */
194
+ valid: boolean;
195
+ /** Errors encountered during transition handling */
196
+ errors: ConversionError[];
197
+ }
198
+ /**
199
+ * Options for optionality handling
200
+ */
201
+ export interface OptionalityHandlingOptions {
202
+ /** Whether to perform deep optionality analysis */
203
+ deepAnalysis?: boolean;
204
+ /** Whether to be conservative with null-safety */
205
+ conservative?: boolean;
206
+ /** Whether to use Kro's conditional operators */
207
+ useKroConditionals?: boolean;
208
+ /** Whether to generate has() checks */
209
+ generateHasChecks?: boolean;
210
+ /** Maximum analysis depth */
211
+ maxDepth?: number;
212
+ /** Whether to include detailed reasoning */
213
+ includeReasoning?: boolean;
214
+ }
215
+ /**
216
+ * Enhanced Type Optionality Handler
217
+ *
218
+ * Handles the complexity of Enhanced types that appear non-optional at compile time
219
+ * but may be undefined at runtime during field hydration.
220
+ */
221
+ export declare class EnhancedTypeOptionalityHandler {
222
+ private options;
223
+ private logger;
224
+ constructor(options?: OptionalityHandlingOptions);
225
+ /**
226
+ * Analyze KubernetesRef objects for optionality requirements
227
+ *
228
+ * This method determines whether KubernetesRef objects in expressions require
229
+ * null-safety handling based on Enhanced type behavior and field hydration timing.
230
+ */
231
+ analyzeOptionalityRequirements(expression: any, context: OptionalityContext): OptionalityAnalysisResult[];
232
+ /**
233
+ * Generate CEL expressions with appropriate null-safety checks
234
+ *
235
+ * This method takes the optionality analysis results and generates CEL expressions
236
+ * that include proper null-safety handling for potentially undefined fields.
237
+ */
238
+ generateNullSafeCelExpression(originalExpression: any, optionalityResults: OptionalityAnalysisResult[], context: OptionalityContext): CelConversionResult;
239
+ /**
240
+ * Handle optional chaining with Enhanced types
241
+ *
242
+ * This method specifically handles cases where optional chaining is used with
243
+ * Enhanced types that appear non-optional at compile time.
244
+ */
245
+ handleOptionalChainingWithEnhancedTypes(expression: any, context: OptionalityContext): CelConversionResult;
246
+ /**
247
+ * Analyze optional chaining patterns in expressions with Enhanced types
248
+ */
249
+ private analyzeOptionalChainingPatterns;
250
+ /**
251
+ * Analyze Enhanced type field information
252
+ */
253
+ private analyzeEnhancedTypeField;
254
+ /**
255
+ * Generate CEL expression for optional chaining with Enhanced types
256
+ */
257
+ private generateOptionalChainingCelExpression;
258
+ /**
259
+ * Generate Kro CEL expression with ? prefix operator for optional chaining
260
+ *
261
+ * Kro uses the ? operator as a prefix before field names for optional access
262
+ */
263
+ private generateKroOptionalChainingExpression;
264
+ /**
265
+ * Convert a field path to Kro's ? prefix optional syntax
266
+ * Example: resources.service.status.loadBalancer.ingress[0].ip
267
+ * Becomes: resources.service.status.?loadBalancer.?ingress[0].?ip
268
+ *
269
+ * The ? operator should be placed before fields that might not exist
270
+ */
271
+ private convertToKroOptionalSyntax;
272
+ /**
273
+ * Generate has() check expression for optional chaining
274
+ */
275
+ private generateHasCheckOptionalChainingExpression;
276
+ /**
277
+ * Generate nested has() checks for a field path
278
+ */
279
+ private generateNestedHasChecksForPath;
280
+ /**
281
+ * Calculate chaining depth for a field path
282
+ */
283
+ private calculateChainingDepth;
284
+ /**
285
+ * Generate optional chaining CEL pattern for a KubernetesRef
286
+ */
287
+ private generateOptionalChainingCelPattern;
288
+ /**
289
+ * Automatically detect null-safety requirements for Enhanced type KubernetesRef objects
290
+ *
291
+ * This method analyzes Enhanced types and their KubernetesRef objects to determine
292
+ * which fields require null-safety checks despite appearing non-optional at compile time.
293
+ */
294
+ detectNullSafetyRequirements(enhancedResources: Record<string, Enhanced<any, any>>, context: OptionalityContext): Map<string, OptionalityAnalysisResult[]>;
295
+ /**
296
+ * Generate Enhanced type-specific null-safety patterns
297
+ */
298
+ private generateEnhancedTypeNullSafetyPattern;
299
+ /**
300
+ * Extract potential KubernetesRef objects from Enhanced resources
301
+ */
302
+ private extractPotentialKubernetesRefsFromEnhanced;
303
+ /**
304
+ * Integrate with field hydration timing
305
+ *
306
+ * This method provides integration with TypeKro's field hydration system to
307
+ * handle the transition from undefined to defined values during hydration.
308
+ */
309
+ integrateWithFieldHydrationTiming(expression: any, hydrationStates: Map<string, FieldHydrationState>, context: OptionalityContext): {
310
+ preHydrationExpression: CelExpression | null;
311
+ postHydrationExpression: CelExpression | null;
312
+ hydrationDependentExpression: CelExpression | null;
313
+ transitionHandlers: HydrationTransitionHandler[];
314
+ };
315
+ /**
316
+ * Handle undefined-to-defined transitions during field hydration
317
+ *
318
+ * This method creates handlers for the transition from undefined to defined
319
+ * values as fields are hydrated over time.
320
+ */
321
+ handleUndefinedToDefinedTransitions(expression: any, hydrationStates: Map<string, FieldHydrationState>, context: OptionalityContext): UndefinedToDefinedTransitionResult;
322
+ /**
323
+ * Analyze hydration states for KubernetesRef objects
324
+ */
325
+ private analyzeHydrationStates;
326
+ /**
327
+ * Create transition plan for hydration phases
328
+ */
329
+ private createTransitionPlan;
330
+ /**
331
+ * Generate hydration transition handlers
332
+ */
333
+ private generateHydrationTransitionHandlers;
334
+ /**
335
+ * Generate phase expressions for different hydration phases
336
+ */
337
+ private generatePhaseExpressions;
338
+ /**
339
+ * Generate watch expressions for monitoring hydration progress
340
+ */
341
+ private generateWatchExpressions;
342
+ /**
343
+ * Generate fallback expressions for hydration failures
344
+ */
345
+ private generateFallbackExpressions;
346
+ /**
347
+ * Generate phase-specific expression
348
+ */
349
+ private generatePhaseSpecificExpression;
350
+ /**
351
+ * Generate condition for hydration start
352
+ */
353
+ private generateHydrationStartCondition;
354
+ /**
355
+ * Generate expression for hydration start
356
+ */
357
+ private generateHydrationStartExpression;
358
+ /**
359
+ * Generate condition for hydration complete
360
+ */
361
+ private generateHydrationCompleteCondition;
362
+ /**
363
+ * Generate expression for hydration complete
364
+ */
365
+ private generateHydrationCompleteExpression;
366
+ /**
367
+ * Generate condition for hydration failure
368
+ */
369
+ private generateHydrationFailureCondition;
370
+ /**
371
+ * Generate expression for hydration failure
372
+ */
373
+ private generateHydrationFailureExpression;
374
+ /**
375
+ * Analyze a single KubernetesRef for optionality requirements
376
+ */
377
+ private analyzeKubernetesRefOptionality;
378
+ /**
379
+ * Determine if a KubernetesRef is potentially undefined at runtime
380
+ */
381
+ private isPotentiallyUndefinedAtRuntime;
382
+ /**
383
+ * Check if a schema field is potentially undefined
384
+ */
385
+ private isSchemaFieldPotentiallyUndefined;
386
+ /**
387
+ * Check if a status field is potentially undefined
388
+ */
389
+ private isStatusFieldPotentiallyUndefined;
390
+ /**
391
+ * Check if a spec field is potentially undefined
392
+ */
393
+ private isSpecFieldPotentiallyUndefined;
394
+ /**
395
+ * Check if a metadata field is potentially undefined
396
+ */
397
+ private isMetadataFieldPotentiallyUndefined;
398
+ /**
399
+ * Check if optional chaining was used in the original expression
400
+ */
401
+ private hasOptionalChainingInExpression;
402
+ /**
403
+ * Calculate confidence level for optionality analysis
404
+ */
405
+ private calculateOptionalityConfidence;
406
+ /**
407
+ * Determine the reason for optionality determination
408
+ */
409
+ private determineOptionalityReason;
410
+ /**
411
+ * Generate suggested CEL pattern for null-safety
412
+ */
413
+ private generateSuggestedCelPattern;
414
+ /**
415
+ * Extract KubernetesRef objects from an expression
416
+ */
417
+ private extractKubernetesRefs;
418
+ /**
419
+ * Convert expression to basic CEL without null-safety
420
+ */
421
+ private convertToBasicCel;
422
+ /**
423
+ * Generate CEL expressions with has() checks for potentially undefined fields
424
+ *
425
+ * This method creates comprehensive CEL expressions that include has() checks
426
+ * for all potentially undefined fields in the expression.
427
+ */
428
+ generateCelWithHasChecks(expression: any, optionalityResults: OptionalityAnalysisResult[], context: OptionalityContext): CelExpression;
429
+ /**
430
+ * Generate has() checks for fields that require null-safety
431
+ */
432
+ private generateHasChecksForFields;
433
+ /**
434
+ * Generate nested has() checks for complex field paths
435
+ */
436
+ private generateNestedHasChecks;
437
+ /**
438
+ * Convert expression with KubernetesRef objects to CEL
439
+ */
440
+ private convertExpressionWithKubernetesRefs;
441
+ /**
442
+ * Combine has() checks with the main expression
443
+ */
444
+ private combineHasChecksWithExpression;
445
+ /**
446
+ * Infer the type of the expression result
447
+ */
448
+ private inferExpressionType;
449
+ /**
450
+ * Generate null-safe CEL expression
451
+ */
452
+ private generateNullSafeExpression;
453
+ /**
454
+ * Generate source mapping for debugging
455
+ */
456
+ private generateSourceMapping;
457
+ /**
458
+ * Generate pre-hydration expression (for unhydrated fields)
459
+ */
460
+ private generatePreHydrationExpression;
461
+ /**
462
+ * Generate post-hydration expression (for hydrated fields)
463
+ */
464
+ private generatePostHydrationExpression;
465
+ /**
466
+ * Generate hydration-dependent expression (for fields being hydrated)
467
+ */
468
+ private generateHydrationDependentExpression;
469
+ }
470
+ /**
471
+ * Convenience function to analyze optionality requirements
472
+ */
473
+ export declare function analyzeOptionalityRequirements(expression: any, context: OptionalityContext, options?: OptionalityHandlingOptions): OptionalityAnalysisResult[];
474
+ /**
475
+ * Convenience function to generate null-safe CEL expressions
476
+ */
477
+ export declare function generateNullSafeCelExpression(expression: any, optionalityResults: OptionalityAnalysisResult[], context: OptionalityContext, options?: OptionalityHandlingOptions): CelConversionResult;
478
+ /**
479
+ * Convenience function to handle optional chaining with Enhanced types
480
+ */
481
+ export declare function handleOptionalChainingWithEnhancedTypes(expression: any, context: OptionalityContext, options?: OptionalityHandlingOptions): CelConversionResult;
482
+ /**
483
+ * Convenience function to generate CEL expressions with has() checks
484
+ */
485
+ export declare function generateCelWithHasChecks(expression: any, optionalityResults: OptionalityAnalysisResult[], context: OptionalityContext, options?: OptionalityHandlingOptions): CelExpression;
486
+ /**
487
+ * Convenience function to detect null-safety requirements for Enhanced types
488
+ */
489
+ export declare function detectNullSafetyRequirements(enhancedResources: Record<string, Enhanced<any, any>>, context: OptionalityContext, options?: OptionalityHandlingOptions): Map<string, OptionalityAnalysisResult[]>;
490
+ /**
491
+ * Convenience function to integrate with field hydration timing
492
+ */
493
+ export declare function integrateWithFieldHydrationTiming(expression: any, hydrationStates: Map<string, FieldHydrationState>, context: OptionalityContext, options?: OptionalityHandlingOptions): {
494
+ preHydrationExpression: CelExpression | null;
495
+ postHydrationExpression: CelExpression | null;
496
+ hydrationDependentExpression: CelExpression | null;
497
+ transitionHandlers: HydrationTransitionHandler[];
498
+ };
499
+ /**
500
+ * Convenience function to handle undefined-to-defined transitions
501
+ */
502
+ export declare function handleUndefinedToDefinedTransitions(expression: any, hydrationStates: Map<string, FieldHydrationState>, context: OptionalityContext, options?: OptionalityHandlingOptions): UndefinedToDefinedTransitionResult;
503
+ //# sourceMappingURL=optionality-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optionality-handler.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/optionality-handler.ts"],"names":[],"mappings":"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"}