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.
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,293 @@
1
+ /**
2
+ * Conditional Expression Integration for Factory Functions
3
+ *
4
+ * This module provides integration points for conditional expressions like
5
+ * includeWhen and readyWhen in factory functions, enabling automatic
6
+ * KubernetesRef detection and CEL conversion.
7
+ */
8
+ import { getComponentLogger } from '../logging/index.js';
9
+ import { ConditionalExpressionProcessor } from './conditional-expression-processor.js';
10
+ import { getCurrentCompositionContext } from '../../factories/shared.js';
11
+ const logger = getComponentLogger('conditional-integration');
12
+ /**
13
+ * Conditional Expression Integrator
14
+ *
15
+ * Integrates conditional expression processing with factory functions
16
+ * and Enhanced resources.
17
+ */
18
+ export class ConditionalExpressionIntegrator {
19
+ processor;
20
+ constructor() {
21
+ this.processor = new ConditionalExpressionProcessor();
22
+ }
23
+ /**
24
+ * Add conditional expression support to an Enhanced resource
25
+ *
26
+ * @param resource - Enhanced resource to augment
27
+ * @param config - Integration configuration
28
+ * @returns Enhanced resource with conditional expression support
29
+ */
30
+ addConditionalSupport(resource, config = {}) {
31
+ const enhanced = resource;
32
+ // Add conditional expression properties
33
+ Object.defineProperty(enhanced, 'includeWhen', {
34
+ value: undefined,
35
+ writable: true,
36
+ enumerable: false, // Don't serialize by default
37
+ configurable: true
38
+ });
39
+ Object.defineProperty(enhanced, 'readyWhen', {
40
+ value: undefined,
41
+ writable: true,
42
+ enumerable: false, // Don't serialize by default
43
+ configurable: true
44
+ });
45
+ Object.defineProperty(enhanced, 'conditionals', {
46
+ value: {},
47
+ writable: true,
48
+ enumerable: false, // Don't serialize by default
49
+ configurable: true
50
+ });
51
+ // Add fluent builder methods
52
+ Object.defineProperty(enhanced, 'withIncludeWhen', {
53
+ value: (condition) => {
54
+ const context = enhanced.createFactoryContext();
55
+ if (config.autoProcess) {
56
+ const result = this.processor.processIncludeWhenExpression(condition, context, config);
57
+ enhanced.includeWhen = result.expression;
58
+ if (result.validationErrors.length > 0) {
59
+ logger.warn('includeWhen validation warnings', {
60
+ resourceId: enhanced.__resourceId,
61
+ errors: result.validationErrors
62
+ });
63
+ }
64
+ }
65
+ else {
66
+ enhanced.includeWhen = condition;
67
+ }
68
+ return enhanced;
69
+ },
70
+ enumerable: false,
71
+ configurable: true
72
+ });
73
+ Object.defineProperty(enhanced, 'withReadyWhen', {
74
+ value: (condition) => {
75
+ const context = enhanced.createFactoryContext();
76
+ if (config.autoProcess) {
77
+ const result = this.processor.processReadyWhenExpression(condition, context, config);
78
+ enhanced.readyWhen = result.expression;
79
+ if (result.validationErrors.length > 0) {
80
+ logger.warn('readyWhen validation warnings', {
81
+ resourceId: enhanced.__resourceId,
82
+ errors: result.validationErrors
83
+ });
84
+ }
85
+ }
86
+ else {
87
+ enhanced.readyWhen = condition;
88
+ }
89
+ return enhanced;
90
+ },
91
+ enumerable: false,
92
+ configurable: true
93
+ });
94
+ Object.defineProperty(enhanced, 'withConditional', {
95
+ value: (name, condition) => {
96
+ const context = enhanced.createFactoryContext();
97
+ if (config.autoProcess) {
98
+ const result = this.processor.processCustomConditionalExpression(condition, context, config);
99
+ if (!enhanced.conditionals) {
100
+ enhanced.conditionals = {};
101
+ }
102
+ enhanced.conditionals[name] = result.expression;
103
+ if (result.validationErrors.length > 0) {
104
+ logger.warn('Custom conditional validation warnings', {
105
+ resourceId: enhanced.__resourceId,
106
+ conditionalName: name,
107
+ errors: result.validationErrors
108
+ });
109
+ }
110
+ }
111
+ else {
112
+ if (!enhanced.conditionals) {
113
+ enhanced.conditionals = {};
114
+ }
115
+ enhanced.conditionals[name] = condition;
116
+ }
117
+ return enhanced;
118
+ },
119
+ enumerable: false,
120
+ configurable: true
121
+ });
122
+ // Add helper method to create factory context
123
+ Object.defineProperty(enhanced, 'createFactoryContext', {
124
+ value: () => {
125
+ const compositionContext = getCurrentCompositionContext();
126
+ return {
127
+ factoryType: 'kro', // Default to Kro, can be overridden
128
+ factoryName: enhanced.kind || 'unknown',
129
+ analysisEnabled: true,
130
+ availableResources: compositionContext?.resources || {},
131
+ schemaProxy: undefined, // Will be set by toResourceGraph if available
132
+ resourceId: enhanced.__resourceId || 'unknown'
133
+ };
134
+ },
135
+ enumerable: false,
136
+ configurable: true
137
+ });
138
+ return enhanced;
139
+ }
140
+ /**
141
+ * Process all conditional expressions on an Enhanced resource
142
+ *
143
+ * @param resource - Enhanced resource with conditional expressions
144
+ * @param context - Factory context
145
+ * @param config - Integration configuration
146
+ * @returns Processing results
147
+ */
148
+ processResourceConditionals(resource, context, config = {}) {
149
+ const startTime = performance.now();
150
+ const results = {};
151
+ const warnings = [];
152
+ let hasConditionals = false;
153
+ logger.debug('Processing resource conditional expressions', {
154
+ resourceId: context.resourceId,
155
+ factoryType: context.factoryType
156
+ });
157
+ // Process includeWhen expression
158
+ if (resource.includeWhen !== undefined) {
159
+ hasConditionals = true;
160
+ results.includeWhen = this.processor.processIncludeWhenExpression(resource.includeWhen, context, config);
161
+ if (results.includeWhen.validationErrors.length > 0) {
162
+ warnings.push(...results.includeWhen.validationErrors.map(err => `includeWhen: ${err}`));
163
+ }
164
+ // Update the resource with processed expression
165
+ resource.includeWhen = results.includeWhen.expression;
166
+ }
167
+ // Process readyWhen expression
168
+ if (resource.readyWhen !== undefined) {
169
+ hasConditionals = true;
170
+ results.readyWhen = this.processor.processReadyWhenExpression(resource.readyWhen, context, config);
171
+ if (results.readyWhen.validationErrors.length > 0) {
172
+ warnings.push(...results.readyWhen.validationErrors.map(err => `readyWhen: ${err}`));
173
+ }
174
+ // Update the resource with processed expression
175
+ resource.readyWhen = results.readyWhen.expression;
176
+ }
177
+ // Process custom conditional expressions
178
+ if (resource.conditionals && Object.keys(resource.conditionals).length > 0) {
179
+ hasConditionals = true;
180
+ results.conditionals = {};
181
+ for (const [name, condition] of Object.entries(resource.conditionals)) {
182
+ results.conditionals[name] = this.processor.processCustomConditionalExpression(condition, context, config);
183
+ if (results.conditionals[name].validationErrors.length > 0) {
184
+ warnings.push(...results.conditionals[name].validationErrors.map(err => `${name}: ${err}`));
185
+ }
186
+ // Update the resource with processed expression
187
+ resource.conditionals[name] = results.conditionals[name].expression;
188
+ }
189
+ }
190
+ const totalProcessingTimeMs = performance.now() - startTime;
191
+ logger.debug('Resource conditional expressions processing completed', {
192
+ resourceId: context.resourceId,
193
+ hasConditionals,
194
+ totalProcessingTimeMs,
195
+ warningsCount: warnings.length
196
+ });
197
+ return {
198
+ hasConditionals,
199
+ results,
200
+ totalProcessingTimeMs,
201
+ warnings
202
+ };
203
+ }
204
+ /**
205
+ * Extract conditional expressions from a resource for serialization
206
+ *
207
+ * @param resource - Enhanced resource with conditional expressions
208
+ * @returns Conditional expressions ready for serialization
209
+ */
210
+ extractConditionalsForSerialization(resource) {
211
+ const conditionals = {};
212
+ if (resource.includeWhen !== undefined) {
213
+ conditionals.includeWhen = resource.includeWhen;
214
+ }
215
+ if (resource.readyWhen !== undefined) {
216
+ conditionals.readyWhen = resource.readyWhen;
217
+ }
218
+ if (resource.conditionals && Object.keys(resource.conditionals).length > 0) {
219
+ Object.assign(conditionals, resource.conditionals);
220
+ }
221
+ return conditionals;
222
+ }
223
+ /**
224
+ * Validate that conditional expressions are appropriate for the factory type
225
+ *
226
+ * @param resource - Enhanced resource with conditional expressions
227
+ * @param factoryType - Target factory type
228
+ * @returns Validation results
229
+ */
230
+ validateConditionalsForFactory(resource, factoryType) {
231
+ const errors = [];
232
+ const warnings = [];
233
+ // Direct factory limitations
234
+ if (factoryType === 'direct') {
235
+ if (resource.includeWhen !== undefined) {
236
+ warnings.push('includeWhen expressions have limited support in direct factory mode');
237
+ }
238
+ if (resource.readyWhen !== undefined) {
239
+ warnings.push('readyWhen expressions have limited support in direct factory mode');
240
+ }
241
+ }
242
+ // Kro factory requirements
243
+ if (factoryType === 'kro') {
244
+ // All conditional expressions should be convertible to CEL
245
+ if (resource.includeWhen !== undefined && typeof resource.includeWhen === 'function') {
246
+ errors.push('includeWhen expressions cannot be functions in Kro factory mode');
247
+ }
248
+ if (resource.readyWhen !== undefined && typeof resource.readyWhen === 'function') {
249
+ errors.push('readyWhen expressions cannot be functions in Kro factory mode');
250
+ }
251
+ }
252
+ return {
253
+ isValid: errors.length === 0,
254
+ errors,
255
+ warnings
256
+ };
257
+ }
258
+ }
259
+ /**
260
+ * Global conditional expression integrator instance
261
+ */
262
+ export const conditionalExpressionIntegrator = new ConditionalExpressionIntegrator();
263
+ /**
264
+ * Utility function to add conditional support to an Enhanced resource
265
+ *
266
+ * @param resource - Enhanced resource to augment
267
+ * @param config - Integration configuration
268
+ * @returns Enhanced resource with conditional expression support
269
+ */
270
+ export function withConditionalSupport(resource, config) {
271
+ return conditionalExpressionIntegrator.addConditionalSupport(resource, config);
272
+ }
273
+ /**
274
+ * Utility function to process conditional expressions on a resource
275
+ *
276
+ * @param resource - Enhanced resource with conditional expressions
277
+ * @param context - Factory context
278
+ * @param config - Integration configuration
279
+ * @returns Processing results
280
+ */
281
+ export function processResourceConditionals(resource, context, config) {
282
+ return conditionalExpressionIntegrator.processResourceConditionals(resource, context, config);
283
+ }
284
+ /**
285
+ * Utility function to extract conditionals for serialization
286
+ *
287
+ * @param resource - Enhanced resource with conditional expressions
288
+ * @returns Conditional expressions ready for serialization
289
+ */
290
+ export function extractConditionalsForSerialization(resource) {
291
+ return conditionalExpressionIntegrator.extractConditionalsForSerialization(resource);
292
+ }
293
+ //# sourceMappingURL=conditional-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-integration.js","sourceRoot":"","sources":["../../../src/core/expressions/conditional-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Conditional Expression Validation
3
+ *
4
+ * This module provides comprehensive validation for conditional expressions
5
+ * containing KubernetesRef objects, ensuring they are well-formed and
6
+ * appropriate for their intended contexts.
7
+ */
8
+ import { type MagicProxyDetectionResult } from './magic-proxy-detector.js';
9
+ import type { FactoryExpressionContext } from './types.js';
10
+ import { type ContextDetectionResult } from './context-detector.js';
11
+ /**
12
+ * Validation severity levels
13
+ */
14
+ export type ValidationSeverity = 'error' | 'warning' | 'info';
15
+ /**
16
+ * Validation rule configuration
17
+ */
18
+ export interface ValidationRule {
19
+ /** Unique identifier for the rule */
20
+ id: string;
21
+ /** Human-readable name */
22
+ name: string;
23
+ /** Description of what the rule validates */
24
+ description: string;
25
+ /** Severity level */
26
+ severity: ValidationSeverity;
27
+ /** Contexts where this rule applies */
28
+ applicableContexts: string[];
29
+ /** Whether this rule is enabled by default */
30
+ enabled: boolean;
31
+ /** Validation function */
32
+ validate: (expression: any, context: FactoryExpressionContext, detection: MagicProxyDetectionResult) => ValidationResult;
33
+ }
34
+ /**
35
+ * Result of a single validation rule
36
+ */
37
+ export interface ValidationResult {
38
+ /** Whether validation passed */
39
+ valid: boolean;
40
+ /** Validation message */
41
+ message?: string;
42
+ /** Suggestions for fixing issues */
43
+ suggestions?: string[];
44
+ /** Additional details */
45
+ details?: Record<string, any>;
46
+ /** Location information if available */
47
+ location?: {
48
+ line?: number;
49
+ column?: number;
50
+ length?: number;
51
+ };
52
+ }
53
+ /**
54
+ * Comprehensive validation result
55
+ */
56
+ export interface ConditionalValidationResult {
57
+ /** Overall validation status */
58
+ isValid: boolean;
59
+ /** Results from individual rules */
60
+ ruleResults: Map<string, ValidationResult>;
61
+ /** All validation messages grouped by severity */
62
+ messages: {
63
+ errors: string[];
64
+ warnings: string[];
65
+ info: string[];
66
+ };
67
+ /** Context detection result */
68
+ contextResult: ContextDetectionResult;
69
+ /** KubernetesRef detection result */
70
+ detectionResult: MagicProxyDetectionResult;
71
+ /** Performance metrics */
72
+ metrics: {
73
+ validationTimeMs: number;
74
+ rulesEvaluated: number;
75
+ referencesValidated: number;
76
+ };
77
+ /** Summary statistics */
78
+ summary: {
79
+ totalRules: number;
80
+ passedRules: number;
81
+ failedRules: number;
82
+ errorCount: number;
83
+ warningCount: number;
84
+ infoCount: number;
85
+ };
86
+ }
87
+ /**
88
+ * Validation configuration
89
+ */
90
+ export interface ValidationConfig {
91
+ /** Whether to enable strict validation (fail on warnings) */
92
+ strictMode?: boolean;
93
+ /** Maximum validation time in milliseconds */
94
+ timeoutMs?: number;
95
+ /** Whether to include detailed location information */
96
+ includeLocationInfo?: boolean;
97
+ /** Custom validation rules to add */
98
+ customRules?: ValidationRule[];
99
+ /** Rule IDs to disable */
100
+ disabledRules?: string[];
101
+ /** Whether to validate KubernetesRef objects deeply */
102
+ deepReferenceValidation?: boolean;
103
+ }
104
+ /**
105
+ * Conditional Expression Validator
106
+ *
107
+ * Provides comprehensive validation for conditional expressions containing
108
+ * KubernetesRef objects, ensuring they are well-formed and contextually appropriate.
109
+ */
110
+ export declare class ConditionalExpressionValidator {
111
+ private rules;
112
+ private magicProxyDetector;
113
+ private contextDetector;
114
+ constructor();
115
+ /**
116
+ * Validate a conditional expression
117
+ *
118
+ * @param expression - Expression to validate
119
+ * @param context - Factory context
120
+ * @param config - Validation configuration
121
+ * @returns Comprehensive validation result
122
+ */
123
+ validateExpression(expression: any, context: FactoryExpressionContext, config?: ValidationConfig): ConditionalValidationResult;
124
+ /**
125
+ * Register a custom validation rule
126
+ *
127
+ * @param rule - Validation rule to register
128
+ */
129
+ registerRule(rule: ValidationRule): void;
130
+ /**
131
+ * Unregister a validation rule
132
+ *
133
+ * @param ruleId - ID of the rule to unregister
134
+ * @returns Whether the rule was successfully unregistered
135
+ */
136
+ unregisterRule(ruleId: string): boolean;
137
+ /**
138
+ * Get all registered validation rules
139
+ *
140
+ * @returns Array of validation rules
141
+ */
142
+ getRules(): ValidationRule[];
143
+ /**
144
+ * Get applicable rules for a specific context
145
+ */
146
+ private getApplicableRules;
147
+ /**
148
+ * Register built-in validation rules
149
+ */
150
+ private registerBuiltInRules;
151
+ /**
152
+ * Calculate Levenshtein distance between two strings
153
+ */
154
+ private levenshteinDistance;
155
+ }
156
+ /**
157
+ * Global conditional expression validator instance
158
+ */
159
+ export declare const conditionalExpressionValidator: ConditionalExpressionValidator;
160
+ /**
161
+ * Utility function to validate a conditional expression
162
+ *
163
+ * @param expression - Expression to validate
164
+ * @param context - Factory context
165
+ * @param config - Validation configuration
166
+ * @returns Validation result
167
+ */
168
+ export declare function validateConditionalExpression(expression: any, context: FactoryExpressionContext, config?: ValidationConfig): ConditionalValidationResult;
169
+ /**
170
+ * Utility function to register a custom validation rule
171
+ *
172
+ * @param rule - Validation rule to register
173
+ */
174
+ export declare function registerValidationRule(rule: ValidationRule): void;
175
+ /**
176
+ * Utility function to get all validation rules
177
+ *
178
+ * @returns Array of validation rules
179
+ */
180
+ export declare function getValidationRules(): ValidationRule[];
181
+ //# sourceMappingURL=conditional-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-validation.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/conditional-validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,uBAAuB,CAAC;AAI/B;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,uCAAuC;IACvC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,QAAQ,EAAE,CACR,UAAU,EAAE,GAAG,EACf,OAAO,EAAE,wBAAwB,EACjC,SAAS,EAAE,yBAAyB,KACjC,gBAAgB,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,wCAAwC;IACxC,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,kDAAkD;IAClD,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;IACF,+BAA+B;IAC/B,aAAa,EAAE,sBAAsB,CAAC;IACtC,qCAAqC;IACrC,eAAe,EAAE,yBAAyB,CAAC;IAC3C,0BAA0B;IAC1B,OAAO,EAAE;QACP,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,yBAAyB;IACzB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qCAAqC;IACrC,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,uDAAuD;IACvD,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;;;GAKG;AACH,qBAAa,8BAA8B;IACzC,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,eAAe,CAA4B;;IAUnD;;;;;;;OAOG;IACH,kBAAkB,CAChB,UAAU,EAAE,GAAG,EACf,OAAO,EAAE,wBAAwB,EACjC,MAAM,GAAE,gBAAqB,GAC5B,2BAA2B;IAkH9B;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAUxC;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAWvC;;;;OAIG;IACH,QAAQ,IAAI,cAAc,EAAE;IAI5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkP5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAmB5B;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,gCAAuC,CAAC;AAEnF;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,GAAG,EACf,OAAO,EAAE,wBAAwB,EACjC,MAAM,CAAC,EAAE,gBAAgB,GACxB,2BAA2B,CAE7B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAErD"}