typekro 0.28.1 → 0.30.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/advanced/index.d.ts +5 -1
- package/dist/advanced/index.d.ts.map +1 -1
- package/dist/advanced/index.js +2 -3
- package/dist/advanced/index.js.map +1 -1
- package/dist/alchemy/deployers.d.ts +6 -4
- package/dist/alchemy/deployers.d.ts.map +1 -1
- package/dist/alchemy/deployers.js +46 -9
- package/dist/alchemy/deployers.js.map +1 -1
- package/dist/alchemy/index.d.ts +2 -3
- package/dist/alchemy/index.d.ts.map +1 -1
- package/dist/alchemy/index.js +1 -1
- package/dist/alchemy/index.js.map +1 -1
- package/dist/alchemy/kro-delete.d.ts +6 -5
- package/dist/alchemy/kro-delete.d.ts.map +1 -1
- package/dist/alchemy/kro-delete.js +169 -22
- package/dist/alchemy/kro-delete.js.map +1 -1
- package/dist/alchemy/resource-registration.d.ts +24 -31
- package/dist/alchemy/resource-registration.d.ts.map +1 -1
- package/dist/alchemy/resource-registration.js +439 -75
- package/dist/alchemy/resource-registration.js.map +1 -1
- package/dist/alchemy/types.d.ts +56 -14
- package/dist/alchemy/types.d.ts.map +1 -1
- package/dist/alchemy/utilities.d.ts +2 -2
- package/dist/alchemy/utilities.d.ts.map +1 -1
- package/dist/compositions/typekro-runtime/typekro-runtime.d.ts.map +1 -1
- package/dist/compositions/typekro-runtime/typekro-runtime.js +31 -28
- package/dist/compositions/typekro-runtime/typekro-runtime.js.map +1 -1
- package/dist/compositions/typekro-runtime/types.d.ts +12 -0
- package/dist/compositions/typekro-runtime/types.d.ts.map +1 -1
- package/dist/core/composition/analysis-metadata.d.ts +15 -0
- package/dist/core/composition/analysis-metadata.d.ts.map +1 -0
- package/dist/core/composition/analysis-metadata.js +20 -0
- package/dist/core/composition/analysis-metadata.js.map +1 -0
- package/dist/core/composition/context.d.ts +4 -0
- package/dist/core/composition/context.d.ts.map +1 -1
- package/dist/core/composition/context.js +1 -0
- package/dist/core/composition/context.js.map +1 -1
- package/dist/core/composition/imperative.d.ts.map +1 -1
- package/dist/core/composition/imperative.js +39 -9
- package/dist/core/composition/imperative.js.map +1 -1
- package/dist/core/composition/nested-status-cel.js +3 -3
- package/dist/core/composition/nested-status-cel.js.map +1 -1
- package/dist/core/constants/brands.d.ts +1 -1
- package/dist/core/constants/brands.d.ts.map +1 -1
- package/dist/core/constants/brands.js +1 -1
- package/dist/core/constants/brands.js.map +1 -1
- package/dist/core/dependencies/resolver.d.ts +3 -1
- package/dist/core/dependencies/resolver.d.ts.map +1 -1
- package/dist/core/dependencies/resolver.js +29 -13
- package/dist/core/dependencies/resolver.js.map +1 -1
- package/dist/core/deployment/crd-manager.d.ts +4 -1
- package/dist/core/deployment/crd-manager.d.ts.map +1 -1
- package/dist/core/deployment/crd-manager.js +9 -4
- package/dist/core/deployment/crd-manager.js.map +1 -1
- package/dist/core/deployment/deletion-result.d.ts +22 -0
- package/dist/core/deployment/deletion-result.d.ts.map +1 -0
- package/dist/core/deployment/deletion-result.js +108 -0
- package/dist/core/deployment/deletion-result.js.map +1 -0
- package/dist/core/deployment/deployment-state-discovery.d.ts +1 -0
- package/dist/core/deployment/deployment-state-discovery.d.ts.map +1 -1
- package/dist/core/deployment/deployment-state-discovery.js +89 -9
- package/dist/core/deployment/deployment-state-discovery.js.map +1 -1
- package/dist/core/deployment/direct-factory.d.ts +46 -25
- package/dist/core/deployment/direct-factory.d.ts.map +1 -1
- package/dist/core/deployment/direct-factory.js +536 -126
- package/dist/core/deployment/direct-factory.js.map +1 -1
- package/dist/core/deployment/engine.d.ts +4 -1
- package/dist/core/deployment/engine.d.ts.map +1 -1
- package/dist/core/deployment/engine.js +105 -34
- package/dist/core/deployment/engine.js.map +1 -1
- package/dist/core/deployment/errors.d.ts +20 -1
- package/dist/core/deployment/errors.d.ts.map +1 -1
- package/dist/core/deployment/errors.js +55 -0
- package/dist/core/deployment/errors.js.map +1 -1
- package/dist/core/deployment/event-monitor.d.ts +4 -3
- package/dist/core/deployment/event-monitor.d.ts.map +1 -1
- package/dist/core/deployment/event-monitor.js +17 -5
- package/dist/core/deployment/event-monitor.js.map +1 -1
- package/dist/core/deployment/index.d.ts +1 -1
- package/dist/core/deployment/index.d.ts.map +1 -1
- package/dist/core/deployment/index.js +1 -1
- package/dist/core/deployment/index.js.map +1 -1
- package/dist/core/deployment/k8s-helpers.d.ts +1 -1
- package/dist/core/deployment/k8s-helpers.d.ts.map +1 -1
- package/dist/core/deployment/k8s-helpers.js +11 -5
- package/dist/core/deployment/k8s-helpers.js.map +1 -1
- package/dist/core/deployment/kro-factory.d.ts +54 -30
- package/dist/core/deployment/kro-factory.d.ts.map +1 -1
- package/dist/core/deployment/kro-factory.js +2002 -259
- package/dist/core/deployment/kro-factory.js.map +1 -1
- package/dist/core/deployment/kro-instance-admission.d.ts +17 -0
- package/dist/core/deployment/kro-instance-admission.d.ts.map +1 -0
- package/dist/core/deployment/kro-instance-admission.js +73 -0
- package/dist/core/deployment/kro-instance-admission.js.map +1 -0
- package/dist/core/deployment/kro-instance-safety.d.ts +0 -3
- package/dist/core/deployment/kro-instance-safety.d.ts.map +1 -1
- package/dist/core/deployment/kro-instance-safety.js +0 -11
- package/dist/core/deployment/kro-instance-safety.js.map +1 -1
- package/dist/core/deployment/kro-namespace-teardown.d.ts +63 -5
- package/dist/core/deployment/kro-namespace-teardown.d.ts.map +1 -1
- package/dist/core/deployment/kro-namespace-teardown.js +124 -12
- package/dist/core/deployment/kro-namespace-teardown.js.map +1 -1
- package/dist/core/deployment/kro-readiness.d.ts +2 -0
- package/dist/core/deployment/kro-readiness.d.ts.map +1 -1
- package/dist/core/deployment/kro-readiness.js +23 -6
- package/dist/core/deployment/kro-readiness.js.map +1 -1
- package/dist/core/deployment/poll-timeout.d.ts +1 -1
- package/dist/core/deployment/poll-timeout.d.ts.map +1 -1
- package/dist/core/deployment/poll-timeout.js +12 -1
- package/dist/core/deployment/poll-timeout.js.map +1 -1
- package/dist/core/deployment/resource-applier.d.ts +19 -3
- package/dist/core/deployment/resource-applier.d.ts.map +1 -1
- package/dist/core/deployment/resource-applier.js +263 -44
- package/dist/core/deployment/resource-applier.js.map +1 -1
- package/dist/core/deployment/rollback-manager.d.ts +6 -1
- package/dist/core/deployment/rollback-manager.d.ts.map +1 -1
- package/dist/core/deployment/rollback-manager.js +38 -12
- package/dist/core/deployment/rollback-manager.js.map +1 -1
- package/dist/core/deployment/schema-cel-evaluator.d.ts.map +1 -1
- package/dist/core/deployment/schema-cel-evaluator.js +63 -0
- package/dist/core/deployment/schema-cel-evaluator.js.map +1 -1
- package/dist/core/deployment/shared-utilities.d.ts +11 -6
- package/dist/core/deployment/shared-utilities.d.ts.map +1 -1
- package/dist/core/deployment/shared-utilities.js +169 -14
- package/dist/core/deployment/shared-utilities.js.map +1 -1
- package/dist/core/deployment/singleton-gitops.d.ts.map +1 -1
- package/dist/core/deployment/singleton-gitops.js +0 -2
- package/dist/core/deployment/singleton-gitops.js.map +1 -1
- package/dist/core/deployment/singleton-owner-drift.d.ts +11 -2
- package/dist/core/deployment/singleton-owner-drift.d.ts.map +1 -1
- package/dist/core/deployment/singleton-owner-drift.js +30 -13
- package/dist/core/deployment/singleton-owner-drift.js.map +1 -1
- package/dist/core/deployment/strategies/base-strategy.d.ts +2 -0
- package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
- package/dist/core/deployment/strategies/base-strategy.js +19 -2
- package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
- package/dist/core/deployment/strategies/direct-strategy.d.ts +3 -0
- package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -1
- package/dist/core/deployment/strategies/direct-strategy.js +31 -8
- package/dist/core/deployment/strategies/direct-strategy.js.map +1 -1
- package/dist/core/deployment/strategies/index.d.ts +1 -1
- package/dist/core/deployment/strategies/index.d.ts.map +1 -1
- package/dist/core/deployment/strategies/index.js +1 -1
- package/dist/core/deployment/strategies/index.js.map +1 -1
- package/dist/core/errors.d.ts +2 -2
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js.map +1 -1
- package/dist/core/expressions/analysis/cel-emitter.d.ts.map +1 -1
- package/dist/core/expressions/analysis/cel-emitter.js +17 -13
- package/dist/core/expressions/analysis/cel-emitter.js.map +1 -1
- package/dist/core/expressions/analysis/expression-metadata.d.ts +15 -0
- package/dist/core/expressions/analysis/expression-metadata.d.ts.map +1 -0
- package/dist/core/expressions/analysis/expression-metadata.js +10 -0
- package/dist/core/expressions/analysis/expression-metadata.js.map +1 -0
- package/dist/core/expressions/analysis/ready-when.d.ts +3 -0
- package/dist/core/expressions/analysis/ready-when.d.ts.map +1 -0
- package/dist/core/expressions/analysis/ready-when.js +127 -0
- package/dist/core/expressions/analysis/ready-when.js.map +1 -0
- package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts +3 -2
- package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-helpers.js +6 -4
- package/dist/core/expressions/composition/composition-analyzer-helpers.js.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts +3 -2
- package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-ternary.js +12 -12
- package/dist/core/expressions/composition/composition-analyzer-ternary.js.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-traversal.d.ts.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-traversal.js +68 -4
- package/dist/core/expressions/composition/composition-analyzer-traversal.js.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-types.d.ts +2 -0
- package/dist/core/expressions/composition/composition-analyzer-types.d.ts.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer.d.ts.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer.js +2 -0
- package/dist/core/expressions/composition/composition-analyzer.js.map +1 -1
- package/dist/core/expressions/factory/status-builder-analyzer.d.ts.map +1 -1
- package/dist/core/expressions/factory/status-builder-analyzer.js +14 -1
- package/dist/core/expressions/factory/status-builder-analyzer.js.map +1 -1
- package/dist/core/kubernetes/api.d.ts.map +1 -1
- package/dist/core/kubernetes/api.js +2 -3
- package/dist/core/kubernetes/api.js.map +1 -1
- package/dist/core/kubernetes/bun-api-client.d.ts +1 -1
- package/dist/core/kubernetes/bun-api-client.d.ts.map +1 -1
- package/dist/core/kubernetes/bun-api-client.js +17 -17
- package/dist/core/kubernetes/bun-api-client.js.map +1 -1
- package/dist/core/kubernetes/bun-http-library.d.ts +16 -0
- package/dist/core/kubernetes/bun-http-library.d.ts.map +1 -1
- package/dist/core/kubernetes/bun-http-library.js +7 -1
- package/dist/core/kubernetes/bun-http-library.js.map +1 -1
- package/dist/core/kubernetes/bun-watch.d.ts +30 -0
- package/dist/core/kubernetes/bun-watch.d.ts.map +1 -0
- package/dist/core/kubernetes/bun-watch.js +144 -0
- package/dist/core/kubernetes/bun-watch.js.map +1 -0
- package/dist/core/kubernetes/client-node-runtime.d.ts +10 -0
- package/dist/core/kubernetes/client-node-runtime.d.ts.map +1 -0
- package/dist/core/kubernetes/client-node-runtime.js +15 -0
- package/dist/core/kubernetes/client-node-runtime.js.map +1 -0
- package/dist/core/kubernetes/client-provider.d.ts +21 -1
- package/dist/core/kubernetes/client-provider.d.ts.map +1 -1
- package/dist/core/kubernetes/client-provider.js +10 -10
- package/dist/core/kubernetes/client-provider.js.map +1 -1
- package/dist/core/kubernetes/index.d.ts +1 -1
- package/dist/core/kubernetes/index.d.ts.map +1 -1
- package/dist/core/kubernetes/index.js.map +1 -1
- package/dist/core/metadata/resource-metadata.d.ts +24 -1
- package/dist/core/metadata/resource-metadata.d.ts.map +1 -1
- package/dist/core/metadata/resource-metadata.js +8 -4
- package/dist/core/metadata/resource-metadata.js.map +1 -1
- package/dist/core/planning/artifact-codec.d.ts +14 -0
- package/dist/core/planning/artifact-codec.d.ts.map +1 -0
- package/dist/core/planning/artifact-codec.js +329 -0
- package/dist/core/planning/artifact-codec.js.map +1 -0
- package/dist/core/planning/artifacts.d.ts +212 -0
- package/dist/core/planning/artifacts.d.ts.map +1 -0
- package/dist/core/planning/artifacts.js +5 -0
- package/dist/core/planning/artifacts.js.map +1 -0
- package/dist/core/planning/aspects.d.ts +11 -0
- package/dist/core/planning/aspects.d.ts.map +1 -0
- package/dist/core/planning/aspects.js +77 -0
- package/dist/core/planning/aspects.js.map +1 -0
- package/dist/core/planning/canonical.d.ts +10 -0
- package/dist/core/planning/canonical.d.ts.map +1 -0
- package/dist/core/planning/canonical.js +54 -0
- package/dist/core/planning/canonical.js.map +1 -0
- package/dist/core/planning/capabilities.d.ts +16 -0
- package/dist/core/planning/capabilities.d.ts.map +1 -0
- package/dist/core/planning/capabilities.js +90 -0
- package/dist/core/planning/capabilities.js.map +1 -0
- package/dist/core/planning/capture.d.ts +29 -0
- package/dist/core/planning/capture.d.ts.map +1 -0
- package/dist/core/planning/capture.js +18 -0
- package/dist/core/planning/capture.js.map +1 -0
- package/dist/core/planning/compiler.d.ts +12 -0
- package/dist/core/planning/compiler.d.ts.map +1 -0
- package/dist/core/planning/compiler.js +631 -0
- package/dist/core/planning/compiler.js.map +1 -0
- package/dist/core/planning/direct-runtime-adapter.d.ts +39 -0
- package/dist/core/planning/direct-runtime-adapter.d.ts.map +1 -0
- package/dist/core/planning/direct-runtime-adapter.js +238 -0
- package/dist/core/planning/direct-runtime-adapter.js.map +1 -0
- package/dist/core/planning/execution-record.d.ts +21 -0
- package/dist/core/planning/execution-record.d.ts.map +1 -0
- package/dist/core/planning/execution-record.js +304 -0
- package/dist/core/planning/execution-record.js.map +1 -0
- package/dist/core/planning/index.d.ts +20 -0
- package/dist/core/planning/index.d.ts.map +1 -0
- package/dist/core/planning/index.js +18 -0
- package/dist/core/planning/index.js.map +1 -0
- package/dist/core/planning/kro-bundle.d.ts +24 -0
- package/dist/core/planning/kro-bundle.d.ts.map +1 -0
- package/dist/core/planning/kro-bundle.js +314 -0
- package/dist/core/planning/kro-bundle.js.map +1 -0
- package/dist/core/planning/kro-runtime-adapter.d.ts +28 -0
- package/dist/core/planning/kro-runtime-adapter.d.ts.map +1 -0
- package/dist/core/planning/kro-runtime-adapter.js +211 -0
- package/dist/core/planning/kro-runtime-adapter.js.map +1 -0
- package/dist/core/planning/materialization.d.ts +54 -0
- package/dist/core/planning/materialization.d.ts.map +1 -0
- package/dist/core/planning/materialization.js +489 -0
- package/dist/core/planning/materialization.js.map +1 -0
- package/dist/core/planning/plan-codec.d.ts +11 -0
- package/dist/core/planning/plan-codec.d.ts.map +1 -0
- package/dist/core/planning/plan-codec.js +555 -0
- package/dist/core/planning/plan-codec.js.map +1 -0
- package/dist/core/planning/planner.d.ts +21 -0
- package/dist/core/planning/planner.d.ts.map +1 -0
- package/dist/core/planning/planner.js +1518 -0
- package/dist/core/planning/planner.js.map +1 -0
- package/dist/core/planning/schema.d.ts +10 -0
- package/dist/core/planning/schema.d.ts.map +1 -0
- package/dist/core/planning/schema.js +159 -0
- package/dist/core/planning/schema.js.map +1 -0
- package/dist/core/planning/types.d.ts +441 -0
- package/dist/core/planning/types.d.ts.map +1 -0
- package/dist/core/planning/types.js +3 -0
- package/dist/core/planning/types.js.map +1 -0
- package/dist/core/planning/values.d.ts +76 -0
- package/dist/core/planning/values.d.ts.map +1 -0
- package/dist/core/planning/values.js +852 -0
- package/dist/core/planning/values.js.map +1 -0
- package/dist/core/proxy/create-resource.d.ts +12 -0
- package/dist/core/proxy/create-resource.d.ts.map +1 -1
- package/dist/core/proxy/create-resource.js +41 -9
- package/dist/core/proxy/create-resource.js.map +1 -1
- package/dist/core/readiness/evaluator-factories.d.ts +3 -1
- package/dist/core/readiness/evaluator-factories.d.ts.map +1 -1
- package/dist/core/readiness/evaluator-factories.js +130 -5
- package/dist/core/readiness/evaluator-factories.js.map +1 -1
- package/dist/core/readiness/index.d.ts +2 -1
- package/dist/core/readiness/index.d.ts.map +1 -1
- package/dist/core/readiness/index.js +2 -1
- package/dist/core/readiness/index.js.map +1 -1
- package/dist/core/readiness/portable-strategies.d.ts +28 -0
- package/dist/core/readiness/portable-strategies.d.ts.map +1 -0
- package/dist/core/readiness/portable-strategies.js +55 -0
- package/dist/core/readiness/portable-strategies.js.map +1 -0
- package/dist/core/readiness/strategy-configuration.d.ts +12 -0
- package/dist/core/readiness/strategy-configuration.d.ts.map +1 -0
- package/dist/core/readiness/strategy-configuration.js +51 -0
- package/dist/core/readiness/strategy-configuration.js.map +1 -0
- package/dist/core/references/cel-evaluator.d.ts +5 -0
- package/dist/core/references/cel-evaluator.d.ts.map +1 -1
- package/dist/core/references/cel-evaluator.js +33 -2
- package/dist/core/references/cel-evaluator.js.map +1 -1
- package/dist/core/references/cel.d.ts +10 -7
- package/dist/core/references/cel.d.ts.map +1 -1
- package/dist/core/references/cel.js +13 -12
- package/dist/core/references/cel.js.map +1 -1
- package/dist/core/references/external-refs.d.ts +2 -0
- package/dist/core/references/external-refs.d.ts.map +1 -1
- package/dist/core/references/external-refs.js +3 -1
- package/dist/core/references/external-refs.js.map +1 -1
- package/dist/core/references/resolver.d.ts +7 -1
- package/dist/core/references/resolver.d.ts.map +1 -1
- package/dist/core/references/resolver.js +91 -9
- package/dist/core/references/resolver.js.map +1 -1
- package/dist/core/references/schema-proxy.d.ts.map +1 -1
- package/dist/core/references/schema-proxy.js +35 -21
- package/dist/core/references/schema-proxy.js.map +1 -1
- package/dist/core/resources/factory-registry.d.ts +64 -2
- package/dist/core/resources/factory-registry.d.ts.map +1 -1
- package/dist/core/resources/factory-registry.js +74 -3
- package/dist/core/resources/factory-registry.js.map +1 -1
- package/dist/core/resources/index.d.ts +3 -2
- package/dist/core/resources/index.d.ts.map +1 -1
- package/dist/core/resources/index.js +2 -1
- package/dist/core/resources/index.js.map +1 -1
- package/dist/core/resources/live-comparison.d.ts +58 -0
- package/dist/core/resources/live-comparison.d.ts.map +1 -0
- package/dist/core/resources/live-comparison.js +293 -0
- package/dist/core/resources/live-comparison.js.map +1 -0
- package/dist/core/runtime/standalone-operation.d.ts +12 -0
- package/dist/core/runtime/standalone-operation.d.ts.map +1 -0
- package/dist/core/runtime/standalone-operation.js +62 -0
- package/dist/core/runtime/standalone-operation.js.map +1 -0
- package/dist/core/serialization/cel-references.d.ts +1 -0
- package/dist/core/serialization/cel-references.d.ts.map +1 -1
- package/dist/core/serialization/cel-references.js +12 -2
- 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 +277 -182
- package/dist/core/serialization/core.js.map +1 -1
- package/dist/core/serialization/schema.d.ts.map +1 -1
- package/dist/core/serialization/schema.js +350 -26
- package/dist/core/serialization/schema.js.map +1 -1
- package/dist/core/serialization/status-analysis-pipeline.d.ts +1 -1
- package/dist/core/serialization/status-analysis-pipeline.d.ts.map +1 -1
- package/dist/core/serialization/status-analysis-pipeline.js +14 -11
- package/dist/core/serialization/status-analysis-pipeline.js.map +1 -1
- package/dist/core/serialization/yaml.d.ts +5 -1
- package/dist/core/serialization/yaml.d.ts.map +1 -1
- package/dist/core/serialization/yaml.js +35 -182
- package/dist/core/serialization/yaml.js.map +1 -1
- package/dist/core/types/deployment.d.ts +135 -14
- package/dist/core/types/deployment.d.ts.map +1 -1
- package/dist/core/types/kubernetes.d.ts +3 -0
- package/dist/core/types/kubernetes.d.ts.map +1 -1
- package/dist/core/types/resource-graph.d.ts +7 -1
- package/dist/core/types/resource-graph.d.ts.map +1 -1
- package/dist/core/types/serialization.d.ts +8 -1
- package/dist/core/types/serialization.d.ts.map +1 -1
- package/dist/core/validation/cel-validator.d.ts.map +1 -1
- package/dist/core/validation/cel-validator.js +25 -16
- package/dist/core/validation/cel-validator.js.map +1 -1
- package/dist/experimental-planning.d.ts +13 -0
- package/dist/experimental-planning.d.ts.map +1 -0
- package/dist/experimental-planning.js +12 -0
- package/dist/experimental-planning.js.map +1 -0
- package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts.map +1 -1
- package/dist/factories/apisix/compositions/apisix-bootstrap.js +29 -23
- package/dist/factories/apisix/compositions/apisix-bootstrap.js.map +1 -1
- package/dist/factories/apisix/compositions/apisix-helm-repository.d.ts +15 -0
- package/dist/factories/apisix/compositions/apisix-helm-repository.d.ts.map +1 -0
- package/dist/factories/apisix/compositions/apisix-helm-repository.js +28 -0
- package/dist/factories/apisix/compositions/apisix-helm-repository.js.map +1 -0
- package/dist/factories/apisix/compositions/index.d.ts +1 -0
- package/dist/factories/apisix/compositions/index.d.ts.map +1 -1
- package/dist/factories/apisix/compositions/index.js +1 -0
- package/dist/factories/apisix/compositions/index.js.map +1 -1
- package/dist/factories/apisix/types.d.ts +22 -0
- package/dist/factories/apisix/types.d.ts.map +1 -1
- package/dist/factories/apisix/types.js +16 -0
- package/dist/factories/apisix/types.js.map +1 -1
- package/dist/factories/apisix/utils/admin-credentials.d.ts +1 -0
- package/dist/factories/apisix/utils/admin-credentials.d.ts.map +1 -1
- package/dist/factories/apisix/utils/admin-credentials.js +5 -4
- package/dist/factories/apisix/utils/admin-credentials.js.map +1 -1
- package/dist/factories/caddy/compositions/caddy-ingress.d.ts.map +1 -1
- package/dist/factories/caddy/compositions/caddy-ingress.js +9 -2
- package/dist/factories/caddy/compositions/caddy-ingress.js.map +1 -1
- package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts.map +1 -1
- package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js +11 -25
- package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js.map +1 -1
- package/dist/factories/cert-manager/resources/certificates.d.ts.map +1 -1
- package/dist/factories/cert-manager/resources/certificates.js +2 -1
- package/dist/factories/cert-manager/resources/certificates.js.map +1 -1
- package/dist/factories/cert-manager/resources/challenges.d.ts.map +1 -1
- package/dist/factories/cert-manager/resources/challenges.js +3 -0
- package/dist/factories/cert-manager/resources/challenges.js.map +1 -1
- package/dist/factories/cilium/compositions/cilium-bootstrap.d.ts +4 -4
- package/dist/factories/cilium/resources/gateway.d.ts.map +1 -1
- package/dist/factories/cilium/resources/gateway.js +13 -12
- package/dist/factories/cilium/resources/gateway.js.map +1 -1
- package/dist/factories/cilium/resources/networking.d.ts.map +1 -1
- package/dist/factories/cilium/resources/networking.js +9 -0
- package/dist/factories/cilium/resources/networking.js.map +1 -1
- package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.d.ts +2 -1
- package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.d.ts.map +1 -1
- package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.js +2 -6
- package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.js.map +1 -1
- package/dist/factories/clickhouse/resources/installation.d.ts.map +1 -1
- package/dist/factories/clickhouse/resources/installation.js +2 -0
- package/dist/factories/clickhouse/resources/installation.js.map +1 -1
- package/dist/factories/clickhouse/resources/keeper.d.ts.map +1 -1
- package/dist/factories/clickhouse/resources/keeper.js +2 -0
- package/dist/factories/clickhouse/resources/keeper.js.map +1 -1
- package/dist/factories/clickhouse/types.d.ts +5 -2
- package/dist/factories/clickhouse/types.d.ts.map +1 -1
- package/dist/factories/clickhouse/types.js +2 -1
- package/dist/factories/clickhouse/types.js.map +1 -1
- package/dist/factories/clickstack/compositions/k8s-telemetry.d.ts +4 -2
- package/dist/factories/clickstack/compositions/k8s-telemetry.d.ts.map +1 -1
- package/dist/factories/clickstack/compositions/k8s-telemetry.js +2 -5
- package/dist/factories/clickstack/compositions/k8s-telemetry.js.map +1 -1
- package/dist/factories/clickstack/types.d.ts +2 -1
- package/dist/factories/clickstack/types.d.ts.map +1 -1
- package/dist/factories/clickstack/types.js +3 -1
- package/dist/factories/clickstack/types.js.map +1 -1
- package/dist/factories/clickstack/utils/helm-values-mapper.js.map +1 -1
- package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts +2 -1
- package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts.map +1 -1
- package/dist/factories/cnpg/compositions/cnpg-bootstrap.js +3 -8
- package/dist/factories/cnpg/compositions/cnpg-bootstrap.js.map +1 -1
- package/dist/factories/cnpg/resources/backup.d.ts.map +1 -1
- package/dist/factories/cnpg/resources/backup.js +2 -0
- package/dist/factories/cnpg/resources/backup.js.map +1 -1
- package/dist/factories/cnpg/resources/cluster.d.ts.map +1 -1
- package/dist/factories/cnpg/resources/cluster.js +2 -1
- package/dist/factories/cnpg/resources/cluster.js.map +1 -1
- package/dist/factories/cnpg/resources/pooler.d.ts.map +1 -1
- package/dist/factories/cnpg/resources/pooler.js +2 -0
- package/dist/factories/cnpg/resources/pooler.js.map +1 -1
- package/dist/factories/cnpg/resources/scheduled-backup.d.ts.map +1 -1
- package/dist/factories/cnpg/resources/scheduled-backup.js +2 -1
- package/dist/factories/cnpg/resources/scheduled-backup.js.map +1 -1
- package/dist/factories/cnpg/types.d.ts +6 -3
- package/dist/factories/cnpg/types.d.ts.map +1 -1
- package/dist/factories/cnpg/types.js +2 -1
- package/dist/factories/cnpg/types.js.map +1 -1
- package/dist/factories/dagster/compositions/dagster-bootstrap.d.ts +2 -0
- package/dist/factories/dagster/compositions/dagster-bootstrap.d.ts.map +1 -1
- package/dist/factories/dagster/types.d.ts +5 -0
- package/dist/factories/dagster/types.d.ts.map +1 -1
- package/dist/factories/dagster/types.js +1 -0
- package/dist/factories/dagster/types.js.map +1 -1
- package/dist/factories/dagster/utils/helm-values-mapper.js +3 -0
- package/dist/factories/dagster/utils/helm-values-mapper.js.map +1 -1
- package/dist/factories/external-dns/compositions/external-dns-bootstrap.d.ts.map +1 -1
- package/dist/factories/external-dns/compositions/external-dns-bootstrap.js +7 -4
- package/dist/factories/external-dns/compositions/external-dns-bootstrap.js.map +1 -1
- package/dist/factories/external-dns/resources/dns-endpoint.d.ts.map +1 -1
- package/dist/factories/external-dns/resources/dns-endpoint.js +20 -18
- package/dist/factories/external-dns/resources/dns-endpoint.js.map +1 -1
- package/dist/factories/flux/git-repository.d.ts.map +1 -1
- package/dist/factories/flux/git-repository.js +41 -34
- package/dist/factories/flux/git-repository.js.map +1 -1
- package/dist/factories/flux/kustomize/readiness-evaluators.d.ts +0 -6
- package/dist/factories/flux/kustomize/readiness-evaluators.d.ts.map +1 -1
- package/dist/factories/flux/kustomize/readiness-evaluators.js +12 -2
- package/dist/factories/flux/kustomize/readiness-evaluators.js.map +1 -1
- package/dist/factories/harbor/compositions/harbor-installation.d.ts +46 -38
- package/dist/factories/harbor/compositions/harbor-installation.d.ts.map +1 -1
- package/dist/factories/harbor/compositions/harbor-installation.js +4 -2
- package/dist/factories/harbor/compositions/harbor-installation.js.map +1 -1
- package/dist/factories/harbor/types.d.ts +13 -11
- package/dist/factories/harbor/types.d.ts.map +1 -1
- package/dist/factories/harbor/types.js +11 -9
- package/dist/factories/harbor/types.js.map +1 -1
- package/dist/factories/helm/helm-repository.d.ts.map +1 -1
- package/dist/factories/helm/helm-repository.js +14 -1
- package/dist/factories/helm/helm-repository.js.map +1 -1
- package/dist/factories/helm/index.d.ts +2 -0
- package/dist/factories/helm/index.d.ts.map +1 -1
- package/dist/factories/helm/index.js +1 -0
- package/dist/factories/helm/index.js.map +1 -1
- package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
- package/dist/factories/helm/readiness-evaluators.js +46 -7
- package/dist/factories/helm/readiness-evaluators.js.map +1 -1
- package/dist/factories/helm/status.d.ts +18 -0
- package/dist/factories/helm/status.d.ts.map +1 -0
- package/dist/factories/helm/status.js +38 -0
- package/dist/factories/helm/status.js.map +1 -0
- package/dist/factories/index.d.ts +2 -2
- package/dist/factories/index.d.ts.map +1 -1
- package/dist/factories/index.js +4 -4
- package/dist/factories/index.js.map +1 -1
- package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts +1 -1
- package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts.map +1 -1
- package/dist/factories/inngest/compositions/inngest-bootstrap.js +2 -4
- package/dist/factories/inngest/compositions/inngest-bootstrap.js.map +1 -1
- package/dist/factories/inngest/resources/helm.d.ts.map +1 -1
- package/dist/factories/inngest/resources/helm.js +12 -3
- package/dist/factories/inngest/resources/helm.js.map +1 -1
- package/dist/factories/inngest/types.d.ts +3 -7
- package/dist/factories/inngest/types.d.ts.map +1 -1
- package/dist/factories/inngest/types.js +1 -1
- package/dist/factories/inngest/types.js.map +1 -1
- package/dist/factories/kro/kro-crd.d.ts.map +1 -1
- package/dist/factories/kro/kro-crd.js +32 -33
- package/dist/factories/kro/kro-crd.js.map +1 -1
- package/dist/factories/kro/kro-custom-resource.d.ts.map +1 -1
- package/dist/factories/kro/kro-custom-resource.js +91 -85
- package/dist/factories/kro/kro-custom-resource.js.map +1 -1
- package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -1
- package/dist/factories/kro/resource-graph-definition.js +127 -117
- package/dist/factories/kro/resource-graph-definition.js.map +1 -1
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts.map +1 -1
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js +27 -26
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js.map +1 -1
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.d.ts.map +1 -1
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js +22 -22
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js.map +1 -1
- package/dist/factories/kubernetes/certificates/certificate-signing-request.d.ts.map +1 -1
- package/dist/factories/kubernetes/certificates/certificate-signing-request.js +41 -39
- package/dist/factories/kubernetes/certificates/certificate-signing-request.js.map +1 -1
- package/dist/factories/kubernetes/core/component-status.d.ts.map +1 -1
- package/dist/factories/kubernetes/core/component-status.js +14 -16
- package/dist/factories/kubernetes/core/component-status.js.map +1 -1
- package/dist/factories/kubernetes/core/namespace.d.ts.map +1 -1
- package/dist/factories/kubernetes/core/namespace.js +31 -38
- package/dist/factories/kubernetes/core/namespace.js.map +1 -1
- package/dist/factories/kubernetes/core/node.d.ts.map +1 -1
- package/dist/factories/kubernetes/core/node.js +17 -25
- package/dist/factories/kubernetes/core/node.js.map +1 -1
- package/dist/factories/kubernetes/core/pod.d.ts.map +1 -1
- package/dist/factories/kubernetes/core/pod.js +31 -35
- package/dist/factories/kubernetes/core/pod.js.map +1 -1
- package/dist/factories/kubernetes/extensions/custom-resource-definition.d.ts.map +1 -1
- package/dist/factories/kubernetes/extensions/custom-resource-definition.js +34 -36
- package/dist/factories/kubernetes/extensions/custom-resource-definition.js.map +1 -1
- package/dist/factories/kubernetes/extensions/custom-resource.d.ts.map +1 -1
- package/dist/factories/kubernetes/extensions/custom-resource.js +2 -4
- package/dist/factories/kubernetes/extensions/custom-resource.js.map +1 -1
- package/dist/factories/kubernetes/networking/endpoints.d.ts.map +1 -1
- package/dist/factories/kubernetes/networking/endpoints.js +29 -30
- package/dist/factories/kubernetes/networking/endpoints.js.map +1 -1
- package/dist/factories/kubernetes/networking/ingress.d.ts.map +1 -1
- package/dist/factories/kubernetes/networking/ingress.js +46 -57
- package/dist/factories/kubernetes/networking/ingress.js.map +1 -1
- package/dist/factories/kubernetes/networking/network-policy.d.ts +9 -0
- package/dist/factories/kubernetes/networking/network-policy.d.ts.map +1 -1
- package/dist/factories/kubernetes/networking/network-policy.js +51 -1
- package/dist/factories/kubernetes/networking/network-policy.js.map +1 -1
- package/dist/factories/kubernetes/networking/service.d.ts.map +1 -1
- package/dist/factories/kubernetes/networking/service.js +48 -40
- package/dist/factories/kubernetes/networking/service.js.map +1 -1
- package/dist/factories/kubernetes/policy/pod-disruption-budget.d.ts.map +1 -1
- package/dist/factories/kubernetes/policy/pod-disruption-budget.js +40 -46
- package/dist/factories/kubernetes/policy/pod-disruption-budget.js.map +1 -1
- package/dist/factories/kubernetes/policy/resource-quota.d.ts.map +1 -1
- package/dist/factories/kubernetes/policy/resource-quota.js +30 -34
- package/dist/factories/kubernetes/policy/resource-quota.js.map +1 -1
- package/dist/factories/kubernetes/storage/persistent-volume-claim.d.ts.map +1 -1
- package/dist/factories/kubernetes/storage/persistent-volume-claim.js +22 -21
- package/dist/factories/kubernetes/storage/persistent-volume-claim.js.map +1 -1
- package/dist/factories/kubernetes/storage/persistent-volume.d.ts.map +1 -1
- package/dist/factories/kubernetes/storage/persistent-volume.js +32 -38
- package/dist/factories/kubernetes/storage/persistent-volume.js.map +1 -1
- package/dist/factories/kubernetes/storage/volume-attachment.d.ts.map +1 -1
- package/dist/factories/kubernetes/storage/volume-attachment.js +12 -11
- package/dist/factories/kubernetes/storage/volume-attachment.js.map +1 -1
- package/dist/factories/kubernetes/workloads/cron-job.d.ts.map +1 -1
- package/dist/factories/kubernetes/workloads/cron-job.js +39 -34
- package/dist/factories/kubernetes/workloads/cron-job.js.map +1 -1
- package/dist/factories/kubernetes/workloads/daemon-set.d.ts.map +1 -1
- package/dist/factories/kubernetes/workloads/daemon-set.js +24 -23
- package/dist/factories/kubernetes/workloads/daemon-set.js.map +1 -1
- package/dist/factories/kubernetes/workloads/deployment.d.ts.map +1 -1
- package/dist/factories/kubernetes/workloads/deployment.js +45 -35
- package/dist/factories/kubernetes/workloads/deployment.js.map +1 -1
- package/dist/factories/kubernetes/workloads/job.d.ts.map +1 -1
- package/dist/factories/kubernetes/workloads/job.js +87 -77
- package/dist/factories/kubernetes/workloads/job.js.map +1 -1
- package/dist/factories/kubernetes/workloads/replica-set.d.ts.map +1 -1
- package/dist/factories/kubernetes/workloads/replica-set.js +24 -24
- package/dist/factories/kubernetes/workloads/replica-set.js.map +1 -1
- package/dist/factories/kubernetes/workloads/replication-controller.d.ts.map +1 -1
- package/dist/factories/kubernetes/workloads/replication-controller.js +37 -26
- package/dist/factories/kubernetes/workloads/replication-controller.js.map +1 -1
- package/dist/factories/kubernetes/workloads/stateful-set.d.ts.map +1 -1
- package/dist/factories/kubernetes/workloads/stateful-set.js +69 -55
- package/dist/factories/kubernetes/workloads/stateful-set.js.map +1 -1
- package/dist/factories/kubernetes/yaml/yaml-artifact-applier.d.ts +15 -0
- package/dist/factories/kubernetes/yaml/yaml-artifact-applier.d.ts.map +1 -0
- package/dist/factories/kubernetes/yaml/yaml-artifact-applier.js +69 -0
- package/dist/factories/kubernetes/yaml/yaml-artifact-applier.js.map +1 -0
- package/dist/factories/kubernetes/yaml/yaml-directory.d.ts +2 -1
- package/dist/factories/kubernetes/yaml/yaml-directory.d.ts.map +1 -1
- package/dist/factories/kubernetes/yaml/yaml-directory.js +3 -34
- package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -1
- package/dist/factories/kubernetes/yaml/yaml-file.d.ts +13 -91
- package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -1
- package/dist/factories/kubernetes/yaml/yaml-file.js +21 -311
- package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -1
- package/dist/factories/nats/compositions/nats-bootstrap.d.ts +2 -2
- package/dist/factories/nats/compositions/nats-bootstrap.d.ts.map +1 -1
- package/dist/factories/nats/compositions/nats-bootstrap.js +2 -3
- package/dist/factories/nats/compositions/nats-bootstrap.js.map +1 -1
- package/dist/factories/nats/resources/jetstream.d.ts.map +1 -1
- package/dist/factories/nats/resources/jetstream.js +2 -0
- package/dist/factories/nats/resources/jetstream.js.map +1 -1
- package/dist/factories/nats/types.d.ts +3 -3
- package/dist/factories/nats/types.js +1 -1
- package/dist/factories/nats/types.js.map +1 -1
- package/dist/factories/ory/compositions/ory-platform-stack.d.ts.map +1 -1
- package/dist/factories/ory/compositions/ory-platform-stack.js +35 -9
- package/dist/factories/ory/compositions/ory-platform-stack.js.map +1 -1
- package/dist/factories/ory/resources/oathkeeper-rule.d.ts.map +1 -1
- package/dist/factories/ory/resources/oathkeeper-rule.js +11 -8
- package/dist/factories/ory/resources/oathkeeper-rule.js.map +1 -1
- package/dist/factories/ory/resources/oauth2-client.d.ts.map +1 -1
- package/dist/factories/ory/resources/oauth2-client.js +12 -9
- package/dist/factories/ory/resources/oauth2-client.js.map +1 -1
- package/dist/factories/ory/types.d.ts +3 -0
- package/dist/factories/ory/types.d.ts.map +1 -1
- package/dist/factories/ory/types.js +1 -0
- package/dist/factories/ory/types.js.map +1 -1
- package/dist/factories/ory/utils/helm-values-mapper.d.ts.map +1 -1
- package/dist/factories/ory/utils/helm-values-mapper.js +6 -3
- package/dist/factories/ory/utils/helm-values-mapper.js.map +1 -1
- package/dist/factories/rook/compositions/rook-ceph-operator-installation.d.ts +2 -2
- package/dist/factories/rook/compositions/rook-ceph-operator-installation.d.ts.map +1 -1
- package/dist/factories/rook/compositions/rook-ceph-operator-installation.js +2 -3
- package/dist/factories/rook/compositions/rook-ceph-operator-installation.js.map +1 -1
- package/dist/factories/rook/compositions/rook-ceph-platform.d.ts +104 -0
- package/dist/factories/rook/compositions/rook-ceph-platform.d.ts.map +1 -1
- package/dist/factories/rook/resources/ceph-object-store-user.d.ts.map +1 -1
- package/dist/factories/rook/resources/ceph-object-store-user.js +2 -0
- package/dist/factories/rook/resources/ceph-object-store-user.js.map +1 -1
- package/dist/factories/rook/resources/ceph-object-store.d.ts.map +1 -1
- package/dist/factories/rook/resources/ceph-object-store.js +2 -0
- package/dist/factories/rook/resources/ceph-object-store.js.map +1 -1
- package/dist/factories/rook/resources/object-bucket-claim.d.ts.map +1 -1
- package/dist/factories/rook/resources/object-bucket-claim.js +2 -0
- package/dist/factories/rook/resources/object-bucket-claim.js.map +1 -1
- package/dist/factories/rook/types.d.ts +105 -1
- package/dist/factories/rook/types.d.ts.map +1 -1
- package/dist/factories/rook/types.js +10 -1
- package/dist/factories/rook/types.js.map +1 -1
- package/dist/factories/rook/utils/helm-values-mapper.d.ts +1 -1
- package/dist/factories/rook/utils/helm-values-mapper.d.ts.map +1 -1
- package/dist/factories/rook/utils/helm-values-mapper.js +19 -7
- package/dist/factories/rook/utils/helm-values-mapper.js.map +1 -1
- package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts.map +1 -1
- package/dist/factories/searxng/compositions/searxng-bootstrap.js +2 -2
- package/dist/factories/searxng/compositions/searxng-bootstrap.js.map +1 -1
- package/dist/factories/searxng/resources/searxng.d.ts.map +1 -1
- package/dist/factories/searxng/resources/searxng.js +2 -0
- package/dist/factories/searxng/resources/searxng.js.map +1 -1
- package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts +2 -2
- package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts.map +1 -1
- package/dist/factories/valkey/compositions/valkey-bootstrap.js +4 -9
- package/dist/factories/valkey/compositions/valkey-bootstrap.js.map +1 -1
- package/dist/factories/valkey/resources/valkey.d.ts.map +1 -1
- package/dist/factories/valkey/resources/valkey.js +2 -1
- package/dist/factories/valkey/resources/valkey.js.map +1 -1
- package/dist/factories/valkey/types.d.ts +3 -7
- package/dist/factories/valkey/types.d.ts.map +1 -1
- package/dist/factories/valkey/types.js +1 -1
- package/dist/factories/valkey/types.js.map +1 -1
- package/dist/factories/webapp/compositions/web-app-with-processing.d.ts +3 -2
- package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -1
- package/dist/factories/webapp/compositions/web-app-with-processing.js +7 -6
- package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -1
- package/dist/factories/webapp/types.d.ts +1 -0
- package/dist/factories/webapp/types.d.ts.map +1 -1
- package/dist/factories/webapp/types.js +2 -0
- package/dist/factories/webapp/types.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/shared/brands.d.ts +7 -0
- package/dist/shared/brands.d.ts.map +1 -1
- package/dist/shared/brands.js +7 -0
- package/dist/shared/brands.js.map +1 -1
- package/dist/utils/index.d.ts +3 -3
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -3
- package/dist/utils/index.js.map +1 -1
- package/package.json +20 -5
- package/dist/factories/kubernetes/yaml/conflict-handler.d.ts +0 -23
- package/dist/factories/kubernetes/yaml/conflict-handler.d.ts.map +0 -1
- package/dist/factories/kubernetes/yaml/conflict-handler.js +0 -83
- package/dist/factories/kubernetes/yaml/conflict-handler.js.map +0 -1
|
@@ -8,12 +8,16 @@
|
|
|
8
8
|
import { KUBERNETES_REF_SCHEMA_MARKER_SOURCE } from '../../shared/brands.js';
|
|
9
9
|
import { escapeCelString } from '../../utils/cel-escape.js';
|
|
10
10
|
import { pascalCase } from '../../utils/string.js';
|
|
11
|
+
import { isCelExpression, isKubernetesRef } from '../../utils/type-guards.js';
|
|
12
|
+
import { isValuesMergeExpression } from '../aspects/values-merge.js';
|
|
13
|
+
import { getCompositionAnalysisMetadata } from '../composition/analysis-metadata.js';
|
|
11
14
|
import { createCompositionContext, runWithCompositionContext } from '../composition/context.js';
|
|
15
|
+
import { TypeKroError } from '../errors.js';
|
|
12
16
|
import { getComponentLogger } from '../logging/index.js';
|
|
13
17
|
import { getMetadataField } from '../metadata/index.js';
|
|
14
18
|
import { createSchemaProxy } from '../references/index.js';
|
|
15
19
|
import { separateStatusFields } from '../validation/cel-validator.js';
|
|
16
|
-
import { serializeStatusMappingsToCel } from './cel-references.js';
|
|
20
|
+
import { celLiteralForValueTree, serializeStatusMappingsToCel } from './cel-references.js';
|
|
17
21
|
const logger = getComponentLogger('schema-defaults');
|
|
18
22
|
const SCHEMA_MARKER_PATTERN_SOURCE = KUBERNETES_REF_SCHEMA_MARKER_SOURCE;
|
|
19
23
|
function deriveResourceIdAliases(resourceId) {
|
|
@@ -290,7 +294,10 @@ function resolveDefaultsByReExecution(compositionFn, specType, proxyResources) {
|
|
|
290
294
|
// Build the set of optional top-level field names. Only optional fields
|
|
291
295
|
// can be ternary-controlled (required fields always have a value).
|
|
292
296
|
const optionalFieldNames = new Set((specJson.optional ?? []).map((p) => p.key));
|
|
293
|
-
const
|
|
297
|
+
const optionalFieldPaths = collectSchemaFieldPaths(specJson).optional;
|
|
298
|
+
const tempCtx = createCompositionContext('defaults-extraction', {
|
|
299
|
+
suppressResourceDiagnostics: true,
|
|
300
|
+
});
|
|
294
301
|
// The all-undefined defaults run can throw when a composition dereferences an
|
|
295
302
|
// absent optional parent (`spec.settings.tier` with settings undefined). Contain
|
|
296
303
|
// it: literal-default extraction is then simply empty, but cross-field probing
|
|
@@ -330,6 +337,7 @@ function resolveDefaultsByReExecution(compositionFn, specType, proxyResources) {
|
|
|
330
337
|
});
|
|
331
338
|
}
|
|
332
339
|
const crossFieldOverrides = [];
|
|
340
|
+
const ambiguousStructuredFallbacks = [];
|
|
333
341
|
for (const [id, proxyRes] of proxyEntries) {
|
|
334
342
|
const defaultsRes = defaultsMap.get(id);
|
|
335
343
|
// Literal-default + ternary extraction need the defaults-run counterpart;
|
|
@@ -338,14 +346,23 @@ function resolveDefaultsByReExecution(compositionFn, specType, proxyResources) {
|
|
|
338
346
|
extractDefaultsByComparison(proxyRes, defaultsRes, defaults);
|
|
339
347
|
extractTernaryConditionals(proxyRes, defaultsRes, ternaryConditionals, optionalFieldNames, ternaryConditionFieldHints);
|
|
340
348
|
}
|
|
349
|
+
// Ambiguity detection cannot depend on the all-defaults resource existing:
|
|
350
|
+
// an optional guard may remove the entire resource from that execution.
|
|
351
|
+
// Probe each bare structured schema marker with only that marker absent.
|
|
352
|
+
// A concrete structured value then proves only that black-box execution is
|
|
353
|
+
// ambiguous—not that the source was `??`—so compilation fails closed.
|
|
354
|
+
probeAmbiguousStructuredFallbacks(compositionFn, specJson, proxyRes, id, optionalFieldPaths, ambiguousStructuredFallbacks);
|
|
341
355
|
// Cross-field `??` chain reconstruction is independent of the defaults run —
|
|
342
356
|
// it does its own presence-probing — so it always runs.
|
|
343
357
|
reconstructCrossFieldChains(compositionFn, specJson, id, proxyRes, defaults, crossFieldOverrides);
|
|
344
358
|
}
|
|
345
359
|
const hasResults = Object.keys(defaults).length > 0 ||
|
|
346
360
|
ternaryConditionals.length > 0 ||
|
|
347
|
-
crossFieldOverrides.length > 0
|
|
348
|
-
|
|
361
|
+
crossFieldOverrides.length > 0 ||
|
|
362
|
+
ambiguousStructuredFallbacks.length > 0;
|
|
363
|
+
return hasResults
|
|
364
|
+
? { defaults, ternaryConditionals, crossFieldOverrides, ambiguousStructuredFallbacks }
|
|
365
|
+
: undefined;
|
|
349
366
|
}
|
|
350
367
|
catch (err) {
|
|
351
368
|
// Best-effort: composition functions with undefined spec fields may throw
|
|
@@ -386,6 +403,11 @@ function classifyLeaf(value) {
|
|
|
386
403
|
return { kind: 'none' };
|
|
387
404
|
return { kind: 'literal', value };
|
|
388
405
|
}
|
|
406
|
+
if (Array.isArray(value))
|
|
407
|
+
return { kind: 'structured', value };
|
|
408
|
+
if (value !== null && typeof value === 'object') {
|
|
409
|
+
return { kind: 'structured', value: value };
|
|
410
|
+
}
|
|
389
411
|
return { kind: 'none' };
|
|
390
412
|
}
|
|
391
413
|
/** Read the value at a structural path within a (proxy/probe) resource object. */
|
|
@@ -432,6 +454,38 @@ function collectMarkerLeaves(node, path, out) {
|
|
|
432
454
|
}
|
|
433
455
|
}
|
|
434
456
|
}
|
|
457
|
+
function collectAmbiguityCandidateLeaves(node, path, out, mergeShapes = []) {
|
|
458
|
+
if (isValuesMergeExpression(node)) {
|
|
459
|
+
const nestedMergeShapes = [
|
|
460
|
+
...mergeShapes,
|
|
461
|
+
{ path: [...path], overlayCount: node.overlays.length },
|
|
462
|
+
];
|
|
463
|
+
collectAmbiguityCandidateLeaves(node.base, [...path, 'base'], out, nestedMergeShapes);
|
|
464
|
+
node.overlays.forEach((overlay, index) => collectAmbiguityCandidateLeaves(overlay, [...path, 'overlays', String(index)], out, nestedMergeShapes));
|
|
465
|
+
return;
|
|
466
|
+
}
|
|
467
|
+
const classified = classifyLeaf(node);
|
|
468
|
+
if (classified.kind === 'field') {
|
|
469
|
+
out.push({
|
|
470
|
+
path: [...path],
|
|
471
|
+
field: classified.field,
|
|
472
|
+
mergeShapes: mergeShapes.map((shape) => ({
|
|
473
|
+
path: [...shape.path],
|
|
474
|
+
overlayCount: shape.overlayCount,
|
|
475
|
+
})),
|
|
476
|
+
});
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
if (Array.isArray(node)) {
|
|
480
|
+
node.forEach((value, index) => collectAmbiguityCandidateLeaves(value, [...path, String(index)], out, mergeShapes));
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
483
|
+
if (node && typeof node === 'object') {
|
|
484
|
+
for (const key of Object.keys(node)) {
|
|
485
|
+
collectAmbiguityCandidateLeaves(node[key], [...path, key], out, mergeShapes);
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
}
|
|
435
489
|
/**
|
|
436
490
|
* Build a probe `spec`: the magic schema proxy (so any field access emits its
|
|
437
491
|
* `spec.X` marker) wrapped so the dotted paths in `absent` resolve to `undefined`.
|
|
@@ -448,8 +502,8 @@ function buildProbeSpec(specJson, absent) {
|
|
|
448
502
|
if (absent.has(full))
|
|
449
503
|
return undefined;
|
|
450
504
|
const v = t[prop];
|
|
451
|
-
const
|
|
452
|
-
if (
|
|
505
|
+
const hasDeeperMutation = [...absent].some((a) => a.startsWith(`${full}.`));
|
|
506
|
+
if (hasDeeperMutation && v && (typeof v === 'object' || typeof v === 'function')) {
|
|
453
507
|
return wrap(v, full);
|
|
454
508
|
}
|
|
455
509
|
return v;
|
|
@@ -460,7 +514,9 @@ function buildProbeSpec(specJson, absent) {
|
|
|
460
514
|
/** Run the composition with a probe spec; return the resource matching `resourceId`. */
|
|
461
515
|
function runProbe(compositionFn, specJson, absent, resourceId) {
|
|
462
516
|
try {
|
|
463
|
-
const ctx = createCompositionContext('cross-field-probe'
|
|
517
|
+
const ctx = createCompositionContext('cross-field-probe', {
|
|
518
|
+
suppressResourceDiagnostics: true,
|
|
519
|
+
});
|
|
464
520
|
runWithCompositionContext(ctx, () => {
|
|
465
521
|
compositionFn(buildProbeSpec(specJson, absent));
|
|
466
522
|
});
|
|
@@ -471,6 +527,249 @@ function runProbe(compositionFn, specJson, absent, resourceId) {
|
|
|
471
527
|
}
|
|
472
528
|
}
|
|
473
529
|
const celField = (field) => `schema.spec.${field}`;
|
|
530
|
+
/**
|
|
531
|
+
* Read a probed resource using a path captured from the proxy run. Values-merge
|
|
532
|
+
* operand segments intentionally are not transparent: if removing a candidate
|
|
533
|
+
* causes the wrapper to normalize away, the resulting merged object is not
|
|
534
|
+
* evidence that the original operand contained an implicit fallback.
|
|
535
|
+
*/
|
|
536
|
+
function readRawValueAtPath(obj, path) {
|
|
537
|
+
let current = obj;
|
|
538
|
+
for (const key of path) {
|
|
539
|
+
if (current === null || typeof current !== 'object')
|
|
540
|
+
return undefined;
|
|
541
|
+
current = current[key];
|
|
542
|
+
}
|
|
543
|
+
return current;
|
|
544
|
+
}
|
|
545
|
+
function replaceValueAtPath(root, path, value) {
|
|
546
|
+
const [head, ...tail] = path;
|
|
547
|
+
if (head === undefined)
|
|
548
|
+
return value;
|
|
549
|
+
if (Array.isArray(root)) {
|
|
550
|
+
const index = Number(head);
|
|
551
|
+
if (!Number.isInteger(index) || index < 0 || index >= root.length)
|
|
552
|
+
return root;
|
|
553
|
+
const copy = [...root];
|
|
554
|
+
copy[index] = replaceValueAtPath(copy[index], tail, value);
|
|
555
|
+
return copy;
|
|
556
|
+
}
|
|
557
|
+
if (root === null || typeof root !== 'object')
|
|
558
|
+
return root;
|
|
559
|
+
const record = root;
|
|
560
|
+
return {
|
|
561
|
+
...record,
|
|
562
|
+
[head]: replaceValueAtPath(record[head], tail, value),
|
|
563
|
+
};
|
|
564
|
+
}
|
|
565
|
+
/**
|
|
566
|
+
* Canonicalize only ordinary value-tree containers. References and CEL nodes
|
|
567
|
+
* are semantic leaves, while merge expressions retain their explicit operand
|
|
568
|
+
* ordering. Kubernetes object maps are unordered, so sorting their keys keeps
|
|
569
|
+
* semantically identical normalization paths from differing solely because a
|
|
570
|
+
* helper inserted properties in a different order.
|
|
571
|
+
*/
|
|
572
|
+
function canonicalizeValueTree(value) {
|
|
573
|
+
if (isKubernetesRef(value) || isCelExpression(value))
|
|
574
|
+
return value;
|
|
575
|
+
if (isValuesMergeExpression(value)) {
|
|
576
|
+
let base = canonicalizeValueTree(value.base);
|
|
577
|
+
let overlays = value.overlays.map(canonicalizeValueTree);
|
|
578
|
+
while (isValuesMergeExpression(base)) {
|
|
579
|
+
overlays = [...base.overlays, ...overlays];
|
|
580
|
+
base = base.base;
|
|
581
|
+
}
|
|
582
|
+
overlays = overlays.filter((overlay) => overlay !== undefined &&
|
|
583
|
+
!(overlay !== null &&
|
|
584
|
+
typeof overlay === 'object' &&
|
|
585
|
+
!Array.isArray(overlay) &&
|
|
586
|
+
Object.getPrototypeOf(overlay) === Object.prototype &&
|
|
587
|
+
Object.keys(overlay).length === 0));
|
|
588
|
+
if (overlays.length === 0)
|
|
589
|
+
return base;
|
|
590
|
+
return {
|
|
591
|
+
__typekroValuesMerge: true,
|
|
592
|
+
base,
|
|
593
|
+
overlays,
|
|
594
|
+
};
|
|
595
|
+
}
|
|
596
|
+
if (Array.isArray(value))
|
|
597
|
+
return value.map(canonicalizeValueTree);
|
|
598
|
+
if (value === null || typeof value !== 'object')
|
|
599
|
+
return value;
|
|
600
|
+
const prototype = Object.getPrototypeOf(value);
|
|
601
|
+
if (prototype !== Object.prototype && prototype !== null)
|
|
602
|
+
return value;
|
|
603
|
+
const record = value;
|
|
604
|
+
return Object.fromEntries(Object.keys(record)
|
|
605
|
+
.sort()
|
|
606
|
+
.flatMap((key) => {
|
|
607
|
+
const canonical = canonicalizeValueTree(record[key]);
|
|
608
|
+
return canonical === undefined ? [] : [[key, canonical]];
|
|
609
|
+
}));
|
|
610
|
+
}
|
|
611
|
+
function valueTreeFingerprint(value) {
|
|
612
|
+
try {
|
|
613
|
+
return celLiteralForValueTree(canonicalizeValueTree(value), undefined, 'structured-fallback-normalization');
|
|
614
|
+
}
|
|
615
|
+
catch {
|
|
616
|
+
return undefined;
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
function schemaNodeAllowsNull(node) {
|
|
620
|
+
if (Array.isArray(node))
|
|
621
|
+
return node.some(schemaNodeAllowsNull);
|
|
622
|
+
if (node === null || typeof node !== 'object')
|
|
623
|
+
return false;
|
|
624
|
+
const record = node;
|
|
625
|
+
return Object.hasOwn(record, 'unit') && record.unit === null;
|
|
626
|
+
}
|
|
627
|
+
function collectSchemaFieldPaths(node) {
|
|
628
|
+
const optional = new Set();
|
|
629
|
+
const nullable = new Set();
|
|
630
|
+
const walk = (current, prefix) => {
|
|
631
|
+
if (Array.isArray(current)) {
|
|
632
|
+
for (const branch of current)
|
|
633
|
+
walk(branch, prefix);
|
|
634
|
+
return;
|
|
635
|
+
}
|
|
636
|
+
if (current === null || typeof current !== 'object')
|
|
637
|
+
return;
|
|
638
|
+
const objectNode = current;
|
|
639
|
+
const walkCollectionMember = (member, path) => {
|
|
640
|
+
if (schemaNodeAllowsNull(member))
|
|
641
|
+
nullable.add(path);
|
|
642
|
+
walk(member, path);
|
|
643
|
+
};
|
|
644
|
+
if (objectNode.proto === 'Array' && objectNode.sequence !== undefined) {
|
|
645
|
+
const elementPath = `${prefix}[]`;
|
|
646
|
+
walkCollectionMember(objectNode.sequence, elementPath);
|
|
647
|
+
}
|
|
648
|
+
for (const [index, member] of (objectNode.prefix ?? []).entries()) {
|
|
649
|
+
walkCollectionMember(member, `${prefix}[${index}]`);
|
|
650
|
+
}
|
|
651
|
+
for (const [index, member] of (objectNode.optionals ?? []).entries()) {
|
|
652
|
+
walkCollectionMember(member, `${prefix}[optional:${index}]`);
|
|
653
|
+
}
|
|
654
|
+
for (const [index, entry] of (objectNode.defaultables ?? []).entries()) {
|
|
655
|
+
walkCollectionMember(entry[0], `${prefix}[defaultable:${index}]`);
|
|
656
|
+
}
|
|
657
|
+
if (objectNode.variadic !== undefined) {
|
|
658
|
+
walkCollectionMember(objectNode.variadic, `${prefix}[]`);
|
|
659
|
+
}
|
|
660
|
+
for (const [index, member] of (objectNode.postfix ?? []).entries()) {
|
|
661
|
+
walkCollectionMember(member, `${prefix}[postfix:${index}]`);
|
|
662
|
+
}
|
|
663
|
+
for (const entry of objectNode.index ?? []) {
|
|
664
|
+
const valuePath = prefix ? `${prefix}.*` : '*';
|
|
665
|
+
walkCollectionMember(entry.value, valuePath);
|
|
666
|
+
}
|
|
667
|
+
for (const entry of objectNode.optional ?? []) {
|
|
668
|
+
const path = prefix ? `${prefix}.${entry.key}` : entry.key;
|
|
669
|
+
optional.add(path);
|
|
670
|
+
if (schemaNodeAllowsNull(entry.value))
|
|
671
|
+
nullable.add(path);
|
|
672
|
+
walk(entry.value, path);
|
|
673
|
+
}
|
|
674
|
+
for (const entry of objectNode.required ?? []) {
|
|
675
|
+
const path = prefix ? `${prefix}.${entry.key}` : entry.key;
|
|
676
|
+
if (schemaNodeAllowsNull(entry.value))
|
|
677
|
+
nullable.add(path);
|
|
678
|
+
walk(entry.value, path);
|
|
679
|
+
}
|
|
680
|
+
};
|
|
681
|
+
walk(node, '');
|
|
682
|
+
return { optional, nullable };
|
|
683
|
+
}
|
|
684
|
+
function matchingAncestorPath(field, paths) {
|
|
685
|
+
let match;
|
|
686
|
+
for (const path of paths) {
|
|
687
|
+
if ((field === path || field.startsWith(`${path}.`)) &&
|
|
688
|
+
(match === undefined || path.length > match.length)) {
|
|
689
|
+
match = path;
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
return match;
|
|
693
|
+
}
|
|
694
|
+
function readProbeValueAtPath(proxyResource, probedResource, candidate) {
|
|
695
|
+
for (const shape of candidate.mergeShapes) {
|
|
696
|
+
const probedMerge = readRawValueAtPath(probedResource, shape.path);
|
|
697
|
+
if (!isValuesMergeExpression(probedMerge) ||
|
|
698
|
+
probedMerge.overlays.length !== shape.overlayCount) {
|
|
699
|
+
const originalMerge = readRawValueAtPath(proxyResource, shape.path);
|
|
700
|
+
if (!isValuesMergeExpression(originalMerge)) {
|
|
701
|
+
return { value: undefined, ambiguousNormalization: true };
|
|
702
|
+
}
|
|
703
|
+
const expectedWithoutCandidate = replaceValueAtPath(originalMerge, candidate.path.slice(shape.path.length), undefined);
|
|
704
|
+
const actualFingerprint = valueTreeFingerprint(probedMerge);
|
|
705
|
+
const expectedFingerprint = valueTreeFingerprint(expectedWithoutCandidate);
|
|
706
|
+
const ambiguousNormalization = actualFingerprint === undefined ||
|
|
707
|
+
expectedFingerprint === undefined ||
|
|
708
|
+
actualFingerprint !== expectedFingerprint;
|
|
709
|
+
return {
|
|
710
|
+
value: ambiguousNormalization ? probedMerge : undefined,
|
|
711
|
+
ambiguousNormalization,
|
|
712
|
+
};
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
return {
|
|
716
|
+
value: readRawValueAtPath(probedResource, candidate.path),
|
|
717
|
+
ambiguousNormalization: false,
|
|
718
|
+
};
|
|
719
|
+
}
|
|
720
|
+
/**
|
|
721
|
+
* Detect a bare structured schema marker that becomes a concrete object/array
|
|
722
|
+
* when that exact field is absent. This targeted probe does not infer `??`
|
|
723
|
+
* semantics; it establishes that black-box execution is ambiguous and must
|
|
724
|
+
* fail closed. Explicit `Cel.default()` values carry CEL provenance and do not
|
|
725
|
+
* appear as bare schema-marker leaves.
|
|
726
|
+
*/
|
|
727
|
+
function probeAmbiguousStructuredFallbacks(compositionFn, specJson, proxyResource, resourceId, optionalFieldPaths, out) {
|
|
728
|
+
const markerLeaves = [];
|
|
729
|
+
collectAmbiguityCandidateLeaves(proxyResource, [], markerLeaves);
|
|
730
|
+
const candidatesByField = new Map();
|
|
731
|
+
for (const marker of markerLeaves) {
|
|
732
|
+
const candidates = candidatesByField.get(marker.field) ?? [];
|
|
733
|
+
candidates.push(marker);
|
|
734
|
+
candidatesByField.set(marker.field, candidates);
|
|
735
|
+
}
|
|
736
|
+
for (const [field, candidates] of candidatesByField) {
|
|
737
|
+
// Removing a required leaf is not a realizable KRO instance state. Probe
|
|
738
|
+
// only a field that is optional itself or descends from an optional parent.
|
|
739
|
+
// Nullable fields are rejected at the ArkType → KRO schema boundary because
|
|
740
|
+
// SimpleSchema cannot represent explicit null.
|
|
741
|
+
const optionalPath = matchingAncestorPath(field, optionalFieldPaths);
|
|
742
|
+
if (optionalPath === undefined)
|
|
743
|
+
continue;
|
|
744
|
+
const probedResource = runProbe(compositionFn, specJson, new Set([optionalPath]), resourceId);
|
|
745
|
+
for (const candidate of candidates) {
|
|
746
|
+
const probeRead = readProbeValueAtPath(proxyResource, probedResource, candidate);
|
|
747
|
+
const fallbackValue = probeRead.value;
|
|
748
|
+
if (probeRead.ambiguousNormalization ||
|
|
749
|
+
Array.isArray(fallbackValue) ||
|
|
750
|
+
(fallbackValue !== null && typeof fallbackValue === 'object')) {
|
|
751
|
+
out.push({
|
|
752
|
+
resourceId,
|
|
753
|
+
path: candidate.path,
|
|
754
|
+
field,
|
|
755
|
+
});
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
function assertNoAmbiguousStructuredFallbacks(result) {
|
|
761
|
+
const [ambiguous] = result?.ambiguousStructuredFallbacks ?? [];
|
|
762
|
+
if (!ambiguous)
|
|
763
|
+
return;
|
|
764
|
+
throw new TypeKroError(`Cannot prove structured fallback semantics for schema.spec.${ambiguous.field} at ` +
|
|
765
|
+
`${ambiguous.resourceId}.${ambiguous.path.join('.')}. ` +
|
|
766
|
+
'Black-box re-execution cannot distinguish nullish coalescing from value-based control flow. ' +
|
|
767
|
+
'Use Cel.default(value, fallback) or Cel.coalesce(value, fallback) to make the graph semantics explicit.', 'AMBIGUOUS_STRUCTURED_FALLBACK', {
|
|
768
|
+
resourceId: ambiguous.resourceId,
|
|
769
|
+
path: ambiguous.path.join('.'),
|
|
770
|
+
field: ambiguous.field,
|
|
771
|
+
});
|
|
772
|
+
}
|
|
474
773
|
/**
|
|
475
774
|
* Presence guard for a (possibly nested) optional field — every ancestor must be
|
|
476
775
|
* present too. `userDeployments.enableSubchart` →
|
|
@@ -483,21 +782,33 @@ function presenceGuard(field) {
|
|
|
483
782
|
return segs.map((_, i) => `has(schema.spec.${segs.slice(0, i + 1).join('.')})`).join(' && ');
|
|
484
783
|
}
|
|
485
784
|
/** Render the chain's CEL: <guard(a)> ? a : (<guard(b)> ? b : <tail>). */
|
|
486
|
-
function buildChainCel(chain, tail) {
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
?
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
expr =
|
|
498
|
-
nested =
|
|
785
|
+
function buildChainCel(chain, tail, resourceId, path) {
|
|
786
|
+
try {
|
|
787
|
+
const tailCel = tail.kind === 'literal'
|
|
788
|
+
? typeof tail.value === 'string'
|
|
789
|
+
? `"${escapeCelString(tail.value)}"`
|
|
790
|
+
: String(tail.value)
|
|
791
|
+
: tail.kind === 'field'
|
|
792
|
+
? celField(tail.field)
|
|
793
|
+
: tail.kind === 'structured'
|
|
794
|
+
? `(${celLiteralForValueTree(tail.value, undefined, `structured-coalesce.${resourceId}.${path.join('.')}`)})`
|
|
795
|
+
: 'omit()';
|
|
796
|
+
let expr = tailCel;
|
|
797
|
+
let nested = false;
|
|
798
|
+
for (const f of [...chain].reverse()) {
|
|
799
|
+
expr = `${presenceGuard(f)} ? ${celField(f)} : ${nested ? `(${expr})` : expr}`;
|
|
800
|
+
nested = true;
|
|
801
|
+
}
|
|
802
|
+
return `\${${expr}}`;
|
|
803
|
+
}
|
|
804
|
+
catch (error) {
|
|
805
|
+
logger.debug('Skipping non-serializable structured coalescing fallback', {
|
|
806
|
+
resourceId,
|
|
807
|
+
path: path.join('.'),
|
|
808
|
+
error: error instanceof Error ? error.message : String(error),
|
|
809
|
+
});
|
|
810
|
+
return undefined;
|
|
499
811
|
}
|
|
500
|
-
return `\${${expr}}`;
|
|
501
812
|
}
|
|
502
813
|
/**
|
|
503
814
|
* For each `spec.X` marker leaf in the proxy-run resource, probe to reconstruct its
|
|
@@ -537,8 +848,11 @@ function reconstructCrossFieldChains(compositionFn, specJson, resourceId, proxyR
|
|
|
537
848
|
// existing default/omit-wrapping mechanisms, so this change can't regress them.
|
|
538
849
|
const [head] = chain;
|
|
539
850
|
if (chain.length >= 2 && head !== undefined) {
|
|
540
|
-
|
|
541
|
-
|
|
851
|
+
const cel = buildChainCel(chain, tail, resourceId, path);
|
|
852
|
+
if (cel !== undefined) {
|
|
853
|
+
delete defaults[head];
|
|
854
|
+
out.push({ resourceId, path, cel });
|
|
855
|
+
}
|
|
542
856
|
}
|
|
543
857
|
}
|
|
544
858
|
}
|
|
@@ -1018,6 +1332,15 @@ function collectOmitFields(specFields, specType) {
|
|
|
1018
1332
|
* instead of auto-generated CEL expressions.
|
|
1019
1333
|
*/
|
|
1020
1334
|
export function arktypeToKroSchema(name, schemaDefinition, resources, statusMappings, nestedStatusCel, schemaFieldValidations) {
|
|
1335
|
+
const nullableField = collectSchemaFieldPaths(schemaDefinition.spec.json).nullable
|
|
1336
|
+
.values()
|
|
1337
|
+
.next().value;
|
|
1338
|
+
if (nullableField !== undefined) {
|
|
1339
|
+
throw new TypeKroError(`KRO SimpleSchema cannot represent nullable field schema.spec.${nullableField}. ` +
|
|
1340
|
+
"TypeKro cannot preserve an ArkType 'T | null' contract by silently converting null " +
|
|
1341
|
+
'to omission or a non-nullable field. Model the KRO input as optional and use ' +
|
|
1342
|
+
'Cel.default(...) for omission, or use direct mode when explicit null is required.', 'KRO_NULLABLE_SCHEMA_UNSUPPORTED', { field: nullableField });
|
|
1343
|
+
}
|
|
1021
1344
|
const specFields = arktypeJsonToKroFields(schemaDefinition.spec.json);
|
|
1022
1345
|
if (!specFields.name) {
|
|
1023
1346
|
specFields.name = `string | default="${name}"`;
|
|
@@ -1032,8 +1355,7 @@ export function arktypeToKroSchema(name, schemaDefinition, resources, statusMapp
|
|
|
1032
1355
|
// undefined for optional fields, triggering ?? and resolving imported
|
|
1033
1356
|
// constants from the closure. Compares resolved resources with the
|
|
1034
1357
|
// proxy-run resources (markers) to extract field → default mappings.
|
|
1035
|
-
const
|
|
1036
|
-
const compositionFn = statusMeta?.__originalCompositionFn;
|
|
1358
|
+
const compositionFn = getCompositionAnalysisMetadata(statusMappings)?.originalCompositionFn;
|
|
1037
1359
|
// Phase 1a: regex extraction for the outer composition's own defaults.
|
|
1038
1360
|
if (typeof compositionFn === 'function') {
|
|
1039
1361
|
const regexDefaults = extractNullishDefaults(compositionFn.toString());
|
|
@@ -1093,6 +1415,7 @@ export function arktypeToKroSchema(name, schemaDefinition, resources, statusMapp
|
|
|
1093
1415
|
const reExecutionResult = nestedDefinition && nestedResources
|
|
1094
1416
|
? resolveDefaultsByReExecution(fn, nestedDefinition.spec, nestedResources)
|
|
1095
1417
|
: undefined;
|
|
1418
|
+
assertNoAmbiguousStructuredFallbacks(reExecutionResult);
|
|
1096
1419
|
const reExecutionDefaults = reExecutionResult?.defaults ?? {};
|
|
1097
1420
|
const innerDefaults = remapNullishDefaults({ ...extractedDefaults, ...reExecutionDefaults }, specMappings);
|
|
1098
1421
|
// Non-destructive: don't overwrite existing outer defaults.
|
|
@@ -1112,6 +1435,7 @@ export function arktypeToKroSchema(name, schemaDefinition, resources, statusMapp
|
|
|
1112
1435
|
if (typeof compositionFn === 'function' && resources) {
|
|
1113
1436
|
const reExecutionResult = resolveDefaultsByReExecution(compositionFn, schemaDefinition.spec, resources);
|
|
1114
1437
|
if (reExecutionResult) {
|
|
1438
|
+
assertNoAmbiguousStructuredFallbacks(reExecutionResult);
|
|
1115
1439
|
applyNullishDefaults(specFields, reExecutionResult.defaults, true);
|
|
1116
1440
|
ternaryConditionals.push(...reExecutionResult.ternaryConditionals);
|
|
1117
1441
|
// Cross-field `??` chains reconstructed by probing: write each CEL conditional
|
|
@@ -1127,7 +1451,7 @@ export function arktypeToKroSchema(name, schemaDefinition, resources, statusMapp
|
|
|
1127
1451
|
const ternaryFieldNames = new Set(ternaryConditionals.map((t) => t.conditionField));
|
|
1128
1452
|
const omitFields = collectOmitFields(specFields, schemaDefinition.spec).filter((f) => !ternaryFieldNames.has(f));
|
|
1129
1453
|
// Filter internal fields (prefixed with __) before classification.
|
|
1130
|
-
// These are TypeKro metadata (
|
|
1454
|
+
// These are TypeKro metadata (for example, __nestedStatusCel).
|
|
1131
1455
|
// that should never appear in the KRO schema.
|
|
1132
1456
|
const userStatusMappings = {};
|
|
1133
1457
|
if (statusMappings) {
|