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,627 @@
1
+ /**
2
+ * DirectResourceFactory implementation for direct deployment mode
3
+ *
4
+ * This factory handles direct deployment of Kubernetes resources using TypeKro's
5
+ * internal dependency resolution engine, without requiring the Kro controller.
6
+ */
7
+ import { DependencyResolver } from '../dependencies/index.js';
8
+ import { DirectDeploymentEngine } from './engine.js';
9
+ import { getComponentLogger } from '../logging/index.js';
10
+ import { createRollbackManagerWithKubeConfig } from './rollback-manager.js';
11
+ import { createKubernetesClientProvider, createKubernetesClientProviderWithKubeConfig, } from '../kubernetes/client-provider.js';
12
+ import { DirectDeploymentStrategy, AlchemyDeploymentStrategy } from './strategies/index.js';
13
+ import { ResourceReadinessChecker } from './readiness.js';
14
+ import { generateInstanceName } from './shared-utilities.js';
15
+ import { toCamelCase } from '../../utils/helpers.js';
16
+ import { isCelExpression, isKubernetesRef } from '../dependencies/type-guards.js';
17
+ /**
18
+ * DirectResourceFactory implementation
19
+ *
20
+ * Handles direct deployment of Kubernetes resources using TypeKro's dependency resolution.
21
+ * Each deployment creates individual Kubernetes resources directly in the cluster.
22
+ */
23
+ export class DirectResourceFactoryImpl {
24
+ mode = 'direct';
25
+ name;
26
+ namespace;
27
+ isAlchemyManaged;
28
+ resources;
29
+ closures;
30
+ schemaDefinition;
31
+ deploymentEngine;
32
+ alchemyScope;
33
+ factoryOptions;
34
+ deployedInstances = new Map();
35
+ logger = getComponentLogger('direct-factory');
36
+ clientProvider;
37
+ constructor(name, resources, schemaDefinition, options = {}) {
38
+ this.name = name;
39
+ this.namespace = options.namespace || 'default';
40
+ this.alchemyScope = options.alchemyScope;
41
+ this.isAlchemyManaged = !!options.alchemyScope;
42
+ this.resources = resources;
43
+ this.closures = options.closures || {};
44
+ this.schemaDefinition = schemaDefinition;
45
+ this.factoryOptions = options;
46
+ // Don't initialize client provider in constructor - do it lazily when needed
47
+ // This allows tests to create factories without requiring a kubeconfig
48
+ }
49
+ /**
50
+ * Get or create the Kubernetes client provider (lazy initialization)
51
+ */
52
+ getClientProvider() {
53
+ if (!this.clientProvider) {
54
+ this.clientProvider = this.createClientProvider(this.factoryOptions);
55
+ }
56
+ return this.clientProvider;
57
+ }
58
+ /**
59
+ * Create and configure the Kubernetes client provider
60
+ */
61
+ createClientProvider(options) {
62
+ // If a pre-configured kubeConfig is provided, use it directly
63
+ if (options.kubeConfig) {
64
+ this.logger.debug('Using pre-configured KubeConfig from factory options');
65
+ return createKubernetesClientProviderWithKubeConfig(options.kubeConfig);
66
+ }
67
+ // Create client provider with configuration from factory options
68
+ const clientConfig = {
69
+ ...(options.skipTLSVerify !== undefined && { skipTLSVerify: options.skipTLSVerify }),
70
+ // Add other configuration options as needed
71
+ };
72
+ this.logger.debug('Creating new KubernetesClientProvider with configuration', {
73
+ skipTLSVerify: clientConfig.skipTLSVerify,
74
+ });
75
+ return createKubernetesClientProvider(clientConfig);
76
+ }
77
+ /**
78
+ * Get or create the deployment engine using the centralized client provider
79
+ */
80
+ getDeploymentEngine() {
81
+ if (!this.deploymentEngine) {
82
+ this.logger.debug('Creating DirectDeploymentEngine with KubernetesClientProvider');
83
+ // Get the KubeConfig from the centralized provider (lazy initialization)
84
+ const clientProvider = this.getClientProvider();
85
+ const kubeConfig = clientProvider.getKubeConfig();
86
+ // Create the deployment engine with the provider's KubeConfig
87
+ this.deploymentEngine = new DirectDeploymentEngine(kubeConfig, undefined, undefined, 'direct');
88
+ this.logger.debug('DirectDeploymentEngine created successfully', {
89
+ currentContext: kubeConfig.getCurrentContext(),
90
+ server: kubeConfig.getCurrentCluster()?.server,
91
+ });
92
+ }
93
+ return this.deploymentEngine;
94
+ }
95
+ /**
96
+ * Deploy a new instance with the given spec
97
+ */
98
+ async deploy(spec) {
99
+ // Use the consolidated deployment strategy
100
+ const strategy = this.getDeploymentStrategy();
101
+ const instance = await strategy.deploy(spec);
102
+ // Check if deployment failed and throw for user-facing error handling
103
+ if (instance.metadata?.annotations?.['typekro.io/deployment-status'] === 'failed') {
104
+ const errorMessage = instance.metadata?.annotations?.['typekro.io/deployment-error'] ||
105
+ 'Deployment failed - check logs for details';
106
+ throw new Error(errorMessage);
107
+ }
108
+ // Track the deployed instance
109
+ const instanceName = this.generateInstanceName(spec);
110
+ this.deployedInstances.set(instanceName, instance);
111
+ return instance;
112
+ }
113
+ /**
114
+ * Get the appropriate deployment strategy based on configuration
115
+ */
116
+ getDeploymentStrategy() {
117
+ // Create base strategy
118
+ const baseStrategy = new DirectDeploymentStrategy(this.name, this.namespace, this.schemaDefinition, this.factoryOptions, this.getDeploymentEngine(), this // This factory acts as the resource resolver
119
+ );
120
+ // Wrap with alchemy if needed
121
+ if (this.isAlchemyManaged && this.alchemyScope) {
122
+ return new AlchemyDeploymentStrategy(this.name, this.namespace, this.schemaDefinition, this.factoryOptions, this.alchemyScope, baseStrategy);
123
+ }
124
+ return baseStrategy;
125
+ }
126
+ /**
127
+ * Get all deployed instances
128
+ */
129
+ async getInstances() {
130
+ return Array.from(this.deployedInstances.values());
131
+ }
132
+ /**
133
+ * Delete a specific instance by name
134
+ */
135
+ async deleteInstance(name) {
136
+ const instance = this.deployedInstances.get(name);
137
+ if (!instance) {
138
+ throw new Error(`Instance not found: ${name}`);
139
+ }
140
+ try {
141
+ // Use the deployment engine to delete the resources
142
+ const engine = this.getDeploymentEngine();
143
+ await engine.rollback(`${this.name}-${name}`);
144
+ // Remove from tracking
145
+ this.deployedInstances.delete(name);
146
+ }
147
+ catch (error) {
148
+ throw new Error(`Failed to delete instance ${name}: ${error instanceof Error ? error.message : String(error)}`);
149
+ }
150
+ }
151
+ /**
152
+ * Get factory status with real health checking using readiness evaluators
153
+ */
154
+ async getStatus() {
155
+ const instances = await this.getInstances();
156
+ // If no instances, we're healthy by definition
157
+ let health = 'healthy';
158
+ if (instances.length > 0) {
159
+ // Only perform cluster health checking if we have deployed instances
160
+ health = await this.checkFactoryHealth();
161
+ }
162
+ return {
163
+ name: this.name,
164
+ mode: this.mode,
165
+ isAlchemyManaged: this.isAlchemyManaged,
166
+ namespace: this.namespace,
167
+ instanceCount: instances.length,
168
+ health,
169
+ };
170
+ }
171
+ /**
172
+ * Check the overall health of the factory by leveraging existing ResourceReadinessChecker
173
+ */
174
+ async checkFactoryHealth() {
175
+ const healthLogger = this.logger.child({ method: 'checkFactoryHealth' });
176
+ try {
177
+ const engine = this.getDeploymentEngine();
178
+ // Get all deployment states from the engine
179
+ const deploymentStates = engine.getAllDeploymentStates();
180
+ if (deploymentStates.length === 0) {
181
+ healthLogger.debug('No deployments found, factory is healthy');
182
+ return 'healthy';
183
+ }
184
+ let healthyCount = 0;
185
+ let degradedCount = 0;
186
+ let failedCount = 0;
187
+ let totalResources = 0;
188
+ const healthErrors = [];
189
+ // Check health of all resources across all deployments
190
+ for (const deploymentState of deploymentStates) {
191
+ for (const deployedResource of deploymentState.resources) {
192
+ totalResources++;
193
+ try {
194
+ // Use the deployment engine's readiness logic (includes custom evaluators + fallback)
195
+ const engine = this.getDeploymentEngine();
196
+ const isReady = await engine.isDeployedResourceReady(deployedResource);
197
+ if (isReady) {
198
+ healthyCount++;
199
+ }
200
+ else {
201
+ // Resource exists but not ready - consider degraded
202
+ degradedCount++;
203
+ healthLogger.info('Resource not ready', {
204
+ resourceId: deployedResource.id,
205
+ kind: deployedResource.kind,
206
+ name: deployedResource.name,
207
+ namespace: deployedResource.namespace,
208
+ });
209
+ }
210
+ }
211
+ catch (error) {
212
+ // Resource not found or API error - consider it failed
213
+ failedCount++;
214
+ const healthError = {
215
+ resourceId: deployedResource.id,
216
+ phase: 'readiness',
217
+ error: error instanceof Error ? error : new Error(String(error)),
218
+ timestamp: new Date(),
219
+ };
220
+ healthErrors.push(healthError);
221
+ healthLogger.error('Failed to check resource health', error, {
222
+ resourceId: deployedResource.id,
223
+ });
224
+ }
225
+ }
226
+ }
227
+ // Log health errors for debugging
228
+ if (healthErrors.length > 0) {
229
+ healthLogger.debug('Health check errors encountered', {
230
+ errorCount: healthErrors.length,
231
+ errors: healthErrors.map((e) => ({
232
+ resourceId: e.resourceId,
233
+ phase: e.phase,
234
+ message: e.error.message,
235
+ })),
236
+ });
237
+ }
238
+ // Determine overall health based on resource status distribution
239
+ if (failedCount > 0) {
240
+ healthLogger.info('Factory health: failed', {
241
+ healthy: healthyCount,
242
+ degraded: degradedCount,
243
+ failed: failedCount,
244
+ total: totalResources,
245
+ errorCount: healthErrors.length,
246
+ });
247
+ return 'failed';
248
+ }
249
+ else if (degradedCount > 0) {
250
+ healthLogger.info('Factory health: degraded', {
251
+ healthy: healthyCount,
252
+ degraded: degradedCount,
253
+ failed: failedCount,
254
+ total: totalResources,
255
+ });
256
+ return 'degraded';
257
+ }
258
+ else {
259
+ healthLogger.info('Factory health: healthy', {
260
+ healthy: healthyCount,
261
+ degraded: degradedCount,
262
+ failed: failedCount,
263
+ total: totalResources,
264
+ });
265
+ return 'healthy';
266
+ }
267
+ }
268
+ catch (error) {
269
+ healthLogger.error('Error checking factory health', error);
270
+ return 'failed';
271
+ }
272
+ }
273
+ /**
274
+ * Get detailed health information including any errors encountered
275
+ * Useful for debugging and monitoring
276
+ */
277
+ async getHealthDetails() {
278
+ const healthLogger = this.logger.child({ method: 'getHealthDetails' });
279
+ // Check if we have any instances first to avoid initializing engine unnecessarily
280
+ const instances = await this.getInstances();
281
+ if (instances.length === 0) {
282
+ return {
283
+ health: 'healthy',
284
+ resourceCounts: { healthy: 0, degraded: 0, failed: 0, total: 0 },
285
+ errors: [],
286
+ };
287
+ }
288
+ try {
289
+ const engine = this.getDeploymentEngine();
290
+ const deploymentStates = engine.getAllDeploymentStates();
291
+ if (deploymentStates.length === 0) {
292
+ return {
293
+ health: 'healthy',
294
+ resourceCounts: { healthy: 0, degraded: 0, failed: 0, total: 0 },
295
+ errors: [],
296
+ };
297
+ }
298
+ const k8sApi = engine.getKubernetesApi();
299
+ const readinessChecker = new ResourceReadinessChecker(k8sApi);
300
+ let healthyCount = 0;
301
+ let degradedCount = 0;
302
+ let failedCount = 0;
303
+ let totalResources = 0;
304
+ const healthErrors = [];
305
+ // Check health of all resources across all deployments
306
+ for (const deploymentState of deploymentStates) {
307
+ for (const deployedResource of deploymentState.resources) {
308
+ totalResources++;
309
+ try {
310
+ const resourceRef = {
311
+ apiVersion: deployedResource.manifest.apiVersion || '',
312
+ kind: deployedResource.kind,
313
+ metadata: {
314
+ name: deployedResource.name,
315
+ namespace: deployedResource.namespace,
316
+ },
317
+ };
318
+ const liveResource = await k8sApi.read(resourceRef);
319
+ const isReady = readinessChecker.isResourceReady(liveResource.body);
320
+ if (isReady) {
321
+ healthyCount++;
322
+ }
323
+ else {
324
+ degradedCount++;
325
+ }
326
+ }
327
+ catch (error) {
328
+ failedCount++;
329
+ const healthError = {
330
+ resourceId: deployedResource.id,
331
+ phase: 'readiness',
332
+ error: error instanceof Error ? error : new Error(String(error)),
333
+ timestamp: new Date(),
334
+ };
335
+ healthErrors.push(healthError);
336
+ }
337
+ }
338
+ }
339
+ const health = failedCount > 0 ? 'failed' : degradedCount > 0 ? 'degraded' : 'healthy';
340
+ return {
341
+ health,
342
+ resourceCounts: {
343
+ healthy: healthyCount,
344
+ degraded: degradedCount,
345
+ failed: failedCount,
346
+ total: totalResources,
347
+ },
348
+ errors: healthErrors,
349
+ };
350
+ }
351
+ catch (error) {
352
+ healthLogger.error('Error getting health details', error);
353
+ return {
354
+ health: 'failed',
355
+ resourceCounts: { healthy: 0, degraded: 0, failed: 0, total: 0 },
356
+ errors: [
357
+ {
358
+ resourceId: 'factory',
359
+ phase: 'readiness',
360
+ error: error instanceof Error ? error : new Error(String(error)),
361
+ timestamp: new Date(),
362
+ },
363
+ ],
364
+ };
365
+ }
366
+ }
367
+ /**
368
+ * Rollback all deployments made by this factory
369
+ */
370
+ async rollback() {
371
+ this.logger.debug('Starting rollback for all deployed instances');
372
+ // Get kubeConfig from the centralized provider (lazy initialization)
373
+ const clientProvider = this.getClientProvider();
374
+ const kubeConfig = clientProvider.getKubeConfig();
375
+ // Create rollback manager with the provider's KubeConfig
376
+ const rollbackManager = createRollbackManagerWithKubeConfig(kubeConfig);
377
+ // Get all deployed instances as Enhanced resources
378
+ const resourcesToRollback = Array.from(this.deployedInstances.values());
379
+ this.logger.debug('Rolling back resources', {
380
+ resourceCount: resourcesToRollback.length,
381
+ instanceNames: Array.from(this.deployedInstances.keys()),
382
+ });
383
+ // Perform rollback using consolidated logic
384
+ const result = await rollbackManager.rollbackResources(resourcesToRollback, {
385
+ timeout: this.factoryOptions.timeout || undefined,
386
+ emitEvent: this.factoryOptions.progressCallback || undefined,
387
+ });
388
+ // Clear all tracked instances after rollback
389
+ this.deployedInstances.clear();
390
+ this.logger.info('Rollback completed', {
391
+ status: result.status,
392
+ resourceCount: result.rolledBackResources.length,
393
+ });
394
+ return result;
395
+ }
396
+ /**
397
+ * Perform a dry run deployment
398
+ */
399
+ async toDryRun(spec) {
400
+ const resourceGraph = this.createResourceGraphForInstance(spec);
401
+ const deploymentOptions = {
402
+ mode: 'direct',
403
+ namespace: this.namespace,
404
+ ...(this.factoryOptions.timeout && { timeout: this.factoryOptions.timeout }),
405
+ waitForReady: false, // Don't wait for readiness in dry run
406
+ dryRun: true,
407
+ ...(this.factoryOptions.retryPolicy && { retryPolicy: this.factoryOptions.retryPolicy }),
408
+ ...(this.factoryOptions.progressCallback && {
409
+ progressCallback: this.factoryOptions.progressCallback,
410
+ }),
411
+ };
412
+ return this.getDeploymentEngine().deploy(resourceGraph, deploymentOptions);
413
+ }
414
+ /**
415
+ * Generate YAML for instance deployment
416
+ */
417
+ toYaml(spec) {
418
+ // Resolve references with the actual spec values
419
+ const resolvedResources = this.resolveResourcesForSpec(spec);
420
+ // Generate individual Kubernetes resource YAML manifests (not RGD)
421
+ const yamlParts = Object.values(resolvedResources).map((resource) => {
422
+ // Remove TypeKro-specific fields and generate clean Kubernetes YAML
423
+ const cleanResource = { ...resource };
424
+ delete cleanResource.id; // Remove TypeKro id field
425
+ // Simple YAML serialization for Kubernetes resources
426
+ let yamlContent = `apiVersion: ${cleanResource.apiVersion}
427
+ kind: ${cleanResource.kind}
428
+ metadata:
429
+ name: ${cleanResource.metadata?.name}
430
+ namespace: ${this.namespace}`;
431
+ // Add labels if present
432
+ if (cleanResource.metadata?.labels) {
433
+ yamlContent += `\n labels:\n${Object.entries(cleanResource.metadata.labels)
434
+ .map(([k, v]) => ` ${k}: ${v}`)
435
+ .join('\n')}`;
436
+ }
437
+ // Handle different resource types
438
+ const resourceWithSpec = cleanResource;
439
+ if (resourceWithSpec.spec) {
440
+ yamlContent += `\nspec:\n${Object.entries(resourceWithSpec.spec)
441
+ .map(([key, value]) => ` ${key}: ${typeof value === 'object'
442
+ ? JSON.stringify(value, null, 2)
443
+ .split('\n')
444
+ .map((line, i) => (i === 0 ? line : ` ${line}`))
445
+ .join('\n')
446
+ : value}`)
447
+ .join('\n')}`;
448
+ }
449
+ const resourceWithData = cleanResource;
450
+ if (resourceWithData.data) {
451
+ yamlContent += `\ndata:\n${Object.entries(resourceWithData.data)
452
+ .map(([key, value]) => ` ${key}: ${typeof value === 'string' ? JSON.stringify(value) : value}`)
453
+ .join('\n')}`;
454
+ }
455
+ return yamlContent;
456
+ });
457
+ return yamlParts.join('\n---\n');
458
+ }
459
+ /**
460
+ * Create a resource graph for a specific instance
461
+ */
462
+ createResourceGraphForInstance(spec) {
463
+ const dependencyResolver = new DependencyResolver();
464
+ const resolvedResources = this.resolveResourcesForSpec(spec);
465
+ const instanceName = this.generateInstanceName(spec);
466
+ const resourceArray = Object.values(resolvedResources).map((resource, index) => {
467
+ const baseId = `${instanceName}-resource-${index}-${resource.id || resource.kind?.toLowerCase() || 'unknown'}`;
468
+ const resourceWithId = {
469
+ ...resource,
470
+ id: toCamelCase(baseId),
471
+ };
472
+ // Preserve the readinessEvaluator function if it exists (it's non-enumerable)
473
+ const originalResource = resource;
474
+ if (originalResource.readinessEvaluator &&
475
+ typeof originalResource.readinessEvaluator === 'function') {
476
+ Object.defineProperty(resourceWithId, 'readinessEvaluator', {
477
+ value: originalResource.readinessEvaluator,
478
+ enumerable: false,
479
+ configurable: true,
480
+ writable: false,
481
+ });
482
+ }
483
+ return resourceWithId;
484
+ });
485
+ // Convert to DeployableK8sResource format expected by dependency resolver
486
+ const deployableResources = resourceArray;
487
+ const dependencyGraph = dependencyResolver.buildDependencyGraph(deployableResources);
488
+ // Create resources in the format expected by DirectDeploymentEngine
489
+ const formattedResources = deployableResources.map((resource) => ({
490
+ id: resource.id, // Already prefixed with instance name above
491
+ manifest: resource,
492
+ }));
493
+ return {
494
+ name: `${this.name}-instance`,
495
+ resources: formattedResources,
496
+ dependencyGraph,
497
+ };
498
+ }
499
+ /**
500
+ * Resolve resources for a specific spec
501
+ * This uses the existing processResourceReferences system to handle schema references
502
+ */
503
+ resolveResourcesForSpec(spec) {
504
+ const resolvedResources = {};
505
+ for (const [key, resource] of Object.entries(this.resources)) {
506
+ try {
507
+ // CORRECTED: Go directly from the resource template (with proxy objects)
508
+ // to resolving the values from the provided spec.
509
+ const resolvedResource = this.resolveSchemaReferencesToValues(resource, spec);
510
+ resolvedResources[key] = resolvedResource;
511
+ }
512
+ catch (error) {
513
+ // If resolution fails, use the original resource
514
+ this.logger.warn('Failed to resolve references for resource', error);
515
+ resolvedResources[key] = resource;
516
+ }
517
+ }
518
+ return resolvedResources;
519
+ }
520
+ /**
521
+ * Resolve schema references and CEL expressions to actual values for direct deployment.
522
+ * This is the final, corrected version that handles both direct proxies and Cel.expr wrappers.
523
+ */
524
+ resolveSchemaReferencesToValues(resource, spec, path = 'root') {
525
+ this.logger.trace('Resolving schema references', {
526
+ path,
527
+ type: typeof resource,
528
+ isObject: resource !== null && typeof resource === 'object',
529
+ });
530
+ // Case 1: Handle direct schema proxy objects (e.g., schema.spec.replicas)
531
+ if (isKubernetesRef(resource) && resource.resourceId === '__schema__') {
532
+ this.logger.trace('Found schema KubernetesRef', { path, fieldPath: resource.fieldPath });
533
+ const pathParts = resource.fieldPath.split('.');
534
+ let currentValue = spec;
535
+ // Skip the first part ('spec') and traverse the spec object
536
+ this.logger.trace('Traversing spec with path parts', { pathParts: pathParts.slice(1) });
537
+ for (const part of pathParts.slice(1)) {
538
+ if (currentValue && typeof currentValue === 'object' && part in currentValue) {
539
+ const oldValue = currentValue;
540
+ currentValue = currentValue[part];
541
+ this.logger.trace('Successfully traversed spec part', {
542
+ part,
543
+ oldValue: JSON.stringify(oldValue),
544
+ newValue: JSON.stringify(currentValue),
545
+ });
546
+ }
547
+ else {
548
+ this.logger.warn('Path part not found in spec, returning original reference', {
549
+ path,
550
+ part,
551
+ spec: JSON.stringify(spec),
552
+ });
553
+ return resource;
554
+ // Path not found, return original
555
+ }
556
+ }
557
+ this.logger.trace('Resolved schema KubernetesRef to value', {
558
+ path,
559
+ resolvedValue: currentValue,
560
+ });
561
+ return currentValue;
562
+ }
563
+ // Case 2: Handle CelExpression objects (e.g., Cel.expr(schema.spec.name, '-db'))
564
+ if (isCelExpression(resource)) {
565
+ this.logger.trace('Found CEL Expression', { path, expression: resource.expression });
566
+ // The .expression property holds a string like "schema.spec.name-db-config"
567
+ let expressionString = resource.expression;
568
+ // Use regex to find all `schema.spec.fieldName` placeholders in the string
569
+ // and replace them with the corresponding values from the spec object.
570
+ // The 'g' flag ensures all occurrences are replaced.
571
+ expressionString = expressionString.replace(/schema\.spec\.(\w+)/g, (_match, fieldName) => {
572
+ const value = spec[fieldName];
573
+ this.logger.trace('Replacing CEL placeholder', { fieldName, value });
574
+ // If the value exists in the spec, convert it to a string for concatenation.
575
+ // Otherwise, keep the original placeholder (though this shouldn't happen in valid cases).
576
+ return value !== undefined ? String(value) : _match;
577
+ });
578
+ this.logger.trace('Resolved CEL expression to value', {
579
+ path,
580
+ resolvedValue: expressionString,
581
+ });
582
+ // The result is the final, resolved string.
583
+ return expressionString;
584
+ }
585
+ // Case 3: Recursively traverse arrays and plain objects (no changes here)
586
+ if (Array.isArray(resource)) {
587
+ this.logger.trace('Traversing array', { path });
588
+ return resource.map((item, index) => this.resolveSchemaReferencesToValues(item, spec, `${path}[${index}]`));
589
+ }
590
+ if (resource && typeof resource === 'object') {
591
+ this.logger.trace('Traversing object', { path, keys: Object.keys(resource) });
592
+ const resolved = {};
593
+ for (const [key, value] of Object.entries(resource)) {
594
+ resolved[key] = this.resolveSchemaReferencesToValues(value, spec, `${path}.${key}`);
595
+ }
596
+ // FIX: Explicitly check for and preserve the non-enumerable readinessEvaluator property.
597
+ const evaluator = resource.readinessEvaluator;
598
+ if (typeof evaluator === 'function') {
599
+ this.logger.trace('Preserving readiness evaluator for resource', { path });
600
+ Object.defineProperty(resolved, 'readinessEvaluator', {
601
+ value: evaluator,
602
+ enumerable: false,
603
+ configurable: false,
604
+ writable: false,
605
+ });
606
+ }
607
+ return resolved;
608
+ }
609
+ this.logger.trace('Returning primitive value as-is', { path, value: resource });
610
+ // Return primitives and other types as-is.
611
+ return resource;
612
+ }
613
+ /**
614
+ * Generate instance name from spec
615
+ */
616
+ generateInstanceName(spec) {
617
+ // Use the imported shared utility
618
+ return generateInstanceName(spec);
619
+ }
620
+ }
621
+ /**
622
+ * Create a DirectResourceFactory instance
623
+ */
624
+ export function createDirectResourceFactory(name, resources, schemaDefinition, options = {}) {
625
+ return new DirectResourceFactoryImpl(name, resources, schemaDefinition, options);
626
+ }
627
+ //# sourceMappingURL=direct-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-factory.js","sourceRoot":"","sources":["../../../src/core/deployment/direct-factory.ts"],"names":[],"mappings":"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"}