typekro 0.33.9 → 0.34.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 (352) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts +0 -33
  3. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts.map +1 -1
  4. package/dist/compositions/typekro-runtime/typekro-runtime.js +63 -1
  5. package/dist/compositions/typekro-runtime/typekro-runtime.js.map +1 -1
  6. package/dist/compositions/typekro-runtime/types.d.ts +8 -0
  7. package/dist/compositions/typekro-runtime/types.d.ts.map +1 -1
  8. package/dist/compositions/typekro-runtime/types.js +1 -0
  9. package/dist/compositions/typekro-runtime/types.js.map +1 -1
  10. package/dist/core/aspects/values-merge.d.ts +17 -0
  11. package/dist/core/aspects/values-merge.d.ts.map +1 -1
  12. package/dist/core/aspects/values-merge.js +67 -8
  13. package/dist/core/aspects/values-merge.js.map +1 -1
  14. package/dist/core/deployment/direct-factory.d.ts +9 -0
  15. package/dist/core/deployment/direct-factory.d.ts.map +1 -1
  16. package/dist/core/deployment/direct-factory.js +37 -3
  17. package/dist/core/deployment/direct-factory.js.map +1 -1
  18. package/dist/core/deployment/engine.d.ts +34 -0
  19. package/dist/core/deployment/engine.d.ts.map +1 -1
  20. package/dist/core/deployment/engine.js +173 -29
  21. package/dist/core/deployment/engine.js.map +1 -1
  22. package/dist/core/deployment/index.d.ts +2 -0
  23. package/dist/core/deployment/index.d.ts.map +1 -1
  24. package/dist/core/deployment/index.js +1 -0
  25. package/dist/core/deployment/index.js.map +1 -1
  26. package/dist/core/deployment/k8s-helpers.d.ts +73 -0
  27. package/dist/core/deployment/k8s-helpers.d.ts.map +1 -1
  28. package/dist/core/deployment/k8s-helpers.js +198 -4
  29. package/dist/core/deployment/k8s-helpers.js.map +1 -1
  30. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  31. package/dist/core/deployment/kro-factory.js +21 -1
  32. package/dist/core/deployment/kro-factory.js.map +1 -1
  33. package/dist/core/deployment/status-leaf-resolution.d.ts +101 -0
  34. package/dist/core/deployment/status-leaf-resolution.d.ts.map +1 -0
  35. package/dist/core/deployment/status-leaf-resolution.js +232 -0
  36. package/dist/core/deployment/status-leaf-resolution.js.map +1 -0
  37. package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
  38. package/dist/core/deployment/strategies/base-strategy.js +31 -3
  39. package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
  40. package/dist/core/deployment/strategies/kro-strategy.d.ts.map +1 -1
  41. package/dist/core/deployment/strategies/kro-strategy.js +8 -1
  42. package/dist/core/deployment/strategies/kro-strategy.js.map +1 -1
  43. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts.map +1 -1
  44. package/dist/core/expressions/composition/composition-analyzer-helpers.js +20 -2
  45. package/dist/core/expressions/composition/composition-analyzer-helpers.js.map +1 -1
  46. package/dist/core/kro/index.d.ts +6 -0
  47. package/dist/core/kro/index.d.ts.map +1 -0
  48. package/dist/core/kro/index.js +6 -0
  49. package/dist/core/kro/index.js.map +1 -0
  50. package/dist/core/kro/label-guard-capability.d.ts +141 -0
  51. package/dist/core/kro/label-guard-capability.d.ts.map +1 -0
  52. package/dist/core/kro/label-guard-capability.js +257 -0
  53. package/dist/core/kro/label-guard-capability.js.map +1 -0
  54. package/dist/core/kro/labels.d.ts +56 -0
  55. package/dist/core/kro/labels.d.ts.map +1 -0
  56. package/dist/core/kro/labels.js +62 -0
  57. package/dist/core/kro/labels.js.map +1 -0
  58. package/dist/core/kubernetes/api-capability.d.ts +196 -0
  59. package/dist/core/kubernetes/api-capability.d.ts.map +1 -0
  60. package/dist/core/kubernetes/api-capability.js +301 -0
  61. package/dist/core/kubernetes/api-capability.js.map +1 -0
  62. package/dist/core/kubernetes/index.d.ts +2 -0
  63. package/dist/core/kubernetes/index.d.ts.map +1 -1
  64. package/dist/core/kubernetes/index.js +2 -0
  65. package/dist/core/kubernetes/index.js.map +1 -1
  66. package/dist/core/kubernetes/naming.d.ts +100 -0
  67. package/dist/core/kubernetes/naming.d.ts.map +1 -0
  68. package/dist/core/kubernetes/naming.js +93 -0
  69. package/dist/core/kubernetes/naming.js.map +1 -0
  70. package/dist/core/planning/direct-runtime-adapter.d.ts.map +1 -1
  71. package/dist/core/planning/direct-runtime-adapter.js +54 -17
  72. package/dist/core/planning/direct-runtime-adapter.js.map +1 -1
  73. package/dist/core/planning/planner.d.ts.map +1 -1
  74. package/dist/core/planning/planner.js +17 -0
  75. package/dist/core/planning/planner.js.map +1 -1
  76. package/dist/core/planning/schema.d.ts.map +1 -1
  77. package/dist/core/planning/schema.js +7 -3
  78. package/dist/core/planning/schema.js.map +1 -1
  79. package/dist/core/references/cel-lexical-scanner.d.ts +100 -1
  80. package/dist/core/references/cel-lexical-scanner.d.ts.map +1 -1
  81. package/dist/core/references/cel-lexical-scanner.js +196 -2
  82. package/dist/core/references/cel-lexical-scanner.js.map +1 -1
  83. package/dist/core/references/cel.d.ts +249 -1
  84. package/dist/core/references/cel.d.ts.map +1 -1
  85. package/dist/core/references/cel.js +289 -8
  86. package/dist/core/references/cel.js.map +1 -1
  87. package/dist/core/serialization/arktype-ast.d.ts +21 -0
  88. package/dist/core/serialization/arktype-ast.d.ts.map +1 -0
  89. package/dist/core/serialization/arktype-ast.js +29 -0
  90. package/dist/core/serialization/arktype-ast.js.map +1 -0
  91. package/dist/core/serialization/cel-references.d.ts +133 -32
  92. package/dist/core/serialization/cel-references.d.ts.map +1 -1
  93. package/dist/core/serialization/cel-references.js +908 -109
  94. package/dist/core/serialization/cel-references.js.map +1 -1
  95. package/dist/core/serialization/core.d.ts.map +1 -1
  96. package/dist/core/serialization/core.js +13 -2
  97. package/dist/core/serialization/core.js.map +1 -1
  98. package/dist/core/serialization/schema.d.ts +16 -2
  99. package/dist/core/serialization/schema.d.ts.map +1 -1
  100. package/dist/core/serialization/schema.js +113 -21
  101. package/dist/core/serialization/schema.js.map +1 -1
  102. package/dist/core/types/composable.d.ts +7 -1
  103. package/dist/core/types/composable.d.ts.map +1 -1
  104. package/dist/core/types/deployment.d.ts +32 -2
  105. package/dist/core/types/deployment.d.ts.map +1 -1
  106. package/dist/core/types/serialization.d.ts +37 -0
  107. package/dist/core/types/serialization.d.ts.map +1 -1
  108. package/dist/core/validation/cel-dialect.d.ts +246 -0
  109. package/dist/core/validation/cel-dialect.d.ts.map +1 -0
  110. package/dist/core/validation/cel-dialect.js +1997 -0
  111. package/dist/core/validation/cel-dialect.js.map +1 -0
  112. package/dist/core/validation/cel-validator.d.ts.map +1 -1
  113. package/dist/core/validation/cel-validator.js +8 -1
  114. package/dist/core/validation/cel-validator.js.map +1 -1
  115. package/dist/core/validation/literal-status.d.ts +107 -0
  116. package/dist/core/validation/literal-status.d.ts.map +1 -0
  117. package/dist/core/validation/literal-status.js +346 -0
  118. package/dist/core/validation/literal-status.js.map +1 -0
  119. package/dist/core/validation/structural-spec-dependence.d.ts +179 -0
  120. package/dist/core/validation/structural-spec-dependence.d.ts.map +1 -0
  121. package/dist/core/validation/structural-spec-dependence.js +911 -0
  122. package/dist/core/validation/structural-spec-dependence.js.map +1 -0
  123. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts.map +1 -1
  124. package/dist/factories/apisix/compositions/apisix-bootstrap.js +9 -0
  125. package/dist/factories/apisix/compositions/apisix-bootstrap.js.map +1 -1
  126. package/dist/factories/clickhouse/compositions/clickhouse-cluster.d.ts +6 -0
  127. package/dist/factories/clickhouse/compositions/clickhouse-cluster.d.ts.map +1 -1
  128. package/dist/factories/clickhouse/compositions/clickhouse-cluster.js +273 -23
  129. package/dist/factories/clickhouse/compositions/clickhouse-cluster.js.map +1 -1
  130. package/dist/factories/clickhouse/resources/index.d.ts +1 -0
  131. package/dist/factories/clickhouse/resources/index.d.ts.map +1 -1
  132. package/dist/factories/clickhouse/resources/index.js +1 -0
  133. package/dist/factories/clickhouse/resources/index.js.map +1 -1
  134. package/dist/factories/clickhouse/resources/installation.d.ts.map +1 -1
  135. package/dist/factories/clickhouse/resources/installation.js +31 -4
  136. package/dist/factories/clickhouse/resources/installation.js.map +1 -1
  137. package/dist/factories/clickhouse/resources/s3-backup.d.ts +215 -0
  138. package/dist/factories/clickhouse/resources/s3-backup.d.ts.map +1 -0
  139. package/dist/factories/clickhouse/resources/s3-backup.js +410 -0
  140. package/dist/factories/clickhouse/resources/s3-backup.js.map +1 -0
  141. package/dist/factories/clickhouse/types.d.ts +416 -20
  142. package/dist/factories/clickhouse/types.d.ts.map +1 -1
  143. package/dist/factories/clickhouse/types.js +235 -11
  144. package/dist/factories/clickhouse/types.js.map +1 -1
  145. package/dist/factories/clickhouse/utils/helm-values-mapper.d.ts +42 -0
  146. package/dist/factories/clickhouse/utils/helm-values-mapper.d.ts.map +1 -1
  147. package/dist/factories/clickhouse/utils/helm-values-mapper.js +48 -0
  148. package/dist/factories/clickhouse/utils/helm-values-mapper.js.map +1 -1
  149. package/dist/factories/clickhouse/utils/index.d.ts +2 -0
  150. package/dist/factories/clickhouse/utils/index.d.ts.map +1 -1
  151. package/dist/factories/clickhouse/utils/index.js +2 -0
  152. package/dist/factories/clickhouse/utils/index.js.map +1 -1
  153. package/dist/factories/clickhouse/utils/s3-storage.d.ts +503 -0
  154. package/dist/factories/clickhouse/utils/s3-storage.d.ts.map +1 -0
  155. package/dist/factories/clickhouse/utils/s3-storage.js +1139 -0
  156. package/dist/factories/clickhouse/utils/s3-storage.js.map +1 -0
  157. package/dist/factories/clickhouse/utils/validation.d.ts +103 -0
  158. package/dist/factories/clickhouse/utils/validation.d.ts.map +1 -1
  159. package/dist/factories/clickhouse/utils/validation.js +129 -0
  160. package/dist/factories/clickhouse/utils/validation.js.map +1 -1
  161. package/dist/factories/clickhouse/utils/xml.d.ts +87 -0
  162. package/dist/factories/clickhouse/utils/xml.d.ts.map +1 -0
  163. package/dist/factories/clickhouse/utils/xml.js +151 -0
  164. package/dist/factories/clickhouse/utils/xml.js.map +1 -0
  165. package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts +57 -0
  166. package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts.map +1 -1
  167. package/dist/factories/clickstack/compositions/clickstack-bootstrap.js +266 -7
  168. package/dist/factories/clickstack/compositions/clickstack-bootstrap.js.map +1 -1
  169. package/dist/factories/clickstack/types.d.ts +205 -26
  170. package/dist/factories/clickstack/types.d.ts.map +1 -1
  171. package/dist/factories/clickstack/types.js +106 -8
  172. package/dist/factories/clickstack/types.js.map +1 -1
  173. package/dist/factories/clickstack/utils/collector-config.d.ts +104 -0
  174. package/dist/factories/clickstack/utils/collector-config.d.ts.map +1 -0
  175. package/dist/factories/clickstack/utils/collector-config.js +266 -0
  176. package/dist/factories/clickstack/utils/collector-config.js.map +1 -0
  177. package/dist/factories/clickstack/utils/helm-values-mapper.d.ts +26 -0
  178. package/dist/factories/clickstack/utils/helm-values-mapper.d.ts.map +1 -1
  179. package/dist/factories/clickstack/utils/helm-values-mapper.js +53 -12
  180. package/dist/factories/clickstack/utils/helm-values-mapper.js.map +1 -1
  181. package/dist/factories/clickstack/utils/index.d.ts +2 -0
  182. package/dist/factories/clickstack/utils/index.d.ts.map +1 -1
  183. package/dist/factories/clickstack/utils/index.js +2 -0
  184. package/dist/factories/clickstack/utils/index.js.map +1 -1
  185. package/dist/factories/clickstack/utils/storage.d.ts +449 -0
  186. package/dist/factories/clickstack/utils/storage.d.ts.map +1 -0
  187. package/dist/factories/clickstack/utils/storage.js +698 -0
  188. package/dist/factories/clickstack/utils/storage.js.map +1 -0
  189. package/dist/factories/cnpg/resources/helm.d.ts.map +1 -1
  190. package/dist/factories/cnpg/resources/helm.js +4 -4
  191. package/dist/factories/cnpg/resources/helm.js.map +1 -1
  192. package/dist/factories/cnpg/types.d.ts +10 -1
  193. package/dist/factories/cnpg/types.d.ts.map +1 -1
  194. package/dist/factories/cnpg/types.js.map +1 -1
  195. package/dist/factories/cnpg/utils/helm-values-mapper.d.ts +19 -2
  196. package/dist/factories/cnpg/utils/helm-values-mapper.d.ts.map +1 -1
  197. package/dist/factories/cnpg/utils/helm-values-mapper.js +22 -4
  198. package/dist/factories/cnpg/utils/helm-values-mapper.js.map +1 -1
  199. package/dist/factories/envoy-ai-gateway/compositions/gateway.d.ts.map +1 -1
  200. package/dist/factories/envoy-ai-gateway/compositions/gateway.js +16 -3
  201. package/dist/factories/envoy-ai-gateway/compositions/gateway.js.map +1 -1
  202. package/dist/factories/envoy-ai-gateway/constants.d.ts +5 -2
  203. package/dist/factories/envoy-ai-gateway/constants.d.ts.map +1 -1
  204. package/dist/factories/envoy-ai-gateway/constants.js +5 -2
  205. package/dist/factories/envoy-ai-gateway/constants.js.map +1 -1
  206. package/dist/factories/envoy-ai-gateway/resources/gateway.d.ts +12 -0
  207. package/dist/factories/envoy-ai-gateway/resources/gateway.d.ts.map +1 -1
  208. package/dist/factories/envoy-ai-gateway/resources/gateway.js +27 -104
  209. package/dist/factories/envoy-ai-gateway/resources/gateway.js.map +1 -1
  210. package/dist/factories/envoy-ai-gateway/types.d.ts +15 -47
  211. package/dist/factories/envoy-ai-gateway/types.d.ts.map +1 -1
  212. package/dist/factories/envoy-ai-gateway/types.js.map +1 -1
  213. package/dist/factories/gateway-api/constants.d.ts +27 -0
  214. package/dist/factories/gateway-api/constants.d.ts.map +1 -0
  215. package/dist/factories/gateway-api/constants.js +27 -0
  216. package/dist/factories/gateway-api/constants.js.map +1 -0
  217. package/dist/factories/gateway-api/index.d.ts +14 -0
  218. package/dist/factories/gateway-api/index.d.ts.map +1 -0
  219. package/dist/factories/gateway-api/index.js +14 -0
  220. package/dist/factories/gateway-api/index.js.map +1 -0
  221. package/dist/factories/gateway-api/readiness.d.ts +67 -0
  222. package/dist/factories/gateway-api/readiness.d.ts.map +1 -0
  223. package/dist/factories/gateway-api/readiness.js +213 -0
  224. package/dist/factories/gateway-api/readiness.js.map +1 -0
  225. package/dist/factories/gateway-api/resources/gateway.d.ts +91 -0
  226. package/dist/factories/gateway-api/resources/gateway.d.ts.map +1 -0
  227. package/dist/factories/gateway-api/resources/gateway.js +99 -0
  228. package/dist/factories/gateway-api/resources/gateway.js.map +1 -0
  229. package/dist/factories/gateway-api/resources/index.d.ts +2 -0
  230. package/dist/factories/gateway-api/resources/index.d.ts.map +1 -0
  231. package/dist/factories/gateway-api/resources/index.js +2 -0
  232. package/dist/factories/gateway-api/resources/index.js.map +1 -0
  233. package/dist/factories/gateway-api/types.d.ts +1269 -0
  234. package/dist/factories/gateway-api/types.d.ts.map +1 -0
  235. package/dist/factories/gateway-api/types.js +417 -0
  236. package/dist/factories/gateway-api/types.js.map +1 -0
  237. package/dist/factories/helm/readiness-evaluators.d.ts +21 -3
  238. package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
  239. package/dist/factories/helm/readiness-evaluators.js +117 -11
  240. package/dist/factories/helm/readiness-evaluators.js.map +1 -1
  241. package/dist/factories/helm/types.d.ts +28 -0
  242. package/dist/factories/helm/types.d.ts.map +1 -1
  243. package/dist/factories/index.d.ts +2 -0
  244. package/dist/factories/index.d.ts.map +1 -1
  245. package/dist/factories/index.js +8 -0
  246. package/dist/factories/index.js.map +1 -1
  247. package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts.map +1 -1
  248. package/dist/factories/inngest/compositions/inngest-bootstrap.js +10 -0
  249. package/dist/factories/inngest/compositions/inngest-bootstrap.js.map +1 -1
  250. package/dist/factories/kubernetes/admission/index.d.ts +2 -0
  251. package/dist/factories/kubernetes/admission/index.d.ts.map +1 -1
  252. package/dist/factories/kubernetes/admission/index.js +2 -0
  253. package/dist/factories/kubernetes/admission/index.js.map +1 -1
  254. package/dist/factories/kubernetes/admission/label-propagation-guard.d.ts +108 -0
  255. package/dist/factories/kubernetes/admission/label-propagation-guard.d.ts.map +1 -0
  256. package/dist/factories/kubernetes/admission/label-propagation-guard.js +247 -0
  257. package/dist/factories/kubernetes/admission/label-propagation-guard.js.map +1 -0
  258. package/dist/factories/kubernetes/admission/mutating-admission-policy.d.ts +286 -0
  259. package/dist/factories/kubernetes/admission/mutating-admission-policy.d.ts.map +1 -0
  260. package/dist/factories/kubernetes/admission/mutating-admission-policy.js +157 -0
  261. package/dist/factories/kubernetes/admission/mutating-admission-policy.js.map +1 -0
  262. package/dist/factories/opensearch/compositions/cluster.d.ts.map +1 -1
  263. package/dist/factories/opensearch/compositions/cluster.js +6 -1
  264. package/dist/factories/opensearch/compositions/cluster.js.map +1 -1
  265. package/dist/factories/ory/compositions/ory-identity-stack.d.ts +8 -8
  266. package/dist/factories/ory/types.d.ts +16 -16
  267. package/dist/factories/rook/compositions/object-storage-claim.d.ts +1 -1
  268. package/dist/factories/rook/compositions/rook-ceph-platform.js +8 -1
  269. package/dist/factories/rook/compositions/rook-ceph-platform.js.map +1 -1
  270. package/dist/factories/rook/types.d.ts +1 -1
  271. package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts +1 -1
  272. package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts.map +1 -1
  273. package/dist/factories/searxng/compositions/searxng-bootstrap.js +18 -13
  274. package/dist/factories/searxng/compositions/searxng-bootstrap.js.map +1 -1
  275. package/dist/factories/searxng/index.d.ts +3 -0
  276. package/dist/factories/searxng/index.d.ts.map +1 -1
  277. package/dist/factories/searxng/index.js +3 -0
  278. package/dist/factories/searxng/index.js.map +1 -1
  279. package/dist/factories/searxng/types.js +1 -1
  280. package/dist/factories/searxng/types.js.map +1 -1
  281. package/dist/factories/traefik/compositions/index.d.ts +6 -0
  282. package/dist/factories/traefik/compositions/index.d.ts.map +1 -0
  283. package/dist/factories/traefik/compositions/index.js +6 -0
  284. package/dist/factories/traefik/compositions/index.js.map +1 -0
  285. package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts +185 -0
  286. package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts.map +1 -0
  287. package/dist/factories/traefik/compositions/traefik-bootstrap.js +339 -0
  288. package/dist/factories/traefik/compositions/traefik-bootstrap.js.map +1 -0
  289. package/dist/factories/traefik/compositions/traefik-helm-repository.d.ts +16 -0
  290. package/dist/factories/traefik/compositions/traefik-helm-repository.d.ts.map +1 -0
  291. package/dist/factories/traefik/compositions/traefik-helm-repository.js +31 -0
  292. package/dist/factories/traefik/compositions/traefik-helm-repository.js.map +1 -0
  293. package/dist/factories/traefik/constants.d.ts +78 -0
  294. package/dist/factories/traefik/constants.d.ts.map +1 -0
  295. package/dist/factories/traefik/constants.js +104 -0
  296. package/dist/factories/traefik/constants.js.map +1 -0
  297. package/dist/factories/traefik/index.d.ts +25 -0
  298. package/dist/factories/traefik/index.d.ts.map +1 -0
  299. package/dist/factories/traefik/index.js +25 -0
  300. package/dist/factories/traefik/index.js.map +1 -0
  301. package/dist/factories/traefik/resources/common.d.ts +68 -0
  302. package/dist/factories/traefik/resources/common.d.ts.map +1 -0
  303. package/dist/factories/traefik/resources/common.js +59 -0
  304. package/dist/factories/traefik/resources/common.js.map +1 -0
  305. package/dist/factories/traefik/resources/gateway.d.ts +85 -0
  306. package/dist/factories/traefik/resources/gateway.d.ts.map +1 -0
  307. package/dist/factories/traefik/resources/gateway.js +109 -0
  308. package/dist/factories/traefik/resources/gateway.js.map +1 -0
  309. package/dist/factories/traefik/resources/helm.d.ts +56 -0
  310. package/dist/factories/traefik/resources/helm.d.ts.map +1 -0
  311. package/dist/factories/traefik/resources/helm.js +131 -0
  312. package/dist/factories/traefik/resources/helm.js.map +1 -0
  313. package/dist/factories/traefik/resources/index.d.ts +10 -0
  314. package/dist/factories/traefik/resources/index.d.ts.map +1 -0
  315. package/dist/factories/traefik/resources/index.js +10 -0
  316. package/dist/factories/traefik/resources/index.js.map +1 -0
  317. package/dist/factories/traefik/resources/middleware.d.ts +169 -0
  318. package/dist/factories/traefik/resources/middleware.d.ts.map +1 -0
  319. package/dist/factories/traefik/resources/middleware.js +225 -0
  320. package/dist/factories/traefik/resources/middleware.js.map +1 -0
  321. package/dist/factories/traefik/resources/routing.d.ts +113 -0
  322. package/dist/factories/traefik/resources/routing.d.ts.map +1 -0
  323. package/dist/factories/traefik/resources/routing.js +119 -0
  324. package/dist/factories/traefik/resources/routing.js.map +1 -0
  325. package/dist/factories/traefik/resources/tls.d.ts +85 -0
  326. package/dist/factories/traefik/resources/tls.d.ts.map +1 -0
  327. package/dist/factories/traefik/resources/tls.js +93 -0
  328. package/dist/factories/traefik/resources/tls.js.map +1 -0
  329. package/dist/factories/traefik/types.d.ts +2690 -0
  330. package/dist/factories/traefik/types.d.ts.map +1 -0
  331. package/dist/factories/traefik/types.js +1084 -0
  332. package/dist/factories/traefik/types.js.map +1 -0
  333. package/dist/factories/traefik/utils/helm-values-mapper.d.ts +198 -0
  334. package/dist/factories/traefik/utils/helm-values-mapper.d.ts.map +1 -0
  335. package/dist/factories/traefik/utils/helm-values-mapper.js +372 -0
  336. package/dist/factories/traefik/utils/helm-values-mapper.js.map +1 -0
  337. package/dist/factories/traefik/utils/index.d.ts +6 -0
  338. package/dist/factories/traefik/utils/index.d.ts.map +1 -0
  339. package/dist/factories/traefik/utils/index.js +6 -0
  340. package/dist/factories/traefik/utils/index.js.map +1 -0
  341. package/dist/factories/traefik/utils/middleware-validation.d.ts +42 -0
  342. package/dist/factories/traefik/utils/middleware-validation.d.ts.map +1 -0
  343. package/dist/factories/traefik/utils/middleware-validation.js +78 -0
  344. package/dist/factories/traefik/utils/middleware-validation.js.map +1 -0
  345. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -1
  346. package/dist/factories/webapp/compositions/web-app-with-processing.js +10 -0
  347. package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -1
  348. package/dist/index.d.ts +4 -3
  349. package/dist/index.d.ts.map +1 -1
  350. package/dist/index.js +3 -1
  351. package/dist/index.js.map +1 -1
  352. package/package.json +9 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-storage.js","sourceRoot":"","sources":["../../../../src/factories/clickhouse/utils/s3-storage.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,11 @@
6
6
  * every entry point that compiles a layout — the plain homogeneous path, the
7
7
  * zone-pinned path, the keeper compiler, and the `makeClickHouseCluster`
8
8
  * constructor — validates counts here BEFORE emitting operator input.
9
+ *
10
+ * The cluster NAME is validated here for a second reason on top of the
11
+ * operator's own rules: it is interpolated into the `ON CLUSTER '<name>'`
12
+ * clause of the scheduled backup, so it has to be an identifier and not a
13
+ * value that can terminate a SQL string literal.
9
14
  */
10
15
  /**
11
16
  * Assert that a topology count is a positive integer (>= 1).
@@ -18,4 +23,102 @@
18
23
  * value is zero, negative, or not an integer
19
24
  */
20
25
  export declare function assertPositiveIntegerCount(context: string, field: string, value: number): void;
26
+ /**
27
+ * Characters and length a ClickHouse cluster name may use.
28
+ *
29
+ * This is the INTERSECTION of two independent constraints, not a guess:
30
+ *
31
+ * - THE OPERATOR. The Altinity CRD (release-0.27.1, the version this family
32
+ * installs) constrains `spec.configuration.clusters[].name` to
33
+ * `pattern: "^[a-zA-Z0-9-]{0,15}$"` with `minLength: 1` / `maxLength: 15`,
34
+ * annotated `See namePartClusterMaxLen const` — the name becomes a fragment
35
+ * of generated Kubernetes object names (`chi-<chi>-<cluster>-<shard>-<replica>`).
36
+ * So an underscore, or anything past 15 characters, is rejected by the API
37
+ * server no matter what TypeKro accepts; allowing it here would only move
38
+ * the failure to apply time.
39
+ * - CLICKHOUSE. The same value is an identifier in `<remote_servers>` and the
40
+ * target of `ON CLUSTER '<name>'`, which the backup CronJob interpolates
41
+ * into a SQL string literal. A quote, a semicolon or whitespace there is not
42
+ * a naming problem, it is extra SQL.
43
+ *
44
+ * The intersection additionally requires a LEADING LETTER (ClickHouse reads
45
+ * the value as a bare identifier in the cluster configuration, and a leading
46
+ * digit or dash is not one) and forbids a TRAILING dash (it would leave a
47
+ * dangling separator in every generated object name).
48
+ *
49
+ * RE2-compatible on purpose: the same source is the `pattern=` marker of the
50
+ * generated KRO schema, and Kubernetes validates OpenAPI patterns with RE2.
51
+ */
52
+ export declare const CLICKHOUSE_CLUSTER_NAME_PATTERN: RegExp;
53
+ /**
54
+ * ArkType schema for a runtime `clusterName`.
55
+ *
56
+ * Used as the spec-schema type of `makeClickHouseCluster`'s optional
57
+ * `clusterName`, so the pattern and the length bound travel into the generated
58
+ * RGD (`string | maxLength=15 pattern="…"`) and KRO rejects a bad INSTANCE —
59
+ * the case a build-time check cannot reach, because in kro mode the value is a
60
+ * schema reference at construction.
61
+ */
62
+ export declare const ClickHouseClusterNameSchema: import("arktype/internal/variants/string.ts").StringType<string, {}>;
63
+ /**
64
+ * Assert that a CONCRETE cluster name is safe to compile into operator input
65
+ * and into the `ON CLUSTER` clause.
66
+ *
67
+ * Only meaningful for literals: in kro mode `spec.clusterName` arrives as a
68
+ * schema reference, and {@link ClickHouseClusterNameSchema} carries the same
69
+ * rule into the RGD for that path.
70
+ *
71
+ * @param context - The entry point name for the error message
72
+ * @param field - The offending config field (e.g. `clusterName`)
73
+ * @param value - The value received; non-strings are ignored (they are
74
+ * references, validated by KRO instead)
75
+ * @throws Error naming the entry point, field, and received value when a
76
+ * concrete string does not match {@link CLICKHOUSE_CLUSTER_NAME_PATTERN}
77
+ */
78
+ export declare function assertClickHouseClusterName(context: string, field: string, value: unknown): void;
79
+ /**
80
+ * Characters a value may use when it becomes a ClickHouse configuration
81
+ * IDENTIFIER — a bare `<name>` element inside a server-configuration document.
82
+ *
83
+ * Deliberately narrower than the XML `Name` production. ClickHouse reads these
84
+ * elements as identifiers (a disk name, a volume name, a storage-policy name
85
+ * referenced later by `SETTINGS storage_policy = '…'`), and TypeKro also has to
86
+ * be able to WRITE the name into an XML element name, where escaping does not
87
+ * exist as an option: a `>` closes the tag early, a space starts an attribute,
88
+ * a quote or an `&` makes the document malformed, and a leading digit is not a
89
+ * legal Name at all. Restricting to the SQL-identifier shape keeps the value
90
+ * usable in every position it reaches with no encoding step anywhere.
91
+ *
92
+ * Same shape as the `storage.backup.database` check in `utils/s3-storage.ts`,
93
+ * for the same reason: a bare identifier needs no quoting to be safe.
94
+ */
95
+ export declare const CLICKHOUSE_IDENTIFIER_PATTERN: RegExp;
96
+ /**
97
+ * Length bound for a {@link CLICKHOUSE_IDENTIFIER_PATTERN} identifier.
98
+ *
99
+ * Not a ClickHouse limit — the server is far more permissive. It is a sanity
100
+ * bound so a runaway or generated value fails at build time with a readable
101
+ * message instead of producing a multi-kilobyte element name that only fails
102
+ * when the server parses `config.d/storage.xml` at startup.
103
+ */
104
+ export declare const CLICKHOUSE_IDENTIFIER_MAX_LENGTH = 64;
105
+ /**
106
+ * Assert that a value is safe to compile into an XML ELEMENT NAME (and to
107
+ * reference from SQL) inside a ClickHouse server-configuration document.
108
+ *
109
+ * Unlike {@link assertClickHouseClusterName} this does NOT skip non-strings:
110
+ * every caller validates a value that is concrete by construction (the S3
111
+ * storage branch rejects schema references wholesale before resolving, because
112
+ * the values compile into an XML document), so a non-string here is a caller
113
+ * bug rather than a reference to be validated by KRO later.
114
+ *
115
+ * @param context - The entry point name for the error message
116
+ * @param field - The offending config field (e.g. `storage.policyName`)
117
+ * @param value - The value received
118
+ * @throws Error naming the entry point, field, and received value when the
119
+ * value is not a string, is empty, does not match
120
+ * {@link CLICKHOUSE_IDENTIFIER_PATTERN}, or exceeds
121
+ * {@link CLICKHOUSE_IDENTIFIER_MAX_LENGTH}
122
+ */
123
+ export declare function assertClickHouseIdentifier(context: string, field: string, value: unknown): void;
21
124
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/factories/clickhouse/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,IAAI,CAQN"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/factories/clickhouse/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,IAAI,CAQN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,+BAA+B,QAA+C,CAAC;AAE5F;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,sEAEvC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,GACb,IAAI,CAYN;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,6BAA6B,QAA6B,CAAC;AAExE;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAiB/F"}
@@ -6,7 +6,13 @@
6
6
  * every entry point that compiles a layout — the plain homogeneous path, the
7
7
  * zone-pinned path, the keeper compiler, and the `makeClickHouseCluster`
8
8
  * constructor — validates counts here BEFORE emitting operator input.
9
+ *
10
+ * The cluster NAME is validated here for a second reason on top of the
11
+ * operator's own rules: it is interpolated into the `ON CLUSTER '<name>'`
12
+ * clause of the scheduled backup, so it has to be an identifier and not a
13
+ * value that can terminate a SQL string literal.
9
14
  */
15
+ import { type } from 'arktype';
10
16
  /**
11
17
  * Assert that a topology count is a positive integer (>= 1).
12
18
  *
@@ -24,4 +30,127 @@ export function assertPositiveIntegerCount(context, field, value) {
24
30
  `use ${field} >= 1, or omit the field to use the default of 1.`);
25
31
  }
26
32
  }
33
+ /**
34
+ * Characters and length a ClickHouse cluster name may use.
35
+ *
36
+ * This is the INTERSECTION of two independent constraints, not a guess:
37
+ *
38
+ * - THE OPERATOR. The Altinity CRD (release-0.27.1, the version this family
39
+ * installs) constrains `spec.configuration.clusters[].name` to
40
+ * `pattern: "^[a-zA-Z0-9-]{0,15}$"` with `minLength: 1` / `maxLength: 15`,
41
+ * annotated `See namePartClusterMaxLen const` — the name becomes a fragment
42
+ * of generated Kubernetes object names (`chi-<chi>-<cluster>-<shard>-<replica>`).
43
+ * So an underscore, or anything past 15 characters, is rejected by the API
44
+ * server no matter what TypeKro accepts; allowing it here would only move
45
+ * the failure to apply time.
46
+ * - CLICKHOUSE. The same value is an identifier in `<remote_servers>` and the
47
+ * target of `ON CLUSTER '<name>'`, which the backup CronJob interpolates
48
+ * into a SQL string literal. A quote, a semicolon or whitespace there is not
49
+ * a naming problem, it is extra SQL.
50
+ *
51
+ * The intersection additionally requires a LEADING LETTER (ClickHouse reads
52
+ * the value as a bare identifier in the cluster configuration, and a leading
53
+ * digit or dash is not one) and forbids a TRAILING dash (it would leave a
54
+ * dangling separator in every generated object name).
55
+ *
56
+ * RE2-compatible on purpose: the same source is the `pattern=` marker of the
57
+ * generated KRO schema, and Kubernetes validates OpenAPI patterns with RE2.
58
+ */
59
+ export const CLICKHOUSE_CLUSTER_NAME_PATTERN = /^[a-zA-Z]([a-zA-Z0-9-]{0,13}[a-zA-Z0-9])?$/;
60
+ /**
61
+ * ArkType schema for a runtime `clusterName`.
62
+ *
63
+ * Used as the spec-schema type of `makeClickHouseCluster`'s optional
64
+ * `clusterName`, so the pattern and the length bound travel into the generated
65
+ * RGD (`string | maxLength=15 pattern="…"`) and KRO rejects a bad INSTANCE —
66
+ * the case a build-time check cannot reach, because in kro mode the value is a
67
+ * schema reference at construction.
68
+ */
69
+ export const ClickHouseClusterNameSchema = type(CLICKHOUSE_CLUSTER_NAME_PATTERN).and('string <= 15');
70
+ /**
71
+ * Assert that a CONCRETE cluster name is safe to compile into operator input
72
+ * and into the `ON CLUSTER` clause.
73
+ *
74
+ * Only meaningful for literals: in kro mode `spec.clusterName` arrives as a
75
+ * schema reference, and {@link ClickHouseClusterNameSchema} carries the same
76
+ * rule into the RGD for that path.
77
+ *
78
+ * @param context - The entry point name for the error message
79
+ * @param field - The offending config field (e.g. `clusterName`)
80
+ * @param value - The value received; non-strings are ignored (they are
81
+ * references, validated by KRO instead)
82
+ * @throws Error naming the entry point, field, and received value when a
83
+ * concrete string does not match {@link CLICKHOUSE_CLUSTER_NAME_PATTERN}
84
+ */
85
+ export function assertClickHouseClusterName(context, field, value) {
86
+ if (typeof value !== 'string')
87
+ return;
88
+ if (CLICKHOUSE_CLUSTER_NAME_PATTERN.test(value))
89
+ return;
90
+ throw new Error(`${context}: '${field}' must match ${CLICKHOUSE_CLUSTER_NAME_PATTERN.source} — a letter, ` +
91
+ `then up to 14 more letters, digits or dashes, not ending in a dash (got ` +
92
+ `${JSON.stringify(value)}). The bound is the intersection of the Altinity CRD's own ` +
93
+ `\`^[a-zA-Z0-9-]{0,15}\$\` / maxLength 15 on \`clusters[].name\` (the name is a fragment ` +
94
+ `of every generated object name) and ClickHouse's use of the value as an identifier — ` +
95
+ `including inside the \`ON CLUSTER '<name>'\` string literal of the backup statement, ` +
96
+ `where a quote or a semicolon would be extra SQL rather than a bad name.`);
97
+ }
98
+ /**
99
+ * Characters a value may use when it becomes a ClickHouse configuration
100
+ * IDENTIFIER — a bare `<name>` element inside a server-configuration document.
101
+ *
102
+ * Deliberately narrower than the XML `Name` production. ClickHouse reads these
103
+ * elements as identifiers (a disk name, a volume name, a storage-policy name
104
+ * referenced later by `SETTINGS storage_policy = '…'`), and TypeKro also has to
105
+ * be able to WRITE the name into an XML element name, where escaping does not
106
+ * exist as an option: a `>` closes the tag early, a space starts an attribute,
107
+ * a quote or an `&` makes the document malformed, and a leading digit is not a
108
+ * legal Name at all. Restricting to the SQL-identifier shape keeps the value
109
+ * usable in every position it reaches with no encoding step anywhere.
110
+ *
111
+ * Same shape as the `storage.backup.database` check in `utils/s3-storage.ts`,
112
+ * for the same reason: a bare identifier needs no quoting to be safe.
113
+ */
114
+ export const CLICKHOUSE_IDENTIFIER_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
115
+ /**
116
+ * Length bound for a {@link CLICKHOUSE_IDENTIFIER_PATTERN} identifier.
117
+ *
118
+ * Not a ClickHouse limit — the server is far more permissive. It is a sanity
119
+ * bound so a runaway or generated value fails at build time with a readable
120
+ * message instead of producing a multi-kilobyte element name that only fails
121
+ * when the server parses `config.d/storage.xml` at startup.
122
+ */
123
+ export const CLICKHOUSE_IDENTIFIER_MAX_LENGTH = 64;
124
+ /**
125
+ * Assert that a value is safe to compile into an XML ELEMENT NAME (and to
126
+ * reference from SQL) inside a ClickHouse server-configuration document.
127
+ *
128
+ * Unlike {@link assertClickHouseClusterName} this does NOT skip non-strings:
129
+ * every caller validates a value that is concrete by construction (the S3
130
+ * storage branch rejects schema references wholesale before resolving, because
131
+ * the values compile into an XML document), so a non-string here is a caller
132
+ * bug rather than a reference to be validated by KRO later.
133
+ *
134
+ * @param context - The entry point name for the error message
135
+ * @param field - The offending config field (e.g. `storage.policyName`)
136
+ * @param value - The value received
137
+ * @throws Error naming the entry point, field, and received value when the
138
+ * value is not a string, is empty, does not match
139
+ * {@link CLICKHOUSE_IDENTIFIER_PATTERN}, or exceeds
140
+ * {@link CLICKHOUSE_IDENTIFIER_MAX_LENGTH}
141
+ */
142
+ export function assertClickHouseIdentifier(context, field, value) {
143
+ if (typeof value === 'string' &&
144
+ value.length <= CLICKHOUSE_IDENTIFIER_MAX_LENGTH &&
145
+ CLICKHOUSE_IDENTIFIER_PATTERN.test(value)) {
146
+ return;
147
+ }
148
+ throw new Error(`${context}: '${field}' must be a bare ClickHouse identifier matching ` +
149
+ `${CLICKHOUSE_IDENTIFIER_PATTERN.source} — a letter or underscore, then letters, digits ` +
150
+ `or underscores, at most ${CLICKHOUSE_IDENTIFIER_MAX_LENGTH} characters (got ` +
151
+ `${JSON.stringify(value)}). The value is rendered as an XML ELEMENT NAME in the ` +
152
+ `server's \`config.d/storage.xml\`, where escaping is not available: a '>' would close ` +
153
+ `the tag, a space would start an attribute, and a leading digit is not a legal name — ` +
154
+ `so the value has to be constrained rather than encoded.`);
155
+ }
27
156
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/factories/clickhouse/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAe,EACf,KAAa,EACb,KAAa;IAEb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,MAAM,KAAK,qCAAqC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK;YAClF,uEAAuE;YACvE,OAAO,KAAK,mDAAmD,CAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/factories/clickhouse/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAe,EACf,KAAa,EACb,KAAa;IAEb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,MAAM,KAAK,qCAAqC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK;YAClF,uEAAuE;YACvE,OAAO,KAAK,mDAAmD,CAClE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,4CAA4C,CAAC;AAE5F;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAClF,cAAc,CACf,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAe,EACf,KAAa,EACb,KAAc;IAEd,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO;IACtC,IAAI,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO;IACxD,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,MAAM,KAAK,gBAAgB,+BAA+B,CAAC,MAAM,eAAe;QACxF,0EAA0E;QAC1E,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,6DAA6D;QACrF,0FAA0F;QAC1F,uFAAuF;QACvF,uFAAuF;QACvF,yEAAyE,CAC5E,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,0BAA0B,CAAC;AAExE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAEnD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAe,EAAE,KAAa,EAAE,KAAc;IACvF,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,MAAM,IAAI,gCAAgC;QAChD,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,EACzC,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,MAAM,KAAK,kDAAkD;QACrE,GAAG,6BAA6B,CAAC,MAAM,kDAAkD;QACzF,2BAA2B,gCAAgC,mBAAmB;QAC9E,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,yDAAyD;QACjF,wFAAwF;QACxF,uFAAuF;QACvF,yDAAyD,CAC5D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Minimal XML escaping for the ClickHouse server-configuration documents this
3
+ * factory family renders by hand (`config.d/*.xml`).
4
+ *
5
+ * Hand-rolled rather than pulled from a builder library on purpose: the
6
+ * documents are a fixed handful of elements whose SHAPE is part of the
7
+ * factory's contract (the tests pin the rendered bytes), so a builder would add
8
+ * a dependency and a formatting policy without removing the one thing that
9
+ * actually needs care — deciding, per interpolation site, whether the value is
10
+ * escapable at all.
11
+ *
12
+ * ## The rule these two helpers exist to make explicit
13
+ *
14
+ * XML has three interpolation positions, and only two of them can be escaped:
15
+ *
16
+ * - TEXT (`<endpoint>value</endpoint>`) — escapable, use {@link xmlText}.
17
+ * - ATTRIBUTE VALUE (`from_env="value"`) — escapable, use {@link xmlAttr}.
18
+ * - ELEMENT NAME (`<value>`) — **not escapable**. There is no encoding that
19
+ * makes an arbitrary string a legal element name: a `>` closes the tag, a
20
+ * space starts an attribute, and a leading digit is simply not a Name. A
21
+ * value landing here must be VALIDATED instead — see
22
+ * `assertClickHouseIdentifier` in `./validation.ts`.
23
+ *
24
+ * ## Escaping is not the only failure mode: some characters have no encoding
25
+ *
26
+ * A second, easily-missed rule cuts across both escapable positions. Escaping
27
+ * answers "how do I write this character so the parser reads it back as data",
28
+ * and for a handful of characters the answer is THERE IS NO WAY — XML 1.0's
29
+ * `Char` production simply excludes them, and a numeric character reference to
30
+ * an excluded code point is itself a well-formedness error (spec 4.1). So a NUL
31
+ * in a cache path survives escaping unchanged and then makes `xmllint` and
32
+ * ClickHouse's own config parser reject `config.d/storage.xml` at server
33
+ * startup — a build that "succeeded" producing a server that will not boot.
34
+ * Both helpers therefore REFUSE such a value at construction time; see
35
+ * {@link assertXmlRepresentable}.
36
+ */
37
+ /**
38
+ * Assert a value can appear in an XML document at all.
39
+ *
40
+ * Scanned by code unit rather than matched with a regex so the error can name
41
+ * the exact INDEX and code point — with a NUL or a `\x01` in the middle of a
42
+ * path, "the value is invalid" is not a debuggable message.
43
+ *
44
+ * Tab, LF and CR are allowed: they are legal `Char`s, and {@link xmlText} /
45
+ * {@link xmlAttr} already escape them numerically wherever the parser would
46
+ * otherwise rewrite them.
47
+ *
48
+ * @param value - The raw value about to be escaped
49
+ * @throws Error naming the index and code point of the first character XML 1.0
50
+ * forbids
51
+ */
52
+ export declare function assertXmlRepresentable(value: string): void;
53
+ /**
54
+ * Escape a value for XML TEXT content.
55
+ *
56
+ * Escapes all five predefined entities, not just the three that text position
57
+ * strictly requires: `"` and `'` are legal in text, but escaping them keeps one
58
+ * behaviour for both positions and makes {@link xmlAttr} a pure extension of
59
+ * this function rather than a divergent second escaper.
60
+ *
61
+ * A carriage return is escaped numerically because XML line-ending
62
+ * normalization (spec 2.11) would otherwise rewrite a literal CR to LF while
63
+ * parsing, silently changing the value ClickHouse reads back.
64
+ *
65
+ * @param value - The raw value
66
+ * @returns The value, safe to place between an open and close tag
67
+ * @throws Error when the value contains a character XML 1.0 forbids outright
68
+ * (see {@link assertXmlRepresentable}) — such a character has no escape, so
69
+ * the only correct answer is to refuse it here
70
+ */
71
+ export declare function xmlText(value: string): string;
72
+ /**
73
+ * Escape a value for an XML ATTRIBUTE value (assumed double-quoted).
74
+ *
75
+ * Everything {@link xmlText} does, plus numeric escapes for tab and newline:
76
+ * attribute-value normalization (spec 3.3.3) replaces a literal tab, newline or
77
+ * carriage return inside an attribute with a SPACE, so an unescaped one is a
78
+ * value change rather than a parse error — the quiet failure mode.
79
+ *
80
+ * @param value - The raw value
81
+ * @returns The value, safe to place inside `"…"`
82
+ * @throws Error when the value contains a character XML 1.0 forbids outright —
83
+ * inherited from {@link xmlText}, which runs
84
+ * {@link assertXmlRepresentable} before escaping anything
85
+ */
86
+ export declare function xmlAttr(value: string): string;
87
+ //# sourceMappingURL=xml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../../../../src/factories/clickhouse/utils/xml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AA8BH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAwB1D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAS7C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO7C"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Minimal XML escaping for the ClickHouse server-configuration documents this
3
+ * factory family renders by hand (`config.d/*.xml`).
4
+ *
5
+ * Hand-rolled rather than pulled from a builder library on purpose: the
6
+ * documents are a fixed handful of elements whose SHAPE is part of the
7
+ * factory's contract (the tests pin the rendered bytes), so a builder would add
8
+ * a dependency and a formatting policy without removing the one thing that
9
+ * actually needs care — deciding, per interpolation site, whether the value is
10
+ * escapable at all.
11
+ *
12
+ * ## The rule these two helpers exist to make explicit
13
+ *
14
+ * XML has three interpolation positions, and only two of them can be escaped:
15
+ *
16
+ * - TEXT (`<endpoint>value</endpoint>`) — escapable, use {@link xmlText}.
17
+ * - ATTRIBUTE VALUE (`from_env="value"`) — escapable, use {@link xmlAttr}.
18
+ * - ELEMENT NAME (`<value>`) — **not escapable**. There is no encoding that
19
+ * makes an arbitrary string a legal element name: a `>` closes the tag, a
20
+ * space starts an attribute, and a leading digit is simply not a Name. A
21
+ * value landing here must be VALIDATED instead — see
22
+ * `assertClickHouseIdentifier` in `./validation.ts`.
23
+ *
24
+ * ## Escaping is not the only failure mode: some characters have no encoding
25
+ *
26
+ * A second, easily-missed rule cuts across both escapable positions. Escaping
27
+ * answers "how do I write this character so the parser reads it back as data",
28
+ * and for a handful of characters the answer is THERE IS NO WAY — XML 1.0's
29
+ * `Char` production simply excludes them, and a numeric character reference to
30
+ * an excluded code point is itself a well-formedness error (spec 4.1). So a NUL
31
+ * in a cache path survives escaping unchanged and then makes `xmllint` and
32
+ * ClickHouse's own config parser reject `config.d/storage.xml` at server
33
+ * startup — a build that "succeeded" producing a server that will not boot.
34
+ * Both helpers therefore REFUSE such a value at construction time; see
35
+ * {@link assertXmlRepresentable}.
36
+ */
37
+ /**
38
+ * The characters XML 1.0 cannot represent at all, as a readable rule.
39
+ *
40
+ * The spec's `Char` production is
41
+ * `#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]`,
42
+ * so the complement is: the C0 controls other than tab/LF/CR, the surrogate
43
+ * range (reachable from a JavaScript string only as a LONE surrogate — a
44
+ * well-formed pair is one `[#x10000-#x10FFFF]` character and is legal), and the
45
+ * two `#xFFFE`/`#xFFFF` non-characters.
46
+ */
47
+ const XML_FORBIDDEN_RULE = '#x0-#x8, #xB, #xC, #xE-#x1F, a lone surrogate (#xD800-#xDFFF), #xFFFE or #xFFFF';
48
+ /** Format a UTF-16 code unit as the `U+XXXX` form error messages quote. */
49
+ function codePointLabel(unit) {
50
+ return `U+${unit.toString(16).toUpperCase().padStart(4, '0')}`;
51
+ }
52
+ function rejectForbidden(value, index, unit, why) {
53
+ throw new Error(`xml: value contains ${codePointLabel(unit)} (${why}) at index ${index}, which XML 1.0 ` +
54
+ `cannot represent in any form — escaping does not help, and a numeric character ` +
55
+ `reference to it is itself a well-formedness error (XML 1.0 §2.2/§4.1), so ` +
56
+ `\`config.d/*.xml\` would be rejected by the server's parser at startup. Forbidden: ` +
57
+ `${XML_FORBIDDEN_RULE}. Got ${JSON.stringify(value)}.`);
58
+ }
59
+ /**
60
+ * Assert a value can appear in an XML document at all.
61
+ *
62
+ * Scanned by code unit rather than matched with a regex so the error can name
63
+ * the exact INDEX and code point — with a NUL or a `\x01` in the middle of a
64
+ * path, "the value is invalid" is not a debuggable message.
65
+ *
66
+ * Tab, LF and CR are allowed: they are legal `Char`s, and {@link xmlText} /
67
+ * {@link xmlAttr} already escape them numerically wherever the parser would
68
+ * otherwise rewrite them.
69
+ *
70
+ * @param value - The raw value about to be escaped
71
+ * @throws Error naming the index and code point of the first character XML 1.0
72
+ * forbids
73
+ */
74
+ export function assertXmlRepresentable(value) {
75
+ for (let index = 0; index < value.length; index += 1) {
76
+ const unit = value.charCodeAt(index);
77
+ // The three C0 controls the spec keeps. Escaped, not rejected.
78
+ if (unit === 0x09 || unit === 0x0a || unit === 0x0d)
79
+ continue;
80
+ if (unit <= 0x1f)
81
+ rejectForbidden(value, index, unit, 'a C0 control character');
82
+ if (unit >= 0xd800 && unit <= 0xdbff) {
83
+ // A high surrogate followed by a low one is ONE astral character, which
84
+ // the `Char` production allows; anything else is a lone surrogate and is
85
+ // not a character at all.
86
+ const low = value.charCodeAt(index + 1);
87
+ if (!(low >= 0xdc00 && low <= 0xdfff)) {
88
+ rejectForbidden(value, index, unit, 'an unpaired high surrogate');
89
+ }
90
+ index += 1;
91
+ continue;
92
+ }
93
+ if (unit >= 0xdc00 && unit <= 0xdfff) {
94
+ rejectForbidden(value, index, unit, 'an unpaired low surrogate');
95
+ }
96
+ if (unit === 0xfffe || unit === 0xffff) {
97
+ rejectForbidden(value, index, unit, 'a non-character');
98
+ }
99
+ }
100
+ }
101
+ /**
102
+ * Escape a value for XML TEXT content.
103
+ *
104
+ * Escapes all five predefined entities, not just the three that text position
105
+ * strictly requires: `"` and `'` are legal in text, but escaping them keeps one
106
+ * behaviour for both positions and makes {@link xmlAttr} a pure extension of
107
+ * this function rather than a divergent second escaper.
108
+ *
109
+ * A carriage return is escaped numerically because XML line-ending
110
+ * normalization (spec 2.11) would otherwise rewrite a literal CR to LF while
111
+ * parsing, silently changing the value ClickHouse reads back.
112
+ *
113
+ * @param value - The raw value
114
+ * @returns The value, safe to place between an open and close tag
115
+ * @throws Error when the value contains a character XML 1.0 forbids outright
116
+ * (see {@link assertXmlRepresentable}) — such a character has no escape, so
117
+ * the only correct answer is to refuse it here
118
+ */
119
+ export function xmlText(value) {
120
+ assertXmlRepresentable(value);
121
+ return value
122
+ .replace(/&/g, '&amp;')
123
+ .replace(/</g, '&lt;')
124
+ .replace(/>/g, '&gt;')
125
+ .replace(/"/g, '&quot;')
126
+ .replace(/'/g, '&apos;')
127
+ .replace(/\r/g, '&#13;');
128
+ }
129
+ /**
130
+ * Escape a value for an XML ATTRIBUTE value (assumed double-quoted).
131
+ *
132
+ * Everything {@link xmlText} does, plus numeric escapes for tab and newline:
133
+ * attribute-value normalization (spec 3.3.3) replaces a literal tab, newline or
134
+ * carriage return inside an attribute with a SPACE, so an unescaped one is a
135
+ * value change rather than a parse error — the quiet failure mode.
136
+ *
137
+ * @param value - The raw value
138
+ * @returns The value, safe to place inside `"…"`
139
+ * @throws Error when the value contains a character XML 1.0 forbids outright —
140
+ * inherited from {@link xmlText}, which runs
141
+ * {@link assertXmlRepresentable} before escaping anything
142
+ */
143
+ export function xmlAttr(value) {
144
+ // Safe to layer on xmlText: its `&` pass runs before any of the numeric
145
+ // escapes are introduced, so the `&` of a `&#NN;` is never double-escaped.
146
+ // The representability check comes from the same call, which is why this
147
+ // function does not repeat it — one scan, one rule, no chance of the two
148
+ // positions drifting apart on which characters they accept.
149
+ return xmlText(value).replace(/\t/g, '&#9;').replace(/\n/g, '&#10;');
150
+ }
151
+ //# sourceMappingURL=xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml.js","sourceRoot":"","sources":["../../../../src/factories/clickhouse/utils/xml.ts"],"names":[],"mappings":"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"}