typekro 0.44.0 → 0.45.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 (462) hide show
  1. package/dist/core/kubernetes/bun-api-client.d.ts +0 -10
  2. package/dist/core/kubernetes/bun-api-client.d.ts.map +1 -1
  3. package/dist/core/kubernetes/bun-api-client.js +77 -3
  4. package/dist/core/kubernetes/bun-api-client.js.map +1 -1
  5. package/dist/core/kubernetes/bun-http-library.d.ts.map +1 -1
  6. package/dist/core/kubernetes/bun-http-library.js +5 -1
  7. package/dist/core/kubernetes/bun-http-library.js.map +1 -1
  8. package/dist/core/references/schema-proxy.d.ts +17 -0
  9. package/dist/core/references/schema-proxy.d.ts.map +1 -1
  10. package/dist/core/references/schema-proxy.js +53 -3
  11. package/dist/core/references/schema-proxy.js.map +1 -1
  12. package/dist/core/serialization/schema.d.ts.map +1 -1
  13. package/dist/core/serialization/schema.js +52 -20
  14. package/dist/core/serialization/schema.js.map +1 -1
  15. package/dist/core/types/serialization.d.ts +5 -2
  16. package/dist/core/types/serialization.d.ts.map +1 -1
  17. package/dist/factories/apisix/resources/helm.d.ts +2 -2
  18. package/dist/factories/apisix/resources/helm.d.ts.map +1 -1
  19. package/dist/factories/apisix/resources/helm.js +7 -11
  20. package/dist/factories/apisix/resources/helm.js.map +1 -1
  21. package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.d.ts +38 -0
  22. package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.d.ts.map +1 -0
  23. package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.js +101 -0
  24. package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.js.map +1 -0
  25. package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.d.ts +10 -0
  26. package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.d.ts.map +1 -0
  27. package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.js +25 -0
  28. package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.js.map +1 -0
  29. package/dist/factories/aws-load-balancer-controller/compositions/index.d.ts +3 -0
  30. package/dist/factories/aws-load-balancer-controller/compositions/index.d.ts.map +1 -0
  31. package/dist/factories/aws-load-balancer-controller/compositions/index.js +3 -0
  32. package/dist/factories/aws-load-balancer-controller/compositions/index.js.map +1 -0
  33. package/dist/factories/aws-load-balancer-controller/constants.d.ts +21 -0
  34. package/dist/factories/aws-load-balancer-controller/constants.d.ts.map +1 -0
  35. package/dist/factories/aws-load-balancer-controller/constants.js +29 -0
  36. package/dist/factories/aws-load-balancer-controller/constants.js.map +1 -0
  37. package/dist/factories/aws-load-balancer-controller/index.d.ts +17 -0
  38. package/dist/factories/aws-load-balancer-controller/index.d.ts.map +1 -0
  39. package/dist/factories/aws-load-balancer-controller/index.js +16 -0
  40. package/dist/factories/aws-load-balancer-controller/index.js.map +1 -0
  41. package/dist/factories/aws-load-balancer-controller/resources/elbv2.d.ts +45 -0
  42. package/dist/factories/aws-load-balancer-controller/resources/elbv2.d.ts.map +1 -0
  43. package/dist/factories/aws-load-balancer-controller/resources/elbv2.js +148 -0
  44. package/dist/factories/aws-load-balancer-controller/resources/elbv2.js.map +1 -0
  45. package/dist/factories/aws-load-balancer-controller/resources/helm.d.ts +36 -0
  46. package/dist/factories/aws-load-balancer-controller/resources/helm.d.ts.map +1 -0
  47. package/dist/factories/aws-load-balancer-controller/resources/helm.js +96 -0
  48. package/dist/factories/aws-load-balancer-controller/resources/helm.js.map +1 -0
  49. package/dist/factories/aws-load-balancer-controller/resources/index.d.ts +3 -0
  50. package/dist/factories/aws-load-balancer-controller/resources/index.d.ts.map +1 -0
  51. package/dist/factories/aws-load-balancer-controller/resources/index.js +3 -0
  52. package/dist/factories/aws-load-balancer-controller/resources/index.js.map +1 -0
  53. package/dist/factories/aws-load-balancer-controller/types.d.ts +267 -0
  54. package/dist/factories/aws-load-balancer-controller/types.d.ts.map +1 -0
  55. package/dist/factories/aws-load-balancer-controller/types.js +81 -0
  56. package/dist/factories/aws-load-balancer-controller/types.js.map +1 -0
  57. package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.d.ts +27 -0
  58. package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.d.ts.map +1 -0
  59. package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.js +171 -0
  60. package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.js.map +1 -0
  61. package/dist/factories/aws-load-balancer-controller/utils/index.d.ts +2 -0
  62. package/dist/factories/aws-load-balancer-controller/utils/index.d.ts.map +1 -0
  63. package/dist/factories/aws-load-balancer-controller/utils/index.js +2 -0
  64. package/dist/factories/aws-load-balancer-controller/utils/index.js.map +1 -0
  65. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts +6 -4
  66. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts.map +1 -1
  67. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js +22 -196
  68. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js.map +1 -1
  69. package/dist/factories/cert-manager/resources/helm.d.ts.map +1 -1
  70. package/dist/factories/cert-manager/resources/helm.js +30 -51
  71. package/dist/factories/cert-manager/resources/helm.js.map +1 -1
  72. package/dist/factories/cert-manager/types.d.ts +54 -6
  73. package/dist/factories/cert-manager/types.d.ts.map +1 -1
  74. package/dist/factories/cert-manager/types.js +45 -12
  75. package/dist/factories/cert-manager/types.js.map +1 -1
  76. package/dist/factories/cert-manager/utils/helm-values-mapper.js +203 -76
  77. package/dist/factories/cert-manager/utils/helm-values-mapper.js.map +1 -1
  78. package/dist/factories/cilium/resources/helm.d.ts.map +1 -1
  79. package/dist/factories/cilium/resources/helm.js +23 -0
  80. package/dist/factories/cilium/resources/helm.js.map +1 -1
  81. package/dist/factories/cilium/types.d.ts +2 -1
  82. package/dist/factories/cilium/types.d.ts.map +1 -1
  83. package/dist/factories/cilium/types.js.map +1 -1
  84. package/dist/factories/clickhouse/resources/helm.d.ts.map +1 -1
  85. package/dist/factories/clickhouse/resources/helm.js +2 -1
  86. package/dist/factories/clickhouse/resources/helm.js.map +1 -1
  87. package/dist/factories/clickhouse/types.d.ts +2 -1
  88. package/dist/factories/clickhouse/types.d.ts.map +1 -1
  89. package/dist/factories/clickhouse/types.js.map +1 -1
  90. package/dist/factories/clickstack/resources/helm.d.ts.map +1 -1
  91. package/dist/factories/clickstack/resources/helm.js +3 -2
  92. package/dist/factories/clickstack/resources/helm.js.map +1 -1
  93. package/dist/factories/clickstack/types.d.ts +3 -3
  94. package/dist/factories/clickstack/types.d.ts.map +1 -1
  95. package/dist/factories/clickstack/types.js.map +1 -1
  96. package/dist/factories/cnpg/resources/helm.d.ts.map +1 -1
  97. package/dist/factories/cnpg/resources/helm.js +2 -1
  98. package/dist/factories/cnpg/resources/helm.js.map +1 -1
  99. package/dist/factories/cnpg/types.d.ts +2 -1
  100. package/dist/factories/cnpg/types.d.ts.map +1 -1
  101. package/dist/factories/cnpg/types.js.map +1 -1
  102. package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.d.ts +33 -0
  103. package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.d.ts.map +1 -0
  104. package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.js +174 -0
  105. package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.js.map +1 -0
  106. package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.d.ts +10 -0
  107. package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.d.ts.map +1 -0
  108. package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.js +25 -0
  109. package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.js.map +1 -0
  110. package/dist/factories/crowdsec/compositions/index.d.ts +3 -0
  111. package/dist/factories/crowdsec/compositions/index.d.ts.map +1 -0
  112. package/dist/factories/crowdsec/compositions/index.js +3 -0
  113. package/dist/factories/crowdsec/compositions/index.js.map +1 -0
  114. package/dist/factories/crowdsec/constants.d.ts +38 -0
  115. package/dist/factories/crowdsec/constants.d.ts.map +1 -0
  116. package/dist/factories/crowdsec/constants.js +42 -0
  117. package/dist/factories/crowdsec/constants.js.map +1 -0
  118. package/dist/factories/crowdsec/index.d.ts +12 -0
  119. package/dist/factories/crowdsec/index.d.ts.map +1 -0
  120. package/dist/factories/crowdsec/index.js +12 -0
  121. package/dist/factories/crowdsec/index.js.map +1 -0
  122. package/dist/factories/crowdsec/resources/helm.d.ts +52 -0
  123. package/dist/factories/crowdsec/resources/helm.d.ts.map +1 -0
  124. package/dist/factories/crowdsec/resources/helm.js +78 -0
  125. package/dist/factories/crowdsec/resources/helm.js.map +1 -0
  126. package/dist/factories/crowdsec/resources/index.d.ts +2 -0
  127. package/dist/factories/crowdsec/resources/index.d.ts.map +1 -0
  128. package/dist/factories/crowdsec/resources/index.js +2 -0
  129. package/dist/factories/crowdsec/resources/index.js.map +1 -0
  130. package/dist/factories/crowdsec/types.d.ts +266 -0
  131. package/dist/factories/crowdsec/types.d.ts.map +1 -0
  132. package/dist/factories/crowdsec/types.js +43 -0
  133. package/dist/factories/crowdsec/types.js.map +1 -0
  134. package/dist/factories/crowdsec/utils/helm-values-mapper.d.ts +40 -0
  135. package/dist/factories/crowdsec/utils/helm-values-mapper.d.ts.map +1 -0
  136. package/dist/factories/crowdsec/utils/helm-values-mapper.js +473 -0
  137. package/dist/factories/crowdsec/utils/helm-values-mapper.js.map +1 -0
  138. package/dist/factories/crowdsec/utils/index.d.ts +3 -0
  139. package/dist/factories/crowdsec/utils/index.d.ts.map +1 -0
  140. package/dist/factories/crowdsec/utils/index.js +3 -0
  141. package/dist/factories/crowdsec/utils/index.js.map +1 -0
  142. package/dist/factories/crowdsec/utils/net.js +68 -0
  143. package/dist/factories/crowdsec/utils/net.js.map +1 -0
  144. package/dist/factories/crowdsec/utils/traefik-bouncer.d.ts +48 -0
  145. package/dist/factories/crowdsec/utils/traefik-bouncer.d.ts.map +1 -0
  146. package/dist/factories/crowdsec/utils/traefik-bouncer.js +302 -0
  147. package/dist/factories/crowdsec/utils/traefik-bouncer.js.map +1 -0
  148. package/dist/factories/dagster/resources/helm.d.ts.map +1 -1
  149. package/dist/factories/dagster/resources/helm.js +2 -0
  150. package/dist/factories/dagster/resources/helm.js.map +1 -1
  151. package/dist/factories/dagster/types.d.ts +2 -2
  152. package/dist/factories/dagster/types.d.ts.map +1 -1
  153. package/dist/factories/dagster/types.js.map +1 -1
  154. package/dist/factories/envoy-ai-gateway/resources/helm.d.ts.map +1 -1
  155. package/dist/factories/envoy-ai-gateway/resources/helm.js +17 -14
  156. package/dist/factories/envoy-ai-gateway/resources/helm.js.map +1 -1
  157. package/dist/factories/envoy-ai-gateway/types.d.ts +2 -2
  158. package/dist/factories/envoy-ai-gateway/types.d.ts.map +1 -1
  159. package/dist/factories/external-dns/resources/helm.d.ts.map +1 -1
  160. package/dist/factories/external-dns/resources/helm.js +2 -0
  161. package/dist/factories/external-dns/resources/helm.js.map +1 -1
  162. package/dist/factories/external-dns/types.d.ts +2 -1
  163. package/dist/factories/external-dns/types.d.ts.map +1 -1
  164. package/dist/factories/external-dns/types.js.map +1 -1
  165. package/dist/factories/harbor/resources/helm.d.ts.map +1 -1
  166. package/dist/factories/harbor/resources/helm.js +11 -7
  167. package/dist/factories/harbor/resources/helm.js.map +1 -1
  168. package/dist/factories/harbor/types.d.ts +2 -1
  169. package/dist/factories/harbor/types.d.ts.map +1 -1
  170. package/dist/factories/harbor/types.js.map +1 -1
  171. package/dist/factories/hatchet/resources/helm.d.ts.map +1 -1
  172. package/dist/factories/hatchet/resources/helm.js +13 -10
  173. package/dist/factories/hatchet/resources/helm.js.map +1 -1
  174. package/dist/factories/hatchet/types.d.ts +2 -1
  175. package/dist/factories/hatchet/types.d.ts.map +1 -1
  176. package/dist/factories/hatchet/types.js.map +1 -1
  177. package/dist/factories/helm/helm-release.d.ts.map +1 -1
  178. package/dist/factories/helm/helm-release.js +3 -31
  179. package/dist/factories/helm/helm-release.js.map +1 -1
  180. package/dist/factories/helm/index.d.ts +3 -1
  181. package/dist/factories/helm/index.d.ts.map +1 -1
  182. package/dist/factories/helm/index.js +1 -0
  183. package/dist/factories/helm/index.js.map +1 -1
  184. package/dist/factories/helm/lifecycle.d.ts +32 -0
  185. package/dist/factories/helm/lifecycle.d.ts.map +1 -0
  186. package/dist/factories/helm/lifecycle.js +165 -0
  187. package/dist/factories/helm/lifecycle.js.map +1 -0
  188. package/dist/factories/helm/types.d.ts +22 -0
  189. package/dist/factories/helm/types.d.ts.map +1 -1
  190. package/dist/factories/inngest/resources/helm.d.ts.map +1 -1
  191. package/dist/factories/inngest/resources/helm.js +2 -0
  192. package/dist/factories/inngest/resources/helm.js.map +1 -1
  193. package/dist/factories/inngest/types.d.ts +2 -1
  194. package/dist/factories/inngest/types.d.ts.map +1 -1
  195. package/dist/factories/inngest/types.js.map +1 -1
  196. package/dist/factories/karpenter/compositions/index.d.ts +3 -0
  197. package/dist/factories/karpenter/compositions/index.d.ts.map +1 -0
  198. package/dist/factories/karpenter/compositions/index.js +3 -0
  199. package/dist/factories/karpenter/compositions/index.js.map +1 -0
  200. package/dist/factories/karpenter/compositions/karpenter-bootstrap.d.ts +34 -0
  201. package/dist/factories/karpenter/compositions/karpenter-bootstrap.d.ts.map +1 -0
  202. package/dist/factories/karpenter/compositions/karpenter-bootstrap.js +150 -0
  203. package/dist/factories/karpenter/compositions/karpenter-bootstrap.js.map +1 -0
  204. package/dist/factories/karpenter/compositions/karpenter-helm-repository.d.ts +10 -0
  205. package/dist/factories/karpenter/compositions/karpenter-helm-repository.d.ts.map +1 -0
  206. package/dist/factories/karpenter/compositions/karpenter-helm-repository.js +25 -0
  207. package/dist/factories/karpenter/compositions/karpenter-helm-repository.js.map +1 -0
  208. package/dist/factories/karpenter/constants.d.ts +67 -0
  209. package/dist/factories/karpenter/constants.d.ts.map +1 -0
  210. package/dist/factories/karpenter/constants.js +65 -0
  211. package/dist/factories/karpenter/constants.js.map +1 -0
  212. package/dist/factories/karpenter/index.d.ts +14 -0
  213. package/dist/factories/karpenter/index.d.ts.map +1 -0
  214. package/dist/factories/karpenter/index.js +14 -0
  215. package/dist/factories/karpenter/index.js.map +1 -0
  216. package/dist/factories/karpenter/resources/ec2-node-class.d.ts +26 -0
  217. package/dist/factories/karpenter/resources/ec2-node-class.d.ts.map +1 -0
  218. package/dist/factories/karpenter/resources/ec2-node-class.js +48 -0
  219. package/dist/factories/karpenter/resources/ec2-node-class.js.map +1 -0
  220. package/dist/factories/karpenter/resources/helm.d.ts +48 -0
  221. package/dist/factories/karpenter/resources/helm.d.ts.map +1 -0
  222. package/dist/factories/karpenter/resources/helm.js +117 -0
  223. package/dist/factories/karpenter/resources/helm.js.map +1 -0
  224. package/dist/factories/karpenter/resources/index.d.ts +5 -0
  225. package/dist/factories/karpenter/resources/index.d.ts.map +1 -0
  226. package/dist/factories/karpenter/resources/index.js +5 -0
  227. package/dist/factories/karpenter/resources/index.js.map +1 -0
  228. package/dist/factories/karpenter/resources/node-pool.d.ts +32 -0
  229. package/dist/factories/karpenter/resources/node-pool.d.ts.map +1 -0
  230. package/dist/factories/karpenter/resources/node-pool.js +80 -0
  231. package/dist/factories/karpenter/resources/node-pool.js.map +1 -0
  232. package/dist/factories/karpenter/resources/readiness.d.ts +21 -0
  233. package/dist/factories/karpenter/resources/readiness.d.ts.map +1 -0
  234. package/dist/factories/karpenter/resources/readiness.js +60 -0
  235. package/dist/factories/karpenter/resources/readiness.js.map +1 -0
  236. package/dist/factories/karpenter/types.d.ts +433 -0
  237. package/dist/factories/karpenter/types.d.ts.map +1 -0
  238. package/dist/factories/karpenter/types.js +59 -0
  239. package/dist/factories/karpenter/types.js.map +1 -0
  240. package/dist/factories/karpenter/utils/helm-values-mapper.d.ts +24 -0
  241. package/dist/factories/karpenter/utils/helm-values-mapper.d.ts.map +1 -0
  242. package/dist/factories/karpenter/utils/helm-values-mapper.js +89 -0
  243. package/dist/factories/karpenter/utils/helm-values-mapper.js.map +1 -0
  244. package/dist/factories/karpenter/utils/index.d.ts +3 -0
  245. package/dist/factories/karpenter/utils/index.d.ts.map +1 -0
  246. package/dist/factories/karpenter/utils/index.js +3 -0
  247. package/dist/factories/karpenter/utils/index.js.map +1 -0
  248. package/dist/factories/karpenter/utils/validation.d.ts +42 -0
  249. package/dist/factories/karpenter/utils/validation.d.ts.map +1 -0
  250. package/dist/factories/karpenter/utils/validation.js +441 -0
  251. package/dist/factories/karpenter/utils/validation.js.map +1 -0
  252. package/dist/factories/keda/compositions/index.d.ts +3 -0
  253. package/dist/factories/keda/compositions/index.d.ts.map +1 -0
  254. package/dist/factories/keda/compositions/index.js +3 -0
  255. package/dist/factories/keda/compositions/index.js.map +1 -0
  256. package/dist/factories/keda/compositions/keda-bootstrap.d.ts +30 -0
  257. package/dist/factories/keda/compositions/keda-bootstrap.d.ts.map +1 -0
  258. package/dist/factories/keda/compositions/keda-bootstrap.js +102 -0
  259. package/dist/factories/keda/compositions/keda-bootstrap.js.map +1 -0
  260. package/dist/factories/keda/compositions/keda-helm-repository.d.ts +10 -0
  261. package/dist/factories/keda/compositions/keda-helm-repository.d.ts.map +1 -0
  262. package/dist/factories/keda/compositions/keda-helm-repository.js +25 -0
  263. package/dist/factories/keda/compositions/keda-helm-repository.js.map +1 -0
  264. package/dist/factories/keda/constants.d.ts +27 -0
  265. package/dist/factories/keda/constants.d.ts.map +1 -0
  266. package/dist/factories/keda/constants.js +27 -0
  267. package/dist/factories/keda/constants.js.map +1 -0
  268. package/dist/factories/keda/index.d.ts +14 -0
  269. package/dist/factories/keda/index.d.ts.map +1 -0
  270. package/dist/factories/keda/index.js +14 -0
  271. package/dist/factories/keda/index.js.map +1 -0
  272. package/dist/factories/keda/resources/helm.d.ts +26 -0
  273. package/dist/factories/keda/resources/helm.d.ts.map +1 -0
  274. package/dist/factories/keda/resources/helm.js +84 -0
  275. package/dist/factories/keda/resources/helm.js.map +1 -0
  276. package/dist/factories/keda/resources/index.d.ts +7 -0
  277. package/dist/factories/keda/resources/index.d.ts.map +1 -0
  278. package/dist/factories/keda/resources/index.js +7 -0
  279. package/dist/factories/keda/resources/index.js.map +1 -0
  280. package/dist/factories/keda/resources/readiness.d.ts +28 -0
  281. package/dist/factories/keda/resources/readiness.d.ts.map +1 -0
  282. package/dist/factories/keda/resources/readiness.js +70 -0
  283. package/dist/factories/keda/resources/readiness.js.map +1 -0
  284. package/dist/factories/keda/resources/scaled-job.d.ts +23 -0
  285. package/dist/factories/keda/resources/scaled-job.d.ts.map +1 -0
  286. package/dist/factories/keda/resources/scaled-job.js +43 -0
  287. package/dist/factories/keda/resources/scaled-job.js.map +1 -0
  288. package/dist/factories/keda/resources/scaled-object.d.ts +33 -0
  289. package/dist/factories/keda/resources/scaled-object.d.ts.map +1 -0
  290. package/dist/factories/keda/resources/scaled-object.js +78 -0
  291. package/dist/factories/keda/resources/scaled-object.js.map +1 -0
  292. package/dist/factories/keda/resources/trigger-authentication.d.ts +28 -0
  293. package/dist/factories/keda/resources/trigger-authentication.d.ts.map +1 -0
  294. package/dist/factories/keda/resources/trigger-authentication.js +52 -0
  295. package/dist/factories/keda/resources/trigger-authentication.js.map +1 -0
  296. package/dist/factories/keda/resources/triggers.d.ts +17 -0
  297. package/dist/factories/keda/resources/triggers.d.ts.map +1 -0
  298. package/dist/factories/keda/resources/triggers.js +21 -0
  299. package/dist/factories/keda/resources/triggers.js.map +1 -0
  300. package/dist/factories/keda/types.d.ts +580 -0
  301. package/dist/factories/keda/types.d.ts.map +1 -0
  302. package/dist/factories/keda/types.js +75 -0
  303. package/dist/factories/keda/types.js.map +1 -0
  304. package/dist/factories/keda/utils/helm-values-mapper.d.ts +21 -0
  305. package/dist/factories/keda/utils/helm-values-mapper.d.ts.map +1 -0
  306. package/dist/factories/keda/utils/helm-values-mapper.js +130 -0
  307. package/dist/factories/keda/utils/helm-values-mapper.js.map +1 -0
  308. package/dist/factories/keda/utils/index.d.ts +3 -0
  309. package/dist/factories/keda/utils/index.d.ts.map +1 -0
  310. package/dist/factories/keda/utils/index.js +3 -0
  311. package/dist/factories/keda/utils/index.js.map +1 -0
  312. package/dist/factories/keda/utils/validation.d.ts +52 -0
  313. package/dist/factories/keda/utils/validation.d.ts.map +1 -0
  314. package/dist/factories/keda/utils/validation.js +482 -0
  315. package/dist/factories/keda/utils/validation.js.map +1 -0
  316. package/dist/factories/kubernetes/policy/limit-range.d.ts.map +1 -1
  317. package/dist/factories/kubernetes/policy/limit-range.js +27 -1
  318. package/dist/factories/kubernetes/policy/limit-range.js.map +1 -1
  319. package/dist/factories/nats/resources/helm.d.ts +2 -2
  320. package/dist/factories/nats/resources/helm.d.ts.map +1 -1
  321. package/dist/factories/nats/resources/helm.js +2 -1
  322. package/dist/factories/nats/resources/helm.js.map +1 -1
  323. package/dist/factories/opensearch/resources/helm.d.ts.map +1 -1
  324. package/dist/factories/opensearch/resources/helm.js +2 -1
  325. package/dist/factories/opensearch/resources/helm.js.map +1 -1
  326. package/dist/factories/opensearch/types.d.ts +2 -1
  327. package/dist/factories/opensearch/types.d.ts.map +1 -1
  328. package/dist/factories/opensearch/types.js.map +1 -1
  329. package/dist/factories/ory/resources/helm.d.ts.map +1 -1
  330. package/dist/factories/ory/resources/helm.js +2 -0
  331. package/dist/factories/ory/resources/helm.js.map +1 -1
  332. package/dist/factories/ory/types.d.ts +2 -2
  333. package/dist/factories/ory/types.d.ts.map +1 -1
  334. package/dist/factories/ory/types.js.map +1 -1
  335. package/dist/factories/pebble/resources/helm.d.ts.map +1 -1
  336. package/dist/factories/pebble/resources/helm.js +2 -0
  337. package/dist/factories/pebble/resources/helm.js.map +1 -1
  338. package/dist/factories/pebble/types.d.ts +2 -1
  339. package/dist/factories/pebble/types.d.ts.map +1 -1
  340. package/dist/factories/pebble/types.js.map +1 -1
  341. package/dist/factories/rook/resources/helm.d.ts.map +1 -1
  342. package/dist/factories/rook/resources/helm.js +3 -2
  343. package/dist/factories/rook/resources/helm.js.map +1 -1
  344. package/dist/factories/rook/types.d.ts +2 -1
  345. package/dist/factories/rook/types.d.ts.map +1 -1
  346. package/dist/factories/rook/types.js.map +1 -1
  347. package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts +43 -36
  348. package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts.map +1 -1
  349. package/dist/factories/traefik/compositions/traefik-bootstrap.js +70 -38
  350. package/dist/factories/traefik/compositions/traefik-bootstrap.js.map +1 -1
  351. package/dist/factories/traefik/constants.d.ts +6 -0
  352. package/dist/factories/traefik/constants.d.ts.map +1 -1
  353. package/dist/factories/traefik/constants.js +6 -0
  354. package/dist/factories/traefik/constants.js.map +1 -1
  355. package/dist/factories/traefik/resources/common.d.ts +1 -1
  356. package/dist/factories/traefik/resources/common.js +1 -1
  357. package/dist/factories/traefik/resources/helm.d.ts.map +1 -1
  358. package/dist/factories/traefik/resources/helm.js +14 -9
  359. package/dist/factories/traefik/resources/helm.js.map +1 -1
  360. package/dist/factories/traefik/resources/middleware.d.ts +35 -1
  361. package/dist/factories/traefik/resources/middleware.d.ts.map +1 -1
  362. package/dist/factories/traefik/resources/middleware.js +71 -0
  363. package/dist/factories/traefik/resources/middleware.js.map +1 -1
  364. package/dist/factories/traefik/resources/tls.d.ts +22 -1
  365. package/dist/factories/traefik/resources/tls.d.ts.map +1 -1
  366. package/dist/factories/traefik/resources/tls.js +40 -0
  367. package/dist/factories/traefik/resources/tls.js.map +1 -1
  368. package/dist/factories/traefik/types.d.ts +176 -9
  369. package/dist/factories/traefik/types.d.ts.map +1 -1
  370. package/dist/factories/traefik/types.js +111 -2
  371. package/dist/factories/traefik/types.js.map +1 -1
  372. package/dist/factories/traefik/utils/access-log.d.ts +18 -0
  373. package/dist/factories/traefik/utils/access-log.d.ts.map +1 -0
  374. package/dist/factories/traefik/utils/access-log.js +98 -0
  375. package/dist/factories/traefik/utils/access-log.js.map +1 -0
  376. package/dist/factories/traefik/utils/aws-nlb.d.ts +55 -0
  377. package/dist/factories/traefik/utils/aws-nlb.d.ts.map +1 -0
  378. package/dist/factories/traefik/utils/aws-nlb.js +121 -0
  379. package/dist/factories/traefik/utils/aws-nlb.js.map +1 -0
  380. package/dist/factories/traefik/utils/helm-values-mapper.d.ts +30 -40
  381. package/dist/factories/traefik/utils/helm-values-mapper.d.ts.map +1 -1
  382. package/dist/factories/traefik/utils/helm-values-mapper.js +308 -41
  383. package/dist/factories/traefik/utils/helm-values-mapper.js.map +1 -1
  384. package/dist/factories/traefik/utils/index.d.ts +5 -0
  385. package/dist/factories/traefik/utils/index.d.ts.map +1 -1
  386. package/dist/factories/traefik/utils/index.js +5 -0
  387. package/dist/factories/traefik/utils/index.js.map +1 -1
  388. package/dist/factories/traefik/utils/middleware-validation.d.ts +0 -17
  389. package/dist/factories/traefik/utils/middleware-validation.d.ts.map +1 -1
  390. package/dist/factories/traefik/utils/middleware-validation.js +15 -17
  391. package/dist/factories/traefik/utils/middleware-validation.js.map +1 -1
  392. package/dist/factories/traefik/utils/plugins.d.ts +38 -0
  393. package/dist/factories/traefik/utils/plugins.d.ts.map +1 -0
  394. package/dist/factories/traefik/utils/plugins.js +175 -0
  395. package/dist/factories/traefik/utils/plugins.js.map +1 -0
  396. package/dist/factories/traefik/utils/proxy-trust.d.ts +48 -0
  397. package/dist/factories/traefik/utils/proxy-trust.d.ts.map +1 -0
  398. package/dist/factories/traefik/utils/proxy-trust.js +514 -0
  399. package/dist/factories/traefik/utils/proxy-trust.js.map +1 -0
  400. package/dist/factories/traefik/utils/trusted-range.d.ts +29 -0
  401. package/dist/factories/traefik/utils/trusted-range.d.ts.map +1 -0
  402. package/dist/factories/traefik/utils/trusted-range.js +80 -0
  403. package/dist/factories/traefik/utils/trusted-range.js.map +1 -0
  404. package/dist/factories/valkey/resources/helm.d.ts.map +1 -1
  405. package/dist/factories/valkey/resources/helm.js +2 -1
  406. package/dist/factories/valkey/resources/helm.js.map +1 -1
  407. package/dist/factories/valkey/types.d.ts +2 -1
  408. package/dist/factories/valkey/types.d.ts.map +1 -1
  409. package/dist/factories/valkey/types.js.map +1 -1
  410. package/dist/factories/vpa/compositions/index.d.ts +3 -0
  411. package/dist/factories/vpa/compositions/index.d.ts.map +1 -0
  412. package/dist/factories/vpa/compositions/index.js +3 -0
  413. package/dist/factories/vpa/compositions/index.js.map +1 -0
  414. package/dist/factories/vpa/compositions/vpa-bootstrap.d.ts +30 -0
  415. package/dist/factories/vpa/compositions/vpa-bootstrap.d.ts.map +1 -0
  416. package/dist/factories/vpa/compositions/vpa-bootstrap.js +104 -0
  417. package/dist/factories/vpa/compositions/vpa-bootstrap.js.map +1 -0
  418. package/dist/factories/vpa/compositions/vpa-helm-repository.d.ts +10 -0
  419. package/dist/factories/vpa/compositions/vpa-helm-repository.d.ts.map +1 -0
  420. package/dist/factories/vpa/compositions/vpa-helm-repository.js +25 -0
  421. package/dist/factories/vpa/compositions/vpa-helm-repository.js.map +1 -0
  422. package/dist/factories/vpa/constants.d.ts +77 -0
  423. package/dist/factories/vpa/constants.d.ts.map +1 -0
  424. package/dist/factories/vpa/constants.js +67 -0
  425. package/dist/factories/vpa/constants.js.map +1 -0
  426. package/dist/factories/vpa/index.d.ts +14 -0
  427. package/dist/factories/vpa/index.d.ts.map +1 -0
  428. package/dist/factories/vpa/index.js +14 -0
  429. package/dist/factories/vpa/index.js.map +1 -0
  430. package/dist/factories/vpa/resources/helm.d.ts +28 -0
  431. package/dist/factories/vpa/resources/helm.d.ts.map +1 -0
  432. package/dist/factories/vpa/resources/helm.js +88 -0
  433. package/dist/factories/vpa/resources/helm.js.map +1 -0
  434. package/dist/factories/vpa/resources/index.d.ts +4 -0
  435. package/dist/factories/vpa/resources/index.d.ts.map +1 -0
  436. package/dist/factories/vpa/resources/index.js +4 -0
  437. package/dist/factories/vpa/resources/index.js.map +1 -0
  438. package/dist/factories/vpa/resources/readiness.d.ts +24 -0
  439. package/dist/factories/vpa/resources/readiness.d.ts.map +1 -0
  440. package/dist/factories/vpa/resources/readiness.js +66 -0
  441. package/dist/factories/vpa/resources/readiness.js.map +1 -0
  442. package/dist/factories/vpa/resources/vertical-pod-autoscaler.d.ts +42 -0
  443. package/dist/factories/vpa/resources/vertical-pod-autoscaler.d.ts.map +1 -0
  444. package/dist/factories/vpa/resources/vertical-pod-autoscaler.js +93 -0
  445. package/dist/factories/vpa/resources/vertical-pod-autoscaler.js.map +1 -0
  446. package/dist/factories/vpa/types.d.ts +312 -0
  447. package/dist/factories/vpa/types.d.ts.map +1 -0
  448. package/dist/factories/vpa/types.js +96 -0
  449. package/dist/factories/vpa/types.js.map +1 -0
  450. package/dist/factories/vpa/utils/helm-values-mapper.d.ts +18 -0
  451. package/dist/factories/vpa/utils/helm-values-mapper.d.ts.map +1 -0
  452. package/dist/factories/vpa/utils/helm-values-mapper.js +121 -0
  453. package/dist/factories/vpa/utils/helm-values-mapper.js.map +1 -0
  454. package/dist/factories/vpa/utils/index.d.ts +3 -0
  455. package/dist/factories/vpa/utils/index.d.ts.map +1 -0
  456. package/dist/factories/vpa/utils/index.js +3 -0
  457. package/dist/factories/vpa/utils/index.js.map +1 -0
  458. package/dist/factories/vpa/utils/validation.d.ts +42 -0
  459. package/dist/factories/vpa/utils/validation.d.ts.map +1 -0
  460. package/dist/factories/vpa/utils/validation.js +225 -0
  461. package/dist/factories/vpa/utils/validation.js.map +1 -0
  462. package/package.json +21 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/vpa/resources/helm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './helm.js';
2
+ export { vpaRecommendationProvided } from './readiness.js';
3
+ export * from './vertical-pod-autoscaler.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/vpa/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './helm.js';
2
+ export { vpaRecommendationProvided } from './readiness.js';
3
+ export * from './vertical-pod-autoscaler.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/vpa/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { Enhanced, ReadinessEvaluator, ResourceStatus } from '../../../core/types/index.js';
2
+ import type { VpaCondition } from '../types.js';
3
+ /** Evaluate a VPA's `RecommendationProvided` condition. */
4
+ export declare function evaluateVpaRecommendation(liveResource: unknown): ResourceStatus;
5
+ /** `VerticalPodAutoscaler` readiness: `RecommendationProvided=True`. */
6
+ export declare const vpaRecommendationReadinessEvaluator: ReadinessEvaluator<unknown>;
7
+ /** `VerticalPodAutoscaler` readiness when nothing waits for a recommendation. */
8
+ export declare const vpaAcceptedReadinessEvaluator: ReadinessEvaluator<unknown>;
9
+ type VpaResource = Enhanced<object, {
10
+ conditions?: VpaCondition[];
11
+ }>;
12
+ /**
13
+ * A status expression that is `true` once every given VPA has
14
+ * `RecommendationProvided=True`. Pass several resources rather than joining
15
+ * calls with `&&`, which JavaScript evaluates before TypeKro sees it.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * return { recommended: vpaRecommendationProvided(webVpa, workerVpa) };
20
+ * ```
21
+ */
22
+ export declare function vpaRecommendationProvided(...resources: [VpaResource, ...VpaResource[]]): boolean;
23
+ export {};
24
+ //# sourceMappingURL=readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../../../src/factories/vpa/resources/readiness.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAElB,cAAc,EACf,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAWhD,2DAA2D;AAC3D,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CA0B/E;AAED,wEAAwE;AACxE,eAAO,MAAM,mCAAmC,EAAE,kBAAkB,CAAC,OAAO,CAGzE,CAAC;AAEJ,iFAAiF;AACjF,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,OAAO,CAMlE,CAAC;AAEL,KAAK,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE;IAAE,UAAU,CAAC,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAAC;AAErE;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,SAAS,EAAE,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC,GAAG,OAAO,CAahG"}
@@ -0,0 +1,66 @@
1
+ // Readiness for `VerticalPodAutoscaler`s. The recommender reports progress
2
+ // through conditions: `RecommendationProvided` once it has a recommendation,
3
+ // `NoPodsMatched` while the target has no pods, `ConfigUnsupported` when the
4
+ // spec is unusable. The conditions carry no observedGeneration.
5
+ import { registerPortableReadinessEvaluator } from '../../../core/readiness/index.js';
6
+ import { Cel } from '../../../core/references/cel.js';
7
+ function isTrue(conditions, type) {
8
+ return conditions.find((condition) => condition.type === type && condition.status === 'True');
9
+ }
10
+ /** Evaluate a VPA's `RecommendationProvided` condition. */
11
+ export function evaluateVpaRecommendation(liveResource) {
12
+ const conditions = liveResource?.status?.conditions;
13
+ if (!conditions || conditions.length === 0) {
14
+ return {
15
+ ready: false,
16
+ reason: 'StatusMissing',
17
+ message: 'VerticalPodAutoscaler has no conditions yet; is the recommender running?',
18
+ };
19
+ }
20
+ const unsupported = isTrue(conditions, 'ConfigUnsupported');
21
+ if (unsupported) {
22
+ return {
23
+ ready: false,
24
+ reason: 'ConfigUnsupported',
25
+ message: unsupported.message || 'VerticalPodAutoscaler configuration is unsupported',
26
+ };
27
+ }
28
+ if (isTrue(conditions, 'RecommendationProvided')) {
29
+ return { ready: true, reason: 'RecommendationProvided', message: 'Recommendation provided' };
30
+ }
31
+ const noPods = isTrue(conditions, 'NoPodsMatched');
32
+ return {
33
+ ready: false,
34
+ reason: noPods ? 'NoPodsMatched' : 'RecommendationPending',
35
+ message: noPods?.message || 'Waiting for the recommender to provide a recommendation',
36
+ };
37
+ }
38
+ /** `VerticalPodAutoscaler` readiness: `RecommendationProvided=True`. */
39
+ export const vpaRecommendationReadinessEvaluator = registerPortableReadinessEvaluator('typekro.readiness.vpa.recommendation', '1', (resource) => evaluateVpaRecommendation(resource));
40
+ /** `VerticalPodAutoscaler` readiness when nothing waits for a recommendation. */
41
+ export const vpaAcceptedReadinessEvaluator = registerPortableReadinessEvaluator('typekro.readiness.vpa.accepted', '1', (resource) => {
42
+ const accepted = Boolean(resource?.metadata?.resourceVersion);
43
+ return accepted
44
+ ? { ready: true, reason: 'Accepted', message: 'VerticalPodAutoscaler stored' }
45
+ : { ready: false, reason: 'Pending', message: 'VerticalPodAutoscaler not stored yet' };
46
+ });
47
+ /**
48
+ * A status expression that is `true` once every given VPA has
49
+ * `RecommendationProvided=True`. Pass several resources rather than joining
50
+ * calls with `&&`, which JavaScript evaluates before TypeKro sees it.
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * return { recommended: vpaRecommendationProvided(webVpa, workerVpa) };
55
+ * ```
56
+ */
57
+ export function vpaRecommendationProvided(...resources) {
58
+ const parts = [];
59
+ resources.forEach((resource, index) => {
60
+ if (index > 0)
61
+ parts.push(' && ');
62
+ parts.push('(has(', resource.status.conditions, ') && ', resource.status.conditions, '.exists(c, c.type == "RecommendationProvided" && c.status == "True"))');
63
+ });
64
+ return Cel.expr(...parts);
65
+ }
66
+ //# sourceMappingURL=readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../../../src/factories/vpa/resources/readiness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { Composable, Enhanced } from '../../../core/types/index.js';
2
+ import type { VerticalPodAutoscalerConfig, VerticalPodAutoscalerSpec, VerticalPodAutoscalerStatus, VpaRecommendOnlyOptions, VpaTargetRef, VpaTargetResource } from '../types.js';
3
+ /**
4
+ * Create a `VerticalPodAutoscaler`.
5
+ *
6
+ * Readiness waits for `RecommendationProvided=True` unless `readiness:
7
+ * 'accepted'`. Throws on the errors {@link validateVerticalPodAutoscalerSpec}
8
+ * reports, and warns when an HPA or ScaledObject in the same composition
9
+ * scales the target on a resource this VPA sets.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * verticalPodAutoscaler({
14
+ * name: 'api',
15
+ * spec: {
16
+ * targetRef: { apiVersion: 'apps/v1', kind: 'Deployment', name: 'api' },
17
+ * updatePolicy: { updateMode: 'InPlaceOrRecreate', minReplicas: 2 },
18
+ * resourcePolicy: {
19
+ * containerPolicies: [
20
+ * { containerName: '*', minAllowed: { cpu: '50m', memory: '64Mi' }, maxAllowed: { cpu: '2', memory: '4Gi' } },
21
+ * ],
22
+ * },
23
+ * },
24
+ * id: 'apiVpa',
25
+ * });
26
+ * ```
27
+ */
28
+ export declare function verticalPodAutoscaler(config: Composable<VerticalPodAutoscalerConfig>): Enhanced<VerticalPodAutoscalerSpec, VerticalPodAutoscalerStatus>;
29
+ /**
30
+ * A VPA in `updateMode: 'Off'`: it records recommendations and changes
31
+ * nothing. Safe next to an HPA, and needs only the recommender installed.
32
+ *
33
+ * @param target - A `targetRef`, or the workload resource itself.
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * const api = simple.Deployment({ name: 'api', image: 'nginx', id: 'api' });
38
+ * vpaRecommendOnly(api, { id: 'apiVpa' });
39
+ * ```
40
+ */
41
+ export declare function vpaRecommendOnly(target: VpaTargetRef | VpaTargetResource, options?: VpaRecommendOnlyOptions): Enhanced<VerticalPodAutoscalerSpec, VerticalPodAutoscalerStatus>;
42
+ //# sourceMappingURL=vertical-pod-autoscaler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertical-pod-autoscaler.d.ts","sourceRoot":"","sources":["../../../../src/factories/vpa/resources/vertical-pod-autoscaler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGzE,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EAClB,MAAM,aAAa,CAAC;AASrB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,CAAC,2BAA2B,CAAC,GAC9C,QAAQ,CAAC,yBAAyB,EAAE,2BAA2B,CAAC,CAwBlE;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,GAAG,iBAAiB,EACxC,OAAO,GAAE,uBAA4B,GACpC,QAAQ,CAAC,yBAAyB,EAAE,2BAA2B,CAAC,CAqBlE"}
@@ -0,0 +1,93 @@
1
+ // `VerticalPodAutoscaler` factory (`autoscaling.k8s.io/v1`) and the
2
+ // recommend-only shorthand.
3
+ import { createResource } from '../../shared.js';
4
+ import { VPA_API_VERSION } from '../constants.js';
5
+ import { assertNoVpaErrors, findVpaAutoscalerConflicts, validateVerticalPodAutoscalerSpec, warnVpaIssues, } from '../utils/validation.js';
6
+ import { vpaAcceptedReadinessEvaluator, vpaRecommendationReadinessEvaluator } from './readiness.js';
7
+ /**
8
+ * Create a `VerticalPodAutoscaler`.
9
+ *
10
+ * Readiness waits for `RecommendationProvided=True` unless `readiness:
11
+ * 'accepted'`. Throws on the errors {@link validateVerticalPodAutoscalerSpec}
12
+ * reports, and warns when an HPA or ScaledObject in the same composition
13
+ * scales the target on a resource this VPA sets.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * verticalPodAutoscaler({
18
+ * name: 'api',
19
+ * spec: {
20
+ * targetRef: { apiVersion: 'apps/v1', kind: 'Deployment', name: 'api' },
21
+ * updatePolicy: { updateMode: 'InPlaceOrRecreate', minReplicas: 2 },
22
+ * resourcePolicy: {
23
+ * containerPolicies: [
24
+ * { containerName: '*', minAllowed: { cpu: '50m', memory: '64Mi' }, maxAllowed: { cpu: '2', memory: '4Gi' } },
25
+ * ],
26
+ * },
27
+ * },
28
+ * id: 'apiVpa',
29
+ * });
30
+ * ```
31
+ */
32
+ export function verticalPodAutoscaler(config) {
33
+ const spec = config.spec;
34
+ const issues = validateVerticalPodAutoscalerSpec(spec);
35
+ assertNoVpaErrors(config.name, issues);
36
+ warnVpaIssues('verticalPodAutoscaler', [
37
+ ...issues,
38
+ ...findVpaAutoscalerConflicts(spec, config.namespace),
39
+ ]);
40
+ const evaluator = config.readiness === 'accepted'
41
+ ? vpaAcceptedReadinessEvaluator
42
+ : vpaRecommendationReadinessEvaluator;
43
+ return createResource({
44
+ apiVersion: VPA_API_VERSION,
45
+ kind: 'VerticalPodAutoscaler',
46
+ metadata: {
47
+ name: config.name,
48
+ ...(config.namespace ? { namespace: config.namespace } : {}),
49
+ ...(config.labels ? { labels: config.labels } : {}),
50
+ ...(config.annotations ? { annotations: config.annotations } : {}),
51
+ },
52
+ spec,
53
+ ...(config.id ? { id: config.id } : {}),
54
+ }).withReadinessEvaluator(evaluator);
55
+ }
56
+ function isTargetResource(target) {
57
+ return typeof target.metadata === 'object';
58
+ }
59
+ /**
60
+ * A VPA in `updateMode: 'Off'`: it records recommendations and changes
61
+ * nothing. Safe next to an HPA, and needs only the recommender installed.
62
+ *
63
+ * @param target - A `targetRef`, or the workload resource itself.
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * const api = simple.Deployment({ name: 'api', image: 'nginx', id: 'api' });
68
+ * vpaRecommendOnly(api, { id: 'apiVpa' });
69
+ * ```
70
+ */
71
+ export function vpaRecommendOnly(target, options = {}) {
72
+ const targetRef = isTargetResource(target)
73
+ ? {
74
+ apiVersion: target.apiVersion,
75
+ kind: target.kind,
76
+ name: target.metadata.name,
77
+ }
78
+ : target;
79
+ return verticalPodAutoscaler({
80
+ name: options.name ?? targetRef.name,
81
+ ...(options.namespace ? { namespace: options.namespace } : {}),
82
+ spec: {
83
+ targetRef,
84
+ updatePolicy: { updateMode: 'Off' },
85
+ ...(options.containerPolicies
86
+ ? { resourcePolicy: { containerPolicies: options.containerPolicies } }
87
+ : {}),
88
+ },
89
+ ...(options.readiness ? { readiness: options.readiness } : {}),
90
+ ...(options.id ? { id: options.id } : {}),
91
+ });
92
+ }
93
+ //# sourceMappingURL=vertical-pod-autoscaler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertical-pod-autoscaler.js","sourceRoot":"","sources":["../../../../src/factories/vpa/resources/vertical-pod-autoscaler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,312 @@
1
+ import { type Type } from 'arktype';
2
+ import type { HelmReleaseLifecycleOptions } from '../helm/types.js';
3
+ /** Status condition as the recommender publishes it on a `VerticalPodAutoscaler`. */
4
+ export interface VpaCondition {
5
+ /** `RecommendationProvided`, `LowConfidence`, `NoPodsMatched`, `FetchingHistory`, `ConfigDeprecated` or `ConfigUnsupported`. */
6
+ type: string;
7
+ status: 'True' | 'False' | 'Unknown';
8
+ reason?: string;
9
+ message?: string;
10
+ lastTransitionTime?: string;
11
+ }
12
+ /** Quantities by resource name, e.g. `{ cpu: '100m', memory: '128Mi' }`. */
13
+ export type VpaResourceList = Record<string, string | number>;
14
+ /** Pod toleration for a VPA component. */
15
+ export interface VpaToleration {
16
+ key?: string;
17
+ operator?: 'Exists' | 'Equal';
18
+ value?: string;
19
+ effect?: 'NoSchedule' | 'PreferNoSchedule' | 'NoExecute';
20
+ tolerationSeconds?: number;
21
+ }
22
+ /** CPU/memory requests and limits. */
23
+ export interface VpaResourceRequirements {
24
+ requests?: {
25
+ cpu?: string;
26
+ memory?: string;
27
+ };
28
+ limits?: {
29
+ cpu?: string;
30
+ memory?: string;
31
+ };
32
+ }
33
+ /**
34
+ * When the VPA applies its recommendation. `Off` only records it; `Initial`
35
+ * sets requests at pod creation; `Recreate` also evicts running pods;
36
+ * `InPlaceOrRecreate` resizes in place and falls back to eviction; `InPlace`
37
+ * never evicts. `Auto` is a deprecated alias of `Recreate`.
38
+ */
39
+ export type VpaUpdateMode = 'Off' | 'Initial' | 'Recreate' | 'InPlaceOrRecreate' | 'InPlace' | 'Auto';
40
+ /** The workload a VPA controls: anything with a `scale` subresource or a pod template. */
41
+ export interface VpaTargetRef {
42
+ /** @default inferred by the VPA from `kind` */
43
+ apiVersion?: string;
44
+ kind: string;
45
+ name: string;
46
+ }
47
+ /** Per-container bounds and scope. `containerName: '*'` applies to every container. */
48
+ export interface VpaContainerPolicy {
49
+ containerName?: string;
50
+ /** `Off` turns the VPA off for this container. @default 'Auto' */
51
+ mode?: 'Auto' | 'Off';
52
+ minAllowed?: VpaResourceList;
53
+ maxAllowed?: VpaResourceList;
54
+ /** @default ['cpu', 'memory'] */
55
+ controlledResources?: Array<'cpu' | 'memory'>;
56
+ /** `RequestsOnly` leaves limits alone. @default 'RequestsAndLimits' */
57
+ controlledValues?: 'RequestsAndLimits' | 'RequestsOnly';
58
+ }
59
+ /** An eviction rule: only evict when the target moved in the given direction. */
60
+ export interface VpaEvictionRequirement {
61
+ resources: Array<'cpu' | 'memory'>;
62
+ changeRequirement: 'TargetHigherThanRequests' | 'TargetLowerThanRequests';
63
+ }
64
+ /** `spec` of a `VerticalPodAutoscaler`. */
65
+ export interface VerticalPodAutoscalerSpec {
66
+ targetRef: VpaTargetRef;
67
+ updatePolicy?: {
68
+ /** The CRD sets no default; the VPA treats an unset mode as `'Recreate'`. */
69
+ updateMode?: VpaUpdateMode;
70
+ /** Minimum live replicas before the updater evicts; overrides `--min-replicas`. */
71
+ minReplicas?: number;
72
+ evictionRequirements?: VpaEvictionRequirement[];
73
+ };
74
+ resourcePolicy?: {
75
+ containerPolicies?: VpaContainerPolicy[];
76
+ };
77
+ /** At most one recommender. The default recommender is used when empty. */
78
+ recommenders?: Array<{
79
+ name: string;
80
+ }>;
81
+ }
82
+ /** The recommendation for one container. */
83
+ export interface VpaContainerRecommendation {
84
+ containerName?: string;
85
+ target: Record<string, string>;
86
+ lowerBound?: Record<string, string>;
87
+ upperBound?: Record<string, string>;
88
+ /** The target before `minAllowed`/`maxAllowed` were applied. */
89
+ uncappedTarget?: Record<string, string>;
90
+ }
91
+ /** Observed status of a `VerticalPodAutoscaler`. */
92
+ export interface VerticalPodAutoscalerStatus {
93
+ recommendation?: {
94
+ containerRecommendations?: VpaContainerRecommendation[];
95
+ };
96
+ conditions?: VpaCondition[];
97
+ }
98
+ /** Configuration for {@link verticalPodAutoscaler}. */
99
+ export interface VerticalPodAutoscalerConfig {
100
+ name: string;
101
+ namespace?: string;
102
+ labels?: Record<string, string>;
103
+ annotations?: Record<string, string>;
104
+ spec: VerticalPodAutoscalerSpec;
105
+ /**
106
+ * `'recommendation'` waits for `RecommendationProvided=True`, which needs
107
+ * running pods and metrics. `'accepted'` is ready once the API server has
108
+ * stored the object. @default 'recommendation'
109
+ */
110
+ readiness?: 'recommendation' | 'accepted';
111
+ /** Resource id for composition references. */
112
+ id?: string;
113
+ }
114
+ /** A workload resource, used as a `targetRef` through its `apiVersion`, `kind` and name. */
115
+ export interface VpaTargetResource {
116
+ apiVersion: string;
117
+ kind: string;
118
+ metadata: {
119
+ name?: string | undefined;
120
+ };
121
+ }
122
+ /** Options for {@link vpaRecommendOnly}. */
123
+ export interface VpaRecommendOnlyOptions {
124
+ /** @default the target's name */
125
+ name?: string;
126
+ namespace?: string;
127
+ containerPolicies?: VpaContainerPolicy[];
128
+ readiness?: 'recommendation' | 'accepted';
129
+ id?: string;
130
+ }
131
+ /** Settings shared by the three VPA components. */
132
+ export interface VpaComponentConfig {
133
+ /** @default true */
134
+ enabled?: boolean;
135
+ /** @default 1 */
136
+ replicas?: number;
137
+ /** Merged by Helm over the chart's requests (see `VPA_DEFAULT_RESOURCES`). */
138
+ resources?: VpaResourceRequirements;
139
+ /**
140
+ * Rendered by the chart only when `replicas` is above 1. Percentages go
141
+ * through the build-time `values`. @default { maxUnavailable: 1 }
142
+ */
143
+ podDisruptionBudget?: {
144
+ minAvailable?: number;
145
+ maxUnavailable?: number;
146
+ };
147
+ nodeSelector?: Record<string, string>;
148
+ tolerations?: VpaToleration[];
149
+ affinity?: Record<string, unknown>;
150
+ }
151
+ /** Recommender settings and flags. Every flag is rendered with its default. */
152
+ export interface VpaRecommenderConfig extends VpaComponentConfig {
153
+ /** klog verbosity (`--v`). @default 4 */
154
+ logLevel?: number;
155
+ /** `--pod-recommendation-min-cpu-millicores`. @default 15 */
156
+ podRecommendationMinCpuMillicores?: number;
157
+ /** `--pod-recommendation-min-memory-mb`. @default 100 */
158
+ podRecommendationMinMemoryMb?: number;
159
+ /** `--target-cpu-percentile`. @default 0.9 */
160
+ targetCpuPercentile?: number;
161
+ /** `--target-memory-percentile`. @default 0.9 */
162
+ targetMemoryPercentile?: number;
163
+ /** `--recommendation-margin-fraction`. @default 0.15 */
164
+ recommendationMarginFraction?: number;
165
+ /** `--cpu-histogram-decay-half-life`. @default '24h' */
166
+ cpuHistogramDecayHalfLife?: string;
167
+ /** `--memory-histogram-decay-half-life`. @default '24h' */
168
+ memoryHistogramDecayHalfLife?: string;
169
+ /** `--memory-aggregation-interval`: one memory peak sample per interval. @default '24h' */
170
+ memoryAggregationInterval?: string;
171
+ /** `--memory-aggregation-interval-count`: intervals in the memory window. @default 8 */
172
+ memoryAggregationIntervalCount?: number;
173
+ /** `--storage`: where usage history comes from. @default 'checkpoint' */
174
+ storage?: 'checkpoint' | 'prometheus';
175
+ /** `--history-length`: how far back to query Prometheus. @default '8d' */
176
+ historyLength?: string;
177
+ /** `--prometheus-address`. @default 'http://prometheus.monitoring.svc' */
178
+ prometheusAddress?: string;
179
+ /** `--recommender-name`, matched against a VPA's `recommenders`. @default 'default' */
180
+ recommenderName?: string;
181
+ }
182
+ /** Updater settings and flags. */
183
+ export interface VpaUpdaterConfig extends VpaComponentConfig {
184
+ /** `--min-replicas`: live replicas needed before the updater evicts. @default 2 */
185
+ minReplicas?: number;
186
+ /** `--eviction-tolerance`: fraction of replicas evictable at once. @default 0.5 */
187
+ evictionTolerance?: number;
188
+ }
189
+ /** Admission controller settings: the webhook that writes recommended requests into new pods. */
190
+ export interface VpaAdmissionControllerConfig extends VpaComponentConfig {
191
+ certificate?: {
192
+ /**
193
+ * Let the chart's `kube-webhook-certgen` hook Jobs create the serving
194
+ * Secret and patch the webhook CA bundle. @default true
195
+ */
196
+ generate?: boolean;
197
+ /** Serving Secret. @default '<name>-tls-secret' */
198
+ secretName?: string;
199
+ /** Secret key to file name mapping; `VPA_CERT_MANAGER_TLS_SECRET_KEYS` for cert-manager. */
200
+ secretKeys?: Array<{
201
+ key: string;
202
+ path: string;
203
+ }>;
204
+ };
205
+ webhook?: {
206
+ /** @default 'Ignore' */
207
+ failurePolicy?: 'Ignore' | 'Fail';
208
+ /** @default 5 */
209
+ timeoutSeconds?: number;
210
+ namespaceSelector?: Record<string, unknown>;
211
+ objectSelector?: Record<string, unknown>;
212
+ /** E.g. `{ 'cert-manager.io/inject-ca-from': '<namespace>/<certificate>' }`. */
213
+ annotations?: Record<string, string>;
214
+ };
215
+ }
216
+ /** Runtime spec of the `vpaBootstrap` composition. */
217
+ export interface VpaBootstrapConfig {
218
+ /** Helm release name, also the chart `fullnameOverride`. */
219
+ name: string;
220
+ /** Install namespace. @default 'vpa' */
221
+ namespace?: string;
222
+ /** Fairwinds `vpa` chart version. @default '5.1.0' */
223
+ version?: string;
224
+ recommender?: VpaRecommenderConfig;
225
+ updater?: VpaUpdaterConfig;
226
+ admissionController?: VpaAdmissionControllerConfig;
227
+ /** Install the bundled metrics-server subchart. VPA needs `metrics.k8s.io`. @default false */
228
+ metricsServer?: {
229
+ enabled?: boolean;
230
+ };
231
+ /** Priority class for every component. */
232
+ priorityClassName?: string;
233
+ /** Annotations on every component's service account. */
234
+ serviceAccountAnnotations?: Record<string, string>;
235
+ }
236
+ /** Status of the `vpaBootstrap` composition. */
237
+ export interface VpaBootstrapStatus {
238
+ ready: boolean;
239
+ failed: boolean;
240
+ phase: 'Ready' | 'Installing' | 'Failed';
241
+ /** Chart version Flux installed, read from the `HelmRelease` history. */
242
+ version: string;
243
+ }
244
+ /** ArkType schema for {@link VpaBootstrapConfig}. */
245
+ export declare const VpaBootstrapConfigSchema: Type<VpaBootstrapConfig>;
246
+ /** ArkType schema for {@link VpaBootstrapStatus}. */
247
+ export declare const VpaBootstrapStatusSchema: Type<VpaBootstrapStatus>;
248
+ /** Spec of the shared `HelmRepository` singleton. */
249
+ export interface VpaHelmRepositorySingletonSpec {
250
+ name: string;
251
+ namespace: string;
252
+ url: string;
253
+ }
254
+ /** ArkType schema for {@link VpaHelmRepositorySingletonSpec}. */
255
+ export declare const VpaHelmRepositorySingletonSpecSchema: Type<VpaHelmRepositorySingletonSpec>;
256
+ /** ArkType schema for the singleton's status. */
257
+ export declare const VpaHelmRepositorySingletonStatusSchema: Type<{
258
+ ready: boolean;
259
+ }>;
260
+ /**
261
+ * Build-time options for {@link makeVpaBootstrap}. These decide which
262
+ * resources exist, so they must be concrete.
263
+ *
264
+ * `install`, `upgrade` and `driftDetection` are the Flux lifecycle options
265
+ * every TypeKro HelmRelease factory takes. They override the release's
266
+ * defaults field by field.
267
+ */
268
+ export interface VpaBootstrapBuildOptions extends HelmReleaseLifecycleOptions {
269
+ /** Composition name. @default 'vpa-bootstrap' */
270
+ readonly name?: string;
271
+ /** KRO kind. @default 'VpaBootstrap' */
272
+ readonly kind?: string;
273
+ /**
274
+ * `'owned'` makes the namespace part of the graph. `'external'` leaves it to
275
+ * Flux (`install.createNamespace`). @default 'external'
276
+ */
277
+ readonly namespaceOwnership?: 'owned' | 'external';
278
+ /** Raw chart values, deep-merged over the mapped values. Plain objects merge; lists replace. */
279
+ readonly values?: Record<string, unknown>;
280
+ }
281
+ /** Configuration for the VPA `HelmRepository`. */
282
+ export interface VpaHelmRepositoryConfig {
283
+ /** @default DEFAULT_VPA_REPOSITORY_NAME */
284
+ name?: string;
285
+ /** @default 'flux-system' */
286
+ namespace?: string;
287
+ /** @default DEFAULT_VPA_REPOSITORY_URL */
288
+ url?: string;
289
+ /** @default '1h' */
290
+ interval?: string;
291
+ id?: string;
292
+ }
293
+ /** Configuration for {@link vpaHelmRelease}. */
294
+ export interface VpaHelmReleaseConfig extends HelmReleaseLifecycleOptions {
295
+ /** `HelmRelease` name, also pinned as the Helm release name. */
296
+ name: string;
297
+ /** Namespace of the `HelmRelease` object. @default 'flux-system' */
298
+ namespace?: string;
299
+ /** Install namespace. @default 'vpa' */
300
+ targetNamespace?: string;
301
+ /** @default DEFAULT_VPA_CHART_VERSION */
302
+ version?: string;
303
+ /** @default DEFAULT_VPA_REPOSITORY_NAME */
304
+ repositoryName?: string;
305
+ /** @default the `HelmRelease` namespace */
306
+ repositoryNamespace?: string;
307
+ /** Let Flux create the install namespace. @default false */
308
+ createNamespace?: boolean;
309
+ values?: Record<string, unknown>;
310
+ id?: string;
311
+ }
312
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/vpa/types.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAMpE,qFAAqF;AACrF,MAAM,WAAW,YAAY;IAC3B,gIAAgI;IAChI,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,4EAA4E;AAC5E,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAE9D,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,GAAG,kBAAkB,GAAG,WAAW,CAAC;IACzD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,sCAAsC;AACtC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAMD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB,KAAK,GACL,SAAS,GACT,UAAU,GACV,mBAAmB,GACnB,SAAS,GACT,MAAM,CAAC;AAEX,0FAA0F;AAC1F,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uFAAuF;AACvF,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,iCAAiC;IACjC,mBAAmB,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;IAC9C,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,mBAAmB,GAAG,cAAc,CAAC;CACzD;AAED,iFAAiF;AACjF,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;IACnC,iBAAiB,EAAE,0BAA0B,GAAG,yBAAyB,CAAC;CAC3E;AAED,2CAA2C;AAC3C,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,YAAY,CAAC;IACxB,YAAY,CAAC,EAAE;QACb,6EAA6E;QAC7E,UAAU,CAAC,EAAE,aAAa,CAAC;QAC3B,mFAAmF;QACnF,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,oBAAoB,CAAC,EAAE,sBAAsB,EAAE,CAAC;KACjD,CAAC;IACF,cAAc,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC;IAC9D,2EAA2E;IAC3E,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxC;AAED,4CAA4C;AAC5C,MAAM,WAAW,0BAA0B;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,oDAAoD;AACpD,MAAM,WAAW,2BAA2B;IAC1C,cAAc,CAAC,EAAE;QAAE,wBAAwB,CAAC,EAAE,0BAA0B,EAAE,CAAA;KAAE,CAAC;IAC7E,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;CAC7B;AAED,uDAAuD;AACvD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,yBAAyB,CAAC;IAChC;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAAC;IAC1C,8CAA8C;IAC9C,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,4FAA4F;AAC5F,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;CACzC;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACzC,SAAS,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAAC;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAMD,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC;;;OAGG;IACH,mBAAmB,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,+EAA+E;AAC/E,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,yDAAyD;IACzD,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wDAAwD;IACxD,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,wDAAwD;IACxD,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,2DAA2D;IAC3D,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,2FAA2F;IAC3F,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,wFAAwF;IACxF,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,yEAAyE;IACzE,OAAO,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACtC,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uFAAuF;IACvF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,kCAAkC;AAClC,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,iGAAiG;AACjG,MAAM,WAAW,4BAA6B,SAAQ,kBAAkB;IACtE,WAAW,CAAC,EAAE;QACZ;;;WAGG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,mDAAmD;QACnD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,4FAA4F;QAC5F,UAAU,CAAC,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACnD,CAAC;IACF,OAAO,CAAC,EAAE;QACR,wBAAwB;QACxB,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;QAClC,iBAAiB;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,gFAAgF;QAChF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC,CAAC;CACH;AAED,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,mBAAmB,CAAC,EAAE,4BAA4B,CAAC;IACnD,8FAA8F;IAC9F,aAAa,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACtC,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpD;AAED,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC;IACzC,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;CACjB;AA0BD,qDAAqD;AACrD,eAAO,MAAM,wBAAwB,EAAE,IAAI,CAAC,kBAAkB,CA4C5D,CAAC;AAEH,qDAAqD;AACrD,eAAO,MAAM,wBAAwB,EAAE,IAAI,CAAC,kBAAkB,CAK5D,CAAC;AAEH,qDAAqD;AACrD,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,iEAAiE;AACjE,eAAO,MAAM,oCAAoC,EAAE,IAAI,CAAC,8BAA8B,CAIpF,CAAC;AAEH,iDAAiD;AACjD,eAAO,MAAM,sCAAsC,EAAE,IAAI,CAAC;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAE1E,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAyB,SAAQ,2BAA2B;IAC3E,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACnD,gGAAgG;IAChG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,kDAAkD;AAClD,MAAM,WAAW,uBAAuB;IACtC,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,gDAAgD;AAChD,MAAM,WAAW,oBAAqB,SAAQ,2BAA2B;IACvE,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb"}