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,341 @@
1
+ /**
2
+ * Alchemy-aware Reference Resolver
3
+ *
4
+ * This module provides utilities for handling alchemy promises in resource references
5
+ * and provides deferred resolution capabilities for mixed dependency scenarios.
6
+ */
7
+ import { isCelExpression, isKubernetesRef } from '../utils/type-guards.js';
8
+ import { generateDeterministicResourceId } from '../utils/helpers.js';
9
+ // Alchemy resource symbols for identification
10
+ const ALCHEMY_PROMISE_SYMBOL = Symbol.for('alchemy::promise');
11
+ const RESOURCE_ID_SYMBOL = Symbol.for('alchemy::resourceId');
12
+ const RESOURCE_TYPE_SYMBOL = Symbol.for('alchemy::resourceType');
13
+ const RESOURCE_FQN_SYMBOL = Symbol.for('alchemy::resourceFQN');
14
+ /**
15
+ * Check if a value is an alchemy resource
16
+ */
17
+ export function isAlchemyResource(value) {
18
+ return Boolean(value &&
19
+ typeof value === 'object' &&
20
+ '__alchemyResource' in value &&
21
+ value.__alchemyResource === true);
22
+ }
23
+ /**
24
+ * Check if a value is an alchemy promise/resource
25
+ */
26
+ export function isAlchemyPromise(value) {
27
+ return Boolean(value &&
28
+ typeof value === 'object' &&
29
+ (
30
+ // Check for explicit alchemy promise marker
31
+ ('__alchemyPromise' in value && value.__alchemyPromise === true) ||
32
+ // Check for promise-like interface with alchemy symbols
33
+ ('then' in value &&
34
+ typeof value.then === 'function' &&
35
+ (ALCHEMY_PROMISE_SYMBOL in value ||
36
+ RESOURCE_ID_SYMBOL in value ||
37
+ RESOURCE_TYPE_SYMBOL in value ||
38
+ RESOURCE_FQN_SYMBOL in value))));
39
+ }
40
+ /**
41
+ * Resolve references with alchemy promise awareness
42
+ *
43
+ * @param obj - Object containing references to resolve
44
+ * @param context - Resolution context with alchemy options
45
+ * @returns Resolved object with alchemy promises handled according to context
46
+ */
47
+ export async function resolveReferencesWithAlchemy(obj, context) {
48
+ if (context.deferAlchemyResolution) {
49
+ // Preserve alchemy promises, only resolve TypeKro references
50
+ return resolveTypeKroReferencesOnly(obj, context);
51
+ }
52
+ else {
53
+ // Resolve all references including alchemy promises
54
+ return resolveAllReferences(obj, context);
55
+ }
56
+ }
57
+ /**
58
+ * Resolve only TypeKro references, preserving alchemy promises
59
+ *
60
+ * This is used when building resource graphs that will be processed by alchemy,
61
+ * where alchemy promises should be preserved for later resolution within the
62
+ * alchemy provider context.
63
+ */
64
+ export async function resolveTypeKroReferencesOnly(obj, context) {
65
+ if (obj === null || obj === undefined) {
66
+ return obj;
67
+ }
68
+ // Preserve alchemy promises
69
+ if (isAlchemyPromise(obj)) {
70
+ return obj;
71
+ }
72
+ // For TypeKro references, we would need to use the actual ReferenceResolver
73
+ // For now, just return the object as-is since this is a simplified implementation
74
+ // In a full implementation, this would use the ReferenceResolver
75
+ // Recursively process arrays and objects
76
+ if (Array.isArray(obj)) {
77
+ const objArray = obj;
78
+ const resolved = await Promise.all(objArray.map(item => resolveTypeKroReferencesOnly(item, context)));
79
+ return resolved;
80
+ }
81
+ if (typeof obj === 'object') {
82
+ const resolved = {};
83
+ for (const [key, value] of Object.entries(obj)) {
84
+ resolved[key] = await resolveTypeKroReferencesOnly(value, context);
85
+ }
86
+ return resolved;
87
+ }
88
+ return obj;
89
+ }
90
+ /**
91
+ * Resolve all references including alchemy promises
92
+ *
93
+ * This is used within alchemy provider contexts where all references
94
+ * should be fully resolved to their final values.
95
+ */
96
+ export async function resolveAllReferences(obj, context) {
97
+ if (obj === null || obj === undefined) {
98
+ return obj;
99
+ }
100
+ // Resolve alchemy promises
101
+ if (isAlchemyPromise(obj)) {
102
+ return resolveAlchemyPromise(obj, context);
103
+ }
104
+ // For TypeKro references, we would use the ReferenceResolver here
105
+ // For now, just handle arrays and objects recursively
106
+ // Recursively process arrays and objects
107
+ if (Array.isArray(obj)) {
108
+ const objArray = obj;
109
+ const resolved = await Promise.all(objArray.map(item => resolveAllReferences(item, context)));
110
+ return resolved;
111
+ }
112
+ if (typeof obj === 'object') {
113
+ const resolved = {};
114
+ for (const [key, value] of Object.entries(obj)) {
115
+ resolved[key] = await resolveAllReferences(value, context);
116
+ }
117
+ return resolved;
118
+ }
119
+ return obj;
120
+ }
121
+ /**
122
+ * Resolve an alchemy promise to its final value
123
+ */
124
+ export async function resolveAlchemyPromise(promise, context) {
125
+ // Check cache first
126
+ const resourceId = getAlchemyResourceId(promise);
127
+ if (context.alchemyResourceCache?.has(resourceId)) {
128
+ return context.alchemyResourceCache.get(resourceId);
129
+ }
130
+ try {
131
+ // Await the alchemy promise to get the resolved resource
132
+ const resolvedResource = await promise;
133
+ // Cache the resolved value
134
+ if (!context.alchemyResourceCache) {
135
+ context.alchemyResourceCache = new Map();
136
+ }
137
+ context.alchemyResourceCache.set(resourceId, resolvedResource);
138
+ return resolvedResource;
139
+ }
140
+ catch (error) {
141
+ throw new Error(`Failed to resolve alchemy resource ${resourceId}: ${error instanceof Error ? error.message : String(error)}`);
142
+ }
143
+ }
144
+ /**
145
+ * Get a deterministic identifier for an alchemy resource
146
+ */
147
+ function getAlchemyResourceId(resource) {
148
+ // Try to get the resource ID from alchemy symbols
149
+ if (RESOURCE_ID_SYMBOL in resource) {
150
+ return resource[RESOURCE_ID_SYMBOL];
151
+ }
152
+ if (RESOURCE_FQN_SYMBOL in resource) {
153
+ return resource[RESOURCE_FQN_SYMBOL];
154
+ }
155
+ // For alchemy promises, try to get the resourceId property
156
+ if ('resourceId' in resource && typeof resource.resourceId === 'string') {
157
+ return resource.resourceId;
158
+ }
159
+ // Try to extract kind and name from the resource for deterministic ID
160
+ const kind = RESOURCE_TYPE_SYMBOL in resource ? resource[RESOURCE_TYPE_SYMBOL] :
161
+ ('resourceType' in resource && typeof resource.resourceType === 'string') ? resource.resourceType : 'Resource';
162
+ // Try to get name from resource metadata or properties
163
+ let name = 'unknown';
164
+ if (resource && typeof resource === 'object') {
165
+ const resourceObj = resource;
166
+ if (resourceObj.metadata?.name) {
167
+ name = resourceObj.metadata.name;
168
+ }
169
+ else if (resourceObj.name) {
170
+ name = resourceObj.name;
171
+ }
172
+ else if (resourceObj.id) {
173
+ name = resourceObj.id;
174
+ }
175
+ }
176
+ // Use the same deterministic ID generation as TypeKro resources
177
+ try {
178
+ return generateDeterministicResourceId(kind, name);
179
+ }
180
+ catch (_error) {
181
+ // Fallback to a simple deterministic approach if generation fails
182
+ const cleanKind = kind.toLowerCase().replace(/[^a-zA-Z0-9]/g, '');
183
+ const cleanName = name.toLowerCase().replace(/[^a-zA-Z0-9]/g, '');
184
+ return `${cleanKind}-${cleanName}`;
185
+ }
186
+ }
187
+ /**
188
+ * Build a resource graph with deferred alchemy resolution
189
+ *
190
+ * This creates a resource graph where alchemy promises are preserved,
191
+ * allowing them to be resolved later within the alchemy provider context.
192
+ */
193
+ export async function buildResourceGraphWithDeferredResolution(resources, context) {
194
+ const deferredContext = {
195
+ ...context,
196
+ deferAlchemyResolution: true,
197
+ };
198
+ const resolvedResources = {};
199
+ for (const [key, resource] of Object.entries(resources)) {
200
+ resolvedResources[key] = await resolveReferencesWithAlchemy(resource, deferredContext);
201
+ }
202
+ return resolvedResources;
203
+ }
204
+ /**
205
+ * Resolve all references within an alchemy provider context
206
+ *
207
+ * This fully resolves all references including alchemy promises,
208
+ * typically used within alchemy resource providers.
209
+ */
210
+ export async function resolveAllReferencesInAlchemyContext(resources, context) {
211
+ const fullResolutionContext = {
212
+ ...context,
213
+ deferAlchemyResolution: false,
214
+ };
215
+ const resolvedResources = {};
216
+ for (const [key, resource] of Object.entries(resources)) {
217
+ resolvedResources[key] = await resolveReferencesWithAlchemy(resource, fullResolutionContext);
218
+ }
219
+ return resolvedResources;
220
+ }
221
+ /**
222
+ * Check if an object contains any alchemy promises
223
+ */
224
+ export function containsAlchemyPromises(obj) {
225
+ if (obj === null || obj === undefined) {
226
+ return false;
227
+ }
228
+ if (isAlchemyPromise(obj)) {
229
+ return true;
230
+ }
231
+ if (Array.isArray(obj)) {
232
+ const objArray = obj;
233
+ return objArray.some(item => containsAlchemyPromises(item));
234
+ }
235
+ if (typeof obj === 'object') {
236
+ return Object.values(obj).some(value => containsAlchemyPromises(value));
237
+ }
238
+ return false;
239
+ }
240
+ /**
241
+ * Extract all alchemy promises from an object
242
+ */
243
+ export function extractAlchemyPromises(obj) {
244
+ const promises = [];
245
+ const extract = (value) => {
246
+ if (value === null || value === undefined) {
247
+ return;
248
+ }
249
+ if (isAlchemyPromise(value)) {
250
+ promises.push(value);
251
+ return;
252
+ }
253
+ if (Array.isArray(value)) {
254
+ const valueArray = value;
255
+ valueArray.forEach(extract);
256
+ return;
257
+ }
258
+ if (typeof value === 'object') {
259
+ Object.values(value).forEach(extract);
260
+ }
261
+ };
262
+ extract(obj);
263
+ return promises;
264
+ }
265
+ /**
266
+ * Create an alchemy-aware reference resolver context
267
+ */
268
+ export function createAlchemyReferenceResolver() {
269
+ return {
270
+ deployedResources: [],
271
+ kubeClient: {}, // Would be properly initialized in real usage
272
+ deferAlchemyResolution: false,
273
+ alchemyResourceCache: new Map(),
274
+ };
275
+ }
276
+ /**
277
+ * Utility function to check if a resource graph contains mixed dependencies
278
+ * (both alchemy promises and TypeKro references)
279
+ */
280
+ export function hasMixedDependencies(resources) {
281
+ let hasAlchemyPromises = false;
282
+ let hasTypeKroReferences = false;
283
+ for (const resource of Object.values(resources)) {
284
+ if (containsAlchemyPromises(resource)) {
285
+ hasAlchemyPromises = true;
286
+ }
287
+ // Check for TypeKro references using proper type guards
288
+ const hasTypeKroRefs = hasTypeKroReferencesRecursive(resource);
289
+ if (hasTypeKroRefs) {
290
+ hasTypeKroReferences = true;
291
+ }
292
+ }
293
+ return hasAlchemyPromises && hasTypeKroReferences;
294
+ }
295
+ /**
296
+ * Recursively check if an object contains TypeKro references
297
+ */
298
+ function hasTypeKroReferencesRecursive(obj) {
299
+ if (isKubernetesRef(obj) || isCelExpression(obj)) {
300
+ return true;
301
+ }
302
+ if (Array.isArray(obj)) {
303
+ return obj.some(item => hasTypeKroReferencesRecursive(item));
304
+ }
305
+ if (obj && typeof obj === 'object') {
306
+ return Object.values(obj).some(value => hasTypeKroReferencesRecursive(value));
307
+ }
308
+ return false;
309
+ }
310
+ /**
311
+ * Create a deterministic alchemy resource configuration from a Kubernetes resource
312
+ * This ensures alchemy resources have consistent IDs and types that match the Kubernetes resource
313
+ */
314
+ export function createAlchemyResourceConfig(kubernetesResource, resourceId) {
315
+ const kind = kubernetesResource.kind || 'Resource';
316
+ const name = kubernetesResource.metadata?.name || 'unnamed';
317
+ // Use provided resourceId or generate deterministic one
318
+ const id = resourceId || generateDeterministicResourceId(kind, name);
319
+ // Type should match the Kubernetes kind for consistency
320
+ const type = kind;
321
+ return {
322
+ id,
323
+ type,
324
+ config: kubernetesResource,
325
+ };
326
+ }
327
+ /**
328
+ * Create multiple alchemy resource configurations from a resource graph
329
+ * This ensures all resources in a graph have consistent, deterministic IDs
330
+ */
331
+ export function createAlchemyResourceConfigs(resources) {
332
+ const configs = {};
333
+ for (const [resourceKey, kubernetesResource] of Object.entries(resources)) {
334
+ // Use the resource key as the base for ID generation if no explicit ID
335
+ const kind = kubernetesResource.kind || 'Resource';
336
+ const name = kubernetesResource.metadata?.name || resourceKey;
337
+ configs[resourceKey] = createAlchemyResourceConfig(kubernetesResource, generateDeterministicResourceId(kind, name));
338
+ }
339
+ return configs;
340
+ }
341
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/alchemy/resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Alchemy Resource Type Registration
3
+ *
4
+ * This module handles dynamic resource type registration for TypeKro
5
+ * resources with alchemy's resource management system.
6
+ *
7
+ * Uses ensureResourceTypeRegistered() to avoid "Resource already exists" errors
8
+ * and provides centralized type registration logic.
9
+ */
10
+ import type { Enhanced } from '../core/types/kubernetes.js';
11
+ /**
12
+ * Dynamic registration function with full type safety
13
+ *
14
+ * This function ensures each resource type is registered only once,
15
+ * avoiding "Resource already exists" errors while maintaining type safety.
16
+ */
17
+ export declare function ensureResourceTypeRegistered<T extends Enhanced<unknown, unknown>>(resource: T): any;
18
+ /**
19
+ * Clear the registered types cache (useful for testing)
20
+ */
21
+ export declare function clearRegisteredTypes(): void;
22
+ //# sourceMappingURL=resource-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-registration.d.ts","sourceRoot":"","sources":["../../src/alchemy/resource-registration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAS5D;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7E,QAAQ,EAAE,CAAC,GACZ,GAAG,CAiEL;AAsLD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Alchemy Resource Type Registration
3
+ *
4
+ * This module handles dynamic resource type registration for TypeKro
5
+ * resources with alchemy's resource management system.
6
+ *
7
+ * Uses ensureResourceTypeRegistered() to avoid "Resource already exists" errors
8
+ * and provides centralized type registration logic.
9
+ */
10
+ import { Resource, PROVIDERS } from 'alchemy';
11
+ import { getComponentLogger } from '../core/logging/index.js';
12
+ import { createKubernetesClientProvider, } from '../core/kubernetes/client-provider.js';
13
+ import { DirectTypeKroDeployer, KroTypeKroDeployer } from './deployers.js';
14
+ import { inferAlchemyTypeFromTypeKroResource } from './type-inference.js';
15
+ // Global registry to track registered resource types
16
+ const REGISTERED_TYPES = new Map();
17
+ /**
18
+ * Dynamic registration function with full type safety
19
+ *
20
+ * This function ensures each resource type is registered only once,
21
+ * avoiding "Resource already exists" errors while maintaining type safety.
22
+ */
23
+ export function ensureResourceTypeRegistered(resource) {
24
+ const alchemyType = inferAlchemyTypeFromTypeKroResource(resource);
25
+ // Check if already registered in our local cache
26
+ if (REGISTERED_TYPES.has(alchemyType)) {
27
+ return REGISTERED_TYPES.get(alchemyType);
28
+ }
29
+ // Check if already registered in alchemy's global registry
30
+ if (PROVIDERS.has(alchemyType)) {
31
+ const existingProvider = PROVIDERS.get(alchemyType);
32
+ REGISTERED_TYPES.set(alchemyType, existingProvider);
33
+ return existingProvider;
34
+ }
35
+ // Register new resource type following alchemy's pseudo-class pattern
36
+ const ResourceProvider = Resource(alchemyType, async function (_id, props) {
37
+ const alchemyLogger = getComponentLogger('alchemy-deployment').child({ alchemyType });
38
+ // Log the context details for debugging
39
+ alchemyLogger.debug('Alchemy resource handler called', {
40
+ alchemyType,
41
+ resourceId: _id,
42
+ phase: this.phase,
43
+ contextId: this.id,
44
+ contextFqn: this.fqn,
45
+ resourceKind: props.resource.kind,
46
+ resourceName: props.resource.metadata?.name,
47
+ });
48
+ // Handle deletion phase
49
+ if (this.phase === 'delete') {
50
+ return await _handleResourceDeletion(this, props, alchemyLogger);
51
+ }
52
+ try {
53
+ // Create kubeconfig and deployer using centralized provider
54
+ const kc = _createClientProvider(props, 'deployment');
55
+ const deployer = await _createDeployer(kc, props.deploymentStrategy);
56
+ // Deploy resource and create result
57
+ const { resourceProperties } = await _deployAndCreateResult(props, deployer);
58
+ // Log deployment success
59
+ _logDeploymentSuccess(alchemyLogger, alchemyType, props, resourceProperties, this);
60
+ // Execute Alchemy context function
61
+ return _executeAlchemyContext(this, resourceProperties, alchemyLogger, alchemyType);
62
+ }
63
+ catch (error) {
64
+ alchemyLogger.error('Error deploying resource through Alchemy', error);
65
+ throw error;
66
+ }
67
+ });
68
+ // Cache the registered provider
69
+ REGISTERED_TYPES.set(alchemyType, ResourceProvider);
70
+ return ResourceProvider;
71
+ }
72
+ /**
73
+ * Create KubernetesClientProvider using centralized configuration management
74
+ * Eliminates complex multi-stage fallback logic and consolidates TLS handling
75
+ */
76
+ function _createClientProvider(props, phase) {
77
+ const alchemyLogger = getComponentLogger('alchemy-deployment');
78
+ alchemyLogger.debug(`Creating KubernetesClientProvider for alchemy handler (${phase} phase)`, {
79
+ hasKubeConfigOptions: !!props.kubeConfigOptions,
80
+ skipTLSVerify: props.kubeConfigOptions?.skipTLSVerify,
81
+ hasCluster: !!props.kubeConfigOptions?.cluster,
82
+ hasUser: !!props.kubeConfigOptions?.user,
83
+ });
84
+ // Use the centralized KubernetesClientProvider with the provided configuration
85
+ const clientProvider = createKubernetesClientProvider(props.kubeConfigOptions);
86
+ // Get the configured KubeConfig from the provider
87
+ const kubeConfig = clientProvider.getKubeConfig();
88
+ alchemyLogger.debug(`KubernetesClientProvider created successfully (${phase} phase)`, {
89
+ currentContext: kubeConfig.getCurrentContext(),
90
+ server: kubeConfig.getCurrentCluster()?.server,
91
+ skipTLSVerify: kubeConfig.getCurrentCluster()?.skipTLSVerify,
92
+ });
93
+ return kubeConfig;
94
+ }
95
+ /**
96
+ * Create the appropriate deployer based on the deployment strategy
97
+ */
98
+ async function _createDeployer(kc, strategy) {
99
+ // Use dynamic import to avoid circular dependencies
100
+ const { DirectDeploymentEngine } = await import('../core/deployment/engine.js');
101
+ const engine = new DirectDeploymentEngine(kc);
102
+ if (strategy === 'direct') {
103
+ return new DirectTypeKroDeployer(engine);
104
+ }
105
+ else {
106
+ return new KroTypeKroDeployer(engine);
107
+ }
108
+ }
109
+ /**
110
+ * Handle resource deletion phase
111
+ */
112
+ async function _handleResourceDeletion(context, props, logger) {
113
+ try {
114
+ const kc = _createClientProvider(props, 'delete');
115
+ const deployer = await _createDeployer(kc, props.deploymentStrategy);
116
+ await deployer.delete(props.resource, {
117
+ mode: 'alchemy',
118
+ namespace: props.namespace,
119
+ ...props.options
120
+ });
121
+ }
122
+ catch (error) {
123
+ logger.error('Error deleting resource', error);
124
+ }
125
+ return context.destroy();
126
+ }
127
+ /**
128
+ * Deploy resource and create deployment result
129
+ */
130
+ async function _deployAndCreateResult(props, deployer) {
131
+ // Deploy using the created deployer - pass the original resource with KubernetesRef objects
132
+ // The deployer will handle reference resolution internally
133
+ const deployedResource = await deployer.deploy(props.resource, {
134
+ mode: 'alchemy',
135
+ namespace: props.namespace,
136
+ waitForReady: props.options?.waitForReady ?? true,
137
+ timeout: props.options?.timeout ?? 300000,
138
+ });
139
+ // Create clean, serializable versions for Alchemy storage
140
+ // Only serialize the data that Alchemy needs to store, not the functional parts
141
+ const cleanResource = JSON.parse(JSON.stringify(props.resource));
142
+ const cleanDeployedResource = JSON.parse(JSON.stringify(deployedResource));
143
+ // Create the resource properties for Alchemy
144
+ const resourceProperties = {
145
+ resource: cleanResource,
146
+ namespace: props.namespace,
147
+ deployedResource: cleanDeployedResource,
148
+ ready: true,
149
+ deployedAt: Date.now(),
150
+ };
151
+ return { resourceProperties };
152
+ }
153
+ /**
154
+ * Log deployment success and context details
155
+ */
156
+ function _logDeploymentSuccess(logger, alchemyType, props, resourceProperties, context) {
157
+ // Log successful deployment
158
+ logger.debug('Successfully deployed resource through Alchemy', {
159
+ alchemyType,
160
+ resourceKind: props.resource.kind,
161
+ resourceName: props.resource.metadata?.name,
162
+ namespace: props.namespace,
163
+ resourceProperties: {
164
+ hasResource: !!resourceProperties.resource,
165
+ hasNamespace: !!resourceProperties.namespace,
166
+ hasDeployedResource: !!resourceProperties.deployedResource,
167
+ ready: resourceProperties.ready,
168
+ deployedAt: resourceProperties.deployedAt,
169
+ },
170
+ });
171
+ // Log the exact data we're about to pass to Alchemy's context function
172
+ logger.debug('About to call Alchemy context function', {
173
+ alchemyType,
174
+ contextPhase: context.phase,
175
+ contextId: context.id,
176
+ contextFqn: context.fqn,
177
+ resourcePropertiesKeys: Object.keys(resourceProperties),
178
+ resourcePropertiesStringified: JSON.stringify(resourceProperties, (_key, value) => {
179
+ // Handle circular references and complex objects
180
+ if (typeof value === 'object' && value !== null) {
181
+ if (value.constructor && value.constructor.name !== 'Object') {
182
+ return `[${value.constructor.name}]`;
183
+ }
184
+ }
185
+ return value;
186
+ }, 2),
187
+ });
188
+ }
189
+ /**
190
+ * Execute Alchemy context function with proper error handling
191
+ */
192
+ function _executeAlchemyContext(context, resourceProperties, logger, alchemyType) {
193
+ try {
194
+ const result = context(resourceProperties);
195
+ logger.debug('Alchemy context function returned successfully', {
196
+ alchemyType,
197
+ resultType: typeof result,
198
+ resultKeys: result ? Object.keys(result) : [],
199
+ hasAlchemySymbols: result ? Object.getOwnPropertySymbols(result).length > 0 : false,
200
+ });
201
+ return result;
202
+ }
203
+ catch (contextError) {
204
+ logger.error('Alchemy context function failed', contextError, {
205
+ alchemyType,
206
+ errorMessage: contextError.message,
207
+ errorStack: contextError.stack,
208
+ });
209
+ throw contextError;
210
+ }
211
+ }
212
+ /**
213
+ * Clear the registered types cache (useful for testing)
214
+ */
215
+ export function clearRegisteredTypes() {
216
+ REGISTERED_TYPES.clear();
217
+ }
218
+ //# sourceMappingURL=resource-registration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-registration.js","sourceRoot":"","sources":["../../src/alchemy/resource-registration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Alchemy Type Inference
3
+ *
4
+ * This module provides type-safe inference functions that determine
5
+ * alchemy resource types from TypeKro resources with proper validation.
6
+ */
7
+ import type { Enhanced } from '../core/types/kubernetes.js';
8
+ /**
9
+ * Type-safe inference function that determines alchemy type from TypeKro resource
10
+ * Enhanced to handle individual Kubernetes resources with proper validation
11
+ */
12
+ export declare function inferAlchemyTypeFromTypeKroResource<T extends Enhanced<any, any>>(resource: T): string;
13
+ //# sourceMappingURL=type-inference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-inference.d.ts","sourceRoot":"","sources":["../../src/alchemy/type-inference.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AA6C5D;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAC5E,QAAQ,EAAE,CAAC,GACZ,MAAM,CAsBR"}