typekro 0.3.1 → 0.5.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 (1280) hide show
  1. package/README.md +142 -1054
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/advanced/index.d.ts +52 -0
  4. package/dist/advanced/index.d.ts.map +1 -0
  5. package/dist/advanced/index.js +60 -0
  6. package/dist/advanced/index.js.map +1 -0
  7. package/dist/alchemy/deployers.d.ts +0 -5
  8. package/dist/alchemy/deployers.d.ts.map +1 -1
  9. package/dist/alchemy/deployers.js +26 -89
  10. package/dist/alchemy/deployers.js.map +1 -1
  11. package/dist/alchemy/index.d.ts +8 -8
  12. package/dist/alchemy/index.d.ts.map +1 -1
  13. package/dist/alchemy/index.js +12 -11
  14. package/dist/alchemy/index.js.map +1 -1
  15. package/dist/alchemy/resolver.d.ts.map +1 -1
  16. package/dist/alchemy/resolver.js +6 -5
  17. package/dist/alchemy/resolver.js.map +1 -1
  18. package/dist/alchemy/resource-registration.d.ts.map +1 -1
  19. package/dist/alchemy/resource-registration.js +20 -8
  20. package/dist/alchemy/resource-registration.js.map +1 -1
  21. package/dist/alchemy/type-inference.d.ts.map +1 -1
  22. package/dist/alchemy/type-inference.js +6 -5
  23. package/dist/alchemy/type-inference.js.map +1 -1
  24. package/dist/alchemy/types.d.ts +1 -1
  25. package/dist/alchemy/types.d.ts.map +1 -1
  26. package/dist/alchemy/utilities.d.ts.map +1 -1
  27. package/dist/alchemy/utilities.js +1 -1
  28. package/dist/alchemy/utilities.js.map +1 -1
  29. package/dist/alchemy/wrapper.d.ts +4 -2
  30. package/dist/alchemy/wrapper.d.ts.map +1 -1
  31. package/dist/alchemy/wrapper.js +2 -1
  32. package/dist/alchemy/wrapper.js.map +1 -1
  33. package/dist/compositions/typekro-runtime/index.d.ts +3 -0
  34. package/dist/compositions/typekro-runtime/index.d.ts.map +1 -0
  35. package/dist/compositions/typekro-runtime/index.js.map +1 -0
  36. package/dist/{core/composition → compositions}/typekro-runtime/typekro-runtime.d.ts +7 -10
  37. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts.map +1 -0
  38. package/dist/compositions/typekro-runtime/typekro-runtime.js +404 -0
  39. package/dist/compositions/typekro-runtime/typekro-runtime.js.map +1 -0
  40. package/dist/compositions/typekro-runtime/types.d.ts +45 -0
  41. package/dist/compositions/typekro-runtime/types.d.ts.map +1 -0
  42. package/dist/compositions/typekro-runtime/types.js.map +1 -0
  43. package/dist/core/composition/context.d.ts +91 -0
  44. package/dist/core/composition/context.d.ts.map +1 -0
  45. package/dist/core/composition/context.js +125 -0
  46. package/dist/core/composition/context.js.map +1 -0
  47. package/dist/core/composition/imperative.d.ts +37 -11
  48. package/dist/core/composition/imperative.d.ts.map +1 -1
  49. package/dist/core/composition/imperative.js +433 -37
  50. package/dist/core/composition/imperative.js.map +1 -1
  51. package/dist/core/composition/index.d.ts +2 -4
  52. package/dist/core/composition/index.d.ts.map +1 -1
  53. package/dist/core/composition/index.js +1 -4
  54. package/dist/core/composition/index.js.map +1 -1
  55. package/dist/core/composition-debugger.d.ts +78 -0
  56. package/dist/core/composition-debugger.d.ts.map +1 -0
  57. package/dist/core/composition-debugger.js +142 -0
  58. package/dist/core/composition-debugger.js.map +1 -0
  59. package/dist/core/config/defaults.d.ts +109 -0
  60. package/dist/core/config/defaults.d.ts.map +1 -0
  61. package/dist/core/config/defaults.js +150 -0
  62. package/dist/core/config/defaults.js.map +1 -0
  63. package/dist/core/config/env.d.ts +12 -0
  64. package/dist/core/config/env.d.ts.map +1 -0
  65. package/dist/core/config/env.js +16 -0
  66. package/dist/core/config/env.js.map +1 -0
  67. package/dist/core/config/index.d.ts +3 -0
  68. package/dist/core/config/index.d.ts.map +1 -0
  69. package/dist/core/config/index.js +3 -0
  70. package/dist/core/config/index.js.map +1 -0
  71. package/dist/core/constants/brands.d.ts +4 -37
  72. package/dist/core/constants/brands.d.ts.map +1 -1
  73. package/dist/core/constants/brands.js +4 -40
  74. package/dist/core/constants/brands.js.map +1 -1
  75. package/dist/core/dependencies/graph.d.ts.map +1 -1
  76. package/dist/core/dependencies/graph.js +4 -4
  77. package/dist/core/dependencies/graph.js.map +1 -1
  78. package/dist/core/dependencies/resolver.d.ts.map +1 -1
  79. package/dist/core/dependencies/resolver.js +3 -3
  80. package/dist/core/dependencies/resolver.js.map +1 -1
  81. package/dist/core/deployment/client-provider-manager.d.ts +40 -0
  82. package/dist/core/deployment/client-provider-manager.d.ts.map +1 -0
  83. package/dist/core/deployment/client-provider-manager.js +63 -0
  84. package/dist/core/deployment/client-provider-manager.js.map +1 -0
  85. package/dist/core/deployment/closure-planner.d.ts +20 -0
  86. package/dist/core/deployment/closure-planner.d.ts.map +1 -0
  87. package/dist/core/deployment/closure-planner.js +96 -0
  88. package/dist/core/deployment/closure-planner.js.map +1 -0
  89. package/dist/core/deployment/crd-manager.d.ts +52 -0
  90. package/dist/core/deployment/crd-manager.d.ts.map +1 -0
  91. package/dist/core/deployment/crd-manager.js +227 -0
  92. package/dist/core/deployment/crd-manager.js.map +1 -0
  93. package/dist/core/deployment/debug-logger.d.ts +3 -14
  94. package/dist/core/deployment/debug-logger.d.ts.map +1 -1
  95. package/dist/core/deployment/debug-logger.js +41 -12
  96. package/dist/core/deployment/debug-logger.js.map +1 -1
  97. package/dist/core/deployment/direct-factory.d.ts +59 -9
  98. package/dist/core/deployment/direct-factory.d.ts.map +1 -1
  99. package/dist/core/deployment/direct-factory.js +494 -117
  100. package/dist/core/deployment/direct-factory.js.map +1 -1
  101. package/dist/core/deployment/engine.d.ts +126 -64
  102. package/dist/core/deployment/engine.d.ts.map +1 -1
  103. package/dist/core/deployment/engine.js +611 -1227
  104. package/dist/core/deployment/engine.js.map +1 -1
  105. package/dist/core/deployment/errors.d.ts +30 -0
  106. package/dist/core/deployment/errors.d.ts.map +1 -0
  107. package/dist/core/deployment/errors.js +84 -0
  108. package/dist/core/deployment/errors.js.map +1 -0
  109. package/dist/core/deployment/event-filter.d.ts.map +1 -1
  110. package/dist/core/deployment/event-filter.js +21 -18
  111. package/dist/core/deployment/event-filter.js.map +1 -1
  112. package/dist/core/deployment/event-monitor.d.ts +36 -2
  113. package/dist/core/deployment/event-monitor.d.ts.map +1 -1
  114. package/dist/core/deployment/event-monitor.js +279 -51
  115. package/dist/core/deployment/event-monitor.js.map +1 -1
  116. package/dist/core/deployment/index.d.ts +5 -2
  117. package/dist/core/deployment/index.d.ts.map +1 -1
  118. package/dist/core/deployment/index.js +5 -3
  119. package/dist/core/deployment/index.js.map +1 -1
  120. package/dist/core/deployment/k8s-helpers.d.ts +44 -0
  121. package/dist/core/deployment/k8s-helpers.d.ts.map +1 -0
  122. package/dist/core/deployment/k8s-helpers.js +109 -0
  123. package/dist/core/deployment/k8s-helpers.js.map +1 -0
  124. package/dist/core/deployment/kro-factory.d.ts +41 -13
  125. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  126. package/dist/core/deployment/kro-factory.js +355 -210
  127. package/dist/core/deployment/kro-factory.js.map +1 -1
  128. package/dist/core/deployment/kro-readiness.d.ts +54 -0
  129. package/dist/core/deployment/kro-readiness.d.ts.map +1 -0
  130. package/dist/core/deployment/kro-readiness.js +140 -0
  131. package/dist/core/deployment/kro-readiness.js.map +1 -0
  132. package/dist/core/deployment/readiness-waiter.d.ts +60 -0
  133. package/dist/core/deployment/readiness-waiter.d.ts.map +1 -0
  134. package/dist/core/deployment/readiness-waiter.js +245 -0
  135. package/dist/core/deployment/readiness-waiter.js.map +1 -0
  136. package/dist/core/deployment/readiness.d.ts +3 -9
  137. package/dist/core/deployment/readiness.d.ts.map +1 -1
  138. package/dist/core/deployment/readiness.js +16 -30
  139. package/dist/core/deployment/readiness.js.map +1 -1
  140. package/dist/core/deployment/resource-applier.d.ts +58 -0
  141. package/dist/core/deployment/resource-applier.d.ts.map +1 -0
  142. package/dist/core/deployment/resource-applier.js +385 -0
  143. package/dist/core/deployment/resource-applier.js.map +1 -0
  144. package/dist/core/deployment/rollback-manager.d.ts +21 -3
  145. package/dist/core/deployment/rollback-manager.d.ts.map +1 -1
  146. package/dist/core/deployment/rollback-manager.js +132 -13
  147. package/dist/core/deployment/rollback-manager.js.map +1 -1
  148. package/dist/core/deployment/shared-utilities.d.ts +38 -9
  149. package/dist/core/deployment/shared-utilities.d.ts.map +1 -1
  150. package/dist/core/deployment/shared-utilities.js +92 -22
  151. package/dist/core/deployment/shared-utilities.js.map +1 -1
  152. package/dist/core/deployment/status-hydrator.d.ts +1 -1
  153. package/dist/core/deployment/status-hydrator.d.ts.map +1 -1
  154. package/dist/core/deployment/status-hydrator.js +21 -15
  155. package/dist/core/deployment/status-hydrator.js.map +1 -1
  156. package/dist/core/deployment/strategies/alchemy-strategy.d.ts.map +1 -1
  157. package/dist/core/deployment/strategies/alchemy-strategy.js +16 -9
  158. package/dist/core/deployment/strategies/alchemy-strategy.js.map +1 -1
  159. package/dist/core/deployment/strategies/base-strategy.d.ts +14 -0
  160. package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
  161. package/dist/core/deployment/strategies/base-strategy.js +326 -206
  162. package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
  163. package/dist/core/deployment/strategies/direct-strategy.d.ts +10 -3
  164. package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -1
  165. package/dist/core/deployment/strategies/direct-strategy.js +60 -1
  166. package/dist/core/deployment/strategies/direct-strategy.js.map +1 -1
  167. package/dist/core/deployment/strategies/kro-strategy.d.ts +16 -6
  168. package/dist/core/deployment/strategies/kro-strategy.d.ts.map +1 -1
  169. package/dist/core/deployment/strategies/kro-strategy.js +57 -105
  170. package/dist/core/deployment/strategies/kro-strategy.js.map +1 -1
  171. package/dist/core/errors.d.ts +134 -83
  172. package/dist/core/errors.d.ts.map +1 -1
  173. package/dist/core/errors.js +177 -300
  174. package/dist/core/errors.js.map +1 -1
  175. package/dist/core/expressions/analysis/analyzer.d.ts +155 -0
  176. package/dist/core/expressions/analysis/analyzer.d.ts.map +1 -0
  177. package/dist/core/expressions/analysis/analyzer.js +540 -0
  178. package/dist/core/expressions/analysis/analyzer.js.map +1 -0
  179. package/dist/core/expressions/analysis/array-method-converters.d.ts +19 -0
  180. package/dist/core/expressions/analysis/array-method-converters.d.ts.map +1 -0
  181. package/dist/core/expressions/analysis/array-method-converters.js +175 -0
  182. package/dist/core/expressions/analysis/array-method-converters.js.map +1 -0
  183. package/dist/core/expressions/analysis/ast-helpers.d.ts +49 -0
  184. package/dist/core/expressions/analysis/ast-helpers.d.ts.map +1 -0
  185. package/dist/core/expressions/analysis/ast-helpers.js +106 -0
  186. package/dist/core/expressions/analysis/ast-helpers.js.map +1 -0
  187. package/dist/core/expressions/analysis/ast-node-converters.d.ts +15 -0
  188. package/dist/core/expressions/analysis/ast-node-converters.d.ts.map +1 -0
  189. package/dist/core/expressions/analysis/ast-node-converters.js +123 -0
  190. package/dist/core/expressions/analysis/ast-node-converters.js.map +1 -0
  191. package/dist/core/expressions/analysis/ast-type-guards.d.ts +14 -0
  192. package/dist/core/expressions/analysis/ast-type-guards.d.ts.map +1 -0
  193. package/dist/core/expressions/analysis/ast-type-guards.js +15 -0
  194. package/dist/core/expressions/analysis/ast-type-guards.js.map +1 -0
  195. package/dist/core/expressions/{cache.d.ts → analysis/cache.d.ts} +1 -1
  196. package/dist/core/expressions/analysis/cache.d.ts.map +1 -0
  197. package/dist/core/expressions/{cache.js → analysis/cache.js} +13 -13
  198. package/dist/core/expressions/analysis/cache.js.map +1 -0
  199. package/dist/core/expressions/analysis/call-expression-converters.d.ts +18 -0
  200. package/dist/core/expressions/analysis/call-expression-converters.d.ts.map +1 -0
  201. package/dist/core/expressions/analysis/call-expression-converters.js +220 -0
  202. package/dist/core/expressions/analysis/call-expression-converters.js.map +1 -0
  203. package/dist/core/expressions/analysis/cel-emitter.d.ts +85 -0
  204. package/dist/core/expressions/analysis/cel-emitter.d.ts.map +1 -0
  205. package/dist/core/expressions/analysis/cel-emitter.js +455 -0
  206. package/dist/core/expressions/analysis/cel-emitter.js.map +1 -0
  207. package/dist/core/expressions/analysis/expression-classifier.d.ts +77 -0
  208. package/dist/core/expressions/analysis/expression-classifier.d.ts.map +1 -0
  209. package/dist/core/expressions/analysis/expression-classifier.js +487 -0
  210. package/dist/core/expressions/analysis/expression-classifier.js.map +1 -0
  211. package/dist/core/expressions/analysis/fn-toString-self-test.d.ts +146 -0
  212. package/dist/core/expressions/analysis/fn-toString-self-test.d.ts.map +1 -0
  213. package/dist/core/expressions/analysis/fn-toString-self-test.js +243 -0
  214. package/dist/core/expressions/analysis/fn-toString-self-test.js.map +1 -0
  215. package/dist/core/expressions/analysis/operator-utils.d.ts +35 -0
  216. package/dist/core/expressions/analysis/operator-utils.d.ts.map +1 -0
  217. package/dist/core/expressions/analysis/operator-utils.js +167 -0
  218. package/dist/core/expressions/analysis/operator-utils.js.map +1 -0
  219. package/dist/core/expressions/analysis/parse-core.d.ts +63 -0
  220. package/dist/core/expressions/analysis/parse-core.d.ts.map +1 -0
  221. package/dist/core/expressions/analysis/parse-core.js +115 -0
  222. package/dist/core/expressions/analysis/parse-core.js.map +1 -0
  223. package/dist/core/expressions/analysis/parser.d.ts +127 -0
  224. package/dist/core/expressions/analysis/parser.d.ts.map +1 -0
  225. package/dist/core/expressions/analysis/parser.js +212 -0
  226. package/dist/core/expressions/analysis/parser.js.map +1 -0
  227. package/dist/core/expressions/analysis/scope-resolver.d.ts +57 -0
  228. package/dist/core/expressions/analysis/scope-resolver.d.ts.map +1 -0
  229. package/dist/core/expressions/analysis/scope-resolver.js +440 -0
  230. package/dist/core/expressions/analysis/scope-resolver.js.map +1 -0
  231. package/dist/core/expressions/analysis/shared-types.d.ts +132 -0
  232. package/dist/core/expressions/analysis/shared-types.d.ts.map +1 -0
  233. package/dist/core/expressions/analysis/shared-types.js +13 -0
  234. package/dist/core/expressions/analysis/shared-types.js.map +1 -0
  235. package/dist/core/expressions/analysis/source-map.d.ts.map +1 -0
  236. package/dist/core/expressions/{source-map.js → analysis/source-map.js} +16 -17
  237. package/dist/core/expressions/analysis/source-map.js.map +1 -0
  238. package/dist/core/expressions/analysis/string-method-converters.d.ts +27 -0
  239. package/dist/core/expressions/analysis/string-method-converters.d.ts.map +1 -0
  240. package/dist/core/expressions/analysis/string-method-converters.js +208 -0
  241. package/dist/core/expressions/analysis/string-method-converters.js.map +1 -0
  242. package/dist/core/expressions/{types.d.ts → analysis/types.d.ts} +5 -5
  243. package/dist/core/expressions/analysis/types.d.ts.map +1 -0
  244. package/dist/core/expressions/analysis/types.js.map +1 -0
  245. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts +92 -0
  246. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts.map +1 -0
  247. package/dist/core/expressions/composition/composition-analyzer-helpers.js +301 -0
  248. package/dist/core/expressions/composition/composition-analyzer-helpers.js.map +1 -0
  249. package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts +77 -0
  250. package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts.map +1 -0
  251. package/dist/core/expressions/composition/composition-analyzer-ternary.js +364 -0
  252. package/dist/core/expressions/composition/composition-analyzer-ternary.js.map +1 -0
  253. package/dist/core/expressions/composition/composition-analyzer-traversal.d.ts +37 -0
  254. package/dist/core/expressions/composition/composition-analyzer-traversal.d.ts.map +1 -0
  255. package/dist/core/expressions/composition/composition-analyzer-traversal.js +375 -0
  256. package/dist/core/expressions/composition/composition-analyzer-traversal.js.map +1 -0
  257. package/dist/core/expressions/composition/composition-analyzer-types.d.ts +140 -0
  258. package/dist/core/expressions/composition/composition-analyzer-types.d.ts.map +1 -0
  259. package/dist/core/expressions/composition/composition-analyzer-types.js +8 -0
  260. package/dist/core/expressions/composition/composition-analyzer-types.js.map +1 -0
  261. package/dist/core/expressions/composition/composition-analyzer.d.ts +39 -0
  262. package/dist/core/expressions/composition/composition-analyzer.d.ts.map +1 -0
  263. package/dist/core/expressions/composition/composition-analyzer.js +144 -0
  264. package/dist/core/expressions/composition/composition-analyzer.js.map +1 -0
  265. package/dist/core/expressions/composition/context-tracker.d.ts +39 -0
  266. package/dist/core/expressions/composition/context-tracker.d.ts.map +1 -0
  267. package/dist/core/expressions/composition/context-tracker.js +64 -0
  268. package/dist/core/expressions/composition/context-tracker.js.map +1 -0
  269. package/dist/core/expressions/composition/expression-analyzer.d.ts +101 -0
  270. package/dist/core/expressions/composition/expression-analyzer.d.ts.map +1 -0
  271. package/dist/core/expressions/composition/expression-analyzer.js +425 -0
  272. package/dist/core/expressions/composition/expression-analyzer.js.map +1 -0
  273. package/dist/core/expressions/{imperative-analyzer.d.ts → composition/imperative-analyzer.d.ts} +3 -3
  274. package/dist/core/expressions/composition/imperative-analyzer.d.ts.map +1 -0
  275. package/dist/core/expressions/{imperative-analyzer.js → composition/imperative-analyzer.js} +68 -30
  276. package/dist/core/expressions/composition/imperative-analyzer.js.map +1 -0
  277. package/dist/core/expressions/composition/index.d.ts +17 -0
  278. package/dist/core/expressions/composition/index.d.ts.map +1 -0
  279. package/dist/core/expressions/composition/index.js +18 -0
  280. package/dist/core/expressions/composition/index.js.map +1 -0
  281. package/dist/core/expressions/composition/integration-hooks.d.ts +71 -0
  282. package/dist/core/expressions/composition/integration-hooks.d.ts.map +1 -0
  283. package/dist/core/expressions/composition/integration-hooks.js +248 -0
  284. package/dist/core/expressions/composition/integration-hooks.js.map +1 -0
  285. package/dist/core/expressions/composition/scope-manager.d.ts +93 -0
  286. package/dist/core/expressions/composition/scope-manager.d.ts.map +1 -0
  287. package/dist/core/expressions/composition/scope-manager.js +215 -0
  288. package/dist/core/expressions/composition/scope-manager.js.map +1 -0
  289. package/dist/core/expressions/composition/types.d.ts +41 -0
  290. package/dist/core/expressions/composition/types.d.ts.map +1 -0
  291. package/dist/core/expressions/composition/types.js +7 -0
  292. package/dist/core/expressions/composition/types.js.map +1 -0
  293. package/dist/core/expressions/{conditional-expression-processor.d.ts → conditional/conditional-expression-processor.d.ts} +3 -3
  294. package/dist/core/expressions/conditional/conditional-expression-processor.d.ts.map +1 -0
  295. package/dist/core/expressions/{conditional-expression-processor.js → conditional/conditional-expression-processor.js} +59 -50
  296. package/dist/core/expressions/conditional/conditional-expression-processor.js.map +1 -0
  297. package/dist/core/expressions/{conditional-integration.d.ts → conditional/conditional-integration.d.ts} +13 -35
  298. package/dist/core/expressions/conditional/conditional-integration.d.ts.map +1 -0
  299. package/dist/core/expressions/{conditional-integration.js → conditional/conditional-integration.js} +92 -86
  300. package/dist/core/expressions/conditional/conditional-integration.js.map +1 -0
  301. package/dist/core/expressions/{context-aware-generator.d.ts → context/context-aware-generator.d.ts} +4 -28
  302. package/dist/core/expressions/context/context-aware-generator.d.ts.map +1 -0
  303. package/dist/core/expressions/{context-aware-generator.js → context/context-aware-generator.js} +27 -121
  304. package/dist/core/expressions/context/context-aware-generator.js.map +1 -0
  305. package/dist/core/expressions/{context-detector.d.ts → context/context-detector.d.ts} +7 -13
  306. package/dist/core/expressions/context/context-detector.d.ts.map +1 -0
  307. package/dist/core/expressions/{context-detector.js → context/context-detector.js} +45 -63
  308. package/dist/core/expressions/context/context-detector.js.map +1 -0
  309. package/dist/core/expressions/{context-validator.d.ts → context/context-validator.d.ts} +5 -36
  310. package/dist/core/expressions/context/context-validator.d.ts.map +1 -0
  311. package/dist/core/expressions/{context-validator.js → context/context-validator.js} +55 -124
  312. package/dist/core/expressions/context/context-validator.js.map +1 -0
  313. package/dist/core/expressions/{cel-conversion-engine.d.ts → factory/cel-conversion-engine.d.ts} +3 -3
  314. package/dist/core/expressions/factory/cel-conversion-engine.d.ts.map +1 -0
  315. package/dist/core/expressions/{cel-conversion-engine.js → factory/cel-conversion-engine.js} +19 -19
  316. package/dist/core/expressions/factory/cel-conversion-engine.js.map +1 -0
  317. package/dist/core/expressions/factory/dependency-tracker.d.ts +222 -0
  318. package/dist/core/expressions/factory/dependency-tracker.d.ts.map +1 -0
  319. package/dist/core/expressions/factory/dependency-tracker.js +512 -0
  320. package/dist/core/expressions/factory/dependency-tracker.js.map +1 -0
  321. package/dist/core/expressions/{factory-integration.d.ts → factory/factory-integration.d.ts} +3 -18
  322. package/dist/core/expressions/factory/factory-integration.d.ts.map +1 -0
  323. package/dist/core/expressions/{factory-integration.js → factory/factory-integration.js} +28 -29
  324. package/dist/core/expressions/factory/factory-integration.js.map +1 -0
  325. package/dist/core/expressions/{factory-pattern-handler.d.ts → factory/factory-pattern-handler.d.ts} +8 -8
  326. package/dist/core/expressions/factory/factory-pattern-handler.d.ts.map +1 -0
  327. package/dist/core/expressions/{factory-pattern-handler.js → factory/factory-pattern-handler.js} +101 -73
  328. package/dist/core/expressions/factory/factory-pattern-handler.js.map +1 -0
  329. package/dist/core/expressions/{migration-helpers.d.ts → factory/migration-helpers.d.ts} +4 -4
  330. package/dist/core/expressions/factory/migration-helpers.d.ts.map +1 -0
  331. package/dist/core/expressions/{migration-helpers.js → factory/migration-helpers.js} +28 -26
  332. package/dist/core/expressions/factory/migration-helpers.js.map +1 -0
  333. package/dist/core/expressions/factory/resource-analyzer.d.ts +139 -0
  334. package/dist/core/expressions/factory/resource-analyzer.d.ts.map +1 -0
  335. package/dist/core/expressions/factory/resource-analyzer.js +286 -0
  336. package/dist/core/expressions/factory/resource-analyzer.js.map +1 -0
  337. package/dist/core/expressions/factory/resource-type-validator.d.ts +149 -0
  338. package/dist/core/expressions/factory/resource-type-validator.d.ts.map +1 -0
  339. package/dist/core/expressions/factory/resource-type-validator.js +318 -0
  340. package/dist/core/expressions/factory/resource-type-validator.js.map +1 -0
  341. package/dist/core/expressions/factory/status-ast-utils.d.ts +36 -0
  342. package/dist/core/expressions/factory/status-ast-utils.d.ts.map +1 -0
  343. package/dist/core/expressions/factory/status-ast-utils.js +320 -0
  344. package/dist/core/expressions/factory/status-ast-utils.js.map +1 -0
  345. package/dist/core/expressions/factory/status-builder-analyzer.d.ts +91 -0
  346. package/dist/core/expressions/factory/status-builder-analyzer.d.ts.map +1 -0
  347. package/dist/core/expressions/factory/status-builder-analyzer.js +374 -0
  348. package/dist/core/expressions/factory/status-builder-analyzer.js.map +1 -0
  349. package/dist/core/expressions/factory/status-builder-types.d.ts +166 -0
  350. package/dist/core/expressions/factory/status-builder-types.d.ts.map +1 -0
  351. package/dist/core/expressions/factory/status-builder-types.js +8 -0
  352. package/dist/core/expressions/factory/status-builder-types.js.map +1 -0
  353. package/dist/core/expressions/factory/status-cel-generation.d.ts +67 -0
  354. package/dist/core/expressions/factory/status-cel-generation.d.ts.map +1 -0
  355. package/dist/core/expressions/factory/status-cel-generation.js +330 -0
  356. package/dist/core/expressions/factory/status-cel-generation.js.map +1 -0
  357. package/dist/core/expressions/factory/status-field-analysis.d.ts +57 -0
  358. package/dist/core/expressions/factory/status-field-analysis.d.ts.map +1 -0
  359. package/dist/core/expressions/factory/status-field-analysis.js +475 -0
  360. package/dist/core/expressions/factory/status-field-analysis.js.map +1 -0
  361. package/dist/core/expressions/index.d.ts +39 -49
  362. package/dist/core/expressions/index.d.ts.map +1 -1
  363. package/dist/core/expressions/index.js +46 -45
  364. package/dist/core/expressions/index.js.map +1 -1
  365. package/dist/core/expressions/{magic-assignable-analyzer.d.ts → magic-proxy/magic-assignable-analyzer.d.ts} +5 -5
  366. package/dist/core/expressions/magic-proxy/magic-assignable-analyzer.d.ts.map +1 -0
  367. package/dist/core/expressions/{magic-assignable-analyzer.js → magic-proxy/magic-assignable-analyzer.js} +29 -24
  368. package/dist/core/expressions/magic-proxy/magic-assignable-analyzer.js.map +1 -0
  369. package/dist/core/expressions/{magic-proxy-analyzer.d.ts → magic-proxy/magic-proxy-analyzer.d.ts} +15 -68
  370. package/dist/core/expressions/magic-proxy/magic-proxy-analyzer.d.ts.map +1 -0
  371. package/dist/core/expressions/{magic-proxy-analyzer.js → magic-proxy/magic-proxy-analyzer.js} +45 -195
  372. package/dist/core/expressions/magic-proxy/magic-proxy-analyzer.js.map +1 -0
  373. package/dist/core/expressions/magic-proxy/magic-proxy-ast.d.ts +44 -0
  374. package/dist/core/expressions/magic-proxy/magic-proxy-ast.d.ts.map +1 -0
  375. package/dist/core/expressions/magic-proxy/magic-proxy-ast.js +175 -0
  376. package/dist/core/expressions/magic-proxy/magic-proxy-ast.js.map +1 -0
  377. package/dist/core/expressions/{magic-proxy-detector.d.ts → magic-proxy/magic-proxy-detector.d.ts} +7 -7
  378. package/dist/core/expressions/magic-proxy/magic-proxy-detector.d.ts.map +1 -0
  379. package/dist/core/expressions/{magic-proxy-detector.js → magic-proxy/magic-proxy-detector.js} +36 -28
  380. package/dist/core/expressions/magic-proxy/magic-proxy-detector.js.map +1 -0
  381. package/dist/core/expressions/magic-proxy/magic-proxy-types.d.ts +36 -0
  382. package/dist/core/expressions/magic-proxy/magic-proxy-types.d.ts.map +1 -0
  383. package/dist/core/expressions/magic-proxy/magic-proxy-types.js +8 -0
  384. package/dist/core/expressions/magic-proxy/magic-proxy-types.js.map +1 -0
  385. package/dist/core/expressions/magic-proxy/optionality-analysis.d.ts +54 -0
  386. package/dist/core/expressions/magic-proxy/optionality-analysis.d.ts.map +1 -0
  387. package/dist/core/expressions/magic-proxy/optionality-analysis.js +239 -0
  388. package/dist/core/expressions/magic-proxy/optionality-analysis.js.map +1 -0
  389. package/dist/core/expressions/magic-proxy/optionality-cel-generation.d.ts +51 -0
  390. package/dist/core/expressions/magic-proxy/optionality-cel-generation.d.ts.map +1 -0
  391. package/dist/core/expressions/magic-proxy/optionality-cel-generation.js +201 -0
  392. package/dist/core/expressions/magic-proxy/optionality-cel-generation.js.map +1 -0
  393. package/dist/core/expressions/magic-proxy/optionality-handler.d.ts +119 -0
  394. package/dist/core/expressions/magic-proxy/optionality-handler.d.ts.map +1 -0
  395. package/dist/core/expressions/magic-proxy/optionality-handler.js +321 -0
  396. package/dist/core/expressions/magic-proxy/optionality-handler.js.map +1 -0
  397. package/dist/core/expressions/magic-proxy/optionality-hydration.d.ts +84 -0
  398. package/dist/core/expressions/magic-proxy/optionality-hydration.d.ts.map +1 -0
  399. package/dist/core/expressions/magic-proxy/optionality-hydration.js +378 -0
  400. package/dist/core/expressions/magic-proxy/optionality-hydration.js.map +1 -0
  401. package/dist/core/expressions/magic-proxy/optionality-optional-chaining.d.ts +61 -0
  402. package/dist/core/expressions/magic-proxy/optionality-optional-chaining.d.ts.map +1 -0
  403. package/dist/core/expressions/magic-proxy/optionality-optional-chaining.js +218 -0
  404. package/dist/core/expressions/magic-proxy/optionality-optional-chaining.js.map +1 -0
  405. package/dist/core/expressions/magic-proxy/optionality-types.d.ts +206 -0
  406. package/dist/core/expressions/magic-proxy/optionality-types.d.ts.map +1 -0
  407. package/dist/core/expressions/magic-proxy/optionality-types.js +9 -0
  408. package/dist/core/expressions/magic-proxy/optionality-types.js.map +1 -0
  409. package/dist/core/expressions/validation/compile-time-checker.d.ts +74 -0
  410. package/dist/core/expressions/validation/compile-time-checker.d.ts.map +1 -0
  411. package/dist/core/expressions/{compile-time-validation.js → validation/compile-time-checker.js} +44 -91
  412. package/dist/core/expressions/validation/compile-time-checker.js.map +1 -0
  413. package/dist/core/expressions/validation/compile-time-errors.d.ts +70 -0
  414. package/dist/core/expressions/validation/compile-time-errors.d.ts.map +1 -0
  415. package/dist/core/expressions/validation/compile-time-errors.js +63 -0
  416. package/dist/core/expressions/validation/compile-time-errors.js.map +1 -0
  417. package/dist/core/expressions/validation/compile-time-types.d.ts +147 -0
  418. package/dist/core/expressions/validation/compile-time-types.d.ts.map +1 -0
  419. package/dist/core/expressions/validation/compile-time-types.js +8 -0
  420. package/dist/core/expressions/validation/compile-time-types.js.map +1 -0
  421. package/dist/core/expressions/validation/compile-time-validation.d.ts +13 -0
  422. package/dist/core/expressions/validation/compile-time-validation.d.ts.map +1 -0
  423. package/dist/core/expressions/validation/compile-time-validation.js +14 -0
  424. package/dist/core/expressions/validation/compile-time-validation.js.map +1 -0
  425. package/dist/core/expressions/validation/kubernetes-field-types.d.ts +35 -0
  426. package/dist/core/expressions/validation/kubernetes-field-types.d.ts.map +1 -0
  427. package/dist/core/expressions/validation/kubernetes-field-types.js +230 -0
  428. package/dist/core/expressions/validation/kubernetes-field-types.js.map +1 -0
  429. package/dist/core/expressions/validation/resource-field-utils.d.ts +69 -0
  430. package/dist/core/expressions/validation/resource-field-utils.d.ts.map +1 -0
  431. package/dist/core/expressions/validation/resource-field-utils.js +280 -0
  432. package/dist/core/expressions/validation/resource-field-utils.js.map +1 -0
  433. package/dist/core/expressions/{resource-validation.d.ts → validation/resource-validation-types.d.ts} +6 -63
  434. package/dist/core/expressions/validation/resource-validation-types.d.ts.map +1 -0
  435. package/dist/core/expressions/validation/resource-validation-types.js +69 -0
  436. package/dist/core/expressions/validation/resource-validation-types.js.map +1 -0
  437. package/dist/core/expressions/validation/resource-validation.d.ts +49 -0
  438. package/dist/core/expressions/validation/resource-validation.d.ts.map +1 -0
  439. package/dist/core/expressions/validation/resource-validation.js +288 -0
  440. package/dist/core/expressions/validation/resource-validation.js.map +1 -0
  441. package/dist/core/expressions/{type-inference.d.ts → validation/type-inference-types.d.ts} +34 -88
  442. package/dist/core/expressions/validation/type-inference-types.d.ts.map +1 -0
  443. package/dist/core/expressions/validation/type-inference-types.js +52 -0
  444. package/dist/core/expressions/validation/type-inference-types.js.map +1 -0
  445. package/dist/core/expressions/validation/type-inference.d.ts +86 -0
  446. package/dist/core/expressions/validation/type-inference.d.ts.map +1 -0
  447. package/dist/core/expressions/{type-inference.js → validation/type-inference.js} +66 -299
  448. package/dist/core/expressions/validation/type-inference.js.map +1 -0
  449. package/dist/core/expressions/{type-safety.d.ts → validation/type-safety.d.ts} +6 -5
  450. package/dist/core/expressions/validation/type-safety.d.ts.map +1 -0
  451. package/dist/core/expressions/{type-safety.js → validation/type-safety.js} +34 -19
  452. package/dist/core/expressions/validation/type-safety.js.map +1 -0
  453. package/dist/core/kubernetes/api.d.ts.map +1 -1
  454. package/dist/core/kubernetes/api.js +26 -18
  455. package/dist/core/kubernetes/api.js.map +1 -1
  456. package/dist/core/kubernetes/bun-api-client.d.ts +117 -0
  457. package/dist/core/kubernetes/bun-api-client.d.ts.map +1 -0
  458. package/dist/core/kubernetes/bun-api-client.js +183 -0
  459. package/dist/core/kubernetes/bun-api-client.js.map +1 -0
  460. package/dist/core/kubernetes/bun-http-library.d.ts +104 -0
  461. package/dist/core/kubernetes/bun-http-library.d.ts.map +1 -0
  462. package/dist/core/kubernetes/bun-http-library.js +240 -0
  463. package/dist/core/kubernetes/bun-http-library.js.map +1 -0
  464. package/dist/core/kubernetes/client-provider.d.ts +124 -35
  465. package/dist/core/kubernetes/client-provider.d.ts.map +1 -1
  466. package/dist/core/kubernetes/client-provider.js +209 -84
  467. package/dist/core/kubernetes/client-provider.js.map +1 -1
  468. package/dist/core/kubernetes/errors.d.ts +189 -0
  469. package/dist/core/kubernetes/errors.d.ts.map +1 -0
  470. package/dist/core/kubernetes/errors.js +298 -0
  471. package/dist/core/kubernetes/errors.js.map +1 -0
  472. package/dist/core/kubernetes/index.d.ts +20 -0
  473. package/dist/core/kubernetes/index.d.ts.map +1 -0
  474. package/dist/core/kubernetes/index.js +23 -0
  475. package/dist/core/kubernetes/index.js.map +1 -0
  476. package/dist/core/kubernetes/type-guards.d.ts +142 -0
  477. package/dist/core/kubernetes/type-guards.d.ts.map +1 -0
  478. package/dist/core/kubernetes/type-guards.js +151 -0
  479. package/dist/core/kubernetes/type-guards.js.map +1 -0
  480. package/dist/core/logging/config.d.ts.map +1 -1
  481. package/dist/core/logging/config.js +20 -4
  482. package/dist/core/logging/config.js.map +1 -1
  483. package/dist/core/logging/logger.d.ts +3 -3
  484. package/dist/core/logging/logger.d.ts.map +1 -1
  485. package/dist/core/logging/logger.js +19 -11
  486. package/dist/core/logging/logger.js.map +1 -1
  487. package/dist/core/logging/types.d.ts +13 -8
  488. package/dist/core/logging/types.d.ts.map +1 -1
  489. package/dist/core/metadata/index.d.ts +9 -0
  490. package/dist/core/metadata/index.d.ts.map +1 -0
  491. package/dist/core/metadata/index.js +9 -0
  492. package/dist/core/metadata/index.js.map +1 -0
  493. package/dist/core/metadata/resource-metadata.d.ts +116 -0
  494. package/dist/core/metadata/resource-metadata.d.ts.map +1 -0
  495. package/dist/core/metadata/resource-metadata.js +217 -0
  496. package/dist/core/metadata/resource-metadata.js.map +1 -0
  497. package/dist/core/proxy/create-resource.d.ts +50 -0
  498. package/dist/core/proxy/create-resource.d.ts.map +1 -0
  499. package/dist/core/proxy/create-resource.js +393 -0
  500. package/dist/core/proxy/create-resource.js.map +1 -0
  501. package/dist/core/proxy/index.d.ts +8 -0
  502. package/dist/core/proxy/index.d.ts.map +1 -0
  503. package/dist/core/proxy/index.js +7 -0
  504. package/dist/core/proxy/index.js.map +1 -0
  505. package/dist/core/proxy/known-status-fields.d.ts +27 -0
  506. package/dist/core/proxy/known-status-fields.d.ts.map +1 -0
  507. package/dist/core/proxy/known-status-fields.js +185 -0
  508. package/dist/core/proxy/known-status-fields.js.map +1 -0
  509. package/dist/core/readiness/evaluator-factories.d.ts +100 -0
  510. package/dist/core/readiness/evaluator-factories.d.ts.map +1 -0
  511. package/dist/core/readiness/evaluator-factories.js +168 -0
  512. package/dist/core/readiness/evaluator-factories.js.map +1 -0
  513. package/dist/core/readiness/evaluator.d.ts +21 -0
  514. package/dist/core/readiness/evaluator.d.ts.map +1 -0
  515. package/dist/core/readiness/evaluator.js +38 -0
  516. package/dist/core/readiness/evaluator.js.map +1 -0
  517. package/dist/core/readiness/index.d.ts +3 -0
  518. package/dist/core/readiness/index.d.ts.map +1 -1
  519. package/dist/core/readiness/index.js +2 -0
  520. package/dist/core/readiness/index.js.map +1 -1
  521. package/dist/core/readiness/registry.d.ts +3 -3
  522. package/dist/core/readiness/registry.d.ts.map +1 -1
  523. package/dist/core/readiness/registry.js +2 -0
  524. package/dist/core/readiness/registry.js.map +1 -1
  525. package/dist/core/references/cel-evaluator.d.ts +11 -0
  526. package/dist/core/references/cel-evaluator.d.ts.map +1 -1
  527. package/dist/core/references/cel-evaluator.js +77 -29
  528. package/dist/core/references/cel-evaluator.js.map +1 -1
  529. package/dist/core/references/cel.d.ts +66 -23
  530. package/dist/core/references/cel.d.ts.map +1 -1
  531. package/dist/core/references/cel.js +184 -117
  532. package/dist/core/references/cel.js.map +1 -1
  533. package/dist/core/references/external-refs.d.ts +39 -21
  534. package/dist/core/references/external-refs.d.ts.map +1 -1
  535. package/dist/core/references/external-refs.js +70 -30
  536. package/dist/core/references/external-refs.js.map +1 -1
  537. package/dist/core/references/index.d.ts +5 -4
  538. package/dist/core/references/index.d.ts.map +1 -1
  539. package/dist/core/references/index.js +6 -6
  540. package/dist/core/references/index.js.map +1 -1
  541. package/dist/core/references/resolver.d.ts +26 -3
  542. package/dist/core/references/resolver.d.ts.map +1 -1
  543. package/dist/core/references/resolver.js +322 -47
  544. package/dist/core/references/resolver.js.map +1 -1
  545. package/dist/core/references/schema-proxy.d.ts.map +1 -1
  546. package/dist/core/references/schema-proxy.js +105 -14
  547. package/dist/core/references/schema-proxy.js.map +1 -1
  548. package/dist/core/resources/factory-registry.d.ts +99 -0
  549. package/dist/core/resources/factory-registry.d.ts.map +1 -0
  550. package/dist/core/resources/factory-registry.js +166 -0
  551. package/dist/core/resources/factory-registry.js.map +1 -0
  552. package/dist/core/resources/id.d.ts +44 -0
  553. package/dist/core/resources/id.d.ts.map +1 -0
  554. package/dist/core/resources/id.js +78 -0
  555. package/dist/core/resources/id.js.map +1 -0
  556. package/dist/core/resources/index.d.ts +7 -0
  557. package/dist/core/resources/index.d.ts.map +1 -0
  558. package/dist/core/resources/index.js +6 -0
  559. package/dist/core/resources/index.js.map +1 -0
  560. package/dist/core/runtime-patches/crd-patcher.d.ts +30 -0
  561. package/dist/core/runtime-patches/crd-patcher.d.ts.map +1 -0
  562. package/dist/core/runtime-patches/crd-patcher.js +124 -0
  563. package/dist/core/runtime-patches/crd-patcher.js.map +1 -0
  564. package/dist/core/runtime-patches/crd-schema-fix.d.ts +145 -0
  565. package/dist/core/runtime-patches/crd-schema-fix.d.ts.map +1 -0
  566. package/dist/core/runtime-patches/crd-schema-fix.js +349 -0
  567. package/dist/core/runtime-patches/crd-schema-fix.js.map +1 -0
  568. package/dist/core/runtime-patches/index.d.ts +8 -0
  569. package/dist/core/runtime-patches/index.d.ts.map +1 -0
  570. package/dist/core/runtime-patches/index.js +8 -0
  571. package/dist/core/runtime-patches/index.js.map +1 -0
  572. package/dist/core/{evaluation → serialization}/cel-optimizer.d.ts +2 -2
  573. package/dist/core/serialization/cel-optimizer.d.ts.map +1 -0
  574. package/dist/core/{evaluation → serialization}/cel-optimizer.js +11 -23
  575. package/dist/core/serialization/cel-optimizer.js.map +1 -0
  576. package/dist/core/serialization/cel-references.d.ts +36 -0
  577. package/dist/core/serialization/cel-references.d.ts.map +1 -0
  578. package/dist/core/serialization/cel-references.js +183 -0
  579. package/dist/core/serialization/cel-references.js.map +1 -0
  580. package/dist/core/serialization/core.d.ts +168 -3
  581. package/dist/core/serialization/core.d.ts.map +1 -1
  582. package/dist/core/serialization/core.js +392 -691
  583. package/dist/core/serialization/core.js.map +1 -1
  584. package/dist/core/serialization/index.d.ts +3 -1
  585. package/dist/core/serialization/index.d.ts.map +1 -1
  586. package/dist/core/serialization/index.js +5 -1
  587. package/dist/core/serialization/index.js.map +1 -1
  588. package/dist/core/serialization/schema.d.ts +34 -3
  589. package/dist/core/serialization/schema.d.ts.map +1 -1
  590. package/dist/core/serialization/schema.js +141 -11
  591. package/dist/core/serialization/schema.js.map +1 -1
  592. package/dist/core/serialization/status-analysis-helpers.d.ts +68 -0
  593. package/dist/core/serialization/status-analysis-helpers.d.ts.map +1 -0
  594. package/dist/core/serialization/status-analysis-helpers.js +284 -0
  595. package/dist/core/serialization/status-analysis-helpers.js.map +1 -0
  596. package/dist/core/serialization/status-analysis-pipeline.d.ts +63 -0
  597. package/dist/core/serialization/status-analysis-pipeline.d.ts.map +1 -0
  598. package/dist/core/serialization/status-analysis-pipeline.js +419 -0
  599. package/dist/core/serialization/status-analysis-pipeline.js.map +1 -0
  600. package/dist/core/serialization/validation.d.ts.map +1 -1
  601. package/dist/core/serialization/validation.js +5 -3
  602. package/dist/core/serialization/validation.js.map +1 -1
  603. package/dist/core/serialization/yaml.d.ts +14 -3
  604. package/dist/core/serialization/yaml.d.ts.map +1 -1
  605. package/dist/core/serialization/yaml.js +453 -13
  606. package/dist/core/serialization/yaml.js.map +1 -1
  607. package/dist/core/types/common.d.ts +66 -9
  608. package/dist/core/types/common.d.ts.map +1 -1
  609. package/dist/core/types/deployment.d.ts +289 -81
  610. package/dist/core/types/deployment.d.ts.map +1 -1
  611. package/dist/core/types/deployment.js +1 -23
  612. package/dist/core/types/deployment.js.map +1 -1
  613. package/dist/core/types/index.d.ts +6 -10
  614. package/dist/core/types/index.d.ts.map +1 -1
  615. package/dist/core/types/index.js +32 -4
  616. package/dist/core/types/index.js.map +1 -1
  617. package/dist/core/types/kubernetes.d.ts +371 -19
  618. package/dist/core/types/kubernetes.d.ts.map +1 -1
  619. package/dist/core/types/kubernetes.js +11 -1
  620. package/dist/core/types/kubernetes.js.map +1 -1
  621. package/dist/core/types/references.d.ts +74 -4
  622. package/dist/core/types/references.d.ts.map +1 -1
  623. package/dist/core/types/references.js +3 -2
  624. package/dist/core/types/references.js.map +1 -1
  625. package/dist/core/types/resource-graph.d.ts +9 -33
  626. package/dist/core/types/resource-graph.d.ts.map +1 -1
  627. package/dist/core/types/resource-graph.js +2 -2
  628. package/dist/core/types/schema.d.ts +51 -0
  629. package/dist/core/types/schema.d.ts.map +1 -0
  630. package/dist/core/types/schema.js +9 -0
  631. package/dist/core/types/schema.js.map +1 -0
  632. package/dist/core/types/serialization.d.ts +105 -35
  633. package/dist/core/types/serialization.d.ts.map +1 -1
  634. package/dist/core/types/yaml.d.ts +0 -24
  635. package/dist/core/types/yaml.d.ts.map +1 -1
  636. package/dist/core/validation/cel-validator.d.ts +5 -5
  637. package/dist/core/validation/cel-validator.d.ts.map +1 -1
  638. package/dist/core/validation/cel-validator.js +83 -19
  639. package/dist/core/validation/cel-validator.js.map +1 -1
  640. package/dist/core/yaml/path-resolver.d.ts +21 -6
  641. package/dist/core/yaml/path-resolver.d.ts.map +1 -1
  642. package/dist/core/yaml/path-resolver.js +404 -38
  643. package/dist/core/yaml/path-resolver.js.map +1 -1
  644. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts +42 -0
  645. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts.map +1 -0
  646. package/dist/factories/apisix/compositions/apisix-bootstrap.js +267 -0
  647. package/dist/factories/apisix/compositions/apisix-bootstrap.js.map +1 -0
  648. package/dist/factories/apisix/compositions/index.d.ts +5 -0
  649. package/dist/factories/apisix/compositions/index.d.ts.map +1 -0
  650. package/dist/factories/apisix/compositions/index.js +5 -0
  651. package/dist/factories/apisix/compositions/index.js.map +1 -0
  652. package/dist/factories/apisix/index.d.ts +11 -0
  653. package/dist/factories/apisix/index.d.ts.map +1 -0
  654. package/dist/factories/apisix/index.js +11 -0
  655. package/dist/factories/apisix/index.js.map +1 -0
  656. package/dist/factories/apisix/resources/helm.d.ts +59 -0
  657. package/dist/factories/apisix/resources/helm.d.ts.map +1 -0
  658. package/dist/factories/apisix/resources/helm.js +148 -0
  659. package/dist/factories/apisix/resources/helm.js.map +1 -0
  660. package/dist/factories/apisix/resources/index.d.ts +5 -0
  661. package/dist/factories/apisix/resources/index.d.ts.map +1 -0
  662. package/dist/factories/apisix/resources/index.js +5 -0
  663. package/dist/factories/apisix/resources/index.js.map +1 -0
  664. package/dist/factories/apisix/types.d.ts +372 -0
  665. package/dist/factories/apisix/types.d.ts.map +1 -0
  666. package/dist/factories/apisix/types.js +88 -0
  667. package/dist/factories/apisix/types.js.map +1 -0
  668. package/dist/factories/apisix/utils/admin-credentials.d.ts +43 -0
  669. package/dist/factories/apisix/utils/admin-credentials.d.ts.map +1 -0
  670. package/dist/factories/apisix/utils/admin-credentials.js +82 -0
  671. package/dist/factories/apisix/utils/admin-credentials.js.map +1 -0
  672. package/dist/factories/apisix/utils/helm-values-mapper.d.ts +19 -0
  673. package/dist/factories/apisix/utils/helm-values-mapper.d.ts.map +1 -0
  674. package/dist/factories/apisix/utils/helm-values-mapper.js +106 -0
  675. package/dist/factories/apisix/utils/helm-values-mapper.js.map +1 -0
  676. package/dist/factories/apisix/utils/index.d.ts +6 -0
  677. package/dist/factories/apisix/utils/index.d.ts.map +1 -0
  678. package/dist/factories/apisix/utils/index.js +6 -0
  679. package/dist/factories/apisix/utils/index.js.map +1 -0
  680. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts +45 -0
  681. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts.map +1 -0
  682. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js +309 -0
  683. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js.map +1 -0
  684. package/dist/factories/cert-manager/compositions/index.d.ts +2 -0
  685. package/dist/factories/cert-manager/compositions/index.d.ts.map +1 -0
  686. package/dist/factories/cert-manager/compositions/index.js +2 -0
  687. package/dist/factories/cert-manager/compositions/index.js.map +1 -0
  688. package/dist/factories/cert-manager/index.d.ts +10 -0
  689. package/dist/factories/cert-manager/index.d.ts.map +1 -0
  690. package/dist/factories/cert-manager/index.js +19 -0
  691. package/dist/factories/cert-manager/index.js.map +1 -0
  692. package/dist/factories/cert-manager/resources/certificates.d.ts +39 -0
  693. package/dist/factories/cert-manager/resources/certificates.d.ts.map +1 -0
  694. package/dist/factories/cert-manager/resources/certificates.js +97 -0
  695. package/dist/factories/cert-manager/resources/certificates.js.map +1 -0
  696. package/dist/factories/cert-manager/resources/challenges.d.ts +113 -0
  697. package/dist/factories/cert-manager/resources/challenges.d.ts.map +1 -0
  698. package/dist/factories/cert-manager/resources/challenges.js +281 -0
  699. package/dist/factories/cert-manager/resources/challenges.js.map +1 -0
  700. package/dist/factories/cert-manager/resources/helm.d.ts +37 -0
  701. package/dist/factories/cert-manager/resources/helm.d.ts.map +1 -0
  702. package/dist/factories/cert-manager/resources/helm.js +253 -0
  703. package/dist/factories/cert-manager/resources/helm.js.map +1 -0
  704. package/dist/factories/cert-manager/resources/index.d.ts +5 -0
  705. package/dist/factories/cert-manager/resources/index.d.ts.map +1 -0
  706. package/dist/factories/cert-manager/resources/index.js +6 -0
  707. package/dist/factories/cert-manager/resources/index.js.map +1 -0
  708. package/dist/factories/cert-manager/resources/issuers.d.ts +79 -0
  709. package/dist/factories/cert-manager/resources/issuers.d.ts.map +1 -0
  710. package/dist/factories/cert-manager/resources/issuers.js +109 -0
  711. package/dist/factories/cert-manager/resources/issuers.js.map +1 -0
  712. package/dist/factories/cert-manager/types.d.ts +942 -0
  713. package/dist/factories/cert-manager/types.d.ts.map +1 -0
  714. package/dist/factories/cert-manager/types.js +178 -0
  715. package/dist/factories/cert-manager/types.js.map +1 -0
  716. package/dist/factories/cert-manager/utils/helm-values-mapper.d.ts +23 -0
  717. package/dist/factories/cert-manager/utils/helm-values-mapper.d.ts.map +1 -0
  718. package/dist/factories/cert-manager/utils/helm-values-mapper.js +116 -0
  719. package/dist/factories/cert-manager/utils/helm-values-mapper.js.map +1 -0
  720. package/dist/factories/cert-manager/utils/index.d.ts +2 -0
  721. package/dist/factories/cert-manager/utils/index.d.ts.map +1 -0
  722. package/dist/factories/cert-manager/utils/index.js +2 -0
  723. package/dist/factories/cert-manager/utils/index.js.map +1 -0
  724. package/dist/factories/cilium/compositions/cilium-bootstrap.d.ts +220 -0
  725. package/dist/factories/cilium/compositions/cilium-bootstrap.d.ts.map +1 -0
  726. package/dist/factories/cilium/compositions/cilium-bootstrap.js +321 -0
  727. package/dist/factories/cilium/compositions/cilium-bootstrap.js.map +1 -0
  728. package/dist/factories/cilium/compositions/index.d.ts +8 -0
  729. package/dist/factories/cilium/compositions/index.d.ts.map +1 -0
  730. package/dist/factories/cilium/compositions/index.js +11 -0
  731. package/dist/factories/cilium/compositions/index.js.map +1 -0
  732. package/dist/factories/cilium/errors.d.ts +41 -0
  733. package/dist/factories/cilium/errors.d.ts.map +1 -0
  734. package/dist/factories/cilium/errors.js +75 -0
  735. package/dist/factories/cilium/errors.js.map +1 -0
  736. package/dist/factories/cilium/index.d.ts +11 -0
  737. package/dist/factories/cilium/index.d.ts.map +1 -0
  738. package/dist/factories/cilium/index.js +23 -0
  739. package/dist/factories/cilium/index.js.map +1 -0
  740. package/dist/factories/cilium/resources/gateway.d.ts +72 -0
  741. package/dist/factories/cilium/resources/gateway.d.ts.map +1 -0
  742. package/dist/factories/cilium/resources/gateway.js +116 -0
  743. package/dist/factories/cilium/resources/gateway.js.map +1 -0
  744. package/dist/factories/cilium/resources/helm.d.ts +93 -0
  745. package/dist/factories/cilium/resources/helm.d.ts.map +1 -0
  746. package/dist/factories/cilium/resources/helm.js +369 -0
  747. package/dist/factories/cilium/resources/helm.js.map +1 -0
  748. package/dist/factories/cilium/resources/index.d.ts +10 -0
  749. package/dist/factories/cilium/resources/index.d.ts.map +1 -0
  750. package/dist/factories/cilium/resources/index.js +19 -0
  751. package/dist/factories/cilium/resources/index.js.map +1 -0
  752. package/dist/factories/cilium/resources/networking.d.ts +198 -0
  753. package/dist/factories/cilium/resources/networking.d.ts.map +1 -0
  754. package/dist/factories/cilium/resources/networking.js +482 -0
  755. package/dist/factories/cilium/resources/networking.js.map +1 -0
  756. package/dist/factories/cilium/types.d.ts +957 -0
  757. package/dist/factories/cilium/types.d.ts.map +1 -0
  758. package/dist/factories/cilium/types.js +10 -0
  759. package/dist/factories/cilium/types.js.map +1 -0
  760. package/dist/factories/external-dns/compositions/external-dns-bootstrap.d.ts +32 -0
  761. package/dist/factories/external-dns/compositions/external-dns-bootstrap.d.ts.map +1 -0
  762. package/dist/factories/external-dns/compositions/external-dns-bootstrap.js +146 -0
  763. package/dist/factories/external-dns/compositions/external-dns-bootstrap.js.map +1 -0
  764. package/dist/factories/external-dns/compositions/index.d.ts +2 -0
  765. package/dist/factories/external-dns/compositions/index.d.ts.map +1 -0
  766. package/dist/factories/external-dns/compositions/index.js +3 -0
  767. package/dist/factories/external-dns/compositions/index.js.map +1 -0
  768. package/dist/factories/external-dns/index.d.ts +10 -0
  769. package/dist/factories/external-dns/index.d.ts.map +1 -0
  770. package/dist/factories/external-dns/index.js +19 -0
  771. package/dist/factories/external-dns/index.js.map +1 -0
  772. package/dist/factories/external-dns/resources/dns-endpoint.d.ts +54 -0
  773. package/dist/factories/external-dns/resources/dns-endpoint.d.ts.map +1 -0
  774. package/dist/factories/external-dns/resources/dns-endpoint.js +53 -0
  775. package/dist/factories/external-dns/resources/dns-endpoint.js.map +1 -0
  776. package/dist/factories/external-dns/resources/helm.d.ts +57 -0
  777. package/dist/factories/external-dns/resources/helm.d.ts.map +1 -0
  778. package/dist/factories/external-dns/resources/helm.js +440 -0
  779. package/dist/factories/external-dns/resources/helm.js.map +1 -0
  780. package/dist/factories/external-dns/resources/index.d.ts +3 -0
  781. package/dist/factories/external-dns/resources/index.d.ts.map +1 -0
  782. package/dist/factories/external-dns/resources/index.js +4 -0
  783. package/dist/factories/external-dns/resources/index.js.map +1 -0
  784. package/dist/factories/external-dns/types.d.ts +180 -0
  785. package/dist/factories/external-dns/types.d.ts.map +1 -0
  786. package/dist/factories/external-dns/types.js +39 -0
  787. package/dist/factories/external-dns/types.js.map +1 -0
  788. package/dist/factories/flux/git-repository.d.ts +14 -4
  789. package/dist/factories/flux/git-repository.d.ts.map +1 -1
  790. package/dist/factories/flux/git-repository.js +33 -0
  791. package/dist/factories/flux/git-repository.js.map +1 -1
  792. package/dist/factories/flux/kustomize/kustomization.d.ts +2 -0
  793. package/dist/factories/flux/kustomize/kustomization.d.ts.map +1 -1
  794. package/dist/factories/flux/kustomize/kustomization.js.map +1 -1
  795. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts +1 -1
  796. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts.map +1 -1
  797. package/dist/factories/flux/kustomize/readiness-evaluators.js +3 -1
  798. package/dist/factories/flux/kustomize/readiness-evaluators.js.map +1 -1
  799. package/dist/factories/helm/helm-release.d.ts +13 -0
  800. package/dist/factories/helm/helm-release.d.ts.map +1 -1
  801. package/dist/factories/helm/helm-release.js +35 -16
  802. package/dist/factories/helm/helm-release.js.map +1 -1
  803. package/dist/factories/helm/helm-repository.d.ts +26 -1
  804. package/dist/factories/helm/helm-repository.d.ts.map +1 -1
  805. package/dist/factories/helm/helm-repository.js +30 -17
  806. package/dist/factories/helm/helm-repository.js.map +1 -1
  807. package/dist/factories/helm/index.d.ts +10 -4
  808. package/dist/factories/helm/index.d.ts.map +1 -1
  809. package/dist/factories/helm/index.js +10 -4
  810. package/dist/factories/helm/index.js.map +1 -1
  811. package/dist/factories/helm/readiness-evaluators.d.ts +21 -8
  812. package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
  813. package/dist/factories/helm/readiness-evaluators.js +98 -82
  814. package/dist/factories/helm/readiness-evaluators.js.map +1 -1
  815. package/dist/factories/helm/types.d.ts +37 -3
  816. package/dist/factories/helm/types.d.ts.map +1 -1
  817. package/dist/factories/index.d.ts +8 -3
  818. package/dist/factories/index.d.ts.map +1 -1
  819. package/dist/factories/index.js +27 -4
  820. package/dist/factories/index.js.map +1 -1
  821. package/dist/factories/kro/kro-crd.d.ts.map +1 -1
  822. package/dist/factories/kro/kro-crd.js +3 -2
  823. package/dist/factories/kro/kro-crd.js.map +1 -1
  824. package/dist/factories/kro/kro-custom-resource.d.ts.map +1 -1
  825. package/dist/factories/kro/kro-custom-resource.js +3 -2
  826. package/dist/factories/kro/kro-custom-resource.js.map +1 -1
  827. package/dist/factories/kro/resource-graph-definition.d.ts +29 -1
  828. package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -1
  829. package/dist/factories/kro/resource-graph-definition.js +26 -8
  830. package/dist/factories/kro/resource-graph-definition.js.map +1 -1
  831. package/dist/factories/kubernetes/admission/mutating-webhook-configuration.d.ts +3 -2
  832. package/dist/factories/kubernetes/admission/mutating-webhook-configuration.d.ts.map +1 -1
  833. package/dist/factories/kubernetes/admission/mutating-webhook-configuration.js +3 -2
  834. package/dist/factories/kubernetes/admission/mutating-webhook-configuration.js.map +1 -1
  835. package/dist/factories/kubernetes/admission/validating-webhook-configuration.d.ts +3 -2
  836. package/dist/factories/kubernetes/admission/validating-webhook-configuration.d.ts.map +1 -1
  837. package/dist/factories/kubernetes/admission/validating-webhook-configuration.js +3 -2
  838. package/dist/factories/kubernetes/admission/validating-webhook-configuration.js.map +1 -1
  839. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts +3 -1
  840. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts.map +1 -1
  841. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js.map +1 -1
  842. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.d.ts +3 -1
  843. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.d.ts.map +1 -1
  844. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js +2 -1
  845. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js.map +1 -1
  846. package/dist/factories/kubernetes/certificates/certificate-signing-request.d.ts +3 -1
  847. package/dist/factories/kubernetes/certificates/certificate-signing-request.d.ts.map +1 -1
  848. package/dist/factories/kubernetes/certificates/certificate-signing-request.js.map +1 -1
  849. package/dist/factories/kubernetes/config/config-map.d.ts +17 -1
  850. package/dist/factories/kubernetes/config/config-map.d.ts.map +1 -1
  851. package/dist/factories/kubernetes/config/config-map.js +25 -7
  852. package/dist/factories/kubernetes/config/config-map.js.map +1 -1
  853. package/dist/factories/kubernetes/config/secret.d.ts +23 -1
  854. package/dist/factories/kubernetes/config/secret.d.ts.map +1 -1
  855. package/dist/factories/kubernetes/config/secret.js +31 -7
  856. package/dist/factories/kubernetes/config/secret.js.map +1 -1
  857. package/dist/factories/kubernetes/coordination/lease.d.ts +3 -1
  858. package/dist/factories/kubernetes/coordination/lease.d.ts.map +1 -1
  859. package/dist/factories/kubernetes/coordination/lease.js +2 -1
  860. package/dist/factories/kubernetes/coordination/lease.js.map +1 -1
  861. package/dist/factories/kubernetes/core/component-status.d.ts +3 -1
  862. package/dist/factories/kubernetes/core/component-status.d.ts.map +1 -1
  863. package/dist/factories/kubernetes/core/component-status.js.map +1 -1
  864. package/dist/factories/kubernetes/core/namespace.d.ts +10 -0
  865. package/dist/factories/kubernetes/core/namespace.d.ts.map +1 -1
  866. package/dist/factories/kubernetes/core/namespace.js +13 -2
  867. package/dist/factories/kubernetes/core/namespace.js.map +1 -1
  868. package/dist/factories/kubernetes/core/node.d.ts +3 -1
  869. package/dist/factories/kubernetes/core/node.d.ts.map +1 -1
  870. package/dist/factories/kubernetes/core/node.js.map +1 -1
  871. package/dist/factories/kubernetes/core/pod.d.ts +3 -1
  872. package/dist/factories/kubernetes/core/pod.d.ts.map +1 -1
  873. package/dist/factories/kubernetes/core/pod.js +2 -1
  874. package/dist/factories/kubernetes/core/pod.js.map +1 -1
  875. package/dist/factories/kubernetes/extensions/custom-resource-definition.d.ts +3 -1
  876. package/dist/factories/kubernetes/extensions/custom-resource-definition.d.ts.map +1 -1
  877. package/dist/factories/kubernetes/extensions/custom-resource-definition.js.map +1 -1
  878. package/dist/factories/kubernetes/extensions/custom-resource.d.ts +1 -0
  879. package/dist/factories/kubernetes/extensions/custom-resource.d.ts.map +1 -1
  880. package/dist/factories/kubernetes/extensions/custom-resource.js +5 -1
  881. package/dist/factories/kubernetes/extensions/custom-resource.js.map +1 -1
  882. package/dist/factories/kubernetes/index.d.ts +0 -2
  883. package/dist/factories/kubernetes/index.d.ts.map +1 -1
  884. package/dist/factories/kubernetes/index.js +3 -8
  885. package/dist/factories/kubernetes/index.js.map +1 -1
  886. package/dist/factories/kubernetes/networking/endpoint-slice.d.ts +3 -1
  887. package/dist/factories/kubernetes/networking/endpoint-slice.d.ts.map +1 -1
  888. package/dist/factories/kubernetes/networking/endpoint-slice.js.map +1 -1
  889. package/dist/factories/kubernetes/networking/endpoints.d.ts +3 -1
  890. package/dist/factories/kubernetes/networking/endpoints.d.ts.map +1 -1
  891. package/dist/factories/kubernetes/networking/endpoints.js +3 -2
  892. package/dist/factories/kubernetes/networking/endpoints.js.map +1 -1
  893. package/dist/factories/kubernetes/networking/ingress-class.d.ts +3 -1
  894. package/dist/factories/kubernetes/networking/ingress-class.d.ts.map +1 -1
  895. package/dist/factories/kubernetes/networking/ingress-class.js +2 -7
  896. package/dist/factories/kubernetes/networking/ingress-class.js.map +1 -1
  897. package/dist/factories/kubernetes/networking/ingress.d.ts +15 -2
  898. package/dist/factories/kubernetes/networking/ingress.d.ts.map +1 -1
  899. package/dist/factories/kubernetes/networking/ingress.js +64 -11
  900. package/dist/factories/kubernetes/networking/ingress.js.map +1 -1
  901. package/dist/factories/kubernetes/networking/network-policy.d.ts +3 -1
  902. package/dist/factories/kubernetes/networking/network-policy.d.ts.map +1 -1
  903. package/dist/factories/kubernetes/networking/network-policy.js +2 -8
  904. package/dist/factories/kubernetes/networking/network-policy.js.map +1 -1
  905. package/dist/factories/kubernetes/networking/service.d.ts +14 -1
  906. package/dist/factories/kubernetes/networking/service.d.ts.map +1 -1
  907. package/dist/factories/kubernetes/networking/service.js +28 -3
  908. package/dist/factories/kubernetes/networking/service.js.map +1 -1
  909. package/dist/factories/kubernetes/policy/limit-range.d.ts +3 -1
  910. package/dist/factories/kubernetes/policy/limit-range.d.ts.map +1 -1
  911. package/dist/factories/kubernetes/policy/limit-range.js +2 -8
  912. package/dist/factories/kubernetes/policy/limit-range.js.map +1 -1
  913. package/dist/factories/kubernetes/policy/pod-disruption-budget.d.ts +3 -1
  914. package/dist/factories/kubernetes/policy/pod-disruption-budget.d.ts.map +1 -1
  915. package/dist/factories/kubernetes/policy/pod-disruption-budget.js +3 -2
  916. package/dist/factories/kubernetes/policy/pod-disruption-budget.js.map +1 -1
  917. package/dist/factories/kubernetes/policy/resource-quota.d.ts +3 -1
  918. package/dist/factories/kubernetes/policy/resource-quota.d.ts.map +1 -1
  919. package/dist/factories/kubernetes/policy/resource-quota.js +3 -2
  920. package/dist/factories/kubernetes/policy/resource-quota.js.map +1 -1
  921. package/dist/factories/kubernetes/rbac/cluster-role-binding.d.ts +20 -1
  922. package/dist/factories/kubernetes/rbac/cluster-role-binding.d.ts.map +1 -1
  923. package/dist/factories/kubernetes/rbac/cluster-role-binding.js +19 -8
  924. package/dist/factories/kubernetes/rbac/cluster-role-binding.js.map +1 -1
  925. package/dist/factories/kubernetes/rbac/cluster-role.d.ts +3 -1
  926. package/dist/factories/kubernetes/rbac/cluster-role.d.ts.map +1 -1
  927. package/dist/factories/kubernetes/rbac/cluster-role.js +2 -8
  928. package/dist/factories/kubernetes/rbac/cluster-role.js.map +1 -1
  929. package/dist/factories/kubernetes/rbac/role-binding.d.ts +3 -1
  930. package/dist/factories/kubernetes/rbac/role-binding.d.ts.map +1 -1
  931. package/dist/factories/kubernetes/rbac/role-binding.js +2 -8
  932. package/dist/factories/kubernetes/rbac/role-binding.js.map +1 -1
  933. package/dist/factories/kubernetes/rbac/role.d.ts +3 -1
  934. package/dist/factories/kubernetes/rbac/role.d.ts.map +1 -1
  935. package/dist/factories/kubernetes/rbac/role.js +2 -8
  936. package/dist/factories/kubernetes/rbac/role.js.map +1 -1
  937. package/dist/factories/kubernetes/rbac/service-account.d.ts +3 -1
  938. package/dist/factories/kubernetes/rbac/service-account.d.ts.map +1 -1
  939. package/dist/factories/kubernetes/rbac/service-account.js +2 -8
  940. package/dist/factories/kubernetes/rbac/service-account.js.map +1 -1
  941. package/dist/factories/kubernetes/scheduling/priority-class.d.ts +3 -1
  942. package/dist/factories/kubernetes/scheduling/priority-class.d.ts.map +1 -1
  943. package/dist/factories/kubernetes/scheduling/priority-class.js +2 -7
  944. package/dist/factories/kubernetes/scheduling/priority-class.js.map +1 -1
  945. package/dist/factories/kubernetes/scheduling/runtime-class.d.ts +3 -2
  946. package/dist/factories/kubernetes/scheduling/runtime-class.d.ts.map +1 -1
  947. package/dist/factories/kubernetes/scheduling/runtime-class.js +2 -1
  948. package/dist/factories/kubernetes/scheduling/runtime-class.js.map +1 -1
  949. package/dist/factories/kubernetes/storage/csi-driver.d.ts +3 -1
  950. package/dist/factories/kubernetes/storage/csi-driver.d.ts.map +1 -1
  951. package/dist/factories/kubernetes/storage/csi-driver.js +2 -7
  952. package/dist/factories/kubernetes/storage/csi-driver.js.map +1 -1
  953. package/dist/factories/kubernetes/storage/csi-node.d.ts +3 -1
  954. package/dist/factories/kubernetes/storage/csi-node.d.ts.map +1 -1
  955. package/dist/factories/kubernetes/storage/csi-node.js +2 -1
  956. package/dist/factories/kubernetes/storage/csi-node.js.map +1 -1
  957. package/dist/factories/kubernetes/storage/persistent-volume-claim.d.ts +14 -1
  958. package/dist/factories/kubernetes/storage/persistent-volume-claim.d.ts.map +1 -1
  959. package/dist/factories/kubernetes/storage/persistent-volume-claim.js +13 -1
  960. package/dist/factories/kubernetes/storage/persistent-volume-claim.js.map +1 -1
  961. package/dist/factories/kubernetes/storage/persistent-volume.d.ts +3 -1
  962. package/dist/factories/kubernetes/storage/persistent-volume.d.ts.map +1 -1
  963. package/dist/factories/kubernetes/storage/persistent-volume.js +3 -2
  964. package/dist/factories/kubernetes/storage/persistent-volume.js.map +1 -1
  965. package/dist/factories/kubernetes/storage/storage-class.d.ts +3 -1
  966. package/dist/factories/kubernetes/storage/storage-class.d.ts.map +1 -1
  967. package/dist/factories/kubernetes/storage/storage-class.js +2 -8
  968. package/dist/factories/kubernetes/storage/storage-class.js.map +1 -1
  969. package/dist/factories/kubernetes/storage/volume-attachment.d.ts +3 -1
  970. package/dist/factories/kubernetes/storage/volume-attachment.d.ts.map +1 -1
  971. package/dist/factories/kubernetes/storage/volume-attachment.js +10 -0
  972. package/dist/factories/kubernetes/storage/volume-attachment.js.map +1 -1
  973. package/dist/factories/kubernetes/workloads/cron-job.d.ts +14 -1
  974. package/dist/factories/kubernetes/workloads/cron-job.d.ts.map +1 -1
  975. package/dist/factories/kubernetes/workloads/cron-job.js +14 -2
  976. package/dist/factories/kubernetes/workloads/cron-job.js.map +1 -1
  977. package/dist/factories/kubernetes/workloads/daemon-set.d.ts +14 -1
  978. package/dist/factories/kubernetes/workloads/daemon-set.d.ts.map +1 -1
  979. package/dist/factories/kubernetes/workloads/daemon-set.js +13 -1
  980. package/dist/factories/kubernetes/workloads/daemon-set.js.map +1 -1
  981. package/dist/factories/kubernetes/workloads/deployment.d.ts +14 -1
  982. package/dist/factories/kubernetes/workloads/deployment.d.ts.map +1 -1
  983. package/dist/factories/kubernetes/workloads/deployment.js +35 -5
  984. package/dist/factories/kubernetes/workloads/deployment.js.map +1 -1
  985. package/dist/factories/kubernetes/workloads/job.d.ts +14 -1
  986. package/dist/factories/kubernetes/workloads/job.d.ts.map +1 -1
  987. package/dist/factories/kubernetes/workloads/job.js +19 -2
  988. package/dist/factories/kubernetes/workloads/job.js.map +1 -1
  989. package/dist/factories/kubernetes/workloads/replica-set.d.ts +3 -1
  990. package/dist/factories/kubernetes/workloads/replica-set.d.ts.map +1 -1
  991. package/dist/factories/kubernetes/workloads/replica-set.js +2 -1
  992. package/dist/factories/kubernetes/workloads/replica-set.js.map +1 -1
  993. package/dist/factories/kubernetes/workloads/replication-controller.d.ts +3 -1
  994. package/dist/factories/kubernetes/workloads/replication-controller.d.ts.map +1 -1
  995. package/dist/factories/kubernetes/workloads/replication-controller.js +3 -2
  996. package/dist/factories/kubernetes/workloads/replication-controller.js.map +1 -1
  997. package/dist/factories/kubernetes/workloads/stateful-set.d.ts +14 -1
  998. package/dist/factories/kubernetes/workloads/stateful-set.d.ts.map +1 -1
  999. package/dist/factories/kubernetes/workloads/stateful-set.js +22 -2
  1000. package/dist/factories/kubernetes/workloads/stateful-set.js.map +1 -1
  1001. package/dist/factories/kubernetes/yaml/conflict-handler.d.ts +23 -0
  1002. package/dist/factories/kubernetes/yaml/conflict-handler.d.ts.map +1 -0
  1003. package/dist/factories/kubernetes/yaml/conflict-handler.js +83 -0
  1004. package/dist/factories/kubernetes/yaml/conflict-handler.js.map +1 -0
  1005. package/dist/factories/kubernetes/yaml/yaml-directory.d.ts +6 -11
  1006. package/dist/factories/kubernetes/yaml/yaml-directory.d.ts.map +1 -1
  1007. package/dist/factories/kubernetes/yaml/yaml-directory.js +10 -75
  1008. package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -1
  1009. package/dist/factories/kubernetes/yaml/yaml-file.d.ts +72 -13
  1010. package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -1
  1011. package/dist/factories/kubernetes/yaml/yaml-file.js +271 -91
  1012. package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -1
  1013. package/dist/factories/pebble/compositions/index.d.ts +2 -0
  1014. package/dist/factories/pebble/compositions/index.d.ts.map +1 -0
  1015. package/dist/factories/pebble/compositions/index.js +3 -0
  1016. package/dist/factories/pebble/compositions/index.js.map +1 -0
  1017. package/dist/factories/pebble/compositions/pebble-bootstrap.d.ts +56 -0
  1018. package/dist/factories/pebble/compositions/pebble-bootstrap.d.ts.map +1 -0
  1019. package/dist/factories/pebble/compositions/pebble-bootstrap.js +95 -0
  1020. package/dist/factories/pebble/compositions/pebble-bootstrap.js.map +1 -0
  1021. package/dist/factories/pebble/index.d.ts +10 -0
  1022. package/dist/factories/pebble/index.d.ts.map +1 -0
  1023. package/dist/factories/pebble/index.js +19 -0
  1024. package/dist/factories/pebble/index.js.map +1 -0
  1025. package/dist/factories/pebble/resources/helm.d.ts +99 -0
  1026. package/dist/factories/pebble/resources/helm.d.ts.map +1 -0
  1027. package/dist/factories/pebble/resources/helm.js +148 -0
  1028. package/dist/factories/pebble/resources/helm.js.map +1 -0
  1029. package/dist/factories/pebble/resources/index.d.ts +2 -0
  1030. package/dist/factories/pebble/resources/index.d.ts.map +1 -0
  1031. package/dist/factories/pebble/resources/index.js +3 -0
  1032. package/dist/factories/pebble/resources/index.js.map +1 -0
  1033. package/dist/factories/pebble/types.d.ts +184 -0
  1034. package/dist/factories/pebble/types.d.ts.map +1 -0
  1035. package/dist/factories/pebble/types.js +23 -0
  1036. package/dist/factories/pebble/types.js.map +1 -0
  1037. package/dist/factories/pebble/utils/helm-values-mapper.d.ts +21 -0
  1038. package/dist/factories/pebble/utils/helm-values-mapper.d.ts.map +1 -0
  1039. package/dist/factories/pebble/utils/helm-values-mapper.js +96 -0
  1040. package/dist/factories/pebble/utils/helm-values-mapper.js.map +1 -0
  1041. package/dist/factories/shared.d.ts +12 -54
  1042. package/dist/factories/shared.d.ts.map +1 -1
  1043. package/dist/factories/shared.js +10 -450
  1044. package/dist/factories/shared.js.map +1 -1
  1045. package/dist/factories/simple/autoscaling/horizontal-pod-autoscaler.d.ts +11 -0
  1046. package/dist/factories/simple/autoscaling/horizontal-pod-autoscaler.d.ts.map +1 -1
  1047. package/dist/factories/simple/autoscaling/horizontal-pod-autoscaler.js +12 -0
  1048. package/dist/factories/simple/autoscaling/horizontal-pod-autoscaler.js.map +1 -1
  1049. package/dist/factories/simple/compositions/web-service.d.ts +35 -0
  1050. package/dist/factories/simple/compositions/web-service.d.ts.map +1 -0
  1051. package/dist/{core/composition/composition.js → factories/simple/compositions/web-service.js} +15 -2
  1052. package/dist/factories/simple/compositions/web-service.js.map +1 -0
  1053. package/dist/factories/simple/config/config-map.d.ts +18 -2
  1054. package/dist/factories/simple/config/config-map.d.ts.map +1 -1
  1055. package/dist/factories/simple/config/config-map.js +14 -0
  1056. package/dist/factories/simple/config/config-map.js.map +1 -1
  1057. package/dist/factories/simple/config/secret.d.ts +22 -2
  1058. package/dist/factories/simple/config/secret.d.ts.map +1 -1
  1059. package/dist/factories/simple/config/secret.js +39 -3
  1060. package/dist/factories/simple/config/secret.js.map +1 -1
  1061. package/dist/factories/simple/helm/index.d.ts +10 -0
  1062. package/dist/factories/simple/helm/index.d.ts.map +1 -1
  1063. package/dist/factories/simple/helm/index.js +10 -0
  1064. package/dist/factories/simple/helm/index.js.map +1 -1
  1065. package/dist/factories/simple/index.d.ts +1 -1
  1066. package/dist/factories/simple/networking/ingress.d.ts +14 -2
  1067. package/dist/factories/simple/networking/ingress.d.ts.map +1 -1
  1068. package/dist/factories/simple/networking/ingress.js +12 -0
  1069. package/dist/factories/simple/networking/ingress.js.map +1 -1
  1070. package/dist/factories/simple/networking/network-policy.d.ts +11 -1
  1071. package/dist/factories/simple/networking/network-policy.d.ts.map +1 -1
  1072. package/dist/factories/simple/networking/network-policy.js +10 -0
  1073. package/dist/factories/simple/networking/network-policy.js.map +1 -1
  1074. package/dist/factories/simple/networking/service.d.ts +10 -0
  1075. package/dist/factories/simple/networking/service.d.ts.map +1 -1
  1076. package/dist/factories/simple/networking/service.js +10 -0
  1077. package/dist/factories/simple/networking/service.js.map +1 -1
  1078. package/dist/factories/simple/storage/persistent-volume-claim.d.ts +10 -0
  1079. package/dist/factories/simple/storage/persistent-volume-claim.d.ts.map +1 -1
  1080. package/dist/factories/simple/storage/persistent-volume-claim.js +11 -0
  1081. package/dist/factories/simple/storage/persistent-volume-claim.js.map +1 -1
  1082. package/dist/factories/simple/storage/persistent-volume.d.ts +11 -0
  1083. package/dist/factories/simple/storage/persistent-volume.d.ts.map +1 -1
  1084. package/dist/factories/simple/storage/persistent-volume.js +12 -0
  1085. package/dist/factories/simple/storage/persistent-volume.js.map +1 -1
  1086. package/dist/factories/simple/types.d.ts +21 -1
  1087. package/dist/factories/simple/types.d.ts.map +1 -1
  1088. package/dist/factories/simple/workloads/cron-job.d.ts +10 -0
  1089. package/dist/factories/simple/workloads/cron-job.d.ts.map +1 -1
  1090. package/dist/factories/simple/workloads/cron-job.js +11 -0
  1091. package/dist/factories/simple/workloads/cron-job.js.map +1 -1
  1092. package/dist/factories/simple/workloads/daemon-set.d.ts +9 -0
  1093. package/dist/factories/simple/workloads/daemon-set.d.ts.map +1 -1
  1094. package/dist/factories/simple/workloads/daemon-set.js +9 -0
  1095. package/dist/factories/simple/workloads/daemon-set.js.map +1 -1
  1096. package/dist/factories/simple/workloads/deployment.d.ts +11 -1
  1097. package/dist/factories/simple/workloads/deployment.d.ts.map +1 -1
  1098. package/dist/factories/simple/workloads/deployment.js +19 -9
  1099. package/dist/factories/simple/workloads/deployment.js.map +1 -1
  1100. package/dist/factories/simple/workloads/job.d.ts +10 -0
  1101. package/dist/factories/simple/workloads/job.d.ts.map +1 -1
  1102. package/dist/factories/simple/workloads/job.js +11 -0
  1103. package/dist/factories/simple/workloads/job.js.map +1 -1
  1104. package/dist/factories/simple/workloads/stateful-set.d.ts +11 -0
  1105. package/dist/factories/simple/workloads/stateful-set.d.ts.map +1 -1
  1106. package/dist/factories/simple/workloads/stateful-set.js +12 -0
  1107. package/dist/factories/simple/workloads/stateful-set.js.map +1 -1
  1108. package/dist/factories/simple/yaml/index.d.ts +8 -0
  1109. package/dist/factories/simple/yaml/index.d.ts.map +1 -1
  1110. package/dist/factories/simple/yaml/index.js +8 -0
  1111. package/dist/factories/simple/yaml/index.js.map +1 -1
  1112. package/dist/index.d.ts +105 -6
  1113. package/dist/index.d.ts.map +1 -1
  1114. package/dist/index.js +115 -42
  1115. package/dist/index.js.map +1 -1
  1116. package/dist/shared/brands.d.ts +32 -0
  1117. package/dist/shared/brands.d.ts.map +1 -0
  1118. package/dist/shared/brands.js +32 -0
  1119. package/dist/shared/brands.js.map +1 -0
  1120. package/dist/utils/helpers.d.ts +31 -57
  1121. package/dist/utils/helpers.d.ts.map +1 -1
  1122. package/dist/utils/helpers.js +47 -428
  1123. package/dist/utils/helpers.js.map +1 -1
  1124. package/dist/utils/index.d.ts +5 -4
  1125. package/dist/utils/index.d.ts.map +1 -1
  1126. package/dist/utils/index.js +8 -6
  1127. package/dist/utils/index.js.map +1 -1
  1128. package/dist/utils/string.d.ts +31 -0
  1129. package/dist/utils/string.d.ts.map +1 -0
  1130. package/dist/utils/string.js +82 -0
  1131. package/dist/utils/string.js.map +1 -0
  1132. package/dist/utils/type-guards.d.ts +20 -6
  1133. package/dist/utils/type-guards.d.ts.map +1 -1
  1134. package/dist/utils/type-guards.js +78 -20
  1135. package/dist/utils/type-guards.js.map +1 -1
  1136. package/package.json +66 -16
  1137. package/dist/core/composition/composition.d.ts +0 -10
  1138. package/dist/core/composition/composition.d.ts.map +0 -1
  1139. package/dist/core/composition/composition.js.map +0 -1
  1140. package/dist/core/composition/typekro-runtime/index.d.ts +0 -3
  1141. package/dist/core/composition/typekro-runtime/index.d.ts.map +0 -1
  1142. package/dist/core/composition/typekro-runtime/index.js.map +0 -1
  1143. package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts.map +0 -1
  1144. package/dist/core/composition/typekro-runtime/typekro-runtime.js +0 -99
  1145. package/dist/core/composition/typekro-runtime/typekro-runtime.js.map +0 -1
  1146. package/dist/core/composition/typekro-runtime/types.d.ts +0 -16
  1147. package/dist/core/composition/typekro-runtime/types.d.ts.map +0 -1
  1148. package/dist/core/composition/typekro-runtime/types.js.map +0 -1
  1149. package/dist/core/composition/types.d.ts +0 -27
  1150. package/dist/core/composition/types.d.ts.map +0 -1
  1151. package/dist/core/composition/types.js +0 -8
  1152. package/dist/core/composition/types.js.map +0 -1
  1153. package/dist/core/dependencies/type-guards.d.ts +0 -17
  1154. package/dist/core/dependencies/type-guards.d.ts.map +0 -1
  1155. package/dist/core/dependencies/type-guards.js +0 -40
  1156. package/dist/core/dependencies/type-guards.js.map +0 -1
  1157. package/dist/core/deployment/deployment-strategies.d.ts +0 -12
  1158. package/dist/core/deployment/deployment-strategies.d.ts.map +0 -1
  1159. package/dist/core/deployment/deployment-strategies.js +0 -11
  1160. package/dist/core/deployment/deployment-strategies.js.map +0 -1
  1161. package/dist/core/deployment/event-streamer.d.ts +0 -112
  1162. package/dist/core/deployment/event-streamer.d.ts.map +0 -1
  1163. package/dist/core/deployment/event-streamer.js +0 -348
  1164. package/dist/core/deployment/event-streamer.js.map +0 -1
  1165. package/dist/core/direct-deployment.d.ts +0 -8
  1166. package/dist/core/direct-deployment.d.ts.map +0 -1
  1167. package/dist/core/direct-deployment.js +0 -9
  1168. package/dist/core/direct-deployment.js.map +0 -1
  1169. package/dist/core/evaluation/cel-optimizer.d.ts.map +0 -1
  1170. package/dist/core/evaluation/cel-optimizer.js.map +0 -1
  1171. package/dist/core/expressions/analyzer.d.ts +0 -584
  1172. package/dist/core/expressions/analyzer.d.ts.map +0 -1
  1173. package/dist/core/expressions/analyzer.js +0 -2956
  1174. package/dist/core/expressions/analyzer.js.map +0 -1
  1175. package/dist/core/expressions/cache.d.ts.map +0 -1
  1176. package/dist/core/expressions/cache.js.map +0 -1
  1177. package/dist/core/expressions/cel-conversion-engine.d.ts.map +0 -1
  1178. package/dist/core/expressions/cel-conversion-engine.js.map +0 -1
  1179. package/dist/core/expressions/compile-time-validation.d.ts +0 -270
  1180. package/dist/core/expressions/compile-time-validation.d.ts.map +0 -1
  1181. package/dist/core/expressions/compile-time-validation.js.map +0 -1
  1182. package/dist/core/expressions/composition-integration.d.ts +0 -315
  1183. package/dist/core/expressions/composition-integration.d.ts.map +0 -1
  1184. package/dist/core/expressions/composition-integration.js +0 -936
  1185. package/dist/core/expressions/composition-integration.js.map +0 -1
  1186. package/dist/core/expressions/conditional-expression-processor.d.ts.map +0 -1
  1187. package/dist/core/expressions/conditional-expression-processor.js.map +0 -1
  1188. package/dist/core/expressions/conditional-integration.d.ts.map +0 -1
  1189. package/dist/core/expressions/conditional-integration.js.map +0 -1
  1190. package/dist/core/expressions/conditional-validation.d.ts +0 -181
  1191. package/dist/core/expressions/conditional-validation.d.ts.map +0 -1
  1192. package/dist/core/expressions/conditional-validation.js +0 -460
  1193. package/dist/core/expressions/conditional-validation.js.map +0 -1
  1194. package/dist/core/expressions/context-aware-generator.d.ts.map +0 -1
  1195. package/dist/core/expressions/context-aware-generator.js.map +0 -1
  1196. package/dist/core/expressions/context-detector.d.ts.map +0 -1
  1197. package/dist/core/expressions/context-detector.js.map +0 -1
  1198. package/dist/core/expressions/context-switcher.d.ts +0 -185
  1199. package/dist/core/expressions/context-switcher.d.ts.map +0 -1
  1200. package/dist/core/expressions/context-switcher.js +0 -515
  1201. package/dist/core/expressions/context-switcher.js.map +0 -1
  1202. package/dist/core/expressions/context-validator.d.ts.map +0 -1
  1203. package/dist/core/expressions/context-validator.js.map +0 -1
  1204. package/dist/core/expressions/custom-context-manager.d.ts +0 -194
  1205. package/dist/core/expressions/custom-context-manager.d.ts.map +0 -1
  1206. package/dist/core/expressions/custom-context-manager.js +0 -390
  1207. package/dist/core/expressions/custom-context-manager.js.map +0 -1
  1208. package/dist/core/expressions/expression-proxy.d.ts +0 -80
  1209. package/dist/core/expressions/expression-proxy.d.ts.map +0 -1
  1210. package/dist/core/expressions/expression-proxy.js +0 -227
  1211. package/dist/core/expressions/expression-proxy.js.map +0 -1
  1212. package/dist/core/expressions/factory-integration.d.ts.map +0 -1
  1213. package/dist/core/expressions/factory-integration.js.map +0 -1
  1214. package/dist/core/expressions/factory-pattern-handler.d.ts.map +0 -1
  1215. package/dist/core/expressions/factory-pattern-handler.js.map +0 -1
  1216. package/dist/core/expressions/field-hydration-processor.d.ts +0 -188
  1217. package/dist/core/expressions/field-hydration-processor.d.ts.map +0 -1
  1218. package/dist/core/expressions/field-hydration-processor.js +0 -562
  1219. package/dist/core/expressions/field-hydration-processor.js.map +0 -1
  1220. package/dist/core/expressions/imperative-analyzer.d.ts.map +0 -1
  1221. package/dist/core/expressions/imperative-analyzer.js.map +0 -1
  1222. package/dist/core/expressions/lazy-analysis.d.ts +0 -1128
  1223. package/dist/core/expressions/lazy-analysis.d.ts.map +0 -1
  1224. package/dist/core/expressions/lazy-analysis.js +0 -2443
  1225. package/dist/core/expressions/lazy-analysis.js.map +0 -1
  1226. package/dist/core/expressions/magic-assignable-analyzer.d.ts.map +0 -1
  1227. package/dist/core/expressions/magic-assignable-analyzer.js.map +0 -1
  1228. package/dist/core/expressions/magic-proxy-analyzer.d.ts.map +0 -1
  1229. package/dist/core/expressions/magic-proxy-analyzer.js.map +0 -1
  1230. package/dist/core/expressions/magic-proxy-detector.d.ts.map +0 -1
  1231. package/dist/core/expressions/magic-proxy-detector.js.map +0 -1
  1232. package/dist/core/expressions/migration-helpers.d.ts.map +0 -1
  1233. package/dist/core/expressions/migration-helpers.js.map +0 -1
  1234. package/dist/core/expressions/optionality-handler.d.ts +0 -503
  1235. package/dist/core/expressions/optionality-handler.d.ts.map +0 -1
  1236. package/dist/core/expressions/optionality-handler.js +0 -1306
  1237. package/dist/core/expressions/optionality-handler.js.map +0 -1
  1238. package/dist/core/expressions/readiness-integration.d.ts +0 -119
  1239. package/dist/core/expressions/readiness-integration.d.ts.map +0 -1
  1240. package/dist/core/expressions/readiness-integration.js +0 -386
  1241. package/dist/core/expressions/readiness-integration.js.map +0 -1
  1242. package/dist/core/expressions/resource-analyzer.d.ts +0 -486
  1243. package/dist/core/expressions/resource-analyzer.d.ts.map +0 -1
  1244. package/dist/core/expressions/resource-analyzer.js +0 -1086
  1245. package/dist/core/expressions/resource-analyzer.js.map +0 -1
  1246. package/dist/core/expressions/resource-validation.d.ts.map +0 -1
  1247. package/dist/core/expressions/resource-validation.js +0 -552
  1248. package/dist/core/expressions/resource-validation.js.map +0 -1
  1249. package/dist/core/expressions/runtime-error-mapper.d.ts +0 -138
  1250. package/dist/core/expressions/runtime-error-mapper.d.ts.map +0 -1
  1251. package/dist/core/expressions/runtime-error-mapper.js +0 -412
  1252. package/dist/core/expressions/runtime-error-mapper.js.map +0 -1
  1253. package/dist/core/expressions/source-map.d.ts.map +0 -1
  1254. package/dist/core/expressions/source-map.js.map +0 -1
  1255. package/dist/core/expressions/status-builder-analyzer.d.ts +0 -353
  1256. package/dist/core/expressions/status-builder-analyzer.d.ts.map +0 -1
  1257. package/dist/core/expressions/status-builder-analyzer.js +0 -1311
  1258. package/dist/core/expressions/status-builder-analyzer.js.map +0 -1
  1259. package/dist/core/expressions/type-inference.d.ts.map +0 -1
  1260. package/dist/core/expressions/type-inference.js.map +0 -1
  1261. package/dist/core/expressions/type-safety.d.ts.map +0 -1
  1262. package/dist/core/expressions/type-safety.js.map +0 -1
  1263. package/dist/core/expressions/types.d.ts.map +0 -1
  1264. package/dist/core/expressions/types.js.map +0 -1
  1265. package/dist/core/factory.d.ts +0 -12
  1266. package/dist/core/factory.d.ts.map +0 -1
  1267. package/dist/core/factory.js +0 -13
  1268. package/dist/core/factory.js.map +0 -1
  1269. package/dist/core/readiness/cluster-state.d.ts +0 -229
  1270. package/dist/core/readiness/cluster-state.d.ts.map +0 -1
  1271. package/dist/core/readiness/cluster-state.js +0 -366
  1272. package/dist/core/readiness/cluster-state.js.map +0 -1
  1273. package/dist/core.d.ts +0 -30
  1274. package/dist/core.d.ts.map +0 -1
  1275. package/dist/core.js +0 -59
  1276. package/dist/core.js.map +0 -1
  1277. /package/dist/{core/composition → compositions}/typekro-runtime/index.js +0 -0
  1278. /package/dist/{core/composition → compositions}/typekro-runtime/types.js +0 -0
  1279. /package/dist/core/expressions/{source-map.d.ts → analysis/source-map.d.ts} +0 -0
  1280. /package/dist/core/expressions/{types.js → analysis/types.js} +0 -0
@@ -4,22 +4,20 @@
4
4
  * This module provides the main serialization functions to convert
5
5
  * TypeScript resource definitions to Kro ResourceGraphDefinition YAML manifests.
6
6
  */
7
- import { DependencyResolver } from '../dependencies/index.js';
8
7
  import { createDirectResourceFactory } from '../deployment/direct-factory.js';
9
8
  import { createKroResourceFactory } from '../deployment/kro-factory.js';
10
- import { optimizeStatusMappings } from '../evaluation/cel-optimizer.js';
11
- import { analyzeStatusBuilderForToResourceGraph } from '../expressions/status-builder-analyzer.js';
12
- import { analyzeImperativeComposition } from '../expressions/imperative-analyzer.js';
9
+ import { ensureError, ValidationError } from '../errors.js';
10
+ import { analyzeCompositionBody, applyAnalysisToResources, } from '../expressions/composition/composition-analyzer.js';
11
+ import { StatusBuilderAnalyzer } from '../expressions/factory/status-builder-analyzer.js';
13
12
  import { getComponentLogger } from '../logging/index.js';
14
- import { createSchemaProxy, externalRef } from '../references/index.js';
13
+ import { setResourceId } from '../metadata/index.js';
14
+ import { createExternalRefWithoutRegistration, createSchemaProxy } from '../references/index.js';
15
+ import { getKindInfo, getSemanticCandidateKinds } from '../resources/factory-registry.js';
15
16
  import { validateResourceGraphDefinition } from '../validation/cel-validator.js';
17
+ import { optimizeStatusMappings } from './cel-optimizer.js';
16
18
  import { generateKroSchemaFromArktype } from './schema.js';
19
+ import { runStatusAnalysisPipeline } from './status-analysis-pipeline.js';
17
20
  import { serializeResourceGraphToYaml } from './yaml.js';
18
- import { StatusBuilderAnalyzer } from '../expressions/status-builder-analyzer.js';
19
- import { containsKubernetesRefs } from '../../utils/type-guards.js';
20
- import { isCelExpression } from '../../utils/type-guards.js';
21
- import { CelToJavaScriptMigrationHelper } from '../expressions/migration-helpers.js';
22
- import { CelConversionEngine } from '../expressions/cel-conversion-engine.js';
23
21
  /**
24
22
  * Separate Enhanced<> resources from deployment closures in the builder result
25
23
  */
@@ -43,303 +41,361 @@ function separateResourcesAndClosures(builderResult) {
43
41
  return { resources, closures };
44
42
  }
45
43
  /**
46
- * Detect and preserve existing CEL expressions for backward compatibility
44
+ * Create a minimal stub resource object for factory calls that were detected
45
+ * by AST analysis but didn't execute at runtime.
47
46
  *
48
- * This function recursively checks status mappings for existing CEL expressions
49
- * and preserves them without conversion, ensuring backward compatibility.
47
+ * This happens when a factory call is inside an if-branch that wasn't taken
48
+ * because the schema proxy's `Symbol.toPrimitive` value didn't match the comparison.
49
+ * The stub contains just enough info for YAML serialization to produce a valid
50
+ * resource entry with includeWhen/forEach directives.
50
51
  */
51
- function detectAndPreserveCelExpressions(statusMappings, preservedExpressions = {}, path = '') {
52
- let hasExistingCel = false;
53
- const preservedMappings = { ...preservedExpressions };
54
- if (!statusMappings || typeof statusMappings !== 'object') {
55
- return { hasExistingCel, preservedMappings };
56
- }
57
- for (const [key, value] of Object.entries(statusMappings)) {
58
- const currentPath = path ? `${path}.${key}` : key;
59
- if (isCelExpression(value)) {
60
- // Found existing CEL expression - preserve it
61
- hasExistingCel = true;
62
- preservedMappings[currentPath] = value;
63
- }
64
- else if (value && typeof value === 'object' && !Array.isArray(value)) {
65
- // Recursively check nested objects
66
- const nestedResult = detectAndPreserveCelExpressions(value, preservedMappings, currentPath);
67
- hasExistingCel = hasExistingCel || nestedResult.hasExistingCel;
68
- Object.assign(preservedMappings, nestedResult.preservedMappings);
69
- }
70
- }
71
- return { hasExistingCel, preservedMappings };
52
+ function createStubResource(factoryName, resourceId) {
53
+ const kindInfo = getKindInfo(factoryName);
54
+ if (!kindInfo)
55
+ return null;
56
+ const stub = {
57
+ apiVersion: kindInfo.apiVersion,
58
+ kind: kindInfo.kind,
59
+ metadata: { name: resourceId, labels: {} },
60
+ };
61
+ // Store resource ID in WeakMap metadata
62
+ setResourceId(stub, resourceId);
63
+ return stub;
72
64
  }
65
+ // =============================================================================
66
+ // Re-exported helpers (canonical source: status-analysis-helpers.ts)
67
+ // =============================================================================
68
+ import { analyzeStatusMappingTypes, analyzeValueType, detectAndPreserveCelExpressions, isLikelyStaticObject, mergePreservedCelExpressions, } from './status-analysis-helpers.js';
69
+ // =============================================================================
70
+ // Internal helpers exported for testing
71
+ // =============================================================================
72
+ /** @internal Exported for testing only */
73
+ export { separateResourcesAndClosures, createStubResource, detectAndPreserveCelExpressions, mergePreservedCelExpressions, analyzeStatusMappingTypes, analyzeValueType, isLikelyStaticObject, validateResourceGraphName, findResourceByKey, analyzeAndConvertStatusMappings, processCompositionBodyAnalysis, reanalyzeStatusForDirectFactory, wrapWithResourceGraphProxy, };
74
+ // =============================================================================
75
+ // Extracted helper: Resource graph name validation
76
+ // =============================================================================
73
77
  /**
74
- * Check if a value contains any CelExpression objects
78
+ * Validate a resource graph name and return the Kubernetes-compatible form.
79
+ *
80
+ * @throws {ValidationError} if the name is empty, whitespace-only, not DNS-compliant,
81
+ * or exceeds the 253-character Kubernetes limit.
82
+ * @returns The validated, lowercase-hyphenated Kubernetes name.
83
+ *
84
+ * @internal Exported for testing only
75
85
  */
76
- function containsCelExpressions(value) {
77
- if (isCelExpression(value)) {
78
- return true;
86
+ function validateResourceGraphName(name) {
87
+ if (!name || typeof name !== 'string') {
88
+ throw new ValidationError(`Invalid resource graph name: ${JSON.stringify(name)}. Resource graph name must be a non-empty string.`, 'ResourceGraphDefinition', String(name), 'name', ['Provide a non-empty string for the resource graph name']);
79
89
  }
80
- if (Array.isArray(value)) {
81
- return value.some(item => containsCelExpressions(item));
90
+ const trimmedName = name.trim();
91
+ if (trimmedName.length === 0) {
92
+ throw new ValidationError(`Invalid resource graph name: Resource graph name cannot be empty or whitespace-only.`, 'ResourceGraphDefinition', name, 'name', ['Provide a non-whitespace resource graph name']);
82
93
  }
83
- if (value && typeof value === 'object') {
84
- return Object.values(value).some(val => containsCelExpressions(val));
94
+ const kubernetesName = trimmedName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
95
+ if (!/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/.test(kubernetesName)) {
96
+ throw new ValidationError(`Invalid resource graph name: "${name}" converts to "${kubernetesName}" which is not a valid Kubernetes resource name. Names must consist of lowercase alphanumeric characters or '-', and must start and end with an alphanumeric character.`, 'ResourceGraphDefinition', name, 'name', [
97
+ 'Use lowercase alphanumeric characters and hyphens only',
98
+ 'Must start and end with an alphanumeric character',
99
+ ]);
85
100
  }
86
- return false;
101
+ if (kubernetesName.length > 253) {
102
+ throw new ValidationError(`Invalid resource graph name: "${name}" converts to "${kubernetesName}" which exceeds the 253 character limit for Kubernetes resource names.`, 'ResourceGraphDefinition', name, 'name', ['Shorten the resource graph name to stay under 253 characters']);
103
+ }
104
+ return kubernetesName;
87
105
  }
106
+ // =============================================================================
107
+ // Extracted helper: Resource key lookup (cross-composition access)
108
+ // =============================================================================
88
109
  /**
89
- * Merge preserved CEL expressions with analyzed mappings
110
+ * Find a resource by key name in a resources map.
90
111
  *
91
- * This ensures that existing CEL expressions take precedence over
92
- * newly analyzed JavaScript expressions for backward compatibility.
112
+ * Implements multiple matching strategies for cross-composition magic proxy
113
+ * access (e.g. `composition.database`):
114
+ * 1. Direct match by generated resource ID (exact)
115
+ * 2. Smart pattern matching — name parts + kind-based (fuzzy, logged)
116
+ * 3. Case-insensitive match on resource ID (fuzzy, logged)
117
+ * 4. Partial matching — key parts contained in resource ID (fuzzy, logged)
118
+ *
119
+ * Strategies 2-4 emit a debug-level warning so users can diagnose unexpected
120
+ * cross-composition references. Strategy 1 is the only silent/exact match.
121
+ *
122
+ * @internal Exported for testing only
93
123
  */
94
- function mergePreservedCelExpressions(analyzedMappings, preservedMappings) {
95
- const mergedMappings = { ...analyzedMappings };
96
- // Preserved CEL expressions take precedence
97
- for (const [path, celExpression] of Object.entries(preservedMappings)) {
98
- // Handle nested paths by setting the value at the correct location
99
- const pathParts = path.split('.');
100
- let current = mergedMappings;
101
- for (let i = 0; i < pathParts.length - 1; i++) {
102
- const part = pathParts[i];
103
- if (!part)
104
- continue;
105
- if (!current[part] || typeof current[part] !== 'object') {
106
- current[part] = {};
124
+ function findResourceByKey(key, resourcesWithKeys, logger) {
125
+ if (typeof key !== 'string')
126
+ return undefined;
127
+ // Strategy 1: Direct match by generated resource ID (exact — no warning)
128
+ if (resourcesWithKeys[key]) {
129
+ return resourcesWithKeys[key];
130
+ }
131
+ // Strategy 2: Smart pattern matching for common cases
132
+ const keyLower = key.toLowerCase();
133
+ const keyParts = key.split(/[-_]/).map((p) => p.toLowerCase());
134
+ for (const [resourceId, resource] of Object.entries(resourcesWithKeys)) {
135
+ const kind = resource.kind.toLowerCase();
136
+ let name = '';
137
+ if (resource.metadata.name && typeof resource.metadata.name === 'string') {
138
+ name = resource.metadata.name.toLowerCase();
139
+ }
140
+ else if (resource.metadata.name && typeof resource.metadata.name === 'object') {
141
+ continue;
142
+ }
143
+ const resourceIdLower = resourceId.toLowerCase();
144
+ const nameParts = name.split(/[-_]/).map((p) => p.toLowerCase());
145
+ const hasCommonParts = keyParts.some((keyPart) => nameParts.some((namePart) => keyPart.includes(namePart) || namePart.includes(keyPart)));
146
+ if (hasCommonParts) {
147
+ if (keyParts.includes(kind) ||
148
+ (keyParts.includes('deployment') && kind === 'deployment') ||
149
+ (keyParts.includes('service') && kind === 'service')) {
150
+ logger?.debug('findResourceByKey: fuzzy match (strategy 2: pattern+kind)', {
151
+ requestedKey: key,
152
+ matchedResourceId: resourceId,
153
+ matchedKind: resource.kind,
154
+ });
155
+ return resource;
107
156
  }
108
- current = current[part];
109
157
  }
110
- const finalKey = pathParts[pathParts.length - 1];
111
- if (finalKey) {
112
- current[finalKey] = celExpression;
158
+ if (keyParts.includes(kind)) {
159
+ const nameInResourceId = nameParts.some((part) => resourceIdLower.includes(part));
160
+ if (nameInResourceId) {
161
+ logger?.debug('findResourceByKey: fuzzy match (strategy 2: kind+name)', {
162
+ requestedKey: key,
163
+ matchedResourceId: resourceId,
164
+ matchedKind: resource.kind,
165
+ });
166
+ return resource;
167
+ }
168
+ }
169
+ // Semantic alias matching — delegated to the central FactoryRegistry.
170
+ // Custom factories can register their own aliases via registerFactory().
171
+ for (const part of keyParts) {
172
+ const candidateKinds = getSemanticCandidateKinds(part);
173
+ if (candidateKinds?.includes(kind)) {
174
+ logger?.debug('findResourceByKey: fuzzy match (strategy 2: semantic pattern)', {
175
+ requestedKey: key,
176
+ matchedResourceId: resourceId,
177
+ matchedKind: resource.kind,
178
+ semanticPattern: part,
179
+ });
180
+ return resource;
181
+ }
113
182
  }
114
183
  }
115
- return mergedMappings;
184
+ // Strategy 3: Case-insensitive match on generated resource ID
185
+ for (const [resourceKey, resource] of Object.entries(resourcesWithKeys)) {
186
+ if (resourceKey.toLowerCase() === keyLower) {
187
+ logger?.debug('findResourceByKey: fuzzy match (strategy 3: case-insensitive)', {
188
+ requestedKey: key,
189
+ matchedResourceId: resourceKey,
190
+ matchedKind: resource.kind,
191
+ });
192
+ return resource;
193
+ }
194
+ }
195
+ // Strategy 4: Partial matching - find resources that contain key parts in their ID
196
+ for (const [resourceKey, resource] of Object.entries(resourcesWithKeys)) {
197
+ const resourceKeyLower = resourceKey.toLowerCase();
198
+ if (keyParts.some((part) => part.length > 2 && resourceKeyLower.includes(part))) {
199
+ logger?.debug('findResourceByKey: fuzzy match (strategy 4: partial key)', {
200
+ requestedKey: key,
201
+ matchedResourceId: resourceKey,
202
+ matchedKind: resource.kind,
203
+ });
204
+ return resource;
205
+ }
206
+ }
207
+ return undefined;
116
208
  }
117
209
  /**
118
- * Comprehensive analysis of status mappings to categorize different types of expressions
210
+ * Analyze a status builder function and convert JavaScript expressions to CEL.
119
211
  *
120
- * This function provides detailed analysis of status mappings to determine:
121
- * - Which fields contain KubernetesRef objects (need conversion)
122
- * - Which fields are existing CEL expressions (preserve as-is)
123
- * - Which fields are static values (no conversion needed)
124
- * - Which fields are complex expressions that might need analysis
212
+ * This encapsulates the full pipeline:
213
+ * 1. Execute the status builder in a context that returns KubernetesRef objects
214
+ * 2. If imperative, try status builder analysis or fall back to imperative analysis
215
+ * 3. If declarative, analyze directly
216
+ * 4. Detect and preserve existing CEL expressions
217
+ * 5. Convert KubernetesRef objects to CEL via CelConversionEngine
218
+ * 6. Log migration opportunities
219
+ *
220
+ * @internal Exported for testing only
125
221
  */
126
- function analyzeStatusMappingTypes(statusMappings, path = '') {
127
- const kubernetesRefFields = [];
128
- const celExpressionFields = [];
129
- const staticValueFields = [];
130
- const complexExpressionFields = [];
131
- const analysisDetails = {};
132
- if (!statusMappings || typeof statusMappings !== 'object') {
133
- return {
134
- kubernetesRefFields,
135
- celExpressionFields,
136
- staticValueFields,
137
- complexExpressionFields,
138
- analysisDetails
139
- };
140
- }
141
- for (const [key, value] of Object.entries(statusMappings)) {
142
- const currentPath = path ? `${path}.${key}` : key;
143
- // Analyze the value type and requirements
144
- const analysis = analyzeValueType(value);
145
- analysisDetails[currentPath] = analysis;
146
- switch (analysis.type) {
147
- case 'kubernetesRef':
148
- kubernetesRefFields.push(currentPath);
149
- break;
150
- case 'celExpression':
151
- celExpressionFields.push(currentPath);
152
- break;
153
- case 'staticValue':
154
- staticValueFields.push(currentPath);
155
- break;
156
- case 'complexExpression':
157
- complexExpressionFields.push(currentPath);
158
- break;
159
- }
160
- // Recursively analyze nested objects
161
- if (value && typeof value === 'object' && !Array.isArray(value) && !isCelExpression(value) && !containsKubernetesRefs(value)) {
162
- const nestedAnalysis = analyzeStatusMappingTypes(value, currentPath);
163
- kubernetesRefFields.push(...nestedAnalysis.kubernetesRefFields);
164
- celExpressionFields.push(...nestedAnalysis.celExpressionFields);
165
- staticValueFields.push(...nestedAnalysis.staticValueFields);
166
- complexExpressionFields.push(...nestedAnalysis.complexExpressionFields);
167
- Object.assign(analysisDetails, nestedAnalysis.analysisDetails);
168
- }
169
- }
170
- return {
171
- kubernetesRefFields,
172
- celExpressionFields,
173
- staticValueFields,
174
- complexExpressionFields,
175
- analysisDetails
176
- };
222
+ function analyzeAndConvertStatusMappings(definition, statusBuilder, schema, resourcesWithKeys, serializationLogger) {
223
+ // Delegate to the decomposed pipeline (Phase 2.9).
224
+ // The pipeline produces the same result shape as the original function.
225
+ return runStatusAnalysisPipeline(definition, statusBuilder, schema, resourcesWithKeys, serializationLogger);
177
226
  }
178
227
  /**
179
- * Analyze a single value to determine its type and conversion requirements
228
+ * Analyze the composition function body for control flow patterns
229
+ * (if-statements -> includeWhen, for-of loops -> forEach, ternary -> template overrides,
230
+ * collection aggregates -> status overrides).
231
+ *
232
+ * This MUST run before validation because:
233
+ * 1. Stub resources need to exist before resource ID validation
234
+ * 2. Status overrides (e.g. .map().join()) need to replace raw marker strings
235
+ * before CEL expression validation
236
+ *
237
+ * @internal Exported for testing only
180
238
  */
181
- function analyzeValueType(value) {
182
- // Check for existing CEL expressions first (highest priority)
183
- if (isCelExpression(value)) {
184
- return {
185
- type: 'celExpression',
186
- value,
187
- requiresConversion: false,
188
- confidence: 1.0
189
- };
190
- }
191
- // Check for KubernetesRef objects (need conversion)
192
- if (containsKubernetesRefs(value)) {
193
- return {
194
- type: 'kubernetesRef',
195
- value,
196
- requiresConversion: true,
197
- confidence: 1.0
198
- };
199
- }
200
- // Check for primitive static values
201
- if (value === null ||
202
- value === undefined ||
203
- typeof value === 'string' ||
204
- typeof value === 'number' ||
205
- typeof value === 'boolean') {
206
- return {
207
- type: 'staticValue',
208
- value,
209
- requiresConversion: false,
210
- confidence: 1.0
211
- };
212
- }
213
- // Check for arrays of static values
214
- if (Array.isArray(value)) {
215
- const hasKubernetesRefs = value.some(item => containsKubernetesRefs(item));
216
- const hasCelExpressions = value.some(item => isCelExpression(item));
217
- if (hasKubernetesRefs) {
218
- return {
219
- type: 'kubernetesRef',
220
- value,
221
- requiresConversion: true,
222
- confidence: 0.9
223
- };
224
- }
225
- else if (hasCelExpressions) {
226
- return {
227
- type: 'celExpression',
228
- value,
229
- requiresConversion: false,
230
- confidence: 0.9
231
- };
232
- }
233
- else {
234
- return {
235
- type: 'staticValue',
236
- value,
237
- requiresConversion: false,
238
- confidence: 0.8
239
- };
240
- }
241
- }
242
- // Check for plain objects (might be complex expressions or static data)
243
- if (value && typeof value === 'object') {
244
- const hasKubernetesRefs = containsKubernetesRefs(value);
245
- const hasCelExpressions = Object.values(value).some(v => isCelExpression(v));
246
- if (hasKubernetesRefs) {
247
- return {
248
- type: 'kubernetesRef',
249
- value,
250
- requiresConversion: true,
251
- confidence: 0.8
252
- };
253
- }
254
- else if (hasCelExpressions) {
255
- return {
256
- type: 'celExpression',
257
- value,
258
- requiresConversion: false,
259
- confidence: 0.8
260
- };
261
- }
262
- else {
263
- // Could be static data or complex expression - analyze further
264
- const isLikelyStatic = isLikelyStaticObject(value);
265
- if (isLikelyStatic) {
266
- return {
267
- type: 'staticValue',
268
- value,
269
- requiresConversion: false,
270
- confidence: 0.7
271
- };
239
+ function processCompositionBodyAnalysis(statusMappings, resourcesWithKeys, analyzedStatusMappings, serializationLogger) {
240
+ let compositionAnalysis = null;
241
+ const analysisState = { appliedToResources: false };
242
+ const originalCompositionFnForAnalysis = statusMappings
243
+ ?.__originalCompositionFn;
244
+ if (originalCompositionFnForAnalysis) {
245
+ try {
246
+ const resourceIds = new Set(Object.keys(resourcesWithKeys));
247
+ compositionAnalysis = analyzeCompositionBody(originalCompositionFnForAnalysis, resourceIds);
248
+ // Create stub resources for factory calls that weren't registered at runtime
249
+ for (const unregistered of compositionAnalysis.unregisteredFactories) {
250
+ if (!resourceIds.has(unregistered.resourceId)) {
251
+ const stub = createStubResource(unregistered.factoryName, unregistered.resourceId);
252
+ if (stub) {
253
+ resourcesWithKeys[unregistered.resourceId] = stub;
254
+ resourceIds.add(unregistered.resourceId);
255
+ serializationLogger.debug('Created stub resource for unregistered factory', {
256
+ resourceId: unregistered.resourceId,
257
+ factoryName: unregistered.factoryName,
258
+ });
259
+ }
260
+ }
272
261
  }
273
- else {
274
- return {
275
- type: 'complexExpression',
276
- value,
277
- requiresConversion: false, // Conservative - don't convert unless we're sure
278
- confidence: 0.5
279
- };
262
+ // Apply status overrides before validation
263
+ if (compositionAnalysis.statusOverrides.length > 0) {
264
+ for (const override of compositionAnalysis.statusOverrides) {
265
+ analyzedStatusMappings[override.propertyPath] = override.celExpression;
266
+ serializationLogger.debug('Applied status override before validation', {
267
+ propertyPath: override.propertyPath,
268
+ celExpression: override.celExpression,
269
+ });
270
+ }
280
271
  }
281
272
  }
273
+ catch (analysisError) {
274
+ serializationLogger.debug('Composition body analysis failed (non-fatal), proceeding without control flow detection', { error: ensureError(analysisError).message });
275
+ }
282
276
  }
283
- // Unknown type - treat as complex expression
284
- return {
285
- type: 'complexExpression',
286
- value,
287
- requiresConversion: false,
288
- confidence: 0.3
289
- };
277
+ return { compositionAnalysis, analysisState };
290
278
  }
279
+ // =============================================================================
280
+ // Extracted helper: Direct factory status re-analysis
281
+ // =============================================================================
291
282
  /**
292
- * Determine if an object is likely to be static data rather than an expression
283
+ * Re-analyze status mappings specifically for the direct factory pattern.
284
+ *
285
+ * When the factory mode is `'direct'`, the status mappings may need different
286
+ * treatment than the Kro pattern (which is the default analysis target).
287
+ *
288
+ * @internal Exported for testing only
293
289
  */
294
- function isLikelyStaticObject(obj) {
295
- if (!obj || typeof obj !== 'object' || Array.isArray(obj)) {
296
- return false;
290
+ function reanalyzeStatusForDirectFactory(analysisResults, analyzedStatusMappings, resourcesWithKeys, schema, serializationLogger) {
291
+ if (!analysisResults.hasKubernetesRefs) {
292
+ return analyzedStatusMappings;
297
293
  }
298
- // Check if all values are primitive types
299
- const values = Object.values(obj);
300
- const allPrimitive = values.every(value => value === null ||
301
- value === undefined ||
302
- typeof value === 'string' ||
303
- typeof value === 'number' ||
304
- typeof value === 'boolean');
305
- if (allPrimitive) {
306
- return true;
294
+ try {
295
+ serializationLogger.debug('Re-analyzing status mappings for direct factory pattern');
296
+ const directStatusAnalyzer = new StatusBuilderAnalyzer(undefined, {
297
+ factoryType: 'direct',
298
+ performOptionalityAnalysis: true,
299
+ includeSourceMapping: true,
300
+ });
301
+ const directAnalysisResult = directStatusAnalyzer.analyzeReturnObjectWithMagicProxy(analysisResults.statusMappings, resourcesWithKeys, schema);
302
+ if (directAnalysisResult.errors.length === 0) {
303
+ const { preservedMappings: directPreservedMappings } = detectAndPreserveCelExpressions(analysisResults.statusMappings);
304
+ const result = mergePreservedCelExpressions(directAnalysisResult.statusMappings, directPreservedMappings);
305
+ serializationLogger.debug('Successfully re-analyzed status mappings for direct factory');
306
+ return result;
307
+ }
308
+ }
309
+ catch (error) {
310
+ serializationLogger.error('Failed to re-analyze status mappings for direct factory, using default analysis', ensureError(error));
307
311
  }
308
- // Check for common static object patterns
309
- const keys = Object.keys(obj);
310
- const hasCommonStaticKeys = keys.some(key => ['name', 'id', 'type', 'kind', 'version', 'label', 'tag'].includes(key.toLowerCase()));
311
- return hasCommonStaticKeys && values.length <= 10; // Reasonable size for static config
312
+ return analyzedStatusMappings;
312
313
  }
314
+ // =============================================================================
315
+ // Extracted helper: Cross-composition magic proxy
316
+ // =============================================================================
313
317
  /**
314
- * Create a ResourceGraph from resources for deployment
318
+ * Wrap a base resource graph object with a Proxy that enables cross-composition
319
+ * resource access (e.g. `composition.database`).
320
+ *
321
+ * The Proxy intercepts property access for unknown keys and delegates to
322
+ * `findResourceByKey` to locate matching resources, then creates an external
323
+ * ref for them.
324
+ *
325
+ * @internal Exported for testing only
315
326
  */
316
- function _createResourceGraph(name, resources) {
317
- const dependencyResolver = new DependencyResolver();
318
- const resourceArray = Object.values(resources).map((resource) => ({
319
- ...resource,
320
- id: resource.id || resource.metadata?.name || 'unknown',
321
- }));
322
- // Type assertion needed because we're converting KubernetesResource to DeployableK8sResource
323
- // This is safe because the deployment engine handles the conversion internally
324
- const deployableResources = resourceArray;
325
- const dependencyGraph = dependencyResolver.buildDependencyGraph(deployableResources);
326
- // Convert to ResourceGraphResource format
327
- const resourceGraphResources = deployableResources.map((resource) => ({
328
- id: resource.id,
329
- manifest: resource,
330
- }));
331
- return {
332
- name,
333
- resources: resourceGraphResources,
334
- dependencyGraph,
335
- };
327
+ function wrapWithResourceGraphProxy(baseResourceGraph, resourcesWithKeys, logger) {
328
+ return new Proxy(baseResourceGraph, {
329
+ get(target, prop, receiver) {
330
+ if (prop in target) {
331
+ return Reflect.get(target, prop, receiver);
332
+ }
333
+ const matchingResource = findResourceByKey(prop, resourcesWithKeys, logger);
334
+ if (matchingResource?.metadata.name) {
335
+ return createExternalRefWithoutRegistration(matchingResource.apiVersion, matchingResource.kind, matchingResource.metadata.name, matchingResource.metadata.namespace);
336
+ }
337
+ return undefined;
338
+ },
339
+ ownKeys(target) {
340
+ return Reflect.ownKeys(target);
341
+ },
342
+ getOwnPropertyDescriptor(target, prop) {
343
+ if (prop in target) {
344
+ return Reflect.getOwnPropertyDescriptor(target, prop);
345
+ }
346
+ const matchingResource = findResourceByKey(prop, resourcesWithKeys, logger);
347
+ if (matchingResource) {
348
+ return {
349
+ configurable: true,
350
+ enumerable: false,
351
+ value: undefined,
352
+ };
353
+ }
354
+ return undefined;
355
+ },
356
+ });
336
357
  }
337
358
  // =============================================================================
338
359
  // NEW FACTORY PATTERN API
339
360
  // =============================================================================
340
361
  /**
341
- * Create a new typed resource graph with factory pattern support
342
- * This is the new API with definition-first parameter and separate builder functions
362
+ * Create a typed ResourceGraphDefinition (RGD) from a declarative definition,
363
+ * a resource builder, and a status builder.
364
+ *
365
+ * This is the primary API for defining Kubernetes compositions in TypeKro.
366
+ * The returned object contains the serialized YAML for the RGD and can be
367
+ * deployed via `deploy()` in both Direct and Kro modes.
368
+ *
369
+ * @typeParam TSpec - The arktype schema for the custom resource's spec
370
+ * @typeParam TStatus - The arktype schema for the custom resource's status
371
+ * @typeParam TResources - The shape of resources returned by the resource builder
372
+ *
373
+ * @param definition - The RGD metadata: name, apiVersion, kind, spec schema, status schema
374
+ * @param resourceBuilder - Function receiving a schema proxy, returns Kubernetes resources
375
+ * @param statusBuilder - Function receiving schema proxy + resources, returns status shape
376
+ * @param options - Optional serialization options (e.g., custom CEL prefix)
377
+ * @returns A `TypedResourceGraph` containing the serialized RGD and deploy/toYaml methods
378
+ *
379
+ * @example
380
+ * ```typescript
381
+ * const webapp = toResourceGraph(
382
+ * {
383
+ * name: 'webapp',
384
+ * apiVersion: 'apps.example.com/v1alpha1',
385
+ * kind: 'WebApp',
386
+ * spec: type({ name: 'string', replicas: 'number' }),
387
+ * status: type({ ready: 'boolean', url: 'string' }),
388
+ * },
389
+ * (schema) => ({
390
+ * deploy: Deployment({ name: schema.spec.name, replicas: schema.spec.replicas }),
391
+ * svc: Service({ name: schema.spec.name }),
392
+ * }),
393
+ * (schema, resources) => ({
394
+ * ready: Cel.expr<boolean>(resources.deploy.status.readyReplicas, ' > 0'),
395
+ * url: Cel.template('https://%s', schema.spec.name),
396
+ * }),
397
+ * );
398
+ * ```
343
399
  */
344
400
  export function toResourceGraph(definition,
345
401
  // The resourceBuilder is now defined as returning that specific shape
@@ -350,31 +406,24 @@ statusBuilder, options) {
350
406
  return createTypedResourceGraph(definition, resourceBuilder, statusBuilder, options);
351
407
  }
352
408
  /**
353
- * Create a typed resource graph implementation
409
+ * Create a typed resource graph implementation.
410
+ *
411
+ * Orchestrates the full pipeline:
412
+ * 1. Validate definition name
413
+ * 2. Execute resource builder to get Enhanced<> resources and closures
414
+ * 3. Analyze status builder and convert JS expressions to CEL
415
+ * 4. Analyze composition body for control flow (includeWhen/forEach)
416
+ * 5. Validate and optimize CEL expressions
417
+ * 6. Build the TypedResourceGraph result object
418
+ * 7. Wrap with cross-composition magic proxy
354
419
  */
355
420
  function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, options) {
356
421
  const serializationLogger = getComponentLogger('resource-graph-serialization').child({
357
422
  name: definition.name,
358
423
  });
359
- // Validate resource graph name early
360
- if (!definition.name || typeof definition.name !== 'string') {
361
- throw new Error(`Invalid resource graph name: ${JSON.stringify(definition.name)}. Resource graph name must be a non-empty string.`);
362
- }
363
- const trimmedName = definition.name.trim();
364
- if (trimmedName.length === 0) {
365
- throw new Error(`Invalid resource graph name: Resource graph name cannot be empty or whitespace-only.`);
366
- }
367
- // Validate that the name will convert to a valid Kubernetes resource name
368
- const kubernetesName = trimmedName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
369
- if (!/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/.test(kubernetesName)) {
370
- throw new Error(`Invalid resource graph name: "${definition.name}" converts to "${kubernetesName}" which is not a valid Kubernetes resource name. Names must consist of lowercase alphanumeric characters or '-', and must start and end with an alphanumeric character.`);
371
- }
372
- if (kubernetesName.length > 253) {
373
- throw new Error(`Invalid resource graph name: "${definition.name}" converts to "${kubernetesName}" which exceeds the 253 character limit for Kubernetes resource names.`);
374
- }
375
- // Apply default apiVersion if not specified
376
- // Note: This should be just the version part (e.g., 'v1alpha1'), not the full API version
377
- // The full API version (kro.run/v1alpha1) is constructed when creating instances
424
+ // 1. Validate name
425
+ validateResourceGraphName(definition.name);
426
+ // 2. Build schema definition and execute resource builder
378
427
  const schemaDefinition = {
379
428
  apiVersion: definition.apiVersion || 'v1alpha1',
380
429
  kind: definition.kind,
@@ -383,268 +432,17 @@ function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, op
383
432
  };
384
433
  const schema = createSchemaProxy();
385
434
  const builderResult = resourceBuilder(schema);
386
- // Separate Enhanced<> resources from deployment closures
387
435
  const { resources: resourcesWithKeys, closures } = separateResourcesAndClosures(builderResult);
388
- // NEW: Analyze status builder for JavaScript expressions with KubernetesRef detection
389
- let statusMappings;
390
- let analyzedStatusMappings = {};
391
- let mappingAnalysis;
392
- let imperativeAnalysisSucceeded = false;
393
- try {
394
- // Execute the status builder to get the return object
395
- globalThis.__TYPEKRO_STATUS_BUILDER_CONTEXT__ = true;
396
- try {
397
- statusMappings = statusBuilder(schema, resourcesWithKeys);
398
- }
399
- finally {
400
- delete globalThis.__TYPEKRO_STATUS_BUILDER_CONTEXT__;
401
- }
402
- // Check if this is from an imperative composition with original expressions
403
- const originalCompositionFn = statusMappings.__originalCompositionFn;
404
- // Debug logging removed for cleaner output
405
- if (originalCompositionFn) {
406
- serializationLogger.debug('Detected imperative composition, checking for existing KubernetesRef objects');
407
- // First, check if the status object already contains KubernetesRef objects or CelExpression objects
408
- // If so, we can use those directly instead of parsing the JavaScript source code
409
- let hasKubernetesRefs = containsKubernetesRefs(statusMappings);
410
- let hasCelExpressions = containsCelExpressions(statusMappings);
411
- serializationLogger.debug('Imperative composition analysis', {
412
- hasKubernetesRefs,
413
- hasCelExpressions,
414
- statusMappings: JSON.stringify(statusMappings, null, 2)
415
- });
416
- if (hasKubernetesRefs || hasCelExpressions) {
417
- serializationLogger.debug('Status object already contains KubernetesRef objects or CelExpression objects, using direct analysis');
418
- // Use the status builder analyzer to process the existing KubernetesRef objects
419
- try {
420
- const statusBuilderAnalysis = analyzeStatusBuilderForToResourceGraph(statusBuilder, resourcesWithKeys, schema, 'kro');
421
- if (statusBuilderAnalysis.requiresConversion) {
422
- analyzedStatusMappings = statusBuilderAnalysis.statusMappings;
423
- imperativeAnalysisSucceeded = true;
424
- serializationLogger.debug('Using status builder analysis for imperative composition', {
425
- fieldCount: Object.keys(analyzedStatusMappings).length
426
- });
427
- }
428
- else {
429
- analyzedStatusMappings = statusMappings;
430
- serializationLogger.debug('No conversion required, using original status mappings');
431
- }
432
- }
433
- catch (statusAnalysisError) {
434
- serializationLogger.debug('Status builder analysis failed, falling back to imperative analysis', {
435
- error: statusAnalysisError.message
436
- });
437
- // Fall back to imperative analysis
438
- hasKubernetesRefs = false;
439
- hasCelExpressions = false;
440
- }
441
- }
442
- if (!hasKubernetesRefs && !hasCelExpressions) {
443
- serializationLogger.debug('No KubernetesRef objects or CelExpression objects found, analyzing original composition function');
444
- // For imperative compositions, we need to analyze the original composition function
445
- // to detect JavaScript expressions that should be converted to CEL
446
- try {
447
- const imperativeAnalysis = analyzeImperativeComposition(originalCompositionFn, resourcesWithKeys, { factoryType: 'kro' });
448
- serializationLogger.debug('Imperative analysis result', {
449
- statusFieldCount: Object.keys(imperativeAnalysis.statusMappings).length,
450
- hasJavaScriptExpressions: imperativeAnalysis.hasJavaScriptExpressions,
451
- errorCount: imperativeAnalysis.errors.length
452
- });
453
- serializationLogger.debug('Imperative composition analysis complete', {
454
- statusFieldCount: Object.keys(imperativeAnalysis.statusMappings).length,
455
- hasJavaScriptExpressions: imperativeAnalysis.hasJavaScriptExpressions
456
- });
457
- if (imperativeAnalysis.hasJavaScriptExpressions) {
458
- analyzedStatusMappings = imperativeAnalysis.statusMappings;
459
- imperativeAnalysisSucceeded = true;
460
- serializationLogger.debug('Using analyzed imperative composition mappings with CEL expressions', {
461
- fieldCount: Object.keys(analyzedStatusMappings).length
462
- });
463
- }
464
- else {
465
- analyzedStatusMappings = statusMappings;
466
- serializationLogger.debug('No JavaScript expressions found, using original status mappings');
467
- }
468
- }
469
- catch (imperativeAnalysisError) {
470
- serializationLogger.debug('Imperative composition analysis failed, using executed status mappings', {
471
- error: imperativeAnalysisError.message
472
- });
473
- analyzedStatusMappings = statusMappings;
474
- }
475
- }
476
- }
477
- else {
478
- // Regular status builder - try to analyze it directly
479
- try {
480
- const statusBuilderAnalysis = analyzeStatusBuilderForToResourceGraph(statusBuilder, resourcesWithKeys, schema, 'kro');
481
- serializationLogger.debug('Status builder analysis complete', {
482
- statusFieldCount: Object.keys(statusBuilderAnalysis.statusMappings).length,
483
- dependencyCount: statusBuilderAnalysis.dependencies.length,
484
- hasJavaScriptExpressions: statusBuilderAnalysis.dependencies.length > 0
485
- });
486
- if (statusBuilderAnalysis.dependencies.length > 0) {
487
- analyzedStatusMappings = statusBuilderAnalysis.statusMappings;
488
- serializationLogger.debug('Using analyzed status mappings with CEL expressions', {
489
- fieldCount: Object.keys(analyzedStatusMappings).length
490
- });
491
- }
492
- else {
493
- analyzedStatusMappings = statusMappings;
494
- }
495
- }
496
- catch (analysisError) {
497
- serializationLogger.debug('Status builder analysis failed, using executed status mappings', {
498
- error: analysisError.message
499
- });
500
- analyzedStatusMappings = statusMappings;
501
- }
502
- }
503
- // COMPREHENSIVE ANALYSIS: Analyze the final status mappings
504
- mappingAnalysis = analyzeStatusMappingTypes(analyzedStatusMappings);
505
- serializationLogger.debug('Final mapping analysis result', {
506
- kubernetesRefFields: mappingAnalysis.kubernetesRefFields.length,
507
- celExpressionFields: mappingAnalysis.celExpressionFields.length,
508
- staticValueFields: mappingAnalysis.staticValueFields.length,
509
- complexExpressionFields: mappingAnalysis.complexExpressionFields.length
510
- });
511
- serializationLogger.debug('Status mapping analysis complete', {
512
- kubernetesRefFields: mappingAnalysis.kubernetesRefFields.length,
513
- celExpressionFields: mappingAnalysis.celExpressionFields.length,
514
- staticValueFields: mappingAnalysis.staticValueFields.length,
515
- complexExpressionFields: mappingAnalysis.complexExpressionFields.length
516
- });
517
- // BACKWARD COMPATIBILITY: Detect and preserve existing CEL expressions
518
- const { hasExistingCel, preservedMappings } = detectAndPreserveCelExpressions(statusMappings);
519
- if (hasExistingCel) {
520
- serializationLogger.debug('Found existing CEL expressions, preserving for backward compatibility', {
521
- preservedCount: Object.keys(preservedMappings).length
522
- });
523
- // MIGRATION HELPER: Provide migration suggestions for existing CEL expressions
524
- try {
525
- const migrationHelper = new CelToJavaScriptMigrationHelper();
526
- const migrationAnalysis = migrationHelper.analyzeMigrationOpportunities(statusMappings);
527
- if (migrationAnalysis.migrationFeasibility.migratableExpressions > 0) {
528
- serializationLogger.info('Migration opportunities detected for CEL expressions', {
529
- totalExpressions: migrationAnalysis.migrationFeasibility.totalExpressions,
530
- migratableExpressions: migrationAnalysis.migrationFeasibility.migratableExpressions,
531
- overallConfidence: Math.round(migrationAnalysis.migrationFeasibility.overallConfidence * 100)
532
- });
533
- // Log migration suggestions for high-confidence migrations
534
- const highConfidenceSuggestions = migrationAnalysis.suggestions.filter(s => s.confidence >= 0.8 && s.isSafe);
535
- if (highConfidenceSuggestions.length > 0) {
536
- serializationLogger.info('High-confidence migration suggestions available', {
537
- suggestions: highConfidenceSuggestions.map(s => ({
538
- original: s.originalCel,
539
- suggested: s.suggestedJavaScript,
540
- confidence: Math.round(s.confidence * 100)
541
- }))
542
- });
543
- }
544
- }
545
- }
546
- catch (migrationError) {
547
- serializationLogger.warn('Failed to analyze migration opportunities', migrationError);
548
- }
549
- }
550
- // The issue is that JavaScript expressions are evaluated before we can analyze them
551
- // We need to re-execute the status builder with a special proxy that intercepts expressions
552
- // and converts them to CEL expressions before evaluation
553
- // For now, let's use a simpler approach: detect KubernetesRef objects in the raw status mappings
554
- // and convert them directly to CEL expressions
555
- const celConversionEngine = new CelConversionEngine();
556
- // Convert the status mappings to CEL expressions for Kro factories
557
- const convertedStatusMappings = {};
558
- let hasConversions = false;
559
- for (const [fieldName, fieldValue] of Object.entries(statusMappings)) {
560
- // Check if this field contains KubernetesRef objects
561
- if (containsKubernetesRefs(fieldValue)) {
562
- // Convert to CEL expression
563
- const conversionResult = celConversionEngine.convertValue(fieldValue, { factoryType: 'kro', factoryName: definition.name, analysisEnabled: true }, { factoryType: 'kro', preserveStatic: false });
564
- if (conversionResult.wasConverted) {
565
- convertedStatusMappings[fieldName] = conversionResult.converted;
566
- hasConversions = true;
567
- serializationLogger.debug('Converted field to CEL expression', {
568
- fieldName,
569
- strategy: conversionResult.strategy,
570
- referencesConverted: conversionResult.metrics.referencesConverted
571
- });
572
- }
573
- else {
574
- convertedStatusMappings[fieldName] = fieldValue;
575
- }
576
- }
577
- else {
578
- // Keep static values as-is
579
- convertedStatusMappings[fieldName] = fieldValue;
580
- }
581
- }
582
- if (hasConversions) {
583
- // Only overwrite if imperative analysis hasn't already provided CEL expressions
584
- if (!imperativeAnalysisSucceeded) {
585
- // Merge converted CEL expressions with preserved ones (preserved take precedence)
586
- analyzedStatusMappings = mergePreservedCelExpressions(convertedStatusMappings, preservedMappings);
587
- }
588
- serializationLogger.debug('Successfully converted JavaScript expressions to CEL', {
589
- convertedFields: Object.keys(convertedStatusMappings).filter(key => convertedStatusMappings[key] !== statusMappings[key]).length,
590
- preservedFields: Object.keys(preservedMappings).length,
591
- staticFields: mappingAnalysis.staticValueFields.length
592
- });
593
- }
594
- else {
595
- // No KubernetesRef objects found, but may have existing CEL expressions or static values
596
- if (hasExistingCel) {
597
- // Only overwrite if imperative analysis hasn't already provided CEL expressions
598
- if (!imperativeAnalysisSucceeded) {
599
- // Merge original mappings with preserved CEL expressions
600
- analyzedStatusMappings = mergePreservedCelExpressions(statusMappings, preservedMappings);
601
- }
602
- serializationLogger.debug('Preserved existing CEL expressions without conversion', {
603
- preservedFields: Object.keys(preservedMappings).length,
604
- staticFields: mappingAnalysis.staticValueFields.length,
605
- complexFields: mappingAnalysis.complexExpressionFields.length
606
- });
607
- }
608
- else {
609
- // No KubernetesRef objects or CEL expressions, use status mappings as-is
610
- if (!imperativeAnalysisSucceeded) {
611
- analyzedStatusMappings = statusMappings;
612
- }
613
- serializationLogger.debug('Status builder contains only static values and complex expressions', {
614
- staticFields: mappingAnalysis.staticValueFields.length,
615
- complexFields: mappingAnalysis.complexExpressionFields.length,
616
- totalFields: Object.keys(mappingAnalysis.analysisDetails).length
617
- });
618
- }
619
- }
620
- }
621
- catch (error) {
622
- serializationLogger.error('Failed to analyze status builder', error);
623
- // Fallback to executing status builder normally
624
- globalThis.__TYPEKRO_STATUS_BUILDER_CONTEXT__ = true;
625
- try {
626
- statusMappings = statusBuilder(schema, resourcesWithKeys);
627
- }
628
- finally {
629
- delete globalThis.__TYPEKRO_STATUS_BUILDER_CONTEXT__;
630
- }
631
- analyzedStatusMappings = statusMappings;
632
- // Create empty analysis for fallback
633
- mappingAnalysis = {
634
- kubernetesRefFields: [],
635
- celExpressionFields: [],
636
- staticValueFields: [],
637
- complexExpressionFields: [],
638
- analysisDetails: {}
639
- };
640
- }
641
- // Validate resource IDs and CEL expressions
436
+ // 3. Analyze status builder and convert JS expressions to CEL
437
+ const { statusMappings, analyzedStatusMappings, mappingAnalysis } = analyzeAndConvertStatusMappings(definition, statusBuilder, schema, resourcesWithKeys, serializationLogger);
438
+ // 4. Analyze composition body for control flow patterns (must run before validation)
439
+ const { compositionAnalysis, analysisState } = processCompositionBodyAnalysis(statusMappings, resourcesWithKeys, analyzedStatusMappings, serializationLogger);
440
+ // 5. Validate resource IDs and CEL expressions
642
441
  const validation = validateResourceGraphDefinition(resourcesWithKeys, analyzedStatusMappings);
643
442
  if (!validation.isValid) {
644
443
  const errorMessages = validation.errors.map((err) => `${err.field}: ${err.error}`).join('\n');
645
- throw new Error(`ResourceGraphDefinition validation failed:\n${errorMessages}`);
444
+ throw new ValidationError(`ResourceGraphDefinition validation failed:\n${errorMessages}`, 'ResourceGraphDefinition', definition.name, undefined, ['Fix the validation errors listed above']);
646
445
  }
647
- // Log warnings if any
648
446
  if (validation.warnings.length > 0) {
649
447
  serializationLogger.warn('ResourceGraphDefinition validation warnings', {
650
448
  warnings: validation.warnings.map((w) => ({
@@ -657,183 +455,86 @@ function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, op
657
455
  // Evaluate and optimize CEL expressions
658
456
  const evaluationContext = { resources: resourcesWithKeys, schema };
659
457
  const { mappings: optimizedStatusMappings, optimizations } = optimizeStatusMappings(analyzedStatusMappings, evaluationContext);
660
- // Log optimizations if any
661
458
  if (optimizations.length > 0) {
662
459
  serializationLogger.info('CEL expression optimizations applied', { optimizations });
663
460
  }
664
- // schemaDefinition is already created above with default apiVersion handling
665
- /**
666
- * Find a resource by key name in the resources map
667
- * This enables cross-composition magic proxy access like composition.database
668
- */
669
- function findResourceByKey(key) {
670
- if (typeof key !== 'string')
671
- return undefined;
672
- // Strategy 1: Direct match by generated resource ID
673
- if (resourcesWithKeys[key]) {
674
- return resourcesWithKeys[key];
675
- }
676
- // Strategy 2: Smart pattern matching for common cases
677
- const keyLower = key.toLowerCase();
678
- const keyParts = key.split(/[-_]/).map((p) => p.toLowerCase()); // Split on hyphens and underscores
679
- for (const [resourceId, resource] of Object.entries(resourcesWithKeys)) {
680
- const kind = resource.kind.toLowerCase();
681
- const name = resource.metadata.name?.toLowerCase() || '';
682
- const resourceIdLower = resourceId.toLowerCase();
683
- // Pattern 1: Key parts match resource name parts
684
- // e.g., 'my-deployment' matches 'test-deployment' if 'deployment' appears in both
685
- const nameParts = name.split(/[-_]/).map((p) => p.toLowerCase());
686
- const hasCommonParts = keyParts.some((keyPart) => nameParts.some((namePart) => keyPart.includes(namePart) || namePart.includes(keyPart)));
687
- if (hasCommonParts) {
688
- // Also check if the kinds match logically
689
- if (keyParts.includes(kind) ||
690
- (keyParts.includes('deployment') && kind === 'deployment') ||
691
- (keyParts.includes('service') && kind === 'service')) {
692
- return resource;
693
- }
694
- }
695
- // Pattern 2: Key contains kind and resource ID contains resource name parts
696
- if (keyParts.includes(kind)) {
697
- const nameInResourceId = nameParts.some((part) => resourceIdLower.includes(part));
698
- if (nameInResourceId) {
699
- return resource;
700
- }
701
- }
702
- // Pattern 3: Common semantic patterns
703
- const semanticPatterns = {
704
- database: ['deployment', 'statefulset'],
705
- db: ['deployment', 'statefulset'],
706
- cache: ['deployment', 'statefulset'],
707
- redis: ['deployment', 'statefulset'],
708
- service: ['service'],
709
- svc: ['service'],
710
- ingress: ['ingress'],
711
- configmap: ['configmap'],
712
- secret: ['secret'],
713
- };
714
- for (const [pattern, kinds] of Object.entries(semanticPatterns)) {
715
- if (keyParts.includes(pattern) && kinds.includes(kind)) {
716
- return resource;
717
- }
718
- }
719
- }
720
- // Strategy 3: Case-insensitive match on generated resource ID
721
- for (const [resourceKey, resource] of Object.entries(resourcesWithKeys)) {
722
- if (resourceKey.toLowerCase() === keyLower) {
723
- return resource;
724
- }
725
- }
726
- // Strategy 4: Partial matching - find resources that contain key parts in their ID
727
- for (const [resourceKey, resource] of Object.entries(resourcesWithKeys)) {
728
- const resourceKeyLower = resourceKey.toLowerCase();
729
- if (keyParts.some((part) => part.length > 2 && resourceKeyLower.includes(part))) {
730
- return resource;
731
- }
732
- }
733
- return undefined;
734
- }
735
- // Create the base TypedResourceGraph object
461
+ // 6. Build the composition re-execution function for direct factory
462
+ const declarativeCompositionFn = (spec) => {
463
+ const actualSchema = { spec, status: {} };
464
+ const resources = resourceBuilder(actualSchema);
465
+ return statusBuilder(actualSchema, resources);
466
+ };
467
+ // 7. Assemble the TypedResourceGraph result object
468
+ const uniqueResourcesSet = new Set(Object.values(resourcesWithKeys));
736
469
  const baseResourceGraph = {
737
470
  name: definition.name,
738
- resources: Object.values(resourcesWithKeys),
471
+ resources: Array.from(uniqueResourcesSet),
739
472
  schema,
740
- // Store closures for access during factory creation
741
473
  closures,
742
- // Store analysis results for factory-specific processing
474
+ _compositionFn: declarativeCompositionFn,
475
+ _definition: definition,
743
476
  _analysisResults: {
744
477
  mappingAnalysis,
745
478
  hasKubernetesRefs: mappingAnalysis.kubernetesRefFields.length > 0,
746
479
  statusMappings,
747
- analyzedStatusMappings
480
+ analyzedStatusMappings,
748
481
  },
749
482
  factory(mode, factoryOptions) {
750
483
  if (mode === 'direct') {
751
- // For direct factory, we need to re-analyze status mappings with direct factory context
752
- let directStatusMappings = analyzedStatusMappings;
753
- if (this._analysisResults.hasKubernetesRefs) {
754
- try {
755
- serializationLogger.debug('Re-analyzing status mappings for direct factory pattern');
756
- const directStatusAnalyzer = new StatusBuilderAnalyzer(undefined, {
757
- factoryType: 'direct',
758
- performOptionalityAnalysis: true,
759
- includeSourceMapping: true
760
- });
761
- const directAnalysisResult = directStatusAnalyzer.analyzeReturnObjectWithMagicProxy(this._analysisResults.statusMappings, resourcesWithKeys, schema);
762
- if (directAnalysisResult.errors.length === 0) {
763
- // Merge with preserved CEL expressions
764
- const { preservedMappings: directPreservedMappings } = detectAndPreserveCelExpressions(this._analysisResults.statusMappings);
765
- directStatusMappings = mergePreservedCelExpressions(directAnalysisResult.statusMappings, directPreservedMappings);
766
- serializationLogger.debug('Successfully re-analyzed status mappings for direct factory');
767
- }
768
- }
769
- catch (error) {
770
- serializationLogger.warn('Failed to re-analyze status mappings for direct factory, using default analysis', error);
771
- }
772
- }
773
- const directFactory = createDirectResourceFactory(definition.name, resourcesWithKeys, schemaDefinition, statusBuilder, {
484
+ const directStatusMappings = reanalyzeStatusForDirectFactory(this._analysisResults, analyzedStatusMappings, resourcesWithKeys, schema, serializationLogger);
485
+ return createDirectResourceFactory(definition.name, resourcesWithKeys, schemaDefinition, statusBuilder, {
774
486
  ...factoryOptions,
775
487
  closures,
776
- // Pass the factory-specific status mappings
777
- statusMappings: directStatusMappings
488
+ statusMappings: directStatusMappings,
489
+ compositionFn: declarativeCompositionFn,
490
+ compositionDefinition: definition,
778
491
  });
779
- return directFactory;
780
492
  }
781
493
  else if (mode === 'kro') {
782
- // For Kro factory, use the already analyzed status mappings (which default to Kro pattern)
783
- const kroFactory = createKroResourceFactory(definition.name, resourcesWithKeys, schemaDefinition, analyzedStatusMappings, {
494
+ return createKroResourceFactory(definition.name, resourcesWithKeys, schemaDefinition, analyzedStatusMappings, {
784
495
  ...factoryOptions,
785
496
  closures,
786
- // Indicate this is for Kro factory pattern
787
- factoryType: 'kro'
497
+ factoryType: 'kro',
788
498
  });
789
- return kroFactory;
790
499
  }
791
500
  else {
792
- throw new Error(`Unsupported factory mode: ${mode}`);
501
+ throw new ValidationError(`Unsupported factory mode: ${mode}`, 'ResourceGraphDefinition', definition.name, 'mode', ['Use "kro" or "direct" as the factory mode']);
793
502
  }
794
503
  },
795
504
  toYaml() {
796
- // Generate ResourceGraphDefinition YAML with user-defined status mappings
797
- const kroSchema = generateKroSchemaFromArktype(definition.name, schemaDefinition, resourcesWithKeys, optimizedStatusMappings);
798
- return serializeResourceGraphToYaml(definition.name, resourcesWithKeys, options, kroSchema);
799
- },
800
- };
801
- // Wrap with cross-composition magic proxy for resource access
802
- return new Proxy(baseResourceGraph, {
803
- get(target, prop, receiver) {
804
- // Handle existing properties normally
805
- if (prop in target) {
806
- return Reflect.get(target, prop, receiver);
807
- }
808
- // For unknown properties, check if it's a resource key and create external ref
809
- const matchingResource = findResourceByKey(prop);
810
- if (matchingResource?.metadata.name) {
811
- return externalRef(matchingResource.apiVersion, matchingResource.kind, matchingResource.metadata.name, matchingResource.metadata.namespace);
505
+ // Apply composition body analysis results (guard: only once)
506
+ if (compositionAnalysis && !analysisState.appliedToResources) {
507
+ analysisState.appliedToResources = true;
508
+ if (compositionAnalysis.resources.size > 0 ||
509
+ compositionAnalysis.templateOverrides.size > 0) {
510
+ applyAnalysisToResources(resourcesWithKeys, compositionAnalysis);
511
+ serializationLogger.debug('Applied composition body analysis', {
512
+ analyzedResources: compositionAnalysis.resources.size,
513
+ templateOverrides: compositionAnalysis.templateOverrides.size,
514
+ errors: compositionAnalysis.errors.length,
515
+ });
516
+ }
812
517
  }
813
- // Return undefined for non-existent properties (standard JavaScript behavior)
814
- return undefined;
815
- },
816
- // Ensure proper enumeration of properties
817
- ownKeys(target) {
818
- return Reflect.ownKeys(target);
819
- },
820
- // Ensure proper property descriptor handling
821
- getOwnPropertyDescriptor(target, prop) {
822
- // For existing properties, return normal descriptor
823
- if (prop in target) {
824
- return Reflect.getOwnPropertyDescriptor(target, prop);
518
+ const kroSchema = generateKroSchemaFromArktype(definition.name, schemaDefinition, resourcesWithKeys, optimizedStatusMappings);
519
+ if (definition.group) {
520
+ kroSchema.group = definition.group;
825
521
  }
826
- // For resource properties, indicate they exist but are not enumerable
827
- const matchingResource = findResourceByKey(prop);
828
- if (matchingResource) {
829
- return {
830
- configurable: true,
831
- enumerable: false, // Don't enumerate resource properties in for..in loops
832
- value: undefined, // Value will be computed by get trap
833
- };
522
+ // Inject status overrides into schema status section.
523
+ // Convert "..." to '...' in CEL string literals for YAML compatibility.
524
+ const statusOverrides = compositionAnalysis?.statusOverrides ?? [];
525
+ if (statusOverrides.length > 0) {
526
+ if (!kroSchema.status) {
527
+ kroSchema.status = {};
528
+ }
529
+ for (const override of statusOverrides) {
530
+ const yamlSafe = override.celExpression.replace(/"([^"\\]*)"/g, "'$1'");
531
+ kroSchema.status[override.propertyPath] = yamlSafe;
532
+ }
834
533
  }
835
- return undefined;
534
+ return serializeResourceGraphToYaml(definition.name, resourcesWithKeys, options, kroSchema);
836
535
  },
837
- });
536
+ };
537
+ // 8. Wrap with cross-composition magic proxy
538
+ return wrapWithResourceGraphProxy(baseResourceGraph, resourcesWithKeys, serializationLogger);
838
539
  }
839
540
  //# sourceMappingURL=core.js.map