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,80 @@
1
+ /**
2
+ * Expression Proxy System for JavaScript-to-CEL Conversion
3
+ *
4
+ * This module provides a proxy system that intercepts JavaScript operations on KubernetesRef objects
5
+ * and creates expression KubernetesRef objects instead of evaluating them immediately.
6
+ *
7
+ * The key insight is that we need to capture expressions BEFORE they're evaluated,
8
+ * not try to detect KubernetesRef objects after evaluation has already happened.
9
+ */
10
+ import type { KubernetesRef } from '../types/index.js';
11
+ /**
12
+ * Expression KubernetesRef - represents a JavaScript expression that should be converted to CEL
13
+ */
14
+ interface ExpressionKubernetesRef<T = any> extends KubernetesRef<T> {
15
+ readonly __expressionType: 'binary' | 'template' | 'conditional' | 'logical' | 'unary';
16
+ readonly __operator?: string;
17
+ readonly __left?: any;
18
+ readonly __right?: any;
19
+ readonly __template?: string;
20
+ readonly __templateParts?: any[];
21
+ readonly __condition?: any;
22
+ readonly __consequent?: any;
23
+ readonly __alternate?: any;
24
+ }
25
+ /**
26
+ * Create an expression KubernetesRef for binary operations (===, !==, >, <, >=, <=, &&, ||)
27
+ */
28
+ declare function createBinaryExpressionRef<T>(operator: string, left: any, right: any, resourceId?: string, fieldPath?: string): ExpressionKubernetesRef<T>;
29
+ /**
30
+ * Create an expression KubernetesRef for template literals
31
+ */
32
+ declare function createTemplateExpressionRef<T>(template: string, parts: any[], resourceId?: string, fieldPath?: string): ExpressionKubernetesRef<T>;
33
+ /**
34
+ * Create an expression KubernetesRef for conditional expressions (ternary operator)
35
+ */
36
+ declare function createConditionalExpressionRef<T>(condition: any, consequent: any, alternate: any, resourceId?: string, fieldPath?: string): ExpressionKubernetesRef<T>;
37
+ /**
38
+ * Enhanced KubernetesRef that supports expression operations
39
+ *
40
+ * This proxy intercepts operations on KubernetesRef objects and creates
41
+ * expression KubernetesRef objects instead of evaluating them immediately.
42
+ */
43
+ declare function createExpressionProxy<T>(ref: KubernetesRef<T>): KubernetesRef<T>;
44
+ /**
45
+ * Expression capture system that overrides global operators
46
+ *
47
+ * This is a more advanced approach that tries to capture expressions
48
+ * by overriding comparison and logical operators.
49
+ */
50
+ export declare class ExpressionCaptureSystem {
51
+ private capturedExpressions;
52
+ private isCapturing;
53
+ /**
54
+ * Start capturing expressions
55
+ */
56
+ startCapture(): void;
57
+ /**
58
+ * Stop capturing expressions and return captured expressions
59
+ */
60
+ stopCapture(): ExpressionKubernetesRef[];
61
+ /**
62
+ * Create a KubernetesRef that captures expressions when used in operations
63
+ */
64
+ createCapturingRef<T>(resourceId: string, fieldPath: string): KubernetesRef<T>;
65
+ }
66
+ /**
67
+ * Global expression capture system instance
68
+ */
69
+ export declare const expressionCaptureSystem: ExpressionCaptureSystem;
70
+ /**
71
+ * Utility function to check if a value is an expression KubernetesRef
72
+ */
73
+ export declare function isExpressionKubernetesRef(value: any): value is ExpressionKubernetesRef;
74
+ /**
75
+ * Convert an expression KubernetesRef to a CEL expression string
76
+ */
77
+ export declare function expressionRefToCel(expr: ExpressionKubernetesRef): string;
78
+ export { createBinaryExpressionRef, createTemplateExpressionRef, createConditionalExpressionRef, createExpressionProxy };
79
+ export type { ExpressionKubernetesRef };
80
+ //# sourceMappingURL=expression-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-proxy.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/expression-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD;;GAEG;AACH,UAAU,uBAAuB,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC;CAC5B;AAED;;GAEG;AACH,iBAAS,yBAAyB,CAAC,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,GAAG,EACV,UAAU,GAAE,MAAyB,EACrC,SAAS,GAAE,MAA8D,GACxE,uBAAuB,CAAC,CAAC,CAAC,CAgB5B;AAED;;GAEG;AACH,iBAAS,2BAA2B,CAAC,CAAC,EACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,GAAG,EAAE,EACZ,UAAU,GAAE,MAAyB,EACrC,SAAS,GAAE,MAAgC,GAC1C,uBAAuB,CAAC,CAAC,CAAC,CAe5B;AAED;;GAEG;AACH,iBAAS,8BAA8B,CAAC,CAAC,EACvC,SAAS,EAAE,GAAG,EACd,UAAU,EAAE,GAAG,EACf,SAAS,EAAE,GAAG,EACd,UAAU,GAAE,MAAyB,EACrC,SAAS,GAAE,MAA6E,GACvF,uBAAuB,CAAC,CAAC,CAAC,CAgB5B;AAED;;;;;GAKG;AACH,iBAAS,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAuBzE;AAED;;;;;GAKG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,WAAW,CAAS;IAE5B;;OAEG;IACH,YAAY,IAAI,IAAI;IAKpB;;OAEG;IACH,WAAW,IAAI,uBAAuB,EAAE;IAOxC;;OAEG;IACH,kBAAkB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;CA2C/E;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,yBAAgC,CAAC;AAErE;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,uBAAuB,CAEtF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,CAoCxE;AAyBD,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,qBAAqB,EACtB,CAAC;AACF,YAAY,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,227 @@
1
+ /**
2
+ * Expression Proxy System for JavaScript-to-CEL Conversion
3
+ *
4
+ * This module provides a proxy system that intercepts JavaScript operations on KubernetesRef objects
5
+ * and creates expression KubernetesRef objects instead of evaluating them immediately.
6
+ *
7
+ * The key insight is that we need to capture expressions BEFORE they're evaluated,
8
+ * not try to detect KubernetesRef objects after evaluation has already happened.
9
+ */
10
+ import { KUBERNETES_REF_BRAND } from '../constants/brands.js';
11
+ import { isKubernetesRef } from '../../utils/type-guards.js';
12
+ /**
13
+ * Create an expression KubernetesRef for binary operations (===, !==, >, <, >=, <=, &&, ||)
14
+ */
15
+ function createBinaryExpressionRef(operator, left, right, resourceId = '__expression__', fieldPath = `${left.fieldPath || 'unknown'} ${operator} ${right}`) {
16
+ const expressionRef = (() => {
17
+ throw new Error('Expression KubernetesRef should not be called as a function');
18
+ });
19
+ Object.defineProperties(expressionRef, {
20
+ [KUBERNETES_REF_BRAND]: { value: true, enumerable: false },
21
+ resourceId: { value: resourceId, enumerable: false },
22
+ fieldPath: { value: fieldPath, enumerable: false },
23
+ __expressionType: { value: 'binary', enumerable: false },
24
+ __operator: { value: operator, enumerable: false },
25
+ __left: { value: left, enumerable: false },
26
+ __right: { value: right, enumerable: false }
27
+ });
28
+ return expressionRef;
29
+ }
30
+ /**
31
+ * Create an expression KubernetesRef for template literals
32
+ */
33
+ function createTemplateExpressionRef(template, parts, resourceId = '__expression__', fieldPath = `template(${template})`) {
34
+ const expressionRef = (() => {
35
+ throw new Error('Expression KubernetesRef should not be called as a function');
36
+ });
37
+ Object.defineProperties(expressionRef, {
38
+ [KUBERNETES_REF_BRAND]: { value: true, enumerable: false },
39
+ resourceId: { value: resourceId, enumerable: false },
40
+ fieldPath: { value: fieldPath, enumerable: false },
41
+ __expressionType: { value: 'template', enumerable: false },
42
+ __template: { value: template, enumerable: false },
43
+ __templateParts: { value: parts, enumerable: false }
44
+ });
45
+ return expressionRef;
46
+ }
47
+ /**
48
+ * Create an expression KubernetesRef for conditional expressions (ternary operator)
49
+ */
50
+ function createConditionalExpressionRef(condition, consequent, alternate, resourceId = '__expression__', fieldPath = `${condition.fieldPath || 'unknown'} ? ${consequent} : ${alternate}`) {
51
+ const expressionRef = (() => {
52
+ throw new Error('Expression KubernetesRef should not be called as a function');
53
+ });
54
+ Object.defineProperties(expressionRef, {
55
+ [KUBERNETES_REF_BRAND]: { value: true, enumerable: false },
56
+ resourceId: { value: resourceId, enumerable: false },
57
+ fieldPath: { value: fieldPath, enumerable: false },
58
+ __expressionType: { value: 'conditional', enumerable: false },
59
+ __condition: { value: condition, enumerable: false },
60
+ __consequent: { value: consequent, enumerable: false },
61
+ __alternate: { value: alternate, enumerable: false }
62
+ });
63
+ return expressionRef;
64
+ }
65
+ /**
66
+ * Enhanced KubernetesRef that supports expression operations
67
+ *
68
+ * This proxy intercepts operations on KubernetesRef objects and creates
69
+ * expression KubernetesRef objects instead of evaluating them immediately.
70
+ */
71
+ function createExpressionProxy(ref) {
72
+ return new Proxy(ref, {
73
+ get(target, prop, receiver) {
74
+ // Handle comparison operations
75
+ if (prop === Symbol.toPrimitive || prop === 'valueOf') {
76
+ return (hint) => {
77
+ if (hint === 'string') {
78
+ return `\${${target.resourceId}.${target.fieldPath}}`;
79
+ }
80
+ // For other hints, return the proxy itself to enable further operations
81
+ return receiver;
82
+ };
83
+ }
84
+ // Handle toString for template literals
85
+ if (prop === 'toString') {
86
+ return () => `\${${target.resourceId}.${target.fieldPath}}`;
87
+ }
88
+ // Return the original property
89
+ return Reflect.get(target, prop, receiver);
90
+ }
91
+ });
92
+ }
93
+ /**
94
+ * Expression capture system that overrides global operators
95
+ *
96
+ * This is a more advanced approach that tries to capture expressions
97
+ * by overriding comparison and logical operators.
98
+ */
99
+ export class ExpressionCaptureSystem {
100
+ capturedExpressions = [];
101
+ isCapturing = false;
102
+ /**
103
+ * Start capturing expressions
104
+ */
105
+ startCapture() {
106
+ this.isCapturing = true;
107
+ this.capturedExpressions = [];
108
+ }
109
+ /**
110
+ * Stop capturing expressions and return captured expressions
111
+ */
112
+ stopCapture() {
113
+ this.isCapturing = false;
114
+ const expressions = [...this.capturedExpressions];
115
+ this.capturedExpressions = [];
116
+ return expressions;
117
+ }
118
+ /**
119
+ * Create a KubernetesRef that captures expressions when used in operations
120
+ */
121
+ createCapturingRef(resourceId, fieldPath) {
122
+ const ref = (() => {
123
+ throw new Error('KubernetesRef should not be called as a function');
124
+ });
125
+ Object.defineProperties(ref, {
126
+ [KUBERNETES_REF_BRAND]: { value: true, enumerable: false },
127
+ resourceId: { value: resourceId, enumerable: false },
128
+ fieldPath: { value: fieldPath, enumerable: false }
129
+ });
130
+ // Create a proxy that intercepts operations
131
+ return new Proxy(ref, {
132
+ get(target, prop, receiver) {
133
+ // Handle comparison operations by returning functions that create expression refs
134
+ if (prop === Symbol.toPrimitive || prop === 'valueOf') {
135
+ return (hint) => {
136
+ if (hint === 'string') {
137
+ // For template literals, return a string that can be detected
138
+ return `__KUBERNETES_REF_${resourceId}_${fieldPath}__`;
139
+ }
140
+ // For numeric comparisons, return a special object
141
+ return new Proxy({}, {
142
+ get(_, op) {
143
+ if (op === Symbol.toPrimitive) {
144
+ return () => receiver;
145
+ }
146
+ return receiver;
147
+ }
148
+ });
149
+ };
150
+ }
151
+ if (prop === 'toString') {
152
+ return () => `__KUBERNETES_REF_${resourceId}_${fieldPath}__`;
153
+ }
154
+ // Return the original property
155
+ return Reflect.get(target, prop, receiver);
156
+ }
157
+ });
158
+ }
159
+ }
160
+ /**
161
+ * Global expression capture system instance
162
+ */
163
+ export const expressionCaptureSystem = new ExpressionCaptureSystem();
164
+ /**
165
+ * Utility function to check if a value is an expression KubernetesRef
166
+ */
167
+ export function isExpressionKubernetesRef(value) {
168
+ return isKubernetesRef(value) && '__expressionType' in value;
169
+ }
170
+ /**
171
+ * Convert an expression KubernetesRef to a CEL expression string
172
+ */
173
+ export function expressionRefToCel(expr) {
174
+ switch (expr.__expressionType) {
175
+ case 'binary': {
176
+ const left = isKubernetesRef(expr.__left)
177
+ ? `\${${expr.__left.resourceId}.${expr.__left.fieldPath}}`
178
+ : JSON.stringify(expr.__left);
179
+ const right = isKubernetesRef(expr.__right)
180
+ ? `\${${expr.__right.resourceId}.${expr.__right.fieldPath}}`
181
+ : JSON.stringify(expr.__right);
182
+ // Map JavaScript operators to CEL operators
183
+ const celOperator = mapJavaScriptOperatorToCel(expr.__operator || '');
184
+ return `\${${left} ${celOperator} ${right}}`;
185
+ }
186
+ case 'template':
187
+ // Convert template literal to CEL template
188
+ return `\${${expr.__template}}`;
189
+ case 'conditional': {
190
+ const condition = isKubernetesRef(expr.__condition)
191
+ ? `\${${expr.__condition.resourceId}.${expr.__condition.fieldPath}}`
192
+ : JSON.stringify(expr.__condition);
193
+ const consequent = isKubernetesRef(expr.__consequent)
194
+ ? `\${${expr.__consequent.resourceId}.${expr.__consequent.fieldPath}}`
195
+ : JSON.stringify(expr.__consequent);
196
+ const alternate = isKubernetesRef(expr.__alternate)
197
+ ? `\${${expr.__alternate.resourceId}.${expr.__alternate.fieldPath}}`
198
+ : JSON.stringify(expr.__alternate);
199
+ return `\${${condition} ? ${consequent} : ${alternate}}`;
200
+ }
201
+ default:
202
+ return `\${${expr.resourceId}.${expr.fieldPath}}`;
203
+ }
204
+ }
205
+ /**
206
+ * Map JavaScript operators to CEL operators
207
+ */
208
+ function mapJavaScriptOperatorToCel(jsOperator) {
209
+ const operatorMap = {
210
+ '===': '==',
211
+ '!==': '!=',
212
+ '&&': '&&',
213
+ '||': '||',
214
+ '>': '>',
215
+ '<': '<',
216
+ '>=': '>=',
217
+ '<=': '<=',
218
+ '+': '+',
219
+ '-': '-',
220
+ '*': '*',
221
+ '/': '/',
222
+ '%': '%'
223
+ };
224
+ return operatorMap[jsOperator] || jsOperator;
225
+ }
226
+ export { createBinaryExpressionRef, createTemplateExpressionRef, createConditionalExpressionRef, createExpressionProxy };
227
+ //# sourceMappingURL=expression-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-proxy.js","sourceRoot":"","sources":["../../../src/core/expressions/expression-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAiB7D;;GAEG;AACH,SAAS,yBAAyB,CAChC,QAAgB,EAChB,IAAS,EACT,KAAU,EACV,aAAqB,gBAAgB,EACrC,YAAoB,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,KAAK,EAAE;IAEzE,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC,CAAQ,CAAC;IAEV,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE;QACrC,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;QAC1D,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE;QACpD,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE;QAClD,gBAAgB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;QACxD,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;QAClD,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;QAC1C,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;KAC7C,CAAC,CAAC;IAEH,OAAO,aAA2C,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B,CAClC,QAAgB,EAChB,KAAY,EACZ,aAAqB,gBAAgB,EACrC,YAAoB,YAAY,QAAQ,GAAG;IAE3C,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC,CAAQ,CAAC;IAEV,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE;QACrC,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;QAC1D,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE;QACpD,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE;QAClD,gBAAgB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE;QAC1D,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;QAClD,eAAe,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;KACrD,CAAC,CAAC;IAEH,OAAO,aAA2C,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAS,8BAA8B,CACrC,SAAc,EACd,UAAe,EACf,SAAc,EACd,aAAqB,gBAAgB,EACrC,YAAoB,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,MAAM,UAAU,MAAM,SAAS,EAAE;IAExF,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC,CAAQ,CAAC;IAEV,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE;QACrC,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;QAC1D,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE;QACpD,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE;QAClD,gBAAgB,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE;QAC7D,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE;QACpD,YAAY,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE;QACtD,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE;KACrD,CAAC,CAAC;IAEH,OAAO,aAA2C,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAI,GAAqB;IACrD,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE;QACpB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,+BAA+B;YAC/B,IAAI,IAAI,KAAK,MAAM,CAAC,WAAW,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACtD,OAAO,CAAC,IAAa,EAAE,EAAE;oBACvB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACtB,OAAO,MAAM,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC;oBACxD,CAAC;oBACD,wEAAwE;oBACxE,OAAO,QAAQ,CAAC;gBAClB,CAAC,CAAC;YACJ,CAAC;YAED,wCAAwC;YACxC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,OAAO,GAAG,EAAE,CAAC,MAAM,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC;YAC9D,CAAC;YAED,+BAA+B;YAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;KACF,CAAqB,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,uBAAuB;IAC1B,mBAAmB,GAA8B,EAAE,CAAC;IACpD,WAAW,GAAG,KAAK,CAAC;IAE5B;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAI,UAAkB,EAAE,SAAiB;QAEzD,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC,CAAQ,CAAC;QAEV,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE;YAC3B,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;YAC1D,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE;YACpD,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE;SACnD,CAAC,CAAC;QAEH,4CAA4C;QAC5C,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE;YACpB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;gBACxB,kFAAkF;gBAClF,IAAI,IAAI,KAAK,MAAM,CAAC,WAAW,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACtD,OAAO,CAAC,IAAa,EAAE,EAAE;wBACvB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;4BACtB,8DAA8D;4BAC9D,OAAO,oBAAoB,UAAU,IAAI,SAAS,IAAI,CAAC;wBACzD,CAAC;wBACD,mDAAmD;wBACnD,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE;4BACnB,GAAG,CAAC,CAAC,EAAE,EAAE;gCACP,IAAI,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;oCAC9B,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC;gCACxB,CAAC;gCACD,OAAO,QAAQ,CAAC;4BAClB,CAAC;yBACF,CAAC,CAAC;oBACL,CAAC,CAAC;gBACJ,CAAC;gBAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxB,OAAO,GAAG,EAAE,CAAC,oBAAoB,UAAU,IAAI,SAAS,IAAI,CAAC;gBAC/D,CAAC;gBAED,+BAA+B;gBAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;SACF,CAAqB,CAAC;IACzB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,uBAAuB,EAAE,CAAC;AAErE;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAU;IAClD,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,kBAAkB,IAAI,KAAK,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA6B;IAC9D,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG;gBAC1D,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;gBACzC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;gBAC5D,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjC,4CAA4C;YAC5C,MAAM,WAAW,GAAG,0BAA0B,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YACtE,OAAO,MAAM,IAAI,IAAI,WAAW,IAAI,KAAK,GAAG,CAAC;QAC/C,CAAC;QAED,KAAK,UAAU;YACb,2CAA2C;YAC3C,OAAO,MAAM,IAAI,CAAC,UAAU,GAAG,CAAC;QAElC,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;gBACjD,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG;gBACpE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;gBACnD,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG;gBACtE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtC,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;gBACjD,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG;gBACpE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAErC,OAAO,MAAM,SAAS,MAAM,UAAU,MAAM,SAAS,GAAG,CAAC;QAC3D,CAAC;QAED;YACE,OAAO,MAAM,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAAC,UAAkB;IACpD,MAAM,WAAW,GAA2B;QAC1C,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;KACT,CAAC;IAEF,OAAO,WAAW,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;AAC/C,CAAC;AAED,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,qBAAqB,EACtB,CAAC"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Factory Integration for Expression Analysis
3
+ *
4
+ * This module provides integration between factory functions and the expression
5
+ * analysis system, enabling automatic detection and conversion of KubernetesRef
6
+ * objects in factory configurations.
7
+ */
8
+ import type { MagicAssignable } from '../types/index.js';
9
+ import { type MagicProxyDetectionResult } from './magic-proxy-detector.js';
10
+ import type { ExpressionAnalysisResult, FactoryAnalysisResult, FactoryExpressionContext } from './types.js';
11
+ export type { ExpressionAnalysisResult, FactoryExpressionContext, FactoryAnalysisResult };
12
+ export interface FactoryAnalysisConfig {
13
+ /** Whether to enable expression analysis for this factory */
14
+ enableAnalysis?: boolean;
15
+ /** Factory type for analysis context */
16
+ factoryType?: 'direct' | 'kro';
17
+ /** Whether to include detailed debug information */
18
+ includeDebugInfo?: boolean;
19
+ /** Maximum depth for recursive analysis */
20
+ maxDepth?: number;
21
+ /** Whether to validate expression types */
22
+ validateTypes?: boolean;
23
+ }
24
+ /**
25
+ * Configuration for factory expression analysis
26
+ */
27
+ export interface FactoryAnalysisConfig {
28
+ /** Whether to enable expression analysis for this factory */
29
+ enableAnalysis?: boolean;
30
+ /** Factory type for context-aware analysis */
31
+ factoryType?: 'direct' | 'kro';
32
+ /** Whether to preserve static values without analysis */
33
+ preserveStatic?: boolean;
34
+ /** Maximum depth for recursive analysis */
35
+ maxDepth?: number;
36
+ }
37
+ /**
38
+ * Result of factory configuration analysis
39
+ */
40
+ export interface FactoryConfigAnalysisResult {
41
+ /** Whether the configuration contains KubernetesRef objects */
42
+ hasKubernetesRefs: boolean;
43
+ /** Analysis results for each field containing KubernetesRef objects */
44
+ fieldAnalysis: Record<string, ExpressionAnalysisResult>;
45
+ /** Suggested optimizations */
46
+ optimizations: string[];
47
+ /** Performance metrics */
48
+ metrics: {
49
+ analysisTimeMs: number;
50
+ fieldsAnalyzed: number;
51
+ referencesFound: number;
52
+ };
53
+ /** Magic proxy detection results */
54
+ magicProxyDetection?: MagicProxyDetectionResult;
55
+ }
56
+ /**
57
+ * Factory Expression Analyzer
58
+ *
59
+ * Analyzes factory configurations for KubernetesRef objects and provides
60
+ * context-aware expression handling recommendations.
61
+ */
62
+ export declare class FactoryExpressionAnalyzer {
63
+ private resourceAnalyzer;
64
+ private contextDetector;
65
+ private contextAwareGenerator;
66
+ private magicProxyDetector;
67
+ private celConversionEngine;
68
+ constructor();
69
+ /**
70
+ * Analyze a factory configuration for KubernetesRef objects
71
+ *
72
+ * @param config - Factory configuration object
73
+ * @param context - Analysis context
74
+ * @param options - Analysis options
75
+ * @returns Analysis result
76
+ */
77
+ analyzeFactoryConfig<T extends Record<string, any>>(config: T, context: FactoryExpressionContext, options?: FactoryAnalysisConfig): FactoryConfigAnalysisResult;
78
+ /**
79
+ * Process a factory configuration value, handling KubernetesRef objects appropriately
80
+ *
81
+ * @param value - Configuration value to process
82
+ * @param context - Factory context
83
+ * @param fieldPath - Path to the field being processed
84
+ * @param options - Processing options
85
+ * @returns Processed value
86
+ */
87
+ processFactoryValue<T>(value: MagicAssignable<T>, context: FactoryExpressionContext, fieldPath: string, options?: {
88
+ enableCelConversion?: boolean;
89
+ }): T;
90
+ /**
91
+ * Create an enhanced factory function that includes expression analysis
92
+ *
93
+ * @param originalFactory - Original factory function
94
+ * @param factoryName - Name of the factory for logging
95
+ * @returns Enhanced factory function
96
+ */
97
+ enhanceFactory<TConfig, TResource>(originalFactory: (config: TConfig) => TResource, factoryName: string): (config: TConfig, options?: FactoryAnalysisConfig) => TResource;
98
+ private analyzeConfigFields;
99
+ private analyzeConfigFieldsWithMagicProxy;
100
+ private generateOptimizations;
101
+ }
102
+ /**
103
+ * Global factory expression analyzer instance
104
+ */
105
+ export declare const factoryExpressionAnalyzer: FactoryExpressionAnalyzer;
106
+ /**
107
+ * Utility function to enhance a factory function with expression analysis
108
+ *
109
+ * @param factory - Original factory function
110
+ * @param name - Factory name for logging
111
+ * @returns Enhanced factory function
112
+ */
113
+ export declare function withExpressionAnalysis<TConfig, TResource>(factory: (config: TConfig) => TResource, name: string): (config: TConfig, options?: FactoryAnalysisConfig) => TResource;
114
+ /**
115
+ * Utility function to analyze a factory configuration
116
+ *
117
+ * @param config - Factory configuration
118
+ * @param context - Analysis context
119
+ * @param options - Analysis options
120
+ * @returns Analysis result
121
+ */
122
+ export declare function analyzeFactoryConfig<T extends Record<string, any>>(config: T, context: FactoryExpressionContext, options?: FactoryAnalysisConfig): FactoryConfigAnalysisResult;
123
+ /**
124
+ * Utility function to process a factory value with KubernetesRef handling
125
+ *
126
+ * @param value - Value to process
127
+ * @param context - Factory context
128
+ * @param fieldPath - Field path for logging
129
+ * @returns Processed value
130
+ */
131
+ export declare function processFactoryValue<T>(value: MagicAssignable<T>, context: FactoryExpressionContext, fieldPath: string): T;
132
+ //# sourceMappingURL=factory-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory-integration.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/factory-integration.ts"],"names":[],"mappings":"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"}