typekro 0.1.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 (620) hide show
  1. package/LICENSE +185 -0
  2. package/README.md +1137 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/alchemy/deployers.d.ts +39 -0
  5. package/dist/alchemy/deployers.d.ts.map +1 -0
  6. package/dist/alchemy/deployers.js +194 -0
  7. package/dist/alchemy/deployers.js.map +1 -0
  8. package/dist/alchemy/deployment.d.ts +12 -0
  9. package/dist/alchemy/deployment.d.ts.map +1 -0
  10. package/dist/alchemy/deployment.js +12 -0
  11. package/dist/alchemy/deployment.js.map +1 -0
  12. package/dist/alchemy/index.d.ts +17 -0
  13. package/dist/alchemy/index.d.ts.map +1 -0
  14. package/dist/alchemy/index.js +20 -0
  15. package/dist/alchemy/index.js.map +1 -0
  16. package/dist/alchemy/resolver.d.ts +127 -0
  17. package/dist/alchemy/resolver.d.ts.map +1 -0
  18. package/dist/alchemy/resolver.js +341 -0
  19. package/dist/alchemy/resolver.js.map +1 -0
  20. package/dist/alchemy/resource-registration.d.ts +22 -0
  21. package/dist/alchemy/resource-registration.d.ts.map +1 -0
  22. package/dist/alchemy/resource-registration.js +218 -0
  23. package/dist/alchemy/resource-registration.js.map +1 -0
  24. package/dist/alchemy/type-inference.d.ts +13 -0
  25. package/dist/alchemy/type-inference.d.ts.map +1 -0
  26. package/dist/alchemy/type-inference.js +67 -0
  27. package/dist/alchemy/type-inference.js.map +1 -0
  28. package/dist/alchemy/types.d.ts +92 -0
  29. package/dist/alchemy/types.d.ts.map +1 -0
  30. package/dist/alchemy/types.js +8 -0
  31. package/dist/alchemy/types.js.map +1 -0
  32. package/dist/alchemy/utilities.d.ts +12 -0
  33. package/dist/alchemy/utilities.d.ts.map +1 -0
  34. package/dist/alchemy/utilities.js +16 -0
  35. package/dist/alchemy/utilities.js.map +1 -0
  36. package/dist/alchemy/wrapper.d.ts +16 -0
  37. package/dist/alchemy/wrapper.d.ts.map +1 -0
  38. package/dist/alchemy/wrapper.js +23 -0
  39. package/dist/alchemy/wrapper.js.map +1 -0
  40. package/dist/core/composition/composition.d.ts +94 -0
  41. package/dist/core/composition/composition.d.ts.map +1 -0
  42. package/dist/core/composition/composition.js +230 -0
  43. package/dist/core/composition/composition.js.map +1 -0
  44. package/dist/core/composition/index.d.ts +12 -0
  45. package/dist/core/composition/index.d.ts.map +1 -0
  46. package/dist/core/composition/index.js +12 -0
  47. package/dist/core/composition/index.js.map +1 -0
  48. package/dist/core/composition/typekro-runtime/index.d.ts +3 -0
  49. package/dist/core/composition/typekro-runtime/index.d.ts.map +1 -0
  50. package/dist/core/composition/typekro-runtime/index.js +2 -0
  51. package/dist/core/composition/typekro-runtime/index.js.map +1 -0
  52. package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts +39 -0
  53. package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts.map +1 -0
  54. package/dist/core/composition/typekro-runtime/typekro-runtime.js +100 -0
  55. package/dist/core/composition/typekro-runtime/typekro-runtime.js.map +1 -0
  56. package/dist/core/composition/typekro-runtime/types.d.ts +16 -0
  57. package/dist/core/composition/typekro-runtime/types.d.ts.map +1 -0
  58. package/dist/core/composition/typekro-runtime/types.js +12 -0
  59. package/dist/core/composition/typekro-runtime/types.js.map +1 -0
  60. package/dist/core/composition/types.d.ts +264 -0
  61. package/dist/core/composition/types.d.ts.map +1 -0
  62. package/dist/core/composition/types.js +2 -0
  63. package/dist/core/composition/types.js.map +1 -0
  64. package/dist/core/constants/brands.d.ts +42 -0
  65. package/dist/core/constants/brands.d.ts.map +1 -0
  66. package/dist/core/constants/brands.js +51 -0
  67. package/dist/core/constants/brands.js.map +1 -0
  68. package/dist/core/dependencies/graph.d.ts +67 -0
  69. package/dist/core/dependencies/graph.d.ts.map +1 -0
  70. package/dist/core/dependencies/graph.js +220 -0
  71. package/dist/core/dependencies/graph.js.map +1 -0
  72. package/dist/core/dependencies/index.d.ts +7 -0
  73. package/dist/core/dependencies/index.d.ts.map +1 -0
  74. package/dist/core/dependencies/index.js +8 -0
  75. package/dist/core/dependencies/index.js.map +1 -0
  76. package/dist/core/dependencies/resolver.d.ts +53 -0
  77. package/dist/core/dependencies/resolver.d.ts.map +1 -0
  78. package/dist/core/dependencies/resolver.js +167 -0
  79. package/dist/core/dependencies/resolver.js.map +1 -0
  80. package/dist/core/dependencies/type-guards.d.ts +17 -0
  81. package/dist/core/dependencies/type-guards.d.ts.map +1 -0
  82. package/dist/core/dependencies/type-guards.js +35 -0
  83. package/dist/core/dependencies/type-guards.js.map +1 -0
  84. package/dist/core/deployment/deployment-strategies.d.ts +12 -0
  85. package/dist/core/deployment/deployment-strategies.d.ts.map +1 -0
  86. package/dist/core/deployment/deployment-strategies.js +11 -0
  87. package/dist/core/deployment/deployment-strategies.js.map +1 -0
  88. package/dist/core/deployment/direct-factory.d.ts +111 -0
  89. package/dist/core/deployment/direct-factory.d.ts.map +1 -0
  90. package/dist/core/deployment/direct-factory.js +627 -0
  91. package/dist/core/deployment/direct-factory.js.map +1 -0
  92. package/dist/core/deployment/engine.d.ts +128 -0
  93. package/dist/core/deployment/engine.d.ts.map +1 -0
  94. package/dist/core/deployment/engine.js +1408 -0
  95. package/dist/core/deployment/engine.js.map +1 -0
  96. package/dist/core/deployment/index.d.ts +14 -0
  97. package/dist/core/deployment/index.d.ts.map +1 -0
  98. package/dist/core/deployment/index.js +14 -0
  99. package/dist/core/deployment/index.js.map +1 -0
  100. package/dist/core/deployment/kro-factory.d.ts +143 -0
  101. package/dist/core/deployment/kro-factory.d.ts.map +1 -0
  102. package/dist/core/deployment/kro-factory.js +837 -0
  103. package/dist/core/deployment/kro-factory.js.map +1 -0
  104. package/dist/core/deployment/readiness.d.ts +54 -0
  105. package/dist/core/deployment/readiness.d.ts.map +1 -0
  106. package/dist/core/deployment/readiness.js +175 -0
  107. package/dist/core/deployment/readiness.js.map +1 -0
  108. package/dist/core/deployment/rollback-manager.d.ts +63 -0
  109. package/dist/core/deployment/rollback-manager.d.ts.map +1 -0
  110. package/dist/core/deployment/rollback-manager.js +225 -0
  111. package/dist/core/deployment/rollback-manager.js.map +1 -0
  112. package/dist/core/deployment/shared-utilities.d.ts +41 -0
  113. package/dist/core/deployment/shared-utilities.d.ts.map +1 -0
  114. package/dist/core/deployment/shared-utilities.js +100 -0
  115. package/dist/core/deployment/shared-utilities.js.map +1 -0
  116. package/dist/core/deployment/status-hydrator.d.ts +86 -0
  117. package/dist/core/deployment/status-hydrator.d.ts.map +1 -0
  118. package/dist/core/deployment/status-hydrator.js +262 -0
  119. package/dist/core/deployment/status-hydrator.js.map +1 -0
  120. package/dist/core/deployment/strategies/alchemy-strategy.d.ts +107 -0
  121. package/dist/core/deployment/strategies/alchemy-strategy.d.ts.map +1 -0
  122. package/dist/core/deployment/strategies/alchemy-strategy.js +446 -0
  123. package/dist/core/deployment/strategies/alchemy-strategy.js.map +1 -0
  124. package/dist/core/deployment/strategies/base-strategy.d.ts +50 -0
  125. package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -0
  126. package/dist/core/deployment/strategies/base-strategy.js +82 -0
  127. package/dist/core/deployment/strategies/base-strategy.js.map +1 -0
  128. package/dist/core/deployment/strategies/direct-strategy.d.ts +29 -0
  129. package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -0
  130. package/dist/core/deployment/strategies/direct-strategy.js +80 -0
  131. package/dist/core/deployment/strategies/direct-strategy.js.map +1 -0
  132. package/dist/core/deployment/strategies/index.d.ts +12 -0
  133. package/dist/core/deployment/strategies/index.d.ts.map +1 -0
  134. package/dist/core/deployment/strategies/index.js +12 -0
  135. package/dist/core/deployment/strategies/index.js.map +1 -0
  136. package/dist/core/deployment/strategies/kro-strategy.d.ts +41 -0
  137. package/dist/core/deployment/strategies/kro-strategy.d.ts.map +1 -0
  138. package/dist/core/deployment/strategies/kro-strategy.js +270 -0
  139. package/dist/core/deployment/strategies/kro-strategy.js.map +1 -0
  140. package/dist/core/direct-deployment.d.ts +8 -0
  141. package/dist/core/direct-deployment.d.ts.map +1 -0
  142. package/dist/core/direct-deployment.js +9 -0
  143. package/dist/core/direct-deployment.js.map +1 -0
  144. package/dist/core/errors.d.ts +73 -0
  145. package/dist/core/errors.d.ts.map +1 -0
  146. package/dist/core/errors.js +250 -0
  147. package/dist/core/errors.js.map +1 -0
  148. package/dist/core/evaluation/cel-optimizer.d.ts +48 -0
  149. package/dist/core/evaluation/cel-optimizer.d.ts.map +1 -0
  150. package/dist/core/evaluation/cel-optimizer.js +176 -0
  151. package/dist/core/evaluation/cel-optimizer.js.map +1 -0
  152. package/dist/core/factory.d.ts +12 -0
  153. package/dist/core/factory.d.ts.map +1 -0
  154. package/dist/core/factory.js +13 -0
  155. package/dist/core/factory.js.map +1 -0
  156. package/dist/core/kubernetes/api.d.ts +43 -0
  157. package/dist/core/kubernetes/api.d.ts.map +1 -0
  158. package/dist/core/kubernetes/api.js +209 -0
  159. package/dist/core/kubernetes/api.js.map +1 -0
  160. package/dist/core/kubernetes/client-provider.d.ts +204 -0
  161. package/dist/core/kubernetes/client-provider.d.ts.map +1 -0
  162. package/dist/core/kubernetes/client-provider.js +421 -0
  163. package/dist/core/kubernetes/client-provider.js.map +1 -0
  164. package/dist/core/logging/config.d.ts +14 -0
  165. package/dist/core/logging/config.d.ts.map +1 -0
  166. package/dist/core/logging/config.js +57 -0
  167. package/dist/core/logging/config.js.map +1 -0
  168. package/dist/core/logging/index.d.ts +4 -0
  169. package/dist/core/logging/index.d.ts.map +1 -0
  170. package/dist/core/logging/index.js +4 -0
  171. package/dist/core/logging/index.js.map +1 -0
  172. package/dist/core/logging/logger.d.ts +26 -0
  173. package/dist/core/logging/logger.d.ts.map +1 -0
  174. package/dist/core/logging/logger.js +114 -0
  175. package/dist/core/logging/logger.js.map +1 -0
  176. package/dist/core/logging/types.d.ts +93 -0
  177. package/dist/core/logging/types.d.ts.map +1 -0
  178. package/dist/core/logging/types.js +2 -0
  179. package/dist/core/logging/types.js.map +1 -0
  180. package/dist/core/readiness/cluster-state.d.ts +229 -0
  181. package/dist/core/readiness/cluster-state.d.ts.map +1 -0
  182. package/dist/core/readiness/cluster-state.js +360 -0
  183. package/dist/core/readiness/cluster-state.js.map +1 -0
  184. package/dist/core/readiness/index.d.ts +5 -0
  185. package/dist/core/readiness/index.d.ts.map +1 -0
  186. package/dist/core/readiness/index.js +5 -0
  187. package/dist/core/readiness/index.js.map +1 -0
  188. package/dist/core/readiness/registry.d.ts +45 -0
  189. package/dist/core/readiness/registry.d.ts.map +1 -0
  190. package/dist/core/readiness/registry.js +62 -0
  191. package/dist/core/readiness/registry.js.map +1 -0
  192. package/dist/core/references/cel-evaluator.d.ts +102 -0
  193. package/dist/core/references/cel-evaluator.d.ts.map +1 -0
  194. package/dist/core/references/cel-evaluator.js +288 -0
  195. package/dist/core/references/cel-evaluator.js.map +1 -0
  196. package/dist/core/references/cel.d.ts +75 -0
  197. package/dist/core/references/cel.d.ts.map +1 -0
  198. package/dist/core/references/cel.js +213 -0
  199. package/dist/core/references/cel.js.map +1 -0
  200. package/dist/core/references/external-refs.d.ts +37 -0
  201. package/dist/core/references/external-refs.d.ts.map +1 -0
  202. package/dist/core/references/external-refs.js +53 -0
  203. package/dist/core/references/external-refs.js.map +1 -0
  204. package/dist/core/references/index.d.ts +15 -0
  205. package/dist/core/references/index.d.ts.map +1 -0
  206. package/dist/core/references/index.js +19 -0
  207. package/dist/core/references/index.js.map +1 -0
  208. package/dist/core/references/resolver.d.ts +117 -0
  209. package/dist/core/references/resolver.d.ts.map +1 -0
  210. package/dist/core/references/resolver.js +554 -0
  211. package/dist/core/references/resolver.js.map +1 -0
  212. package/dist/core/references/schema-proxy.d.ts +38 -0
  213. package/dist/core/references/schema-proxy.d.ts.map +1 -0
  214. package/dist/core/references/schema-proxy.js +163 -0
  215. package/dist/core/references/schema-proxy.js.map +1 -0
  216. package/dist/core/serialization/core.d.ts +15 -0
  217. package/dist/core/serialization/core.d.ts.map +1 -0
  218. package/dist/core/serialization/core.js +169 -0
  219. package/dist/core/serialization/core.js.map +1 -0
  220. package/dist/core/serialization/index.d.ts +9 -0
  221. package/dist/core/serialization/index.d.ts.map +1 -0
  222. package/dist/core/serialization/index.js +12 -0
  223. package/dist/core/serialization/index.js.map +1 -0
  224. package/dist/core/serialization/schema.d.ts +14 -0
  225. package/dist/core/serialization/schema.d.ts.map +1 -0
  226. package/dist/core/serialization/schema.js +33 -0
  227. package/dist/core/serialization/schema.js.map +1 -0
  228. package/dist/core/serialization/validation.d.ts +18 -0
  229. package/dist/core/serialization/validation.d.ts.map +1 -0
  230. package/dist/core/serialization/validation.js +165 -0
  231. package/dist/core/serialization/validation.js.map +1 -0
  232. package/dist/core/serialization/yaml.d.ts +10 -0
  233. package/dist/core/serialization/yaml.d.ts.map +1 -0
  234. package/dist/core/serialization/yaml.js +63 -0
  235. package/dist/core/serialization/yaml.js.map +1 -0
  236. package/dist/core/types/common.d.ts +41 -0
  237. package/dist/core/types/common.d.ts.map +1 -0
  238. package/dist/core/types/common.js +9 -0
  239. package/dist/core/types/common.js.map +1 -0
  240. package/dist/core/types/dependencies.d.ts +14 -0
  241. package/dist/core/types/dependencies.d.ts.map +1 -0
  242. package/dist/core/types/dependencies.js +5 -0
  243. package/dist/core/types/dependencies.js.map +1 -0
  244. package/dist/core/types/deployment.d.ts +265 -0
  245. package/dist/core/types/deployment.d.ts.map +1 -0
  246. package/dist/core/types/deployment.js +20 -0
  247. package/dist/core/types/deployment.js.map +1 -0
  248. package/dist/core/types/index.d.ts +19 -0
  249. package/dist/core/types/index.d.ts.map +1 -0
  250. package/dist/core/types/index.js +15 -0
  251. package/dist/core/types/index.js.map +1 -0
  252. package/dist/core/types/kubernetes.d.ts +352 -0
  253. package/dist/core/types/kubernetes.d.ts.map +1 -0
  254. package/dist/core/types/kubernetes.js +5 -0
  255. package/dist/core/types/kubernetes.js.map +1 -0
  256. package/dist/core/types/references.d.ts +54 -0
  257. package/dist/core/types/references.d.ts.map +1 -0
  258. package/dist/core/types/references.js +14 -0
  259. package/dist/core/types/references.js.map +1 -0
  260. package/dist/core/types/resource-graph.d.ts +93 -0
  261. package/dist/core/types/resource-graph.d.ts.map +1 -0
  262. package/dist/core/types/resource-graph.js +8 -0
  263. package/dist/core/types/resource-graph.js.map +1 -0
  264. package/dist/core/types/serialization.d.ts +210 -0
  265. package/dist/core/types/serialization.d.ts.map +1 -0
  266. package/dist/core/types/serialization.js +5 -0
  267. package/dist/core/types/serialization.js.map +1 -0
  268. package/dist/core/types/yaml.d.ts +92 -0
  269. package/dist/core/types/yaml.d.ts.map +1 -0
  270. package/dist/core/types/yaml.js +2 -0
  271. package/dist/core/types/yaml.js.map +1 -0
  272. package/dist/core/types.d.ts +8 -0
  273. package/dist/core/types.d.ts.map +1 -0
  274. package/dist/core/types.js +9 -0
  275. package/dist/core/types.js.map +1 -0
  276. package/dist/core/validation/cel-validator.d.ts +47 -0
  277. package/dist/core/validation/cel-validator.d.ts.map +1 -0
  278. package/dist/core/validation/cel-validator.js +200 -0
  279. package/dist/core/validation/cel-validator.js.map +1 -0
  280. package/dist/core/yaml/index.d.ts +5 -0
  281. package/dist/core/yaml/index.d.ts.map +1 -0
  282. package/dist/core/yaml/index.js +5 -0
  283. package/dist/core/yaml/index.js.map +1 -0
  284. package/dist/core/yaml/path-resolver.d.ts +122 -0
  285. package/dist/core/yaml/path-resolver.d.ts.map +1 -0
  286. package/dist/core/yaml/path-resolver.js +556 -0
  287. package/dist/core/yaml/path-resolver.js.map +1 -0
  288. package/dist/core.d.ts +30 -0
  289. package/dist/core.d.ts.map +1 -0
  290. package/dist/core.js +59 -0
  291. package/dist/core.js.map +1 -0
  292. package/dist/factories/flux/git-repository.d.ts +62 -0
  293. package/dist/factories/flux/git-repository.d.ts.map +1 -0
  294. package/dist/factories/flux/git-repository.js +34 -0
  295. package/dist/factories/flux/git-repository.js.map +1 -0
  296. package/dist/factories/flux/index.d.ts +10 -0
  297. package/dist/factories/flux/index.d.ts.map +1 -0
  298. package/dist/factories/flux/index.js +11 -0
  299. package/dist/factories/flux/index.js.map +1 -0
  300. package/dist/factories/flux/kustomize/index.d.ts +4 -0
  301. package/dist/factories/flux/kustomize/index.d.ts.map +1 -0
  302. package/dist/factories/flux/kustomize/index.js +3 -0
  303. package/dist/factories/flux/kustomize/index.js.map +1 -0
  304. package/dist/factories/flux/kustomize/kustomization.d.ts +178 -0
  305. package/dist/factories/flux/kustomize/kustomization.d.ts.map +1 -0
  306. package/dist/factories/flux/kustomize/kustomization.js +108 -0
  307. package/dist/factories/flux/kustomize/kustomization.js.map +1 -0
  308. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts +9 -0
  309. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts.map +1 -0
  310. package/dist/factories/flux/kustomize/readiness-evaluators.js +71 -0
  311. package/dist/factories/flux/kustomize/readiness-evaluators.js.map +1 -0
  312. package/dist/factories/flux/kustomize/types.d.ts +2 -0
  313. package/dist/factories/flux/kustomize/types.d.ts.map +1 -0
  314. package/dist/factories/flux/kustomize/types.js +2 -0
  315. package/dist/factories/flux/kustomize/types.js.map +1 -0
  316. package/dist/factories/helm/helm-release.d.ts +139 -0
  317. package/dist/factories/helm/helm-release.d.ts.map +1 -0
  318. package/dist/factories/helm/helm-release.js +180 -0
  319. package/dist/factories/helm/helm-release.js.map +1 -0
  320. package/dist/factories/helm/helm-repository.d.ts +24 -0
  321. package/dist/factories/helm/helm-repository.d.ts.map +1 -0
  322. package/dist/factories/helm/helm-repository.js +57 -0
  323. package/dist/factories/helm/helm-repository.js.map +1 -0
  324. package/dist/factories/helm/index.d.ts +8 -0
  325. package/dist/factories/helm/index.d.ts.map +1 -0
  326. package/dist/factories/helm/index.js +8 -0
  327. package/dist/factories/helm/index.js.map +1 -0
  328. package/dist/factories/helm/readiness-evaluators.d.ts +55 -0
  329. package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -0
  330. package/dist/factories/helm/readiness-evaluators.js +295 -0
  331. package/dist/factories/helm/readiness-evaluators.js.map +1 -0
  332. package/dist/factories/helm/types.d.ts +21 -0
  333. package/dist/factories/helm/types.d.ts.map +1 -0
  334. package/dist/factories/helm/types.js +2 -0
  335. package/dist/factories/helm/types.js.map +1 -0
  336. package/dist/factories/index.d.ts +12 -0
  337. package/dist/factories/index.d.ts.map +1 -0
  338. package/dist/factories/index.js +31 -0
  339. package/dist/factories/index.js.map +1 -0
  340. package/dist/factories/kro/index.d.ts +11 -0
  341. package/dist/factories/kro/index.d.ts.map +1 -0
  342. package/dist/factories/kro/index.js +10 -0
  343. package/dist/factories/kro/index.js.map +1 -0
  344. package/dist/factories/kro/kro-crd.d.ts +14 -0
  345. package/dist/factories/kro/kro-crd.d.ts.map +1 -0
  346. package/dist/factories/kro/kro-crd.js +51 -0
  347. package/dist/factories/kro/kro-crd.js.map +1 -0
  348. package/dist/factories/kro/kro-custom-resource.d.ts +23 -0
  349. package/dist/factories/kro/kro-custom-resource.d.ts.map +1 -0
  350. package/dist/factories/kro/kro-custom-resource.js +153 -0
  351. package/dist/factories/kro/kro-custom-resource.js.map +1 -0
  352. package/dist/factories/kro/resource-graph-definition.d.ts +12 -0
  353. package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -0
  354. package/dist/factories/kro/resource-graph-definition.js +94 -0
  355. package/dist/factories/kro/resource-graph-definition.js.map +1 -0
  356. package/dist/factories/kubernetes/admission/index.d.ts +9 -0
  357. package/dist/factories/kubernetes/admission/index.d.ts.map +1 -0
  358. package/dist/factories/kubernetes/admission/index.js +9 -0
  359. package/dist/factories/kubernetes/admission/index.js.map +1 -0
  360. package/dist/factories/kubernetes/admission/mutating-webhook-configuration.d.ts +5 -0
  361. package/dist/factories/kubernetes/admission/mutating-webhook-configuration.d.ts.map +1 -0
  362. package/dist/factories/kubernetes/admission/mutating-webhook-configuration.js +10 -0
  363. package/dist/factories/kubernetes/admission/mutating-webhook-configuration.js.map +1 -0
  364. package/dist/factories/kubernetes/admission/validating-webhook-configuration.d.ts +5 -0
  365. package/dist/factories/kubernetes/admission/validating-webhook-configuration.d.ts.map +1 -0
  366. package/dist/factories/kubernetes/admission/validating-webhook-configuration.js +10 -0
  367. package/dist/factories/kubernetes/admission/validating-webhook-configuration.js.map +1 -0
  368. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts +6 -0
  369. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts.map +1 -0
  370. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js +35 -0
  371. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js.map +1 -0
  372. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.d.ts +6 -0
  373. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.d.ts.map +1 -0
  374. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js +31 -0
  375. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js.map +1 -0
  376. package/dist/factories/kubernetes/autoscaling/index.d.ts +9 -0
  377. package/dist/factories/kubernetes/autoscaling/index.d.ts.map +1 -0
  378. package/dist/factories/kubernetes/autoscaling/index.js +9 -0
  379. package/dist/factories/kubernetes/autoscaling/index.js.map +1 -0
  380. package/dist/factories/kubernetes/certificates/certificate-signing-request.d.ts +6 -0
  381. package/dist/factories/kubernetes/certificates/certificate-signing-request.d.ts.map +1 -0
  382. package/dist/factories/kubernetes/certificates/certificate-signing-request.js +48 -0
  383. package/dist/factories/kubernetes/certificates/certificate-signing-request.js.map +1 -0
  384. package/dist/factories/kubernetes/certificates/index.d.ts +8 -0
  385. package/dist/factories/kubernetes/certificates/index.d.ts.map +1 -0
  386. package/dist/factories/kubernetes/certificates/index.js +8 -0
  387. package/dist/factories/kubernetes/certificates/index.js.map +1 -0
  388. package/dist/factories/kubernetes/config/config-map.d.ts +5 -0
  389. package/dist/factories/kubernetes/config/config-map.d.ts.map +1 -0
  390. package/dist/factories/kubernetes/config/config-map.js +16 -0
  391. package/dist/factories/kubernetes/config/config-map.js.map +1 -0
  392. package/dist/factories/kubernetes/config/index.d.ts +9 -0
  393. package/dist/factories/kubernetes/config/index.d.ts.map +1 -0
  394. package/dist/factories/kubernetes/config/index.js +9 -0
  395. package/dist/factories/kubernetes/config/index.js.map +1 -0
  396. package/dist/factories/kubernetes/config/secret.d.ts +5 -0
  397. package/dist/factories/kubernetes/config/secret.d.ts.map +1 -0
  398. package/dist/factories/kubernetes/config/secret.js +16 -0
  399. package/dist/factories/kubernetes/config/secret.js.map +1 -0
  400. package/dist/factories/kubernetes/coordination/index.d.ts +8 -0
  401. package/dist/factories/kubernetes/coordination/index.d.ts.map +1 -0
  402. package/dist/factories/kubernetes/coordination/index.js +8 -0
  403. package/dist/factories/kubernetes/coordination/index.js.map +1 -0
  404. package/dist/factories/kubernetes/coordination/lease.d.ts +5 -0
  405. package/dist/factories/kubernetes/coordination/lease.d.ts.map +1 -0
  406. package/dist/factories/kubernetes/coordination/lease.js +10 -0
  407. package/dist/factories/kubernetes/coordination/lease.js.map +1 -0
  408. package/dist/factories/kubernetes/core/component-status.d.ts +4 -0
  409. package/dist/factories/kubernetes/core/component-status.d.ts.map +1 -0
  410. package/dist/factories/kubernetes/core/component-status.js +25 -0
  411. package/dist/factories/kubernetes/core/component-status.js.map +1 -0
  412. package/dist/factories/kubernetes/core/index.d.ts +11 -0
  413. package/dist/factories/kubernetes/core/index.d.ts.map +1 -0
  414. package/dist/factories/kubernetes/core/index.js +11 -0
  415. package/dist/factories/kubernetes/core/index.js.map +1 -0
  416. package/dist/factories/kubernetes/core/namespace.d.ts +9 -0
  417. package/dist/factories/kubernetes/core/namespace.d.ts.map +1 -0
  418. package/dist/factories/kubernetes/core/namespace.js +48 -0
  419. package/dist/factories/kubernetes/core/namespace.js.map +1 -0
  420. package/dist/factories/kubernetes/core/node.d.ts +6 -0
  421. package/dist/factories/kubernetes/core/node.d.ts.map +1 -0
  422. package/dist/factories/kubernetes/core/node.js +34 -0
  423. package/dist/factories/kubernetes/core/node.js.map +1 -0
  424. package/dist/factories/kubernetes/core/pod.d.ts +6 -0
  425. package/dist/factories/kubernetes/core/pod.d.ts.map +1 -0
  426. package/dist/factories/kubernetes/core/pod.js +44 -0
  427. package/dist/factories/kubernetes/core/pod.js.map +1 -0
  428. package/dist/factories/kubernetes/extensions/custom-resource-definition.d.ts +6 -0
  429. package/dist/factories/kubernetes/extensions/custom-resource-definition.d.ts.map +1 -0
  430. package/dist/factories/kubernetes/extensions/custom-resource-definition.js +45 -0
  431. package/dist/factories/kubernetes/extensions/custom-resource-definition.js.map +1 -0
  432. package/dist/factories/kubernetes/extensions/custom-resource.d.ts +12 -0
  433. package/dist/factories/kubernetes/extensions/custom-resource.d.ts.map +1 -0
  434. package/dist/factories/kubernetes/extensions/custom-resource.js +17 -0
  435. package/dist/factories/kubernetes/extensions/custom-resource.js.map +1 -0
  436. package/dist/factories/kubernetes/extensions/index.d.ts +9 -0
  437. package/dist/factories/kubernetes/extensions/index.d.ts.map +1 -0
  438. package/dist/factories/kubernetes/extensions/index.js +9 -0
  439. package/dist/factories/kubernetes/extensions/index.js.map +1 -0
  440. package/dist/factories/kubernetes/index.d.ts +24 -0
  441. package/dist/factories/kubernetes/index.d.ts.map +1 -0
  442. package/dist/factories/kubernetes/index.js +75 -0
  443. package/dist/factories/kubernetes/index.js.map +1 -0
  444. package/dist/factories/kubernetes/networking/endpoint-slice.d.ts +4 -0
  445. package/dist/factories/kubernetes/networking/endpoint-slice.d.ts.map +1 -0
  446. package/dist/factories/kubernetes/networking/endpoint-slice.js +10 -0
  447. package/dist/factories/kubernetes/networking/endpoint-slice.js.map +1 -0
  448. package/dist/factories/kubernetes/networking/endpoints.d.ts +4 -0
  449. package/dist/factories/kubernetes/networking/endpoints.d.ts.map +1 -0
  450. package/dist/factories/kubernetes/networking/endpoints.js +39 -0
  451. package/dist/factories/kubernetes/networking/endpoints.js.map +1 -0
  452. package/dist/factories/kubernetes/networking/index.d.ts +13 -0
  453. package/dist/factories/kubernetes/networking/index.d.ts.map +1 -0
  454. package/dist/factories/kubernetes/networking/index.js +13 -0
  455. package/dist/factories/kubernetes/networking/index.js.map +1 -0
  456. package/dist/factories/kubernetes/networking/ingress-class.d.ts +5 -0
  457. package/dist/factories/kubernetes/networking/ingress-class.d.ts.map +1 -0
  458. package/dist/factories/kubernetes/networking/ingress-class.js +16 -0
  459. package/dist/factories/kubernetes/networking/ingress-class.js.map +1 -0
  460. package/dist/factories/kubernetes/networking/ingress.d.ts +5 -0
  461. package/dist/factories/kubernetes/networking/ingress.d.ts.map +1 -0
  462. package/dist/factories/kubernetes/networking/ingress.js +33 -0
  463. package/dist/factories/kubernetes/networking/ingress.js.map +1 -0
  464. package/dist/factories/kubernetes/networking/network-policy.d.ts +5 -0
  465. package/dist/factories/kubernetes/networking/network-policy.d.ts.map +1 -0
  466. package/dist/factories/kubernetes/networking/network-policy.js +17 -0
  467. package/dist/factories/kubernetes/networking/network-policy.js.map +1 -0
  468. package/dist/factories/kubernetes/networking/service.d.ts +5 -0
  469. package/dist/factories/kubernetes/networking/service.d.ts.map +1 -0
  470. package/dist/factories/kubernetes/networking/service.js +64 -0
  471. package/dist/factories/kubernetes/networking/service.js.map +1 -0
  472. package/dist/factories/kubernetes/policy/index.d.ts +10 -0
  473. package/dist/factories/kubernetes/policy/index.d.ts.map +1 -0
  474. package/dist/factories/kubernetes/policy/index.js +10 -0
  475. package/dist/factories/kubernetes/policy/index.js.map +1 -0
  476. package/dist/factories/kubernetes/policy/limit-range.d.ts +5 -0
  477. package/dist/factories/kubernetes/policy/limit-range.d.ts.map +1 -0
  478. package/dist/factories/kubernetes/policy/limit-range.js +17 -0
  479. package/dist/factories/kubernetes/policy/limit-range.js.map +1 -0
  480. package/dist/factories/kubernetes/policy/pod-disruption-budget.d.ts +6 -0
  481. package/dist/factories/kubernetes/policy/pod-disruption-budget.d.ts.map +1 -0
  482. package/dist/factories/kubernetes/policy/pod-disruption-budget.js +55 -0
  483. package/dist/factories/kubernetes/policy/pod-disruption-budget.js.map +1 -0
  484. package/dist/factories/kubernetes/policy/resource-quota.d.ts +6 -0
  485. package/dist/factories/kubernetes/policy/resource-quota.d.ts.map +1 -0
  486. package/dist/factories/kubernetes/policy/resource-quota.js +43 -0
  487. package/dist/factories/kubernetes/policy/resource-quota.js.map +1 -0
  488. package/dist/factories/kubernetes/rbac/cluster-role-binding.d.ts +4 -0
  489. package/dist/factories/kubernetes/rbac/cluster-role-binding.d.ts.map +1 -0
  490. package/dist/factories/kubernetes/rbac/cluster-role-binding.js +17 -0
  491. package/dist/factories/kubernetes/rbac/cluster-role-binding.js.map +1 -0
  492. package/dist/factories/kubernetes/rbac/cluster-role.d.ts +4 -0
  493. package/dist/factories/kubernetes/rbac/cluster-role.d.ts.map +1 -0
  494. package/dist/factories/kubernetes/rbac/cluster-role.js +17 -0
  495. package/dist/factories/kubernetes/rbac/cluster-role.js.map +1 -0
  496. package/dist/factories/kubernetes/rbac/index.d.ts +12 -0
  497. package/dist/factories/kubernetes/rbac/index.d.ts.map +1 -0
  498. package/dist/factories/kubernetes/rbac/index.js +12 -0
  499. package/dist/factories/kubernetes/rbac/index.js.map +1 -0
  500. package/dist/factories/kubernetes/rbac/role-binding.d.ts +4 -0
  501. package/dist/factories/kubernetes/rbac/role-binding.d.ts.map +1 -0
  502. package/dist/factories/kubernetes/rbac/role-binding.js +17 -0
  503. package/dist/factories/kubernetes/rbac/role-binding.js.map +1 -0
  504. package/dist/factories/kubernetes/rbac/role.d.ts +4 -0
  505. package/dist/factories/kubernetes/rbac/role.d.ts.map +1 -0
  506. package/dist/factories/kubernetes/rbac/role.js +17 -0
  507. package/dist/factories/kubernetes/rbac/role.js.map +1 -0
  508. package/dist/factories/kubernetes/rbac/service-account.d.ts +4 -0
  509. package/dist/factories/kubernetes/rbac/service-account.d.ts.map +1 -0
  510. package/dist/factories/kubernetes/rbac/service-account.js +17 -0
  511. package/dist/factories/kubernetes/rbac/service-account.js.map +1 -0
  512. package/dist/factories/kubernetes/scheduling/index.d.ts +9 -0
  513. package/dist/factories/kubernetes/scheduling/index.d.ts.map +1 -0
  514. package/dist/factories/kubernetes/scheduling/index.js +9 -0
  515. package/dist/factories/kubernetes/scheduling/index.js.map +1 -0
  516. package/dist/factories/kubernetes/scheduling/priority-class.d.ts +4 -0
  517. package/dist/factories/kubernetes/scheduling/priority-class.d.ts.map +1 -0
  518. package/dist/factories/kubernetes/scheduling/priority-class.js +16 -0
  519. package/dist/factories/kubernetes/scheduling/priority-class.js.map +1 -0
  520. package/dist/factories/kubernetes/scheduling/runtime-class.d.ts +5 -0
  521. package/dist/factories/kubernetes/scheduling/runtime-class.d.ts.map +1 -0
  522. package/dist/factories/kubernetes/scheduling/runtime-class.js +10 -0
  523. package/dist/factories/kubernetes/scheduling/runtime-class.js.map +1 -0
  524. package/dist/factories/kubernetes/storage/csi-driver.d.ts +5 -0
  525. package/dist/factories/kubernetes/storage/csi-driver.d.ts.map +1 -0
  526. package/dist/factories/kubernetes/storage/csi-driver.js +16 -0
  527. package/dist/factories/kubernetes/storage/csi-driver.js.map +1 -0
  528. package/dist/factories/kubernetes/storage/csi-node.d.ts +5 -0
  529. package/dist/factories/kubernetes/storage/csi-node.d.ts.map +1 -0
  530. package/dist/factories/kubernetes/storage/csi-node.js +10 -0
  531. package/dist/factories/kubernetes/storage/csi-node.js.map +1 -0
  532. package/dist/factories/kubernetes/storage/index.d.ts +13 -0
  533. package/dist/factories/kubernetes/storage/index.d.ts.map +1 -0
  534. package/dist/factories/kubernetes/storage/index.js +13 -0
  535. package/dist/factories/kubernetes/storage/index.js.map +1 -0
  536. package/dist/factories/kubernetes/storage/persistent-volume-claim.d.ts +6 -0
  537. package/dist/factories/kubernetes/storage/persistent-volume-claim.d.ts.map +1 -0
  538. package/dist/factories/kubernetes/storage/persistent-volume-claim.js +30 -0
  539. package/dist/factories/kubernetes/storage/persistent-volume-claim.js.map +1 -0
  540. package/dist/factories/kubernetes/storage/persistent-volume.d.ts +6 -0
  541. package/dist/factories/kubernetes/storage/persistent-volume.d.ts.map +1 -0
  542. package/dist/factories/kubernetes/storage/persistent-volume.js +47 -0
  543. package/dist/factories/kubernetes/storage/persistent-volume.js.map +1 -0
  544. package/dist/factories/kubernetes/storage/storage-class.d.ts +4 -0
  545. package/dist/factories/kubernetes/storage/storage-class.d.ts.map +1 -0
  546. package/dist/factories/kubernetes/storage/storage-class.js +17 -0
  547. package/dist/factories/kubernetes/storage/storage-class.js.map +1 -0
  548. package/dist/factories/kubernetes/storage/volume-attachment.d.ts +6 -0
  549. package/dist/factories/kubernetes/storage/volume-attachment.d.ts.map +1 -0
  550. package/dist/factories/kubernetes/storage/volume-attachment.js +10 -0
  551. package/dist/factories/kubernetes/storage/volume-attachment.js.map +1 -0
  552. package/dist/factories/kubernetes/types.d.ts +8 -0
  553. package/dist/factories/kubernetes/types.d.ts.map +1 -0
  554. package/dist/factories/kubernetes/types.js +8 -0
  555. package/dist/factories/kubernetes/types.js.map +1 -0
  556. package/dist/factories/kubernetes/workloads/cron-job.d.ts +6 -0
  557. package/dist/factories/kubernetes/workloads/cron-job.d.ts.map +1 -0
  558. package/dist/factories/kubernetes/workloads/cron-job.js +53 -0
  559. package/dist/factories/kubernetes/workloads/cron-job.js.map +1 -0
  560. package/dist/factories/kubernetes/workloads/daemon-set.d.ts +6 -0
  561. package/dist/factories/kubernetes/workloads/daemon-set.d.ts.map +1 -0
  562. package/dist/factories/kubernetes/workloads/daemon-set.js +32 -0
  563. package/dist/factories/kubernetes/workloads/daemon-set.js.map +1 -0
  564. package/dist/factories/kubernetes/workloads/deployment.d.ts +5 -0
  565. package/dist/factories/kubernetes/workloads/deployment.d.ts.map +1 -0
  566. package/dist/factories/kubernetes/workloads/deployment.js +59 -0
  567. package/dist/factories/kubernetes/workloads/deployment.js.map +1 -0
  568. package/dist/factories/kubernetes/workloads/index.d.ts +14 -0
  569. package/dist/factories/kubernetes/workloads/index.d.ts.map +1 -0
  570. package/dist/factories/kubernetes/workloads/index.js +14 -0
  571. package/dist/factories/kubernetes/workloads/index.js.map +1 -0
  572. package/dist/factories/kubernetes/workloads/job.d.ts +6 -0
  573. package/dist/factories/kubernetes/workloads/job.d.ts.map +1 -0
  574. package/dist/factories/kubernetes/workloads/job.js +105 -0
  575. package/dist/factories/kubernetes/workloads/job.js.map +1 -0
  576. package/dist/factories/kubernetes/workloads/replica-set.d.ts +6 -0
  577. package/dist/factories/kubernetes/workloads/replica-set.d.ts.map +1 -0
  578. package/dist/factories/kubernetes/workloads/replica-set.js +33 -0
  579. package/dist/factories/kubernetes/workloads/replica-set.js.map +1 -0
  580. package/dist/factories/kubernetes/workloads/replication-controller.d.ts +6 -0
  581. package/dist/factories/kubernetes/workloads/replication-controller.d.ts.map +1 -0
  582. package/dist/factories/kubernetes/workloads/replication-controller.js +56 -0
  583. package/dist/factories/kubernetes/workloads/replication-controller.js.map +1 -0
  584. package/dist/factories/kubernetes/workloads/stateful-set.d.ts +6 -0
  585. package/dist/factories/kubernetes/workloads/stateful-set.d.ts.map +1 -0
  586. package/dist/factories/kubernetes/workloads/stateful-set.js +81 -0
  587. package/dist/factories/kubernetes/workloads/stateful-set.js.map +1 -0
  588. package/dist/factories/kubernetes/yaml/index.d.ts +6 -0
  589. package/dist/factories/kubernetes/yaml/index.d.ts.map +1 -0
  590. package/dist/factories/kubernetes/yaml/index.js +6 -0
  591. package/dist/factories/kubernetes/yaml/index.js.map +1 -0
  592. package/dist/factories/kubernetes/yaml/yaml-directory.d.ts +54 -0
  593. package/dist/factories/kubernetes/yaml/yaml-directory.d.ts.map +1 -0
  594. package/dist/factories/kubernetes/yaml/yaml-directory.js +178 -0
  595. package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -0
  596. package/dist/factories/kubernetes/yaml/yaml-file.d.ts +54 -0
  597. package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -0
  598. package/dist/factories/kubernetes/yaml/yaml-file.js +181 -0
  599. package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -0
  600. package/dist/factories/shared.d.ts +11 -0
  601. package/dist/factories/shared.d.ts.map +1 -0
  602. package/dist/factories/shared.js +364 -0
  603. package/dist/factories/shared.js.map +1 -0
  604. package/dist/index.d.ts +9 -0
  605. package/dist/index.d.ts.map +1 -0
  606. package/dist/index.js +49 -0
  607. package/dist/index.js.map +1 -0
  608. package/dist/utils/helpers.d.ts +69 -0
  609. package/dist/utils/helpers.d.ts.map +1 -0
  610. package/dist/utils/helpers.js +405 -0
  611. package/dist/utils/helpers.js.map +1 -0
  612. package/dist/utils/index.d.ts +9 -0
  613. package/dist/utils/index.d.ts.map +1 -0
  614. package/dist/utils/index.js +11 -0
  615. package/dist/utils/index.js.map +1 -0
  616. package/dist/utils/type-guards.d.ts +34 -0
  617. package/dist/utils/type-guards.d.ts.map +1 -0
  618. package/dist/utils/type-guards.js +66 -0
  619. package/dist/utils/type-guards.js.map +1 -0
  620. package/package.json +109 -0
@@ -0,0 +1,554 @@
1
+ /**
2
+ * Reference Resolution System
3
+ *
4
+ * Resolves KubernetesRef and CelExpression objects by querying the Kubernetes API
5
+ * and evaluating expressions against the current resource state.
6
+ */
7
+ import * as k8s from '@kubernetes/client-node';
8
+ import { isCelExpression, isKubernetesRef } from '../../utils/index.js';
9
+ import { getComponentLogger } from '../logging/index.js';
10
+ import { ResourceReadinessTimeoutError } from '../types/deployment.js';
11
+ import { CelEvaluator } from './cel-evaluator.js';
12
+ import { ResourceReadinessChecker } from '../deployment/readiness.js';
13
+ export const DeploymentMode = {
14
+ KRO: 'kro',
15
+ DIRECT: 'direct'
16
+ };
17
+ export class ReferenceResolver {
18
+ cache = new Map();
19
+ celEvaluator;
20
+ logger = getComponentLogger('reference-resolver');
21
+ kubeClient;
22
+ k8sApi;
23
+ deploymentMode;
24
+ constructor(kubeClient, deploymentMode = DeploymentMode.DIRECT, k8sApi) {
25
+ this.kubeClient = kubeClient;
26
+ this.deploymentMode = deploymentMode;
27
+ this.k8sApi = k8sApi || kubeClient.makeApiClient(k8s.KubernetesObjectApi);
28
+ this.celEvaluator = new CelEvaluator();
29
+ }
30
+ /**
31
+ * Resolve all references in a resource
32
+ */
33
+ async resolveReferences(resource, context) {
34
+ // Quick check - if there are no references, return the resource as-is
35
+ if (!this.hasReferences(resource)) {
36
+ this.logger.trace('No references found in resource, returning as-is', { resourceId: resource.id });
37
+ return resource;
38
+ }
39
+ this.logger.trace('Cloning resource and resolving references', { resourceId: resource.id });
40
+ // Deep clone the resource to avoid modifying the original
41
+ // JSON.stringify/parse properly handles Enhanced proxies by triggering all getters
42
+ const resolved = JSON.parse(JSON.stringify(resource));
43
+ // Restore Symbol brands that were lost during JSON serialization
44
+ this.restoreBrands(resolved);
45
+ // FIX: Preserve the non-enumerable readinessEvaluator which is lost during JSON serialization.
46
+ if (resource.readinessEvaluator && typeof resource.readinessEvaluator === 'function') {
47
+ this.logger.trace('Preserving readiness evaluator on cloned resource', { resourceId: resource.id });
48
+ Object.defineProperty(resolved, 'readinessEvaluator', {
49
+ value: resource.readinessEvaluator,
50
+ enumerable: false,
51
+ configurable: false,
52
+ writable: false
53
+ });
54
+ }
55
+ await this.traverseAndResolve(resolved, context);
56
+ return resolved;
57
+ }
58
+ /**
59
+ * Quick check if a resource has any references
60
+ */
61
+ hasReferences(obj, visited = new Set()) {
62
+ if (obj === null || obj === undefined) {
63
+ return false;
64
+ }
65
+ // Prevent infinite loops from circular references
66
+ if (visited.has(obj)) {
67
+ return false;
68
+ }
69
+ if (isKubernetesRef(obj) || isCelExpression(obj)) {
70
+ return true;
71
+ }
72
+ if (Array.isArray(obj)) {
73
+ visited.add(obj);
74
+ const result = obj.some((item) => this.hasReferences(item, visited));
75
+ visited.delete(obj);
76
+ return result;
77
+ }
78
+ if (typeof obj === 'object') {
79
+ visited.add(obj);
80
+ const result = Object.values(obj).some((value) => this.hasReferences(value, visited));
81
+ visited.delete(obj);
82
+ return result;
83
+ }
84
+ return false;
85
+ }
86
+ /**
87
+ * Restore Symbol brands that were lost during JSON serialization
88
+ */
89
+ restoreBrands(obj, visited = new Set()) {
90
+ if (obj === null || obj === undefined || typeof obj !== 'object') {
91
+ return;
92
+ }
93
+ // Prevent infinite loops from circular references
94
+ if (visited.has(obj)) {
95
+ return;
96
+ }
97
+ // Check if this looks like a KubernetesRef (has resourceId and fieldPath)
98
+ if (obj.resourceId && obj.fieldPath && typeof obj.resourceId === 'string' && typeof obj.fieldPath === 'string') {
99
+ // Restore the KubernetesRef brand
100
+ Object.defineProperty(obj, Symbol.for('TypeKro.KubernetesRef'), { value: true, enumerable: false });
101
+ }
102
+ // Check if this looks like a CelExpression (has expression property)
103
+ if (obj.expression && typeof obj.expression === 'string') {
104
+ // Restore the CelExpression brand
105
+ Object.defineProperty(obj, Symbol.for('TypeKro.CelExpression'), { value: true, enumerable: false });
106
+ }
107
+ // Recursively restore brands in nested objects
108
+ if (Array.isArray(obj)) {
109
+ visited.add(obj);
110
+ for (const item of obj) {
111
+ this.restoreBrands(item, visited);
112
+ }
113
+ visited.delete(obj);
114
+ }
115
+ else {
116
+ visited.add(obj);
117
+ for (const value of Object.values(obj)) {
118
+ this.restoreBrands(value, visited);
119
+ }
120
+ visited.delete(obj);
121
+ }
122
+ }
123
+ /**
124
+ * Recursively traverse and resolve references
125
+ */
126
+ async traverseAndResolve(obj, context, visited = new Set()) {
127
+ if (obj === null || obj === undefined) {
128
+ return obj;
129
+ }
130
+ // Prevent infinite loops from circular references
131
+ if (visited.has(obj)) {
132
+ return obj;
133
+ }
134
+ if (isKubernetesRef(obj)) {
135
+ // Replace with resolved value
136
+ return await this.resolveKubernetesRef(obj, context);
137
+ }
138
+ if (isCelExpression(obj)) {
139
+ // Handle CEL expressions based on deployment mode
140
+ if (this.deploymentMode === DeploymentMode.KRO) {
141
+ // In Kro mode, convert CEL expressions to CEL strings for Kro controller
142
+ return this.convertCelExpressionToString(obj, context);
143
+ }
144
+ else {
145
+ // In direct mode, evaluate CEL expressions locally
146
+ return await this.evaluateCelExpression(obj, context);
147
+ }
148
+ }
149
+ if (Array.isArray(obj)) {
150
+ visited.add(obj);
151
+ for (let i = 0; i < obj.length; i++) {
152
+ obj[i] = await this.traverseAndResolve(obj[i], context, visited);
153
+ }
154
+ visited.delete(obj);
155
+ return obj;
156
+ }
157
+ if (typeof obj === 'object') {
158
+ visited.add(obj);
159
+ for (const [key, value] of Object.entries(obj)) {
160
+ obj[key] = await this.traverseAndResolve(value, context, visited);
161
+ }
162
+ visited.delete(obj);
163
+ return obj;
164
+ }
165
+ return obj;
166
+ }
167
+ /**
168
+ * Resolve a KubernetesRef to its actual value or CEL string based on deployment mode
169
+ */
170
+ async resolveKubernetesRef(ref, context) {
171
+ // In Kro mode, convert KubernetesRef to CEL string for Kro controller
172
+ if (this.deploymentMode === DeploymentMode.KRO) {
173
+ return this.convertKubernetesRefToString(ref, context);
174
+ }
175
+ // In direct mode, resolve the reference to actual value
176
+ // Check cache first
177
+ const cacheKey = `${ref.resourceId}.${ref.fieldPath}`;
178
+ if (this.cache.has(cacheKey)) {
179
+ return this.cache.get(cacheKey);
180
+ }
181
+ // First check if resource is in our deployment context
182
+ const deployedResource = this.findDeployedResource(ref.resourceId, context);
183
+ if (deployedResource) {
184
+ const value = this.extractFieldValue(deployedResource.manifest, ref.fieldPath);
185
+ this.cache.set(cacheKey, value);
186
+ return value;
187
+ }
188
+ // Otherwise query from cluster
189
+ try {
190
+ const resource = await this.queryResourceFromCluster(ref, context);
191
+ const value = this.extractFieldValue(resource, ref.fieldPath);
192
+ this.cache.set(cacheKey, value);
193
+ return value;
194
+ }
195
+ catch (error) {
196
+ throw new ReferenceResolutionError(ref, error);
197
+ }
198
+ }
199
+ /**
200
+ * Convert a KubernetesRef to a CEL string for Kro controller evaluation
201
+ */
202
+ convertKubernetesRefToString(ref, context) {
203
+ this.logger.debug('Converting KubernetesRef to CEL string for Kro mode', {
204
+ resourceId: ref.resourceId,
205
+ fieldPath: ref.fieldPath,
206
+ deploymentId: context.deploymentId
207
+ });
208
+ // Convert KubernetesRef to Kro-compatible CEL string format
209
+ // Format: ${resourceId.fieldPath}
210
+ return `\${${ref.resourceId}.${ref.fieldPath}}`;
211
+ }
212
+ /**
213
+ * Convert a CEL expression to a CEL string for Kro controller evaluation
214
+ */
215
+ convertCelExpressionToString(expr, context) {
216
+ this.logger.debug('Converting CEL expression to string for Kro mode', {
217
+ expression: expr.expression,
218
+ deploymentId: context.deploymentId
219
+ });
220
+ // Convert CEL expression to Kro-compatible CEL string format
221
+ // The expression should be wrapped in ${...} for Kro
222
+ return `\${${expr.expression}}`;
223
+ }
224
+ /**
225
+ * Evaluate a CEL expression using runtime CEL evaluation
226
+ *
227
+ * This method performs ACTUAL CEL expression evaluation using the cel-js library.
228
+ * It's only used in Direct mode deployment where TypeKro must resolve CEL expressions
229
+ * to concrete values before creating Kubernetes manifests.
230
+ *
231
+ * In Kro mode, CEL expressions are converted to strings and evaluated by the Kro operator.
232
+ */
233
+ async evaluateCelExpression(expr, context) {
234
+ // Check cache first
235
+ const cacheKey = `cel:${expr.expression}`;
236
+ if (this.cache.has(cacheKey)) {
237
+ return this.cache.get(cacheKey);
238
+ }
239
+ try {
240
+ // Build the resources map for CEL evaluation
241
+ const resourcesMap = new Map();
242
+ // Add deployed resources to the map
243
+ for (const deployedResource of context.deployedResources) {
244
+ resourcesMap.set(deployedResource.id, deployedResource.manifest);
245
+ }
246
+ // Create CEL evaluation context
247
+ const celContext = {
248
+ resources: resourcesMap,
249
+ variables: {
250
+ // Add any additional variables if needed
251
+ },
252
+ };
253
+ // Use the proper CEL evaluator
254
+ const result = await this.celEvaluator.evaluate(expr, celContext);
255
+ this.cache.set(cacheKey, result);
256
+ return result;
257
+ }
258
+ catch (error) {
259
+ throw new CelExpressionError(expr, error);
260
+ }
261
+ }
262
+ /**
263
+ * Find a deployed resource by ID
264
+ */
265
+ findDeployedResource(resourceId, context) {
266
+ return context.deployedResources.find((r) => r.id === resourceId);
267
+ }
268
+ /**
269
+ * Query a resource from the Kubernetes cluster
270
+ */
271
+ async queryResourceFromCluster(ref, context) {
272
+ const queryLogger = this.logger.child({
273
+ resourceId: ref.resourceId,
274
+ fieldPath: ref.fieldPath
275
+ });
276
+ try {
277
+ // Parse the resource ID to extract resource information
278
+ const resourceInfo = this.parseResourceId(ref.resourceId);
279
+ queryLogger.debug('Parsed resource info', { resourceInfo });
280
+ // Build the resource reference for the Kubernetes API
281
+ const resourceRef = {
282
+ apiVersion: resourceInfo.apiVersion,
283
+ kind: resourceInfo.kind,
284
+ metadata: {
285
+ name: resourceInfo.name,
286
+ namespace: resourceInfo.namespace || context.namespace || 'default',
287
+ },
288
+ };
289
+ queryLogger.debug('Querying cluster resource', { resourceRef });
290
+ // Query the resource from the cluster
291
+ const response = await this.k8sApi.read(resourceRef);
292
+ const resource = response.body;
293
+ queryLogger.debug('Successfully retrieved cluster resource', {
294
+ resourceName: resource.metadata?.name,
295
+ resourceKind: resource.kind
296
+ });
297
+ // Convert k8s.KubernetesObject to our KubernetesResource type
298
+ const kubernetesResource = {
299
+ apiVersion: resource.apiVersion || '',
300
+ kind: resource.kind || '',
301
+ metadata: resource.metadata || {},
302
+ spec: resource.spec,
303
+ status: resource.status,
304
+ ...(resource.metadata?.name && { id: resource.metadata.name }),
305
+ };
306
+ return kubernetesResource;
307
+ }
308
+ catch (error) {
309
+ const k8sError = error;
310
+ if (k8sError.statusCode === 404) {
311
+ queryLogger.warn('Resource not found in cluster', {
312
+ resourceId: ref.resourceId,
313
+ error: k8sError.message
314
+ });
315
+ throw new ReferenceResolutionError(ref, new Error(`Resource '${ref.resourceId}' not found in cluster`));
316
+ }
317
+ queryLogger.error('Failed to query cluster resource', error, {
318
+ resourceId: ref.resourceId,
319
+ statusCode: k8sError.statusCode
320
+ });
321
+ throw new ReferenceResolutionError(ref, new Error(`Failed to query cluster resource '${ref.resourceId}': ${k8sError.message || error}`));
322
+ }
323
+ }
324
+ /**
325
+ * Parse a resource ID to extract Kubernetes resource information
326
+ * Supports formats like:
327
+ * - "my-deployment" (assumes Deployment in apps/v1)
328
+ * - "my-service" (assumes Service in v1)
329
+ * - "my-configmap" (assumes ConfigMap in v1)
330
+ * - Custom format: "kind:apiVersion:name" or "kind:name"
331
+ */
332
+ parseResourceId(resourceId) {
333
+ // Handle custom format: "kind:apiVersion:name" or "kind:name"
334
+ if (resourceId.includes(':')) {
335
+ const parts = resourceId.split(':');
336
+ if (parts.length === 3 && parts[0] && parts[1] && parts[2]) {
337
+ return {
338
+ kind: parts[0],
339
+ apiVersion: parts[1],
340
+ name: parts[2],
341
+ };
342
+ }
343
+ else if (parts.length === 2 && parts[0] && parts[1]) {
344
+ return {
345
+ kind: parts[0],
346
+ apiVersion: this.getDefaultApiVersion(parts[0]),
347
+ name: parts[1],
348
+ };
349
+ }
350
+ }
351
+ // Infer resource type from common naming patterns
352
+ const inferredType = this.inferResourceTypeFromName(resourceId);
353
+ return {
354
+ kind: inferredType.kind,
355
+ apiVersion: inferredType.apiVersion,
356
+ name: resourceId,
357
+ };
358
+ }
359
+ /**
360
+ * Infer Kubernetes resource type from resource name patterns
361
+ */
362
+ inferResourceTypeFromName(name) {
363
+ // Common naming patterns for different resource types
364
+ if (name.includes('-deployment') || name.includes('-deploy')) {
365
+ return { kind: 'Deployment', apiVersion: 'apps/v1' };
366
+ }
367
+ if (name.includes('-service') || name.includes('-svc')) {
368
+ return { kind: 'Service', apiVersion: 'v1' };
369
+ }
370
+ if (name.includes('-configmap') || name.includes('-config')) {
371
+ return { kind: 'ConfigMap', apiVersion: 'v1' };
372
+ }
373
+ if (name.includes('-secret')) {
374
+ return { kind: 'Secret', apiVersion: 'v1' };
375
+ }
376
+ if (name.includes('-ingress')) {
377
+ return { kind: 'Ingress', apiVersion: 'networking.k8s.io/v1' };
378
+ }
379
+ if (name.includes('-pvc') || name.includes('-volume')) {
380
+ return { kind: 'PersistentVolumeClaim', apiVersion: 'v1' };
381
+ }
382
+ if (name.includes('-job')) {
383
+ return { kind: 'Job', apiVersion: 'batch/v1' };
384
+ }
385
+ if (name.includes('-cronjob')) {
386
+ return { kind: 'CronJob', apiVersion: 'batch/v1' };
387
+ }
388
+ // Default to Deployment if no pattern matches
389
+ return { kind: 'Deployment', apiVersion: 'apps/v1' };
390
+ }
391
+ /**
392
+ * Get default API version for a given Kubernetes kind
393
+ */
394
+ getDefaultApiVersion(kind) {
395
+ const defaultApiVersions = {
396
+ 'Pod': 'v1',
397
+ 'Service': 'v1',
398
+ 'ConfigMap': 'v1',
399
+ 'Secret': 'v1',
400
+ 'Namespace': 'v1',
401
+ 'PersistentVolumeClaim': 'v1',
402
+ 'PersistentVolume': 'v1',
403
+ 'Deployment': 'apps/v1',
404
+ 'StatefulSet': 'apps/v1',
405
+ 'DaemonSet': 'apps/v1',
406
+ 'ReplicaSet': 'apps/v1',
407
+ 'Job': 'batch/v1',
408
+ 'CronJob': 'batch/v1',
409
+ 'Ingress': 'networking.k8s.io/v1',
410
+ 'NetworkPolicy': 'networking.k8s.io/v1',
411
+ 'ServiceAccount': 'v1',
412
+ 'Role': 'rbac.authorization.k8s.io/v1',
413
+ 'RoleBinding': 'rbac.authorization.k8s.io/v1',
414
+ 'ClusterRole': 'rbac.authorization.k8s.io/v1',
415
+ 'ClusterRoleBinding': 'rbac.authorization.k8s.io/v1',
416
+ 'HorizontalPodAutoscaler': 'autoscaling/v2',
417
+ 'CustomResourceDefinition': 'apiextensions.k8s.io/v1',
418
+ };
419
+ return defaultApiVersions[kind] ?? 'v1';
420
+ }
421
+ /**
422
+ * Extract a field value from an object using dot notation
423
+ */
424
+ extractFieldValue(obj, fieldPath) {
425
+ const parts = fieldPath.split('.');
426
+ let current = obj;
427
+ for (const part of parts) {
428
+ if (current === null || current === undefined) {
429
+ return undefined;
430
+ }
431
+ // Type guard to ensure we can access properties
432
+ if (typeof current !== 'object') {
433
+ return undefined;
434
+ }
435
+ const currentObj = current;
436
+ // Handle array indices
437
+ if (part.includes('[') && part.includes(']')) {
438
+ const [field, indexStr] = part.split('[');
439
+ if (!indexStr) {
440
+ return undefined;
441
+ }
442
+ const index = parseInt(indexStr.replace(']', ''), 10);
443
+ if (field) {
444
+ current = currentObj[field];
445
+ }
446
+ if (Array.isArray(current) && !Number.isNaN(index) && index >= 0 && index < current.length) {
447
+ current = current[index];
448
+ }
449
+ else {
450
+ return undefined;
451
+ }
452
+ }
453
+ else {
454
+ current = currentObj[part];
455
+ }
456
+ }
457
+ return current;
458
+ }
459
+ /**
460
+ * Wait for a resource to be ready
461
+ */
462
+ async waitForResourceReady(resourceRef, timeout = 30000) {
463
+ const readinessLogger = this.logger.child({ resourceId: resourceRef.resourceId });
464
+ try {
465
+ // First, query the resource from the cluster to get its current state
466
+ const resource = await this.queryResourceFromCluster(resourceRef, {
467
+ deployedResources: [],
468
+ kubeClient: this.kubeClient,
469
+ timeout,
470
+ });
471
+ // Create a DeployedResource object for the readiness checker
472
+ const deployedResource = {
473
+ id: resourceRef.resourceId,
474
+ kind: resource.kind || 'Unknown',
475
+ name: resource.metadata?.name || resourceRef.resourceId,
476
+ namespace: resource.metadata?.namespace || 'default',
477
+ manifest: resource,
478
+ status: 'deployed',
479
+ deployedAt: new Date(),
480
+ };
481
+ // Use the existing ResourceReadinessChecker for actual readiness checking
482
+ const readinessChecker = new ResourceReadinessChecker(this.k8sApi);
483
+ // Create deployment options for the readiness checker
484
+ const deploymentOptions = {
485
+ mode: 'direct',
486
+ timeout,
487
+ };
488
+ // Use the real readiness checker instead of simulation
489
+ await readinessChecker.waitForResourceReady(deployedResource, deploymentOptions, (event) => {
490
+ readinessLogger.debug('Readiness check progress', {
491
+ type: event.type,
492
+ message: event.message
493
+ });
494
+ });
495
+ readinessLogger.info('Resource is ready', {
496
+ resourceId: resourceRef.resourceId,
497
+ kind: resource.kind,
498
+ name: resource.metadata?.name
499
+ });
500
+ return true;
501
+ }
502
+ catch (error) {
503
+ readinessLogger.error('Resource readiness check failed', error, {
504
+ resourceId: resourceRef.resourceId,
505
+ timeout
506
+ });
507
+ if (error instanceof ResourceReadinessTimeoutError) {
508
+ throw error;
509
+ }
510
+ // Create a minimal DeployedResource for the error
511
+ const errorResource = {
512
+ id: resourceRef.resourceId,
513
+ kind: 'Unknown',
514
+ name: resourceRef.resourceId,
515
+ namespace: 'default',
516
+ manifest: {},
517
+ status: 'failed',
518
+ deployedAt: new Date(),
519
+ };
520
+ throw new ResourceReadinessTimeoutError(errorResource, timeout);
521
+ }
522
+ }
523
+ /**
524
+ * Clear the resolution cache
525
+ */
526
+ clearCache() {
527
+ this.cache.clear();
528
+ }
529
+ /**
530
+ * Get cache statistics
531
+ */
532
+ getCacheStats() {
533
+ return {
534
+ size: this.cache.size,
535
+ keys: Array.from(this.cache.keys()),
536
+ };
537
+ }
538
+ }
539
+ // Error classes
540
+ export class ReferenceResolutionError extends Error {
541
+ constructor(ref, cause) {
542
+ super(`Failed to resolve reference ${ref.resourceId}.${ref.fieldPath}: ${cause.message}`);
543
+ this.name = 'ReferenceResolutionError';
544
+ this.cause = cause;
545
+ }
546
+ }
547
+ export class CelExpressionError extends Error {
548
+ constructor(expr, cause) {
549
+ super(`Failed to evaluate CEL expression '${expr.expression}': ${cause.message}`);
550
+ this.name = 'CelExpressionError';
551
+ this.cause = cause;
552
+ }
553
+ }
554
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/core/references/resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Schema Proxy Factory for Kro Factory Pattern
3
+ *
4
+ * This module provides functionality to create schema proxies that return
5
+ * KubernetesRef objects for field access, specifically marked as schema references.
6
+ */
7
+ import type { KroCompatibleType, KubernetesRef, SchemaProxy } from '../types.js';
8
+ /**
9
+ * Creates a schema proxy that provides type-safe access to spec and status fields
10
+ *
11
+ * @returns SchemaProxy with spec and status MagicProxy objects
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * interface MySpec { name: string; replicas: number; }
16
+ * interface MyStatus { ready: boolean; url: string; }
17
+ *
18
+ * const schema = createSchemaProxy<MySpec, MyStatus>();
19
+ *
20
+ * // These return KubernetesRef objects with schema marking
21
+ * const nameRef = schema.spec.name; // KubernetesRef with fieldPath: "spec.name"
22
+ * const readyRef = schema.status.ready; // KubernetesRef with fieldPath: "status.ready"
23
+ * ```
24
+ */
25
+ export declare function createSchemaProxy<TSpec extends KroCompatibleType, TStatus extends KroCompatibleType>(): SchemaProxy<TSpec, TStatus>;
26
+ /**
27
+ * Utility function to check if a KubernetesRef is a schema reference
28
+ *
29
+ * @param ref - The KubernetesRef to check
30
+ * @returns true if the reference is a schema reference, false otherwise
31
+ */
32
+ export declare function isSchemaReference(ref: KubernetesRef<unknown>): boolean;
33
+ /**
34
+ * Create a magic proxy for resources in StatusBuilder
35
+ * This allows accessing resource.status.field as KubernetesRef objects while preserving types
36
+ */
37
+ export declare function createResourcesProxy<TResources extends Record<string, any>>(resources: TResources): TResources;
38
+ //# sourceMappingURL=schema-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-proxy.d.ts","sourceRoot":"","sources":["../../../src/core/references/schema-proxy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAoB,WAAW,EAAG,MAAM,aAAa,CAAC;AAqEpG;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,SAAS,iBAAiB,EAC/B,OAAO,SAAS,iBAAiB,KAC9B,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAK/B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAEtE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzE,SAAS,EAAE,UAAU,GACpB,UAAU,CA4BZ"}