typekro 0.28.1 → 0.30.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 (695) 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/context.d.ts +4 -0
  36. package/dist/core/composition/context.d.ts.map +1 -1
  37. package/dist/core/composition/context.js +1 -0
  38. package/dist/core/composition/context.js.map +1 -1
  39. package/dist/core/composition/imperative.d.ts.map +1 -1
  40. package/dist/core/composition/imperative.js +39 -9
  41. package/dist/core/composition/imperative.js.map +1 -1
  42. package/dist/core/composition/nested-status-cel.js +3 -3
  43. package/dist/core/composition/nested-status-cel.js.map +1 -1
  44. package/dist/core/constants/brands.d.ts +1 -1
  45. package/dist/core/constants/brands.d.ts.map +1 -1
  46. package/dist/core/constants/brands.js +1 -1
  47. package/dist/core/constants/brands.js.map +1 -1
  48. package/dist/core/dependencies/resolver.d.ts +3 -1
  49. package/dist/core/dependencies/resolver.d.ts.map +1 -1
  50. package/dist/core/dependencies/resolver.js +29 -13
  51. package/dist/core/dependencies/resolver.js.map +1 -1
  52. package/dist/core/deployment/crd-manager.d.ts +4 -1
  53. package/dist/core/deployment/crd-manager.d.ts.map +1 -1
  54. package/dist/core/deployment/crd-manager.js +9 -4
  55. package/dist/core/deployment/crd-manager.js.map +1 -1
  56. package/dist/core/deployment/deletion-result.d.ts +22 -0
  57. package/dist/core/deployment/deletion-result.d.ts.map +1 -0
  58. package/dist/core/deployment/deletion-result.js +108 -0
  59. package/dist/core/deployment/deletion-result.js.map +1 -0
  60. package/dist/core/deployment/deployment-state-discovery.d.ts +1 -0
  61. package/dist/core/deployment/deployment-state-discovery.d.ts.map +1 -1
  62. package/dist/core/deployment/deployment-state-discovery.js +89 -9
  63. package/dist/core/deployment/deployment-state-discovery.js.map +1 -1
  64. package/dist/core/deployment/direct-factory.d.ts +46 -25
  65. package/dist/core/deployment/direct-factory.d.ts.map +1 -1
  66. package/dist/core/deployment/direct-factory.js +536 -126
  67. package/dist/core/deployment/direct-factory.js.map +1 -1
  68. package/dist/core/deployment/engine.d.ts +4 -1
  69. package/dist/core/deployment/engine.d.ts.map +1 -1
  70. package/dist/core/deployment/engine.js +105 -34
  71. package/dist/core/deployment/engine.js.map +1 -1
  72. package/dist/core/deployment/errors.d.ts +20 -1
  73. package/dist/core/deployment/errors.d.ts.map +1 -1
  74. package/dist/core/deployment/errors.js +55 -0
  75. package/dist/core/deployment/errors.js.map +1 -1
  76. package/dist/core/deployment/event-monitor.d.ts +4 -3
  77. package/dist/core/deployment/event-monitor.d.ts.map +1 -1
  78. package/dist/core/deployment/event-monitor.js +17 -5
  79. package/dist/core/deployment/event-monitor.js.map +1 -1
  80. package/dist/core/deployment/index.d.ts +1 -1
  81. package/dist/core/deployment/index.d.ts.map +1 -1
  82. package/dist/core/deployment/index.js +1 -1
  83. package/dist/core/deployment/index.js.map +1 -1
  84. package/dist/core/deployment/k8s-helpers.d.ts +1 -1
  85. package/dist/core/deployment/k8s-helpers.d.ts.map +1 -1
  86. package/dist/core/deployment/k8s-helpers.js +11 -5
  87. package/dist/core/deployment/k8s-helpers.js.map +1 -1
  88. package/dist/core/deployment/kro-factory.d.ts +54 -30
  89. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  90. package/dist/core/deployment/kro-factory.js +2002 -259
  91. package/dist/core/deployment/kro-factory.js.map +1 -1
  92. package/dist/core/deployment/kro-instance-admission.d.ts +17 -0
  93. package/dist/core/deployment/kro-instance-admission.d.ts.map +1 -0
  94. package/dist/core/deployment/kro-instance-admission.js +73 -0
  95. package/dist/core/deployment/kro-instance-admission.js.map +1 -0
  96. package/dist/core/deployment/kro-instance-safety.d.ts +0 -3
  97. package/dist/core/deployment/kro-instance-safety.d.ts.map +1 -1
  98. package/dist/core/deployment/kro-instance-safety.js +0 -11
  99. package/dist/core/deployment/kro-instance-safety.js.map +1 -1
  100. package/dist/core/deployment/kro-namespace-teardown.d.ts +63 -5
  101. package/dist/core/deployment/kro-namespace-teardown.d.ts.map +1 -1
  102. package/dist/core/deployment/kro-namespace-teardown.js +124 -12
  103. package/dist/core/deployment/kro-namespace-teardown.js.map +1 -1
  104. package/dist/core/deployment/kro-readiness.d.ts +2 -0
  105. package/dist/core/deployment/kro-readiness.d.ts.map +1 -1
  106. package/dist/core/deployment/kro-readiness.js +23 -6
  107. package/dist/core/deployment/kro-readiness.js.map +1 -1
  108. package/dist/core/deployment/poll-timeout.d.ts +1 -1
  109. package/dist/core/deployment/poll-timeout.d.ts.map +1 -1
  110. package/dist/core/deployment/poll-timeout.js +12 -1
  111. package/dist/core/deployment/poll-timeout.js.map +1 -1
  112. package/dist/core/deployment/resource-applier.d.ts +19 -3
  113. package/dist/core/deployment/resource-applier.d.ts.map +1 -1
  114. package/dist/core/deployment/resource-applier.js +263 -44
  115. package/dist/core/deployment/resource-applier.js.map +1 -1
  116. package/dist/core/deployment/rollback-manager.d.ts +6 -1
  117. package/dist/core/deployment/rollback-manager.d.ts.map +1 -1
  118. package/dist/core/deployment/rollback-manager.js +38 -12
  119. package/dist/core/deployment/rollback-manager.js.map +1 -1
  120. package/dist/core/deployment/schema-cel-evaluator.d.ts.map +1 -1
  121. package/dist/core/deployment/schema-cel-evaluator.js +63 -0
  122. package/dist/core/deployment/schema-cel-evaluator.js.map +1 -1
  123. package/dist/core/deployment/shared-utilities.d.ts +11 -6
  124. package/dist/core/deployment/shared-utilities.d.ts.map +1 -1
  125. package/dist/core/deployment/shared-utilities.js +169 -14
  126. package/dist/core/deployment/shared-utilities.js.map +1 -1
  127. package/dist/core/deployment/singleton-gitops.d.ts.map +1 -1
  128. package/dist/core/deployment/singleton-gitops.js +0 -2
  129. package/dist/core/deployment/singleton-gitops.js.map +1 -1
  130. package/dist/core/deployment/singleton-owner-drift.d.ts +11 -2
  131. package/dist/core/deployment/singleton-owner-drift.d.ts.map +1 -1
  132. package/dist/core/deployment/singleton-owner-drift.js +30 -13
  133. package/dist/core/deployment/singleton-owner-drift.js.map +1 -1
  134. package/dist/core/deployment/strategies/base-strategy.d.ts +2 -0
  135. package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
  136. package/dist/core/deployment/strategies/base-strategy.js +19 -2
  137. package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
  138. package/dist/core/deployment/strategies/direct-strategy.d.ts +3 -0
  139. package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -1
  140. package/dist/core/deployment/strategies/direct-strategy.js +31 -8
  141. package/dist/core/deployment/strategies/direct-strategy.js.map +1 -1
  142. package/dist/core/deployment/strategies/index.d.ts +1 -1
  143. package/dist/core/deployment/strategies/index.d.ts.map +1 -1
  144. package/dist/core/deployment/strategies/index.js +1 -1
  145. package/dist/core/deployment/strategies/index.js.map +1 -1
  146. package/dist/core/errors.d.ts +2 -2
  147. package/dist/core/errors.d.ts.map +1 -1
  148. package/dist/core/errors.js.map +1 -1
  149. package/dist/core/expressions/analysis/cel-emitter.d.ts.map +1 -1
  150. package/dist/core/expressions/analysis/cel-emitter.js +17 -13
  151. package/dist/core/expressions/analysis/cel-emitter.js.map +1 -1
  152. package/dist/core/expressions/analysis/expression-metadata.d.ts +15 -0
  153. package/dist/core/expressions/analysis/expression-metadata.d.ts.map +1 -0
  154. package/dist/core/expressions/analysis/expression-metadata.js +10 -0
  155. package/dist/core/expressions/analysis/expression-metadata.js.map +1 -0
  156. package/dist/core/expressions/analysis/ready-when.d.ts +3 -0
  157. package/dist/core/expressions/analysis/ready-when.d.ts.map +1 -0
  158. package/dist/core/expressions/analysis/ready-when.js +127 -0
  159. package/dist/core/expressions/analysis/ready-when.js.map +1 -0
  160. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts +3 -2
  161. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts.map +1 -1
  162. package/dist/core/expressions/composition/composition-analyzer-helpers.js +6 -4
  163. package/dist/core/expressions/composition/composition-analyzer-helpers.js.map +1 -1
  164. package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts +3 -2
  165. package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts.map +1 -1
  166. package/dist/core/expressions/composition/composition-analyzer-ternary.js +12 -12
  167. package/dist/core/expressions/composition/composition-analyzer-ternary.js.map +1 -1
  168. package/dist/core/expressions/composition/composition-analyzer-traversal.d.ts.map +1 -1
  169. package/dist/core/expressions/composition/composition-analyzer-traversal.js +68 -4
  170. package/dist/core/expressions/composition/composition-analyzer-traversal.js.map +1 -1
  171. package/dist/core/expressions/composition/composition-analyzer-types.d.ts +2 -0
  172. package/dist/core/expressions/composition/composition-analyzer-types.d.ts.map +1 -1
  173. package/dist/core/expressions/composition/composition-analyzer.d.ts.map +1 -1
  174. package/dist/core/expressions/composition/composition-analyzer.js +2 -0
  175. package/dist/core/expressions/composition/composition-analyzer.js.map +1 -1
  176. package/dist/core/expressions/factory/status-builder-analyzer.d.ts.map +1 -1
  177. package/dist/core/expressions/factory/status-builder-analyzer.js +14 -1
  178. package/dist/core/expressions/factory/status-builder-analyzer.js.map +1 -1
  179. package/dist/core/kubernetes/api.d.ts.map +1 -1
  180. package/dist/core/kubernetes/api.js +2 -3
  181. package/dist/core/kubernetes/api.js.map +1 -1
  182. package/dist/core/kubernetes/bun-api-client.d.ts +1 -1
  183. package/dist/core/kubernetes/bun-api-client.d.ts.map +1 -1
  184. package/dist/core/kubernetes/bun-api-client.js +17 -17
  185. package/dist/core/kubernetes/bun-api-client.js.map +1 -1
  186. package/dist/core/kubernetes/bun-http-library.d.ts +16 -0
  187. package/dist/core/kubernetes/bun-http-library.d.ts.map +1 -1
  188. package/dist/core/kubernetes/bun-http-library.js +7 -1
  189. package/dist/core/kubernetes/bun-http-library.js.map +1 -1
  190. package/dist/core/kubernetes/bun-watch.d.ts +30 -0
  191. package/dist/core/kubernetes/bun-watch.d.ts.map +1 -0
  192. package/dist/core/kubernetes/bun-watch.js +144 -0
  193. package/dist/core/kubernetes/bun-watch.js.map +1 -0
  194. package/dist/core/kubernetes/client-node-runtime.d.ts +10 -0
  195. package/dist/core/kubernetes/client-node-runtime.d.ts.map +1 -0
  196. package/dist/core/kubernetes/client-node-runtime.js +15 -0
  197. package/dist/core/kubernetes/client-node-runtime.js.map +1 -0
  198. package/dist/core/kubernetes/client-provider.d.ts +21 -1
  199. package/dist/core/kubernetes/client-provider.d.ts.map +1 -1
  200. package/dist/core/kubernetes/client-provider.js +10 -10
  201. package/dist/core/kubernetes/client-provider.js.map +1 -1
  202. package/dist/core/kubernetes/index.d.ts +1 -1
  203. package/dist/core/kubernetes/index.d.ts.map +1 -1
  204. package/dist/core/kubernetes/index.js.map +1 -1
  205. package/dist/core/metadata/resource-metadata.d.ts +24 -1
  206. package/dist/core/metadata/resource-metadata.d.ts.map +1 -1
  207. package/dist/core/metadata/resource-metadata.js +8 -4
  208. package/dist/core/metadata/resource-metadata.js.map +1 -1
  209. package/dist/core/planning/artifact-codec.d.ts +14 -0
  210. package/dist/core/planning/artifact-codec.d.ts.map +1 -0
  211. package/dist/core/planning/artifact-codec.js +329 -0
  212. package/dist/core/planning/artifact-codec.js.map +1 -0
  213. package/dist/core/planning/artifacts.d.ts +212 -0
  214. package/dist/core/planning/artifacts.d.ts.map +1 -0
  215. package/dist/core/planning/artifacts.js +5 -0
  216. package/dist/core/planning/artifacts.js.map +1 -0
  217. package/dist/core/planning/aspects.d.ts +11 -0
  218. package/dist/core/planning/aspects.d.ts.map +1 -0
  219. package/dist/core/planning/aspects.js +77 -0
  220. package/dist/core/planning/aspects.js.map +1 -0
  221. package/dist/core/planning/canonical.d.ts +10 -0
  222. package/dist/core/planning/canonical.d.ts.map +1 -0
  223. package/dist/core/planning/canonical.js +54 -0
  224. package/dist/core/planning/canonical.js.map +1 -0
  225. package/dist/core/planning/capabilities.d.ts +16 -0
  226. package/dist/core/planning/capabilities.d.ts.map +1 -0
  227. package/dist/core/planning/capabilities.js +90 -0
  228. package/dist/core/planning/capabilities.js.map +1 -0
  229. package/dist/core/planning/capture.d.ts +29 -0
  230. package/dist/core/planning/capture.d.ts.map +1 -0
  231. package/dist/core/planning/capture.js +18 -0
  232. package/dist/core/planning/capture.js.map +1 -0
  233. package/dist/core/planning/compiler.d.ts +12 -0
  234. package/dist/core/planning/compiler.d.ts.map +1 -0
  235. package/dist/core/planning/compiler.js +631 -0
  236. package/dist/core/planning/compiler.js.map +1 -0
  237. package/dist/core/planning/direct-runtime-adapter.d.ts +39 -0
  238. package/dist/core/planning/direct-runtime-adapter.d.ts.map +1 -0
  239. package/dist/core/planning/direct-runtime-adapter.js +238 -0
  240. package/dist/core/planning/direct-runtime-adapter.js.map +1 -0
  241. package/dist/core/planning/execution-record.d.ts +21 -0
  242. package/dist/core/planning/execution-record.d.ts.map +1 -0
  243. package/dist/core/planning/execution-record.js +304 -0
  244. package/dist/core/planning/execution-record.js.map +1 -0
  245. package/dist/core/planning/index.d.ts +20 -0
  246. package/dist/core/planning/index.d.ts.map +1 -0
  247. package/dist/core/planning/index.js +18 -0
  248. package/dist/core/planning/index.js.map +1 -0
  249. package/dist/core/planning/kro-bundle.d.ts +24 -0
  250. package/dist/core/planning/kro-bundle.d.ts.map +1 -0
  251. package/dist/core/planning/kro-bundle.js +314 -0
  252. package/dist/core/planning/kro-bundle.js.map +1 -0
  253. package/dist/core/planning/kro-runtime-adapter.d.ts +28 -0
  254. package/dist/core/planning/kro-runtime-adapter.d.ts.map +1 -0
  255. package/dist/core/planning/kro-runtime-adapter.js +211 -0
  256. package/dist/core/planning/kro-runtime-adapter.js.map +1 -0
  257. package/dist/core/planning/materialization.d.ts +54 -0
  258. package/dist/core/planning/materialization.d.ts.map +1 -0
  259. package/dist/core/planning/materialization.js +489 -0
  260. package/dist/core/planning/materialization.js.map +1 -0
  261. package/dist/core/planning/plan-codec.d.ts +11 -0
  262. package/dist/core/planning/plan-codec.d.ts.map +1 -0
  263. package/dist/core/planning/plan-codec.js +555 -0
  264. package/dist/core/planning/plan-codec.js.map +1 -0
  265. package/dist/core/planning/planner.d.ts +21 -0
  266. package/dist/core/planning/planner.d.ts.map +1 -0
  267. package/dist/core/planning/planner.js +1518 -0
  268. package/dist/core/planning/planner.js.map +1 -0
  269. package/dist/core/planning/schema.d.ts +10 -0
  270. package/dist/core/planning/schema.d.ts.map +1 -0
  271. package/dist/core/planning/schema.js +159 -0
  272. package/dist/core/planning/schema.js.map +1 -0
  273. package/dist/core/planning/types.d.ts +441 -0
  274. package/dist/core/planning/types.d.ts.map +1 -0
  275. package/dist/core/planning/types.js +3 -0
  276. package/dist/core/planning/types.js.map +1 -0
  277. package/dist/core/planning/values.d.ts +76 -0
  278. package/dist/core/planning/values.d.ts.map +1 -0
  279. package/dist/core/planning/values.js +852 -0
  280. package/dist/core/planning/values.js.map +1 -0
  281. package/dist/core/proxy/create-resource.d.ts +12 -0
  282. package/dist/core/proxy/create-resource.d.ts.map +1 -1
  283. package/dist/core/proxy/create-resource.js +41 -9
  284. package/dist/core/proxy/create-resource.js.map +1 -1
  285. package/dist/core/readiness/evaluator-factories.d.ts +3 -1
  286. package/dist/core/readiness/evaluator-factories.d.ts.map +1 -1
  287. package/dist/core/readiness/evaluator-factories.js +130 -5
  288. package/dist/core/readiness/evaluator-factories.js.map +1 -1
  289. package/dist/core/readiness/index.d.ts +2 -1
  290. package/dist/core/readiness/index.d.ts.map +1 -1
  291. package/dist/core/readiness/index.js +2 -1
  292. package/dist/core/readiness/index.js.map +1 -1
  293. package/dist/core/readiness/portable-strategies.d.ts +28 -0
  294. package/dist/core/readiness/portable-strategies.d.ts.map +1 -0
  295. package/dist/core/readiness/portable-strategies.js +55 -0
  296. package/dist/core/readiness/portable-strategies.js.map +1 -0
  297. package/dist/core/readiness/strategy-configuration.d.ts +12 -0
  298. package/dist/core/readiness/strategy-configuration.d.ts.map +1 -0
  299. package/dist/core/readiness/strategy-configuration.js +51 -0
  300. package/dist/core/readiness/strategy-configuration.js.map +1 -0
  301. package/dist/core/references/cel-evaluator.d.ts +5 -0
  302. package/dist/core/references/cel-evaluator.d.ts.map +1 -1
  303. package/dist/core/references/cel-evaluator.js +33 -2
  304. package/dist/core/references/cel-evaluator.js.map +1 -1
  305. package/dist/core/references/cel.d.ts +10 -7
  306. package/dist/core/references/cel.d.ts.map +1 -1
  307. package/dist/core/references/cel.js +13 -12
  308. package/dist/core/references/cel.js.map +1 -1
  309. package/dist/core/references/external-refs.d.ts +2 -0
  310. package/dist/core/references/external-refs.d.ts.map +1 -1
  311. package/dist/core/references/external-refs.js +3 -1
  312. package/dist/core/references/external-refs.js.map +1 -1
  313. package/dist/core/references/resolver.d.ts +7 -1
  314. package/dist/core/references/resolver.d.ts.map +1 -1
  315. package/dist/core/references/resolver.js +91 -9
  316. package/dist/core/references/resolver.js.map +1 -1
  317. package/dist/core/references/schema-proxy.d.ts.map +1 -1
  318. package/dist/core/references/schema-proxy.js +35 -21
  319. package/dist/core/references/schema-proxy.js.map +1 -1
  320. package/dist/core/resources/factory-registry.d.ts +64 -2
  321. package/dist/core/resources/factory-registry.d.ts.map +1 -1
  322. package/dist/core/resources/factory-registry.js +74 -3
  323. package/dist/core/resources/factory-registry.js.map +1 -1
  324. package/dist/core/resources/index.d.ts +3 -2
  325. package/dist/core/resources/index.d.ts.map +1 -1
  326. package/dist/core/resources/index.js +2 -1
  327. package/dist/core/resources/index.js.map +1 -1
  328. package/dist/core/resources/live-comparison.d.ts +58 -0
  329. package/dist/core/resources/live-comparison.d.ts.map +1 -0
  330. package/dist/core/resources/live-comparison.js +293 -0
  331. package/dist/core/resources/live-comparison.js.map +1 -0
  332. package/dist/core/runtime/standalone-operation.d.ts +12 -0
  333. package/dist/core/runtime/standalone-operation.d.ts.map +1 -0
  334. package/dist/core/runtime/standalone-operation.js +62 -0
  335. package/dist/core/runtime/standalone-operation.js.map +1 -0
  336. package/dist/core/serialization/cel-references.d.ts +1 -0
  337. package/dist/core/serialization/cel-references.d.ts.map +1 -1
  338. package/dist/core/serialization/cel-references.js +12 -2
  339. package/dist/core/serialization/cel-references.js.map +1 -1
  340. package/dist/core/serialization/core.d.ts.map +1 -1
  341. package/dist/core/serialization/core.js +277 -182
  342. package/dist/core/serialization/core.js.map +1 -1
  343. package/dist/core/serialization/schema.d.ts.map +1 -1
  344. package/dist/core/serialization/schema.js +350 -26
  345. package/dist/core/serialization/schema.js.map +1 -1
  346. package/dist/core/serialization/status-analysis-pipeline.d.ts +1 -1
  347. package/dist/core/serialization/status-analysis-pipeline.d.ts.map +1 -1
  348. package/dist/core/serialization/status-analysis-pipeline.js +14 -11
  349. package/dist/core/serialization/status-analysis-pipeline.js.map +1 -1
  350. package/dist/core/serialization/yaml.d.ts +5 -1
  351. package/dist/core/serialization/yaml.d.ts.map +1 -1
  352. package/dist/core/serialization/yaml.js +35 -182
  353. package/dist/core/serialization/yaml.js.map +1 -1
  354. package/dist/core/types/deployment.d.ts +135 -14
  355. package/dist/core/types/deployment.d.ts.map +1 -1
  356. package/dist/core/types/kubernetes.d.ts +3 -0
  357. package/dist/core/types/kubernetes.d.ts.map +1 -1
  358. package/dist/core/types/resource-graph.d.ts +7 -1
  359. package/dist/core/types/resource-graph.d.ts.map +1 -1
  360. package/dist/core/types/serialization.d.ts +8 -1
  361. package/dist/core/types/serialization.d.ts.map +1 -1
  362. package/dist/core/validation/cel-validator.d.ts.map +1 -1
  363. package/dist/core/validation/cel-validator.js +25 -16
  364. package/dist/core/validation/cel-validator.js.map +1 -1
  365. package/dist/experimental-planning.d.ts +13 -0
  366. package/dist/experimental-planning.d.ts.map +1 -0
  367. package/dist/experimental-planning.js +12 -0
  368. package/dist/experimental-planning.js.map +1 -0
  369. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts.map +1 -1
  370. package/dist/factories/apisix/compositions/apisix-bootstrap.js +29 -23
  371. package/dist/factories/apisix/compositions/apisix-bootstrap.js.map +1 -1
  372. package/dist/factories/apisix/compositions/apisix-helm-repository.d.ts +15 -0
  373. package/dist/factories/apisix/compositions/apisix-helm-repository.d.ts.map +1 -0
  374. package/dist/factories/apisix/compositions/apisix-helm-repository.js +28 -0
  375. package/dist/factories/apisix/compositions/apisix-helm-repository.js.map +1 -0
  376. package/dist/factories/apisix/compositions/index.d.ts +1 -0
  377. package/dist/factories/apisix/compositions/index.d.ts.map +1 -1
  378. package/dist/factories/apisix/compositions/index.js +1 -0
  379. package/dist/factories/apisix/compositions/index.js.map +1 -1
  380. package/dist/factories/apisix/types.d.ts +22 -0
  381. package/dist/factories/apisix/types.d.ts.map +1 -1
  382. package/dist/factories/apisix/types.js +16 -0
  383. package/dist/factories/apisix/types.js.map +1 -1
  384. package/dist/factories/apisix/utils/admin-credentials.d.ts +1 -0
  385. package/dist/factories/apisix/utils/admin-credentials.d.ts.map +1 -1
  386. package/dist/factories/apisix/utils/admin-credentials.js +5 -4
  387. package/dist/factories/apisix/utils/admin-credentials.js.map +1 -1
  388. package/dist/factories/caddy/compositions/caddy-ingress.d.ts.map +1 -1
  389. package/dist/factories/caddy/compositions/caddy-ingress.js +9 -2
  390. package/dist/factories/caddy/compositions/caddy-ingress.js.map +1 -1
  391. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts.map +1 -1
  392. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js +11 -25
  393. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js.map +1 -1
  394. package/dist/factories/cert-manager/resources/certificates.d.ts.map +1 -1
  395. package/dist/factories/cert-manager/resources/certificates.js +2 -1
  396. package/dist/factories/cert-manager/resources/certificates.js.map +1 -1
  397. package/dist/factories/cert-manager/resources/challenges.d.ts.map +1 -1
  398. package/dist/factories/cert-manager/resources/challenges.js +3 -0
  399. package/dist/factories/cert-manager/resources/challenges.js.map +1 -1
  400. package/dist/factories/cilium/compositions/cilium-bootstrap.d.ts +4 -4
  401. package/dist/factories/cilium/resources/gateway.d.ts.map +1 -1
  402. package/dist/factories/cilium/resources/gateway.js +13 -12
  403. package/dist/factories/cilium/resources/gateway.js.map +1 -1
  404. package/dist/factories/cilium/resources/networking.d.ts.map +1 -1
  405. package/dist/factories/cilium/resources/networking.js +9 -0
  406. package/dist/factories/cilium/resources/networking.js.map +1 -1
  407. package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.d.ts +2 -1
  408. package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.d.ts.map +1 -1
  409. package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.js +2 -6
  410. package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.js.map +1 -1
  411. package/dist/factories/clickhouse/resources/installation.d.ts.map +1 -1
  412. package/dist/factories/clickhouse/resources/installation.js +2 -0
  413. package/dist/factories/clickhouse/resources/installation.js.map +1 -1
  414. package/dist/factories/clickhouse/resources/keeper.d.ts.map +1 -1
  415. package/dist/factories/clickhouse/resources/keeper.js +2 -0
  416. package/dist/factories/clickhouse/resources/keeper.js.map +1 -1
  417. package/dist/factories/clickhouse/types.d.ts +5 -2
  418. package/dist/factories/clickhouse/types.d.ts.map +1 -1
  419. package/dist/factories/clickhouse/types.js +2 -1
  420. package/dist/factories/clickhouse/types.js.map +1 -1
  421. package/dist/factories/clickstack/compositions/k8s-telemetry.d.ts +4 -2
  422. package/dist/factories/clickstack/compositions/k8s-telemetry.d.ts.map +1 -1
  423. package/dist/factories/clickstack/compositions/k8s-telemetry.js +2 -5
  424. package/dist/factories/clickstack/compositions/k8s-telemetry.js.map +1 -1
  425. package/dist/factories/clickstack/types.d.ts +2 -1
  426. package/dist/factories/clickstack/types.d.ts.map +1 -1
  427. package/dist/factories/clickstack/types.js +3 -1
  428. package/dist/factories/clickstack/types.js.map +1 -1
  429. package/dist/factories/clickstack/utils/helm-values-mapper.js.map +1 -1
  430. package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts +2 -1
  431. package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts.map +1 -1
  432. package/dist/factories/cnpg/compositions/cnpg-bootstrap.js +3 -8
  433. package/dist/factories/cnpg/compositions/cnpg-bootstrap.js.map +1 -1
  434. package/dist/factories/cnpg/resources/backup.d.ts.map +1 -1
  435. package/dist/factories/cnpg/resources/backup.js +2 -0
  436. package/dist/factories/cnpg/resources/backup.js.map +1 -1
  437. package/dist/factories/cnpg/resources/cluster.d.ts.map +1 -1
  438. package/dist/factories/cnpg/resources/cluster.js +2 -1
  439. package/dist/factories/cnpg/resources/cluster.js.map +1 -1
  440. package/dist/factories/cnpg/resources/pooler.d.ts.map +1 -1
  441. package/dist/factories/cnpg/resources/pooler.js +2 -0
  442. package/dist/factories/cnpg/resources/pooler.js.map +1 -1
  443. package/dist/factories/cnpg/resources/scheduled-backup.d.ts.map +1 -1
  444. package/dist/factories/cnpg/resources/scheduled-backup.js +2 -1
  445. package/dist/factories/cnpg/resources/scheduled-backup.js.map +1 -1
  446. package/dist/factories/cnpg/types.d.ts +6 -3
  447. package/dist/factories/cnpg/types.d.ts.map +1 -1
  448. package/dist/factories/cnpg/types.js +2 -1
  449. package/dist/factories/cnpg/types.js.map +1 -1
  450. package/dist/factories/dagster/compositions/dagster-bootstrap.d.ts +2 -0
  451. package/dist/factories/dagster/compositions/dagster-bootstrap.d.ts.map +1 -1
  452. package/dist/factories/dagster/types.d.ts +5 -0
  453. package/dist/factories/dagster/types.d.ts.map +1 -1
  454. package/dist/factories/dagster/types.js +1 -0
  455. package/dist/factories/dagster/types.js.map +1 -1
  456. package/dist/factories/dagster/utils/helm-values-mapper.js +3 -0
  457. package/dist/factories/dagster/utils/helm-values-mapper.js.map +1 -1
  458. package/dist/factories/external-dns/compositions/external-dns-bootstrap.d.ts.map +1 -1
  459. package/dist/factories/external-dns/compositions/external-dns-bootstrap.js +7 -4
  460. package/dist/factories/external-dns/compositions/external-dns-bootstrap.js.map +1 -1
  461. package/dist/factories/external-dns/resources/dns-endpoint.d.ts.map +1 -1
  462. package/dist/factories/external-dns/resources/dns-endpoint.js +20 -18
  463. package/dist/factories/external-dns/resources/dns-endpoint.js.map +1 -1
  464. package/dist/factories/flux/git-repository.d.ts.map +1 -1
  465. package/dist/factories/flux/git-repository.js +41 -34
  466. package/dist/factories/flux/git-repository.js.map +1 -1
  467. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts +0 -6
  468. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts.map +1 -1
  469. package/dist/factories/flux/kustomize/readiness-evaluators.js +12 -2
  470. package/dist/factories/flux/kustomize/readiness-evaluators.js.map +1 -1
  471. package/dist/factories/harbor/compositions/harbor-installation.d.ts +46 -38
  472. package/dist/factories/harbor/compositions/harbor-installation.d.ts.map +1 -1
  473. package/dist/factories/harbor/compositions/harbor-installation.js +4 -2
  474. package/dist/factories/harbor/compositions/harbor-installation.js.map +1 -1
  475. package/dist/factories/harbor/types.d.ts +13 -11
  476. package/dist/factories/harbor/types.d.ts.map +1 -1
  477. package/dist/factories/harbor/types.js +11 -9
  478. package/dist/factories/harbor/types.js.map +1 -1
  479. package/dist/factories/helm/helm-repository.d.ts.map +1 -1
  480. package/dist/factories/helm/helm-repository.js +14 -1
  481. package/dist/factories/helm/helm-repository.js.map +1 -1
  482. package/dist/factories/helm/index.d.ts +2 -0
  483. package/dist/factories/helm/index.d.ts.map +1 -1
  484. package/dist/factories/helm/index.js +1 -0
  485. package/dist/factories/helm/index.js.map +1 -1
  486. package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
  487. package/dist/factories/helm/readiness-evaluators.js +46 -7
  488. package/dist/factories/helm/readiness-evaluators.js.map +1 -1
  489. package/dist/factories/helm/status.d.ts +18 -0
  490. package/dist/factories/helm/status.d.ts.map +1 -0
  491. package/dist/factories/helm/status.js +38 -0
  492. package/dist/factories/helm/status.js.map +1 -0
  493. package/dist/factories/index.d.ts +2 -2
  494. package/dist/factories/index.d.ts.map +1 -1
  495. package/dist/factories/index.js +4 -4
  496. package/dist/factories/index.js.map +1 -1
  497. package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts +1 -1
  498. package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts.map +1 -1
  499. package/dist/factories/inngest/compositions/inngest-bootstrap.js +2 -4
  500. package/dist/factories/inngest/compositions/inngest-bootstrap.js.map +1 -1
  501. package/dist/factories/inngest/resources/helm.d.ts.map +1 -1
  502. package/dist/factories/inngest/resources/helm.js +12 -3
  503. package/dist/factories/inngest/resources/helm.js.map +1 -1
  504. package/dist/factories/inngest/types.d.ts +3 -7
  505. package/dist/factories/inngest/types.d.ts.map +1 -1
  506. package/dist/factories/inngest/types.js +1 -1
  507. package/dist/factories/inngest/types.js.map +1 -1
  508. package/dist/factories/kro/kro-crd.d.ts.map +1 -1
  509. package/dist/factories/kro/kro-crd.js +32 -33
  510. package/dist/factories/kro/kro-crd.js.map +1 -1
  511. package/dist/factories/kro/kro-custom-resource.d.ts.map +1 -1
  512. package/dist/factories/kro/kro-custom-resource.js +91 -85
  513. package/dist/factories/kro/kro-custom-resource.js.map +1 -1
  514. package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -1
  515. package/dist/factories/kro/resource-graph-definition.js +127 -117
  516. package/dist/factories/kro/resource-graph-definition.js.map +1 -1
  517. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts.map +1 -1
  518. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js +27 -26
  519. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js.map +1 -1
  520. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.d.ts.map +1 -1
  521. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js +22 -22
  522. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js.map +1 -1
  523. package/dist/factories/kubernetes/certificates/certificate-signing-request.d.ts.map +1 -1
  524. package/dist/factories/kubernetes/certificates/certificate-signing-request.js +41 -39
  525. package/dist/factories/kubernetes/certificates/certificate-signing-request.js.map +1 -1
  526. package/dist/factories/kubernetes/core/component-status.d.ts.map +1 -1
  527. package/dist/factories/kubernetes/core/component-status.js +14 -16
  528. package/dist/factories/kubernetes/core/component-status.js.map +1 -1
  529. package/dist/factories/kubernetes/core/namespace.d.ts.map +1 -1
  530. package/dist/factories/kubernetes/core/namespace.js +31 -38
  531. package/dist/factories/kubernetes/core/namespace.js.map +1 -1
  532. package/dist/factories/kubernetes/core/node.d.ts.map +1 -1
  533. package/dist/factories/kubernetes/core/node.js +17 -25
  534. package/dist/factories/kubernetes/core/node.js.map +1 -1
  535. package/dist/factories/kubernetes/core/pod.d.ts.map +1 -1
  536. package/dist/factories/kubernetes/core/pod.js +31 -35
  537. package/dist/factories/kubernetes/core/pod.js.map +1 -1
  538. package/dist/factories/kubernetes/extensions/custom-resource-definition.d.ts.map +1 -1
  539. package/dist/factories/kubernetes/extensions/custom-resource-definition.js +34 -36
  540. package/dist/factories/kubernetes/extensions/custom-resource-definition.js.map +1 -1
  541. package/dist/factories/kubernetes/extensions/custom-resource.d.ts.map +1 -1
  542. package/dist/factories/kubernetes/extensions/custom-resource.js +2 -4
  543. package/dist/factories/kubernetes/extensions/custom-resource.js.map +1 -1
  544. package/dist/factories/kubernetes/networking/endpoints.d.ts.map +1 -1
  545. package/dist/factories/kubernetes/networking/endpoints.js +29 -30
  546. package/dist/factories/kubernetes/networking/endpoints.js.map +1 -1
  547. package/dist/factories/kubernetes/networking/ingress.d.ts.map +1 -1
  548. package/dist/factories/kubernetes/networking/ingress.js +46 -57
  549. package/dist/factories/kubernetes/networking/ingress.js.map +1 -1
  550. package/dist/factories/kubernetes/networking/network-policy.d.ts +9 -0
  551. package/dist/factories/kubernetes/networking/network-policy.d.ts.map +1 -1
  552. package/dist/factories/kubernetes/networking/network-policy.js +51 -1
  553. package/dist/factories/kubernetes/networking/network-policy.js.map +1 -1
  554. package/dist/factories/kubernetes/networking/service.d.ts.map +1 -1
  555. package/dist/factories/kubernetes/networking/service.js +48 -40
  556. package/dist/factories/kubernetes/networking/service.js.map +1 -1
  557. package/dist/factories/kubernetes/policy/pod-disruption-budget.d.ts.map +1 -1
  558. package/dist/factories/kubernetes/policy/pod-disruption-budget.js +40 -46
  559. package/dist/factories/kubernetes/policy/pod-disruption-budget.js.map +1 -1
  560. package/dist/factories/kubernetes/policy/resource-quota.d.ts.map +1 -1
  561. package/dist/factories/kubernetes/policy/resource-quota.js +30 -34
  562. package/dist/factories/kubernetes/policy/resource-quota.js.map +1 -1
  563. package/dist/factories/kubernetes/storage/persistent-volume-claim.d.ts.map +1 -1
  564. package/dist/factories/kubernetes/storage/persistent-volume-claim.js +22 -21
  565. package/dist/factories/kubernetes/storage/persistent-volume-claim.js.map +1 -1
  566. package/dist/factories/kubernetes/storage/persistent-volume.d.ts.map +1 -1
  567. package/dist/factories/kubernetes/storage/persistent-volume.js +32 -38
  568. package/dist/factories/kubernetes/storage/persistent-volume.js.map +1 -1
  569. package/dist/factories/kubernetes/storage/volume-attachment.d.ts.map +1 -1
  570. package/dist/factories/kubernetes/storage/volume-attachment.js +12 -11
  571. package/dist/factories/kubernetes/storage/volume-attachment.js.map +1 -1
  572. package/dist/factories/kubernetes/workloads/cron-job.d.ts.map +1 -1
  573. package/dist/factories/kubernetes/workloads/cron-job.js +39 -34
  574. package/dist/factories/kubernetes/workloads/cron-job.js.map +1 -1
  575. package/dist/factories/kubernetes/workloads/daemon-set.d.ts.map +1 -1
  576. package/dist/factories/kubernetes/workloads/daemon-set.js +24 -23
  577. package/dist/factories/kubernetes/workloads/daemon-set.js.map +1 -1
  578. package/dist/factories/kubernetes/workloads/deployment.d.ts.map +1 -1
  579. package/dist/factories/kubernetes/workloads/deployment.js +45 -35
  580. package/dist/factories/kubernetes/workloads/deployment.js.map +1 -1
  581. package/dist/factories/kubernetes/workloads/job.d.ts.map +1 -1
  582. package/dist/factories/kubernetes/workloads/job.js +87 -77
  583. package/dist/factories/kubernetes/workloads/job.js.map +1 -1
  584. package/dist/factories/kubernetes/workloads/replica-set.d.ts.map +1 -1
  585. package/dist/factories/kubernetes/workloads/replica-set.js +24 -24
  586. package/dist/factories/kubernetes/workloads/replica-set.js.map +1 -1
  587. package/dist/factories/kubernetes/workloads/replication-controller.d.ts.map +1 -1
  588. package/dist/factories/kubernetes/workloads/replication-controller.js +37 -26
  589. package/dist/factories/kubernetes/workloads/replication-controller.js.map +1 -1
  590. package/dist/factories/kubernetes/workloads/stateful-set.d.ts.map +1 -1
  591. package/dist/factories/kubernetes/workloads/stateful-set.js +69 -55
  592. package/dist/factories/kubernetes/workloads/stateful-set.js.map +1 -1
  593. package/dist/factories/kubernetes/yaml/yaml-artifact-applier.d.ts +15 -0
  594. package/dist/factories/kubernetes/yaml/yaml-artifact-applier.d.ts.map +1 -0
  595. package/dist/factories/kubernetes/yaml/yaml-artifact-applier.js +69 -0
  596. package/dist/factories/kubernetes/yaml/yaml-artifact-applier.js.map +1 -0
  597. package/dist/factories/kubernetes/yaml/yaml-directory.d.ts +2 -1
  598. package/dist/factories/kubernetes/yaml/yaml-directory.d.ts.map +1 -1
  599. package/dist/factories/kubernetes/yaml/yaml-directory.js +3 -34
  600. package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -1
  601. package/dist/factories/kubernetes/yaml/yaml-file.d.ts +13 -91
  602. package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -1
  603. package/dist/factories/kubernetes/yaml/yaml-file.js +21 -311
  604. package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -1
  605. package/dist/factories/nats/compositions/nats-bootstrap.d.ts +2 -2
  606. package/dist/factories/nats/compositions/nats-bootstrap.d.ts.map +1 -1
  607. package/dist/factories/nats/compositions/nats-bootstrap.js +2 -3
  608. package/dist/factories/nats/compositions/nats-bootstrap.js.map +1 -1
  609. package/dist/factories/nats/resources/jetstream.d.ts.map +1 -1
  610. package/dist/factories/nats/resources/jetstream.js +2 -0
  611. package/dist/factories/nats/resources/jetstream.js.map +1 -1
  612. package/dist/factories/nats/types.d.ts +3 -3
  613. package/dist/factories/nats/types.js +1 -1
  614. package/dist/factories/nats/types.js.map +1 -1
  615. package/dist/factories/ory/compositions/ory-platform-stack.d.ts.map +1 -1
  616. package/dist/factories/ory/compositions/ory-platform-stack.js +35 -9
  617. package/dist/factories/ory/compositions/ory-platform-stack.js.map +1 -1
  618. package/dist/factories/ory/resources/oathkeeper-rule.d.ts.map +1 -1
  619. package/dist/factories/ory/resources/oathkeeper-rule.js +11 -8
  620. package/dist/factories/ory/resources/oathkeeper-rule.js.map +1 -1
  621. package/dist/factories/ory/resources/oauth2-client.d.ts.map +1 -1
  622. package/dist/factories/ory/resources/oauth2-client.js +12 -9
  623. package/dist/factories/ory/resources/oauth2-client.js.map +1 -1
  624. package/dist/factories/ory/types.d.ts +3 -0
  625. package/dist/factories/ory/types.d.ts.map +1 -1
  626. package/dist/factories/ory/types.js +1 -0
  627. package/dist/factories/ory/types.js.map +1 -1
  628. package/dist/factories/ory/utils/helm-values-mapper.d.ts.map +1 -1
  629. package/dist/factories/ory/utils/helm-values-mapper.js +6 -3
  630. package/dist/factories/ory/utils/helm-values-mapper.js.map +1 -1
  631. package/dist/factories/rook/compositions/rook-ceph-operator-installation.d.ts +2 -2
  632. package/dist/factories/rook/compositions/rook-ceph-operator-installation.d.ts.map +1 -1
  633. package/dist/factories/rook/compositions/rook-ceph-operator-installation.js +2 -3
  634. package/dist/factories/rook/compositions/rook-ceph-operator-installation.js.map +1 -1
  635. package/dist/factories/rook/compositions/rook-ceph-platform.d.ts +104 -0
  636. package/dist/factories/rook/compositions/rook-ceph-platform.d.ts.map +1 -1
  637. package/dist/factories/rook/resources/ceph-object-store-user.d.ts.map +1 -1
  638. package/dist/factories/rook/resources/ceph-object-store-user.js +2 -0
  639. package/dist/factories/rook/resources/ceph-object-store-user.js.map +1 -1
  640. package/dist/factories/rook/resources/ceph-object-store.d.ts.map +1 -1
  641. package/dist/factories/rook/resources/ceph-object-store.js +2 -0
  642. package/dist/factories/rook/resources/ceph-object-store.js.map +1 -1
  643. package/dist/factories/rook/resources/object-bucket-claim.d.ts.map +1 -1
  644. package/dist/factories/rook/resources/object-bucket-claim.js +2 -0
  645. package/dist/factories/rook/resources/object-bucket-claim.js.map +1 -1
  646. package/dist/factories/rook/types.d.ts +105 -1
  647. package/dist/factories/rook/types.d.ts.map +1 -1
  648. package/dist/factories/rook/types.js +10 -1
  649. package/dist/factories/rook/types.js.map +1 -1
  650. package/dist/factories/rook/utils/helm-values-mapper.d.ts +1 -1
  651. package/dist/factories/rook/utils/helm-values-mapper.d.ts.map +1 -1
  652. package/dist/factories/rook/utils/helm-values-mapper.js +19 -7
  653. package/dist/factories/rook/utils/helm-values-mapper.js.map +1 -1
  654. package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts.map +1 -1
  655. package/dist/factories/searxng/compositions/searxng-bootstrap.js +2 -2
  656. package/dist/factories/searxng/compositions/searxng-bootstrap.js.map +1 -1
  657. package/dist/factories/searxng/resources/searxng.d.ts.map +1 -1
  658. package/dist/factories/searxng/resources/searxng.js +2 -0
  659. package/dist/factories/searxng/resources/searxng.js.map +1 -1
  660. package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts +2 -2
  661. package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts.map +1 -1
  662. package/dist/factories/valkey/compositions/valkey-bootstrap.js +4 -9
  663. package/dist/factories/valkey/compositions/valkey-bootstrap.js.map +1 -1
  664. package/dist/factories/valkey/resources/valkey.d.ts.map +1 -1
  665. package/dist/factories/valkey/resources/valkey.js +2 -1
  666. package/dist/factories/valkey/resources/valkey.js.map +1 -1
  667. package/dist/factories/valkey/types.d.ts +3 -7
  668. package/dist/factories/valkey/types.d.ts.map +1 -1
  669. package/dist/factories/valkey/types.js +1 -1
  670. package/dist/factories/valkey/types.js.map +1 -1
  671. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts +3 -2
  672. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -1
  673. package/dist/factories/webapp/compositions/web-app-with-processing.js +7 -6
  674. package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -1
  675. package/dist/factories/webapp/types.d.ts +1 -0
  676. package/dist/factories/webapp/types.d.ts.map +1 -1
  677. package/dist/factories/webapp/types.js +2 -0
  678. package/dist/factories/webapp/types.js.map +1 -1
  679. package/dist/index.d.ts +2 -1
  680. package/dist/index.d.ts.map +1 -1
  681. package/dist/index.js +1 -1
  682. package/dist/index.js.map +1 -1
  683. package/dist/shared/brands.d.ts +7 -0
  684. package/dist/shared/brands.d.ts.map +1 -1
  685. package/dist/shared/brands.js +7 -0
  686. package/dist/shared/brands.js.map +1 -1
  687. package/dist/utils/index.d.ts +3 -3
  688. package/dist/utils/index.d.ts.map +1 -1
  689. package/dist/utils/index.js +3 -3
  690. package/dist/utils/index.js.map +1 -1
  691. package/package.json +20 -5
  692. package/dist/factories/kubernetes/yaml/conflict-handler.d.ts +0 -23
  693. package/dist/factories/kubernetes/yaml/conflict-handler.d.ts.map +0 -1
  694. package/dist/factories/kubernetes/yaml/conflict-handler.js +0 -83
  695. package/dist/factories/kubernetes/yaml/conflict-handler.js.map +0 -1
@@ -0,0 +1,852 @@
1
+ import { parse } from 'cel-js';
2
+ import { isCelExpression, isKubernetesRef, isMixedTemplate, isResourceReference, } from '../../utils/type-guards.js';
3
+ import { CEL_EXPRESSION_BRAND, KUBERNETES_REF_MARKER_SOURCE, SCHEMA_REFERENCE_OPTIONAL_BRAND, } from '../constants/brands.js';
4
+ import { TypeKroError } from '../errors.js';
5
+ import { getCelExpressionAnalysis } from '../expressions/analysis/expression-metadata.js';
6
+ import { CelEvaluator } from '../references/cel-evaluator.js';
7
+ import { canonicalDigest, canonicalStringify } from './canonical.js';
8
+ const SENSITIVE_INPUT_BRAND = Symbol.for('typekro.planning.sensitive-input');
9
+ const EXTERNAL_INPUT_BRAND = Symbol.for('typekro.planning.external-input');
10
+ const ARTIFACT_OUTPUT_BRAND = Symbol.for('typekro.planning.artifact-output');
11
+ const PLAN_EXPRESSION_BRAND = Symbol.for('typekro.planning.expression');
12
+ /** Detect an explicit planning value embedded in an otherwise ordinary value tree. */
13
+ export function containsExplicitPlanValue(value, seen = new WeakSet()) {
14
+ if (typeof value !== 'object' || value === null)
15
+ return false;
16
+ if (isBranded(value, PLAN_EXPRESSION_BRAND) ||
17
+ isBranded(value, SENSITIVE_INPUT_BRAND) ||
18
+ isBranded(value, EXTERNAL_INPUT_BRAND) ||
19
+ isBranded(value, ARTIFACT_OUTPUT_BRAND)) {
20
+ return true;
21
+ }
22
+ if (seen.has(value))
23
+ return false;
24
+ seen.add(value);
25
+ const prototype = Object.getPrototypeOf(value);
26
+ if (!Array.isArray(value) && prototype !== Object.prototype && prototype !== null)
27
+ return false;
28
+ return Object.values(value).some((child) => containsExplicitPlanValue(child, seen));
29
+ }
30
+ /** Declare an opaque sensitive binding without embedding its plaintext value. */
31
+ export function sensitiveValue(binding, version) {
32
+ if (binding.length === 0) {
33
+ throw new TypeKroError('Sensitive binding names must not be empty.', 'PLAN_INVALID_SENSITIVE_BINDING');
34
+ }
35
+ return Object.freeze({
36
+ kind: 'sensitive-binding',
37
+ binding,
38
+ ...(version !== undefined ? { version } : {}),
39
+ [SENSITIVE_INPUT_BRAND]: true,
40
+ });
41
+ }
42
+ /** Reference a declared external planning input from a value tree. */
43
+ export function externalInput(name) {
44
+ if (name.length === 0) {
45
+ throw new TypeKroError('External input names must not be empty.', 'PLAN_INVALID_EXTERNAL_INPUT');
46
+ }
47
+ return Object.freeze({
48
+ kind: 'external-input',
49
+ name,
50
+ [EXTERNAL_INPUT_BRAND]: true,
51
+ });
52
+ }
53
+ /**
54
+ * Reference an output of a declared artifact requirement.
55
+ *
56
+ * Artifact producers most commonly return strings such as image digests, so the authoring value
57
+ * defaults to `string`. Callers may select another direct-mode value type explicitly.
58
+ */
59
+ export function artifactOutput(requirementId, output) {
60
+ if (requirementId.length === 0 || output.length === 0) {
61
+ throw new TypeKroError('Artifact output references require non-empty requirement and output names.', 'PLAN_INVALID_ARTIFACT_OUTPUT');
62
+ }
63
+ return Object.freeze({
64
+ kind: 'artifact-output',
65
+ requirementId,
66
+ output,
67
+ [ARTIFACT_OUTPUT_BRAND]: true,
68
+ });
69
+ }
70
+ function artifactBindingKey(prefix, value) {
71
+ return `${prefix}_${canonicalDigest(value).replace(/[^a-zA-Z0-9]/g, '')}`;
72
+ }
73
+ /**
74
+ * KRO root-spec field reserved for TypeKro's per-installation provider bindings.
75
+ *
76
+ * This is intentionally stable because persisted Alchemy state and generated
77
+ * custom resources must agree on the field name. KRO compilation rejects user
78
+ * schemas and instance specs that claim it.
79
+ */
80
+ export const KRO_ARTIFACT_BINDINGS_SPEC_FIELD = 'typekroArtifactBindings';
81
+ /** Stable KRO instance-spec field for one artifact requirement. */
82
+ export function kroArtifactRequirementField(requirementId) {
83
+ return artifactBindingKey('r', requirementId);
84
+ }
85
+ /** Stable KRO instance-spec field for one artifact output. */
86
+ export function kroArtifactOutputField(output) {
87
+ return artifactBindingKey('o', output);
88
+ }
89
+ /**
90
+ * Find every cross-provider artifact output used by a canonical value or artifact DTO.
91
+ * Sensitivity follows the nearest `sensitive-value` envelope so durable hosts can redact
92
+ * only the outputs that actually carry secret material.
93
+ */
94
+ export function collectArtifactOutputUses(value) {
95
+ const uses = new Map();
96
+ const visit = (current, sensitive, seen) => {
97
+ if (!current || typeof current !== 'object')
98
+ return;
99
+ const priorSensitivity = seen.get(current);
100
+ if (priorSensitivity === true || priorSensitivity === sensitive)
101
+ return;
102
+ seen.set(current, sensitive);
103
+ if (Array.isArray(current)) {
104
+ current.forEach((entry) => visit(entry, sensitive, seen));
105
+ return;
106
+ }
107
+ const record = current;
108
+ if (record.kind === 'artifact-output' &&
109
+ typeof record.requirementId === 'string' &&
110
+ typeof record.output === 'string') {
111
+ const key = `${record.requirementId}\u0000${record.output}`;
112
+ const prior = uses.get(key);
113
+ uses.set(key, {
114
+ requirementId: record.requirementId,
115
+ output: record.output,
116
+ sensitive: sensitive || prior?.sensitive === true,
117
+ });
118
+ return;
119
+ }
120
+ const nestedSensitive = sensitive || record.kind === 'sensitive-value';
121
+ Object.values(record).forEach((entry) => visit(entry, nestedSensitive, seen));
122
+ };
123
+ visit(value, false, new WeakMap());
124
+ return [...uses.values()].sort((left, right) => canonicalStringify(left).localeCompare(canonicalStringify(right)));
125
+ }
126
+ /** Embed a portable or target-constrained expression in a PlanValue tree. */
127
+ export function planExpression(expression) {
128
+ return Object.freeze({
129
+ kind: 'expression',
130
+ expression,
131
+ [PLAN_EXPRESSION_BRAND]: true,
132
+ });
133
+ }
134
+ function isBranded(value, brand) {
135
+ return typeof value === 'object' && value !== null && Reflect.get(value, brand) === true;
136
+ }
137
+ function tokenImage(value) {
138
+ return value && typeof value === 'object' && typeof Reflect.get(value, 'image') === 'string'
139
+ ? Reflect.get(value, 'image')
140
+ : undefined;
141
+ }
142
+ function parsedExpressionReferences(expression) {
143
+ const references = new Map();
144
+ const parsed = parse(expression);
145
+ if (!parsed.isSuccess)
146
+ return { references: [] };
147
+ let firstToken;
148
+ const seen = new WeakSet();
149
+ const visit = (value) => {
150
+ if (!value || typeof value !== 'object' || seen.has(value))
151
+ return;
152
+ seen.add(value);
153
+ if (!firstToken && typeof Reflect.get(value, 'image') === 'string') {
154
+ firstToken = value;
155
+ }
156
+ if (Reflect.get(value, 'name') === 'identifierExpression') {
157
+ const children = Reflect.get(value, 'children');
158
+ if (children && typeof children === 'object') {
159
+ const roots = Reflect.get(children, 'Identifier');
160
+ const root = Array.isArray(roots) ? tokenImage(roots[0]) : undefined;
161
+ const dots = Reflect.get(children, 'identifierDotExpression');
162
+ const segments = Array.isArray(dots)
163
+ ? dots.flatMap((dot) => {
164
+ if (!dot || typeof dot !== 'object')
165
+ return [];
166
+ const dotChildren = Reflect.get(dot, 'children');
167
+ if (!dotChildren || typeof dotChildren !== 'object')
168
+ return [];
169
+ const identifiers = Reflect.get(dotChildren, 'Identifier');
170
+ const image = Array.isArray(identifiers) ? tokenImage(identifiers[0]) : undefined;
171
+ return image ? [image] : [];
172
+ })
173
+ : [];
174
+ if (root === 'schema' && segments[0] === 'spec') {
175
+ const fieldPath = segments.slice(1).join('.');
176
+ references.set(`spec:${fieldPath}`, { source: 'spec', fieldPath });
177
+ }
178
+ else if (root &&
179
+ (segments[0] === 'spec' || segments[0] === 'status' || segments[0] === 'metadata')) {
180
+ const fieldPath = segments.join('.');
181
+ references.set(`resource:${root}:${fieldPath}`, {
182
+ source: 'resource',
183
+ resourceId: root,
184
+ fieldPath,
185
+ });
186
+ }
187
+ }
188
+ }
189
+ for (const child of Object.values(value)) {
190
+ if (Array.isArray(child))
191
+ child.forEach(visit);
192
+ else
193
+ visit(child);
194
+ }
195
+ };
196
+ visit(parsed.cst);
197
+ const startLine = firstToken?.startLine;
198
+ const startColumn = firstToken?.startColumn;
199
+ const sourceLocation = typeof startLine === 'number' && typeof startColumn === 'number'
200
+ ? { line: startLine, column: startColumn }
201
+ : undefined;
202
+ return {
203
+ references: [...references.values()].sort((left, right) => canonicalStringify(left).localeCompare(canonicalStringify(right))),
204
+ ...(sourceLocation ? { sourceLocation } : {}),
205
+ };
206
+ }
207
+ /** Create canonical expression IR from emitted CEL. */
208
+ export function expressionIR(expression, options = {}) {
209
+ if (expression.trim().length === 0) {
210
+ throw new TypeKroError('Expression IR cannot be empty.', 'PLAN_INVALID_EXPRESSION');
211
+ }
212
+ const parsed = options.references || options.sourceLocation
213
+ ? undefined
214
+ : parsedExpressionReferences(expression);
215
+ return {
216
+ version: 1,
217
+ language: options.language ?? 'portable-cel',
218
+ expression,
219
+ references: options.references ?? parsed?.references ?? [],
220
+ sensitivity: options.sensitivity ?? 'public',
221
+ ...(options.sourceLocation
222
+ ? { sourceLocation: options.sourceLocation }
223
+ : parsed?.sourceLocation
224
+ ? { sourceLocation: parsed.sourceLocation }
225
+ : {}),
226
+ };
227
+ }
228
+ function unsupportedDiagnostic(path, value) {
229
+ const constructorName = value !== null && typeof value === 'object' && typeof value.constructor?.name === 'string'
230
+ ? value.constructor.name
231
+ : undefined;
232
+ const runtimeType = constructorName && constructorName !== 'Object'
233
+ ? `${typeof value} (${constructorName} class instance)`
234
+ : typeof value;
235
+ return {
236
+ code: 'PLAN_VALUE_UNSUPPORTED',
237
+ severity: 'error',
238
+ message: `Value at ${path} has unsupported runtime type ${runtimeType}.`,
239
+ path,
240
+ };
241
+ }
242
+ function isOptionalReferencePath(fieldPath) {
243
+ return fieldPath.split('.').some((segment) => segment.startsWith('?'));
244
+ }
245
+ function normalizeSchemaReferencePath(fieldPath) {
246
+ return fieldPath
247
+ .split('.')
248
+ .map((segment) => (segment.startsWith('?') ? segment.slice(1) : segment))
249
+ .join('.');
250
+ }
251
+ function isOptionalSchemaReference(value, fieldPath) {
252
+ return (Reflect.get(value, SCHEMA_REFERENCE_OPTIONAL_BRAND) === true ||
253
+ isOptionalReferencePath(fieldPath));
254
+ }
255
+ function schemaPathSegments(fieldPath) {
256
+ const normalized = fieldPath.startsWith('spec.') ? fieldPath.slice('spec.'.length) : fieldPath;
257
+ return normalized
258
+ .replace(/\[(\d+)\]/g, '.$1')
259
+ .split('.')
260
+ .filter((segment) => segment.length > 0)
261
+ .map((segment) => (segment.startsWith('?') ? segment.slice(1) : segment));
262
+ }
263
+ function inspectSchemaPath(node, segments, index = 0) {
264
+ if (index >= segments.length)
265
+ return { recognized: true, optional: false };
266
+ if (node.kind === 'union') {
267
+ const variants = node.variants.map((variant) => inspectSchemaPath(variant, segments, index));
268
+ const recognized = variants.some((result) => result.recognized);
269
+ return {
270
+ recognized,
271
+ optional: recognized && variants.some((result) => !result.recognized || result.optional),
272
+ };
273
+ }
274
+ const segment = segments[index];
275
+ if (!segment)
276
+ return { recognized: false, optional: false };
277
+ if (node.kind === 'array') {
278
+ if (segment !== '$item' && !/^\d+$/.test(segment)) {
279
+ return { recognized: false, optional: false };
280
+ }
281
+ return inspectSchemaPath(node.items, segments, index + 1);
282
+ }
283
+ if (node.kind !== 'object')
284
+ return { recognized: false, optional: false };
285
+ const property = node.properties.find((candidate) => candidate.name === segment);
286
+ if (!property)
287
+ return { recognized: false, optional: false };
288
+ const child = inspectSchemaPath(property.schema, segments, index + 1);
289
+ return {
290
+ recognized: child.recognized,
291
+ optional: !property.required || child.optional,
292
+ };
293
+ }
294
+ function schemaReferenceIsOptional(schema, fieldPath) {
295
+ const result = inspectSchemaPath(schema.root, schemaPathSegments(fieldPath));
296
+ return result.recognized && result.optional;
297
+ }
298
+ function applySchemaReferenceOptionality(value, schema) {
299
+ switch (value.kind) {
300
+ case 'sensitive-value':
301
+ return {
302
+ ...value,
303
+ value: applySchemaReferenceOptionality(value.value, schema),
304
+ };
305
+ case 'reference':
306
+ return value.source === 'spec' &&
307
+ value.optional !== true &&
308
+ schemaReferenceIsOptional(schema, value.fieldPath)
309
+ ? { ...value, optional: true }
310
+ : value;
311
+ case 'template':
312
+ return {
313
+ ...value,
314
+ segments: value.segments.map((segment) => segment.kind === 'reference' &&
315
+ segment.source === 'spec' &&
316
+ segment.optional !== true &&
317
+ schemaReferenceIsOptional(schema, segment.fieldPath)
318
+ ? { ...segment, optional: true }
319
+ : segment),
320
+ };
321
+ case 'array':
322
+ return {
323
+ ...value,
324
+ items: value.items.map((item) => applySchemaReferenceOptionality(item, schema)),
325
+ };
326
+ case 'object':
327
+ return {
328
+ ...value,
329
+ entries: value.entries.map((entry) => ({
330
+ ...entry,
331
+ value: applySchemaReferenceOptionality(entry.value, schema),
332
+ })),
333
+ };
334
+ default:
335
+ return value;
336
+ }
337
+ }
338
+ function markerReference(resourceId, fieldPath) {
339
+ const optional = isOptionalReferencePath(fieldPath);
340
+ return resourceId === '__schema__'
341
+ ? {
342
+ kind: 'reference',
343
+ source: 'spec',
344
+ fieldPath: normalizeSchemaReferencePath(fieldPath.startsWith('spec.') ? fieldPath.slice('spec.'.length) : fieldPath),
345
+ ...(optional ? { optional: true } : {}),
346
+ }
347
+ : {
348
+ kind: 'reference',
349
+ source: 'resource',
350
+ resourceId,
351
+ fieldPath,
352
+ ...(optional ? { optional: true } : {}),
353
+ };
354
+ }
355
+ function markerPlanValue(value) {
356
+ const full = new RegExp(`^${KUBERNETES_REF_MARKER_SOURCE}$`).exec(value);
357
+ if (full?.[1] && full[2]) {
358
+ const reference = markerReference(full[1], full[2]);
359
+ return {
360
+ kind: 'template',
361
+ segments: [reference],
362
+ };
363
+ }
364
+ const matches = [...value.matchAll(new RegExp(KUBERNETES_REF_MARKER_SOURCE, 'g'))];
365
+ if (matches.length === 0)
366
+ return undefined;
367
+ const segments = [];
368
+ let offset = 0;
369
+ for (const match of matches) {
370
+ const index = match.index ?? 0;
371
+ if (index > offset)
372
+ segments.push({ kind: 'literal', value: value.slice(offset, index) });
373
+ const resourceId = match[1];
374
+ const fieldPath = match[2];
375
+ if (!resourceId || !fieldPath)
376
+ return undefined;
377
+ segments.push(markerReference(resourceId, fieldPath));
378
+ offset = index + match[0].length;
379
+ }
380
+ if (offset < value.length)
381
+ segments.push({ kind: 'literal', value: value.slice(offset) });
382
+ return { kind: 'template', segments };
383
+ }
384
+ function analyzerExpressionOptions(value) {
385
+ const analysis = getCelExpressionAnalysis(value);
386
+ if (!analysis)
387
+ return {};
388
+ const references = analysis.references.map((reference) => {
389
+ if (reference.resourceId === '__schema__') {
390
+ return {
391
+ source: 'spec',
392
+ fieldPath: reference.fieldPath.startsWith('spec.')
393
+ ? reference.fieldPath.slice('spec.'.length)
394
+ : reference.fieldPath,
395
+ };
396
+ }
397
+ return {
398
+ source: 'resource',
399
+ resourceId: reference.resourceId,
400
+ fieldPath: reference.fieldPath,
401
+ };
402
+ });
403
+ return {
404
+ references,
405
+ ...(analysis.sourceLocation ? { sourceLocation: analysis.sourceLocation } : {}),
406
+ };
407
+ }
408
+ function mixedTemplatePlanValue(value) {
409
+ const segments = [];
410
+ const pattern = /\$\{([^{}]+)\}/g;
411
+ let offset = 0;
412
+ let match = pattern.exec(value.expression);
413
+ while (match) {
414
+ const index = match.index;
415
+ if (index > offset) {
416
+ segments.push({ kind: 'literal', value: value.expression.slice(offset, index) });
417
+ }
418
+ const expression = match[1];
419
+ if (!expression)
420
+ return { kind: 'expression', expression: expressionIR(value.expression) };
421
+ segments.push({ kind: 'expression', expression: expressionIR(expression) });
422
+ offset = index + match[0].length;
423
+ match = pattern.exec(value.expression);
424
+ }
425
+ if (segments.length === 0) {
426
+ return { kind: 'expression', expression: expressionIR(value.expression) };
427
+ }
428
+ if (offset < value.expression.length) {
429
+ segments.push({ kind: 'literal', value: value.expression.slice(offset) });
430
+ }
431
+ return { kind: 'template', segments };
432
+ }
433
+ function lowerValue(value, path, state, expressionLanguage) {
434
+ if (value === undefined)
435
+ return { kind: 'omitted' };
436
+ if (typeof value === 'string') {
437
+ return markerPlanValue(value) ?? { kind: 'literal', value };
438
+ }
439
+ if (value === null || typeof value === 'boolean') {
440
+ return { kind: 'literal', value };
441
+ }
442
+ if (typeof value === 'number') {
443
+ if (!Number.isFinite(value)) {
444
+ state.diagnostics.push(unsupportedDiagnostic(path, value));
445
+ return { kind: 'omitted' };
446
+ }
447
+ return { kind: 'literal', value: Object.is(value, -0) ? 0 : value };
448
+ }
449
+ if (isKubernetesRef(value)) {
450
+ if (value.resourceId === '__schema__') {
451
+ const sourceFieldPath = value.fieldPath.startsWith('spec.')
452
+ ? value.fieldPath.slice('spec.'.length)
453
+ : value.fieldPath;
454
+ const fieldPath = normalizeSchemaReferencePath(sourceFieldPath);
455
+ return {
456
+ kind: 'reference',
457
+ source: 'spec',
458
+ fieldPath,
459
+ ...(isOptionalSchemaReference(value, sourceFieldPath) ? { optional: true } : {}),
460
+ };
461
+ }
462
+ return {
463
+ kind: 'reference',
464
+ source: 'resource',
465
+ resourceId: value.resourceId,
466
+ fieldPath: value.fieldPath,
467
+ ...(value.__nestedComposition === true
468
+ ? { nestedComposition: true }
469
+ : {}),
470
+ };
471
+ }
472
+ if (isResourceReference(value)) {
473
+ if (value.resourceId === '__schema__') {
474
+ const sourceFieldPath = value.fieldPath.startsWith('spec.')
475
+ ? value.fieldPath.slice('spec.'.length)
476
+ : value.fieldPath;
477
+ const fieldPath = normalizeSchemaReferencePath(sourceFieldPath);
478
+ return {
479
+ kind: 'reference',
480
+ source: 'spec',
481
+ fieldPath,
482
+ ...(isOptionalSchemaReference(value, sourceFieldPath) ? { optional: true } : {}),
483
+ };
484
+ }
485
+ return {
486
+ kind: 'reference',
487
+ source: 'resource',
488
+ resourceId: value.resourceId,
489
+ fieldPath: value.fieldPath,
490
+ ...(value.__nestedComposition === true
491
+ ? { nestedComposition: true }
492
+ : {}),
493
+ };
494
+ }
495
+ if (isMixedTemplate(value) || (isCelExpression(value) && value.__isTemplate === true)) {
496
+ return mixedTemplatePlanValue(value);
497
+ }
498
+ if (isCelExpression(value)) {
499
+ return {
500
+ kind: 'expression',
501
+ expression: expressionIR(value.expression, {
502
+ language: expressionLanguage,
503
+ ...analyzerExpressionOptions(value),
504
+ }),
505
+ };
506
+ }
507
+ if (isBranded(value, PLAN_EXPRESSION_BRAND)) {
508
+ const expression = Reflect.get(value, 'expression');
509
+ if (!expression || typeof expression !== 'object') {
510
+ state.diagnostics.push(unsupportedDiagnostic(path, value));
511
+ return { kind: 'omitted' };
512
+ }
513
+ const loweredExpression = expression;
514
+ if (loweredExpression.sensitivity === 'sensitive')
515
+ state.sensitive = true;
516
+ return { kind: 'expression', expression: loweredExpression };
517
+ }
518
+ if (isBranded(value, SENSITIVE_INPUT_BRAND)) {
519
+ const binding = Reflect.get(value, 'binding');
520
+ const version = Reflect.get(value, 'version');
521
+ if (typeof binding !== 'string') {
522
+ state.diagnostics.push(unsupportedDiagnostic(path, value));
523
+ return { kind: 'omitted' };
524
+ }
525
+ state.sensitive = true;
526
+ return {
527
+ kind: 'sensitive-binding',
528
+ binding,
529
+ ...(typeof version === 'string' ? { version } : {}),
530
+ };
531
+ }
532
+ if (isBranded(value, EXTERNAL_INPUT_BRAND)) {
533
+ const name = Reflect.get(value, 'name');
534
+ if (typeof name !== 'string') {
535
+ state.diagnostics.push(unsupportedDiagnostic(path, value));
536
+ return { kind: 'omitted' };
537
+ }
538
+ return { kind: 'external-input', name };
539
+ }
540
+ if (isBranded(value, ARTIFACT_OUTPUT_BRAND)) {
541
+ const requirementId = Reflect.get(value, 'requirementId');
542
+ const output = Reflect.get(value, 'output');
543
+ if (typeof requirementId !== 'string' || typeof output !== 'string') {
544
+ state.diagnostics.push(unsupportedDiagnostic(path, value));
545
+ return { kind: 'omitted' };
546
+ }
547
+ return { kind: 'artifact-output', requirementId, output };
548
+ }
549
+ if (Array.isArray(value)) {
550
+ if (state.seen.has(value)) {
551
+ state.diagnostics.push({
552
+ code: 'PLAN_VALUE_CIRCULAR',
553
+ severity: 'error',
554
+ message: `Circular array encountered at ${path}.`,
555
+ path,
556
+ });
557
+ return { kind: 'omitted' };
558
+ }
559
+ state.seen.add(value);
560
+ const items = value.map((item, index) => lowerValue(item, `${path}[${index}]`, state, expressionLanguage));
561
+ state.seen.delete(value);
562
+ return { kind: 'array', items };
563
+ }
564
+ if (typeof value === 'object') {
565
+ const prototype = Object.getPrototypeOf(value);
566
+ if (prototype !== Object.prototype && prototype !== null) {
567
+ state.diagnostics.push(unsupportedDiagnostic(path, value));
568
+ return { kind: 'omitted' };
569
+ }
570
+ if (state.seen.has(value)) {
571
+ state.diagnostics.push({
572
+ code: 'PLAN_VALUE_CIRCULAR',
573
+ severity: 'error',
574
+ message: `Circular object encountered at ${path}.`,
575
+ path,
576
+ });
577
+ return { kind: 'omitted' };
578
+ }
579
+ state.seen.add(value);
580
+ const entries = Object.keys(value)
581
+ .sort()
582
+ .map((key) => ({
583
+ key,
584
+ value: lowerValue(Reflect.get(value, key), path === '$' ? `$.${key}` : `${path}.${key}`, state, expressionLanguage),
585
+ }));
586
+ state.seen.delete(value);
587
+ return { kind: 'object', entries };
588
+ }
589
+ state.diagnostics.push(unsupportedDiagnostic(path, value));
590
+ return { kind: 'omitted' };
591
+ }
592
+ /** Lower an authoring/runtime value into canonical PlanValue form. */
593
+ export function lowerPlanValue(value, options = {}) {
594
+ const state = {
595
+ diagnostics: [],
596
+ seen: new WeakSet(),
597
+ sensitive: false,
598
+ };
599
+ const loweredValue = lowerValue(value, '$', state, options.expressionLanguage ?? 'portable-cel');
600
+ const lowered = options.specSchema
601
+ ? applySchemaReferenceOptionality(loweredValue, options.specSchema)
602
+ : loweredValue;
603
+ if (options.strict && state.diagnostics.some((diagnostic) => diagnostic.severity === 'error')) {
604
+ throw new TypeKroError(`Plan value lowering failed: ${state.diagnostics.map((diagnostic) => diagnostic.message).join('; ')}`, 'PLAN_VALUE_LOWERING_FAILED', { diagnostics: state.diagnostics });
605
+ }
606
+ return {
607
+ value: lowered,
608
+ diagnostics: state.diagnostics,
609
+ sensitivity: state.sensitive ? 'sensitive' : 'public',
610
+ };
611
+ }
612
+ function assertSensitiveSourceContainsNoLiteral(value, path) {
613
+ switch (value.kind) {
614
+ case 'literal':
615
+ throw new TypeKroError(`Sensitive values cannot contain plaintext literals at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', { path });
616
+ case 'array':
617
+ value.items.forEach((item, index) => assertSensitiveSourceContainsNoLiteral(item, `${path}.items[${index}]`));
618
+ return;
619
+ case 'object':
620
+ value.entries.forEach((entry, index) => assertSensitiveSourceContainsNoLiteral(entry.value, `${path}.entries[${index}].value`));
621
+ return;
622
+ case 'sensitive-value':
623
+ assertSensitiveSourceContainsNoLiteral(value.value, `${path}.value`);
624
+ return;
625
+ default:
626
+ // Templates may contain public literal framing around symbolic segments.
627
+ // Expressions and opaque bindings are validated by assertPlanValue().
628
+ return;
629
+ }
630
+ }
631
+ function assertPlanValue(value, path) {
632
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
633
+ throw new TypeKroError(`Invalid PlanValue at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', { path });
634
+ }
635
+ const kind = Reflect.get(value, 'kind');
636
+ switch (kind) {
637
+ case 'literal': {
638
+ const literal = Reflect.get(value, 'value');
639
+ if (literal !== null &&
640
+ typeof literal !== 'string' &&
641
+ typeof literal !== 'number' &&
642
+ typeof literal !== 'boolean') {
643
+ throw new TypeKroError(`Invalid literal at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', {
644
+ path,
645
+ });
646
+ }
647
+ if (typeof literal === 'number' && !Number.isFinite(literal)) {
648
+ throw new TypeKroError(`Invalid non-finite literal at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', {
649
+ path,
650
+ });
651
+ }
652
+ return;
653
+ }
654
+ case 'array': {
655
+ const items = Reflect.get(value, 'items');
656
+ if (!Array.isArray(items)) {
657
+ throw new TypeKroError(`Invalid array at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', { path });
658
+ }
659
+ items.forEach((item, index) => assertPlanValue(item, `${path}.items[${index}]`));
660
+ return;
661
+ }
662
+ case 'object': {
663
+ const entries = Reflect.get(value, 'entries');
664
+ if (!Array.isArray(entries)) {
665
+ throw new TypeKroError(`Invalid object at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', { path });
666
+ }
667
+ let previousKey;
668
+ entries.forEach((entry, index) => {
669
+ if (!entry || typeof entry !== 'object' || typeof Reflect.get(entry, 'key') !== 'string') {
670
+ throw new TypeKroError(`Invalid object entry at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', {
671
+ path,
672
+ });
673
+ }
674
+ const key = Reflect.get(entry, 'key');
675
+ if (previousKey !== undefined && key <= previousKey) {
676
+ throw new TypeKroError(`Object entries at ${path} must have unique, canonically sorted keys.`, 'PLAN_VALUE_DECODE_FAILED', { path });
677
+ }
678
+ previousKey = key;
679
+ assertPlanValue(Reflect.get(entry, 'value'), `${path}.entries[${index}].value`);
680
+ });
681
+ return;
682
+ }
683
+ case 'reference':
684
+ if ((Reflect.get(value, 'source') !== 'spec' && Reflect.get(value, 'source') !== 'resource') ||
685
+ typeof Reflect.get(value, 'fieldPath') !== 'string' ||
686
+ (Reflect.get(value, 'source') === 'resource' &&
687
+ typeof Reflect.get(value, 'resourceId') !== 'string') ||
688
+ (Reflect.get(value, 'source') === 'spec' &&
689
+ Reflect.get(value, 'resourceId') !== undefined) ||
690
+ (Reflect.get(value, 'optional') !== undefined && Reflect.get(value, 'optional') !== true) ||
691
+ (Reflect.get(value, 'nestedComposition') !== undefined &&
692
+ Reflect.get(value, 'nestedComposition') !== true) ||
693
+ (Reflect.get(value, 'source') === 'spec' &&
694
+ Reflect.get(value, 'nestedComposition') !== undefined)) {
695
+ throw new TypeKroError(`Invalid reference at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', {
696
+ path,
697
+ });
698
+ }
699
+ return;
700
+ case 'expression': {
701
+ const expression = Reflect.get(value, 'expression');
702
+ if (!expression ||
703
+ typeof expression !== 'object' ||
704
+ Reflect.get(expression, 'version') !== 1 ||
705
+ (Reflect.get(expression, 'language') !== 'portable-cel' &&
706
+ Reflect.get(expression, 'language') !== 'raw-cel') ||
707
+ typeof Reflect.get(expression, 'expression') !== 'string' ||
708
+ Reflect.get(expression, 'expression').trim().length === 0 ||
709
+ !Array.isArray(Reflect.get(expression, 'references')) ||
710
+ (Reflect.get(expression, 'sensitivity') !== 'public' &&
711
+ Reflect.get(expression, 'sensitivity') !== 'sensitive')) {
712
+ throw new TypeKroError(`Invalid expression at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', {
713
+ path,
714
+ });
715
+ }
716
+ for (const [index, reference] of Reflect.get(expression, 'references').entries()) {
717
+ if (!reference ||
718
+ typeof reference !== 'object' ||
719
+ (Reflect.get(reference, 'source') !== 'spec' &&
720
+ Reflect.get(reference, 'source') !== 'resource') ||
721
+ typeof Reflect.get(reference, 'fieldPath') !== 'string' ||
722
+ (Reflect.get(reference, 'source') === 'resource' &&
723
+ typeof Reflect.get(reference, 'resourceId') !== 'string')) {
724
+ throw new TypeKroError(`Invalid expression reference at ${path}.expression.references[${index}].`, 'PLAN_VALUE_DECODE_FAILED', { path });
725
+ }
726
+ }
727
+ const sourceLocation = Reflect.get(expression, 'sourceLocation');
728
+ if (sourceLocation !== undefined &&
729
+ (!sourceLocation ||
730
+ typeof sourceLocation !== 'object' ||
731
+ (Reflect.get(sourceLocation, 'file') !== undefined &&
732
+ typeof Reflect.get(sourceLocation, 'file') !== 'string') ||
733
+ (Reflect.get(sourceLocation, 'line') !== undefined &&
734
+ typeof Reflect.get(sourceLocation, 'line') !== 'number') ||
735
+ (Reflect.get(sourceLocation, 'column') !== undefined &&
736
+ typeof Reflect.get(sourceLocation, 'column') !== 'number'))) {
737
+ throw new TypeKroError(`Invalid expression source location at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', { path });
738
+ }
739
+ return;
740
+ }
741
+ case 'template': {
742
+ const segments = Reflect.get(value, 'segments');
743
+ if (!Array.isArray(segments) || segments.length === 0) {
744
+ throw new TypeKroError(`Invalid template at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', {
745
+ path,
746
+ });
747
+ }
748
+ segments.forEach((segment, index) => {
749
+ if (!segment || typeof segment !== 'object') {
750
+ throw new TypeKroError(`Invalid template segment at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', {
751
+ path,
752
+ });
753
+ }
754
+ if (Reflect.get(segment, 'kind') === 'literal') {
755
+ if (typeof Reflect.get(segment, 'value') !== 'string') {
756
+ throw new TypeKroError(`Invalid literal template segment at ${path}.segments[${index}].`, 'PLAN_VALUE_DECODE_FAILED', { path });
757
+ }
758
+ return;
759
+ }
760
+ if (Reflect.get(segment, 'kind') === 'expression') {
761
+ const expression = Reflect.get(segment, 'expression');
762
+ assertPlanValue({ kind: 'expression', expression }, `${path}.segments[${index}]`);
763
+ return;
764
+ }
765
+ if (Reflect.get(segment, 'kind') !== 'reference' ||
766
+ (Reflect.get(segment, 'source') !== 'spec' &&
767
+ Reflect.get(segment, 'source') !== 'resource') ||
768
+ typeof Reflect.get(segment, 'fieldPath') !== 'string' ||
769
+ (Reflect.get(segment, 'source') === 'resource' &&
770
+ typeof Reflect.get(segment, 'resourceId') !== 'string') ||
771
+ (Reflect.get(segment, 'source') === 'spec' &&
772
+ Reflect.get(segment, 'resourceId') !== undefined) ||
773
+ (Reflect.get(segment, 'optional') !== undefined &&
774
+ Reflect.get(segment, 'optional') !== true) ||
775
+ (Reflect.get(segment, 'nestedComposition') !== undefined &&
776
+ Reflect.get(segment, 'nestedComposition') !== true) ||
777
+ (Reflect.get(segment, 'source') === 'spec' &&
778
+ Reflect.get(segment, 'nestedComposition') !== undefined)) {
779
+ throw new TypeKroError(`Invalid reference template segment at ${path}.segments[${index}].`, 'PLAN_VALUE_DECODE_FAILED', { path });
780
+ }
781
+ });
782
+ return;
783
+ }
784
+ case 'omitted':
785
+ return;
786
+ case 'sensitive-binding':
787
+ if (typeof Reflect.get(value, 'binding') !== 'string' ||
788
+ Reflect.get(value, 'binding').length === 0 ||
789
+ (Reflect.get(value, 'version') !== undefined &&
790
+ typeof Reflect.get(value, 'version') !== 'string')) {
791
+ throw new TypeKroError(`Invalid sensitive binding at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', {
792
+ path,
793
+ });
794
+ }
795
+ return;
796
+ case 'sensitive-value': {
797
+ const wrapped = Reflect.get(value, 'value');
798
+ if (!wrapped || typeof wrapped !== 'object') {
799
+ throw new TypeKroError(`Invalid sensitive value at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', {
800
+ path,
801
+ });
802
+ }
803
+ assertPlanValue(wrapped, `${path}.value`);
804
+ assertSensitiveSourceContainsNoLiteral(wrapped, `${path}.value`);
805
+ return;
806
+ }
807
+ case 'external-input':
808
+ if (typeof Reflect.get(value, 'name') !== 'string' ||
809
+ Reflect.get(value, 'name').length === 0) {
810
+ throw new TypeKroError(`Invalid external input at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', {
811
+ path,
812
+ });
813
+ }
814
+ return;
815
+ case 'artifact-output':
816
+ if (typeof Reflect.get(value, 'requirementId') !== 'string' ||
817
+ Reflect.get(value, 'requirementId').length === 0 ||
818
+ typeof Reflect.get(value, 'output') !== 'string' ||
819
+ Reflect.get(value, 'output').length === 0) {
820
+ throw new TypeKroError(`Invalid artifact output at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', {
821
+ path,
822
+ });
823
+ }
824
+ return;
825
+ default:
826
+ throw new TypeKroError(`Unknown PlanValue kind at ${path}.`, 'PLAN_VALUE_DECODE_FAILED', {
827
+ path,
828
+ });
829
+ }
830
+ }
831
+ /** Canonically encode a PlanValue. */
832
+ export function encodePlanValue(value) {
833
+ return canonicalStringify(value);
834
+ }
835
+ /** Decode and structurally validate a PlanValue. */
836
+ export function decodePlanValue(encoded) {
837
+ const parsed = JSON.parse(encoded);
838
+ assertPlanValue(parsed, '$');
839
+ return parsed;
840
+ }
841
+ /** Emit the canonical CEL source consumed by the KRO frontend. */
842
+ export function emitExpressionCel(expression) {
843
+ return expression.expression;
844
+ }
845
+ /** Evaluate portable expression IR through the same CEL evaluator used by direct mode. */
846
+ export async function evaluateExpressionIR(expression, context) {
847
+ if (expression.language !== 'portable-cel') {
848
+ throw new TypeKroError('Raw CEL expression IR cannot be evaluated as a portable direct expression.', 'PLAN_EXPRESSION_TARGET_UNSUPPORTED', { language: expression.language });
849
+ }
850
+ return new CelEvaluator().evaluate({ [CEL_EXPRESSION_BRAND]: true, expression: expression.expression }, context);
851
+ }
852
+ //# sourceMappingURL=values.js.map