typekro 0.28.1 → 0.29.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 (671) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/advanced/index.d.ts +5 -1
  3. package/dist/advanced/index.d.ts.map +1 -1
  4. package/dist/advanced/index.js +2 -3
  5. package/dist/advanced/index.js.map +1 -1
  6. package/dist/alchemy/deployers.d.ts +6 -4
  7. package/dist/alchemy/deployers.d.ts.map +1 -1
  8. package/dist/alchemy/deployers.js +46 -9
  9. package/dist/alchemy/deployers.js.map +1 -1
  10. package/dist/alchemy/index.d.ts +2 -3
  11. package/dist/alchemy/index.d.ts.map +1 -1
  12. package/dist/alchemy/index.js +1 -1
  13. package/dist/alchemy/index.js.map +1 -1
  14. package/dist/alchemy/kro-delete.d.ts +6 -5
  15. package/dist/alchemy/kro-delete.d.ts.map +1 -1
  16. package/dist/alchemy/kro-delete.js +169 -22
  17. package/dist/alchemy/kro-delete.js.map +1 -1
  18. package/dist/alchemy/resource-registration.d.ts +24 -31
  19. package/dist/alchemy/resource-registration.d.ts.map +1 -1
  20. package/dist/alchemy/resource-registration.js +439 -75
  21. package/dist/alchemy/resource-registration.js.map +1 -1
  22. package/dist/alchemy/types.d.ts +56 -14
  23. package/dist/alchemy/types.d.ts.map +1 -1
  24. package/dist/alchemy/utilities.d.ts +2 -2
  25. package/dist/alchemy/utilities.d.ts.map +1 -1
  26. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts.map +1 -1
  27. package/dist/compositions/typekro-runtime/typekro-runtime.js +31 -28
  28. package/dist/compositions/typekro-runtime/typekro-runtime.js.map +1 -1
  29. package/dist/compositions/typekro-runtime/types.d.ts +12 -0
  30. package/dist/compositions/typekro-runtime/types.d.ts.map +1 -1
  31. package/dist/core/composition/analysis-metadata.d.ts +15 -0
  32. package/dist/core/composition/analysis-metadata.d.ts.map +1 -0
  33. package/dist/core/composition/analysis-metadata.js +20 -0
  34. package/dist/core/composition/analysis-metadata.js.map +1 -0
  35. package/dist/core/composition/imperative.d.ts.map +1 -1
  36. package/dist/core/composition/imperative.js +38 -9
  37. package/dist/core/composition/imperative.js.map +1 -1
  38. package/dist/core/composition/nested-status-cel.js +3 -3
  39. package/dist/core/composition/nested-status-cel.js.map +1 -1
  40. package/dist/core/constants/brands.d.ts +1 -1
  41. package/dist/core/constants/brands.d.ts.map +1 -1
  42. package/dist/core/constants/brands.js +1 -1
  43. package/dist/core/constants/brands.js.map +1 -1
  44. package/dist/core/dependencies/resolver.d.ts +3 -1
  45. package/dist/core/dependencies/resolver.d.ts.map +1 -1
  46. package/dist/core/dependencies/resolver.js +29 -13
  47. package/dist/core/dependencies/resolver.js.map +1 -1
  48. package/dist/core/deployment/deletion-result.d.ts +22 -0
  49. package/dist/core/deployment/deletion-result.d.ts.map +1 -0
  50. package/dist/core/deployment/deletion-result.js +108 -0
  51. package/dist/core/deployment/deletion-result.js.map +1 -0
  52. package/dist/core/deployment/deployment-state-discovery.d.ts +1 -0
  53. package/dist/core/deployment/deployment-state-discovery.d.ts.map +1 -1
  54. package/dist/core/deployment/deployment-state-discovery.js +89 -9
  55. package/dist/core/deployment/deployment-state-discovery.js.map +1 -1
  56. package/dist/core/deployment/direct-factory.d.ts +46 -25
  57. package/dist/core/deployment/direct-factory.d.ts.map +1 -1
  58. package/dist/core/deployment/direct-factory.js +536 -126
  59. package/dist/core/deployment/direct-factory.js.map +1 -1
  60. package/dist/core/deployment/engine.d.ts +4 -1
  61. package/dist/core/deployment/engine.d.ts.map +1 -1
  62. package/dist/core/deployment/engine.js +105 -34
  63. package/dist/core/deployment/engine.js.map +1 -1
  64. package/dist/core/deployment/errors.d.ts +20 -1
  65. package/dist/core/deployment/errors.d.ts.map +1 -1
  66. package/dist/core/deployment/errors.js +55 -0
  67. package/dist/core/deployment/errors.js.map +1 -1
  68. package/dist/core/deployment/event-monitor.d.ts +4 -3
  69. package/dist/core/deployment/event-monitor.d.ts.map +1 -1
  70. package/dist/core/deployment/event-monitor.js +17 -5
  71. package/dist/core/deployment/event-monitor.js.map +1 -1
  72. package/dist/core/deployment/index.d.ts +1 -1
  73. package/dist/core/deployment/index.d.ts.map +1 -1
  74. package/dist/core/deployment/index.js +1 -1
  75. package/dist/core/deployment/index.js.map +1 -1
  76. package/dist/core/deployment/k8s-helpers.d.ts +1 -1
  77. package/dist/core/deployment/k8s-helpers.d.ts.map +1 -1
  78. package/dist/core/deployment/k8s-helpers.js +11 -5
  79. package/dist/core/deployment/k8s-helpers.js.map +1 -1
  80. package/dist/core/deployment/kro-factory.d.ts +54 -30
  81. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  82. package/dist/core/deployment/kro-factory.js +2002 -259
  83. package/dist/core/deployment/kro-factory.js.map +1 -1
  84. package/dist/core/deployment/kro-instance-admission.d.ts +17 -0
  85. package/dist/core/deployment/kro-instance-admission.d.ts.map +1 -0
  86. package/dist/core/deployment/kro-instance-admission.js +73 -0
  87. package/dist/core/deployment/kro-instance-admission.js.map +1 -0
  88. package/dist/core/deployment/kro-instance-safety.d.ts +0 -3
  89. package/dist/core/deployment/kro-instance-safety.d.ts.map +1 -1
  90. package/dist/core/deployment/kro-instance-safety.js +0 -11
  91. package/dist/core/deployment/kro-instance-safety.js.map +1 -1
  92. package/dist/core/deployment/kro-namespace-teardown.d.ts +63 -5
  93. package/dist/core/deployment/kro-namespace-teardown.d.ts.map +1 -1
  94. package/dist/core/deployment/kro-namespace-teardown.js +124 -12
  95. package/dist/core/deployment/kro-namespace-teardown.js.map +1 -1
  96. package/dist/core/deployment/kro-readiness.d.ts +2 -0
  97. package/dist/core/deployment/kro-readiness.d.ts.map +1 -1
  98. package/dist/core/deployment/kro-readiness.js +23 -6
  99. package/dist/core/deployment/kro-readiness.js.map +1 -1
  100. package/dist/core/deployment/poll-timeout.d.ts +1 -1
  101. package/dist/core/deployment/poll-timeout.d.ts.map +1 -1
  102. package/dist/core/deployment/poll-timeout.js +12 -1
  103. package/dist/core/deployment/poll-timeout.js.map +1 -1
  104. package/dist/core/deployment/resource-applier.d.ts +19 -3
  105. package/dist/core/deployment/resource-applier.d.ts.map +1 -1
  106. package/dist/core/deployment/resource-applier.js +263 -44
  107. package/dist/core/deployment/resource-applier.js.map +1 -1
  108. package/dist/core/deployment/rollback-manager.d.ts +6 -1
  109. package/dist/core/deployment/rollback-manager.d.ts.map +1 -1
  110. package/dist/core/deployment/rollback-manager.js +38 -12
  111. package/dist/core/deployment/rollback-manager.js.map +1 -1
  112. package/dist/core/deployment/schema-cel-evaluator.d.ts.map +1 -1
  113. package/dist/core/deployment/schema-cel-evaluator.js +63 -0
  114. package/dist/core/deployment/schema-cel-evaluator.js.map +1 -1
  115. package/dist/core/deployment/shared-utilities.d.ts +11 -6
  116. package/dist/core/deployment/shared-utilities.d.ts.map +1 -1
  117. package/dist/core/deployment/shared-utilities.js +169 -14
  118. package/dist/core/deployment/shared-utilities.js.map +1 -1
  119. package/dist/core/deployment/singleton-gitops.d.ts.map +1 -1
  120. package/dist/core/deployment/singleton-gitops.js +0 -2
  121. package/dist/core/deployment/singleton-gitops.js.map +1 -1
  122. package/dist/core/deployment/singleton-owner-drift.d.ts +11 -2
  123. package/dist/core/deployment/singleton-owner-drift.d.ts.map +1 -1
  124. package/dist/core/deployment/singleton-owner-drift.js +30 -13
  125. package/dist/core/deployment/singleton-owner-drift.js.map +1 -1
  126. package/dist/core/deployment/strategies/base-strategy.d.ts +2 -0
  127. package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
  128. package/dist/core/deployment/strategies/base-strategy.js +19 -2
  129. package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
  130. package/dist/core/deployment/strategies/direct-strategy.d.ts +3 -0
  131. package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -1
  132. package/dist/core/deployment/strategies/direct-strategy.js +31 -8
  133. package/dist/core/deployment/strategies/direct-strategy.js.map +1 -1
  134. package/dist/core/deployment/strategies/index.d.ts +1 -1
  135. package/dist/core/deployment/strategies/index.d.ts.map +1 -1
  136. package/dist/core/deployment/strategies/index.js +1 -1
  137. package/dist/core/deployment/strategies/index.js.map +1 -1
  138. package/dist/core/errors.d.ts +2 -2
  139. package/dist/core/errors.d.ts.map +1 -1
  140. package/dist/core/errors.js.map +1 -1
  141. package/dist/core/expressions/analysis/cel-emitter.d.ts.map +1 -1
  142. package/dist/core/expressions/analysis/cel-emitter.js +17 -13
  143. package/dist/core/expressions/analysis/cel-emitter.js.map +1 -1
  144. package/dist/core/expressions/analysis/expression-metadata.d.ts +15 -0
  145. package/dist/core/expressions/analysis/expression-metadata.d.ts.map +1 -0
  146. package/dist/core/expressions/analysis/expression-metadata.js +10 -0
  147. package/dist/core/expressions/analysis/expression-metadata.js.map +1 -0
  148. package/dist/core/expressions/analysis/ready-when.d.ts +3 -0
  149. package/dist/core/expressions/analysis/ready-when.d.ts.map +1 -0
  150. package/dist/core/expressions/analysis/ready-when.js +127 -0
  151. package/dist/core/expressions/analysis/ready-when.js.map +1 -0
  152. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts +3 -2
  153. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts.map +1 -1
  154. package/dist/core/expressions/composition/composition-analyzer-helpers.js +6 -4
  155. package/dist/core/expressions/composition/composition-analyzer-helpers.js.map +1 -1
  156. package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts +3 -2
  157. package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts.map +1 -1
  158. package/dist/core/expressions/composition/composition-analyzer-ternary.js +12 -12
  159. package/dist/core/expressions/composition/composition-analyzer-ternary.js.map +1 -1
  160. package/dist/core/expressions/composition/composition-analyzer-traversal.d.ts.map +1 -1
  161. package/dist/core/expressions/composition/composition-analyzer-traversal.js +68 -4
  162. package/dist/core/expressions/composition/composition-analyzer-traversal.js.map +1 -1
  163. package/dist/core/expressions/composition/composition-analyzer-types.d.ts +2 -0
  164. package/dist/core/expressions/composition/composition-analyzer-types.d.ts.map +1 -1
  165. package/dist/core/expressions/composition/composition-analyzer.d.ts.map +1 -1
  166. package/dist/core/expressions/composition/composition-analyzer.js +2 -0
  167. package/dist/core/expressions/composition/composition-analyzer.js.map +1 -1
  168. package/dist/core/expressions/factory/status-builder-analyzer.d.ts.map +1 -1
  169. package/dist/core/expressions/factory/status-builder-analyzer.js +14 -1
  170. package/dist/core/expressions/factory/status-builder-analyzer.js.map +1 -1
  171. package/dist/core/kubernetes/api.d.ts.map +1 -1
  172. package/dist/core/kubernetes/api.js +2 -3
  173. package/dist/core/kubernetes/api.js.map +1 -1
  174. package/dist/core/kubernetes/bun-api-client.d.ts +1 -1
  175. package/dist/core/kubernetes/bun-api-client.d.ts.map +1 -1
  176. package/dist/core/kubernetes/bun-api-client.js +17 -17
  177. package/dist/core/kubernetes/bun-api-client.js.map +1 -1
  178. package/dist/core/kubernetes/bun-http-library.d.ts +16 -0
  179. package/dist/core/kubernetes/bun-http-library.d.ts.map +1 -1
  180. package/dist/core/kubernetes/bun-http-library.js +7 -1
  181. package/dist/core/kubernetes/bun-http-library.js.map +1 -1
  182. package/dist/core/kubernetes/bun-watch.d.ts +30 -0
  183. package/dist/core/kubernetes/bun-watch.d.ts.map +1 -0
  184. package/dist/core/kubernetes/bun-watch.js +144 -0
  185. package/dist/core/kubernetes/bun-watch.js.map +1 -0
  186. package/dist/core/kubernetes/client-node-runtime.d.ts +10 -0
  187. package/dist/core/kubernetes/client-node-runtime.d.ts.map +1 -0
  188. package/dist/core/kubernetes/client-node-runtime.js +15 -0
  189. package/dist/core/kubernetes/client-node-runtime.js.map +1 -0
  190. package/dist/core/kubernetes/client-provider.d.ts +21 -1
  191. package/dist/core/kubernetes/client-provider.d.ts.map +1 -1
  192. package/dist/core/kubernetes/client-provider.js +10 -10
  193. package/dist/core/kubernetes/client-provider.js.map +1 -1
  194. package/dist/core/kubernetes/index.d.ts +1 -1
  195. package/dist/core/kubernetes/index.d.ts.map +1 -1
  196. package/dist/core/kubernetes/index.js.map +1 -1
  197. package/dist/core/metadata/resource-metadata.d.ts +24 -1
  198. package/dist/core/metadata/resource-metadata.d.ts.map +1 -1
  199. package/dist/core/metadata/resource-metadata.js +8 -4
  200. package/dist/core/metadata/resource-metadata.js.map +1 -1
  201. package/dist/core/planning/artifact-codec.d.ts +14 -0
  202. package/dist/core/planning/artifact-codec.d.ts.map +1 -0
  203. package/dist/core/planning/artifact-codec.js +329 -0
  204. package/dist/core/planning/artifact-codec.js.map +1 -0
  205. package/dist/core/planning/artifacts.d.ts +212 -0
  206. package/dist/core/planning/artifacts.d.ts.map +1 -0
  207. package/dist/core/planning/artifacts.js +5 -0
  208. package/dist/core/planning/artifacts.js.map +1 -0
  209. package/dist/core/planning/aspects.d.ts +11 -0
  210. package/dist/core/planning/aspects.d.ts.map +1 -0
  211. package/dist/core/planning/aspects.js +77 -0
  212. package/dist/core/planning/aspects.js.map +1 -0
  213. package/dist/core/planning/canonical.d.ts +10 -0
  214. package/dist/core/planning/canonical.d.ts.map +1 -0
  215. package/dist/core/planning/canonical.js +54 -0
  216. package/dist/core/planning/canonical.js.map +1 -0
  217. package/dist/core/planning/capabilities.d.ts +16 -0
  218. package/dist/core/planning/capabilities.d.ts.map +1 -0
  219. package/dist/core/planning/capabilities.js +90 -0
  220. package/dist/core/planning/capabilities.js.map +1 -0
  221. package/dist/core/planning/capture.d.ts +29 -0
  222. package/dist/core/planning/capture.d.ts.map +1 -0
  223. package/dist/core/planning/capture.js +18 -0
  224. package/dist/core/planning/capture.js.map +1 -0
  225. package/dist/core/planning/compiler.d.ts +12 -0
  226. package/dist/core/planning/compiler.d.ts.map +1 -0
  227. package/dist/core/planning/compiler.js +631 -0
  228. package/dist/core/planning/compiler.js.map +1 -0
  229. package/dist/core/planning/direct-runtime-adapter.d.ts +39 -0
  230. package/dist/core/planning/direct-runtime-adapter.d.ts.map +1 -0
  231. package/dist/core/planning/direct-runtime-adapter.js +238 -0
  232. package/dist/core/planning/direct-runtime-adapter.js.map +1 -0
  233. package/dist/core/planning/execution-record.d.ts +21 -0
  234. package/dist/core/planning/execution-record.d.ts.map +1 -0
  235. package/dist/core/planning/execution-record.js +304 -0
  236. package/dist/core/planning/execution-record.js.map +1 -0
  237. package/dist/core/planning/index.d.ts +20 -0
  238. package/dist/core/planning/index.d.ts.map +1 -0
  239. package/dist/core/planning/index.js +18 -0
  240. package/dist/core/planning/index.js.map +1 -0
  241. package/dist/core/planning/kro-bundle.d.ts +24 -0
  242. package/dist/core/planning/kro-bundle.d.ts.map +1 -0
  243. package/dist/core/planning/kro-bundle.js +314 -0
  244. package/dist/core/planning/kro-bundle.js.map +1 -0
  245. package/dist/core/planning/kro-runtime-adapter.d.ts +28 -0
  246. package/dist/core/planning/kro-runtime-adapter.d.ts.map +1 -0
  247. package/dist/core/planning/kro-runtime-adapter.js +211 -0
  248. package/dist/core/planning/kro-runtime-adapter.js.map +1 -0
  249. package/dist/core/planning/materialization.d.ts +54 -0
  250. package/dist/core/planning/materialization.d.ts.map +1 -0
  251. package/dist/core/planning/materialization.js +489 -0
  252. package/dist/core/planning/materialization.js.map +1 -0
  253. package/dist/core/planning/plan-codec.d.ts +11 -0
  254. package/dist/core/planning/plan-codec.d.ts.map +1 -0
  255. package/dist/core/planning/plan-codec.js +555 -0
  256. package/dist/core/planning/plan-codec.js.map +1 -0
  257. package/dist/core/planning/planner.d.ts +21 -0
  258. package/dist/core/planning/planner.d.ts.map +1 -0
  259. package/dist/core/planning/planner.js +1518 -0
  260. package/dist/core/planning/planner.js.map +1 -0
  261. package/dist/core/planning/schema.d.ts +10 -0
  262. package/dist/core/planning/schema.d.ts.map +1 -0
  263. package/dist/core/planning/schema.js +159 -0
  264. package/dist/core/planning/schema.js.map +1 -0
  265. package/dist/core/planning/types.d.ts +441 -0
  266. package/dist/core/planning/types.d.ts.map +1 -0
  267. package/dist/core/planning/types.js +3 -0
  268. package/dist/core/planning/types.js.map +1 -0
  269. package/dist/core/planning/values.d.ts +76 -0
  270. package/dist/core/planning/values.d.ts.map +1 -0
  271. package/dist/core/planning/values.js +852 -0
  272. package/dist/core/planning/values.js.map +1 -0
  273. package/dist/core/proxy/create-resource.d.ts +12 -0
  274. package/dist/core/proxy/create-resource.d.ts.map +1 -1
  275. package/dist/core/proxy/create-resource.js +39 -9
  276. package/dist/core/proxy/create-resource.js.map +1 -1
  277. package/dist/core/readiness/evaluator-factories.d.ts +3 -1
  278. package/dist/core/readiness/evaluator-factories.d.ts.map +1 -1
  279. package/dist/core/readiness/evaluator-factories.js +130 -5
  280. package/dist/core/readiness/evaluator-factories.js.map +1 -1
  281. package/dist/core/readiness/index.d.ts +2 -1
  282. package/dist/core/readiness/index.d.ts.map +1 -1
  283. package/dist/core/readiness/index.js +2 -1
  284. package/dist/core/readiness/index.js.map +1 -1
  285. package/dist/core/readiness/portable-strategies.d.ts +28 -0
  286. package/dist/core/readiness/portable-strategies.d.ts.map +1 -0
  287. package/dist/core/readiness/portable-strategies.js +55 -0
  288. package/dist/core/readiness/portable-strategies.js.map +1 -0
  289. package/dist/core/readiness/strategy-configuration.d.ts +12 -0
  290. package/dist/core/readiness/strategy-configuration.d.ts.map +1 -0
  291. package/dist/core/readiness/strategy-configuration.js +51 -0
  292. package/dist/core/readiness/strategy-configuration.js.map +1 -0
  293. package/dist/core/references/cel-evaluator.d.ts +5 -0
  294. package/dist/core/references/cel-evaluator.d.ts.map +1 -1
  295. package/dist/core/references/cel-evaluator.js +33 -2
  296. package/dist/core/references/cel-evaluator.js.map +1 -1
  297. package/dist/core/references/external-refs.d.ts +2 -0
  298. package/dist/core/references/external-refs.d.ts.map +1 -1
  299. package/dist/core/references/external-refs.js +3 -1
  300. package/dist/core/references/external-refs.js.map +1 -1
  301. package/dist/core/references/resolver.d.ts +7 -1
  302. package/dist/core/references/resolver.d.ts.map +1 -1
  303. package/dist/core/references/resolver.js +91 -9
  304. package/dist/core/references/resolver.js.map +1 -1
  305. package/dist/core/references/schema-proxy.d.ts.map +1 -1
  306. package/dist/core/references/schema-proxy.js +35 -21
  307. package/dist/core/references/schema-proxy.js.map +1 -1
  308. package/dist/core/resources/factory-registry.d.ts +64 -2
  309. package/dist/core/resources/factory-registry.d.ts.map +1 -1
  310. package/dist/core/resources/factory-registry.js +74 -3
  311. package/dist/core/resources/factory-registry.js.map +1 -1
  312. package/dist/core/resources/index.d.ts +3 -2
  313. package/dist/core/resources/index.d.ts.map +1 -1
  314. package/dist/core/resources/index.js +2 -1
  315. package/dist/core/resources/index.js.map +1 -1
  316. package/dist/core/resources/live-comparison.d.ts +58 -0
  317. package/dist/core/resources/live-comparison.d.ts.map +1 -0
  318. package/dist/core/resources/live-comparison.js +293 -0
  319. package/dist/core/resources/live-comparison.js.map +1 -0
  320. package/dist/core/runtime/standalone-operation.d.ts +12 -0
  321. package/dist/core/runtime/standalone-operation.d.ts.map +1 -0
  322. package/dist/core/runtime/standalone-operation.js +62 -0
  323. package/dist/core/runtime/standalone-operation.js.map +1 -0
  324. package/dist/core/serialization/cel-references.d.ts.map +1 -1
  325. package/dist/core/serialization/cel-references.js +11 -1
  326. package/dist/core/serialization/cel-references.js.map +1 -1
  327. package/dist/core/serialization/core.d.ts.map +1 -1
  328. package/dist/core/serialization/core.js +277 -182
  329. package/dist/core/serialization/core.js.map +1 -1
  330. package/dist/core/serialization/schema.d.ts.map +1 -1
  331. package/dist/core/serialization/schema.js +3 -3
  332. package/dist/core/serialization/schema.js.map +1 -1
  333. package/dist/core/serialization/status-analysis-pipeline.d.ts +1 -1
  334. package/dist/core/serialization/status-analysis-pipeline.d.ts.map +1 -1
  335. package/dist/core/serialization/status-analysis-pipeline.js +14 -11
  336. package/dist/core/serialization/status-analysis-pipeline.js.map +1 -1
  337. package/dist/core/serialization/yaml.d.ts +5 -1
  338. package/dist/core/serialization/yaml.d.ts.map +1 -1
  339. package/dist/core/serialization/yaml.js +35 -182
  340. package/dist/core/serialization/yaml.js.map +1 -1
  341. package/dist/core/types/deployment.d.ts +135 -14
  342. package/dist/core/types/deployment.d.ts.map +1 -1
  343. package/dist/core/types/kubernetes.d.ts +3 -0
  344. package/dist/core/types/kubernetes.d.ts.map +1 -1
  345. package/dist/core/types/resource-graph.d.ts +7 -1
  346. package/dist/core/types/resource-graph.d.ts.map +1 -1
  347. package/dist/core/types/serialization.d.ts +8 -1
  348. package/dist/core/types/serialization.d.ts.map +1 -1
  349. package/dist/core/validation/cel-validator.d.ts.map +1 -1
  350. package/dist/core/validation/cel-validator.js +25 -16
  351. package/dist/core/validation/cel-validator.js.map +1 -1
  352. package/dist/experimental-planning.d.ts +13 -0
  353. package/dist/experimental-planning.d.ts.map +1 -0
  354. package/dist/experimental-planning.js +12 -0
  355. package/dist/experimental-planning.js.map +1 -0
  356. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts.map +1 -1
  357. package/dist/factories/apisix/compositions/apisix-bootstrap.js +27 -22
  358. package/dist/factories/apisix/compositions/apisix-bootstrap.js.map +1 -1
  359. package/dist/factories/apisix/compositions/apisix-helm-repository.d.ts +15 -0
  360. package/dist/factories/apisix/compositions/apisix-helm-repository.d.ts.map +1 -0
  361. package/dist/factories/apisix/compositions/apisix-helm-repository.js +28 -0
  362. package/dist/factories/apisix/compositions/apisix-helm-repository.js.map +1 -0
  363. package/dist/factories/apisix/compositions/index.d.ts +1 -0
  364. package/dist/factories/apisix/compositions/index.d.ts.map +1 -1
  365. package/dist/factories/apisix/compositions/index.js +1 -0
  366. package/dist/factories/apisix/compositions/index.js.map +1 -1
  367. package/dist/factories/apisix/types.d.ts +22 -0
  368. package/dist/factories/apisix/types.d.ts.map +1 -1
  369. package/dist/factories/apisix/types.js +16 -0
  370. package/dist/factories/apisix/types.js.map +1 -1
  371. package/dist/factories/apisix/utils/admin-credentials.d.ts +1 -0
  372. package/dist/factories/apisix/utils/admin-credentials.d.ts.map +1 -1
  373. package/dist/factories/apisix/utils/admin-credentials.js +5 -4
  374. package/dist/factories/apisix/utils/admin-credentials.js.map +1 -1
  375. package/dist/factories/caddy/compositions/caddy-ingress.d.ts.map +1 -1
  376. package/dist/factories/caddy/compositions/caddy-ingress.js +9 -2
  377. package/dist/factories/caddy/compositions/caddy-ingress.js.map +1 -1
  378. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts.map +1 -1
  379. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js +11 -25
  380. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js.map +1 -1
  381. package/dist/factories/cert-manager/resources/certificates.d.ts.map +1 -1
  382. package/dist/factories/cert-manager/resources/certificates.js +2 -1
  383. package/dist/factories/cert-manager/resources/certificates.js.map +1 -1
  384. package/dist/factories/cert-manager/resources/challenges.d.ts.map +1 -1
  385. package/dist/factories/cert-manager/resources/challenges.js +3 -0
  386. package/dist/factories/cert-manager/resources/challenges.js.map +1 -1
  387. package/dist/factories/cilium/compositions/cilium-bootstrap.d.ts +4 -4
  388. package/dist/factories/cilium/resources/gateway.d.ts.map +1 -1
  389. package/dist/factories/cilium/resources/gateway.js +13 -12
  390. package/dist/factories/cilium/resources/gateway.js.map +1 -1
  391. package/dist/factories/cilium/resources/networking.d.ts.map +1 -1
  392. package/dist/factories/cilium/resources/networking.js +9 -0
  393. package/dist/factories/cilium/resources/networking.js.map +1 -1
  394. package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.d.ts +2 -1
  395. package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.d.ts.map +1 -1
  396. package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.js +2 -6
  397. package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.js.map +1 -1
  398. package/dist/factories/clickhouse/resources/installation.d.ts.map +1 -1
  399. package/dist/factories/clickhouse/resources/installation.js +2 -0
  400. package/dist/factories/clickhouse/resources/installation.js.map +1 -1
  401. package/dist/factories/clickhouse/resources/keeper.d.ts.map +1 -1
  402. package/dist/factories/clickhouse/resources/keeper.js +2 -0
  403. package/dist/factories/clickhouse/resources/keeper.js.map +1 -1
  404. package/dist/factories/clickhouse/types.d.ts +5 -2
  405. package/dist/factories/clickhouse/types.d.ts.map +1 -1
  406. package/dist/factories/clickhouse/types.js +2 -1
  407. package/dist/factories/clickhouse/types.js.map +1 -1
  408. package/dist/factories/clickstack/compositions/k8s-telemetry.d.ts +4 -2
  409. package/dist/factories/clickstack/compositions/k8s-telemetry.d.ts.map +1 -1
  410. package/dist/factories/clickstack/compositions/k8s-telemetry.js +2 -5
  411. package/dist/factories/clickstack/compositions/k8s-telemetry.js.map +1 -1
  412. package/dist/factories/clickstack/types.d.ts +2 -1
  413. package/dist/factories/clickstack/types.d.ts.map +1 -1
  414. package/dist/factories/clickstack/types.js +3 -1
  415. package/dist/factories/clickstack/types.js.map +1 -1
  416. package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts +2 -1
  417. package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts.map +1 -1
  418. package/dist/factories/cnpg/compositions/cnpg-bootstrap.js +3 -8
  419. package/dist/factories/cnpg/compositions/cnpg-bootstrap.js.map +1 -1
  420. package/dist/factories/cnpg/resources/backup.d.ts.map +1 -1
  421. package/dist/factories/cnpg/resources/backup.js +2 -0
  422. package/dist/factories/cnpg/resources/backup.js.map +1 -1
  423. package/dist/factories/cnpg/resources/cluster.d.ts.map +1 -1
  424. package/dist/factories/cnpg/resources/cluster.js +2 -1
  425. package/dist/factories/cnpg/resources/cluster.js.map +1 -1
  426. package/dist/factories/cnpg/resources/pooler.d.ts.map +1 -1
  427. package/dist/factories/cnpg/resources/pooler.js +2 -0
  428. package/dist/factories/cnpg/resources/pooler.js.map +1 -1
  429. package/dist/factories/cnpg/resources/scheduled-backup.d.ts.map +1 -1
  430. package/dist/factories/cnpg/resources/scheduled-backup.js +2 -1
  431. package/dist/factories/cnpg/resources/scheduled-backup.js.map +1 -1
  432. package/dist/factories/cnpg/types.d.ts +6 -3
  433. package/dist/factories/cnpg/types.d.ts.map +1 -1
  434. package/dist/factories/cnpg/types.js +2 -1
  435. package/dist/factories/cnpg/types.js.map +1 -1
  436. package/dist/factories/dagster/compositions/dagster-bootstrap.d.ts +2 -0
  437. package/dist/factories/dagster/compositions/dagster-bootstrap.d.ts.map +1 -1
  438. package/dist/factories/dagster/types.d.ts +5 -0
  439. package/dist/factories/dagster/types.d.ts.map +1 -1
  440. package/dist/factories/dagster/types.js +1 -0
  441. package/dist/factories/dagster/types.js.map +1 -1
  442. package/dist/factories/dagster/utils/helm-values-mapper.js +3 -0
  443. package/dist/factories/dagster/utils/helm-values-mapper.js.map +1 -1
  444. package/dist/factories/external-dns/compositions/external-dns-bootstrap.d.ts.map +1 -1
  445. package/dist/factories/external-dns/compositions/external-dns-bootstrap.js +7 -4
  446. package/dist/factories/external-dns/compositions/external-dns-bootstrap.js.map +1 -1
  447. package/dist/factories/external-dns/resources/dns-endpoint.d.ts.map +1 -1
  448. package/dist/factories/external-dns/resources/dns-endpoint.js +20 -18
  449. package/dist/factories/external-dns/resources/dns-endpoint.js.map +1 -1
  450. package/dist/factories/flux/git-repository.d.ts.map +1 -1
  451. package/dist/factories/flux/git-repository.js +41 -34
  452. package/dist/factories/flux/git-repository.js.map +1 -1
  453. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts +0 -6
  454. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts.map +1 -1
  455. package/dist/factories/flux/kustomize/readiness-evaluators.js +12 -2
  456. package/dist/factories/flux/kustomize/readiness-evaluators.js.map +1 -1
  457. package/dist/factories/harbor/compositions/harbor-installation.d.ts +46 -38
  458. package/dist/factories/harbor/compositions/harbor-installation.d.ts.map +1 -1
  459. package/dist/factories/harbor/compositions/harbor-installation.js +4 -2
  460. package/dist/factories/harbor/compositions/harbor-installation.js.map +1 -1
  461. package/dist/factories/harbor/types.d.ts +13 -11
  462. package/dist/factories/harbor/types.d.ts.map +1 -1
  463. package/dist/factories/harbor/types.js +11 -9
  464. package/dist/factories/harbor/types.js.map +1 -1
  465. package/dist/factories/helm/helm-repository.d.ts.map +1 -1
  466. package/dist/factories/helm/helm-repository.js +14 -1
  467. package/dist/factories/helm/helm-repository.js.map +1 -1
  468. package/dist/factories/helm/index.d.ts +2 -0
  469. package/dist/factories/helm/index.d.ts.map +1 -1
  470. package/dist/factories/helm/index.js +1 -0
  471. package/dist/factories/helm/index.js.map +1 -1
  472. package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
  473. package/dist/factories/helm/readiness-evaluators.js +46 -7
  474. package/dist/factories/helm/readiness-evaluators.js.map +1 -1
  475. package/dist/factories/helm/status.d.ts +18 -0
  476. package/dist/factories/helm/status.d.ts.map +1 -0
  477. package/dist/factories/helm/status.js +38 -0
  478. package/dist/factories/helm/status.js.map +1 -0
  479. package/dist/factories/index.d.ts +2 -2
  480. package/dist/factories/index.d.ts.map +1 -1
  481. package/dist/factories/index.js +4 -4
  482. package/dist/factories/index.js.map +1 -1
  483. package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts +1 -1
  484. package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts.map +1 -1
  485. package/dist/factories/inngest/compositions/inngest-bootstrap.js +2 -4
  486. package/dist/factories/inngest/compositions/inngest-bootstrap.js.map +1 -1
  487. package/dist/factories/inngest/resources/helm.d.ts.map +1 -1
  488. package/dist/factories/inngest/resources/helm.js +12 -3
  489. package/dist/factories/inngest/resources/helm.js.map +1 -1
  490. package/dist/factories/inngest/types.d.ts +3 -7
  491. package/dist/factories/inngest/types.d.ts.map +1 -1
  492. package/dist/factories/inngest/types.js +1 -1
  493. package/dist/factories/inngest/types.js.map +1 -1
  494. package/dist/factories/kro/kro-crd.d.ts.map +1 -1
  495. package/dist/factories/kro/kro-crd.js +32 -33
  496. package/dist/factories/kro/kro-crd.js.map +1 -1
  497. package/dist/factories/kro/kro-custom-resource.d.ts.map +1 -1
  498. package/dist/factories/kro/kro-custom-resource.js +91 -85
  499. package/dist/factories/kro/kro-custom-resource.js.map +1 -1
  500. package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -1
  501. package/dist/factories/kro/resource-graph-definition.js +127 -117
  502. package/dist/factories/kro/resource-graph-definition.js.map +1 -1
  503. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts.map +1 -1
  504. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js +27 -26
  505. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js.map +1 -1
  506. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.d.ts.map +1 -1
  507. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js +22 -22
  508. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js.map +1 -1
  509. package/dist/factories/kubernetes/certificates/certificate-signing-request.d.ts.map +1 -1
  510. package/dist/factories/kubernetes/certificates/certificate-signing-request.js +41 -39
  511. package/dist/factories/kubernetes/certificates/certificate-signing-request.js.map +1 -1
  512. package/dist/factories/kubernetes/core/component-status.d.ts.map +1 -1
  513. package/dist/factories/kubernetes/core/component-status.js +14 -16
  514. package/dist/factories/kubernetes/core/component-status.js.map +1 -1
  515. package/dist/factories/kubernetes/core/namespace.d.ts.map +1 -1
  516. package/dist/factories/kubernetes/core/namespace.js +31 -38
  517. package/dist/factories/kubernetes/core/namespace.js.map +1 -1
  518. package/dist/factories/kubernetes/core/node.d.ts.map +1 -1
  519. package/dist/factories/kubernetes/core/node.js +17 -25
  520. package/dist/factories/kubernetes/core/node.js.map +1 -1
  521. package/dist/factories/kubernetes/core/pod.d.ts.map +1 -1
  522. package/dist/factories/kubernetes/core/pod.js +31 -35
  523. package/dist/factories/kubernetes/core/pod.js.map +1 -1
  524. package/dist/factories/kubernetes/extensions/custom-resource-definition.d.ts.map +1 -1
  525. package/dist/factories/kubernetes/extensions/custom-resource-definition.js +34 -36
  526. package/dist/factories/kubernetes/extensions/custom-resource-definition.js.map +1 -1
  527. package/dist/factories/kubernetes/extensions/custom-resource.d.ts.map +1 -1
  528. package/dist/factories/kubernetes/extensions/custom-resource.js +2 -4
  529. package/dist/factories/kubernetes/extensions/custom-resource.js.map +1 -1
  530. package/dist/factories/kubernetes/networking/endpoints.d.ts.map +1 -1
  531. package/dist/factories/kubernetes/networking/endpoints.js +29 -30
  532. package/dist/factories/kubernetes/networking/endpoints.js.map +1 -1
  533. package/dist/factories/kubernetes/networking/ingress.d.ts.map +1 -1
  534. package/dist/factories/kubernetes/networking/ingress.js +46 -57
  535. package/dist/factories/kubernetes/networking/ingress.js.map +1 -1
  536. package/dist/factories/kubernetes/networking/network-policy.d.ts +9 -0
  537. package/dist/factories/kubernetes/networking/network-policy.d.ts.map +1 -1
  538. package/dist/factories/kubernetes/networking/network-policy.js +51 -1
  539. package/dist/factories/kubernetes/networking/network-policy.js.map +1 -1
  540. package/dist/factories/kubernetes/networking/service.d.ts.map +1 -1
  541. package/dist/factories/kubernetes/networking/service.js +48 -40
  542. package/dist/factories/kubernetes/networking/service.js.map +1 -1
  543. package/dist/factories/kubernetes/policy/pod-disruption-budget.d.ts.map +1 -1
  544. package/dist/factories/kubernetes/policy/pod-disruption-budget.js +40 -46
  545. package/dist/factories/kubernetes/policy/pod-disruption-budget.js.map +1 -1
  546. package/dist/factories/kubernetes/policy/resource-quota.d.ts.map +1 -1
  547. package/dist/factories/kubernetes/policy/resource-quota.js +30 -34
  548. package/dist/factories/kubernetes/policy/resource-quota.js.map +1 -1
  549. package/dist/factories/kubernetes/storage/persistent-volume-claim.d.ts.map +1 -1
  550. package/dist/factories/kubernetes/storage/persistent-volume-claim.js +22 -21
  551. package/dist/factories/kubernetes/storage/persistent-volume-claim.js.map +1 -1
  552. package/dist/factories/kubernetes/storage/persistent-volume.d.ts.map +1 -1
  553. package/dist/factories/kubernetes/storage/persistent-volume.js +32 -38
  554. package/dist/factories/kubernetes/storage/persistent-volume.js.map +1 -1
  555. package/dist/factories/kubernetes/storage/volume-attachment.d.ts.map +1 -1
  556. package/dist/factories/kubernetes/storage/volume-attachment.js +12 -11
  557. package/dist/factories/kubernetes/storage/volume-attachment.js.map +1 -1
  558. package/dist/factories/kubernetes/workloads/cron-job.d.ts.map +1 -1
  559. package/dist/factories/kubernetes/workloads/cron-job.js +39 -34
  560. package/dist/factories/kubernetes/workloads/cron-job.js.map +1 -1
  561. package/dist/factories/kubernetes/workloads/daemon-set.d.ts.map +1 -1
  562. package/dist/factories/kubernetes/workloads/daemon-set.js +24 -23
  563. package/dist/factories/kubernetes/workloads/daemon-set.js.map +1 -1
  564. package/dist/factories/kubernetes/workloads/deployment.d.ts.map +1 -1
  565. package/dist/factories/kubernetes/workloads/deployment.js +45 -35
  566. package/dist/factories/kubernetes/workloads/deployment.js.map +1 -1
  567. package/dist/factories/kubernetes/workloads/job.d.ts.map +1 -1
  568. package/dist/factories/kubernetes/workloads/job.js +87 -77
  569. package/dist/factories/kubernetes/workloads/job.js.map +1 -1
  570. package/dist/factories/kubernetes/workloads/replica-set.d.ts.map +1 -1
  571. package/dist/factories/kubernetes/workloads/replica-set.js +24 -24
  572. package/dist/factories/kubernetes/workloads/replica-set.js.map +1 -1
  573. package/dist/factories/kubernetes/workloads/replication-controller.d.ts.map +1 -1
  574. package/dist/factories/kubernetes/workloads/replication-controller.js +37 -26
  575. package/dist/factories/kubernetes/workloads/replication-controller.js.map +1 -1
  576. package/dist/factories/kubernetes/workloads/stateful-set.d.ts.map +1 -1
  577. package/dist/factories/kubernetes/workloads/stateful-set.js +69 -55
  578. package/dist/factories/kubernetes/workloads/stateful-set.js.map +1 -1
  579. package/dist/factories/kubernetes/yaml/yaml-artifact-applier.d.ts +15 -0
  580. package/dist/factories/kubernetes/yaml/yaml-artifact-applier.d.ts.map +1 -0
  581. package/dist/factories/kubernetes/yaml/yaml-artifact-applier.js +69 -0
  582. package/dist/factories/kubernetes/yaml/yaml-artifact-applier.js.map +1 -0
  583. package/dist/factories/kubernetes/yaml/yaml-directory.d.ts +2 -1
  584. package/dist/factories/kubernetes/yaml/yaml-directory.d.ts.map +1 -1
  585. package/dist/factories/kubernetes/yaml/yaml-directory.js +3 -34
  586. package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -1
  587. package/dist/factories/kubernetes/yaml/yaml-file.d.ts +13 -91
  588. package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -1
  589. package/dist/factories/kubernetes/yaml/yaml-file.js +21 -311
  590. package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -1
  591. package/dist/factories/nats/compositions/nats-bootstrap.d.ts +2 -2
  592. package/dist/factories/nats/compositions/nats-bootstrap.d.ts.map +1 -1
  593. package/dist/factories/nats/compositions/nats-bootstrap.js +2 -3
  594. package/dist/factories/nats/compositions/nats-bootstrap.js.map +1 -1
  595. package/dist/factories/nats/resources/jetstream.d.ts.map +1 -1
  596. package/dist/factories/nats/resources/jetstream.js +2 -0
  597. package/dist/factories/nats/resources/jetstream.js.map +1 -1
  598. package/dist/factories/nats/types.d.ts +3 -3
  599. package/dist/factories/nats/types.js +1 -1
  600. package/dist/factories/nats/types.js.map +1 -1
  601. package/dist/factories/ory/compositions/ory-platform-stack.d.ts.map +1 -1
  602. package/dist/factories/ory/compositions/ory-platform-stack.js +35 -9
  603. package/dist/factories/ory/compositions/ory-platform-stack.js.map +1 -1
  604. package/dist/factories/ory/resources/oathkeeper-rule.d.ts.map +1 -1
  605. package/dist/factories/ory/resources/oathkeeper-rule.js +11 -8
  606. package/dist/factories/ory/resources/oathkeeper-rule.js.map +1 -1
  607. package/dist/factories/ory/resources/oauth2-client.d.ts.map +1 -1
  608. package/dist/factories/ory/resources/oauth2-client.js +12 -9
  609. package/dist/factories/ory/resources/oauth2-client.js.map +1 -1
  610. package/dist/factories/ory/types.d.ts +3 -0
  611. package/dist/factories/ory/types.d.ts.map +1 -1
  612. package/dist/factories/ory/types.js +1 -0
  613. package/dist/factories/ory/types.js.map +1 -1
  614. package/dist/factories/rook/compositions/rook-ceph-operator-installation.d.ts +2 -2
  615. package/dist/factories/rook/compositions/rook-ceph-operator-installation.d.ts.map +1 -1
  616. package/dist/factories/rook/compositions/rook-ceph-operator-installation.js +2 -3
  617. package/dist/factories/rook/compositions/rook-ceph-operator-installation.js.map +1 -1
  618. package/dist/factories/rook/resources/ceph-object-store-user.d.ts.map +1 -1
  619. package/dist/factories/rook/resources/ceph-object-store-user.js +2 -0
  620. package/dist/factories/rook/resources/ceph-object-store-user.js.map +1 -1
  621. package/dist/factories/rook/resources/ceph-object-store.d.ts.map +1 -1
  622. package/dist/factories/rook/resources/ceph-object-store.js +2 -0
  623. package/dist/factories/rook/resources/ceph-object-store.js.map +1 -1
  624. package/dist/factories/rook/resources/object-bucket-claim.d.ts.map +1 -1
  625. package/dist/factories/rook/resources/object-bucket-claim.js +2 -0
  626. package/dist/factories/rook/resources/object-bucket-claim.js.map +1 -1
  627. package/dist/factories/rook/types.d.ts +1 -1
  628. package/dist/factories/rook/types.js +1 -1
  629. package/dist/factories/rook/types.js.map +1 -1
  630. package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts.map +1 -1
  631. package/dist/factories/searxng/compositions/searxng-bootstrap.js +2 -2
  632. package/dist/factories/searxng/compositions/searxng-bootstrap.js.map +1 -1
  633. package/dist/factories/searxng/resources/searxng.d.ts.map +1 -1
  634. package/dist/factories/searxng/resources/searxng.js +2 -0
  635. package/dist/factories/searxng/resources/searxng.js.map +1 -1
  636. package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts +2 -2
  637. package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts.map +1 -1
  638. package/dist/factories/valkey/compositions/valkey-bootstrap.js +4 -9
  639. package/dist/factories/valkey/compositions/valkey-bootstrap.js.map +1 -1
  640. package/dist/factories/valkey/resources/valkey.d.ts.map +1 -1
  641. package/dist/factories/valkey/resources/valkey.js +2 -1
  642. package/dist/factories/valkey/resources/valkey.js.map +1 -1
  643. package/dist/factories/valkey/types.d.ts +3 -7
  644. package/dist/factories/valkey/types.d.ts.map +1 -1
  645. package/dist/factories/valkey/types.js +1 -1
  646. package/dist/factories/valkey/types.js.map +1 -1
  647. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts +3 -2
  648. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -1
  649. package/dist/factories/webapp/compositions/web-app-with-processing.js +7 -6
  650. package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -1
  651. package/dist/factories/webapp/types.d.ts +1 -0
  652. package/dist/factories/webapp/types.d.ts.map +1 -1
  653. package/dist/factories/webapp/types.js +2 -0
  654. package/dist/factories/webapp/types.js.map +1 -1
  655. package/dist/index.d.ts +2 -1
  656. package/dist/index.d.ts.map +1 -1
  657. package/dist/index.js +1 -1
  658. package/dist/index.js.map +1 -1
  659. package/dist/shared/brands.d.ts +7 -0
  660. package/dist/shared/brands.d.ts.map +1 -1
  661. package/dist/shared/brands.js +7 -0
  662. package/dist/shared/brands.js.map +1 -1
  663. package/dist/utils/index.d.ts +3 -3
  664. package/dist/utils/index.d.ts.map +1 -1
  665. package/dist/utils/index.js +3 -3
  666. package/dist/utils/index.js.map +1 -1
  667. package/package.json +20 -5
  668. package/dist/factories/kubernetes/yaml/conflict-handler.d.ts +0 -23
  669. package/dist/factories/kubernetes/yaml/conflict-handler.d.ts.map +0 -1
  670. package/dist/factories/kubernetes/yaml/conflict-handler.js +0 -83
  671. package/dist/factories/kubernetes/yaml/conflict-handler.js.map +0 -1
@@ -7,25 +7,25 @@
7
7
  import { CEL_EXPRESSION_BRAND, KUBERNETES_REF_MARKER_SOURCE } from '../../shared/brands.js';
8
8
  import { isValuesMergeExpression } from '../aspects/values-merge.js';
9
9
  import { createCompositionContext, getCurrentCompositionContext, runInStatusBuilderContext, runWithCompositionContext, } from '../composition/context.js';
10
+ import { copyCompositionAnalysisMetadata, getCompositionAnalysisMetadata, } from '../composition/analysis-metadata.js';
10
11
  import { createDirectResourceFactory } from '../deployment/direct-factory.js';
11
12
  import { createKroResourceFactory } from '../deployment/kro-factory.js';
12
- import { joinYamlDocuments, singletonRgdYamls } from '../deployment/singleton-gitops.js';
13
+ import { singletonOwnerInstanceManifests } from '../deployment/singleton-gitops.js';
13
14
  import { ensureError, ValidationError } from '../errors.js';
14
15
  import { analyzeCompositionBody, applyAnalysisToResources, } from '../expressions/composition/composition-analyzer.js';
15
16
  import { remapResourceStatusReferences } from '../expressions/composition/composition-analyzer-helpers.js';
16
17
  import { StatusBuilderAnalyzer } from '../expressions/factory/status-builder-analyzer.js';
17
18
  import { getComponentLogger } from '../logging/index.js';
18
19
  import { getMetadataField, setResourceId } from '../metadata/index.js';
20
+ import { inspectCapturedComposition, lowerPlanValue, planCapturedComposition, planCapturedTemplate, planMaterializedComposition, setCompositionCapture, } from '../planning/index.js';
21
+ import { containsExplicitPlanValue } from '../planning/values.js';
19
22
  import { createExternalRefWithoutRegistration, createSchemaProxy } from '../references/index.js';
20
23
  import { getKindInfo, getSemanticCandidateKinds } from '../resources/factory-registry.js';
21
24
  import { validateResourceGraphDefinition } from '../validation/cel-validator.js';
25
+ import { validateSpec } from '../deployment/shared-utilities.js';
22
26
  import { optimizeStatusMappings } from './cel-optimizer.js';
23
- import { finalizeCelForKro, isStaticExpression, processResourceReferences, } from './cel-references.js';
24
- import { applyTernaryConditionalsToResources } from './kro-post-processing.js';
25
- import { generateKroSchemaFromArktype } from './schema.js';
27
+ import { finalizeCelForKro, processResourceReferences } from './cel-references.js';
26
28
  import { runStatusAnalysisPipeline } from './status-analysis-pipeline.js';
27
- import { assertNoHoistWeakenedStatusFields, findDanglingHoistedReference, rewriteHoistedNamespaceReferences, rewriteHoistedNamespaceRefsInValue, selectHoistedNamespaces, } from '../deployment/kro-instance-safety.js';
28
- import { serializeResourceGraphToYaml } from './yaml.js';
29
29
  function isToYamlOptions(value) {
30
30
  if (typeof value !== 'object' || value === null || !Object.hasOwn(value, 'aspects')) {
31
31
  return false;
@@ -41,6 +41,18 @@ function isToYamlOptions(value) {
41
41
  return Object.keys(value).length === 1;
42
42
  return aspects.every((entry) => typeof entry === 'object' && entry !== null && entry.kind === 'aspect');
43
43
  }
44
+ function normalizePublicFactoryOptions(options) {
45
+ if (!options)
46
+ return undefined;
47
+ const aspects = options.plan?.aspects ?? options.aspects;
48
+ return {
49
+ ...options,
50
+ ...(aspects !== undefined ? { aspects } : {}),
51
+ ...(options.plan !== undefined
52
+ ? { plan: { ...options.plan, ...(aspects !== undefined ? { aspects } : {}) } }
53
+ : {}),
54
+ };
55
+ }
44
56
  function assertDeploymentModeSupported(options, mode, graphName) {
45
57
  if (!options?.supportedModes || options.supportedModes.includes(mode))
46
58
  return;
@@ -267,8 +279,7 @@ function analyzeAndConvertStatusMappings(definition, statusBuilder, schema, reso
267
279
  function processCompositionBodyAnalysis(statusMappings, resourcesWithKeys, analyzedStatusMappings, serializationLogger, schemaDefinition) {
268
280
  let compositionAnalysis = null;
269
281
  const analysisState = { appliedToResources: false, ternaryAndOmitApplied: false };
270
- const originalCompositionFnForAnalysis = statusMappings
271
- ?.__originalCompositionFn;
282
+ const originalCompositionFnForAnalysis = getCompositionAnalysisMetadata(statusMappings)?.originalCompositionFn;
272
283
  if (originalCompositionFnForAnalysis) {
273
284
  try {
274
285
  const resourceIds = new Set(Object.keys(resourcesWithKeys));
@@ -430,6 +441,19 @@ function processCompositionBodyAnalysis(statusMappings, resourcesWithKeys, analy
430
441
  // required a different condition to be truthy).
431
442
  for (const unregistered of compositionAnalysis.unregisteredFactories) {
432
443
  if (!resourceIds.has(unregistered.resourceId)) {
444
+ const controlFlow = compositionAnalysis.resources.get(unregistered.resourceId);
445
+ const captured = schemaDefinition && controlFlow
446
+ ? captureAnalyzedBranchResource(originalCompositionFnForAnalysis, schemaDefinition, unregistered.resourceId, controlFlow.includeWhen)
447
+ : undefined;
448
+ if (captured) {
449
+ resourcesWithKeys[unregistered.resourceId] = captured;
450
+ resourceIds.add(unregistered.resourceId);
451
+ serializationLogger.debug('Captured resource from analyzed branch constraints', {
452
+ resourceId: unregistered.resourceId,
453
+ conditions: controlFlow?.includeWhen.map((condition) => condition.expression),
454
+ });
455
+ continue;
456
+ }
433
457
  const stub = createStubResource(unregistered.factoryName, unregistered.resourceId);
434
458
  if (stub) {
435
459
  resourcesWithKeys[unregistered.resourceId] = stub;
@@ -632,6 +656,100 @@ function createHybridSpecProxy(target, overriddenFields, overrideValues, pathPre
632
656
  },
633
657
  });
634
658
  }
659
+ function parseBranchConstraintLiteral(source) {
660
+ if (source === 'true')
661
+ return true;
662
+ if (source === 'false')
663
+ return false;
664
+ if (source === 'null')
665
+ return null;
666
+ if (source.startsWith("'") && source.endsWith("'")) {
667
+ return source.slice(1, -1).replaceAll("\\'", "'").replaceAll('\\\\', '\\');
668
+ }
669
+ if (source.startsWith('"')) {
670
+ try {
671
+ return JSON.parse(source);
672
+ }
673
+ catch {
674
+ return source.slice(1, -1);
675
+ }
676
+ }
677
+ const numeric = Number(source);
678
+ return Number.isNaN(numeric) ? source : numeric;
679
+ }
680
+ function invertBranchConstraintLiteral(value) {
681
+ if (typeof value === 'boolean')
682
+ return !value;
683
+ if (typeof value === 'number')
684
+ return value + 1;
685
+ if (typeof value === 'string')
686
+ return `${value}-typekro-alternate`;
687
+ return value === null;
688
+ }
689
+ /**
690
+ * Derive the concrete values needed to enter a branch while every unrelated
691
+ * field remains a schema proxy. This deliberately supports the common,
692
+ * deterministic subset emitted by `conditionToCel`: truthiness, negation,
693
+ * equality, inequality, and scalar ordering. If the constrained run still
694
+ * does not create the resource, callers retain the established stub fallback
695
+ * rather than pretending the branch was captured losslessly.
696
+ */
697
+ function analyzedBranchOverrides(conditions) {
698
+ const overrides = new Map();
699
+ const referencePattern = /schema\.spec\.([a-zA-Z0-9_]+(?:\.[a-zA-Z0-9_]+)*)(?:\s*(==|!=|>=|<=|>|<)\s*("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|true|false|null|-?\d+(?:\.\d+)?))?/g;
700
+ for (const condition of conditions) {
701
+ const expression = condition.expression.replace(/^\$\{/, '').replace(/\}$/, '');
702
+ for (const match of expression.matchAll(referencePattern)) {
703
+ const path = match[1];
704
+ if (!path || overrides.has(path))
705
+ continue;
706
+ const operator = match[2];
707
+ const literalSource = match[3];
708
+ if (operator && literalSource !== undefined) {
709
+ const literal = parseBranchConstraintLiteral(literalSource);
710
+ switch (operator) {
711
+ case '==':
712
+ overrides.set(path, literal);
713
+ break;
714
+ case '!=':
715
+ overrides.set(path, invertBranchConstraintLiteral(literal));
716
+ break;
717
+ case '>':
718
+ overrides.set(path, typeof literal === 'number' ? literal + 1 : literal);
719
+ break;
720
+ case '>=':
721
+ overrides.set(path, literal);
722
+ break;
723
+ case '<':
724
+ overrides.set(path, typeof literal === 'number' ? literal - 1 : literal);
725
+ break;
726
+ case '<=':
727
+ overrides.set(path, literal);
728
+ break;
729
+ }
730
+ continue;
731
+ }
732
+ const prefix = expression.slice(Math.max(0, (match.index ?? 0) - 8), match.index ?? 0);
733
+ overrides.set(path, !/!\s*(?:has\s*\()?\s*$/.test(prefix));
734
+ }
735
+ }
736
+ return overrides;
737
+ }
738
+ function captureAnalyzedBranchResource(compositionFn, schemaDefinition, resourceId, conditions) {
739
+ const overrides = analyzedBranchOverrides(conditions);
740
+ if (overrides.size === 0)
741
+ return undefined;
742
+ try {
743
+ const realSchema = createSchemaProxy(schemaDefinition.spec.json, schemaDefinition.status?.json);
744
+ const constrainedSpec = createHybridSpecProxy(realSchema.spec, new Set(overrides.keys()), overrides);
745
+ const context = createCompositionContext(`analyzed-branch:${resourceId}`);
746
+ runWithCompositionContext(context, () => compositionFn(constrainedSpec));
747
+ return context.resources[resourceId];
748
+ }
749
+ catch {
750
+ return undefined;
751
+ }
752
+ }
635
753
  function cloneResourceTree(value) {
636
754
  if (Array.isArray(value)) {
637
755
  return value.map((item) => cloneResourceTree(item));
@@ -1428,8 +1546,33 @@ function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, op
1428
1546
  const { resources: resourcesWithKeys, closures } = separateResourcesAndClosures(builderResult);
1429
1547
  // 3. Analyze status builder and convert JS expressions to CEL
1430
1548
  const { statusMappings, analyzedStatusMappings, mappingAnalysis, phaseBStatusMappings } = analyzeAndConvertStatusMappings(definition, statusBuilder, schema, resourcesWithKeys, serializationLogger);
1549
+ copyCompositionAnalysisMetadata(statusMappings, analyzedStatusMappings);
1550
+ for (const metadataKey of [
1551
+ '__nestedCompositionFns',
1552
+ '__nestedCompositionDefinitions',
1553
+ '__nestedCompositionResources',
1554
+ '__nestedCompositionSpecMappings',
1555
+ '__nestedStatusCel',
1556
+ ]) {
1557
+ const descriptor = Object.getOwnPropertyDescriptor(statusMappings, metadataKey);
1558
+ if (descriptor && !Object.getOwnPropertyDescriptor(analyzedStatusMappings, metadataKey)) {
1559
+ Object.defineProperty(analyzedStatusMappings, metadataKey, descriptor);
1560
+ }
1561
+ }
1562
+ if (phaseBStatusMappings) {
1563
+ copyCompositionAnalysisMetadata(statusMappings, phaseBStatusMappings);
1564
+ }
1431
1565
  // 4. Analyze composition body for control flow patterns (must run before validation)
1432
1566
  const { compositionAnalysis, analysisState } = processCompositionBodyAnalysis(statusMappings, resourcesWithKeys, analyzedStatusMappings, serializationLogger, schemaDefinition);
1567
+ // Control-flow analysis is accepted authoring semantics, so attach it before
1568
+ // semantic capture rather than waiting for the legacy KRO serializer. The
1569
+ // metadata store is non-enumerable and the merge is idempotent, which keeps
1570
+ // the compatibility serializer safe while allowing both target compilers to
1571
+ // consume the same analyzed iteration, activation, and template overrides.
1572
+ if (compositionAnalysis) {
1573
+ applyAnalysisToResources(resourcesWithKeys, compositionAnalysis);
1574
+ analysisState.appliedToResources = true;
1575
+ }
1433
1576
  // 5. Validate resource IDs and CEL expressions
1434
1577
  const validation = validateResourceGraphDefinition(resourcesWithKeys, analyzedStatusMappings);
1435
1578
  if (!validation.isValid) {
@@ -1437,7 +1580,7 @@ function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, op
1437
1580
  throw new ValidationError(`ResourceGraphDefinition validation failed:\n${errorMessages}`, 'ResourceGraphDefinition', definition.name, undefined, ['Fix the validation errors listed above']);
1438
1581
  }
1439
1582
  if (validation.warnings.length > 0) {
1440
- serializationLogger.warn('ResourceGraphDefinition validation warnings', {
1583
+ serializationLogger.debug('ResourceGraphDefinition validation warnings', {
1441
1584
  warnings: validation.warnings.map((w) => ({
1442
1585
  field: w.field,
1443
1586
  error: w.error,
@@ -1448,12 +1591,13 @@ function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, op
1448
1591
  // Evaluate and optimize CEL expressions
1449
1592
  const evaluationContext = { resources: resourcesWithKeys, schema };
1450
1593
  const { mappings: optimizedStatusMappings, optimizations } = optimizeStatusMappings(analyzedStatusMappings, evaluationContext);
1594
+ copyCompositionAnalysisMetadata(statusMappings, optimizedStatusMappings);
1451
1595
  for (const metadataKey of [
1452
- '__originalCompositionFn',
1453
1596
  '__nestedCompositionFns',
1454
1597
  '__nestedCompositionDefinitions',
1455
1598
  '__nestedCompositionResources',
1456
1599
  '__nestedCompositionSpecMappings',
1600
+ '__nestedStatusCel',
1457
1601
  ]) {
1458
1602
  const descriptor = Object.getOwnPropertyDescriptor(statusMappings, metadataKey);
1459
1603
  if (descriptor) {
@@ -1461,7 +1605,7 @@ function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, op
1461
1605
  }
1462
1606
  }
1463
1607
  if (optimizations.length > 0) {
1464
- serializationLogger.info('CEL expression optimizations applied', { optimizations });
1608
+ serializationLogger.debug('CEL expression optimizations applied', { optimizations });
1465
1609
  }
1466
1610
  // 6. Build the composition re-execution function for direct factory
1467
1611
  const declarativeCompositionFn = (spec) => {
@@ -1487,10 +1631,12 @@ function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, op
1487
1631
  },
1488
1632
  factory(mode, factoryOptions) {
1489
1633
  assertDeploymentModeSupported(options, mode, definition.name);
1634
+ const normalizedFactoryOptions = normalizePublicFactoryOptions(factoryOptions);
1490
1635
  if (mode === 'direct') {
1491
1636
  const directStatusMappings = reanalyzeStatusForDirectFactory(this._analysisResults, analyzedStatusMappings, resourcesWithKeys, schema, serializationLogger);
1492
1637
  return createDirectResourceFactory(definition.name, resourcesWithKeys, schemaDefinition, statusBuilder, {
1493
- ...factoryOptions,
1638
+ ...normalizedFactoryOptions,
1639
+ semanticCapture: capture,
1494
1640
  closures,
1495
1641
  statusMappings: directStatusMappings,
1496
1642
  compositionFn: declarativeCompositionFn,
@@ -1505,7 +1651,8 @@ function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, op
1505
1651
  }
1506
1652
  else if (mode === 'kro') {
1507
1653
  return createKroResourceFactory(definition.name, resourcesWithKeys, schemaDefinition, analyzedStatusMappings, {
1508
- ...factoryOptions,
1654
+ ...normalizedFactoryOptions,
1655
+ semanticCapture: capture,
1509
1656
  closures,
1510
1657
  factoryType: 'kro',
1511
1658
  compositionFn: declarativeCompositionFn,
@@ -1522,7 +1669,7 @@ function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, op
1522
1669
  throw new ValidationError(`Unsupported factory mode: ${mode}`, 'ResourceGraphDefinition', definition.name, 'mode', ['Use "kro" or "direct" as the factory mode']);
1523
1670
  }
1524
1671
  },
1525
- toYaml(specOrOptions) {
1672
+ toYaml(specOrOptions, materializationOptions) {
1526
1673
  // Graph-level YAML is always KRO declarative output: with no argument
1527
1674
  // it emits an RGD, and with a spec it emits a custom-resource instance.
1528
1675
  assertDeploymentModeSupported(options, 'kro', definition.name);
@@ -1531,177 +1678,125 @@ function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, op
1531
1678
  const factory = this.factory('kro', specOrOptions);
1532
1679
  return factory.toYaml();
1533
1680
  }
1534
- return this.factory('kro').toYaml(specOrOptions);
1535
- }
1536
- // Apply composition body analysis results (guard: only once)
1537
- if (compositionAnalysis && !analysisState.appliedToResources) {
1538
- analysisState.appliedToResources = true;
1539
- if (compositionAnalysis.resources.size > 0 ||
1540
- compositionAnalysis.templateOverrides.size > 0) {
1541
- applyAnalysisToResources(resourcesWithKeys, compositionAnalysis);
1542
- serializationLogger.debug('Applied composition body analysis', {
1543
- analyzedResources: compositionAnalysis.resources.size,
1544
- templateOverrides: compositionAnalysis.templateOverrides.size,
1545
- errors: compositionAnalysis.errors.length,
1546
- });
1547
- }
1548
- }
1549
- // Collect nested composition status CEL mappings from the composition context.
1550
- // These enable inlining the inner composition's real CEL expressions instead
1551
- // of referencing virtual nested composition IDs.
1552
- // Extract nested composition status CEL mappings attached by
1553
- // executeCompositionCore via Reflect.set. Must use
1554
- // Object.getOwnPropertyDescriptor to bypass the Enhanced proxy's
1555
- // get handler which would return a KubernetesRef instead of the
1556
- // actual Record<string, string>.
1557
- const nestedStatusDescriptor = Object.getOwnPropertyDescriptor(statusMappings, '__nestedStatusCel');
1558
- const nestedStatusCel = nestedStatusDescriptor?.value ?? {};
1559
- serializationLogger.debug('Nested status CEL extraction', {
1560
- hasNestedStatusCel: Object.keys(nestedStatusCel).length > 0,
1561
- keys: Object.keys(nestedStatusCel),
1562
- statusMappingsHasField: '__nestedStatusCel' in statusMappings,
1563
- });
1564
- // HOIST EVERY owned Namespace OUT of the shared RGD graph (the unconditional
1565
- // model — typekro NEVER emits a Namespace into RGD YAML). Selection is trivially
1566
- // `kind === 'Namespace'` (see {@link selectHoistedNamespaces}). Leaving a
1567
- // Namespace a graph CHILD would let deleting the instance garbage-collect the
1568
- // namespace holding its own finalizer; the factory emits it as a sibling created
1569
- // deps-first (and torn down after the RGD) instead. This keeps the graph-level
1570
- // RGD (`graph.toYaml()`) consistent with the factory's RGD
1571
- // (`factory('kro').toYaml()`), both of which drop it. Any remaining reference to
1572
- // a hoisted Namespace's `metadata.name` is rewritten to that Namespace's own
1573
- // concrete name expression (finding #3) so the RGD carries no dangling ref.
1574
- const hoistedNamespaces = selectHoistedNamespaces(resourcesWithKeys);
1575
- const hoistedNamespaceIds = new Set(hoistedNamespaces.keys());
1576
- const graphResources = hoistedNamespaces.size === 0
1577
- ? resourcesWithKeys
1578
- : rewriteHoistedNamespaceReferences(Object.fromEntries(Object.entries(resourcesWithKeys).filter(([id]) => !hoistedNamespaceIds.has(id))), hoistedNamespaces);
1579
- // BLOCKER #2 — apply the SAME status-reference rewriting the FACTORY path
1580
- // already does (kro-factory.ts `buildRgdYaml`) to this graph/composition path.
1581
- // Removing a hoisted Namespace from `graphResources` is not enough: the status
1582
- // mappings, nested-composition CEL, and status overrides can ALSO reference it
1583
- // (e.g. `status.nsName: ${ownedNamespace.metadata.name}`), which would emit an
1584
- // RGD with `resources:[]` for that id and a dangling `${...}` KRO rejects.
1585
- // Rewrite every such reference to the Namespace's own name expression (finding
1586
- // #3), preserving the non-enumerable composition metadata on optimizedStatusMappings.
1587
- let graphStatusMappings = optimizedStatusMappings;
1588
- if (hoistedNamespaces.size > 0) {
1589
- const rewritten = rewriteHoistedNamespaceRefsInValue(optimizedStatusMappings, hoistedNamespaces);
1590
- if (rewritten !== optimizedStatusMappings) {
1591
- // The rewrite clones via Object.entries, dropping non-enumerable
1592
- // composition metadata — re-attach it from the original statusMappings.
1593
- for (const metadataKey of [
1594
- '__originalCompositionFn',
1595
- '__nestedCompositionFns',
1596
- '__nestedCompositionDefinitions',
1597
- '__nestedCompositionResources',
1598
- '__nestedCompositionSpecMappings',
1599
- '__nestedStatusCel',
1600
- ]) {
1601
- const descriptor = Object.getOwnPropertyDescriptor(statusMappings, metadataKey);
1602
- if (descriptor)
1603
- Object.defineProperty(rewritten, metadataKey, descriptor);
1604
- }
1605
- }
1606
- graphStatusMappings = rewritten;
1607
- // #6 — REJECT (throw) HONESTLY, never silently drop: status fields that resolve
1608
- // ONLY to a hoisted Namespace become a schema-only expression
1609
- // (`schema.spec.namespace`), which KRO status CEL cannot evaluate, so they
1610
- // cannot be represented in the KRO status schema. Fail loudly naming the
1611
- // field(s) rather than ship a weakened status API. Resource-derived sibling
1612
- // fields are unaffected.
1613
- assertNoHoistWeakenedStatusFields(optimizedStatusMappings, hoistedNamespaces, definition.name);
1614
- }
1615
- const graphNestedStatusCel = hoistedNamespaces.size === 0
1616
- ? nestedStatusCel
1617
- : rewriteHoistedNamespaceRefsInValue(nestedStatusCel, hoistedNamespaces);
1618
- const kroSchema = generateKroSchemaFromArktype(definition.name, schemaDefinition, graphResources, graphStatusMappings, Object.keys(graphNestedStatusCel).length > 0 ? graphNestedStatusCel : undefined, options?.schemaFieldValidations);
1619
- if (definition.group) {
1620
- kroSchema.group = definition.group;
1621
- }
1622
- // Attach nested status CEL mappings to the schema as a non-enumerable
1623
- // property (same pattern as __ternaryConditionals, __omitFields).
1624
- // Non-enumerable so it doesn't appear in the YAML output, but
1625
- // accessible via KroSimpleSchemaWithMetadata for the YAML serializer
1626
- // to resolve virtual composition IDs in resource templates.
1627
- if (Object.keys(graphNestedStatusCel).length > 0) {
1628
- Object.defineProperty(kroSchema, '__nestedStatusCel', {
1629
- value: graphNestedStatusCel,
1630
- enumerable: false,
1631
- });
1681
+ return this.factory('kro').toYaml(specOrOptions, materializationOptions);
1632
1682
  }
1633
- // Inject status overrides into schema status section.
1634
- // Convert "..." to '...' in CEL string literals for YAML compatibility.
1635
- //
1636
- // KRO status CEL can only reference resource fields — it has no `schema`
1637
- // identifier in the status environment (even a bare `${schema.spec.x}`
1638
- // is rejected with "references unknown identifiers: [schema]"). So a
1639
- // status override that references ONLY schema.spec (no resource) must be
1640
- // left out of the KRO schema and instead hydrated client-side by the
1641
- // factory's inline-CEL evaluator (see `evaluateStaticFieldValue`).
1642
- const statusOverrides = compositionAnalysis?.statusOverrides ?? [];
1643
- if (statusOverrides.length > 0) {
1644
- // Classify against the HOISTED graph's resource ids (the hoisted Namespace
1645
- // is no longer a graph resource) so an override that referenced only it is
1646
- // treated correctly after rewriting.
1647
- const resourceIdList = Object.keys(graphResources);
1648
- const nestedCelForClassification = Object.keys(graphNestedStatusCel).length > 0 ? graphNestedStatusCel : undefined;
1649
- for (const override of statusOverrides) {
1650
- // BLOCKER #2 — rewrite any reference to a hoisted Namespace in the override
1651
- // expression too (finding #6), so a status override never dangles at the
1652
- // removed id (mirrors the factory path).
1653
- const celExpression = rewriteHoistedNamespaceRefsInValue(override.celExpression, hoistedNamespaces);
1654
- // Schema-only overrides (no resource refs) are hydrated client-side by
1655
- // the static-field path, like any other static status field — KRO
1656
- // status CEL cannot reference `schema.spec.*`. Only inject the
1657
- // resource-referencing (dynamic) overrides into the KRO schema.
1658
- if (isStaticExpression(celExpression, nestedCelForClassification, resourceIdList))
1659
- continue;
1660
- if (!kroSchema.status) {
1661
- kroSchema.status = {};
1662
- }
1663
- const yamlSafe = celExpression.replace(/"([^"\\]*)"/g, "'$1'");
1664
- kroSchema.status[override.propertyPath] = yamlSafe;
1665
- }
1666
- }
1667
- // Apply ternary conditionals (once only — guard prevents
1668
- // double-processing if toYaml() is called multiple times).
1669
- // Note: omit() wrapping for optional fields is no longer a
1670
- // post-processing step — it's applied inline during ref-to-CEL
1671
- // conversion via `SerializationContext.omitFields`, which reads
1672
- // from `kroSchema.__omitFields` inside `serializeResourceGraphToYaml`.
1673
- if (!analysisState.ternaryAndOmitApplied) {
1674
- analysisState.ternaryAndOmitApplied = true;
1675
- if (kroSchema.__ternaryConditionals?.length) {
1676
- applyTernaryConditionalsToResources(resourcesWithKeys, kroSchema.__ternaryConditionals, kroSchema.__nestedStatusCel);
1677
- }
1678
- }
1679
- const rgdYaml = serializeResourceGraphToYaml(definition.name, graphResources, options, kroSchema);
1680
- // BLOCKER #2 — the SAME post-serialization dangling-reference assertion the
1681
- // factory path runs (kro-factory.ts `assertNoDanglingHoistedReferences`). After
1682
- // hoisting an owned Namespace out of the graph, NO reference to it may remain
1683
- // anywhere in the emitted RGD (resource templates, status CEL, nested CEL,
1684
- // overrides). If one slipped through a form the rewrite didn't structurally
1685
- // cover, fail LOUDLY here instead of shipping an RGD KRO rejects at runtime.
1686
- const dangling = findDanglingHoistedReference(rgdYaml, hoistedNamespaceIds);
1687
- if (dangling !== undefined) {
1688
- throw new ValidationError(`Hoisting the owned Namespace left a dangling reference to removed resource "${dangling}" ` +
1689
- `in the emitted RGD for composition "${definition.name}". This would make KRO reject the ` +
1690
- `graph. Report this as a typekro bug (the reference form was not structurally rewritten).`, 'ResourceGraphDefinition', definition.name, `status/${dangling}`);
1691
- }
1692
- // Singleton owners are deployed once outside any consuming instance's
1693
- // ApplySet (see `singleton(...)`). The factory's `deploy()` creates them
1694
- // imperatively; for the GitOps `toYaml()` path we must emit their RGDs too,
1695
- // deps-first, or the consuming RGD's externalRef dangles. No-op when the
1696
- // composition uses no singletons.
1697
- const singletonDefs = this._singletonDefinitions ??
1698
- [];
1699
- if (singletonDefs.length === 0)
1700
- return rgdYaml;
1701
- return joinYamlDocuments(singletonRgdYamls(singletonDefs), rgdYaml);
1683
+ // The graph facade and explicit factory share one artifact-compiled RGD path.
1684
+ return this.factory('kro').toYaml();
1702
1685
  },
1703
1686
  };
1704
1687
  // 8. Wrap with cross-composition magic proxy
1705
- return wrapWithResourceGraphProxy(baseResourceGraph, resourcesWithKeys, serializationLogger);
1688
+ const graph = wrapWithResourceGraphProxy(baseResourceGraph, resourcesWithKeys, serializationLogger);
1689
+ // 9. Capture composition semantics once for inspection and planning. The
1690
+ // executable callbacks remain in a WeakMap-backed internal record and never
1691
+ // enter public DTOs or YAML/JSON serialization.
1692
+ const potentialCapabilities = [
1693
+ ...(Object.keys(closures).length > 0
1694
+ ? [
1695
+ {
1696
+ id: 'typekro.runtime-closure',
1697
+ version: 1,
1698
+ host: 'standalone',
1699
+ output: 'live',
1700
+ },
1701
+ ]
1702
+ : []),
1703
+ ];
1704
+ const rawStatusMappingsByKey = new Map(Object.entries(statusMappings));
1705
+ const nestedStatusMappings = Object.getOwnPropertyDescriptor(statusMappings, '__nestedStatusCel')?.value ?? {};
1706
+ const capture = {
1707
+ ir: {
1708
+ version: 1,
1709
+ definition: {
1710
+ name: definition.name,
1711
+ apiVersion: definition.apiVersion ?? 'v1alpha1',
1712
+ kind: definition.kind,
1713
+ ...(definition.group !== undefined ? { group: definition.group } : {}),
1714
+ ...(definition.revision !== undefined ? { revision: definition.revision } : {}),
1715
+ specSchema: definition.spec,
1716
+ statusSchema: definition.status,
1717
+ },
1718
+ resources: resourcesWithKeys,
1719
+ statusMappings: Object.fromEntries(Object.keys(optimizedStatusMappings).map((key) => [
1720
+ key,
1721
+ containsExplicitPlanValue(rawStatusMappingsByKey.get(key))
1722
+ ? rawStatusMappingsByKey.get(key)
1723
+ : optimizedStatusMappings[key],
1724
+ ])),
1725
+ nestedStatusMappings,
1726
+ compatibilityClosures: Object.keys(closures).sort(),
1727
+ potentialCapabilities,
1728
+ canonicalizers: [],
1729
+ },
1730
+ diagnosticSource: getCompositionAnalysisMetadata(optimizedStatusMappings)?.originalCompositionFn?.toString() ??
1731
+ `${resourceBuilder.toString()}\n${statusBuilder.toString()}`,
1732
+ validate: (spec) => validateSpec(spec, schemaDefinition, { kind: definition.kind, name: definition.name }),
1733
+ materialize: (spec, planOptions) => {
1734
+ const factory = graph.factory('direct', { plan: planOptions });
1735
+ return factory.createLegacyResourceGraphForInstance(spec);
1736
+ },
1737
+ representationRequirements: () => {
1738
+ const definitions = graph._singletonDefinitions ??
1739
+ [];
1740
+ const uniqueDefinitions = [
1741
+ ...new Map(definitions.map((singleton) => [singleton.key, singleton])).values(),
1742
+ ].sort((left, right) => left.key.localeCompare(right.key));
1743
+ const diagnostics = [];
1744
+ const requirements = uniqueDefinitions.flatMap((singleton) => {
1745
+ const owner = singletonOwnerInstanceManifests([singleton])[0];
1746
+ const lowered = lowerPlanValue({
1747
+ singletonKey: singleton.key,
1748
+ owner,
1749
+ lifecycle: {
1750
+ creation: 'create',
1751
+ management: 'authoritative',
1752
+ deletion: 'delete-when-unused',
1753
+ instancing: { kind: 'per-cluster' },
1754
+ sharing: 'shareable',
1755
+ unusedEvidence: {
1756
+ provider: 'typekro.singleton-consumer-registry',
1757
+ version: 1,
1758
+ inputs: {
1759
+ singletonKey: singleton.key,
1760
+ registryNamespace: singleton.registryNamespace,
1761
+ },
1762
+ },
1763
+ },
1764
+ });
1765
+ diagnostics.push(...lowered.diagnostics.map((diagnostic) => ({
1766
+ ...diagnostic,
1767
+ path: `$.representationRequirements.singleton.${singleton.id}${diagnostic.path?.slice(1) ?? ''}`,
1768
+ })));
1769
+ return ['direct', 'kro'].map((target) => ({
1770
+ target,
1771
+ kind: 'singleton-owner',
1772
+ extension: 'typekro.singleton-owner',
1773
+ version: 1,
1774
+ inputs: lowered.value,
1775
+ }));
1776
+ });
1777
+ return { requirements, diagnostics };
1778
+ },
1779
+ inspect: () => inspectCapturedComposition(capture),
1780
+ plan: (spec, planOptions = {}) => planCapturedComposition(capture, spec, planOptions),
1781
+ planTemplate: (planOptions = {}) => planCapturedTemplate(capture, schema.spec, planOptions),
1782
+ planSymbolic: (spec, planOptions = {}) => planCapturedTemplate(capture, spec, planOptions),
1783
+ planMaterialized: (spec, materializedGraph, planOptions = {}) => planMaterializedComposition(capture, spec, materializedGraph, planOptions),
1784
+ };
1785
+ Object.defineProperties(graph, {
1786
+ inspect: {
1787
+ configurable: false,
1788
+ enumerable: false,
1789
+ value: capture.inspect,
1790
+ writable: false,
1791
+ },
1792
+ plan: {
1793
+ configurable: false,
1794
+ enumerable: false,
1795
+ value: capture.plan,
1796
+ writable: false,
1797
+ },
1798
+ });
1799
+ setCompositionCapture(graph, capture);
1800
+ return graph;
1706
1801
  }
1707
1802
  //# sourceMappingURL=core.js.map