typekro 0.8.0 → 0.10.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 (557) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/alchemy/deployers.d.ts +16 -1
  3. package/dist/alchemy/deployers.d.ts.map +1 -1
  4. package/dist/alchemy/deployers.js +131 -18
  5. package/dist/alchemy/deployers.js.map +1 -1
  6. package/dist/alchemy/deployment.d.ts +1 -1
  7. package/dist/alchemy/deployment.d.ts.map +1 -1
  8. package/dist/alchemy/deployment.js +1 -1
  9. package/dist/alchemy/deployment.js.map +1 -1
  10. package/dist/alchemy/kro-delete.d.ts +66 -0
  11. package/dist/alchemy/kro-delete.d.ts.map +1 -0
  12. package/dist/alchemy/kro-delete.js +183 -0
  13. package/dist/alchemy/kro-delete.js.map +1 -0
  14. package/dist/alchemy/resource-registration.d.ts +16 -0
  15. package/dist/alchemy/resource-registration.d.ts.map +1 -1
  16. package/dist/alchemy/resource-registration.js +138 -24
  17. package/dist/alchemy/resource-registration.js.map +1 -1
  18. package/dist/alchemy/types.d.ts +8 -4
  19. package/dist/alchemy/types.d.ts.map +1 -1
  20. package/dist/aspects.d.ts +3 -0
  21. package/dist/aspects.d.ts.map +1 -0
  22. package/dist/aspects.js +2 -0
  23. package/dist/aspects.js.map +1 -0
  24. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts +1 -1
  25. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts.map +1 -1
  26. package/dist/compositions/typekro-runtime/typekro-runtime.js +27 -9
  27. package/dist/compositions/typekro-runtime/typekro-runtime.js.map +1 -1
  28. package/dist/core/aspects/apply.d.ts +30 -0
  29. package/dist/core/aspects/apply.d.ts.map +1 -0
  30. package/dist/core/aspects/apply.js +369 -0
  31. package/dist/core/aspects/apply.js.map +1 -0
  32. package/dist/core/aspects/dev-aspects.d.ts +14 -0
  33. package/dist/core/aspects/dev-aspects.d.ts.map +1 -0
  34. package/dist/core/aspects/dev-aspects.js +70 -0
  35. package/dist/core/aspects/dev-aspects.js.map +1 -0
  36. package/dist/core/aspects/index.d.ts +31 -0
  37. package/dist/core/aspects/index.d.ts.map +1 -0
  38. package/dist/core/aspects/index.js +30 -0
  39. package/dist/core/aspects/index.js.map +1 -0
  40. package/dist/core/aspects/metadata-aspects.d.ts +12 -0
  41. package/dist/core/aspects/metadata-aspects.d.ts.map +1 -0
  42. package/dist/core/aspects/metadata-aspects.js +24 -0
  43. package/dist/core/aspects/metadata-aspects.js.map +1 -0
  44. package/dist/core/aspects/metadata.d.ts +16 -0
  45. package/dist/core/aspects/metadata.d.ts.map +1 -0
  46. package/dist/core/aspects/metadata.js +24 -0
  47. package/dist/core/aspects/metadata.js.map +1 -0
  48. package/dist/core/aspects/primitives.d.ts +23 -0
  49. package/dist/core/aspects/primitives.d.ts.map +1 -0
  50. package/dist/core/aspects/primitives.js +258 -0
  51. package/dist/core/aspects/primitives.js.map +1 -0
  52. package/dist/core/aspects/targets.d.ts +9 -0
  53. package/dist/core/aspects/targets.d.ts.map +1 -0
  54. package/dist/core/aspects/targets.js +23 -0
  55. package/dist/core/aspects/targets.js.map +1 -0
  56. package/dist/core/aspects/types.d.ts +361 -0
  57. package/dist/core/aspects/types.d.ts.map +1 -0
  58. package/dist/core/aspects/types.js +16 -0
  59. package/dist/core/aspects/types.js.map +1 -0
  60. package/dist/core/aspects/workload-aspects.d.ts +17 -0
  61. package/dist/core/aspects/workload-aspects.d.ts.map +1 -0
  62. package/dist/core/aspects/workload-aspects.js +40 -0
  63. package/dist/core/aspects/workload-aspects.js.map +1 -0
  64. package/dist/core/composition/context.d.ts +58 -2
  65. package/dist/core/composition/context.d.ts.map +1 -1
  66. package/dist/core/composition/context.js +4 -0
  67. package/dist/core/composition/context.js.map +1 -1
  68. package/dist/core/composition/imperative.d.ts +9 -0
  69. package/dist/core/composition/imperative.d.ts.map +1 -1
  70. package/dist/core/composition/imperative.js +538 -54
  71. package/dist/core/composition/imperative.js.map +1 -1
  72. package/dist/core/composition/nested-status-cel.d.ts +34 -1
  73. package/dist/core/composition/nested-status-cel.d.ts.map +1 -1
  74. package/dist/core/composition/nested-status-cel.js +379 -41
  75. package/dist/core/composition/nested-status-cel.js.map +1 -1
  76. package/dist/core/composition-debugger.d.ts +1 -1
  77. package/dist/core/composition-debugger.d.ts.map +1 -1
  78. package/dist/core/composition-debugger.js.map +1 -1
  79. package/dist/core/constants/brands.d.ts +1 -1
  80. package/dist/core/constants/brands.d.ts.map +1 -1
  81. package/dist/core/constants/brands.js +1 -1
  82. package/dist/core/constants/brands.js.map +1 -1
  83. package/dist/core/containers/build.d.ts.map +1 -1
  84. package/dist/core/containers/build.js +40 -12
  85. package/dist/core/containers/build.js.map +1 -1
  86. package/dist/core/dependencies/resolver.d.ts +19 -0
  87. package/dist/core/dependencies/resolver.d.ts.map +1 -1
  88. package/dist/core/dependencies/resolver.js +261 -1
  89. package/dist/core/dependencies/resolver.js.map +1 -1
  90. package/dist/core/deployment/client-provider-manager.d.ts +9 -3
  91. package/dist/core/deployment/client-provider-manager.d.ts.map +1 -1
  92. package/dist/core/deployment/client-provider-manager.js +12 -0
  93. package/dist/core/deployment/client-provider-manager.js.map +1 -1
  94. package/dist/core/deployment/crd-manager.d.ts +24 -0
  95. package/dist/core/deployment/crd-manager.d.ts.map +1 -1
  96. package/dist/core/deployment/crd-manager.js +79 -1
  97. package/dist/core/deployment/crd-manager.js.map +1 -1
  98. package/dist/core/deployment/deployment-state-discovery.d.ts +116 -0
  99. package/dist/core/deployment/deployment-state-discovery.d.ts.map +1 -0
  100. package/dist/core/deployment/deployment-state-discovery.js +400 -0
  101. package/dist/core/deployment/deployment-state-discovery.js.map +1 -0
  102. package/dist/core/deployment/direct-factory.d.ts +65 -6
  103. package/dist/core/deployment/direct-factory.d.ts.map +1 -1
  104. package/dist/core/deployment/direct-factory.js +584 -62
  105. package/dist/core/deployment/direct-factory.js.map +1 -1
  106. package/dist/core/deployment/engine.d.ts +64 -3
  107. package/dist/core/deployment/engine.d.ts.map +1 -1
  108. package/dist/core/deployment/engine.js +194 -27
  109. package/dist/core/deployment/engine.js.map +1 -1
  110. package/dist/core/deployment/event-filter.js +1 -1
  111. package/dist/core/deployment/event-filter.js.map +1 -1
  112. package/dist/core/deployment/event-monitor.d.ts +11 -0
  113. package/dist/core/deployment/event-monitor.d.ts.map +1 -1
  114. package/dist/core/deployment/event-monitor.js +14 -0
  115. package/dist/core/deployment/event-monitor.js.map +1 -1
  116. package/dist/core/deployment/handle-tracing.d.ts +14 -0
  117. package/dist/core/deployment/handle-tracing.d.ts.map +1 -0
  118. package/dist/core/deployment/handle-tracing.js +38 -0
  119. package/dist/core/deployment/handle-tracing.js.map +1 -0
  120. package/dist/core/deployment/kro-factory.d.ts +115 -3
  121. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  122. package/dist/core/deployment/kro-factory.js +922 -278
  123. package/dist/core/deployment/kro-factory.js.map +1 -1
  124. package/dist/core/deployment/kro-readiness.d.ts.map +1 -1
  125. package/dist/core/deployment/kro-readiness.js +21 -12
  126. package/dist/core/deployment/kro-readiness.js.map +1 -1
  127. package/dist/core/deployment/nested-composition-status.d.ts +1 -1
  128. package/dist/core/deployment/nested-composition-status.d.ts.map +1 -1
  129. package/dist/core/deployment/nested-composition-status.js +96 -53
  130. package/dist/core/deployment/nested-composition-status.js.map +1 -1
  131. package/dist/core/deployment/resource-applier.d.ts +15 -2
  132. package/dist/core/deployment/resource-applier.d.ts.map +1 -1
  133. package/dist/core/deployment/resource-applier.js +75 -25
  134. package/dist/core/deployment/resource-applier.js.map +1 -1
  135. package/dist/core/deployment/resource-tagging.d.ts +220 -0
  136. package/dist/core/deployment/resource-tagging.d.ts.map +1 -0
  137. package/dist/core/deployment/resource-tagging.js +292 -0
  138. package/dist/core/deployment/resource-tagging.js.map +1 -0
  139. package/dist/core/deployment/rollback-manager.d.ts +25 -4
  140. package/dist/core/deployment/rollback-manager.d.ts.map +1 -1
  141. package/dist/core/deployment/rollback-manager.js +70 -57
  142. package/dist/core/deployment/rollback-manager.js.map +1 -1
  143. package/dist/core/deployment/shared-utilities.d.ts +6 -0
  144. package/dist/core/deployment/shared-utilities.d.ts.map +1 -1
  145. package/dist/core/deployment/shared-utilities.js +32 -2
  146. package/dist/core/deployment/shared-utilities.js.map +1 -1
  147. package/dist/core/deployment/singleton-owner-drift.d.ts +16 -0
  148. package/dist/core/deployment/singleton-owner-drift.d.ts.map +1 -0
  149. package/dist/core/deployment/singleton-owner-drift.js +54 -0
  150. package/dist/core/deployment/singleton-owner-drift.js.map +1 -0
  151. package/dist/core/deployment/strategies/alchemy-strategy.d.ts +3 -1
  152. package/dist/core/deployment/strategies/alchemy-strategy.d.ts.map +1 -1
  153. package/dist/core/deployment/strategies/alchemy-strategy.js +121 -18
  154. package/dist/core/deployment/strategies/alchemy-strategy.js.map +1 -1
  155. package/dist/core/deployment/strategies/base-strategy.d.ts +9 -3
  156. package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
  157. package/dist/core/deployment/strategies/base-strategy.js +32 -4
  158. package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
  159. package/dist/core/deployment/strategies/direct-strategy.d.ts +12 -4
  160. package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -1
  161. package/dist/core/deployment/strategies/direct-strategy.js +112 -8
  162. package/dist/core/deployment/strategies/direct-strategy.js.map +1 -1
  163. package/dist/core/errors.d.ts +2 -2
  164. package/dist/core/errors.d.ts.map +1 -1
  165. package/dist/core/errors.js.map +1 -1
  166. package/dist/core/expressions/analysis/cache.d.ts +2 -2
  167. package/dist/core/expressions/analysis/cache.d.ts.map +1 -1
  168. package/dist/core/expressions/analysis/cache.js +4 -0
  169. package/dist/core/expressions/analysis/cache.js.map +1 -1
  170. package/dist/core/expressions/analysis/fn-toString-self-test.d.ts.map +1 -1
  171. package/dist/core/expressions/analysis/fn-toString-self-test.js +0 -1
  172. package/dist/core/expressions/analysis/fn-toString-self-test.js.map +1 -1
  173. package/dist/core/expressions/analysis/shared-types.d.ts +2 -2
  174. package/dist/core/expressions/analysis/shared-types.d.ts.map +1 -1
  175. package/dist/core/expressions/analysis/source-map.d.ts.map +1 -1
  176. package/dist/core/expressions/analysis/source-map.js +1 -0
  177. package/dist/core/expressions/analysis/source-map.js.map +1 -1
  178. package/dist/core/expressions/analysis/types.d.ts +7 -7
  179. package/dist/core/expressions/analysis/types.d.ts.map +1 -1
  180. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts +29 -1
  181. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts.map +1 -1
  182. package/dist/core/expressions/composition/composition-analyzer-helpers.js +348 -17
  183. package/dist/core/expressions/composition/composition-analyzer-helpers.js.map +1 -1
  184. package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts +2 -2
  185. package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts.map +1 -1
  186. package/dist/core/expressions/composition/composition-analyzer-ternary.js +221 -10
  187. package/dist/core/expressions/composition/composition-analyzer-ternary.js.map +1 -1
  188. package/dist/core/expressions/composition/composition-analyzer-traversal.d.ts.map +1 -1
  189. package/dist/core/expressions/composition/composition-analyzer-traversal.js +67 -2
  190. package/dist/core/expressions/composition/composition-analyzer-traversal.js.map +1 -1
  191. package/dist/core/expressions/composition/composition-analyzer-types.d.ts +52 -0
  192. package/dist/core/expressions/composition/composition-analyzer-types.d.ts.map +1 -1
  193. package/dist/core/expressions/composition/composition-analyzer.d.ts.map +1 -1
  194. package/dist/core/expressions/composition/composition-analyzer.js +150 -6
  195. package/dist/core/expressions/composition/composition-analyzer.js.map +1 -1
  196. package/dist/core/expressions/composition/expression-analyzer.d.ts.map +1 -1
  197. package/dist/core/expressions/composition/expression-analyzer.js +21 -4
  198. package/dist/core/expressions/composition/expression-analyzer.js.map +1 -1
  199. package/dist/core/expressions/composition/imperative-analyzer.d.ts +1 -1
  200. package/dist/core/expressions/composition/imperative-analyzer.d.ts.map +1 -1
  201. package/dist/core/expressions/composition/imperative-analyzer.js +31 -7
  202. package/dist/core/expressions/composition/imperative-analyzer.js.map +1 -1
  203. package/dist/core/expressions/composition/scope-manager.d.ts +2 -2
  204. package/dist/core/expressions/composition/scope-manager.d.ts.map +1 -1
  205. package/dist/core/expressions/composition/scope-manager.js.map +1 -1
  206. package/dist/core/expressions/conditional/conditional-expression-processor.d.ts +3 -3
  207. package/dist/core/expressions/conditional/conditional-expression-processor.d.ts.map +1 -1
  208. package/dist/core/expressions/conditional/conditional-expression-processor.js.map +1 -1
  209. package/dist/core/expressions/conditional/conditional-integration.d.ts.map +1 -1
  210. package/dist/core/expressions/conditional/conditional-integration.js.map +1 -1
  211. package/dist/core/expressions/context/context-aware-generator.d.ts +5 -5
  212. package/dist/core/expressions/context/context-aware-generator.d.ts.map +1 -1
  213. package/dist/core/expressions/context/context-aware-generator.js.map +1 -1
  214. package/dist/core/expressions/context/context-detector.d.ts +3 -3
  215. package/dist/core/expressions/context/context-detector.d.ts.map +1 -1
  216. package/dist/core/expressions/context/context-detector.js.map +1 -1
  217. package/dist/core/expressions/context/context-validator.d.ts +6 -6
  218. package/dist/core/expressions/context/context-validator.d.ts.map +1 -1
  219. package/dist/core/expressions/context/context-validator.js +2 -2
  220. package/dist/core/expressions/context/context-validator.js.map +1 -1
  221. package/dist/core/expressions/factory/cel-conversion-engine.d.ts +4 -4
  222. package/dist/core/expressions/factory/cel-conversion-engine.d.ts.map +1 -1
  223. package/dist/core/expressions/factory/cel-conversion-engine.js.map +1 -1
  224. package/dist/core/expressions/factory/dependency-tracker.d.ts +2 -2
  225. package/dist/core/expressions/factory/dependency-tracker.d.ts.map +1 -1
  226. package/dist/core/expressions/factory/dependency-tracker.js +21 -5
  227. package/dist/core/expressions/factory/dependency-tracker.js.map +1 -1
  228. package/dist/core/expressions/factory/factory-integration.d.ts +2 -4
  229. package/dist/core/expressions/factory/factory-integration.d.ts.map +1 -1
  230. package/dist/core/expressions/factory/factory-integration.js +0 -6
  231. package/dist/core/expressions/factory/factory-integration.js.map +1 -1
  232. package/dist/core/expressions/factory/factory-pattern-handler.d.ts +3 -3
  233. package/dist/core/expressions/factory/factory-pattern-handler.d.ts.map +1 -1
  234. package/dist/core/expressions/factory/factory-pattern-handler.js +1 -0
  235. package/dist/core/expressions/factory/factory-pattern-handler.js.map +1 -1
  236. package/dist/core/expressions/factory/migration-helpers.js.map +1 -1
  237. package/dist/core/expressions/factory/resource-analyzer.d.ts +4 -4
  238. package/dist/core/expressions/factory/resource-analyzer.d.ts.map +1 -1
  239. package/dist/core/expressions/factory/resource-analyzer.js.map +1 -1
  240. package/dist/core/expressions/factory/resource-type-validator.d.ts +5 -5
  241. package/dist/core/expressions/factory/resource-type-validator.d.ts.map +1 -1
  242. package/dist/core/expressions/factory/resource-type-validator.js.map +1 -1
  243. package/dist/core/expressions/factory/status-builder-analyzer.d.ts +6 -7
  244. package/dist/core/expressions/factory/status-builder-analyzer.d.ts.map +1 -1
  245. package/dist/core/expressions/factory/status-builder-analyzer.js +0 -3
  246. package/dist/core/expressions/factory/status-builder-analyzer.js.map +1 -1
  247. package/dist/core/expressions/factory/status-builder-types.d.ts +1 -1
  248. package/dist/core/expressions/factory/status-builder-types.d.ts.map +1 -1
  249. package/dist/core/expressions/factory/status-cel-generation.d.ts +1 -1
  250. package/dist/core/expressions/factory/status-cel-generation.d.ts.map +1 -1
  251. package/dist/core/expressions/factory/status-cel-generation.js +1 -1
  252. package/dist/core/expressions/factory/status-cel-generation.js.map +1 -1
  253. package/dist/core/expressions/factory/status-field-analysis.d.ts +3 -3
  254. package/dist/core/expressions/factory/status-field-analysis.d.ts.map +1 -1
  255. package/dist/core/expressions/factory/status-field-analysis.js.map +1 -1
  256. package/dist/core/expressions/magic-proxy/magic-assignable-analyzer.d.ts +5 -5
  257. package/dist/core/expressions/magic-proxy/magic-assignable-analyzer.d.ts.map +1 -1
  258. package/dist/core/expressions/magic-proxy/magic-assignable-analyzer.js +1 -1
  259. package/dist/core/expressions/magic-proxy/magic-assignable-analyzer.js.map +1 -1
  260. package/dist/core/expressions/magic-proxy/magic-proxy-analyzer.d.ts +10 -10
  261. package/dist/core/expressions/magic-proxy/magic-proxy-analyzer.d.ts.map +1 -1
  262. package/dist/core/expressions/magic-proxy/magic-proxy-analyzer.js +5 -1
  263. package/dist/core/expressions/magic-proxy/magic-proxy-analyzer.js.map +1 -1
  264. package/dist/core/expressions/magic-proxy/magic-proxy-ast.d.ts +2 -2
  265. package/dist/core/expressions/magic-proxy/magic-proxy-ast.d.ts.map +1 -1
  266. package/dist/core/expressions/magic-proxy/magic-proxy-ast.js.map +1 -1
  267. package/dist/core/expressions/magic-proxy/magic-proxy-detector.d.ts +5 -5
  268. package/dist/core/expressions/magic-proxy/magic-proxy-detector.d.ts.map +1 -1
  269. package/dist/core/expressions/magic-proxy/magic-proxy-detector.js.map +1 -1
  270. package/dist/core/expressions/magic-proxy/magic-proxy-types.d.ts +2 -2
  271. package/dist/core/expressions/magic-proxy/magic-proxy-types.d.ts.map +1 -1
  272. package/dist/core/expressions/magic-proxy/optionality-handler.d.ts +1 -2
  273. package/dist/core/expressions/magic-proxy/optionality-handler.d.ts.map +1 -1
  274. package/dist/core/expressions/magic-proxy/optionality-handler.js +2 -15
  275. package/dist/core/expressions/magic-proxy/optionality-handler.js.map +1 -1
  276. package/dist/core/expressions/validation/compile-time-checker.d.ts +1 -1
  277. package/dist/core/expressions/validation/compile-time-checker.d.ts.map +1 -1
  278. package/dist/core/expressions/validation/compile-time-checker.js.map +1 -1
  279. package/dist/core/expressions/validation/compile-time-types.d.ts +2 -2
  280. package/dist/core/expressions/validation/compile-time-types.d.ts.map +1 -1
  281. package/dist/core/expressions/validation/kubernetes-field-types.d.ts +4 -4
  282. package/dist/core/expressions/validation/kubernetes-field-types.d.ts.map +1 -1
  283. package/dist/core/expressions/validation/kubernetes-field-types.js.map +1 -1
  284. package/dist/core/expressions/validation/resource-field-utils.d.ts +10 -10
  285. package/dist/core/expressions/validation/resource-field-utils.d.ts.map +1 -1
  286. package/dist/core/expressions/validation/resource-field-utils.js.map +1 -1
  287. package/dist/core/expressions/validation/resource-validation.d.ts +3 -3
  288. package/dist/core/expressions/validation/resource-validation.d.ts.map +1 -1
  289. package/dist/core/expressions/validation/resource-validation.js.map +1 -1
  290. package/dist/core/expressions/validation/type-inference-types.d.ts +2 -2
  291. package/dist/core/expressions/validation/type-inference-types.d.ts.map +1 -1
  292. package/dist/core/expressions/validation/type-safety.d.ts +2 -2
  293. package/dist/core/expressions/validation/type-safety.d.ts.map +1 -1
  294. package/dist/core/expressions/validation/type-safety.js +1 -0
  295. package/dist/core/expressions/validation/type-safety.js.map +1 -1
  296. package/dist/core/kubernetes/bun-api-client.js.map +1 -1
  297. package/dist/core/kubernetes/bun-http-library.d.ts.map +1 -1
  298. package/dist/core/kubernetes/bun-http-library.js +29 -3
  299. package/dist/core/kubernetes/bun-http-library.js.map +1 -1
  300. package/dist/core/kubernetes/client-provider.d.ts +12 -0
  301. package/dist/core/kubernetes/client-provider.d.ts.map +1 -1
  302. package/dist/core/kubernetes/client-provider.js +35 -0
  303. package/dist/core/kubernetes/client-provider.js.map +1 -1
  304. package/dist/core/metadata/resource-metadata.d.ts +49 -1
  305. package/dist/core/metadata/resource-metadata.d.ts.map +1 -1
  306. package/dist/core/metadata/resource-metadata.js.map +1 -1
  307. package/dist/core/proxy/create-resource.d.ts +15 -0
  308. package/dist/core/proxy/create-resource.d.ts.map +1 -1
  309. package/dist/core/proxy/create-resource.js +79 -2
  310. package/dist/core/proxy/create-resource.js.map +1 -1
  311. package/dist/core/readiness/registry.js +2 -2
  312. package/dist/core/readiness/registry.js.map +1 -1
  313. package/dist/core/references/cel-evaluator.d.ts +1 -4
  314. package/dist/core/references/cel-evaluator.d.ts.map +1 -1
  315. package/dist/core/references/cel-evaluator.js +3 -7
  316. package/dist/core/references/cel-evaluator.js.map +1 -1
  317. package/dist/core/references/cel.d.ts +22 -0
  318. package/dist/core/references/cel.d.ts.map +1 -1
  319. package/dist/core/references/cel.js +106 -8
  320. package/dist/core/references/cel.js.map +1 -1
  321. package/dist/core/references/external-refs.d.ts.map +1 -1
  322. package/dist/core/references/external-refs.js +3 -0
  323. package/dist/core/references/external-refs.js.map +1 -1
  324. package/dist/core/references/resolver.d.ts.map +1 -1
  325. package/dist/core/references/resolver.js +28 -17
  326. package/dist/core/references/resolver.js.map +1 -1
  327. package/dist/core/references/schema-proxy.d.ts +18 -10
  328. package/dist/core/references/schema-proxy.d.ts.map +1 -1
  329. package/dist/core/references/schema-proxy.js +174 -23
  330. package/dist/core/references/schema-proxy.js.map +1 -1
  331. package/dist/core/runtime-patches/crd-schema-fix.d.ts.map +1 -1
  332. package/dist/core/runtime-patches/crd-schema-fix.js +4 -1
  333. package/dist/core/runtime-patches/crd-schema-fix.js.map +1 -1
  334. package/dist/core/serialization/cel-optimizer.d.ts.map +1 -1
  335. package/dist/core/serialization/cel-optimizer.js +2 -0
  336. package/dist/core/serialization/cel-optimizer.js.map +1 -1
  337. package/dist/core/serialization/cel-references.d.ts +75 -1
  338. package/dist/core/serialization/cel-references.d.ts.map +1 -1
  339. package/dist/core/serialization/cel-references.js +692 -156
  340. package/dist/core/serialization/cel-references.js.map +1 -1
  341. package/dist/core/serialization/core.d.ts +8 -8
  342. package/dist/core/serialization/core.d.ts.map +1 -1
  343. package/dist/core/serialization/core.js +672 -90
  344. package/dist/core/serialization/core.js.map +1 -1
  345. package/dist/core/serialization/kro-post-processing.d.ts +1 -1
  346. package/dist/core/serialization/kro-post-processing.d.ts.map +1 -1
  347. package/dist/core/serialization/kro-post-processing.js +69 -22
  348. package/dist/core/serialization/kro-post-processing.js.map +1 -1
  349. package/dist/core/serialization/schema.d.ts +1 -0
  350. package/dist/core/serialization/schema.d.ts.map +1 -1
  351. package/dist/core/serialization/schema.js +378 -50
  352. package/dist/core/serialization/schema.js.map +1 -1
  353. package/dist/core/serialization/status-analysis-pipeline.d.ts +1 -1
  354. package/dist/core/serialization/status-analysis-pipeline.d.ts.map +1 -1
  355. package/dist/core/serialization/status-analysis-pipeline.js.map +1 -1
  356. package/dist/core/serialization/yaml.d.ts +3 -2
  357. package/dist/core/serialization/yaml.d.ts.map +1 -1
  358. package/dist/core/serialization/yaml.js +385 -55
  359. package/dist/core/serialization/yaml.js.map +1 -1
  360. package/dist/core/singleton/singleton.d.ts +16 -0
  361. package/dist/core/singleton/singleton.d.ts.map +1 -0
  362. package/dist/core/singleton/singleton.js +135 -0
  363. package/dist/core/singleton/singleton.js.map +1 -0
  364. package/dist/core/types/common.d.ts +2 -2
  365. package/dist/core/types/common.d.ts.map +1 -1
  366. package/dist/core/types/composable.d.ts +1 -1
  367. package/dist/core/types/composable.d.ts.map +1 -1
  368. package/dist/core/types/deployment.d.ts +129 -9
  369. package/dist/core/types/deployment.d.ts.map +1 -1
  370. package/dist/core/types/deployment.js +1 -1
  371. package/dist/core/types/deployment.js.map +1 -1
  372. package/dist/core/types/kubernetes.d.ts +25 -17
  373. package/dist/core/types/kubernetes.d.ts.map +1 -1
  374. package/dist/core/types/references.d.ts +1 -1
  375. package/dist/core/types/references.d.ts.map +1 -1
  376. package/dist/core/types/references.js.map +1 -1
  377. package/dist/core/types/resource-graph.d.ts +2 -1
  378. package/dist/core/types/resource-graph.d.ts.map +1 -1
  379. package/dist/core/types/schema.d.ts +1 -1
  380. package/dist/core/types/schema.d.ts.map +1 -1
  381. package/dist/core/types/serialization.d.ts +24 -6
  382. package/dist/core/types/serialization.d.ts.map +1 -1
  383. package/dist/core/validation/cel-validator.d.ts +15 -2
  384. package/dist/core/validation/cel-validator.d.ts.map +1 -1
  385. package/dist/core/validation/cel-validator.js +144 -63
  386. package/dist/core/validation/cel-validator.js.map +1 -1
  387. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts +2 -41
  388. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts.map +1 -1
  389. package/dist/factories/apisix/compositions/apisix-bootstrap.js +262 -217
  390. package/dist/factories/apisix/compositions/apisix-bootstrap.js.map +1 -1
  391. package/dist/factories/apisix/index.d.ts +2 -2
  392. package/dist/factories/apisix/index.js +2 -2
  393. package/dist/factories/apisix/resources/helm.d.ts +2 -2
  394. package/dist/factories/apisix/resources/helm.d.ts.map +1 -1
  395. package/dist/factories/apisix/resources/helm.js.map +1 -1
  396. package/dist/factories/apisix/types.d.ts +21 -11
  397. package/dist/factories/apisix/types.d.ts.map +1 -1
  398. package/dist/factories/apisix/types.js +106 -4
  399. package/dist/factories/apisix/types.js.map +1 -1
  400. package/dist/factories/apisix/utils/admin-credentials.d.ts +5 -3
  401. package/dist/factories/apisix/utils/admin-credentials.d.ts.map +1 -1
  402. package/dist/factories/apisix/utils/admin-credentials.js +14 -10
  403. package/dist/factories/apisix/utils/admin-credentials.js.map +1 -1
  404. package/dist/factories/apisix/utils/helm-values-mapper.d.ts.map +1 -1
  405. package/dist/factories/apisix/utils/helm-values-mapper.js +4 -2
  406. package/dist/factories/apisix/utils/helm-values-mapper.js.map +1 -1
  407. package/dist/factories/cert-manager/resources/challenges.js.map +1 -1
  408. package/dist/factories/cert-manager/types.d.ts +3 -3
  409. package/dist/factories/cert-manager/types.d.ts.map +1 -1
  410. package/dist/factories/cilium/compositions/cilium-bootstrap.d.ts +4 -4
  411. package/dist/factories/cilium/types.d.ts +3 -3
  412. package/dist/factories/cilium/types.d.ts.map +1 -1
  413. package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts +1 -0
  414. package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts.map +1 -1
  415. package/dist/factories/cnpg/compositions/cnpg-bootstrap.js +48 -0
  416. package/dist/factories/cnpg/compositions/cnpg-bootstrap.js.map +1 -1
  417. package/dist/factories/cnpg/resources/cluster.js +1 -1
  418. package/dist/factories/cnpg/resources/cluster.js.map +1 -1
  419. package/dist/factories/cnpg/resources/helm.d.ts.map +1 -1
  420. package/dist/factories/cnpg/resources/helm.js +1 -0
  421. package/dist/factories/cnpg/resources/helm.js.map +1 -1
  422. package/dist/factories/cnpg/resources/pooler.js +1 -1
  423. package/dist/factories/cnpg/resources/pooler.js.map +1 -1
  424. package/dist/factories/cnpg/types.d.ts +9 -8
  425. package/dist/factories/cnpg/types.d.ts.map +1 -1
  426. package/dist/factories/cnpg/types.js +11 -0
  427. package/dist/factories/cnpg/types.js.map +1 -1
  428. package/dist/factories/external-dns/compositions/external-dns-bootstrap.d.ts.map +1 -1
  429. package/dist/factories/external-dns/compositions/external-dns-bootstrap.js +153 -41
  430. package/dist/factories/external-dns/compositions/external-dns-bootstrap.js.map +1 -1
  431. package/dist/factories/external-dns/resources/dns-endpoint.js +1 -1
  432. package/dist/factories/external-dns/resources/dns-endpoint.js.map +1 -1
  433. package/dist/factories/external-dns/resources/helm.d.ts +1 -1
  434. package/dist/factories/external-dns/resources/helm.d.ts.map +1 -1
  435. package/dist/factories/external-dns/resources/helm.js +17 -10
  436. package/dist/factories/external-dns/resources/helm.js.map +1 -1
  437. package/dist/factories/external-dns/types.d.ts +5 -2
  438. package/dist/factories/external-dns/types.d.ts.map +1 -1
  439. package/dist/factories/external-dns/types.js.map +1 -1
  440. package/dist/factories/flux/git-repository.d.ts.map +1 -1
  441. package/dist/factories/flux/git-repository.js +1 -1
  442. package/dist/factories/flux/git-repository.js.map +1 -1
  443. package/dist/factories/flux/kustomize/kustomization.d.ts +2 -2
  444. package/dist/factories/flux/kustomize/kustomization.d.ts.map +1 -1
  445. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts +1 -1
  446. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts.map +1 -1
  447. package/dist/factories/flux/kustomize/readiness-evaluators.js +1 -1
  448. package/dist/factories/flux/kustomize/readiness-evaluators.js.map +1 -1
  449. package/dist/factories/helm/helm-release.d.ts +3 -2
  450. package/dist/factories/helm/helm-release.d.ts.map +1 -1
  451. package/dist/factories/helm/helm-release.js +1 -0
  452. package/dist/factories/helm/helm-release.js.map +1 -1
  453. package/dist/factories/helm/helm-repository.d.ts +1 -1
  454. package/dist/factories/helm/helm-repository.d.ts.map +1 -1
  455. package/dist/factories/helm/helm-repository.js +6 -4
  456. package/dist/factories/helm/helm-repository.js.map +1 -1
  457. package/dist/factories/helm/readiness-evaluators.d.ts +6 -6
  458. package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
  459. package/dist/factories/helm/readiness-evaluators.js +15 -9
  460. package/dist/factories/helm/readiness-evaluators.js.map +1 -1
  461. package/dist/factories/helm/types.d.ts +5 -1
  462. package/dist/factories/helm/types.d.ts.map +1 -1
  463. package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts +1 -0
  464. package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts.map +1 -1
  465. package/dist/factories/inngest/compositions/inngest-bootstrap.js +4 -3
  466. package/dist/factories/inngest/compositions/inngest-bootstrap.js.map +1 -1
  467. package/dist/factories/inngest/resources/helm.js +1 -1
  468. package/dist/factories/inngest/resources/helm.js.map +1 -1
  469. package/dist/factories/inngest/types.d.ts +5 -4
  470. package/dist/factories/inngest/types.d.ts.map +1 -1
  471. package/dist/factories/inngest/types.js +2 -0
  472. package/dist/factories/inngest/types.js.map +1 -1
  473. package/dist/factories/kro/kro-custom-resource.js +1 -1
  474. package/dist/factories/kro/kro-custom-resource.js.map +1 -1
  475. package/dist/factories/kubernetes/config/config-map.d.ts +2 -2
  476. package/dist/factories/kubernetes/config/config-map.d.ts.map +1 -1
  477. package/dist/factories/kubernetes/config/secret.d.ts +2 -2
  478. package/dist/factories/kubernetes/config/secret.d.ts.map +1 -1
  479. package/dist/factories/kubernetes/networking/service.js +1 -1
  480. package/dist/factories/kubernetes/networking/service.js.map +1 -1
  481. package/dist/factories/kubernetes/yaml/yaml-directory.d.ts.map +1 -1
  482. package/dist/factories/kubernetes/yaml/yaml-directory.js +9 -0
  483. package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -1
  484. package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -1
  485. package/dist/factories/kubernetes/yaml/yaml-file.js +9 -0
  486. package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -1
  487. package/dist/factories/pebble/resources/helm.js.map +1 -1
  488. package/dist/factories/pebble/types.d.ts +2 -2
  489. package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts +3 -2
  490. package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts.map +1 -1
  491. package/dist/factories/searxng/compositions/searxng-bootstrap.js +205 -167
  492. package/dist/factories/searxng/compositions/searxng-bootstrap.js.map +1 -1
  493. package/dist/factories/searxng/resources/searxng.d.ts +1 -1
  494. package/dist/factories/searxng/resources/searxng.js +1 -1
  495. package/dist/factories/searxng/types.d.ts +5 -4
  496. package/dist/factories/searxng/types.d.ts.map +1 -1
  497. package/dist/factories/searxng/types.js +8 -7
  498. package/dist/factories/searxng/types.js.map +1 -1
  499. package/dist/factories/searxng/utils/settings-builder.d.ts +4 -3
  500. package/dist/factories/searxng/utils/settings-builder.d.ts.map +1 -1
  501. package/dist/factories/searxng/utils/settings-builder.js +4 -3
  502. package/dist/factories/searxng/utils/settings-builder.js.map +1 -1
  503. package/dist/factories/simple/config/config-map.d.ts +2 -2
  504. package/dist/factories/simple/config/config-map.d.ts.map +1 -1
  505. package/dist/factories/simple/config/secret.d.ts +2 -2
  506. package/dist/factories/simple/config/secret.d.ts.map +1 -1
  507. package/dist/factories/simple/helm/index.d.ts +1 -1
  508. package/dist/factories/simple/helm/index.d.ts.map +1 -1
  509. package/dist/factories/simple/helm/index.js.map +1 -1
  510. package/dist/factories/simple/index.d.ts +3 -3
  511. package/dist/factories/simple/index.d.ts.map +1 -1
  512. package/dist/factories/simple/storage/persistent-volume.js.map +1 -1
  513. package/dist/factories/simple/types.d.ts +11 -1
  514. package/dist/factories/simple/types.d.ts.map +1 -1
  515. package/dist/factories/simple/workloads/deployment.d.ts +4 -1
  516. package/dist/factories/simple/workloads/deployment.d.ts.map +1 -1
  517. package/dist/factories/simple/workloads/deployment.js +9 -2
  518. package/dist/factories/simple/workloads/deployment.js.map +1 -1
  519. package/dist/factories/simple/workloads/stateful-set.d.ts +4 -1
  520. package/dist/factories/simple/workloads/stateful-set.d.ts.map +1 -1
  521. package/dist/factories/simple/workloads/stateful-set.js +6 -2
  522. package/dist/factories/simple/workloads/stateful-set.js.map +1 -1
  523. package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts +1 -0
  524. package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts.map +1 -1
  525. package/dist/factories/valkey/compositions/valkey-bootstrap.js +116 -0
  526. package/dist/factories/valkey/compositions/valkey-bootstrap.js.map +1 -1
  527. package/dist/factories/valkey/resources/valkey.js +1 -1
  528. package/dist/factories/valkey/resources/valkey.js.map +1 -1
  529. package/dist/factories/valkey/types.d.ts +6 -5
  530. package/dist/factories/valkey/types.d.ts.map +1 -1
  531. package/dist/factories/valkey/types.js +10 -0
  532. package/dist/factories/valkey/types.js.map +1 -1
  533. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts +90 -6
  534. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -1
  535. package/dist/factories/webapp/compositions/web-app-with-processing.js +180 -20
  536. package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -1
  537. package/dist/factories/webapp/index.d.ts +3 -4
  538. package/dist/factories/webapp/index.d.ts.map +1 -1
  539. package/dist/factories/webapp/index.js +3 -4
  540. package/dist/factories/webapp/index.js.map +1 -1
  541. package/dist/factories/webapp/types.d.ts +60 -2
  542. package/dist/factories/webapp/types.d.ts.map +1 -1
  543. package/dist/factories/webapp/types.js +80 -3
  544. package/dist/factories/webapp/types.js.map +1 -1
  545. package/dist/index.d.ts +5 -1
  546. package/dist/index.d.ts.map +1 -1
  547. package/dist/index.js +3 -0
  548. package/dist/index.js.map +1 -1
  549. package/dist/shared/brands.d.ts +18 -8
  550. package/dist/shared/brands.d.ts.map +1 -1
  551. package/dist/shared/brands.js +19 -9
  552. package/dist/shared/brands.js.map +1 -1
  553. package/dist/utils/cel-escape.d.ts +12 -0
  554. package/dist/utils/cel-escape.d.ts.map +1 -0
  555. package/dist/utils/cel-escape.js +19 -0
  556. package/dist/utils/cel-escape.js.map +1 -0
  557. package/package.json +7 -2
@@ -0,0 +1,292 @@
1
+ /**
2
+ * Resource Tagging
3
+ *
4
+ * Applies typekro-ownership metadata to Kubernetes resources at deploy time
5
+ * as labels and annotations, and extracts it back at delete time. This is
6
+ * the core of typekro's label-based deployment-state backend: the cluster
7
+ * IS the state, no separate ConfigMap record is kept.
8
+ *
9
+ * ## What gets tagged
10
+ *
11
+ * **Labels** (selector-queryable, constrained to 63-char DNS-label values):
12
+ * - `typekro.io/managed-by=typekro` — claims ownership; acts as a broad
13
+ * filter for "find everything typekro has deployed"
14
+ * - `typekro.io/factory-name=<sanitized>` — scopes a resource to one
15
+ * factory identity
16
+ * - `typekro.io/instance-name=<sanitized>` — scopes a resource to one
17
+ * deployed instance within a factory
18
+ *
19
+ * **Annotations** (arbitrary strings, used for state that exceeds label
20
+ * constraints or isn't selector-queried):
21
+ * - `typekro.io/deployment-id=<uuid>` — groups resources from a single
22
+ * deployment call
23
+ * - `typekro.io/resource-id=<node-id>` — original composition-local
24
+ * resource id (may differ from `metadata.name` and isn't DNS-constrained)
25
+ * - `typekro.io/factory-name=<raw>` — unsanitized factory name for display
26
+ * and exact-match comparisons (labels may be truncated/sanitized)
27
+ * - `typekro.io/instance-name=<raw>` — same, for instance name
28
+ * - `typekro.io/factory-namespace=<ns>` — the factory's "home" namespace
29
+ * (where the factory was invoked from). Used by cross-namespace
30
+ * discovery to narrow queries.
31
+ * - `typekro.io/scopes=<json-array>` — JSON-encoded list of scope names
32
+ * this resource belongs to (e.g., `["cluster"]`). Empty/absent means
33
+ * "instance-private." See {@link getEffectiveScopes}.
34
+ * - `typekro.io/depends-on=<json-array>` — JSON-encoded list of
35
+ * composition-local resource ids that THIS resource depends on. Used
36
+ * by discovery to reconstruct the dependency graph for reverse-
37
+ * topological deletion without needing the original composition source.
38
+ *
39
+ * ## Why this design
40
+ *
41
+ * A prior iteration stored the deployment record in a ConfigMap in the
42
+ * factory namespace. That worked for cross-process cleanup but had
43
+ * drawbacks: the ConfigMap could drift from reality (e.g., a resource
44
+ * deleted manually leaves a dangling record), required a bootstrap
45
+ * namespace for the record to live in, and made multi-consumer ownership
46
+ * of shared resources ambiguous.
47
+ *
48
+ * Storing the state directly on the resources makes the cluster self-
49
+ * describing: `kubectl get all -l typekro.io/factory-name=X` returns the
50
+ * full set. No external index to keep in sync. Shared resources can
51
+ * carry tags from multiple owners naturally.
52
+ */
53
+ import { getMetadataField } from '../metadata/index.js';
54
+ // ── Label keys ────────────────────────────────────────────────────────────
55
+ /** Label set on every resource deployed by typekro. */
56
+ export const MANAGED_BY_LABEL = 'typekro.io/managed-by';
57
+ export const MANAGED_BY_VALUE = 'typekro';
58
+ /** Label identifying the factory that deployed this resource. */
59
+ export const FACTORY_NAME_LABEL = 'typekro.io/factory-name';
60
+ /** Label identifying the instance within a factory. */
61
+ export const INSTANCE_NAME_LABEL = 'typekro.io/instance-name';
62
+ // ── Annotation keys ───────────────────────────────────────────────────────
63
+ /** Annotation carrying the deployment run id. */
64
+ export const DEPLOYMENT_ID_ANNOTATION = 'typekro.io/deployment-id';
65
+ /** Annotation carrying the composition-local resource id (pre-sanitization). */
66
+ export const RESOURCE_ID_ANNOTATION = 'typekro.io/resource-id';
67
+ /** Annotation carrying the raw (unsanitized) factory name. */
68
+ export const FACTORY_NAME_ANNOTATION = 'typekro.io/factory-name';
69
+ /** Annotation carrying the raw (unsanitized) instance name. */
70
+ export const INSTANCE_NAME_ANNOTATION = 'typekro.io/instance-name';
71
+ /** Annotation carrying the factory's home namespace. */
72
+ export const FACTORY_NAMESPACE_ANNOTATION = 'typekro.io/factory-namespace';
73
+ /** Annotation carrying scope membership as a JSON array of strings. */
74
+ export const SCOPES_ANNOTATION = 'typekro.io/scopes';
75
+ /** Annotation carrying dependency ids as a JSON array of strings. */
76
+ export const DEPENDS_ON_ANNOTATION = 'typekro.io/depends-on';
77
+ /** Annotation carrying the immutable singleton owner spec fingerprint. */
78
+ export const SINGLETON_SPEC_FINGERPRINT_ANNOTATION = 'typekro.io/singleton-spec-fingerprint';
79
+ /**
80
+ * Apply typekro ownership metadata to a resource manifest. Mutates
81
+ * `manifest.metadata.labels` and `manifest.metadata.annotations` in place.
82
+ *
83
+ * Called from the deploy path right before the resource is serialized and
84
+ * sent to the cluster. The manifest at that point is a plain object (post
85
+ * reference-resolution and namespace-application), so in-place mutation is
86
+ * safe and avoids an extra clone.
87
+ *
88
+ * Existing user-set labels and annotations are preserved — only the
89
+ * `typekro.io/*` keys are added or overwritten.
90
+ */
91
+ export function applyTypekroTags(manifest, ctx) {
92
+ if (!manifest.metadata) {
93
+ manifest.metadata = {};
94
+ }
95
+ const metadata = manifest.metadata;
96
+ metadata.labels = { ...(metadata.labels ?? {}) };
97
+ metadata.annotations = { ...(metadata.annotations ?? {}) };
98
+ // Labels: sanitized, DNS-label-compatible
99
+ metadata.labels[MANAGED_BY_LABEL] = MANAGED_BY_VALUE;
100
+ metadata.labels[FACTORY_NAME_LABEL] = sanitiseLabelValue(ctx.factoryName);
101
+ metadata.labels[INSTANCE_NAME_LABEL] = sanitiseLabelValue(ctx.instanceName);
102
+ // Annotations: raw values + state that can't fit in labels
103
+ metadata.annotations[FACTORY_NAME_ANNOTATION] = ctx.factoryName;
104
+ metadata.annotations[INSTANCE_NAME_ANNOTATION] = ctx.instanceName;
105
+ metadata.annotations[FACTORY_NAMESPACE_ANNOTATION] = ctx.factoryNamespace;
106
+ metadata.annotations[DEPLOYMENT_ID_ANNOTATION] = ctx.deploymentId;
107
+ metadata.annotations[RESOURCE_ID_ANNOTATION] = ctx.resourceId;
108
+ if (ctx.scopes) {
109
+ metadata.annotations[SCOPES_ANNOTATION] = JSON.stringify(ctx.scopes);
110
+ }
111
+ if (ctx.dependencies && ctx.dependencies.length > 0) {
112
+ metadata.annotations[DEPENDS_ON_ANNOTATION] = JSON.stringify(ctx.dependencies);
113
+ }
114
+ if (ctx.singletonSpecFingerprint) {
115
+ metadata.annotations[SINGLETON_SPEC_FINGERPRINT_ANNOTATION] = ctx.singletonSpecFingerprint;
116
+ }
117
+ }
118
+ /**
119
+ * Extract typekro metadata from a live Kubernetes resource. The live
120
+ * resource is whatever the server returned from a list/read call —
121
+ * `metadata.labels` and `metadata.annotations` are plain records.
122
+ *
123
+ * Never throws: malformed annotations (bad JSON, wrong types) are
124
+ * silently ignored and return empty defaults. The caller should treat
125
+ * missing fields as "we don't know" rather than "the resource is
126
+ * un-owned," because this function is invoked on resources that matched
127
+ * a label selector upstream.
128
+ */
129
+ export function extractTypekroTags(resource) {
130
+ const labels = resource.metadata?.labels ?? {};
131
+ const annotations = resource.metadata?.annotations ?? {};
132
+ // Prefer annotations for raw values (they aren't sanitized); fall
133
+ // back to labels so we still get a usable value when annotations are
134
+ // stripped by a downstream mutator.
135
+ const factoryName = annotations[FACTORY_NAME_ANNOTATION] ?? labels[FACTORY_NAME_LABEL];
136
+ const instanceName = annotations[INSTANCE_NAME_ANNOTATION] ?? labels[INSTANCE_NAME_LABEL];
137
+ return {
138
+ ...(factoryName !== undefined && { factoryName }),
139
+ ...(instanceName !== undefined && { instanceName }),
140
+ ...(annotations[FACTORY_NAMESPACE_ANNOTATION] !== undefined && {
141
+ factoryNamespace: annotations[FACTORY_NAMESPACE_ANNOTATION],
142
+ }),
143
+ ...(annotations[DEPLOYMENT_ID_ANNOTATION] !== undefined && {
144
+ deploymentId: annotations[DEPLOYMENT_ID_ANNOTATION],
145
+ }),
146
+ ...(annotations[RESOURCE_ID_ANNOTATION] !== undefined && {
147
+ resourceId: annotations[RESOURCE_ID_ANNOTATION],
148
+ }),
149
+ scopes: parseJsonStringArray(annotations[SCOPES_ANNOTATION]),
150
+ dependencies: parseJsonStringArray(annotations[DEPENDS_ON_ANNOTATION]),
151
+ };
152
+ }
153
+ /**
154
+ * Compute the effective scope set for a resource, merging three sources:
155
+ *
156
+ * 1. `typekro.io/scopes` annotation on the live manifest (the
157
+ * canonical cluster-side source, used by cross-process delete).
158
+ * 2. WeakMap `scopes` metadata set via `setMetadataField` in-process
159
+ * (used when the resource is still in memory and hasn't been
160
+ * tagged on-cluster yet — e.g., during deploy).
161
+ * 3. The legacy `lifecycle: 'shared'` alias, which is equivalent to
162
+ * `scopes: ['shared']`.
163
+ *
164
+ * Returns an empty array if the resource is "instance-private" (no
165
+ * scopes from any source). Factory-provided `scope: 'cluster'` metadata is
166
+ * treated as membership in the broader `cluster` deletion/application scope.
167
+ */
168
+ export function getEffectiveScopes(resource) {
169
+ const scopes = new Set();
170
+ // 1. Annotation (authoritative for on-cluster resources)
171
+ const annotation = resource.metadata?.annotations?.[SCOPES_ANNOTATION];
172
+ for (const s of parseJsonStringArray(annotation))
173
+ scopes.add(s);
174
+ // 2. WeakMap metadata (in-process deploy path)
175
+ const fromMeta = getMetadataField(resource, 'scopes');
176
+ if (fromMeta) {
177
+ for (const s of fromMeta)
178
+ scopes.add(s);
179
+ }
180
+ // 3. Canonical factory scope metadata for cluster-scoped resources.
181
+ if (getMetadataField(resource, 'scope') === 'cluster') {
182
+ scopes.add('cluster');
183
+ }
184
+ // 4. Legacy lifecycle alias
185
+ const legacy = getMetadataField(resource, 'lifecycle');
186
+ if (legacy === 'shared')
187
+ scopes.add('shared');
188
+ // 5. Annotation-based legacy: `typekro.io/lifecycle: shared` from any
189
+ // pre-scopes deployment is also treated as `['shared']`.
190
+ const lifecycleAnn = resource.metadata?.annotations?.['typekro.io/lifecycle'];
191
+ if (lifecycleAnn === 'shared')
192
+ scopes.add('shared');
193
+ return Array.from(scopes);
194
+ }
195
+ /**
196
+ * Decide whether a resource matches a scope filter.
197
+ *
198
+ * Used by both the deploy path (`targetScopes`) and the delete path
199
+ * (`deleteInstance` scopes). The semantics are additive:
200
+ *
201
+ * - **Unscoped** resources (empty effective scopes) match when
202
+ * `includeUnscoped` is `true` (the default). Set to `false` to
203
+ * exclude them — useful when you want to tear down only shared
204
+ * infrastructure without touching instance-private resources.
205
+ * - **Scoped** resources match when ANY of their scopes appear in
206
+ * the `scopeFilter`. An empty filter means "no broader scopes
207
+ * targeted" — only unscoped resources pass.
208
+ *
209
+ * Examples (default includeUnscoped=true):
210
+ * scopesMatchFilter([], []) === true // unscoped, included by default
211
+ * scopesMatchFilter([], ['cluster']) === true // unscoped, still included
212
+ * scopesMatchFilter(['cluster'], []) === false // scoped, not targeted
213
+ * scopesMatchFilter(['cluster'], ['cluster']) === true // scoped, targeted
214
+ *
215
+ * With includeUnscoped=false:
216
+ * scopesMatchFilter([], ['cluster'], false) === false // unscoped excluded
217
+ * scopesMatchFilter(['cluster'], ['cluster'], false) === true // scoped still matches
218
+ */
219
+ export function scopesMatchFilter(resourceScopes, scopeFilter, includeUnscoped = true) {
220
+ if (resourceScopes.length === 0)
221
+ return includeUnscoped;
222
+ return resourceScopes.some((s) => scopeFilter.includes(s));
223
+ }
224
+ /**
225
+ * Decide whether a resource matches deploy-side `targetScopes` semantics.
226
+ *
227
+ * Deployment targeting is intentionally stricter than delete-side filtering:
228
+ * - `undefined` means deploy everything (handled by callers before invoking this helper).
229
+ * - `[]` means deploy only instance-private/unscoped resources.
230
+ * - Non-empty filters deploy only resources with at least one matching lifecycle scope.
231
+ */
232
+ export function scopesMatchDeployTarget(resourceScopes, targetScopes) {
233
+ if (targetScopes.length === 0)
234
+ return resourceScopes.length === 0;
235
+ if (resourceScopes.length === 0)
236
+ return false;
237
+ return resourceScopes.some((s) => targetScopes.includes(s));
238
+ }
239
+ // ── Label selector construction ───────────────────────────────────────────
240
+ /**
241
+ * Build a label selector string for locating all resources belonging to
242
+ * a specific factory + instance. Used by the discovery path at delete
243
+ * time.
244
+ */
245
+ export function buildFactoryInstanceSelector(opts) {
246
+ return [
247
+ `${MANAGED_BY_LABEL}=${MANAGED_BY_VALUE}`,
248
+ `${FACTORY_NAME_LABEL}=${sanitiseLabelValue(opts.factoryName)}`,
249
+ `${INSTANCE_NAME_LABEL}=${sanitiseLabelValue(opts.instanceName)}`,
250
+ ].join(',');
251
+ }
252
+ // ── Helpers ───────────────────────────────────────────────────────────────
253
+ /**
254
+ * Parse a JSON-encoded string array annotation. Returns an empty array
255
+ * on any parsing failure (missing, non-JSON, wrong shape) — this is
256
+ * intentional: a broken annotation should not crash the rollback path.
257
+ */
258
+ function parseJsonStringArray(value) {
259
+ if (!value)
260
+ return [];
261
+ try {
262
+ const parsed = JSON.parse(value);
263
+ if (Array.isArray(parsed) && parsed.every((v) => typeof v === 'string')) {
264
+ return parsed;
265
+ }
266
+ return [];
267
+ }
268
+ catch {
269
+ return [];
270
+ }
271
+ }
272
+ /**
273
+ * Sanitise a string for use as a Kubernetes label value. Labels must be
274
+ * DNS-label-compatible (alphanumeric + `-`, `_`, `.`, max 63 chars) and
275
+ * must start+end with an alphanumeric. Replace anything else with `-`
276
+ * and truncate.
277
+ *
278
+ * Note: this is not collision-free — two factory names that differ only
279
+ * in disallowed characters will sanitise to the same value. Callers
280
+ * that need collision resistance should use the annotation form.
281
+ */
282
+ export function sanitiseLabelValue(value) {
283
+ const sanitised = value
284
+ .toLowerCase()
285
+ .replace(/[^a-z0-9._-]/g, '-')
286
+ .slice(0, 63)
287
+ .replace(/^[-._]+|[-._]+$/g, '');
288
+ // An empty string is an invalid K8s label value. Fall back to a
289
+ // deterministic placeholder so selectors don't break.
290
+ return sanitised || 'unknown';
291
+ }
292
+ //# sourceMappingURL=resource-tagging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-tagging.js","sourceRoot":"","sources":["../../../src/core/deployment/resource-tagging.ts"],"names":[],"mappings":"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"}
@@ -48,16 +48,37 @@ export declare class ResourceRollbackManager {
48
48
  */
49
49
  private getResourceIdentifier;
50
50
  /**
51
- * Rollback deployed resources by deleting them in reverse order.
52
- * Skips resources that failed to deploy. Used by the deployment engine
53
- * for rollback-on-failure during level-based deployment.
51
+ * Rollback resources that are already in the correct deletion order
52
+ * with scope filtering already applied. Used by `engine.rollbackRecord`
53
+ * which computes reverse-topological order and scope exclusions.
54
+ */
55
+ rollbackOrderedResources(deployedResources: DeployedResource[], options: DeploymentOptions): Promise<{
56
+ rolledBackResources: string[];
57
+ errors: DeploymentError[];
58
+ }>;
59
+ /**
60
+ * Rollback resources in reverse-deployment order, skipping scoped
61
+ * resources. Used by the deploy-failure auto-rollback path where
62
+ * resources are in deployment order and scope filtering hasn't been
63
+ * applied.
54
64
  */
55
65
  rollbackDeployedResources(deployedResources: DeployedResource[], options: DeploymentOptions): Promise<{
56
66
  rolledBackResources: string[];
57
67
  errors: DeploymentError[];
58
68
  }>;
59
69
  /**
60
- * Delete a single deployed resource from the cluster and wait for deletion to complete.
70
+ * Core deletion loop iterates the resource list in order, deleting
71
+ * each non-failed resource. Shared by both ordered and unordered paths.
72
+ */
73
+ private deleteResourceList;
74
+ /**
75
+ * Delete a single deployed resource from the cluster and wait for
76
+ * deletion to complete.
77
+ *
78
+ * This method does NOT perform scope filtering — the caller (typically
79
+ * `engine.rollbackRecord`) is responsible for deciding which resources
80
+ * should be deleted. Filtering at this level would silently drop
81
+ * resources that the caller explicitly targeted for deletion.
61
82
  */
62
83
  deleteDeployedResource(resource: DeployedResource): Promise<void>;
63
84
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"rollback-manager.d.ts","sourceRoot":"","sources":["../../../src/core/deployment/rollback-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAUpD,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,QAAQ,EAGT,MAAM,wBAAwB,CAAC;AAGhC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC5D;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAGtB,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAA0C;gBAEpC,MAAM,EAAE,GAAG,CAAC,mBAAmB;IAEnD;;OAEG;IACG,iBAAiB,CACrB,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EACvC,MAAM,GAAE,cAAmB,GAC1B,OAAO,CAAC,cAAc,CAAC;IAmE1B;;OAEG;YACW,sBAAsB;IA6DpC;;OAEG;YACW,mBAAmB;IA8BjC;;OAEG;YACW,uBAAuB;IAmErC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;;OAIG;IACG,yBAAyB,CAC7B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC;QAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IA6DxE;;OAEG;IACG,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmEvE;;OAEG;IACH,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAK5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,mBAAmB,GAAG,uBAAuB,CAE9F;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,UAAU,EAAE,GAAG,CAAC,UAAU,GACzB,uBAAuB,CAKzB"}
1
+ {"version":3,"file":"rollback-manager.d.ts","sourceRoot":"","sources":["../../../src/core/deployment/rollback-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAWpD,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAgD,MAAM,wBAAwB,CAAC;AAGrG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC5D;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAGtB,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAA0C;gBAEpC,MAAM,EAAE,GAAG,CAAC,mBAAmB;IAEnD;;OAEG;IACG,iBAAiB,CACrB,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EACvC,MAAM,GAAE,cAAmB,GAC1B,OAAO,CAAC,cAAc,CAAC;IAmE1B;;OAEG;YACW,sBAAsB;IA6DpC;;OAEG;YACW,mBAAmB;IA8BjC;;OAEG;YACW,uBAAuB;IA8DrC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;;OAIG;IACG,wBAAwB,CAC5B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC;QAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAIxE;;;;;OAKG;IACG,yBAAyB,CAC7B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC;QAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAsBxE;;;OAGG;YACW,kBAAkB;IAwChC;;;;;;;;OAQG;IACG,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiEvE;;OAEG;IACH,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAK5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,mBAAmB,GAAG,uBAAuB,CAE9F;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,UAAU,EAAE,GAAG,CAAC,UAAU,GACzB,uBAAuB,CAKzB"}
@@ -8,7 +8,8 @@ import { DEFAULT_DELETE_TIMEOUT, DEFAULT_FAST_POLL_INTERVAL, DEFAULT_POLL_INTERV
8
8
  import { DeploymentTimeoutError, ensureError, TypeKroError } from '../errors.js';
9
9
  import { createBunCompatibleKubernetesObjectApi } from '../kubernetes/index.js';
10
10
  import { getComponentLogger } from '../logging/index.js';
11
- import { getMetadataField } from '../metadata/resource-metadata.js';
11
+ import { getMetadataField } from '../metadata/index.js';
12
+ import { getEffectiveScopes, scopesMatchFilter } from './resource-tagging.js';
12
13
  import { isNotFoundError } from './k8s-helpers.js';
13
14
  /**
14
15
  * Consolidated rollback manager for all deployment modes
@@ -160,16 +161,10 @@ export class ResourceRollbackManager {
160
161
  operation: 'deletion-check',
161
162
  });
162
163
  }
163
- if (!namespace) {
164
- throw new TypeKroError(`Resource namespace is required for deletion check: ${this.getResourceIdentifier(resource)}`, 'MISSING_RESOURCE_NAMESPACE', {
165
- resourceIdentifier: this.getResourceIdentifier(resource),
166
- operation: 'deletion-check',
167
- });
168
- }
169
164
  const readObject = {
170
165
  apiVersion: resource.apiVersion,
171
166
  kind: resource.kind,
172
- metadata: { name, namespace },
167
+ metadata: { name },
173
168
  };
174
169
  if (namespace) {
175
170
  readObject.metadata.namespace = namespace;
@@ -211,11 +206,45 @@ export class ResourceRollbackManager {
211
206
  return `${resource.kind}/${name} (${namespace})`;
212
207
  }
213
208
  /**
214
- * Rollback deployed resources by deleting them in reverse order.
215
- * Skips resources that failed to deploy. Used by the deployment engine
216
- * for rollback-on-failure during level-based deployment.
209
+ * Rollback resources that are already in the correct deletion order
210
+ * with scope filtering already applied. Used by `engine.rollbackRecord`
211
+ * which computes reverse-topological order and scope exclusions.
212
+ */
213
+ async rollbackOrderedResources(deployedResources, options) {
214
+ return this.deleteResourceList(deployedResources, options);
215
+ }
216
+ /**
217
+ * Rollback resources in reverse-deployment order, skipping scoped
218
+ * resources. Used by the deploy-failure auto-rollback path where
219
+ * resources are in deployment order and scope filtering hasn't been
220
+ * applied.
217
221
  */
218
222
  async rollbackDeployedResources(deployedResources, options) {
223
+ const filtered = [...deployedResources]
224
+ .reverse()
225
+ .filter((r) => {
226
+ const scopes = getEffectiveScopes(r.manifest);
227
+ if (options.targetScopes !== undefined) {
228
+ return scopesMatchFilter(scopes, options.targetScopes);
229
+ }
230
+ if (scopes.length > 0) {
231
+ this.logger.debug('Skipping scoped resource during rollback', {
232
+ resourceId: r.id,
233
+ kind: r.kind,
234
+ name: r.name,
235
+ scopes,
236
+ });
237
+ return false;
238
+ }
239
+ return true;
240
+ });
241
+ return this.deleteResourceList(filtered, options);
242
+ }
243
+ /**
244
+ * Core deletion loop — iterates the resource list in order, deleting
245
+ * each non-failed resource. Shared by both ordered and unordered paths.
246
+ */
247
+ async deleteResourceList(resources, options) {
219
248
  this.emitDeploymentEvent(options, {
220
249
  type: 'rollback',
221
250
  message: 'Starting rollback of deployed resources',
@@ -223,35 +252,14 @@ export class ResourceRollbackManager {
223
252
  });
224
253
  const rolledBackResources = [];
225
254
  const errors = [];
226
- // Rollback in reverse order
227
- const reversedResources = [...deployedResources].reverse();
228
- for (const resource of reversedResources) {
229
- // Only try to rollback resources that were actually deployed (not failed)
230
- if (resource.status === 'failed') {
231
- continue; // Skip resources that failed to deploy
232
- }
233
- // Skip shared resources — they survive instance deletion (e.g., HelmRepository in flux-system)
234
- if (getMetadataField(resource.manifest, 'lifecycle') === 'shared') {
235
- this.logger.debug('Skipping shared resource during rollback', {
236
- resourceId: resource.id,
237
- kind: resource.kind,
238
- name: resource.name,
239
- });
255
+ for (const resource of resources) {
256
+ if (resource.status === 'failed' && resource.applied !== true)
240
257
  continue;
241
- }
242
258
  try {
243
- await this.k8sApi.delete({
244
- apiVersion: resource.manifest.apiVersion || '',
245
- kind: resource.kind,
246
- metadata: {
247
- name: resource.name,
248
- namespace: resource.namespace,
249
- },
250
- });
259
+ await this.deleteDeployedResource(resource);
251
260
  rolledBackResources.push(`${resource.kind}/${resource.name}`);
252
261
  }
253
262
  catch (error) {
254
- // Log and collect errors for individual resource deletion failures
255
263
  this.logger.warn('Failed to delete resource during rollback', {
256
264
  error: ensureError(error),
257
265
  resourceId: resource.id,
@@ -269,32 +277,40 @@ export class ResourceRollbackManager {
269
277
  return { rolledBackResources, errors };
270
278
  }
271
279
  /**
272
- * Delete a single deployed resource from the cluster and wait for deletion to complete.
280
+ * Delete a single deployed resource from the cluster and wait for
281
+ * deletion to complete.
282
+ *
283
+ * This method does NOT perform scope filtering — the caller (typically
284
+ * `engine.rollbackRecord`) is responsible for deciding which resources
285
+ * should be deleted. Filtering at this level would silently drop
286
+ * resources that the caller explicitly targeted for deletion.
273
287
  */
274
288
  async deleteDeployedResource(resource) {
275
- // Skip shared resources — they survive instance deletion
276
- if (getMetadataField(resource.manifest, 'lifecycle') === 'shared') {
277
- this.logger.debug('Skipping shared resource deletion', {
278
- resourceId: resource.id,
279
- kind: resource.kind,
280
- name: resource.name,
281
- });
282
- return;
283
- }
284
289
  const deleteLogger = this.logger.child({
285
290
  resourceId: resource.id,
286
291
  kind: resource.kind,
287
292
  name: resource.name,
288
293
  });
294
+ const isClusterScoped = getMetadataField(resource.manifest, 'scope') === 'cluster';
295
+ const metadata = {
296
+ name: resource.name,
297
+ ...(isClusterScoped ? {} : { namespace: resource.namespace }),
298
+ };
289
299
  try {
290
- await this.k8sApi.delete({
291
- apiVersion: resource.manifest.apiVersion || '',
292
- kind: resource.kind,
293
- metadata: {
294
- name: resource.name,
295
- namespace: resource.namespace,
296
- },
297
- });
300
+ try {
301
+ await this.k8sApi.delete({
302
+ apiVersion: resource.manifest.apiVersion || '',
303
+ kind: resource.kind,
304
+ metadata,
305
+ });
306
+ }
307
+ catch (error) {
308
+ if (isNotFoundError(error)) {
309
+ deleteLogger.debug('Resource already deleted');
310
+ return;
311
+ }
312
+ throw error;
313
+ }
298
314
  // Wait for resource to be deleted
299
315
  const timeout = DEFAULT_DELETE_TIMEOUT;
300
316
  const startTime = Date.now();
@@ -303,10 +319,7 @@ export class ResourceRollbackManager {
303
319
  await this.k8sApi.read({
304
320
  apiVersion: resource.manifest.apiVersion || '',
305
321
  kind: resource.kind,
306
- metadata: {
307
- name: resource.name,
308
- namespace: resource.namespace,
309
- },
322
+ metadata,
310
323
  });
311
324
  // Resource still exists, wait and try again
312
325
  await new Promise((resolve) => setTimeout(resolve, DEFAULT_FAST_POLL_INTERVAL));
@@ -1 +1 @@
1
- {"version":3,"file":"rollback-manager.js","sourceRoot":"","sources":["../../../src/core/deployment/rollback-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rollback-manager.js","sourceRoot":"","sources":["../../../src/core/deployment/rollback-manager.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,12 @@ export declare function createDeploymentOptions(factoryOptions: FactoryOptions,
32
32
  * @returns The extracted or generated instance name
33
33
  */
34
34
  export declare function generateInstanceName<TSpec>(spec: TSpec, fallbackPrefix?: string): string;
35
+ /**
36
+ * Singleton owner boundaries must use the stable singleton id as the CR name.
37
+ * This keeps owner creation and singleton.use() references aligned even when
38
+ * the singleton spec contains a user-facing `name` field with a different value.
39
+ */
40
+ export declare function getSingletonInstanceName(id: string): string;
35
41
  /**
36
42
  * Create Enhanced proxy metadata
37
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"shared-utilities.d.ts","sourceRoot":"","sources":["../../../src/core/deployment/shared-utilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAErF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,SAAS,iBAAiB,EAAE,OAAO,SAAS,iBAAiB,EAC7F,IAAI,EAAE,KAAK,EACX,gBAAgB,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,EAClD,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,IAAI,CAWN;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,QAAQ,GAAG,KAAK,GAAG,SAAoB,GAC5C,iBAAiB,CAanB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,SAAa,GAAG,MAAM,CAe5F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,QAAQ,GAAG,KAAK,GACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,CAYxC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAU5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAiBjF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoD5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2BlD"}
1
+ {"version":3,"file":"shared-utilities.d.ts","sourceRoot":"","sources":["../../../src/core/deployment/shared-utilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAErF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,SAAS,iBAAiB,EAAE,OAAO,SAAS,iBAAiB,EAC7F,IAAI,EAAE,KAAK,EACX,gBAAgB,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,EAClD,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,IAAI,CAqBN;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,QAAQ,GAAG,KAAK,GAAG,SAAoB,GAC5C,iBAAiB,CAanB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,SAAa,GAAG,MAAM,CAe5F;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CA8B3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,QAAQ,GAAG,KAAK,GACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,CAYxC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAU5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAiBjF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoD5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2BlD"}