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,100 @@
1
+ /**
2
+ * Shared Deployment Utilities
3
+ *
4
+ * This module provides common utilities used across all deployment modes
5
+ * to eliminate code duplication and ensure consistent behavior.
6
+ */
7
+ /**
8
+ * Common spec validation logic used by all factories
9
+ */
10
+ export function validateSpec(spec, schemaDefinition) {
11
+ const validationResult = schemaDefinition.spec(spec);
12
+ if (validationResult instanceof Error) {
13
+ throw new Error(`Invalid spec: ${validationResult.message}`);
14
+ }
15
+ }
16
+ /**
17
+ * Generate deployment options from factory options
18
+ */
19
+ export function createDeploymentOptions(factoryOptions, namespace, mode = 'direct') {
20
+ return {
21
+ mode,
22
+ namespace,
23
+ ...(factoryOptions.timeout && { timeout: factoryOptions.timeout }),
24
+ waitForReady: factoryOptions.waitForReady ?? true,
25
+ hydrateStatus: factoryOptions.hydrateStatus ?? true,
26
+ ...(factoryOptions.retryPolicy && { retryPolicy: factoryOptions.retryPolicy }),
27
+ ...(factoryOptions.progressCallback && { progressCallback: factoryOptions.progressCallback }),
28
+ };
29
+ }
30
+ /**
31
+ * Generate instance name from spec
32
+ */
33
+ export function generateInstanceName(spec) {
34
+ // Try to extract name from spec - check common name fields
35
+ if (typeof spec === 'object' && spec !== null) {
36
+ const specObj = spec;
37
+ // Check for common name fields in order of preference
38
+ for (const nameField of ['name', 'appName', 'serviceName', 'resourceName']) {
39
+ if (nameField in specObj && specObj[nameField]) {
40
+ return String(specObj[nameField]);
41
+ }
42
+ }
43
+ }
44
+ // Generate a unique name
45
+ return `instance-${Date.now()}`;
46
+ }
47
+ /**
48
+ * Create Enhanced proxy metadata
49
+ */
50
+ export function createEnhancedMetadata(instanceName, namespace, factoryName, mode) {
51
+ return {
52
+ name: instanceName,
53
+ namespace,
54
+ labels: {
55
+ 'typekro.io/factory': factoryName,
56
+ 'typekro.io/mode': mode,
57
+ },
58
+ annotations: {
59
+ 'typekro.io/deployed-at': new Date().toISOString(),
60
+ },
61
+ };
62
+ }
63
+ /**
64
+ * Common error handling for deployment failures
65
+ */
66
+ export function handleDeploymentError(error, context) {
67
+ if (error instanceof Error) {
68
+ // Use proper error chaining with cause property
69
+ const enhancedError = new Error(`${context}: ${error.message}`);
70
+ enhancedError.cause = error;
71
+ if (error.stack) {
72
+ enhancedError.stack = error.stack;
73
+ }
74
+ throw enhancedError;
75
+ }
76
+ throw new Error(`${context}: ${String(error)}`);
77
+ }
78
+ /**
79
+ * Common alchemy scope validation
80
+ */
81
+ export function validateAlchemyScope(alchemyScope, context) {
82
+ if (!alchemyScope) {
83
+ throw new Error(`${context}: Alchemy scope is required for alchemy deployment`);
84
+ }
85
+ // Ensure the provided scope looks like a valid Alchemy scope (has a run function)
86
+ const hasRunFunction = typeof alchemyScope?.run === 'function';
87
+ if (!hasRunFunction) {
88
+ throw new Error(`${context}: Alchemy scope is invalid (missing run function)`);
89
+ }
90
+ }
91
+ /**
92
+ * Create alchemy deployment options
93
+ */
94
+ export function createAlchemyDeploymentOptions(factoryOptions, _namespace) {
95
+ return {
96
+ waitForReady: factoryOptions.waitForReady ?? true,
97
+ timeout: factoryOptions.timeout ?? 300000,
98
+ };
99
+ }
100
+ //# sourceMappingURL=shared-utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-utilities.js","sourceRoot":"","sources":["../../../src/core/deployment/shared-utilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import type * as k8s from '@kubernetes/client-node';
2
+ import type { DeployedResource, Enhanced, KubernetesResource } from '../types.js';
3
+ /**
4
+ * Options for status hydration
5
+ */
6
+ export interface StatusHydrationOptions {
7
+ /** Enable caching of status queries to reduce API calls */
8
+ enableCaching?: boolean;
9
+ /** Cache TTL in milliseconds */
10
+ cacheTtl?: number;
11
+ /** Maximum number of retries for failed status queries */
12
+ maxRetries?: number;
13
+ /** Timeout for individual status queries in milliseconds */
14
+ queryTimeout?: number;
15
+ }
16
+ /**
17
+ * StatusHydrator populates Enhanced proxy status fields with live cluster data
18
+ * after resources are confirmed ready by ResourceReadinessChecker
19
+ */
20
+ export declare class StatusHydrator {
21
+ private k8sApi;
22
+ private statusCache;
23
+ private readonly defaultOptions;
24
+ private mergedOptions;
25
+ private logger;
26
+ constructor(k8sApi: k8s.KubernetesObjectApi, options?: StatusHydrationOptions);
27
+ /**
28
+ * Hydrate status fields for a single resource
29
+ */
30
+ hydrateStatus<TSpec, TStatus extends Record<string, unknown>>(enhanced: Enhanced<TSpec, TStatus>, deployedResource?: DeployedResource): Promise<{
31
+ success: boolean;
32
+ resourceId: string;
33
+ hydratedFields: string[];
34
+ error?: Error;
35
+ }>;
36
+ /**
37
+ * Hydrate status using already-fetched live resource data
38
+ * This method is used by DirectDeploymentEngine to avoid duplicate API calls
39
+ */
40
+ hydrateStatusFromLiveData<TSpec, TStatus>(enhanced: Enhanced<TSpec, TStatus>, liveResourceData: KubernetesResource<TSpec, TStatus>, deployedResource: DeployedResource): Promise<{
41
+ success: boolean;
42
+ resourceId: string;
43
+ hydratedFields: string[];
44
+ error?: Error;
45
+ }>;
46
+ /**
47
+ * Populate Enhanced proxy status fields with live data
48
+ */
49
+ private populateEnhancedStatus;
50
+ /**
51
+ * Hydrate all status fields in an Enhanced proxy
52
+ */
53
+ hydrateEnhancedProxy<TSpec, TStatus>(enhancedProxy: Enhanced<TSpec, TStatus>, deployedResources: DeployedResource[]): Promise<void>;
54
+ /**
55
+ * Query live resource status from the cluster
56
+ */
57
+ private queryResourceStatus;
58
+ /**
59
+ * Generate cache key for a deployed resource
60
+ */
61
+ private getCacheKey;
62
+ /**
63
+ * Get data from cache if valid
64
+ */
65
+ private getFromCache;
66
+ /**
67
+ * Set data in cache
68
+ */
69
+ private setCache;
70
+ /**
71
+ * Clear the status cache
72
+ */
73
+ clearCache(): void;
74
+ /**
75
+ * Get cache statistics
76
+ */
77
+ getCacheStats(): {
78
+ size: number;
79
+ keys: string[];
80
+ };
81
+ }
82
+ /**
83
+ * Hydrates status fields by combining Kro-resolved dynamic fields with static fields
84
+ */
85
+ export declare function hydrateStatus<T extends Record<string, unknown>>(kroStatus: Record<string, unknown>, staticFields: Record<string, unknown>): Promise<T>;
86
+ //# sourceMappingURL=status-hydrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-hydrator.d.ts","sourceRoot":"","sources":["../../../src/core/deployment/status-hydrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAEpD,OAAO,KAAK,EACV,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAWD;;;GAGG;AACH,qBAAa,cAAc;IAavB,OAAO,CAAC,MAAM;IAZhB,OAAO,CAAC,WAAW,CAAgD;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK7B;IAEF,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,MAAM,CAAyC;gBAG7C,MAAM,EAAE,GAAG,CAAC,mBAAmB,EACvC,OAAO,GAAE,sBAA2B;IAKtC;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAClC,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC;IA+D7F;;;OAGG;IACG,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAC5C,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAClC,gBAAgB,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EACpD,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC;IAiC7F;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoC9B;;OAEG;IACG,oBAAoB,CAAC,KAAK,EAAE,OAAO,EACvC,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EACvC,iBAAiB,EAAE,gBAAgB,EAAE,GACpC,OAAO,CAAC,IAAI,CAAC;IA2BhB;;OAEG;YACW,mBAAmB;IAmCjC;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,aAAa,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;CAMlD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,OAAO,CAAC,CAAC,CAAC,CAiBZ"}
@@ -0,0 +1,262 @@
1
+ import { getComponentLogger } from '../logging/index.js';
2
+ /**
3
+ * StatusHydrator populates Enhanced proxy status fields with live cluster data
4
+ * after resources are confirmed ready by ResourceReadinessChecker
5
+ */
6
+ export class StatusHydrator {
7
+ k8sApi;
8
+ statusCache = new Map();
9
+ defaultOptions = {
10
+ enableCaching: true,
11
+ cacheTtl: 30000, // 30 seconds
12
+ maxRetries: 3,
13
+ queryTimeout: 10000, // 10 seconds
14
+ };
15
+ mergedOptions;
16
+ logger = getComponentLogger('status-hydrator');
17
+ constructor(k8sApi, options = {}) {
18
+ this.k8sApi = k8sApi;
19
+ this.mergedOptions = { ...this.defaultOptions, ...options };
20
+ }
21
+ /**
22
+ * Hydrate status fields for a single resource
23
+ */
24
+ async hydrateStatus(enhanced, deployedResource) {
25
+ try {
26
+ const resourceId = enhanced.metadata?.name || 'unknown';
27
+ const hydratedFields = [];
28
+ // Create a DeployedResource from Enhanced if not provided
29
+ const resource = deployedResource || {
30
+ id: resourceId,
31
+ kind: enhanced.kind || 'Unknown',
32
+ name: resourceId,
33
+ namespace: enhanced.metadata?.namespace || 'default',
34
+ manifest: enhanced,
35
+ status: 'deployed',
36
+ deployedAt: new Date(),
37
+ };
38
+ const cacheKey = this.getCacheKey(resource);
39
+ // Check cache first if enabled
40
+ if (this.mergedOptions.enableCaching) {
41
+ const cached = this.getFromCache(cacheKey);
42
+ if (cached) {
43
+ // Populate Enhanced proxy with cached data
44
+ this.populateEnhancedStatus(enhanced, cached, hydratedFields);
45
+ return { success: true, resourceId, hydratedFields };
46
+ }
47
+ }
48
+ // Query live status from cluster
49
+ const liveStatus = await this.queryResourceStatus(resource);
50
+ if (!liveStatus) {
51
+ return { success: false, resourceId, hydratedFields: [], error: new Error('Resource not found') };
52
+ }
53
+ // Extract status data
54
+ const status = liveStatus.status;
55
+ if (!status) {
56
+ return { success: false, resourceId, hydratedFields: [], error: new Error('No status found') };
57
+ }
58
+ // Populate Enhanced proxy with live status data
59
+ this.populateEnhancedStatus(enhanced, status, hydratedFields);
60
+ // Cache the result
61
+ if (this.mergedOptions.enableCaching) {
62
+ this.setCache(cacheKey, status);
63
+ }
64
+ return { success: true, resourceId, hydratedFields };
65
+ }
66
+ catch (error) {
67
+ const resourceId = enhanced.metadata?.name || 'unknown';
68
+ this.logger.error('Failed to hydrate status', error, { resourceId });
69
+ return {
70
+ success: false,
71
+ resourceId,
72
+ hydratedFields: [],
73
+ error: error instanceof Error ? error : new Error(String(error))
74
+ };
75
+ }
76
+ }
77
+ /**
78
+ * Hydrate status using already-fetched live resource data
79
+ * This method is used by DirectDeploymentEngine to avoid duplicate API calls
80
+ */
81
+ async hydrateStatusFromLiveData(enhanced, liveResourceData, deployedResource) {
82
+ try {
83
+ const resourceId = enhanced.metadata?.name || 'unknown';
84
+ const hydratedFields = [];
85
+ // Extract status data from pre-fetched live resource
86
+ const status = liveResourceData.status;
87
+ if (!status) {
88
+ return { success: false, resourceId, hydratedFields: [], error: new Error('No status found') };
89
+ }
90
+ // Populate Enhanced proxy with live status data
91
+ this.populateEnhancedStatus(enhanced, status, hydratedFields);
92
+ // Cache the result if caching is enabled
93
+ if (this.mergedOptions.enableCaching) {
94
+ const cacheKey = this.getCacheKey(deployedResource);
95
+ this.setCache(cacheKey, status);
96
+ }
97
+ return { success: true, resourceId, hydratedFields };
98
+ }
99
+ catch (error) {
100
+ const resourceId = enhanced.metadata?.name || 'unknown';
101
+ return {
102
+ success: false,
103
+ resourceId,
104
+ hydratedFields: [],
105
+ error: error instanceof Error ? error : new Error(String(error))
106
+ };
107
+ }
108
+ }
109
+ /**
110
+ * Populate Enhanced proxy status fields with live data
111
+ */
112
+ populateEnhancedStatus(enhanced, status, hydratedFields) {
113
+ const resourceId = enhanced.__resourceId || enhanced.metadata?.name || 'unknown';
114
+ const statusLogger = this.logger.child({ resourceId });
115
+ statusLogger.debug('Populating enhanced status', {
116
+ hasStatus: !!enhanced.status,
117
+ statusFields: Object.keys(status || {})
118
+ });
119
+ // Use type assertion to access the internal status object
120
+ const statusProxy = enhanced.status;
121
+ // Get all keys from the live status object
122
+ const allLiveStatusKeys = Object.keys(status || {});
123
+ for (const field of allLiveStatusKeys) {
124
+ // Check if the field exists on the live status
125
+ if (status[field] !== undefined) {
126
+ try {
127
+ // Assign the value directly to the proxy.
128
+ // The proxy's setter will handle it.
129
+ statusProxy[field] = status[field];
130
+ hydratedFields.push(field);
131
+ statusLogger.debug('Status field hydrated', { field, value: status[field] });
132
+ }
133
+ catch (error) {
134
+ statusLogger.debug('Failed to set status field', { field, error: error.message });
135
+ }
136
+ }
137
+ }
138
+ }
139
+ /**
140
+ * Hydrate all status fields in an Enhanced proxy
141
+ */
142
+ async hydrateEnhancedProxy(enhancedProxy, deployedResources) {
143
+ const proxyName = enhancedProxy.metadata?.name || 'unknown';
144
+ const proxyLogger = this.logger.child({ proxyName });
145
+ try {
146
+ // Find the primary resource for this Enhanced proxy
147
+ const primaryResource = deployedResources.find(r => r.id === enhancedProxy.metadata?.name ||
148
+ r.name === enhancedProxy.metadata?.name);
149
+ if (!primaryResource) {
150
+ proxyLogger.warn('No deployed resource found for Enhanced proxy');
151
+ return;
152
+ }
153
+ // Hydrate the primary resource status
154
+ const result = await this.hydrateStatus(enhancedProxy, primaryResource);
155
+ if (!result.success) {
156
+ proxyLogger.warn('Status hydration failed', { error: result.error?.message });
157
+ }
158
+ }
159
+ catch (error) {
160
+ proxyLogger.error('Failed to hydrate Enhanced proxy status', error);
161
+ }
162
+ }
163
+ /**
164
+ * Query live resource status from the cluster
165
+ */
166
+ async queryResourceStatus(deployedResource) {
167
+ const { manifest, kind, name, namespace } = deployedResource;
168
+ const { apiVersion } = manifest;
169
+ const queryLogger = this.logger.child({ kind, name, namespace });
170
+ if (!name || !namespace) {
171
+ queryLogger.warn('Invalid resource metadata for status query', { resourceId: deployedResource.id });
172
+ return null;
173
+ }
174
+ try {
175
+ // Use the Kubernetes API to get the current resource state
176
+ const response = await this.k8sApi.read({
177
+ apiVersion,
178
+ kind,
179
+ metadata: {
180
+ name,
181
+ namespace,
182
+ },
183
+ });
184
+ return response.body;
185
+ }
186
+ catch (error) {
187
+ const apiError = error;
188
+ if (apiError.statusCode === 404) {
189
+ queryLogger.warn('Resource not found');
190
+ }
191
+ else {
192
+ queryLogger.error('Failed to query resource status', error);
193
+ }
194
+ return null;
195
+ }
196
+ }
197
+ /**
198
+ * Generate cache key for a deployed resource
199
+ */
200
+ getCacheKey(deployedResource) {
201
+ return `${deployedResource.manifest.apiVersion}:${deployedResource.kind}:${deployedResource.namespace}:${deployedResource.name}`;
202
+ }
203
+ /**
204
+ * Get data from cache if valid
205
+ */
206
+ getFromCache(key) {
207
+ const entry = this.statusCache.get(key);
208
+ if (!entry) {
209
+ return null;
210
+ }
211
+ const now = Date.now();
212
+ if (now - entry.timestamp > entry.ttl) {
213
+ this.statusCache.delete(key);
214
+ return null;
215
+ }
216
+ return entry.data;
217
+ }
218
+ /**
219
+ * Set data in cache
220
+ */
221
+ setCache(key, data) {
222
+ this.statusCache.set(key, {
223
+ data,
224
+ timestamp: Date.now(),
225
+ ttl: this.mergedOptions.cacheTtl
226
+ });
227
+ }
228
+ /**
229
+ * Clear the status cache
230
+ */
231
+ clearCache() {
232
+ this.statusCache.clear();
233
+ }
234
+ /**
235
+ * Get cache statistics
236
+ */
237
+ getCacheStats() {
238
+ return {
239
+ size: this.statusCache.size,
240
+ keys: Array.from(this.statusCache.keys())
241
+ };
242
+ }
243
+ }
244
+ /**
245
+ * Hydrates status fields by combining Kro-resolved dynamic fields with static fields
246
+ */
247
+ export async function hydrateStatus(kroStatus, staticFields) {
248
+ // Evaluate static fields (resolve any CEL expressions that don't require Kubernetes resources)
249
+ const evaluatedStaticFields = {};
250
+ for (const [fieldName, fieldValue] of Object.entries(staticFields)) {
251
+ // For now, just use direct values since static fields shouldn't have CEL expressions
252
+ evaluatedStaticFields[fieldName] = fieldValue;
253
+ }
254
+ // Merge Kro-resolved status with evaluated static fields
255
+ // Dynamic fields (from Kro) take precedence over static fields
256
+ const hydratedStatus = {
257
+ ...evaluatedStaticFields,
258
+ ...kroStatus,
259
+ };
260
+ return hydratedStatus;
261
+ }
262
+ //# sourceMappingURL=status-hydrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-hydrator.js","sourceRoot":"","sources":["../../../src/core/deployment/status-hydrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Alchemy Deployment Strategy
3
+ *
4
+ * This module provides the alchemy deployment strategy that wraps deployments
5
+ * in alchemy resources with individual resource registration.
6
+ */
7
+ import type { DeploymentResult, FactoryOptions } from '../../types/deployment.js';
8
+ import type { KroCompatibleType, SchemaDefinition } from '../../types/serialization.js';
9
+ import type { Scope } from '../../types/serialization.js';
10
+ import { BaseDeploymentStrategy, type DeploymentStrategy } from './base-strategy.js';
11
+ /**
12
+ * Alchemy deployment strategy - wraps deployments in alchemy resources with individual resource registration
13
+ *
14
+ * This strategy implements individual resource registration for Direct mode Alchemy integration.
15
+ * Unlike Kro mode which registers RGDs and instances, Direct mode registers each individual
16
+ * Kubernetes resource (Deployment, Service, ConfigMap, etc.) as separate Alchemy resource types.
17
+ *
18
+ * ## Resource Registration Pattern
19
+ *
20
+ * **Direct Mode (this strategy):**
21
+ * - Each individual Kubernetes resource gets its own Alchemy resource type registration
22
+ * - Resource types are named using the pattern `kubernetes::{Kind}` (e.g., `kubernetes::Deployment`)
23
+ * - Each instance of each resource gets a separate Alchemy resource registered
24
+ * - Example: A webapp with Deployment + Service creates 2 Alchemy resource types and 2 resource instances
25
+ *
26
+ * **Kro Mode (for comparison):**
27
+ * - Each RGD gets one Alchemy resource type registered (`kro::ResourceGraphDefinition`)
28
+ * - Each instance of each RGD gets a separate Alchemy resource registered (`kro::{Kind}`)
29
+ * - Example: A webapp RGD creates 1 RGD type + 1 instance type = 2 Alchemy resources total
30
+ *
31
+ * ## Error Handling
32
+ *
33
+ * The strategy implements robust error handling for individual resource failures:
34
+ * - Continues processing remaining resources when individual resources fail
35
+ * - Collects all errors and includes them in the final DeploymentResult
36
+ * - Sets deployment status to 'partial' when some resources succeed and others fail
37
+ * - Provides resource-specific error context including kind, name, namespace, and Alchemy resource type
38
+ *
39
+ * ## Integration with DirectTypeKroDeployer
40
+ *
41
+ * This strategy integrates with DirectTypeKroDeployer for actual resource deployment:
42
+ * - Extracts DirectDeploymentEngine from the base DirectDeploymentStrategy
43
+ * - Creates DirectTypeKroDeployer instance for individual resource deployments
44
+ * - Passes deployer to each Alchemy resource provider for deployment execution
45
+ *
46
+ * @template TSpec - The specification type for the resource
47
+ * @template TStatus - The status type for the resource
48
+ */
49
+ export declare class AlchemyDeploymentStrategy<TSpec extends KroCompatibleType, TStatus extends KroCompatibleType> extends BaseDeploymentStrategy<TSpec, TStatus> {
50
+ private alchemyScope;
51
+ private baseStrategy;
52
+ private logger;
53
+ constructor(factoryName: string, namespace: string, schemaDefinition: SchemaDefinition<TSpec, TStatus>, factoryOptions: FactoryOptions, alchemyScope: Scope, baseStrategy: DeploymentStrategy<TSpec, TStatus>);
54
+ /**
55
+ * Execute deployment with individual resource registration for Alchemy integration
56
+ *
57
+ * This method implements the core logic for Direct mode Alchemy integration:
58
+ *
59
+ * ## Process Overview
60
+ * 1. **Validation**: Validates the Alchemy scope is available and properly configured
61
+ * 2. **Resource Graph Creation**: Gets the resource graph from the base strategy using createResourceGraphForInstance
62
+ * 3. **Deployer Setup**: Creates DirectTypeKroDeployer instance using DirectDeploymentEngine from base strategy
63
+ * 4. **Individual Registration**: Processes each resource in the resource graph individually for Alchemy registration
64
+ * 5. **Error Collection**: Continues processing remaining resources when individual resources fail
65
+ * 6. **Result Creation**: Creates comprehensive DeploymentResult with individual resource tracking
66
+ *
67
+ * ## Individual Resource Processing
68
+ *
69
+ * For each resource in the resource graph:
70
+ * - **Type Inference**: Infers Alchemy resource type from Kubernetes kind (e.g., `kubernetes::Deployment`)
71
+ * - **Type Registration**: Calls ensureResourceTypeRegistered to register the resource type (shared across instances)
72
+ * - **ID Generation**: Creates unique resource ID using createAlchemyResourceId with namespace and resource info
73
+ * - **Deployment**: Deploys the resource through Alchemy using the resource provider and DirectTypeKroDeployer
74
+ * - **Tracking**: Tracks deployed resource with Alchemy metadata (resource ID, type, etc.)
75
+ *
76
+ * ## Error Handling Strategy
77
+ *
78
+ * The method implements robust error handling:
79
+ * - **Continue on Failure**: Individual resource failures don't stop processing of remaining resources
80
+ * - **Error Collection**: All errors are collected with detailed context about which resource failed
81
+ * - **Resource Context**: Error messages include resource kind, name, namespace, and Alchemy resource type
82
+ * - **Partial Status**: Deployment status is set to 'partial' when some resources succeed and others fail
83
+ *
84
+ * ## Resource Type Naming
85
+ *
86
+ * Resource types follow consistent naming patterns:
87
+ * - **Kubernetes Resources**: `kubernetes::{Kind}` (e.g., `kubernetes::Deployment`, `kubernetes::Service`)
88
+ * - **Shared Types**: Multiple instances of the same resource type share the same Alchemy resource type registration
89
+ * - **Unique IDs**: Each resource instance gets a unique Alchemy resource ID for individual tracking
90
+ *
91
+ * @param spec - The resource specification to deploy
92
+ * @param instanceName - The name of this specific instance
93
+ * @returns Promise<DeploymentResult> - Comprehensive deployment result with individual resource tracking
94
+ * @throws Error - If Alchemy scope validation fails or critical deployment errors occur
95
+ */
96
+ protected executeDeployment(spec: TSpec, instanceName: string): Promise<DeploymentResult>;
97
+ protected getStrategyMode(): 'direct' | 'kro';
98
+ /**
99
+ * Create resource graph for instance using base strategy logic
100
+ */
101
+ private createResourceGraphForInstance;
102
+ /**
103
+ * Extract serializable kubeConfig options from factory options
104
+ */
105
+ private extractKubeConfigOptions;
106
+ }
107
+ //# sourceMappingURL=alchemy-strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alchemy-strategy.d.ts","sourceRoot":"","sources":["../../../../src/core/deployment/strategies/alchemy-strategy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAiB,MAAM,2BAA2B,CAAC;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAExF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAKrF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,yBAAyB,CACpC,KAAK,SAAS,iBAAiB,EAC/B,OAAO,SAAS,iBAAiB,CACjC,SAAQ,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC;IAQ5C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IARtB,OAAO,CAAC,MAAM,CAAqD;gBAGjE,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,EAClD,cAAc,EAAE,cAAc,EACtB,YAAY,EAAE,KAAK,EACnB,YAAY,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC;IAK1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;cACa,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsM/F,SAAS,CAAC,eAAe,IAAI,QAAQ,GAAG,KAAK;IAI7C;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAiDtC;;OAEG;IACH,OAAO,CAAC,wBAAwB;CA4JjC"}