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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/compositions/typekro-runtime/typekro-runtime.d.ts +0 -33
- package/dist/compositions/typekro-runtime/typekro-runtime.d.ts.map +1 -1
- package/dist/compositions/typekro-runtime/typekro-runtime.js +63 -1
- package/dist/compositions/typekro-runtime/typekro-runtime.js.map +1 -1
- package/dist/compositions/typekro-runtime/types.d.ts +8 -0
- package/dist/compositions/typekro-runtime/types.d.ts.map +1 -1
- package/dist/compositions/typekro-runtime/types.js +1 -0
- package/dist/compositions/typekro-runtime/types.js.map +1 -1
- package/dist/core/aspects/values-merge.d.ts +17 -0
- package/dist/core/aspects/values-merge.d.ts.map +1 -1
- package/dist/core/aspects/values-merge.js +67 -8
- package/dist/core/aspects/values-merge.js.map +1 -1
- package/dist/core/deployment/direct-factory.d.ts +9 -0
- package/dist/core/deployment/direct-factory.d.ts.map +1 -1
- package/dist/core/deployment/direct-factory.js +37 -3
- package/dist/core/deployment/direct-factory.js.map +1 -1
- package/dist/core/deployment/engine.d.ts +34 -0
- package/dist/core/deployment/engine.d.ts.map +1 -1
- package/dist/core/deployment/engine.js +173 -29
- package/dist/core/deployment/engine.js.map +1 -1
- package/dist/core/deployment/index.d.ts +2 -0
- package/dist/core/deployment/index.d.ts.map +1 -1
- package/dist/core/deployment/index.js +1 -0
- package/dist/core/deployment/index.js.map +1 -1
- package/dist/core/deployment/k8s-helpers.d.ts +73 -0
- package/dist/core/deployment/k8s-helpers.d.ts.map +1 -1
- package/dist/core/deployment/k8s-helpers.js +198 -4
- package/dist/core/deployment/k8s-helpers.js.map +1 -1
- package/dist/core/deployment/kro-factory.d.ts.map +1 -1
- package/dist/core/deployment/kro-factory.js +21 -1
- package/dist/core/deployment/kro-factory.js.map +1 -1
- package/dist/core/deployment/status-leaf-resolution.d.ts +101 -0
- package/dist/core/deployment/status-leaf-resolution.d.ts.map +1 -0
- package/dist/core/deployment/status-leaf-resolution.js +232 -0
- package/dist/core/deployment/status-leaf-resolution.js.map +1 -0
- package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
- package/dist/core/deployment/strategies/base-strategy.js +31 -3
- package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
- package/dist/core/deployment/strategies/kro-strategy.d.ts.map +1 -1
- package/dist/core/deployment/strategies/kro-strategy.js +8 -1
- package/dist/core/deployment/strategies/kro-strategy.js.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-helpers.js +20 -2
- package/dist/core/expressions/composition/composition-analyzer-helpers.js.map +1 -1
- package/dist/core/kro/index.d.ts +6 -0
- package/dist/core/kro/index.d.ts.map +1 -0
- package/dist/core/kro/index.js +6 -0
- package/dist/core/kro/index.js.map +1 -0
- package/dist/core/kro/label-guard-capability.d.ts +141 -0
- package/dist/core/kro/label-guard-capability.d.ts.map +1 -0
- package/dist/core/kro/label-guard-capability.js +257 -0
- package/dist/core/kro/label-guard-capability.js.map +1 -0
- package/dist/core/kro/labels.d.ts +56 -0
- package/dist/core/kro/labels.d.ts.map +1 -0
- package/dist/core/kro/labels.js +62 -0
- package/dist/core/kro/labels.js.map +1 -0
- package/dist/core/kubernetes/api-capability.d.ts +196 -0
- package/dist/core/kubernetes/api-capability.d.ts.map +1 -0
- package/dist/core/kubernetes/api-capability.js +301 -0
- package/dist/core/kubernetes/api-capability.js.map +1 -0
- package/dist/core/kubernetes/index.d.ts +2 -0
- package/dist/core/kubernetes/index.d.ts.map +1 -1
- package/dist/core/kubernetes/index.js +2 -0
- package/dist/core/kubernetes/index.js.map +1 -1
- package/dist/core/kubernetes/naming.d.ts +100 -0
- package/dist/core/kubernetes/naming.d.ts.map +1 -0
- package/dist/core/kubernetes/naming.js +93 -0
- package/dist/core/kubernetes/naming.js.map +1 -0
- package/dist/core/planning/direct-runtime-adapter.d.ts.map +1 -1
- package/dist/core/planning/direct-runtime-adapter.js +54 -17
- package/dist/core/planning/direct-runtime-adapter.js.map +1 -1
- package/dist/core/planning/planner.d.ts.map +1 -1
- package/dist/core/planning/planner.js +17 -0
- package/dist/core/planning/planner.js.map +1 -1
- package/dist/core/planning/schema.d.ts.map +1 -1
- package/dist/core/planning/schema.js +7 -3
- package/dist/core/planning/schema.js.map +1 -1
- package/dist/core/references/cel-lexical-scanner.d.ts +100 -1
- package/dist/core/references/cel-lexical-scanner.d.ts.map +1 -1
- package/dist/core/references/cel-lexical-scanner.js +196 -2
- package/dist/core/references/cel-lexical-scanner.js.map +1 -1
- package/dist/core/references/cel.d.ts +249 -1
- package/dist/core/references/cel.d.ts.map +1 -1
- package/dist/core/references/cel.js +289 -8
- package/dist/core/references/cel.js.map +1 -1
- package/dist/core/serialization/arktype-ast.d.ts +21 -0
- package/dist/core/serialization/arktype-ast.d.ts.map +1 -0
- package/dist/core/serialization/arktype-ast.js +29 -0
- package/dist/core/serialization/arktype-ast.js.map +1 -0
- package/dist/core/serialization/cel-references.d.ts +133 -32
- package/dist/core/serialization/cel-references.d.ts.map +1 -1
- package/dist/core/serialization/cel-references.js +908 -109
- package/dist/core/serialization/cel-references.js.map +1 -1
- package/dist/core/serialization/core.d.ts.map +1 -1
- package/dist/core/serialization/core.js +13 -2
- package/dist/core/serialization/core.js.map +1 -1
- package/dist/core/serialization/schema.d.ts +16 -2
- package/dist/core/serialization/schema.d.ts.map +1 -1
- package/dist/core/serialization/schema.js +113 -21
- package/dist/core/serialization/schema.js.map +1 -1
- package/dist/core/types/composable.d.ts +7 -1
- package/dist/core/types/composable.d.ts.map +1 -1
- package/dist/core/types/deployment.d.ts +32 -2
- package/dist/core/types/deployment.d.ts.map +1 -1
- package/dist/core/types/serialization.d.ts +37 -0
- package/dist/core/types/serialization.d.ts.map +1 -1
- package/dist/core/validation/cel-dialect.d.ts +246 -0
- package/dist/core/validation/cel-dialect.d.ts.map +1 -0
- package/dist/core/validation/cel-dialect.js +1997 -0
- package/dist/core/validation/cel-dialect.js.map +1 -0
- package/dist/core/validation/cel-validator.d.ts.map +1 -1
- package/dist/core/validation/cel-validator.js +8 -1
- package/dist/core/validation/cel-validator.js.map +1 -1
- package/dist/core/validation/literal-status.d.ts +107 -0
- package/dist/core/validation/literal-status.d.ts.map +1 -0
- package/dist/core/validation/literal-status.js +346 -0
- package/dist/core/validation/literal-status.js.map +1 -0
- package/dist/core/validation/structural-spec-dependence.d.ts +179 -0
- package/dist/core/validation/structural-spec-dependence.d.ts.map +1 -0
- package/dist/core/validation/structural-spec-dependence.js +911 -0
- package/dist/core/validation/structural-spec-dependence.js.map +1 -0
- package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts.map +1 -1
- package/dist/factories/apisix/compositions/apisix-bootstrap.js +9 -0
- package/dist/factories/apisix/compositions/apisix-bootstrap.js.map +1 -1
- package/dist/factories/clickhouse/compositions/clickhouse-cluster.d.ts +6 -0
- package/dist/factories/clickhouse/compositions/clickhouse-cluster.d.ts.map +1 -1
- package/dist/factories/clickhouse/compositions/clickhouse-cluster.js +273 -23
- package/dist/factories/clickhouse/compositions/clickhouse-cluster.js.map +1 -1
- package/dist/factories/clickhouse/resources/index.d.ts +1 -0
- package/dist/factories/clickhouse/resources/index.d.ts.map +1 -1
- package/dist/factories/clickhouse/resources/index.js +1 -0
- package/dist/factories/clickhouse/resources/index.js.map +1 -1
- package/dist/factories/clickhouse/resources/installation.d.ts.map +1 -1
- package/dist/factories/clickhouse/resources/installation.js +31 -4
- package/dist/factories/clickhouse/resources/installation.js.map +1 -1
- package/dist/factories/clickhouse/resources/s3-backup.d.ts +215 -0
- package/dist/factories/clickhouse/resources/s3-backup.d.ts.map +1 -0
- package/dist/factories/clickhouse/resources/s3-backup.js +410 -0
- package/dist/factories/clickhouse/resources/s3-backup.js.map +1 -0
- package/dist/factories/clickhouse/types.d.ts +416 -20
- package/dist/factories/clickhouse/types.d.ts.map +1 -1
- package/dist/factories/clickhouse/types.js +235 -11
- package/dist/factories/clickhouse/types.js.map +1 -1
- package/dist/factories/clickhouse/utils/helm-values-mapper.d.ts +42 -0
- package/dist/factories/clickhouse/utils/helm-values-mapper.d.ts.map +1 -1
- package/dist/factories/clickhouse/utils/helm-values-mapper.js +48 -0
- package/dist/factories/clickhouse/utils/helm-values-mapper.js.map +1 -1
- package/dist/factories/clickhouse/utils/index.d.ts +2 -0
- package/dist/factories/clickhouse/utils/index.d.ts.map +1 -1
- package/dist/factories/clickhouse/utils/index.js +2 -0
- package/dist/factories/clickhouse/utils/index.js.map +1 -1
- package/dist/factories/clickhouse/utils/s3-storage.d.ts +503 -0
- package/dist/factories/clickhouse/utils/s3-storage.d.ts.map +1 -0
- package/dist/factories/clickhouse/utils/s3-storage.js +1139 -0
- package/dist/factories/clickhouse/utils/s3-storage.js.map +1 -0
- package/dist/factories/clickhouse/utils/validation.d.ts +103 -0
- package/dist/factories/clickhouse/utils/validation.d.ts.map +1 -1
- package/dist/factories/clickhouse/utils/validation.js +129 -0
- package/dist/factories/clickhouse/utils/validation.js.map +1 -1
- package/dist/factories/clickhouse/utils/xml.d.ts +87 -0
- package/dist/factories/clickhouse/utils/xml.d.ts.map +1 -0
- package/dist/factories/clickhouse/utils/xml.js +151 -0
- package/dist/factories/clickhouse/utils/xml.js.map +1 -0
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts +57 -0
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts.map +1 -1
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.js +266 -7
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.js.map +1 -1
- package/dist/factories/clickstack/types.d.ts +205 -26
- package/dist/factories/clickstack/types.d.ts.map +1 -1
- package/dist/factories/clickstack/types.js +106 -8
- package/dist/factories/clickstack/types.js.map +1 -1
- package/dist/factories/clickstack/utils/collector-config.d.ts +104 -0
- package/dist/factories/clickstack/utils/collector-config.d.ts.map +1 -0
- package/dist/factories/clickstack/utils/collector-config.js +266 -0
- package/dist/factories/clickstack/utils/collector-config.js.map +1 -0
- package/dist/factories/clickstack/utils/helm-values-mapper.d.ts +26 -0
- package/dist/factories/clickstack/utils/helm-values-mapper.d.ts.map +1 -1
- package/dist/factories/clickstack/utils/helm-values-mapper.js +53 -12
- package/dist/factories/clickstack/utils/helm-values-mapper.js.map +1 -1
- package/dist/factories/clickstack/utils/index.d.ts +2 -0
- package/dist/factories/clickstack/utils/index.d.ts.map +1 -1
- package/dist/factories/clickstack/utils/index.js +2 -0
- package/dist/factories/clickstack/utils/index.js.map +1 -1
- package/dist/factories/clickstack/utils/storage.d.ts +449 -0
- package/dist/factories/clickstack/utils/storage.d.ts.map +1 -0
- package/dist/factories/clickstack/utils/storage.js +698 -0
- package/dist/factories/clickstack/utils/storage.js.map +1 -0
- package/dist/factories/cnpg/resources/helm.d.ts.map +1 -1
- package/dist/factories/cnpg/resources/helm.js +4 -4
- package/dist/factories/cnpg/resources/helm.js.map +1 -1
- package/dist/factories/cnpg/types.d.ts +10 -1
- package/dist/factories/cnpg/types.d.ts.map +1 -1
- package/dist/factories/cnpg/types.js.map +1 -1
- package/dist/factories/cnpg/utils/helm-values-mapper.d.ts +19 -2
- package/dist/factories/cnpg/utils/helm-values-mapper.d.ts.map +1 -1
- package/dist/factories/cnpg/utils/helm-values-mapper.js +22 -4
- package/dist/factories/cnpg/utils/helm-values-mapper.js.map +1 -1
- package/dist/factories/envoy-ai-gateway/compositions/gateway.d.ts.map +1 -1
- package/dist/factories/envoy-ai-gateway/compositions/gateway.js +16 -3
- package/dist/factories/envoy-ai-gateway/compositions/gateway.js.map +1 -1
- package/dist/factories/envoy-ai-gateway/constants.d.ts +5 -2
- package/dist/factories/envoy-ai-gateway/constants.d.ts.map +1 -1
- package/dist/factories/envoy-ai-gateway/constants.js +5 -2
- package/dist/factories/envoy-ai-gateway/constants.js.map +1 -1
- package/dist/factories/envoy-ai-gateway/resources/gateway.d.ts +12 -0
- package/dist/factories/envoy-ai-gateway/resources/gateway.d.ts.map +1 -1
- package/dist/factories/envoy-ai-gateway/resources/gateway.js +27 -104
- package/dist/factories/envoy-ai-gateway/resources/gateway.js.map +1 -1
- package/dist/factories/envoy-ai-gateway/types.d.ts +15 -47
- package/dist/factories/envoy-ai-gateway/types.d.ts.map +1 -1
- package/dist/factories/envoy-ai-gateway/types.js.map +1 -1
- package/dist/factories/gateway-api/constants.d.ts +27 -0
- package/dist/factories/gateway-api/constants.d.ts.map +1 -0
- package/dist/factories/gateway-api/constants.js +27 -0
- package/dist/factories/gateway-api/constants.js.map +1 -0
- package/dist/factories/gateway-api/index.d.ts +14 -0
- package/dist/factories/gateway-api/index.d.ts.map +1 -0
- package/dist/factories/gateway-api/index.js +14 -0
- package/dist/factories/gateway-api/index.js.map +1 -0
- package/dist/factories/gateway-api/readiness.d.ts +67 -0
- package/dist/factories/gateway-api/readiness.d.ts.map +1 -0
- package/dist/factories/gateway-api/readiness.js +213 -0
- package/dist/factories/gateway-api/readiness.js.map +1 -0
- package/dist/factories/gateway-api/resources/gateway.d.ts +91 -0
- package/dist/factories/gateway-api/resources/gateway.d.ts.map +1 -0
- package/dist/factories/gateway-api/resources/gateway.js +99 -0
- package/dist/factories/gateway-api/resources/gateway.js.map +1 -0
- package/dist/factories/gateway-api/resources/index.d.ts +2 -0
- package/dist/factories/gateway-api/resources/index.d.ts.map +1 -0
- package/dist/factories/gateway-api/resources/index.js +2 -0
- package/dist/factories/gateway-api/resources/index.js.map +1 -0
- package/dist/factories/gateway-api/types.d.ts +1269 -0
- package/dist/factories/gateway-api/types.d.ts.map +1 -0
- package/dist/factories/gateway-api/types.js +417 -0
- package/dist/factories/gateway-api/types.js.map +1 -0
- package/dist/factories/helm/readiness-evaluators.d.ts +21 -3
- package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
- package/dist/factories/helm/readiness-evaluators.js +117 -11
- package/dist/factories/helm/readiness-evaluators.js.map +1 -1
- package/dist/factories/helm/types.d.ts +28 -0
- package/dist/factories/helm/types.d.ts.map +1 -1
- package/dist/factories/index.d.ts +2 -0
- package/dist/factories/index.d.ts.map +1 -1
- package/dist/factories/index.js +8 -0
- package/dist/factories/index.js.map +1 -1
- package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts.map +1 -1
- package/dist/factories/inngest/compositions/inngest-bootstrap.js +10 -0
- package/dist/factories/inngest/compositions/inngest-bootstrap.js.map +1 -1
- package/dist/factories/kubernetes/admission/index.d.ts +2 -0
- package/dist/factories/kubernetes/admission/index.d.ts.map +1 -1
- package/dist/factories/kubernetes/admission/index.js +2 -0
- package/dist/factories/kubernetes/admission/index.js.map +1 -1
- package/dist/factories/kubernetes/admission/label-propagation-guard.d.ts +108 -0
- package/dist/factories/kubernetes/admission/label-propagation-guard.d.ts.map +1 -0
- package/dist/factories/kubernetes/admission/label-propagation-guard.js +247 -0
- package/dist/factories/kubernetes/admission/label-propagation-guard.js.map +1 -0
- package/dist/factories/kubernetes/admission/mutating-admission-policy.d.ts +286 -0
- package/dist/factories/kubernetes/admission/mutating-admission-policy.d.ts.map +1 -0
- package/dist/factories/kubernetes/admission/mutating-admission-policy.js +157 -0
- package/dist/factories/kubernetes/admission/mutating-admission-policy.js.map +1 -0
- package/dist/factories/opensearch/compositions/cluster.d.ts.map +1 -1
- package/dist/factories/opensearch/compositions/cluster.js +6 -1
- package/dist/factories/opensearch/compositions/cluster.js.map +1 -1
- package/dist/factories/ory/compositions/ory-identity-stack.d.ts +8 -8
- package/dist/factories/ory/types.d.ts +16 -16
- package/dist/factories/rook/compositions/object-storage-claim.d.ts +1 -1
- package/dist/factories/rook/compositions/rook-ceph-platform.js +8 -1
- package/dist/factories/rook/compositions/rook-ceph-platform.js.map +1 -1
- package/dist/factories/rook/types.d.ts +1 -1
- package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts +1 -1
- package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts.map +1 -1
- package/dist/factories/searxng/compositions/searxng-bootstrap.js +18 -13
- package/dist/factories/searxng/compositions/searxng-bootstrap.js.map +1 -1
- package/dist/factories/searxng/index.d.ts +3 -0
- package/dist/factories/searxng/index.d.ts.map +1 -1
- package/dist/factories/searxng/index.js +3 -0
- package/dist/factories/searxng/index.js.map +1 -1
- package/dist/factories/searxng/types.js +1 -1
- package/dist/factories/searxng/types.js.map +1 -1
- package/dist/factories/traefik/compositions/index.d.ts +6 -0
- package/dist/factories/traefik/compositions/index.d.ts.map +1 -0
- package/dist/factories/traefik/compositions/index.js +6 -0
- package/dist/factories/traefik/compositions/index.js.map +1 -0
- package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts +185 -0
- package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts.map +1 -0
- package/dist/factories/traefik/compositions/traefik-bootstrap.js +339 -0
- package/dist/factories/traefik/compositions/traefik-bootstrap.js.map +1 -0
- package/dist/factories/traefik/compositions/traefik-helm-repository.d.ts +16 -0
- package/dist/factories/traefik/compositions/traefik-helm-repository.d.ts.map +1 -0
- package/dist/factories/traefik/compositions/traefik-helm-repository.js +31 -0
- package/dist/factories/traefik/compositions/traefik-helm-repository.js.map +1 -0
- package/dist/factories/traefik/constants.d.ts +78 -0
- package/dist/factories/traefik/constants.d.ts.map +1 -0
- package/dist/factories/traefik/constants.js +104 -0
- package/dist/factories/traefik/constants.js.map +1 -0
- package/dist/factories/traefik/index.d.ts +25 -0
- package/dist/factories/traefik/index.d.ts.map +1 -0
- package/dist/factories/traefik/index.js +25 -0
- package/dist/factories/traefik/index.js.map +1 -0
- package/dist/factories/traefik/resources/common.d.ts +68 -0
- package/dist/factories/traefik/resources/common.d.ts.map +1 -0
- package/dist/factories/traefik/resources/common.js +59 -0
- package/dist/factories/traefik/resources/common.js.map +1 -0
- package/dist/factories/traefik/resources/gateway.d.ts +85 -0
- package/dist/factories/traefik/resources/gateway.d.ts.map +1 -0
- package/dist/factories/traefik/resources/gateway.js +109 -0
- package/dist/factories/traefik/resources/gateway.js.map +1 -0
- package/dist/factories/traefik/resources/helm.d.ts +56 -0
- package/dist/factories/traefik/resources/helm.d.ts.map +1 -0
- package/dist/factories/traefik/resources/helm.js +131 -0
- package/dist/factories/traefik/resources/helm.js.map +1 -0
- package/dist/factories/traefik/resources/index.d.ts +10 -0
- package/dist/factories/traefik/resources/index.d.ts.map +1 -0
- package/dist/factories/traefik/resources/index.js +10 -0
- package/dist/factories/traefik/resources/index.js.map +1 -0
- package/dist/factories/traefik/resources/middleware.d.ts +169 -0
- package/dist/factories/traefik/resources/middleware.d.ts.map +1 -0
- package/dist/factories/traefik/resources/middleware.js +225 -0
- package/dist/factories/traefik/resources/middleware.js.map +1 -0
- package/dist/factories/traefik/resources/routing.d.ts +113 -0
- package/dist/factories/traefik/resources/routing.d.ts.map +1 -0
- package/dist/factories/traefik/resources/routing.js +119 -0
- package/dist/factories/traefik/resources/routing.js.map +1 -0
- package/dist/factories/traefik/resources/tls.d.ts +85 -0
- package/dist/factories/traefik/resources/tls.d.ts.map +1 -0
- package/dist/factories/traefik/resources/tls.js +93 -0
- package/dist/factories/traefik/resources/tls.js.map +1 -0
- package/dist/factories/traefik/types.d.ts +2690 -0
- package/dist/factories/traefik/types.d.ts.map +1 -0
- package/dist/factories/traefik/types.js +1084 -0
- package/dist/factories/traefik/types.js.map +1 -0
- package/dist/factories/traefik/utils/helm-values-mapper.d.ts +198 -0
- package/dist/factories/traefik/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/traefik/utils/helm-values-mapper.js +372 -0
- package/dist/factories/traefik/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/traefik/utils/index.d.ts +6 -0
- package/dist/factories/traefik/utils/index.d.ts.map +1 -0
- package/dist/factories/traefik/utils/index.js +6 -0
- package/dist/factories/traefik/utils/index.js.map +1 -0
- package/dist/factories/traefik/utils/middleware-validation.d.ts +42 -0
- package/dist/factories/traefik/utils/middleware-validation.d.ts.map +1 -0
- package/dist/factories/traefik/utils/middleware-validation.js +78 -0
- package/dist/factories/traefik/utils/middleware-validation.js.map +1 -0
- package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -1
- package/dist/factories/webapp/compositions/web-app-with-processing.js +10 -0
- package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- 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
|
|
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
|
|
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, '&')
|
|
123
|
+
.replace(/</g, '<')
|
|
124
|
+
.replace(/>/g, '>')
|
|
125
|
+
.replace(/"/g, '"')
|
|
126
|
+
.replace(/'/g, ''')
|
|
127
|
+
.replace(/\r/g, ' ');
|
|
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, '	').replace(/\n/g, ' ');
|
|
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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"}
|