typekro 0.33.10 → 0.35.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/alchemy/clickhouse-schema/executor.d.ts +25 -0
- package/dist/alchemy/clickhouse-schema/executor.d.ts.map +1 -0
- package/dist/alchemy/clickhouse-schema/executor.js +144 -0
- package/dist/alchemy/clickhouse-schema/executor.js.map +1 -0
- package/dist/alchemy/clickhouse-schema/index.d.ts +12 -0
- package/dist/alchemy/clickhouse-schema/index.d.ts.map +1 -0
- package/dist/alchemy/clickhouse-schema/index.js +11 -0
- package/dist/alchemy/clickhouse-schema/index.js.map +1 -0
- package/dist/alchemy/clickhouse-schema/resource.d.ts +54 -0
- package/dist/alchemy/clickhouse-schema/resource.d.ts.map +1 -0
- package/dist/alchemy/clickhouse-schema/resource.js +158 -0
- package/dist/alchemy/clickhouse-schema/resource.js.map +1 -0
- package/dist/alchemy/clickhouse-schema/runner.d.ts +154 -0
- package/dist/alchemy/clickhouse-schema/runner.d.ts.map +1 -0
- package/dist/alchemy/clickhouse-schema/runner.js +613 -0
- package/dist/alchemy/clickhouse-schema/runner.js.map +1 -0
- package/dist/alchemy/clickhouse-schema/sql.d.ts +109 -0
- package/dist/alchemy/clickhouse-schema/sql.d.ts.map +1 -0
- package/dist/alchemy/clickhouse-schema/sql.js +368 -0
- package/dist/alchemy/clickhouse-schema/sql.js.map +1 -0
- package/dist/alchemy/clickhouse-schema/types.d.ts +394 -0
- package/dist/alchemy/clickhouse-schema/types.d.ts.map +1 -0
- package/dist/alchemy/clickhouse-schema/types.js +370 -0
- package/dist/alchemy/clickhouse-schema/types.js.map +1 -0
- package/dist/alchemy/index.d.ts +1 -0
- package/dist/alchemy/index.d.ts.map +1 -1
- package/dist/alchemy/index.js +2 -0
- package/dist/alchemy/index.js.map +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/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/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/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,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dual-dialect compatibility check for emitted status CEL.
|
|
3
|
+
*
|
|
4
|
+
* TypeKro emits one CEL expression per dynamic status field and then runs it
|
|
5
|
+
* through **two different engines**: `cel-js` evaluates it locally in direct
|
|
6
|
+
* mode, and `cel-go` (inside the KRO controller, with KRO's type environment)
|
|
7
|
+
* evaluates it in Kro mode. The two disagree in ways that only surface when the
|
|
8
|
+
* expression meets real data on a live cluster — one engine returns a value and
|
|
9
|
+
* the other rejects the expression or blows up on a missing field.
|
|
10
|
+
*
|
|
11
|
+
* This module runs every emitted status expression through cel-js's own parser
|
|
12
|
+
* **and** a curated denylist of the divergences we have confirmed, so an
|
|
13
|
+
* expression that only one engine accepts fails at serialization time with the
|
|
14
|
+
* expression, the status leaf it came from, and the dialect that rejects it.
|
|
15
|
+
*
|
|
16
|
+
* ## cel-js's parser is not the CEL grammar
|
|
17
|
+
*
|
|
18
|
+
* cel-js 0.8.2 parses a proper subset of CEL, so a `parse()` failure is a fact
|
|
19
|
+
* about **direct mode only**. Its `atomicExpression` rule takes a postfix
|
|
20
|
+
* `.`/`[` after an identifier (and after a map literal, and one index after a
|
|
21
|
+
* list literal) and nowhere else, while the spec's `Member` production takes a
|
|
22
|
+
* postfix on any `Member` and `Primary` includes both `LITERAL` and
|
|
23
|
+
* `"(" Expr ")"` — so `"x".size()`, `[1,2].size()`, `(a).b` and `size(a).b` are
|
|
24
|
+
* all valid CEL that cel-js rejects, and its lexer has neither the exponent
|
|
25
|
+
* `FLOAT_LIT` form nor the `r`/`b`/triple-quoted `STRING_LIT` forms. Inferring
|
|
26
|
+
* "cel-go would reject this too" from a cel-js parse failure is therefore
|
|
27
|
+
* unsound, and the parse half does not do it: it sorts a failure into
|
|
28
|
+
* `not-valid-cel` (a form the *spec's* grammar has no token or production for),
|
|
29
|
+
* `cel-js-rejects-spec-cel` (a positively identified cel-js shortfall — a real
|
|
30
|
+
* divergence) or `cel-js-parse-failure` (no verdict beyond direct mode).
|
|
31
|
+
*
|
|
32
|
+
* Identifying a shortfall *somewhere* in a rejected expression is not by itself
|
|
33
|
+
* a divergence, because the parse may have failed for an unrelated reason: the
|
|
34
|
+
* shortfall in `"x".size() +` is real and the expression is still unfinished,
|
|
35
|
+
* and cel-go refuses it exactly as cel-js does. So the divergence bucket is
|
|
36
|
+
* earned rather than assumed — every identified shortfall is rewritten into a
|
|
37
|
+
* spelling of the same spec production that cel-js does have (`"x".size()` into
|
|
38
|
+
* `__typekro_recv0.size()`, `1e3` into `0.0`), the rest of the text is left
|
|
39
|
+
* untouched, and cel-js is asked again. Only a rewrite that parses proves the
|
|
40
|
+
* shortfall was the whole reason; anything else falls to `cel-js-parse-failure`.
|
|
41
|
+
*
|
|
42
|
+
* ## Why a denylist rather than a real cel-go
|
|
43
|
+
*
|
|
44
|
+
* cel-go is a Go library; there is no in-process cel-go for a TypeScript
|
|
45
|
+
* serializer to consult, and shelling out to one would make `toYaml()` depend
|
|
46
|
+
* on a Go toolchain. The denylist is therefore a deliberately *curated*,
|
|
47
|
+
* documented set of confirmed divergences rather than a general type checker.
|
|
48
|
+
* It is meant to grow: each rule below records what was observed and on which
|
|
49
|
+
* engine, so a new entry can be justified the same way.
|
|
50
|
+
*
|
|
51
|
+
* ## What may fail strict mode
|
|
52
|
+
*
|
|
53
|
+
* A rule may fail strict mode only when the two engines genuinely **diverge** on
|
|
54
|
+
* the form: there is data for which one engine yields a value and the other does
|
|
55
|
+
* not. That bar rules out two tempting kinds of rule, and both are deliberately
|
|
56
|
+
* excluded rather than merely unwritten.
|
|
57
|
+
*
|
|
58
|
+
* - **Anything that needs a CEL *type* to be a divergence.** Syntax does not
|
|
59
|
+
* establish a type. `x[0]` is a list index against one schema and a map lookup
|
|
60
|
+
* against another; `"k" in e` is fine when `e` is a map and rejected when
|
|
61
|
+
* cel-go's type env has typed `e` as a message. The real types live in the
|
|
62
|
+
* referenced resources' Kubernetes schemas, and nothing at this call site has
|
|
63
|
+
* them: the check receives the serialized status map — expression text naming
|
|
64
|
+
* graph resources by id — and TypeKro's `Enhanced<>` types are erased before
|
|
65
|
+
* serialization runs. A rule that guesses a type from bracket shape fails
|
|
66
|
+
* strict mode on valid CEL, so such rules are reported as notes instead.
|
|
67
|
+
* - **Forms both engines treat the same.** Indexing a required list inside a
|
|
68
|
+
* logical chain is the worked example: `size(l) > 0 && l[0].f != ""` returns
|
|
69
|
+
* `false` on an empty `l` in both engines (cel-js short-circuits, cel-go
|
|
70
|
+
* absorbs the error under a deciding `false`), and an out-of-range index
|
|
71
|
+
* errors on both. Nothing diverges, so nothing is reported.
|
|
72
|
+
*
|
|
73
|
+
* What the bar does **not** license is a claim about what KRO ultimately does
|
|
74
|
+
* with the field. Every rule here reasons about the grammar and about published
|
|
75
|
+
* engine behaviour; none of them models cel-go's *type checker*, which runs
|
|
76
|
+
* after the parse with KRO's type environment and function set and rejects
|
|
77
|
+
* plenty of grammatical CEL — `1.string()` parses on any conformant grammar and
|
|
78
|
+
* the checker still refuses it, `string` being a global conversion function
|
|
79
|
+
* rather than a member, and an unknown member function goes the same way. So a
|
|
80
|
+
* finding says "direct mode can never evaluate this field" where that is proven,
|
|
81
|
+
* and leaves KRO's verdict open. A rule stays a `divergence` on the strength of
|
|
82
|
+
* the disagreement it does establish: the engines differ on the *form*, at a
|
|
83
|
+
* stage that needs no type environment, which makes the emitted CEL defective
|
|
84
|
+
* for one of the two targets TypeKro serializes for whatever the other decides.
|
|
85
|
+
*
|
|
86
|
+
* Findings that do not clear the bar are still worth surfacing, so each rule
|
|
87
|
+
* declares a {@link CelDialectFindingKind}: `divergence` findings abort
|
|
88
|
+
* serialization in strict mode, `note` findings never do and are logged in both
|
|
89
|
+
* modes. Strictness otherwise follows the shared CEL diagnostics convention
|
|
90
|
+
* (`strictCelDiagnostics` factory option, `TYPEKRO_STRICT_CEL=1`).
|
|
91
|
+
*/
|
|
92
|
+
/**
|
|
93
|
+
* The CEL engine that rejects — or diverges on — an expression.
|
|
94
|
+
*
|
|
95
|
+
* `'both'` marks a form neither engine accepts, which is a defect but not a
|
|
96
|
+
* divergence. `'unchecked'` is not an engine at all: it marks a finding where no
|
|
97
|
+
* verdict was reached, because the expression was past the analysis budget.
|
|
98
|
+
*/
|
|
99
|
+
export type CelDialect = 'cel-js' | 'cel-go' | 'both' | 'unchecked';
|
|
100
|
+
/**
|
|
101
|
+
* Whether a finding may fail strict mode.
|
|
102
|
+
*
|
|
103
|
+
* - `divergence` — the two engines demonstrably disagree on this form, with no
|
|
104
|
+
* appeal to a type the checker cannot see. Fails strict mode.
|
|
105
|
+
* - `note` — worth reporting, but not a proven divergence: either both engines
|
|
106
|
+
* reject the form (a defect, but the same defect on each), or the divergence
|
|
107
|
+
* is conditional on a type the checker has no way to establish, or no verdict
|
|
108
|
+
* was reached at all. Never fails strict mode, in either strictness setting.
|
|
109
|
+
*/
|
|
110
|
+
export type CelDialectFindingKind = 'divergence' | 'note';
|
|
111
|
+
/** Identifier for a curated dual-dialect rule. */
|
|
112
|
+
export type CelDialectRuleId = 'not-valid-cel' | 'cel-js-rejects-spec-cel' | 'cel-js-parse-failure' | 'has-index-argument' | 'in-on-list-entry' | 'guard-after-use-in-logical-chain' | 'heterogeneous-map-literal' | 'expression-too-large';
|
|
113
|
+
/**
|
|
114
|
+
* Largest expression this module will analyze, in characters.
|
|
115
|
+
*
|
|
116
|
+
* Both halves of the check cost roughly a microsecond per character — cel-js's
|
|
117
|
+
* parser dominates — so the cost is linear in the length of the expression and
|
|
118
|
+
* the only way it can run away is for the expression itself to run away.
|
|
119
|
+
*
|
|
120
|
+
* The budget is set from what TypeKro actually emits. Across the unit suite the
|
|
121
|
+
* median status expression is under 100 characters, the 99th percentile is
|
|
122
|
+
* ~1.6k, and the largest authored one is ~3.3k. 16 KiB leaves roughly five
|
|
123
|
+
* times the headroom over the largest real expression while capping the check
|
|
124
|
+
* at ~16ms for any single leaf.
|
|
125
|
+
*
|
|
126
|
+
* Anything past this is not an authored status field. The known source is a
|
|
127
|
+
* nested composition whose inlined status re-expands into itself, doubling per
|
|
128
|
+
* level until the depth limit stops it — which yields a multi-megabyte
|
|
129
|
+
* expression that no engine can use: cel-js needs seconds to parse it on every
|
|
130
|
+
* direct-mode reconcile, and a ResourceGraphDefinition carrying it is past the
|
|
131
|
+
* Kubernetes object size limit, so the API server refuses it outright.
|
|
132
|
+
*/
|
|
133
|
+
export declare const CEL_DIALECT_MAX_EXPRESSION_LENGTH = 16384;
|
|
134
|
+
/** A single dual-dialect incompatibility found in an emitted expression. */
|
|
135
|
+
export interface CelDialectFinding {
|
|
136
|
+
/** Which curated rule matched. */
|
|
137
|
+
readonly rule: CelDialectRuleId;
|
|
138
|
+
/** Whether this finding may fail strict mode. */
|
|
139
|
+
readonly kind: CelDialectFindingKind;
|
|
140
|
+
/** The engine that rejects or diverges on this expression. */
|
|
141
|
+
readonly dialect: CelDialect;
|
|
142
|
+
/** The status leaf path the expression was emitted for. */
|
|
143
|
+
readonly field: string;
|
|
144
|
+
/** The emitted CEL expression. */
|
|
145
|
+
readonly expression: string;
|
|
146
|
+
/** The offending fragment, when the rule can isolate one. */
|
|
147
|
+
readonly fragment?: string;
|
|
148
|
+
/** What the engine does with it. */
|
|
149
|
+
readonly message: string;
|
|
150
|
+
/** How to write it so both engines accept it. */
|
|
151
|
+
readonly suggestion: string;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* The curated denylist.
|
|
155
|
+
*
|
|
156
|
+
* Every entry names the engine that rejects the form, whether the entry counts
|
|
157
|
+
* as a divergence, and the observation behind it. Keep this table and
|
|
158
|
+
* {@link checkCelDialectCompatibility} in step.
|
|
159
|
+
*/
|
|
160
|
+
export declare const CEL_DIALECT_RULES: readonly {
|
|
161
|
+
readonly id: CelDialectRuleId;
|
|
162
|
+
readonly kind: CelDialectFindingKind;
|
|
163
|
+
readonly dialect: CelDialect;
|
|
164
|
+
readonly summary: string;
|
|
165
|
+
readonly observed: string;
|
|
166
|
+
}[];
|
|
167
|
+
/** True when any finding in the set may fail strict mode. */
|
|
168
|
+
export declare function hasCelDialectDivergence(findings: readonly CelDialectFinding[]): boolean;
|
|
169
|
+
/**
|
|
170
|
+
* What the last run (or runs) of the check cost, in units that do not depend on
|
|
171
|
+
* the machine it ran on.
|
|
172
|
+
*
|
|
173
|
+
* Wall-clock is the wrong instrument for the property that actually matters
|
|
174
|
+
* here — that the work is linear in the length of the expression rather than
|
|
175
|
+
* quadratic in its nesting — because a slow CI box and a quadratic regression
|
|
176
|
+
* look alike. These counters do not: `indexedCharacters` is the total text
|
|
177
|
+
* scanned to build bracket indexes and `lookups` the total number of "where
|
|
178
|
+
* does this close?" questions asked, so doubling the input must roughly double
|
|
179
|
+
* both.
|
|
180
|
+
*/
|
|
181
|
+
export interface CelDialectWorkStats {
|
|
182
|
+
/** How many bracket indexes were built. */
|
|
183
|
+
readonly indexBuilds: number;
|
|
184
|
+
/** Total characters scanned across those builds. */
|
|
185
|
+
readonly indexedCharacters: number;
|
|
186
|
+
/** Total bracket-match questions answered out of an index. */
|
|
187
|
+
readonly lookups: number;
|
|
188
|
+
}
|
|
189
|
+
/** Read the work counters. */
|
|
190
|
+
export declare function celDialectWorkStats(): CelDialectWorkStats;
|
|
191
|
+
/** Zero the work counters, so one check can be measured on its own. */
|
|
192
|
+
export declare function resetCelDialectWorkStats(): void;
|
|
193
|
+
/**
|
|
194
|
+
* Offset of the first character of `expression` no CEL token can carry, or `-1`
|
|
195
|
+
* when the spec's lexical grammar covers the text end to end.
|
|
196
|
+
*
|
|
197
|
+
* Exported for the same reason {@link celDialectParseProof} is: the coverage
|
|
198
|
+
* scan is half of what "cel-js parsed it" means here, so it has to be checkable
|
|
199
|
+
* from outside rather than taken on trust. `-1` is the precondition for every
|
|
200
|
+
* verdict this module draws from a cel-js parse — see
|
|
201
|
+
* {@link firstUnlexableOffset} for why `parse()` alone is not enough.
|
|
202
|
+
*/
|
|
203
|
+
export declare function celDialectLexicalGap(expression: string): number;
|
|
204
|
+
/**
|
|
205
|
+
* The rewritten expression a `cel-js-rejects-spec-cel` divergence stands on, or
|
|
206
|
+
* `undefined` when there is none.
|
|
207
|
+
*
|
|
208
|
+
* Exported so the proof can be reproduced rather than taken on trust: the
|
|
209
|
+
* returned text differs from `expression` only where a confirmed cel-js
|
|
210
|
+
* shortfall was replaced by a same-production spelling cel-js has, cel-js's
|
|
211
|
+
* lexer carries every character of it and cel-js parses it. An expression with
|
|
212
|
+
* no identified shortfall, one whose own text is not lexically CEL, or one where
|
|
213
|
+
* taking the shortfalls away still leaves text cel-js refuses, yields
|
|
214
|
+
* `undefined` — and that is exactly the case the check refuses to call a
|
|
215
|
+
* divergence.
|
|
216
|
+
*/
|
|
217
|
+
export declare function celDialectParseProof(expression: string): string | undefined;
|
|
218
|
+
/**
|
|
219
|
+
* Check one emitted status CEL expression against both dialects.
|
|
220
|
+
*
|
|
221
|
+
* @param expression The emitted CEL, without any `${...}` wrapper.
|
|
222
|
+
* @param field The status leaf path the expression belongs to.
|
|
223
|
+
*/
|
|
224
|
+
export declare function checkCelDialectCompatibility(expression: string, field: string): CelDialectFinding[];
|
|
225
|
+
/**
|
|
226
|
+
* Check every emitted status CEL expression in a serialized status map.
|
|
227
|
+
*
|
|
228
|
+
* Accepts the nested shape `serializeStatusMappingsToCel` produces: leaves are
|
|
229
|
+
* `${...}`-wrapped CEL strings, and objects/arrays nest arbitrarily. Values
|
|
230
|
+
* that carry no CEL are skipped, so plain literal status fields cost nothing.
|
|
231
|
+
*/
|
|
232
|
+
export declare function collectStatusCelDialectFindings(statusCel: Readonly<Record<string, unknown>>): CelDialectFinding[];
|
|
233
|
+
/**
|
|
234
|
+
* Longest expression or fragment a report will quote, in characters.
|
|
235
|
+
*
|
|
236
|
+
* The analysis budget already keeps `checkCelDialectCompatibility` from
|
|
237
|
+
* returning an oversized `expression`, but the formatter is exported and takes
|
|
238
|
+
* findings from wherever the caller got them — so it bounds what it quotes on
|
|
239
|
+
* its own rather than trusting its input. A report is read by a human; past a
|
|
240
|
+
* couple of lines per finding the excerpt stops helping and starts being the
|
|
241
|
+
* thing that fills the log.
|
|
242
|
+
*/
|
|
243
|
+
export declare const CEL_DIALECT_MAX_EXCERPT_LENGTH = 400;
|
|
244
|
+
/** Render findings as a multi-line report naming the leaf, dialect and expression. */
|
|
245
|
+
export declare function formatCelDialectFindings(findings: readonly CelDialectFinding[]): string;
|
|
246
|
+
//# sourceMappingURL=cel-dialect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cel-dialect.d.ts","sourceRoot":"","sources":["../../../src/core/validation/cel-dialect.ts"],"names":[],"mappings":"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"}
|