typekro 0.1.0 → 0.2.2

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 (436) hide show
  1. package/LICENSE +201 -185
  2. package/README.md +581 -563
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/alchemy/deployers.d.ts +1 -1
  5. package/dist/alchemy/deployers.d.ts.map +1 -1
  6. package/dist/alchemy/deployers.js +25 -20
  7. package/dist/alchemy/deployers.js.map +1 -1
  8. package/dist/alchemy/deployment.d.ts +3 -3
  9. package/dist/alchemy/deployment.d.ts.map +1 -1
  10. package/dist/alchemy/deployment.js +2 -2
  11. package/dist/alchemy/deployment.js.map +1 -1
  12. package/dist/alchemy/index.d.ts +4 -4
  13. package/dist/alchemy/index.d.ts.map +1 -1
  14. package/dist/alchemy/index.js +6 -6
  15. package/dist/alchemy/index.js.map +1 -1
  16. package/dist/alchemy/resolver.d.ts +3 -3
  17. package/dist/alchemy/resolver.d.ts.map +1 -1
  18. package/dist/alchemy/resolver.js +70 -17
  19. package/dist/alchemy/resolver.js.map +1 -1
  20. package/dist/alchemy/resource-registration.d.ts.map +1 -1
  21. package/dist/alchemy/resource-registration.js +3 -3
  22. package/dist/alchemy/resource-registration.js.map +1 -1
  23. package/dist/alchemy/type-inference.d.ts.map +1 -1
  24. package/dist/alchemy/type-inference.js.map +1 -1
  25. package/dist/alchemy/types.d.ts +2 -2
  26. package/dist/alchemy/types.d.ts.map +1 -1
  27. package/dist/alchemy/utilities.d.ts.map +1 -1
  28. package/dist/alchemy/utilities.js.map +1 -1
  29. package/dist/alchemy/wrapper.d.ts.map +1 -1
  30. package/dist/alchemy/wrapper.js +2 -2
  31. package/dist/alchemy/wrapper.js.map +1 -1
  32. package/dist/core/composition/composition.d.ts +1 -85
  33. package/dist/core/composition/composition.d.ts.map +1 -1
  34. package/dist/core/composition/composition.js +3 -214
  35. package/dist/core/composition/composition.js.map +1 -1
  36. package/dist/core/composition/imperative.d.ts +39 -0
  37. package/dist/core/composition/imperative.d.ts.map +1 -0
  38. package/dist/core/composition/imperative.js +219 -0
  39. package/dist/core/composition/imperative.js.map +1 -0
  40. package/dist/core/composition/index.d.ts +5 -3
  41. package/dist/core/composition/index.d.ts.map +1 -1
  42. package/dist/core/composition/index.js +4 -2
  43. package/dist/core/composition/index.js.map +1 -1
  44. package/dist/core/composition/typekro-runtime/index.d.ts +1 -1
  45. package/dist/core/composition/typekro-runtime/index.d.ts.map +1 -1
  46. package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts.map +1 -1
  47. package/dist/core/composition/typekro-runtime/typekro-runtime.js +3 -3
  48. package/dist/core/composition/typekro-runtime/typekro-runtime.js.map +1 -1
  49. package/dist/core/composition/types.d.ts +0 -237
  50. package/dist/core/composition/types.d.ts.map +1 -1
  51. package/dist/core/composition/types.js +6 -0
  52. package/dist/core/composition/types.js.map +1 -1
  53. package/dist/core/constants/brands.d.ts.map +1 -1
  54. package/dist/core/constants/brands.js +3 -9
  55. package/dist/core/constants/brands.js.map +1 -1
  56. package/dist/core/dependencies/resolver.d.ts.map +1 -1
  57. package/dist/core/dependencies/resolver.js +3 -3
  58. package/dist/core/dependencies/resolver.js.map +1 -1
  59. package/dist/core/dependencies/type-guards.d.ts +3 -3
  60. package/dist/core/dependencies/type-guards.d.ts.map +1 -1
  61. package/dist/core/dependencies/type-guards.js +3 -3
  62. package/dist/core/dependencies/type-guards.js.map +1 -1
  63. package/dist/core/deployment/debug-logger.d.ts +119 -0
  64. package/dist/core/deployment/debug-logger.d.ts.map +1 -0
  65. package/dist/core/deployment/debug-logger.js +372 -0
  66. package/dist/core/deployment/debug-logger.js.map +1 -0
  67. package/dist/core/deployment/deployment-strategies.d.ts +1 -1
  68. package/dist/core/deployment/deployment-strategies.d.ts.map +1 -1
  69. package/dist/core/deployment/deployment-strategies.js +1 -1
  70. package/dist/core/deployment/deployment-strategies.js.map +1 -1
  71. package/dist/core/deployment/direct-factory.d.ts +11 -5
  72. package/dist/core/deployment/direct-factory.d.ts.map +1 -1
  73. package/dist/core/deployment/direct-factory.js +22 -12
  74. package/dist/core/deployment/direct-factory.js.map +1 -1
  75. package/dist/core/deployment/engine.d.ts +9 -6
  76. package/dist/core/deployment/engine.d.ts.map +1 -1
  77. package/dist/core/deployment/engine.js +184 -95
  78. package/dist/core/deployment/engine.js.map +1 -1
  79. package/dist/core/deployment/event-filter.d.ts +142 -0
  80. package/dist/core/deployment/event-filter.d.ts.map +1 -0
  81. package/dist/core/deployment/event-filter.js +420 -0
  82. package/dist/core/deployment/event-filter.js.map +1 -0
  83. package/dist/core/deployment/event-monitor.d.ts +197 -0
  84. package/dist/core/deployment/event-monitor.d.ts.map +1 -0
  85. package/dist/core/deployment/event-monitor.js +738 -0
  86. package/dist/core/deployment/event-monitor.js.map +1 -0
  87. package/dist/core/deployment/event-streamer.d.ts +112 -0
  88. package/dist/core/deployment/event-streamer.d.ts.map +1 -0
  89. package/dist/core/deployment/event-streamer.js +348 -0
  90. package/dist/core/deployment/event-streamer.js.map +1 -0
  91. package/dist/core/deployment/index.d.ts +5 -5
  92. package/dist/core/deployment/index.d.ts.map +1 -1
  93. package/dist/core/deployment/index.js +5 -5
  94. package/dist/core/deployment/index.js.map +1 -1
  95. package/dist/core/deployment/kro-factory.d.ts +2 -8
  96. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  97. package/dist/core/deployment/kro-factory.js +63 -109
  98. package/dist/core/deployment/kro-factory.js.map +1 -1
  99. package/dist/core/deployment/readiness.d.ts +6 -0
  100. package/dist/core/deployment/readiness.d.ts.map +1 -1
  101. package/dist/core/deployment/readiness.js +45 -1
  102. package/dist/core/deployment/readiness.js.map +1 -1
  103. package/dist/core/deployment/rollback-manager.d.ts.map +1 -1
  104. package/dist/core/deployment/rollback-manager.js +3 -3
  105. package/dist/core/deployment/rollback-manager.js.map +1 -1
  106. package/dist/core/deployment/shared-utilities.d.ts +1 -1
  107. package/dist/core/deployment/shared-utilities.d.ts.map +1 -1
  108. package/dist/core/deployment/shared-utilities.js +2 -0
  109. package/dist/core/deployment/shared-utilities.js.map +1 -1
  110. package/dist/core/deployment/status-hydrator.d.ts.map +1 -1
  111. package/dist/core/deployment/status-hydrator.js +31 -12
  112. package/dist/core/deployment/status-hydrator.js.map +1 -1
  113. package/dist/core/deployment/strategies/alchemy-strategy.d.ts +4 -4
  114. package/dist/core/deployment/strategies/alchemy-strategy.d.ts.map +1 -1
  115. package/dist/core/deployment/strategies/alchemy-strategy.js +9 -9
  116. package/dist/core/deployment/strategies/alchemy-strategy.js.map +1 -1
  117. package/dist/core/deployment/strategies/base-strategy.d.ts +7 -4
  118. package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
  119. package/dist/core/deployment/strategies/base-strategy.js +257 -11
  120. package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
  121. package/dist/core/deployment/strategies/direct-strategy.d.ts +4 -3
  122. package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -1
  123. package/dist/core/deployment/strategies/direct-strategy.js +4 -4
  124. package/dist/core/deployment/strategies/direct-strategy.js.map +1 -1
  125. package/dist/core/deployment/strategies/index.d.ts +1 -1
  126. package/dist/core/deployment/strategies/index.d.ts.map +1 -1
  127. package/dist/core/deployment/strategies/index.js +1 -1
  128. package/dist/core/deployment/strategies/index.js.map +1 -1
  129. package/dist/core/deployment/strategies/kro-strategy.d.ts +1 -1
  130. package/dist/core/deployment/strategies/kro-strategy.d.ts.map +1 -1
  131. package/dist/core/deployment/strategies/kro-strategy.js +14 -14
  132. package/dist/core/deployment/strategies/kro-strategy.js.map +1 -1
  133. package/dist/core/errors.d.ts +136 -0
  134. package/dist/core/errors.d.ts.map +1 -1
  135. package/dist/core/errors.js +362 -0
  136. package/dist/core/errors.js.map +1 -1
  137. package/dist/core/evaluation/cel-optimizer.d.ts.map +1 -1
  138. package/dist/core/evaluation/cel-optimizer.js +33 -11
  139. package/dist/core/evaluation/cel-optimizer.js.map +1 -1
  140. package/dist/core/factory.d.ts.map +1 -1
  141. package/dist/core/factory.js.map +1 -1
  142. package/dist/core/kubernetes/api.d.ts +13 -2
  143. package/dist/core/kubernetes/api.d.ts.map +1 -1
  144. package/dist/core/kubernetes/api.js +21 -8
  145. package/dist/core/kubernetes/api.js.map +1 -1
  146. package/dist/core/kubernetes/client-provider.d.ts +192 -0
  147. package/dist/core/kubernetes/client-provider.d.ts.map +1 -1
  148. package/dist/core/kubernetes/client-provider.js +423 -22
  149. package/dist/core/kubernetes/client-provider.js.map +1 -1
  150. package/dist/core/logging/config.d.ts.map +1 -1
  151. package/dist/core/logging/config.js.map +1 -1
  152. package/dist/core/logging/index.d.ts +1 -1
  153. package/dist/core/logging/index.d.ts.map +1 -1
  154. package/dist/core/logging/index.js +1 -1
  155. package/dist/core/logging/index.js.map +1 -1
  156. package/dist/core/logging/logger.d.ts +1 -1
  157. package/dist/core/logging/logger.d.ts.map +1 -1
  158. package/dist/core/logging/logger.js.map +1 -1
  159. package/dist/core/readiness/cluster-state.d.ts.map +1 -1
  160. package/dist/core/readiness/cluster-state.js +12 -6
  161. package/dist/core/readiness/cluster-state.js.map +1 -1
  162. package/dist/core/references/cel-evaluator.js +1 -1
  163. package/dist/core/references/cel-evaluator.js.map +1 -1
  164. package/dist/core/references/cel.d.ts.map +1 -1
  165. package/dist/core/references/cel.js +1 -1
  166. package/dist/core/references/cel.js.map +1 -1
  167. package/dist/core/references/external-refs.d.ts +1 -1
  168. package/dist/core/references/external-refs.js +1 -1
  169. package/dist/core/references/index.d.ts +4 -4
  170. package/dist/core/references/index.d.ts.map +1 -1
  171. package/dist/core/references/index.js +6 -6
  172. package/dist/core/references/index.js.map +1 -1
  173. package/dist/core/references/resolver.d.ts +1 -1
  174. package/dist/core/references/resolver.d.ts.map +1 -1
  175. package/dist/core/references/resolver.js +69 -44
  176. package/dist/core/references/resolver.js.map +1 -1
  177. package/dist/core/references/schema-proxy.d.ts.map +1 -1
  178. package/dist/core/references/schema-proxy.js +2 -4
  179. package/dist/core/references/schema-proxy.js.map +1 -1
  180. package/dist/core/serialization/core.d.ts +1 -1
  181. package/dist/core/serialization/core.d.ts.map +1 -1
  182. package/dist/core/serialization/core.js +122 -16
  183. package/dist/core/serialization/core.js.map +1 -1
  184. package/dist/core/serialization/schema.js +1 -1
  185. package/dist/core/serialization/schema.js.map +1 -1
  186. package/dist/core/serialization/validation.js +1 -1
  187. package/dist/core/serialization/validation.js.map +1 -1
  188. package/dist/core/serialization/yaml.js +1 -1
  189. package/dist/core/serialization/yaml.js.map +1 -1
  190. package/dist/core/types/common.d.ts.map +1 -1
  191. package/dist/core/types/deployment.d.ts +116 -3
  192. package/dist/core/types/deployment.d.ts.map +1 -1
  193. package/dist/core/types/deployment.js.map +1 -1
  194. package/dist/core/types/index.d.ts +1 -1
  195. package/dist/core/types/index.d.ts.map +1 -1
  196. package/dist/core/types/index.js.map +1 -1
  197. package/dist/core/types/kubernetes.d.ts.map +1 -1
  198. package/dist/core/types/serialization.d.ts +14 -3
  199. package/dist/core/types/serialization.d.ts.map +1 -1
  200. package/dist/core/validation/cel-validator.d.ts.map +1 -1
  201. package/dist/core/validation/cel-validator.js +28 -10
  202. package/dist/core/validation/cel-validator.js.map +1 -1
  203. package/dist/core/yaml/index.d.ts +1 -1
  204. package/dist/core/yaml/index.d.ts.map +1 -1
  205. package/dist/core/yaml/index.js +1 -1
  206. package/dist/core/yaml/index.js.map +1 -1
  207. package/dist/core/yaml/path-resolver.d.ts.map +1 -1
  208. package/dist/core/yaml/path-resolver.js +6 -6
  209. package/dist/core/yaml/path-resolver.js.map +1 -1
  210. package/dist/core.d.ts +10 -10
  211. package/dist/core.d.ts.map +1 -1
  212. package/dist/core.js +14 -14
  213. package/dist/core.js.map +1 -1
  214. package/dist/factories/flux/git-repository.d.ts.map +1 -1
  215. package/dist/factories/flux/git-repository.js.map +1 -1
  216. package/dist/factories/flux/index.d.ts +1 -1
  217. package/dist/factories/flux/index.d.ts.map +1 -1
  218. package/dist/factories/flux/index.js.map +1 -1
  219. package/dist/factories/flux/kustomize/index.d.ts +1 -1
  220. package/dist/factories/flux/kustomize/index.d.ts.map +1 -1
  221. package/dist/factories/flux/kustomize/index.js.map +1 -1
  222. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts.map +1 -1
  223. package/dist/factories/flux/kustomize/readiness-evaluators.js +9 -9
  224. package/dist/factories/flux/kustomize/readiness-evaluators.js.map +1 -1
  225. package/dist/factories/flux/kustomize/types.d.ts +1 -1
  226. package/dist/factories/flux/kustomize/types.d.ts.map +1 -1
  227. package/dist/factories/helm/helm-release.d.ts +7 -4
  228. package/dist/factories/helm/helm-release.d.ts.map +1 -1
  229. package/dist/factories/helm/helm-release.js +7 -4
  230. package/dist/factories/helm/helm-release.js.map +1 -1
  231. package/dist/factories/helm/helm-repository.d.ts.map +1 -1
  232. package/dist/factories/helm/helm-repository.js.map +1 -1
  233. package/dist/factories/helm/index.d.ts +1 -1
  234. package/dist/factories/helm/index.d.ts.map +1 -1
  235. package/dist/factories/helm/index.js +1 -1
  236. package/dist/factories/helm/index.js.map +1 -1
  237. package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
  238. package/dist/factories/helm/readiness-evaluators.js +4 -2
  239. package/dist/factories/helm/readiness-evaluators.js.map +1 -1
  240. package/dist/factories/index.d.ts +6 -3
  241. package/dist/factories/index.d.ts.map +1 -1
  242. package/dist/factories/index.js +10 -6
  243. package/dist/factories/index.js.map +1 -1
  244. package/dist/factories/kro/index.d.ts +3 -3
  245. package/dist/factories/kro/index.d.ts.map +1 -1
  246. package/dist/factories/kro/index.js +2 -2
  247. package/dist/factories/kro/index.js.map +1 -1
  248. package/dist/factories/kro/kro-crd.d.ts.map +1 -1
  249. package/dist/factories/kro/kro-crd.js +5 -5
  250. package/dist/factories/kro/kro-crd.js.map +1 -1
  251. package/dist/factories/kro/kro-custom-resource.d.ts.map +1 -1
  252. package/dist/factories/kro/kro-custom-resource.js +21 -21
  253. package/dist/factories/kro/kro-custom-resource.js.map +1 -1
  254. package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -1
  255. package/dist/factories/kro/resource-graph-definition.js +7 -7
  256. package/dist/factories/kro/resource-graph-definition.js.map +1 -1
  257. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts.map +1 -1
  258. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js.map +1 -1
  259. package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js +2 -2
  260. package/dist/factories/kubernetes/certificates/certificate-signing-request.js +2 -2
  261. package/dist/factories/kubernetes/certificates/certificate-signing-request.js.map +1 -1
  262. package/dist/factories/kubernetes/config/config-map.js +1 -1
  263. package/dist/factories/kubernetes/config/config-map.js.map +1 -1
  264. package/dist/factories/kubernetes/config/secret.js +1 -1
  265. package/dist/factories/kubernetes/config/secret.js.map +1 -1
  266. package/dist/factories/kubernetes/core/component-status.js +1 -1
  267. package/dist/factories/kubernetes/core/component-status.js.map +1 -1
  268. package/dist/factories/kubernetes/core/node.js +1 -1
  269. package/dist/factories/kubernetes/core/node.js.map +1 -1
  270. package/dist/factories/kubernetes/core/pod.js +4 -4
  271. package/dist/factories/kubernetes/core/pod.js.map +1 -1
  272. package/dist/factories/kubernetes/extensions/custom-resource-definition.js +2 -2
  273. package/dist/factories/kubernetes/extensions/custom-resource-definition.js.map +1 -1
  274. package/dist/factories/kubernetes/index.d.ts +2 -2
  275. package/dist/factories/kubernetes/index.d.ts.map +1 -1
  276. package/dist/factories/kubernetes/index.js +8 -8
  277. package/dist/factories/kubernetes/index.js.map +1 -1
  278. package/dist/factories/kubernetes/networking/endpoints.d.ts.map +1 -1
  279. package/dist/factories/kubernetes/networking/endpoints.js +4 -4
  280. package/dist/factories/kubernetes/networking/endpoints.js.map +1 -1
  281. package/dist/factories/kubernetes/networking/ingress.js +2 -2
  282. package/dist/factories/kubernetes/networking/network-policy.js +2 -2
  283. package/dist/factories/kubernetes/networking/network-policy.js.map +1 -1
  284. package/dist/factories/kubernetes/networking/service.d.ts.map +1 -1
  285. package/dist/factories/kubernetes/networking/service.js +8 -7
  286. package/dist/factories/kubernetes/networking/service.js.map +1 -1
  287. package/dist/factories/kubernetes/policy/limit-range.js +2 -2
  288. package/dist/factories/kubernetes/policy/limit-range.js.map +1 -1
  289. package/dist/factories/kubernetes/policy/pod-disruption-budget.js +5 -5
  290. package/dist/factories/kubernetes/policy/resource-quota.js +4 -4
  291. package/dist/factories/kubernetes/rbac/cluster-role-binding.js +2 -2
  292. package/dist/factories/kubernetes/rbac/cluster-role-binding.js.map +1 -1
  293. package/dist/factories/kubernetes/rbac/cluster-role.js +2 -2
  294. package/dist/factories/kubernetes/rbac/cluster-role.js.map +1 -1
  295. package/dist/factories/kubernetes/rbac/role-binding.js +2 -2
  296. package/dist/factories/kubernetes/rbac/role-binding.js.map +1 -1
  297. package/dist/factories/kubernetes/rbac/role.js +2 -2
  298. package/dist/factories/kubernetes/rbac/role.js.map +1 -1
  299. package/dist/factories/kubernetes/rbac/service-account.js +2 -2
  300. package/dist/factories/kubernetes/rbac/service-account.js.map +1 -1
  301. package/dist/factories/kubernetes/storage/persistent-volume-claim.js +2 -2
  302. package/dist/factories/kubernetes/storage/persistent-volume.js +4 -4
  303. package/dist/factories/kubernetes/storage/storage-class.js +2 -2
  304. package/dist/factories/kubernetes/storage/storage-class.js.map +1 -1
  305. package/dist/factories/kubernetes/workloads/cron-job.js +5 -5
  306. package/dist/factories/kubernetes/workloads/daemon-set.js +2 -2
  307. package/dist/factories/kubernetes/workloads/deployment.d.ts.map +1 -1
  308. package/dist/factories/kubernetes/workloads/deployment.js +5 -6
  309. package/dist/factories/kubernetes/workloads/deployment.js.map +1 -1
  310. package/dist/factories/kubernetes/workloads/job.js +10 -10
  311. package/dist/factories/kubernetes/workloads/replica-set.js +2 -2
  312. package/dist/factories/kubernetes/workloads/replication-controller.js +5 -5
  313. package/dist/factories/kubernetes/workloads/stateful-set.d.ts.map +1 -1
  314. package/dist/factories/kubernetes/workloads/stateful-set.js +7 -7
  315. package/dist/factories/kubernetes/workloads/stateful-set.js.map +1 -1
  316. package/dist/factories/kubernetes/yaml/index.d.ts +1 -1
  317. package/dist/factories/kubernetes/yaml/index.d.ts.map +1 -1
  318. package/dist/factories/kubernetes/yaml/index.js +1 -1
  319. package/dist/factories/kubernetes/yaml/index.js.map +1 -1
  320. package/dist/factories/kubernetes/yaml/yaml-directory.d.ts +2 -2
  321. package/dist/factories/kubernetes/yaml/yaml-directory.d.ts.map +1 -1
  322. package/dist/factories/kubernetes/yaml/yaml-directory.js +106 -101
  323. package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -1
  324. package/dist/factories/kubernetes/yaml/yaml-file.d.ts +7 -4
  325. package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -1
  326. package/dist/factories/kubernetes/yaml/yaml-file.js +110 -99
  327. package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -1
  328. package/dist/factories/shared.d.ts +49 -0
  329. package/dist/factories/shared.d.ts.map +1 -1
  330. package/dist/factories/shared.js +75 -3
  331. package/dist/factories/shared.js.map +1 -1
  332. package/dist/factories/simple/autoscaling/horizontal-pod-autoscaler.d.ts +17 -0
  333. package/dist/factories/simple/autoscaling/horizontal-pod-autoscaler.d.ts.map +1 -0
  334. package/dist/factories/simple/autoscaling/horizontal-pod-autoscaler.js +46 -0
  335. package/dist/factories/simple/autoscaling/horizontal-pod-autoscaler.js.map +1 -0
  336. package/dist/factories/simple/autoscaling/index.d.ts +8 -0
  337. package/dist/factories/simple/autoscaling/index.d.ts.map +1 -0
  338. package/dist/factories/simple/autoscaling/index.js +8 -0
  339. package/dist/factories/simple/autoscaling/index.js.map +1 -0
  340. package/dist/factories/simple/config/config-map.d.ts +17 -0
  341. package/dist/factories/simple/config/config-map.d.ts.map +1 -0
  342. package/dist/factories/simple/config/config-map.js +25 -0
  343. package/dist/factories/simple/config/config-map.js.map +1 -0
  344. package/dist/factories/simple/config/index.d.ts +9 -0
  345. package/dist/factories/simple/config/index.d.ts.map +1 -0
  346. package/dist/factories/simple/config/index.js +9 -0
  347. package/dist/factories/simple/config/index.js.map +1 -0
  348. package/dist/factories/simple/config/secret.d.ts +17 -0
  349. package/dist/factories/simple/config/secret.d.ts.map +1 -0
  350. package/dist/factories/simple/config/secret.js +24 -0
  351. package/dist/factories/simple/config/secret.js.map +1 -0
  352. package/dist/factories/simple/helm/index.d.ts +16 -0
  353. package/dist/factories/simple/helm/index.d.ts.map +1 -0
  354. package/dist/factories/simple/helm/index.js +21 -0
  355. package/dist/factories/simple/helm/index.js.map +1 -0
  356. package/dist/factories/simple/index.d.ts +50 -0
  357. package/dist/factories/simple/index.d.ts.map +1 -0
  358. package/dist/factories/simple/index.js +58 -0
  359. package/dist/factories/simple/index.js.map +1 -0
  360. package/dist/factories/simple/networking/index.d.ts +10 -0
  361. package/dist/factories/simple/networking/index.d.ts.map +1 -0
  362. package/dist/factories/simple/networking/index.js +10 -0
  363. package/dist/factories/simple/networking/index.js.map +1 -0
  364. package/dist/factories/simple/networking/ingress.d.ts +17 -0
  365. package/dist/factories/simple/networking/ingress.d.ts.map +1 -0
  366. package/dist/factories/simple/networking/ingress.js +30 -0
  367. package/dist/factories/simple/networking/ingress.js.map +1 -0
  368. package/dist/factories/simple/networking/network-policy.d.ts +17 -0
  369. package/dist/factories/simple/networking/network-policy.d.ts.map +1 -0
  370. package/dist/factories/simple/networking/network-policy.js +30 -0
  371. package/dist/factories/simple/networking/network-policy.js.map +1 -0
  372. package/dist/factories/simple/networking/service.d.ts +17 -0
  373. package/dist/factories/simple/networking/service.d.ts.map +1 -0
  374. package/dist/factories/simple/networking/service.js +27 -0
  375. package/dist/factories/simple/networking/service.js.map +1 -0
  376. package/dist/factories/simple/storage/index.d.ts +9 -0
  377. package/dist/factories/simple/storage/index.d.ts.map +1 -0
  378. package/dist/factories/simple/storage/index.js +9 -0
  379. package/dist/factories/simple/storage/index.js.map +1 -0
  380. package/dist/factories/simple/storage/persistent-volume-claim.d.ts +17 -0
  381. package/dist/factories/simple/storage/persistent-volume-claim.d.ts.map +1 -0
  382. package/dist/factories/simple/storage/persistent-volume-claim.js +32 -0
  383. package/dist/factories/simple/storage/persistent-volume-claim.js.map +1 -0
  384. package/dist/factories/simple/storage/persistent-volume.d.ts +17 -0
  385. package/dist/factories/simple/storage/persistent-volume.d.ts.map +1 -0
  386. package/dist/factories/simple/storage/persistent-volume.js +44 -0
  387. package/dist/factories/simple/storage/persistent-volume.js.map +1 -0
  388. package/dist/factories/simple/types.d.ts +165 -0
  389. package/dist/factories/simple/types.d.ts.map +1 -0
  390. package/dist/factories/simple/types.js +9 -0
  391. package/dist/factories/simple/types.js.map +1 -0
  392. package/dist/factories/simple/workloads/cron-job.d.ts +17 -0
  393. package/dist/factories/simple/workloads/cron-job.d.ts.map +1 -0
  394. package/dist/factories/simple/workloads/cron-job.js +43 -0
  395. package/dist/factories/simple/workloads/cron-job.js.map +1 -0
  396. package/dist/factories/simple/workloads/daemon-set.d.ts +17 -0
  397. package/dist/factories/simple/workloads/daemon-set.d.ts.map +1 -0
  398. package/dist/factories/simple/workloads/daemon-set.js +46 -0
  399. package/dist/factories/simple/workloads/daemon-set.js.map +1 -0
  400. package/dist/factories/simple/workloads/deployment.d.ts +17 -0
  401. package/dist/factories/simple/workloads/deployment.d.ts.map +1 -0
  402. package/dist/factories/simple/workloads/deployment.js +47 -0
  403. package/dist/factories/simple/workloads/deployment.js.map +1 -0
  404. package/dist/factories/simple/workloads/index.d.ts +12 -0
  405. package/dist/factories/simple/workloads/index.d.ts.map +1 -0
  406. package/dist/factories/simple/workloads/index.js +12 -0
  407. package/dist/factories/simple/workloads/index.js.map +1 -0
  408. package/dist/factories/simple/workloads/job.d.ts +17 -0
  409. package/dist/factories/simple/workloads/job.d.ts.map +1 -0
  410. package/dist/factories/simple/workloads/job.js +40 -0
  411. package/dist/factories/simple/workloads/job.js.map +1 -0
  412. package/dist/factories/simple/workloads/stateful-set.d.ts +17 -0
  413. package/dist/factories/simple/workloads/stateful-set.d.ts.map +1 -0
  414. package/dist/factories/simple/workloads/stateful-set.js +47 -0
  415. package/dist/factories/simple/workloads/stateful-set.js.map +1 -0
  416. package/dist/factories/simple/yaml/index.d.ts +13 -0
  417. package/dist/factories/simple/yaml/index.d.ts.map +1 -0
  418. package/dist/factories/simple/yaml/index.js +23 -0
  419. package/dist/factories/simple/yaml/index.js.map +1 -0
  420. package/dist/index.d.ts +5 -3
  421. package/dist/index.d.ts.map +1 -1
  422. package/dist/index.js +25 -22
  423. package/dist/index.js.map +1 -1
  424. package/dist/utils/helpers.d.ts +1 -1
  425. package/dist/utils/helpers.d.ts.map +1 -1
  426. package/dist/utils/helpers.js +53 -7
  427. package/dist/utils/helpers.js.map +1 -1
  428. package/dist/utils/index.d.ts +2 -2
  429. package/dist/utils/index.d.ts.map +1 -1
  430. package/dist/utils/index.js +2 -2
  431. package/dist/utils/index.js.map +1 -1
  432. package/dist/utils/type-guards.d.ts +1 -1
  433. package/dist/utils/type-guards.d.ts.map +1 -1
  434. package/dist/utils/type-guards.js +3 -9
  435. package/dist/utils/type-guards.js.map +1 -1
  436. package/package.json +12 -6
@@ -0,0 +1,420 @@
1
+ /**
2
+ * EventFilter - Server-side and Client-side Event Filtering
3
+ *
4
+ * Provides both server-side field selector generation and client-side
5
+ * filtering for complex relationships that cannot be expressed server-side.
6
+ */
7
+ import { getComponentLogger } from '../logging/index.js';
8
+ /**
9
+ * Field selector builder for server-side filtering
10
+ */
11
+ export class FieldSelectorBuilder {
12
+ logger = getComponentLogger('field-selector-builder');
13
+ /**
14
+ * Build field selector for specific resources
15
+ */
16
+ buildForResources(resources) {
17
+ if (resources.length === 0) {
18
+ return '';
19
+ }
20
+ // Group resources by kind and namespace for efficient filtering
21
+ const resourceGroups = this.groupResourcesByKindAndNamespace(resources);
22
+ const selectors = [];
23
+ for (const [key, resourceList] of resourceGroups) {
24
+ const [kindRaw, namespaceRaw] = key.split('/');
25
+ const kind = kindRaw || 'unknown';
26
+ const namespace = namespaceRaw || 'default';
27
+ const selector = this.buildSelectorForResourceGroup(kind, namespace, resourceList);
28
+ if (selector) {
29
+ selectors.push(selector);
30
+ }
31
+ }
32
+ return selectors.join(',');
33
+ }
34
+ /**
35
+ * Build field selector for resource kinds (broader filtering)
36
+ */
37
+ buildForResourceKinds(kinds, namespace) {
38
+ const selectors = [];
39
+ for (const kind of kinds) {
40
+ let selector = `involvedObject.kind=${kind}`;
41
+ if (namespace) {
42
+ selector += `,involvedObject.namespace=${namespace}`;
43
+ }
44
+ selectors.push(selector);
45
+ }
46
+ return selectors.join(',');
47
+ }
48
+ /**
49
+ * Build field selector for time-based filtering
50
+ */
51
+ buildForTimeRange(startTime, endTime) {
52
+ const selectors = [];
53
+ if (startTime) {
54
+ // Note: Kubernetes doesn't support time-based field selectors directly
55
+ // We'll use resource version for time-based filtering instead
56
+ this.logger.debug('Time-based filtering requires resource version management');
57
+ }
58
+ if (endTime) {
59
+ this.logger.debug('End time filtering not directly supported via field selectors');
60
+ }
61
+ return selectors.join(',');
62
+ }
63
+ /**
64
+ * Build field selector for event types
65
+ */
66
+ buildForEventTypes(eventTypes) {
67
+ if (eventTypes.length === 0) {
68
+ return '';
69
+ }
70
+ // Kubernetes field selectors don't support OR operations for the same field
71
+ // So we can't filter by multiple event types server-side efficiently
72
+ // This will need to be done client-side
73
+ this.logger.debug('Event type filtering requires client-side processing for multiple types');
74
+ if (eventTypes.length === 1) {
75
+ return `type=${eventTypes[0]}`;
76
+ }
77
+ return ''; // Multiple types require client-side filtering
78
+ }
79
+ /**
80
+ * Group resources by kind and namespace
81
+ */
82
+ groupResourcesByKindAndNamespace(resources) {
83
+ const groups = new Map();
84
+ for (const resource of resources) {
85
+ const key = `${resource.kind}/${resource.namespace || 'default'}`;
86
+ const group = groups.get(key) || [];
87
+ group.push(resource);
88
+ groups.set(key, group);
89
+ }
90
+ return groups;
91
+ }
92
+ /**
93
+ * Build selector for a group of resources of the same kind/namespace
94
+ */
95
+ buildSelectorForResourceGroup(kind, namespace, resources) {
96
+ const baseSelector = `involvedObject.kind=${kind},involvedObject.namespace=${namespace}`;
97
+ if (resources.length === 1) {
98
+ // Single resource - can filter by name server-side
99
+ return `${baseSelector},involvedObject.name=${resources[0]?.name || 'unknown'}`;
100
+ }
101
+ else if (resources.length <= 5) {
102
+ // Small number of resources - use kind filter and do name filtering client-side
103
+ // This is more efficient than multiple watch connections for small numbers
104
+ return baseSelector;
105
+ }
106
+ else {
107
+ // Large number of resources - use kind filter only
108
+ // Client-side filtering will handle name matching
109
+ return baseSelector;
110
+ }
111
+ }
112
+ }
113
+ /**
114
+ * EventFilter handles both server-side and client-side event filtering
115
+ */
116
+ export class EventFilter {
117
+ options;
118
+ logger = getComponentLogger('event-filter');
119
+ fieldSelectorBuilder = new FieldSelectorBuilder();
120
+ deduplicationCache = new Map();
121
+ monitoredResources = new Set();
122
+ constructor(options = {}) {
123
+ this.options = {
124
+ eventTypes: options.eventTypes || ['Warning', 'Error'],
125
+ includeChildResources: options.includeChildResources ?? true,
126
+ deduplicationWindow: options.deduplicationWindow || 60, // 1 minute
127
+ maxEventsPerResource: options.maxEventsPerResource || 100,
128
+ };
129
+ }
130
+ /**
131
+ * Generate server-side field selectors for resources
132
+ */
133
+ generateFieldSelectors(resources) {
134
+ const resourceIdentifiers = resources
135
+ .filter((r) => r.manifest.metadata?.uid) // Only include resources with UIDs
136
+ .map((r) => ({
137
+ kind: r.kind,
138
+ name: r.name,
139
+ namespace: r.namespace,
140
+ uid: r.manifest.metadata?.uid, // Safe to use ! since we filtered above
141
+ }));
142
+ // Update monitored resources
143
+ this.updateMonitoredResources(resourceIdentifiers);
144
+ // Generate field selectors grouped by namespace and kind
145
+ const selectorsByNamespace = new Map();
146
+ const resourcesByNamespace = this.groupResourcesByNamespace(resourceIdentifiers);
147
+ for (const [namespace, namespaceResources] of resourcesByNamespace) {
148
+ const selector = this.fieldSelectorBuilder.buildForResources(namespaceResources);
149
+ if (selector) {
150
+ selectorsByNamespace.set(namespace, selector);
151
+ }
152
+ }
153
+ this.logger.debug('Generated field selectors', {
154
+ namespaces: Array.from(selectorsByNamespace.keys()),
155
+ totalResources: resourceIdentifiers.length,
156
+ });
157
+ return selectorsByNamespace;
158
+ }
159
+ /**
160
+ * Check if an event is relevant to monitored resources (client-side filtering)
161
+ */
162
+ isRelevant(event, deployedResources) {
163
+ // Check event type filter
164
+ if (!this.options.eventTypes.includes(event.eventType)) {
165
+ return false;
166
+ }
167
+ // Check if event is for a monitored resource
168
+ const eventResourceId = this.getResourceId(event.involvedObject.kind, event.involvedObject.name, event.involvedObject.namespace);
169
+ if (this.monitoredResources.has(eventResourceId)) {
170
+ return true;
171
+ }
172
+ // Check child resources if enabled
173
+ if (this.options.includeChildResources) {
174
+ return this.isChildResourceEvent(event, deployedResources);
175
+ }
176
+ return false;
177
+ }
178
+ /**
179
+ * Check if event should be deduplicated
180
+ */
181
+ shouldDeduplicate(event) {
182
+ const deduplicationKey = this.getDeduplicationKey(event);
183
+ const keyString = this.serializeDeduplicationKey(deduplicationKey);
184
+ const now = new Date();
185
+ const existing = this.deduplicationCache.get(keyString);
186
+ if (!existing) {
187
+ // First occurrence - add to cache
188
+ this.deduplicationCache.set(keyString, {
189
+ key: deduplicationKey,
190
+ firstSeen: now,
191
+ lastSeen: now,
192
+ count: 1,
193
+ lastEvent: event,
194
+ });
195
+ return false; // Don't deduplicate first occurrence
196
+ }
197
+ // Check if within deduplication window
198
+ const timeSinceFirst = now.getTime() - existing.firstSeen.getTime();
199
+ const windowMs = this.options.deduplicationWindow * 1000;
200
+ if (timeSinceFirst > windowMs) {
201
+ // Outside window - reset entry
202
+ this.deduplicationCache.set(keyString, {
203
+ key: deduplicationKey,
204
+ firstSeen: now,
205
+ lastSeen: now,
206
+ count: 1,
207
+ lastEvent: event,
208
+ });
209
+ return false;
210
+ }
211
+ // Within window - update entry and deduplicate
212
+ existing.lastSeen = now;
213
+ existing.count++;
214
+ existing.lastEvent = event;
215
+ // Deduplicate if we've seen this event multiple times recently
216
+ return existing.count > 1;
217
+ }
218
+ /**
219
+ * Get event priority for filtering and display
220
+ */
221
+ getEventPriority(event) {
222
+ // Error events are always high priority
223
+ if (event.eventType === 'Error') {
224
+ return 'high';
225
+ }
226
+ // Warning events are medium priority, but some reasons are high priority
227
+ if (event.eventType === 'Warning') {
228
+ const highPriorityReasons = [
229
+ 'Failed',
230
+ 'FailedMount',
231
+ 'FailedScheduling',
232
+ 'FailedCreatePodSandBox',
233
+ 'FailedPostStartHook',
234
+ 'FailedPreStopHook',
235
+ 'Unhealthy',
236
+ 'ProbeWarning',
237
+ ];
238
+ if (highPriorityReasons.some((reason) => event.reason.includes(reason))) {
239
+ return 'high';
240
+ }
241
+ return 'medium';
242
+ }
243
+ // Normal events are generally low priority
244
+ if (event.eventType === 'Normal') {
245
+ const mediumPriorityReasons = [
246
+ 'Scheduled',
247
+ 'Pulled',
248
+ 'Created',
249
+ 'Started',
250
+ 'Killing',
251
+ 'ScalingReplicaSet',
252
+ ];
253
+ if (mediumPriorityReasons.some((reason) => event.reason.includes(reason))) {
254
+ return 'medium';
255
+ }
256
+ return 'low';
257
+ }
258
+ return 'low';
259
+ }
260
+ /**
261
+ * Discover child resources from owner references
262
+ */
263
+ async discoverChildResources(parentResource, k8sApi) {
264
+ const childResources = [];
265
+ try {
266
+ // This is a simplified implementation
267
+ // In a full implementation, we would query various resource types
268
+ // and check their ownerReferences to find children
269
+ if (parentResource.kind === 'Deployment') {
270
+ // Find ReplicaSets owned by this Deployment
271
+ const replicaSets = await this.findReplicaSetsForDeployment(parentResource, k8sApi);
272
+ childResources.push(...replicaSets);
273
+ // Find Pods owned by the ReplicaSets
274
+ for (const replicaSet of replicaSets) {
275
+ const pods = await this.findPodsForReplicaSet(replicaSet, k8sApi);
276
+ childResources.push(...pods);
277
+ }
278
+ }
279
+ this.logger.debug('Discovered child resources', {
280
+ parent: `${parentResource.kind}/${parentResource.name}`,
281
+ childCount: childResources.length,
282
+ });
283
+ }
284
+ catch (error) {
285
+ this.logger.warn('Failed to discover child resources', error);
286
+ }
287
+ return childResources;
288
+ }
289
+ /**
290
+ * Clean up old deduplication entries
291
+ */
292
+ cleanupDeduplicationCache() {
293
+ const now = new Date();
294
+ const windowMs = this.options.deduplicationWindow * 1000;
295
+ let cleanedCount = 0;
296
+ for (const [key, entry] of this.deduplicationCache) {
297
+ const age = now.getTime() - entry.lastSeen.getTime();
298
+ if (age > windowMs * 2) {
299
+ // Keep entries for 2x the window
300
+ this.deduplicationCache.delete(key);
301
+ cleanedCount++;
302
+ }
303
+ }
304
+ if (cleanedCount > 0) {
305
+ this.logger.debug('Cleaned up deduplication cache', {
306
+ cleanedEntries: cleanedCount,
307
+ remainingEntries: this.deduplicationCache.size,
308
+ });
309
+ }
310
+ }
311
+ /**
312
+ * Update monitored resources set
313
+ */
314
+ updateMonitoredResources(resources) {
315
+ this.monitoredResources.clear();
316
+ for (const resource of resources) {
317
+ const resourceId = this.getResourceId(resource.kind, resource.name, resource.namespace);
318
+ this.monitoredResources.add(resourceId);
319
+ }
320
+ }
321
+ /**
322
+ * Group resources by namespace
323
+ */
324
+ groupResourcesByNamespace(resources) {
325
+ const groups = new Map();
326
+ for (const resource of resources) {
327
+ const namespace = resource.namespace || 'default';
328
+ const group = groups.get(namespace) || [];
329
+ group.push(resource);
330
+ groups.set(namespace, group);
331
+ }
332
+ return groups;
333
+ }
334
+ /**
335
+ * Check if event is for a child resource
336
+ */
337
+ isChildResourceEvent(event, deployedResources) {
338
+ // This is a simplified implementation
339
+ // In practice, we would maintain a comprehensive mapping of parent-child relationships
340
+ // Check if this could be a child resource based on naming patterns
341
+ for (const resource of deployedResources) {
342
+ if (resource.kind === 'Deployment' && event.involvedObject.kind === 'ReplicaSet') {
343
+ // ReplicaSet names typically start with deployment name
344
+ if (event.involvedObject.name.startsWith(`${resource.name}-`)) {
345
+ return true;
346
+ }
347
+ }
348
+ if (resource.kind === 'Deployment' && event.involvedObject.kind === 'Pod') {
349
+ // Pod names typically start with deployment name
350
+ if (event.involvedObject.name.startsWith(`${resource.name}-`)) {
351
+ return true;
352
+ }
353
+ }
354
+ }
355
+ return false;
356
+ }
357
+ /**
358
+ * Get deduplication key for event
359
+ */
360
+ getDeduplicationKey(event) {
361
+ return {
362
+ involvedObjectUid: event.involvedObject.uid || `${event.involvedObject.kind}/${event.involvedObject.name}`,
363
+ reason: event.reason,
364
+ message: event.eventMessage,
365
+ };
366
+ }
367
+ /**
368
+ * Serialize deduplication key to string
369
+ */
370
+ serializeDeduplicationKey(key) {
371
+ return `${key.involvedObjectUid}:${key.reason}:${key.message}`;
372
+ }
373
+ /**
374
+ * Get resource identifier string
375
+ */
376
+ getResourceId(kind, name, namespace) {
377
+ return `${kind}/${name}/${namespace || 'default'}`;
378
+ }
379
+ /**
380
+ * Find ReplicaSets for a Deployment (simplified implementation)
381
+ */
382
+ async findReplicaSetsForDeployment(_deployment, _k8sApi) {
383
+ // This would require the Apps API, not Core API
384
+ // For now, return empty array
385
+ // TODO: Implement proper ReplicaSet discovery
386
+ return [];
387
+ }
388
+ /**
389
+ * Find Pods for a ReplicaSet (simplified implementation)
390
+ */
391
+ async findPodsForReplicaSet(replicaSet, k8sApi) {
392
+ try {
393
+ const pods = await k8sApi.listNamespacedPod(replicaSet.namespace || 'default', undefined, // pretty
394
+ undefined, // allowWatchBookmarks
395
+ undefined, // continue
396
+ undefined, // fieldSelector
397
+ `app=${replicaSet.name}` // labelSelector - simplified
398
+ );
399
+ return pods.body.items
400
+ .filter((pod) => pod.metadata?.name && pod.metadata?.namespace && pod.metadata?.uid)
401
+ .map((pod) => ({
402
+ kind: 'Pod',
403
+ name: pod.metadata?.name,
404
+ namespace: pod.metadata?.namespace,
405
+ uid: pod.metadata?.uid,
406
+ }));
407
+ }
408
+ catch (error) {
409
+ this.logger.warn('Failed to find pods for ReplicaSet', error);
410
+ return [];
411
+ }
412
+ }
413
+ }
414
+ /**
415
+ * Create an EventFilter instance
416
+ */
417
+ export function createEventFilter(options = {}) {
418
+ return new EventFilter(options);
419
+ }
420
+ //# sourceMappingURL=event-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-filter.js","sourceRoot":"","sources":["../../../src/core/deployment/event-filter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA0DzD;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACvB,MAAM,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;IAE9D;;OAEG;IACH,iBAAiB,CAAC,SAA+B;QAC/C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,gEAAgE;QAChE,MAAM,cAAc,GAAG,IAAI,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QACxE,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,KAAK,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,cAAc,EAAE,CAAC;YACjD,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,OAAO,IAAI,SAAS,CAAC;YAClC,MAAM,SAAS,GAAG,YAAY,IAAI,SAAS,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACnF,IAAI,QAAQ,EAAE,CAAC;gBACb,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,KAAe,EAAE,SAAkB;QACvD,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,QAAQ,GAAG,uBAAuB,IAAI,EAAE,CAAC;YAC7C,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,IAAI,6BAA6B,SAAS,EAAE,CAAC;YACvD,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,SAAgB,EAAE,OAAc;QAChD,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,IAAI,SAAS,EAAE,CAAC;YACd,uEAAuE;YACvE,8DAA8D;YAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,UAA8C;QAC/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,4EAA4E;QAC5E,qEAAqE;QACrE,wCAAwC;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAE7F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,CAAC;QAED,OAAO,EAAE,CAAC,CAAC,+CAA+C;IAC5D,CAAC;IAED;;OAEG;IACK,gCAAgC,CACtC,SAA+B;QAE/B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;QAEvD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,6BAA6B,CACnC,IAAY,EACZ,SAAiB,EACjB,SAA+B;QAE/B,MAAM,YAAY,GAAG,uBAAuB,IAAI,6BAA6B,SAAS,EAAE,CAAC;QAEzF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,mDAAmD;YACnD,OAAO,GAAG,YAAY,wBAAwB,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC;QAClF,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,gFAAgF;YAChF,2EAA2E;YAC3E,OAAO,YAAY,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,mDAAmD;YACnD,kDAAkD;YAClD,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;IACd,OAAO,CAA+B;IACtC,MAAM,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC5C,oBAAoB,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAClD,kBAAkB,GAAG,IAAI,GAAG,EAA8B,CAAC;IAE3D,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/C,YAAY,UAA8B,EAAE;QAC1C,IAAI,CAAC,OAAO,GAAG;YACb,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;YACtD,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,IAAI,IAAI;YAC5D,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,EAAE,EAAE,WAAW;YACnE,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,GAAG;SAC1D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,SAA6B;QAClD,MAAM,mBAAmB,GAAG,SAAS;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,mCAAmC;aAC3E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAI,EAAE,wCAAwC;SACzE,CAAC,CAAC,CAAC;QAEN,6BAA6B;QAC7B,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;QAEnD,yDAAyD;QACzD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvD,MAAM,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;QAEjF,KAAK,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,oBAAoB,EAAE,CAAC;YACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;YACjF,IAAI,QAAQ,EAAE,CAAC;gBACb,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;YAC7C,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;YACnD,cAAc,EAAE,mBAAmB,CAAC,MAAM;SAC3C,CAAC,CAAC;QAEH,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,KAA0B,EAAE,iBAAqC;QAC1E,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,6CAA6C;QAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CACxC,KAAK,CAAC,cAAc,CAAC,IAAI,EACzB,KAAK,CAAC,cAAc,CAAC,IAAI,EACzB,KAAK,CAAC,cAAc,CAAC,SAAS,CAC/B,CAAC;QAEF,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAA0B;QAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;QAEnE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,kCAAkC;YAClC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE;gBACrC,GAAG,EAAE,gBAAgB;gBACrB,SAAS,EAAE,GAAG;gBACd,QAAQ,EAAE,GAAG;gBACb,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,CAAC,qCAAqC;QACrD,CAAC;QAED,uCAAuC;QACvC,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEzD,IAAI,cAAc,GAAG,QAAQ,EAAE,CAAC;YAC9B,+BAA+B;YAC/B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE;gBACrC,GAAG,EAAE,gBAAgB;gBACrB,SAAS,EAAE,GAAG;gBACd,QAAQ,EAAE,GAAG;gBACb,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QAED,+CAA+C;QAC/C,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;QAE3B,+DAA+D;QAC/D,OAAO,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,KAA0B;QACzC,wCAAwC;QACxC,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,yEAAyE;QACzE,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,mBAAmB,GAAG;gBAC1B,QAAQ;gBACR,aAAa;gBACb,kBAAkB;gBAClB,wBAAwB;gBACxB,qBAAqB;gBACrB,mBAAmB;gBACnB,WAAW;gBACX,cAAc;aACf,CAAC;YAEF,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACxE,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,2CAA2C;QAC3C,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,qBAAqB,GAAG;gBAC5B,WAAW;gBACX,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,SAAS;gBACT,mBAAmB;aACpB,CAAC;YAEF,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC1E,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAC1B,cAAgC,EAChC,MAAqB;QAErB,MAAM,cAAc,GAAyB,EAAE,CAAC;QAEhD,IAAI,CAAC;YACH,sCAAsC;YACtC,kEAAkE;YAClE,mDAAmD;YAEnD,IAAI,cAAc,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACzC,4CAA4C;gBAC5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;gBACpF,cAAc,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;gBAEpC,qCAAqC;gBACrC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;oBACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBAClE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;gBAC9C,MAAM,EAAE,GAAG,cAAc,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE;gBACvD,UAAU,EAAE,cAAc,CAAC,MAAM;aAClC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAc,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,yBAAyB;QACvB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACzD,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrD,IAAI,GAAG,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACvB,iCAAiC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpC,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;gBAClD,cAAc,EAAE,YAAY;gBAC5B,gBAAgB,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,SAA+B;QAC9D,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YACxF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,yBAAyB,CAC/B,SAA+B;QAE/B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;QAEvD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,SAAS,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,KAA0B,EAC1B,iBAAqC;QAErC,sCAAsC;QACtC,uFAAuF;QAEvF,mEAAmE;QACnE,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACzC,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjF,wDAAwD;gBACxD,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBAC9D,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC1E,iDAAiD;gBACjD,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBAC9D,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAA0B;QACpD,OAAO;YACL,iBAAiB,EACf,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE;YACzF,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,YAAY;SAC5B,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,yBAAyB,CAAC,GAA0B;QAC1D,OAAO,GAAG,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;IACjE,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,SAAkB;QAClE,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;IACrD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,4BAA4B,CACxC,WAA6B,EAC7B,OAAsB;QAEtB,gDAAgD;QAChD,8BAA8B;QAC9B,8CAA8C;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CACjC,UAA8B,EAC9B,MAAqB;QAErB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,iBAAiB,CACzC,UAAU,CAAC,SAAS,IAAI,SAAS,EACjC,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,sBAAsB;YACjC,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,gBAAgB;YAC3B,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC,6BAA6B;aACvD,CAAC;YAEF,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK;iBACnB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;iBACnF,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACb,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAK;gBACzB,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAU;gBACnC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAI;aACxB,CAAC,CAAC,CAAC;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAc,CAAC,CAAC;YACvE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA8B,EAAE;IAChE,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * EventMonitor - Kubernetes Events Monitoring with Server-Side Filtering
3
+ *
4
+ * Monitors Kubernetes events related to deployed resources using efficient
5
+ * server-side filtering to minimize network traffic and improve performance.
6
+ */
7
+ import * as k8s from '@kubernetes/client-node';
8
+ import type { DeployedResource, DeploymentEvent } from '../types/deployment.js';
9
+ /**
10
+ * Configuration options for event monitoring
11
+ */
12
+ export interface EventMonitoringOptions {
13
+ /** Namespace to monitor events in */
14
+ namespace?: string;
15
+ /** Types of events to monitor */
16
+ eventTypes?: readonly ('Normal' | 'Warning' | 'Error')[] | ('Normal' | 'Warning' | 'Error')[];
17
+ /** Whether to discover and monitor child resources */
18
+ includeChildResources?: boolean;
19
+ /** Start time for filtering events (only events after this time) */
20
+ startTime?: Date;
21
+ /** Progress callback for delivering events */
22
+ progressCallback?: (event: DeploymentEvent) => void;
23
+ /** Maximum number of watch connections per namespace */
24
+ maxWatchConnections?: number;
25
+ /** Timeout for watch connections in seconds */
26
+ watchTimeoutSeconds?: number;
27
+ }
28
+ /**
29
+ * Resource identifier for event filtering
30
+ */
31
+ export interface ResourceIdentifier {
32
+ kind: string;
33
+ name: string;
34
+ namespace?: string;
35
+ uid?: string;
36
+ }
37
+ /**
38
+ * Resource relationship tracking
39
+ */
40
+ export interface ResourceRelationship {
41
+ parent: ResourceIdentifier;
42
+ children: ResourceIdentifier[];
43
+ discoveredAt: Date;
44
+ relationshipType: 'owns' | 'creates' | 'manages';
45
+ }
46
+ /**
47
+ * Child resource discovered event
48
+ */
49
+ export interface ChildResourceDiscoveredEvent extends DeploymentEvent {
50
+ type: 'child-resource-discovered';
51
+ parentResource: ResourceIdentifier;
52
+ childResource: ResourceIdentifier;
53
+ relationshipType: 'owns' | 'creates' | 'manages';
54
+ }
55
+ /**
56
+ * Kubernetes event extended with additional metadata
57
+ */
58
+ export interface KubernetesEventData extends DeploymentEvent {
59
+ type: 'kubernetes-event';
60
+ eventType: 'Normal' | 'Warning' | 'Error';
61
+ reason: string;
62
+ source: {
63
+ component: string;
64
+ host?: string | undefined;
65
+ };
66
+ involvedObject: {
67
+ kind: string;
68
+ name: string;
69
+ namespace?: string | undefined;
70
+ uid?: string | undefined;
71
+ };
72
+ count?: number;
73
+ firstTimestamp?: Date;
74
+ lastTimestamp?: Date;
75
+ eventMessage: string;
76
+ }
77
+ /**
78
+ * EventMonitor manages Kubernetes event watching with server-side filtering
79
+ */
80
+ export declare class EventMonitor {
81
+ private k8sApi;
82
+ private kubeConfig;
83
+ private watchConnections;
84
+ private monitoredResources;
85
+ private resourceRelationships;
86
+ private childDiscoveryInProgress;
87
+ private options;
88
+ private logger;
89
+ private isMonitoring;
90
+ private startResourceVersion?;
91
+ private eventsProcessed;
92
+ private appsApi;
93
+ private watchFactory;
94
+ constructor(k8sApi: k8s.CoreV1Api, kubeConfig: k8s.KubeConfig, options?: EventMonitoringOptions, watchFactory?: (config: k8s.KubeConfig) => k8s.Watch);
95
+ /**
96
+ * Start monitoring events for deployed resources
97
+ */
98
+ startMonitoring(deployedResources: DeployedResource[]): Promise<void>;
99
+ /**
100
+ * Stop monitoring and clean up all watch connections
101
+ */
102
+ stopMonitoring(): Promise<void>;
103
+ /**
104
+ * Add a resource to monitoring
105
+ */
106
+ addResource(resource: DeployedResource): Promise<void>;
107
+ /**
108
+ * Remove a resource from monitoring
109
+ */
110
+ removeResource(resource: DeployedResource): Promise<void>;
111
+ /**
112
+ * Add additional resources to monitor (for child resource discovery)
113
+ */
114
+ addResources(resources: DeployedResource[]): Promise<void>;
115
+ /**
116
+ * Discover and monitor child resources created by parent resources
117
+ */
118
+ discoverChildResources(parentResource: DeployedResource): Promise<void>;
119
+ /**
120
+ * Find child resources using owner references
121
+ */
122
+ private findChildResources;
123
+ /**
124
+ * List resources with specific owner reference
125
+ */
126
+ private listResourcesWithOwnerReference;
127
+ /**
128
+ * Get potential child resource types for a parent resource kind
129
+ */
130
+ private getChildResourceTypes;
131
+ /**
132
+ * Determine relationship type based on parent resource kind
133
+ */
134
+ private determineRelationshipType;
135
+ /**
136
+ * Get API version for a resource kind
137
+ */
138
+ private getApiVersionForKind;
139
+ /**
140
+ * Ensure a watch connection exists for the given resource
141
+ */
142
+ private ensureWatchConnection;
143
+ /**
144
+ * Create a new watch connection for a resource kind/namespace combination
145
+ */
146
+ private createWatchConnection;
147
+ /**
148
+ * Start a watch connection
149
+ */
150
+ private startWatchConnection;
151
+ /**
152
+ * Handle watch events
153
+ */
154
+ private handleWatchEvent;
155
+ /**
156
+ * Handle watch errors
157
+ */
158
+ private handleWatchError;
159
+ /**
160
+ * Update watch connection when resources are added/removed
161
+ */
162
+ private updateWatchConnection;
163
+ /**
164
+ * Update the field selector for a connection
165
+ */
166
+ private updateConnectionFieldSelector;
167
+ /**
168
+ * Create a namespace-wide watch connection to capture all events
169
+ * This is used when starting monitoring without specific resources
170
+ */
171
+ private createNamespaceWideWatchConnection;
172
+ /**
173
+ * Build field selector for resources
174
+ */
175
+ private buildFieldSelector;
176
+ /**
177
+ * Convert Kubernetes event to our event format
178
+ */
179
+ private convertToKubernetesEvent;
180
+ /**
181
+ * Get resource version for time-based filtering
182
+ */
183
+ private getResourceVersionForTime;
184
+ /**
185
+ * Get unique resource identifier
186
+ */
187
+ private getResourceId;
188
+ /**
189
+ * Get connection key for watch connection pooling
190
+ */
191
+ private getConnectionKey;
192
+ }
193
+ /**
194
+ * Create an EventMonitor instance
195
+ */
196
+ export declare function createEventMonitor(kubeConfig: k8s.KubeConfig, options?: EventMonitoringOptions, watchFactory?: (config: k8s.KubeConfig) => k8s.Watch): EventMonitor;
197
+ //# sourceMappingURL=event-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-monitor.d.ts","sourceRoot":"","sources":["../../../src/core/deployment/event-monitor.ts"],"names":[],"mappings":"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"}